{"version":3,"sources":["../src/util.ts"],"names":[],"mappings":"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","sourcesContent":["import { path7za } from \"7zip-bin\"\nimport { appBuilderPath } from \"app-builder-bin\"\nimport { safeStringifyJson } from \"builder-util-runtime\"\nimport chalk from \"chalk\"\nimport { ChildProcess, execFile, ExecFileOptions, spawn as _spawn, SpawnOptions } from \"child_process\"\nimport { createHash } from \"crypto\"\nimport _debug from \"debug\"\nimport { safeDump } from \"js-yaml\"\nimport * as path from \"path\"\nimport \"source-map-support/register\"\nimport { debug, log } from \"./log\"\n\nexport { safeStringifyJson } from \"builder-util-runtime\"\nexport { TmpDir } from \"temp-file\"\nexport { log, debug } from \"./log\"\nexport { Arch, getArchCliNames, toLinuxArchString, getArchSuffix, ArchType, archFromString } from \"./arch\"\nexport { AsyncTaskManager } from \"./asyncTaskManager\"\nexport { DebugLogger } from \"./DebugLogger\"\n\nexport { copyFile } from \"./fs\"\nexport { asArray } from \"builder-util-runtime\"\n\nexport { deepAssign } from \"./deepAssign\"\n\nexport const debug7z = _debug(\"electron-builder:7z\")\n\nexport function serializeToYaml(object: any, skipInvalid = false, noRefs = false) {\n return safeDump(object, {\n lineWidth: 8000,\n skipInvalid,\n noRefs,\n })\n}\n\nexport function removePassword(input: string) {\n return input.replace(/(-String |-P |pass:| \\/p |-pass |--secretKey |--accessKey |-p )([^ ]+)/g, (match, p1, p2) => {\n if (p1.trim() === \"/p\" && p2.startsWith(\"\\\\\\\\Mac\\\\Host\\\\\\\\\")) {\n // appx /p\n return `${p1}${p2}`\n }\n return `${p1}${createHash(\"sha256\").update(p2).digest(\"hex\")} (sha256 hash)`\n })\n}\n\nfunction getProcessEnv(env: { [key: string]: string | undefined } | undefined | null): NodeJS.ProcessEnv | undefined {\n if (process.platform === \"win32\") {\n return env == null ? undefined : env\n }\n\n const finalEnv = {\n ...(env || process.env)\n }\n\n // without LC_CTYPE dpkg can returns encoded unicode symbols\n // set LC_CTYPE to avoid crash https://github.com/electron-userland/electron-builder/issues/503 Even \"en_DE.UTF-8\" leads to error.\n const locale = process.platform === \"linux\" ? (process.env.LANG || \"C.UTF-8\") : \"en_US.UTF-8\"\n finalEnv.LANG = locale\n finalEnv.LC_CTYPE = locale\n finalEnv.LC_ALL = locale\n return finalEnv\n}\n\nexport function exec(file: string, args?: Array | null, options?: ExecFileOptions, isLogOutIfDebug = true): Promise {\n if (log.isDebugEnabled) {\n const logFields: any = {\n file,\n args: args == null ? \"\" : removePassword(args.join(\" \")),\n }\n if (options != null) {\n if (options.cwd != null) {\n logFields.cwd = options.cwd\n }\n\n if (options.env != null) {\n const diffEnv = {...options.env}\n for (const name of Object.keys(process.env)) {\n if (process.env[name] === options.env[name]) {\n delete diffEnv[name]\n }\n }\n logFields.env = safeStringifyJson(diffEnv)\n }\n }\n\n log.debug(logFields, \"executing\")\n }\n\n return new Promise((resolve, reject) => {\n execFile(file, args, {\n ...options,\n maxBuffer: 1000 * 1024 * 1024,\n env: getProcessEnv(options == null ? null : options.env),\n }, (error, stdout, stderr) => {\n if (error == null) {\n if (isLogOutIfDebug && log.isDebugEnabled) {\n const logFields: any = {\n file,\n }\n if (stdout.length > 0) {\n logFields.stdout = stdout\n }\n if (stderr.length > 0) {\n logFields.stderr = stderr\n }\n\n log.debug(logFields, \"executed\")\n }\n resolve(stdout.toString())\n }\n else {\n let message = chalk.red(removePassword(`Exit code: ${(error as any).code}. ${error.message}`))\n if (stdout.length !== 0) {\n if (file.endsWith(\"wine\")) {\n stdout = stdout.toString()\n }\n message += `\\n${chalk.yellow(stdout.toString())}`\n }\n if (stderr.length !== 0) {\n if (file.endsWith(\"wine\")) {\n stderr = stderr.toString()\n }\n message += `\\n${chalk.red(stderr.toString())}`\n }\n\n reject(new Error(message))\n }\n })\n })\n}\n\nexport interface ExtraSpawnOptions {\n isPipeInput?: boolean\n}\n\nfunction logSpawn(command: string, args: Array, options: SpawnOptions) {\n // use general debug.enabled to log spawn, because it doesn't produce a lot of output (the only line), but important in any case\n if (!log.isDebugEnabled) {\n return\n }\n\n const argsString = removePassword(args.join(\" \"))\n const logFields: any = {\n command: command + \" \" + (command === \"docker\" ? argsString : removePassword(argsString)),\n }\n if (options != null && options.cwd != null) {\n logFields.cwd = options.cwd\n }\n log.debug(logFields, \"spawning\")\n}\n\nexport function doSpawn(command: string, args: Array, options?: SpawnOptions, extraOptions?: ExtraSpawnOptions): ChildProcess {\n if (options == null) {\n options = {}\n }\n\n options.env = getProcessEnv(options.env)\n\n if (options.stdio == null) {\n const isDebugEnabled = debug.enabled\n // do not ignore stdout/stderr if not debug, because in this case we will read into buffer and print on error\n options.stdio = [extraOptions != null && extraOptions.isPipeInput ? \"pipe\" : \"ignore\", isDebugEnabled ? \"inherit\" : \"pipe\", isDebugEnabled ? \"inherit\" : \"pipe\"] as any\n }\n\n logSpawn(command, args, options)\n try {\n return _spawn(command, args, options)\n }\n catch (e) {\n throw new Error(`Cannot spawn ${command}: ${e.stack || e}`)\n }\n}\n\nexport function spawnAndWrite(command: string, args: Array, data: string, options?: SpawnOptions) {\n const childProcess = doSpawn(command, args, options, {isPipeInput: true})\n const timeout = setTimeout(() => childProcess.kill(), 4 * 60 * 1000)\n return new Promise((resolve, reject) => {\n handleProcess(\"close\", childProcess, command, () => {\n try {\n clearTimeout(timeout)\n }\n finally {\n resolve()\n }\n }, error => {\n try {\n clearTimeout(timeout)\n }\n finally {\n reject(error.stack || error.toString())\n }\n })\n\n childProcess.stdin!!.end(data)\n })\n}\n\nexport function spawn(command: string, args?: Array | null, options?: SpawnOptions, extraOptions?: ExtraSpawnOptions): Promise {\n return new Promise((resolve, reject) => {\n handleProcess(\"close\", doSpawn(command, args || [], options, extraOptions), command, resolve, reject)\n })\n}\n\nfunction handleProcess(event: string, childProcess: ChildProcess, command: string, resolve: ((value?: any) => void) | null, reject: (reason?: any) => void) {\n childProcess.on(\"error\", reject)\n\n let out = \"\"\n if (childProcess.stdout != null) {\n childProcess.stdout.on(\"data\", (data: string) => {\n out += data\n })\n }\n\n let errorOut = \"\"\n if (childProcess.stderr != null) {\n childProcess.stderr.on(\"data\", (data: string) => {\n errorOut += data\n })\n }\n\n childProcess.once(event, (code: number) => {\n if (log.isDebugEnabled) {\n const fields: any = {\n command: path.basename(command),\n code,\n pid: childProcess.pid,\n }\n if (out.length > 0) {\n fields.out = out\n }\n log.debug(fields, \"exited\")\n }\n\n if (code === 0) {\n if (resolve != null) {\n resolve(out)\n }\n }\n else {\n reject(new ExecError(command, code, formatOut(out, \"Output\"), formatOut(errorOut, \"Error output\")))\n }\n })\n}\n\nfunction formatOut(text: string, title: string) {\n return text.length === 0 ? \"\" : `\\n${title}:\\n${text}`\n}\n\nexport class ExecError extends Error {\n alreadyLogged = false\n\n constructor(command: string, readonly exitCode: number, out: string, errorOut: string, code: string = \"ERR_ELECTRON_BUILDER_CANNOT_EXECUTE\") {\n super(`${command} exited with code ${code}${formatOut(out, \"Output\")}${formatOut(errorOut, \"Error output\")}`);\n\n (this as NodeJS.ErrnoException).code = code\n }\n}\n\nexport function use(value: T | null, task: (it: T) => R): R | null {\n return value == null ? null : task(value)\n}\n\nexport function isEmptyOrSpaces(s: string | null | undefined): s is \"\" | null | undefined {\n return s == null || s.trim().length === 0\n}\n\nexport function isTokenCharValid(token: string) {\n return /^[\\w\\/=+-]+$/.test(token)\n}\n\nexport function addValue(map: Map>, key: K, value: T) {\n const list = map.get(key)\n if (list == null) {\n map.set(key, [value])\n }\n else if (!list.includes(value)) {\n list.push(value)\n }\n}\n\nexport function replaceDefault(inList: Array | null | undefined, defaultList: Array): Array {\n if (inList == null || (inList.length === 1 && inList[0] === \"default\")) {\n return defaultList\n }\n\n const index = inList.indexOf(\"default\")\n if (index >= 0) {\n const list = inList.slice(0, index)\n list.push(...defaultList)\n if (index !== (inList.length - 1)) {\n list.push(...inList.slice(index + 1))\n }\n inList = list\n }\n return inList\n}\n\nexport function getPlatformIconFileName(value: string | null | undefined, isMac: boolean) {\n if (value === undefined) {\n return undefined\n }\n if (value === null) {\n return null\n }\n\n if (!value.includes(\".\")) {\n return `${value}.${isMac ? \"icns\" : \"ico\"}`\n }\n\n return value.replace(isMac ? \".ico\" : \".icns\", isMac ? \".icns\" : \".ico\")\n}\n\nexport function isPullRequest() {\n // TRAVIS_PULL_REQUEST is set to the pull request number if the current job is a pull request build, or false if it’s not.\n function isSet(value: string | undefined) {\n // value can be or null, or empty string\n return value && value !== \"false\"\n }\n\n return isSet(process.env.TRAVIS_PULL_REQUEST) || isSet(process.env.CI_PULL_REQUEST) || isSet(process.env.CI_PULL_REQUESTS) || isSet(process.env.BITRISE_PULL_REQUEST) || isSet(process.env.APPVEYOR_PULL_REQUEST_NUMBER)\n}\n\nexport function isEnvTrue(value: string | null | undefined) {\n if (value != null) {\n value = value.trim()\n }\n return value === \"true\" || value === \"\" || value === \"1\"\n}\n\nexport class InvalidConfigurationError extends Error {\n constructor(message: string, code: string = \"ERR_ELECTRON_BUILDER_INVALID_CONFIGURATION\") {\n super(message);\n\n (this as NodeJS.ErrnoException).code = code\n }\n}\n\nexport function executeAppBuilder(args: Array, childProcessConsumer?: (childProcess: ChildProcess) => void, extraOptions: SpawnOptions = {}): Promise {\n return new Promise((resolve, reject) => {\n const command = appBuilderPath\n const env: any = {\n ...process.env,\n SZA_PATH: path7za,\n FORCE_COLOR: chalk.enabled ? \"1\" : \"0\",\n }\n const cacheEnv = process.env.ELECTRON_BUILDER_CACHE\n if (cacheEnv != null && cacheEnv.length > 0) {\n env.ELECTRON_BUILDER_CACHE = path.resolve(cacheEnv)\n }\n\n if (extraOptions.env != null) {\n Object.assign(env, extraOptions.env)\n }\n\n const childProcess = doSpawn(command, args, {\n env,\n stdio: [\"ignore\", \"pipe\", process.stdout],\n ...extraOptions,\n })\n if (childProcessConsumer != null) {\n childProcessConsumer(childProcess)\n }\n handleProcess(\"close\", childProcess, command, resolve, error => {\n if (error instanceof ExecError && error.exitCode === 2) {\n error.alreadyLogged = true\n }\n reject(error)\n })\n })\n}\n"],"sourceRoot":""}