app-builder-lib 22.7.0 → 22.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/electron-osx-sign/index.d.ts +1 -0
  2. package/electron-osx-sign/sign.js +12 -1
  3. package/out/asar/asarUtil.js +1 -1
  4. package/out/asar/asarUtil.js.map +1 -1
  5. package/out/codeSign/windowsCodeSign.js +2 -2
  6. package/out/codeSign/windowsCodeSign.js.map +1 -1
  7. package/out/configuration.d.ts +1 -1
  8. package/out/configuration.js +4 -0
  9. package/out/core.js +43 -49
  10. package/out/core.js.map +1 -1
  11. package/out/electron/electronVersion.js +3 -3
  12. package/out/electron/electronVersion.js.map +1 -1
  13. package/out/fileTransformer.js +1 -1
  14. package/out/fileTransformer.js.map +1 -1
  15. package/out/index.js +1 -1
  16. package/out/index.js.map +1 -1
  17. package/out/macPackager.js +25 -2
  18. package/out/macPackager.js.map +1 -1
  19. package/out/options/AppXOptions.js +4 -0
  20. package/out/options/FileAssociation.js +4 -0
  21. package/out/options/MsiOptions.js +4 -0
  22. package/out/options/PlatformSpecificBuildOptions.js +4 -0
  23. package/out/options/SnapOptions.d.ts +18 -0
  24. package/out/options/SnapOptions.js +4 -0
  25. package/out/options/SquirrelWindowsOptions.js +4 -0
  26. package/out/options/linuxOptions.js +4 -0
  27. package/out/options/macOptions.d.ts +15 -0
  28. package/out/options/macOptions.js +4 -0
  29. package/out/options/metadata.js +4 -0
  30. package/out/options/pkgOptions.js +4 -0
  31. package/out/options/winOptions.d.ts +1 -1
  32. package/out/options/winOptions.js +4 -0
  33. package/out/packager.js +1 -1
  34. package/out/packagerApi.js +4 -0
  35. package/out/platformPackager.js +1 -1
  36. package/out/platformPackager.js.map +1 -1
  37. package/out/publish/PublishManager.js +1 -1
  38. package/out/publish/PublishManager.js.map +1 -1
  39. package/out/publish/updateInfoBuilder.js +1 -1
  40. package/out/publish/updateInfoBuilder.js.map +1 -1
  41. package/out/remoteBuilder/RemoteBuilder.js +1 -1
  42. package/out/remoteBuilder/RemoteBuilder.js.map +1 -1
  43. package/out/targets/AppImageTarget.js +1 -1
  44. package/out/targets/AppImageTarget.js.map +1 -1
  45. package/out/targets/AppxTarget.js +3 -3
  46. package/out/targets/AppxTarget.js.map +1 -1
  47. package/out/targets/MsiTarget.js +2 -2
  48. package/out/targets/MsiTarget.js.map +1 -1
  49. package/out/targets/archive.js +1 -1
  50. package/out/targets/archive.js.map +1 -1
  51. package/out/targets/fpm.js +1 -1
  52. package/out/targets/fpm.js.map +1 -1
  53. package/out/targets/nsis/NsisTarget.js +42 -3
  54. package/out/targets/nsis/NsisTarget.js.map +1 -1
  55. package/out/targets/nsis/WebInstallerTarget.js +1 -1
  56. package/out/targets/nsis/WebInstallerTarget.js.map +1 -1
  57. package/out/targets/nsis/nsisLang.js +2 -2
  58. package/out/targets/nsis/nsisLang.js.map +1 -1
  59. package/out/targets/nsis/nsisOptions.js +4 -0
  60. package/out/targets/snap.js +15 -2
  61. package/out/targets/snap.js.map +1 -1
  62. package/out/targets/targetUtil.js +1 -1
  63. package/out/targets/targetUtil.js.map +1 -1
  64. package/out/util/appFileCopier.js +1 -1
  65. package/out/util/appFileCopier.js.map +1 -1
  66. package/out/util/cacheManager.js +56 -62
  67. package/out/util/cacheManager.js.map +1 -1
  68. package/out/util/config.js +2 -2
  69. package/out/util/config.js.map +1 -1
  70. package/out/util/macosVersion.js +1 -1
  71. package/out/util/macosVersion.js.map +1 -1
  72. package/out/util/yarn.js +1 -1
  73. package/out/util/yarn.js.map +1 -1
  74. package/out/winPackager.js +2 -2
  75. package/out/winPackager.js.map +1 -1
  76. package/package.json +31 -31
  77. package/scheme.json +130 -29
  78. package/templates/nsis/assistedInstaller.nsh +18 -14
  79. package/templates/nsis/assistedMessages.yml +17 -0
  80. package/templates/nsis/include/installUtil.nsh +1 -5
  81. package/templates/nsis/messages.yml +5 -0
  82. package/templates/nsis/portable.nsi +3 -1
  83. package/templates/snap/snapcraft.yaml +9 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/util/appFileCopier.ts"],"names":[],"mappings":"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","sourcesContent":["import BluebirdPromise from \"bluebird-lst\"\nimport { AsyncTaskManager, log } from \"builder-util\"\nimport { CONCURRENCY, FileCopier, FileTransformer, Link, MAX_FILE_REQUESTS, statOrNull, walk } from \"builder-util/out/fs\"\nimport { ensureDir, readlink, Stats, symlink } from \"fs-extra\"\nimport * as path from \"path\"\nimport { isLibOrExe } from \"../asar/unpackDetector\"\nimport { Platform } from \"../core\"\nimport { excludedExts, FileMatcher } from \"../fileMatcher\"\nimport { createElectronCompilerHost, NODE_MODULES_PATTERN } from \"../fileTransformer\"\nimport { Packager } from \"../packager\"\nimport { PlatformPackager } from \"../platformPackager\"\nimport { AppFileWalker } from \"./AppFileWalker\"\nimport { NodeModuleCopyHelper } from \"./NodeModuleCopyHelper\"\n\nconst BOWER_COMPONENTS_PATTERN = `${path.sep}bower_components${path.sep}`\n/** @internal */\nexport const ELECTRON_COMPILE_SHIM_FILENAME = \"__shim.js\"\n\nexport function getDestinationPath(file: string, fileSet: ResolvedFileSet) {\n if (file === fileSet.src) {\n return fileSet.destination\n }\n else {\n const src = fileSet.src\n const dest = fileSet.destination\n if (file.length > src.length && file.startsWith(src) && file[src.length] === path.sep) {\n return dest + file.substring(src.length)\n }\n else {\n // hoisted node_modules\n // not lastIndexOf, to ensure that nested module (top-level module depends on) copied to parent node_modules, not to top-level directory\n // project https://github.com/angexis/punchcontrol/commit/cf929aba55c40d0d8901c54df7945e1d001ce022\n let index = file.indexOf(NODE_MODULES_PATTERN)\n if (index < 0 && file.endsWith(`${path.sep}node_modules`)) {\n index = file.length - 13\n }\n if (index < 0) {\n throw new Error(`File \"${file}\" not under the source directory \"${fileSet.src}\"`)\n }\n return dest + file.substring(index)\n }\n }\n}\n\nexport async function copyAppFiles(fileSet: ResolvedFileSet, packager: Packager, transformer: FileTransformer) {\n const metadata = fileSet.metadata\n // search auto unpacked dir\n const taskManager = new AsyncTaskManager(packager.cancellationToken)\n const createdParentDirs = new Set<string>()\n\n const fileCopier = new FileCopier(file => {\n // https://github.com/electron-userland/electron-builder/issues/3038\n return !(isLibOrExe(file) || file.endsWith(\".node\"))\n }, transformer)\n const links: Array<Link> = []\n for (let i = 0, n = fileSet.files.length; i < n; i++) {\n const sourceFile = fileSet.files[i]\n const stat = metadata.get(sourceFile)\n if (stat == null) {\n // dir\n continue\n }\n\n const destinationFile = getDestinationPath(sourceFile, fileSet)\n if (stat.isSymbolicLink()) {\n links.push({file: destinationFile, link: await readlink(sourceFile)})\n continue\n }\n\n const fileParent = path.dirname(destinationFile)\n if (!createdParentDirs.has(fileParent)) {\n createdParentDirs.add(fileParent)\n await ensureDir(fileParent)\n }\n\n taskManager.addTask(fileCopier.copy(sourceFile, destinationFile, stat))\n if (taskManager.tasks.length > MAX_FILE_REQUESTS) {\n await taskManager.awaitTasks()\n }\n }\n\n if (taskManager.tasks.length > 0) {\n await taskManager.awaitTasks()\n }\n if (links.length > 0) {\n await BluebirdPromise.map(links, it => symlink(it.link, it.file), CONCURRENCY)\n }\n}\n\n// os path separator is used\nexport interface ResolvedFileSet {\n src: string\n destination: string\n\n files: Array<string>\n metadata: Map<string, Stats>\n transformedFiles?: Map<number, string | Buffer> | null\n}\n\n// used only for ASAR, if no asar, file transformed on the fly\nexport async function transformFiles(transformer: FileTransformer, fileSet: ResolvedFileSet): Promise<void> {\n if (transformer == null) {\n return\n }\n\n let transformedFiles = fileSet.transformedFiles\n if (fileSet.transformedFiles == null) {\n transformedFiles = new Map()\n fileSet.transformedFiles = transformedFiles\n }\n\n const metadata = fileSet.metadata\n await BluebirdPromise.filter(fileSet.files, (it, index) => {\n const fileStat = metadata.get(it)\n if (fileStat == null || !fileStat.isFile()) {\n return false\n }\n\n const transformedValue = transformer(it)\n if (transformedValue == null) {\n return false\n }\n\n if (typeof transformedValue === \"object\" && \"then\" in transformedValue) {\n return (transformedValue as Promise<any>)\n .then(it => {\n if (it != null) {\n transformedFiles!!.set(index, it)\n }\n return false\n })\n }\n transformedFiles!!.set(index, transformedValue as string | Buffer)\n return false\n }, CONCURRENCY)\n}\n\nexport async function computeFileSets(matchers: Array<FileMatcher>, transformer: FileTransformer | null, platformPackager: PlatformPackager<any>, isElectronCompile: boolean): Promise<Array<ResolvedFileSet>> {\n const fileSets: Array<ResolvedFileSet> = []\n const packager = platformPackager.info\n\n for (const matcher of matchers) {\n const fileWalker = new AppFileWalker(matcher, packager)\n\n const fromStat = await statOrNull(matcher.from)\n if (fromStat == null) {\n log.debug({directory: matcher.from, reason: \"doesn't exist\"}, `skipped copying`)\n continue\n }\n\n const files = await walk(matcher.from, fileWalker.filter, fileWalker)\n const metadata = fileWalker.metadata\n fileSets.push(validateFileSet({src: matcher.from, files, metadata, destination: matcher.to}))\n }\n\n if (isElectronCompile) {\n // cache files should be first (better IO)\n fileSets.unshift(await compileUsingElectronCompile(fileSets[0], packager))\n }\n return fileSets\n}\n\nfunction getNodeModuleExcludedExts(platformPackager: PlatformPackager<any>) {\n // do not exclude *.h files (https://github.com/electron-userland/electron-builder/issues/2852)\n const result = [\".o\", \".obj\"].concat(excludedExts.split(\",\").map(it => `.${it}`))\n if (platformPackager.config.includePdb !== true) {\n result.push(\".pdb\")\n }\n if (platformPackager.platform !== Platform.WINDOWS) {\n // https://github.com/electron-userland/electron-builder/issues/1738\n result.push(\".dll\")\n result.push(\".exe\")\n }\n return result\n}\n\nfunction validateFileSet(fileSet: ResolvedFileSet): ResolvedFileSet {\n if (fileSet.src == null || fileSet.src.length === 0) {\n throw new Error(\"fileset src is empty\")\n }\n return fileSet\n}\n\n/** @internal */\nexport async function computeNodeModuleFileSets(platformPackager: PlatformPackager<any>, mainMatcher: FileMatcher): Promise<Array<ResolvedFileSet>> {\n const deps = await platformPackager.info.getNodeDependencyInfo(platformPackager.platform).value\n const nodeModuleExcludedExts = getNodeModuleExcludedExts(platformPackager)\n // serial execution because copyNodeModules is concurrent and so, no need to increase queue/pressure\n const result = new Array<ResolvedFileSet>()\n let index = 0\n for (const info of deps) {\n const source = info.dir\n const destination = getDestinationPath(source, {src: mainMatcher.from, destination: mainMatcher.to, files: [], metadata: null as any})\n\n // use main matcher patterns, so, user can exclude some files in such hoisted node modules\n // source here includes node_modules, but pattern base should be without because users expect that pattern \"!node_modules/loot-core/src{,/**/*}\" will work\n const matcher = new FileMatcher(path.dirname(source), destination, mainMatcher.macroExpander, mainMatcher.patterns)\n const copier = new NodeModuleCopyHelper(matcher, platformPackager.info)\n const files = await copier.collectNodeModules(source, info.deps.map(it => it.name), nodeModuleExcludedExts)\n result[index++] = validateFileSet({src: source, destination, files, metadata: copier.metadata})\n }\n return result\n}\n\nasync function compileUsingElectronCompile(mainFileSet: ResolvedFileSet, packager: Packager): Promise<ResolvedFileSet> {\n log.info(\"compiling using electron-compile\")\n\n const electronCompileCache = await packager.tempDirManager.getTempDir({prefix: \"electron-compile-cache\"})\n const cacheDir = path.join(electronCompileCache, \".cache\")\n // clear and create cache dir\n await ensureDir(cacheDir)\n const compilerHost = await createElectronCompilerHost(mainFileSet.src, cacheDir)\n const nextSlashIndex = mainFileSet.src.length + 1\n // pre-compute electron-compile to cache dir - we need to process only subdirectories, not direct files of app dir\n await BluebirdPromise.map(mainFileSet.files, file => {\n if (file.includes(NODE_MODULES_PATTERN) || file.includes(BOWER_COMPONENTS_PATTERN)\n || !file.includes(path.sep, nextSlashIndex) // ignore not root files\n || !mainFileSet.metadata.get(file)!.isFile()) {\n return null\n }\n return compilerHost.compile(file)\n .then(() => null)\n }, CONCURRENCY)\n\n await compilerHost.saveConfiguration()\n\n const metadata = new Map<string, Stats>()\n const cacheFiles = await walk(cacheDir, file => !file.startsWith(\".\"), {\n consume: (file, fileStat) => {\n if (fileStat.isFile()) {\n metadata.set(file, fileStat)\n }\n return null\n }\n })\n\n // add shim\n const shimPath = `${mainFileSet.src}${path.sep}${ELECTRON_COMPILE_SHIM_FILENAME}`\n mainFileSet.files.push(shimPath)\n mainFileSet.metadata.set(shimPath, {isFile: () => true, isDirectory: () => false, isSymbolicLink: () => false} as any)\n if (mainFileSet.transformedFiles == null) {\n mainFileSet.transformedFiles = new Map()\n }\n mainFileSet.transformedFiles.set(mainFileSet.files.length - 1, `\n'use strict';\nrequire('electron-compile').init(__dirname, require('path').resolve(__dirname, '${packager.metadata.main || \"index\"}'), true);\n`)\n return {src: electronCompileCache, files: cacheFiles, metadata, destination: mainFileSet.destination}\n}"],"sourceRoot":""}
1
+ {"version":3,"sources":["../../src/util/appFileCopier.ts"],"names":[],"mappings":"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","sourcesContent":["import BluebirdPromise from \"bluebird-lst\"\nimport { AsyncTaskManager, log } from \"builder-util\"\nimport { CONCURRENCY, FileCopier, FileTransformer, Link, MAX_FILE_REQUESTS, statOrNull, walk } from \"builder-util/out/fs\"\nimport { ensureDir, readlink, Stats, symlink } from \"fs-extra\"\nimport * as path from \"path\"\nimport { isLibOrExe } from \"../asar/unpackDetector\"\nimport { Platform } from \"../core\"\nimport { excludedExts, FileMatcher } from \"../fileMatcher\"\nimport { createElectronCompilerHost, NODE_MODULES_PATTERN } from \"../fileTransformer\"\nimport { Packager } from \"../packager\"\nimport { PlatformPackager } from \"../platformPackager\"\nimport { AppFileWalker } from \"./AppFileWalker\"\nimport { NodeModuleCopyHelper } from \"./NodeModuleCopyHelper\"\n\nconst BOWER_COMPONENTS_PATTERN = `${path.sep}bower_components${path.sep}`\n/** @internal */\nexport const ELECTRON_COMPILE_SHIM_FILENAME = \"__shim.js\"\n\nexport function getDestinationPath(file: string, fileSet: ResolvedFileSet) {\n if (file === fileSet.src) {\n return fileSet.destination\n }\n else {\n const src = fileSet.src\n const dest = fileSet.destination\n if (file.length > src.length && file.startsWith(src) && file[src.length] === path.sep) {\n return dest + file.substring(src.length)\n }\n else {\n // hoisted node_modules\n // not lastIndexOf, to ensure that nested module (top-level module depends on) copied to parent node_modules, not to top-level directory\n // project https://github.com/angexis/punchcontrol/commit/cf929aba55c40d0d8901c54df7945e1d001ce022\n let index = file.indexOf(NODE_MODULES_PATTERN)\n if (index < 0 && file.endsWith(`${path.sep}node_modules`)) {\n index = file.length - 13\n }\n if (index < 0) {\n throw new Error(`File \"${file}\" not under the source directory \"${fileSet.src}\"`)\n }\n return dest + file.substring(index)\n }\n }\n}\n\nexport async function copyAppFiles(fileSet: ResolvedFileSet, packager: Packager, transformer: FileTransformer) {\n const metadata = fileSet.metadata\n // search auto unpacked dir\n const taskManager = new AsyncTaskManager(packager.cancellationToken)\n const createdParentDirs = new Set<string>()\n\n const fileCopier = new FileCopier(file => {\n // https://github.com/electron-userland/electron-builder/issues/3038\n return !(isLibOrExe(file) || file.endsWith(\".node\"))\n }, transformer)\n const links: Array<Link> = []\n for (let i = 0, n = fileSet.files.length; i < n; i++) {\n const sourceFile = fileSet.files[i]\n const stat = metadata.get(sourceFile)\n if (stat == null) {\n // dir\n continue\n }\n\n const destinationFile = getDestinationPath(sourceFile, fileSet)\n if (stat.isSymbolicLink()) {\n links.push({file: destinationFile, link: await readlink(sourceFile)})\n continue\n }\n\n const fileParent = path.dirname(destinationFile)\n if (!createdParentDirs.has(fileParent)) {\n createdParentDirs.add(fileParent)\n await ensureDir(fileParent)\n }\n\n taskManager.addTask(fileCopier.copy(sourceFile, destinationFile, stat))\n if (taskManager.tasks.length > MAX_FILE_REQUESTS) {\n await taskManager.awaitTasks()\n }\n }\n\n if (taskManager.tasks.length > 0) {\n await taskManager.awaitTasks()\n }\n if (links.length > 0) {\n await BluebirdPromise.map(links, it => symlink(it.link, it.file), CONCURRENCY)\n }\n}\n\n// os path separator is used\nexport interface ResolvedFileSet {\n src: string\n destination: string\n\n files: Array<string>\n metadata: Map<string, Stats>\n transformedFiles?: Map<number, string | Buffer> | null\n}\n\n// used only for ASAR, if no asar, file transformed on the fly\nexport async function transformFiles(transformer: FileTransformer, fileSet: ResolvedFileSet): Promise<void> {\n if (transformer == null) {\n return\n }\n\n let transformedFiles = fileSet.transformedFiles\n if (fileSet.transformedFiles == null) {\n transformedFiles = new Map()\n fileSet.transformedFiles = transformedFiles\n }\n\n const metadata = fileSet.metadata\n await BluebirdPromise.filter(fileSet.files, (it, index) => {\n const fileStat = metadata.get(it)\n if (fileStat == null || !fileStat.isFile()) {\n return false\n }\n\n const transformedValue = transformer(it)\n if (transformedValue == null) {\n return false\n }\n\n if (typeof transformedValue === \"object\" && \"then\" in transformedValue) {\n return (transformedValue as Promise<any>)\n .then(it => {\n if (it != null) {\n transformedFiles!!.set(index, it)\n }\n return false\n })\n }\n transformedFiles!!.set(index, transformedValue as string | Buffer)\n return false\n }, CONCURRENCY)\n}\n\nexport async function computeFileSets(matchers: Array<FileMatcher>, transformer: FileTransformer | null, platformPackager: PlatformPackager<any>, isElectronCompile: boolean): Promise<Array<ResolvedFileSet>> {\n const fileSets: Array<ResolvedFileSet> = []\n const packager = platformPackager.info\n\n for (const matcher of matchers) {\n const fileWalker = new AppFileWalker(matcher, packager)\n\n const fromStat = await statOrNull(matcher.from)\n if (fromStat == null) {\n log.debug({directory: matcher.from, reason: \"doesn't exist\"}, `skipped copying`)\n continue\n }\n\n const files = await walk(matcher.from, fileWalker.filter, fileWalker)\n const metadata = fileWalker.metadata\n fileSets.push(validateFileSet({src: matcher.from, files, metadata, destination: matcher.to}))\n }\n\n if (isElectronCompile) {\n // cache files should be first (better IO)\n fileSets.unshift(await compileUsingElectronCompile(fileSets[0], packager))\n }\n return fileSets\n}\n\nfunction getNodeModuleExcludedExts(platformPackager: PlatformPackager<any>) {\n // do not exclude *.h files (https://github.com/electron-userland/electron-builder/issues/2852)\n const result = [\".o\", \".obj\"].concat(excludedExts.split(\",\").map(it => `.${it}`))\n if (platformPackager.config.includePdb !== true) {\n result.push(\".pdb\")\n }\n if (platformPackager.platform !== Platform.WINDOWS) {\n // https://github.com/electron-userland/electron-builder/issues/1738\n result.push(\".dll\")\n result.push(\".exe\")\n }\n return result\n}\n\nfunction validateFileSet(fileSet: ResolvedFileSet): ResolvedFileSet {\n if (fileSet.src == null || fileSet.src.length === 0) {\n throw new Error(\"fileset src is empty\")\n }\n return fileSet\n}\n\n/** @internal */\nexport async function computeNodeModuleFileSets(platformPackager: PlatformPackager<any>, mainMatcher: FileMatcher): Promise<Array<ResolvedFileSet>> {\n const deps = await platformPackager.info.getNodeDependencyInfo(platformPackager.platform).value\n const nodeModuleExcludedExts = getNodeModuleExcludedExts(platformPackager)\n // serial execution because copyNodeModules is concurrent and so, no need to increase queue/pressure\n const result = new Array<ResolvedFileSet>()\n let index = 0\n for (const info of deps) {\n const source = info.dir\n const destination = getDestinationPath(source, {src: mainMatcher.from, destination: mainMatcher.to, files: [], metadata: null as any})\n\n // use main matcher patterns, so, user can exclude some files in such hoisted node modules\n // source here includes node_modules, but pattern base should be without because users expect that pattern \"!node_modules/loot-core/src{,/**/*}\" will work\n const matcher = new FileMatcher(path.dirname(source), destination, mainMatcher.macroExpander, mainMatcher.patterns)\n const copier = new NodeModuleCopyHelper(matcher, platformPackager.info)\n const files = await copier.collectNodeModules(source, info.deps.map(it => it.name), nodeModuleExcludedExts)\n result[index++] = validateFileSet({src: source, destination, files, metadata: copier.metadata})\n }\n return result\n}\n\nasync function compileUsingElectronCompile(mainFileSet: ResolvedFileSet, packager: Packager): Promise<ResolvedFileSet> {\n log.info(\"compiling using electron-compile\")\n\n const electronCompileCache = await packager.tempDirManager.getTempDir({prefix: \"electron-compile-cache\"})\n const cacheDir = path.join(electronCompileCache, \".cache\")\n // clear and create cache dir\n await ensureDir(cacheDir)\n const compilerHost = await createElectronCompilerHost(mainFileSet.src, cacheDir)\n const nextSlashIndex = mainFileSet.src.length + 1\n // pre-compute electron-compile to cache dir - we need to process only subdirectories, not direct files of app dir\n await BluebirdPromise.map(mainFileSet.files, file => {\n if (file.includes(NODE_MODULES_PATTERN) || file.includes(BOWER_COMPONENTS_PATTERN)\n || !file.includes(path.sep, nextSlashIndex) // ignore not root files\n || !mainFileSet.metadata.get(file)!.isFile()) {\n return null\n }\n return compilerHost.compile(file)\n .then(() => null)\n }, CONCURRENCY)\n\n await compilerHost.saveConfiguration()\n\n const metadata = new Map<string, Stats>()\n const cacheFiles = await walk(cacheDir, file => !file.startsWith(\".\"), {\n consume: (file, fileStat) => {\n if (fileStat.isFile()) {\n metadata.set(file, fileStat)\n }\n return null\n }\n })\n\n // add shim\n const shimPath = `${mainFileSet.src}${path.sep}${ELECTRON_COMPILE_SHIM_FILENAME}`\n mainFileSet.files.push(shimPath)\n mainFileSet.metadata.set(shimPath, {isFile: () => true, isDirectory: () => false, isSymbolicLink: () => false} as any)\n if (mainFileSet.transformedFiles == null) {\n mainFileSet.transformedFiles = new Map()\n }\n mainFileSet.transformedFiles.set(mainFileSet.files.length - 1, `\n'use strict';\nrequire('electron-compile').init(__dirname, require('path').resolve(__dirname, '${packager.metadata.main || \"index\"}'), true);\n`)\n return {src: electronCompileCache, files: cacheFiles, metadata, destination: mainFileSet.destination}\n}"],"sourceRoot":""}
@@ -64,86 +64,80 @@ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj;
64
64
 
65
65
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
66
66
 
67
- let BuildCacheManager =
68
- /** @class */
69
- (() => {
70
- class BuildCacheManager {
71
- constructor(outDir, executableFile, arch) {
72
- this.executableFile = executableFile;
73
- this.cacheInfo = null;
74
- this.newDigest = null;
75
- this.cacheDir = path.join(outDir, ".cache", _builderUtil().Arch[arch]);
76
- this.cacheFile = path.join(this.cacheDir, "app.exe");
77
- this.cacheInfoFile = path.join(this.cacheDir, "info.json");
78
- }
79
-
80
- async copyIfValid(digest) {
81
- this.newDigest = digest;
82
- this.cacheInfo = await (0, _promise().orNullIfFileNotExist)((0, _fsExtra().readJson)(this.cacheInfoFile));
83
- const oldDigest = this.cacheInfo == null ? null : this.cacheInfo.executableDigest;
84
-
85
- if (oldDigest !== digest) {
86
- _builderUtil().log.debug({
87
- oldDigest,
88
- newDigest: digest
89
- }, "no valid cached executable found");
67
+ class BuildCacheManager {
68
+ constructor(outDir, executableFile, arch) {
69
+ this.executableFile = executableFile;
70
+ this.cacheInfo = null;
71
+ this.newDigest = null;
72
+ this.cacheDir = path.join(outDir, ".cache", _builderUtil().Arch[arch]);
73
+ this.cacheFile = path.join(this.cacheDir, "app.exe");
74
+ this.cacheInfoFile = path.join(this.cacheDir, "info.json");
75
+ }
90
76
 
91
- return false;
92
- }
77
+ async copyIfValid(digest) {
78
+ this.newDigest = digest;
79
+ this.cacheInfo = await (0, _promise().orNullIfFileNotExist)((0, _fsExtra().readJson)(this.cacheInfoFile));
80
+ const oldDigest = this.cacheInfo == null ? null : this.cacheInfo.executableDigest;
93
81
 
82
+ if (oldDigest !== digest) {
94
83
  _builderUtil().log.debug({
95
- cacheFile: this.cacheFile,
96
- file: this.executableFile
97
- }, `copying cached executable`);
98
-
99
- try {
100
- await (0, _fs().copyFile)(this.cacheFile, this.executableFile, false);
101
- return true;
102
- } catch (e) {
103
- if (e.code === "ENOENT" || e.code === "ENOTDIR") {
104
- _builderUtil().log.debug({
105
- error: e.code
106
- }, "copy cached executable failed");
107
- } else {
108
- _builderUtil().log.warn({
109
- error: e.stack || e
110
- }, `cannot copy cached executable`);
111
- }
112
- }
84
+ oldDigest,
85
+ newDigest: digest
86
+ }, "no valid cached executable found");
113
87
 
114
88
  return false;
115
89
  }
116
90
 
117
- async save() {
118
- if (this.newDigest == null) {
119
- throw new Error("call copyIfValid before");
120
- }
91
+ _builderUtil().log.debug({
92
+ cacheFile: this.cacheFile,
93
+ file: this.executableFile
94
+ }, `copying cached executable`);
121
95
 
122
- if (this.cacheInfo == null) {
123
- this.cacheInfo = {
124
- executableDigest: this.newDigest
125
- };
96
+ try {
97
+ await (0, _fs().copyFile)(this.cacheFile, this.executableFile, false);
98
+ return true;
99
+ } catch (e) {
100
+ if (e.code === "ENOENT" || e.code === "ENOTDIR") {
101
+ _builderUtil().log.debug({
102
+ error: e.code
103
+ }, "copy cached executable failed");
126
104
  } else {
127
- this.cacheInfo.executableDigest = this.newDigest;
128
- }
129
-
130
- try {
131
- await (0, _fsExtra().ensureDir)(this.cacheDir);
132
- await Promise.all([(0, _fsExtra().writeJson)(this.cacheInfoFile, this.cacheInfo), (0, _fs().copyFile)(this.executableFile, this.cacheFile, false)]);
133
- } catch (e) {
134
105
  _builderUtil().log.warn({
135
106
  error: e.stack || e
136
- }, `cannot save build cache`);
107
+ }, `cannot copy cached executable`);
137
108
  }
138
109
  }
139
110
 
111
+ return false;
140
112
  }
141
113
 
142
- BuildCacheManager.VERSION = "0";
143
- return BuildCacheManager;
144
- })();
114
+ async save() {
115
+ if (this.newDigest == null) {
116
+ throw new Error("call copyIfValid before");
117
+ }
118
+
119
+ if (this.cacheInfo == null) {
120
+ this.cacheInfo = {
121
+ executableDigest: this.newDigest
122
+ };
123
+ } else {
124
+ this.cacheInfo.executableDigest = this.newDigest;
125
+ }
126
+
127
+ try {
128
+ await (0, _fsExtra().ensureDir)(this.cacheDir);
129
+ await Promise.all([(0, _fsExtra().writeJson)(this.cacheInfoFile, this.cacheInfo), (0, _fs().copyFile)(this.executableFile, this.cacheFile, false)]);
130
+ } catch (e) {
131
+ _builderUtil().log.warn({
132
+ error: e.stack || e
133
+ }, `cannot save build cache`);
134
+ }
135
+ }
136
+
137
+ }
145
138
 
146
139
  exports.BuildCacheManager = BuildCacheManager;
140
+ BuildCacheManager.VERSION = "0";
147
141
 
148
142
  async function digest(hash, files) {
149
143
  // do not use pipe - better do bulk file read (https://github.com/yarnpkg/yarn/commit/7a63e0d23c46a4564bc06645caf8a59690f04d01)
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/util/cacheManager.ts"],"names":[],"mappings":"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","sourcesContent":["import BluebirdPromise from \"bluebird-lst\"\nimport { Arch, log } from \"builder-util\"\nimport { copyFile } from \"builder-util/out/fs\"\nimport { orNullIfFileNotExist } from \"builder-util/out/promise\"\nimport { Hash } from \"crypto\"\nimport { ensureDir, readFile, readJson, writeJson } from \"fs-extra\"\nimport * as path from \"path\"\n\nexport interface BuildCacheInfo {\n executableDigest: string\n}\n\nexport class BuildCacheManager {\n static VERSION: string = \"0\"\n\n readonly cacheDir: string\n readonly cacheInfoFile: string\n readonly cacheFile: string\n\n cacheInfo: BuildCacheInfo | null = null\n\n private newDigest: string | null = null\n\n constructor(outDir: string, private readonly executableFile: string, arch: Arch) {\n this.cacheDir = path.join(outDir, \".cache\", Arch[arch])\n this.cacheFile = path.join(this.cacheDir, \"app.exe\")\n this.cacheInfoFile = path.join(this.cacheDir, \"info.json\")\n }\n\n async copyIfValid(digest: string): Promise<boolean> {\n this.newDigest = digest\n\n this.cacheInfo = await orNullIfFileNotExist(readJson(this.cacheInfoFile))\n const oldDigest = this.cacheInfo == null ? null : this.cacheInfo.executableDigest\n if (oldDigest !== digest) {\n log.debug({oldDigest, newDigest: digest}, \"no valid cached executable found\")\n return false\n }\n\n log.debug({cacheFile: this.cacheFile, file: this.executableFile}, `copying cached executable`)\n try {\n await copyFile(this.cacheFile, this.executableFile, false)\n return true\n }\n catch (e) {\n if (e.code === \"ENOENT\" || e.code === \"ENOTDIR\") {\n log.debug({error: e.code}, \"copy cached executable failed\")\n }\n else {\n log.warn({error: e.stack || e}, `cannot copy cached executable`)\n }\n }\n return false\n }\n\n async save() {\n if (this.newDigest == null) {\n throw new Error(\"call copyIfValid before\")\n }\n\n if (this.cacheInfo == null) {\n this.cacheInfo = {executableDigest: this.newDigest}\n }\n else {\n this.cacheInfo.executableDigest = this.newDigest\n }\n\n try {\n await ensureDir(this.cacheDir)\n await Promise.all([writeJson(this.cacheInfoFile, this.cacheInfo), copyFile(this.executableFile, this.cacheFile, false)])\n }\n catch (e) {\n log.warn({error: e.stack || e}, `cannot save build cache`)\n }\n }\n}\n\nexport async function digest(hash: Hash, files: Array<string>) {\n // do not use pipe - better do bulk file read (https://github.com/yarnpkg/yarn/commit/7a63e0d23c46a4564bc06645caf8a59690f04d01)\n for (const content of await BluebirdPromise.map(files, it => readFile(it))) {\n hash.update(content)\n }\n\n hash.update(BuildCacheManager.VERSION)\n return hash.digest(\"base64\")\n}"],"sourceRoot":""}
1
+ {"version":3,"sources":["../../src/util/cacheManager.ts"],"names":[],"mappings":"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","sourcesContent":["import BluebirdPromise from \"bluebird-lst\"\nimport { Arch, log } from \"builder-util\"\nimport { copyFile } from \"builder-util/out/fs\"\nimport { orNullIfFileNotExist } from \"builder-util/out/promise\"\nimport { Hash } from \"crypto\"\nimport { ensureDir, readFile, readJson, writeJson } from \"fs-extra\"\nimport * as path from \"path\"\n\nexport interface BuildCacheInfo {\n executableDigest: string\n}\n\nexport class BuildCacheManager {\n static VERSION: string = \"0\"\n\n readonly cacheDir: string\n readonly cacheInfoFile: string\n readonly cacheFile: string\n\n cacheInfo: BuildCacheInfo | null = null\n\n private newDigest: string | null = null\n\n constructor(outDir: string, private readonly executableFile: string, arch: Arch) {\n this.cacheDir = path.join(outDir, \".cache\", Arch[arch])\n this.cacheFile = path.join(this.cacheDir, \"app.exe\")\n this.cacheInfoFile = path.join(this.cacheDir, \"info.json\")\n }\n\n async copyIfValid(digest: string): Promise<boolean> {\n this.newDigest = digest\n\n this.cacheInfo = await orNullIfFileNotExist(readJson(this.cacheInfoFile))\n const oldDigest = this.cacheInfo == null ? null : this.cacheInfo.executableDigest\n if (oldDigest !== digest) {\n log.debug({oldDigest, newDigest: digest}, \"no valid cached executable found\")\n return false\n }\n\n log.debug({cacheFile: this.cacheFile, file: this.executableFile}, `copying cached executable`)\n try {\n await copyFile(this.cacheFile, this.executableFile, false)\n return true\n }\n catch (e) {\n if (e.code === \"ENOENT\" || e.code === \"ENOTDIR\") {\n log.debug({error: e.code}, \"copy cached executable failed\")\n }\n else {\n log.warn({error: e.stack || e}, `cannot copy cached executable`)\n }\n }\n return false\n }\n\n async save() {\n if (this.newDigest == null) {\n throw new Error(\"call copyIfValid before\")\n }\n\n if (this.cacheInfo == null) {\n this.cacheInfo = {executableDigest: this.newDigest}\n }\n else {\n this.cacheInfo.executableDigest = this.newDigest\n }\n\n try {\n await ensureDir(this.cacheDir)\n await Promise.all([writeJson(this.cacheInfoFile, this.cacheInfo), copyFile(this.executableFile, this.cacheFile, false)])\n }\n catch (e) {\n log.warn({error: e.stack || e}, `cannot save build cache`)\n }\n }\n}\n\nexport async function digest(hash: Hash, files: Array<string>) {\n // do not use pipe - better do bulk file read (https://github.com/yarnpkg/yarn/commit/7a63e0d23c46a4564bc06645caf8a59690f04d01)\n for (const content of await BluebirdPromise.map(files, it => readFile(it))) {\n hash.update(content)\n }\n\n hash.update(BuildCacheManager.VERSION)\n return hash.digest(\"base64\")\n}"],"sourceRoot":""}
@@ -310,8 +310,8 @@ async function validateConfig(config, debugLogger) {
310
310
  } // noinspection JSUnusedGlobalSymbols
311
311
 
312
312
 
313
- validateSchema((await schemeDataPromise.value), config, {
314
- name: `electron-builder ${"22.7.0"}`,
313
+ validateSchema(await schemeDataPromise.value, config, {
314
+ name: `electron-builder ${"22.9.1"}`,
315
315
  postFormatter: (formattedError, error) => {
316
316
  if (debugLogger.isEnabled) {
317
317
  debugLogger.add("invalidConfig", (0, _builderUtil().safeStringifyJson)(error));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/util/config.ts"],"names":[],"mappings":"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","sourcesContent":["import { DebugLogger, deepAssign, InvalidConfigurationError, log, safeStringifyJson } from \"builder-util\"\nimport { statOrNull } from \"builder-util/out/fs\"\nimport { readJson } from \"fs-extra\"\nimport { Lazy } from \"lazy-val\"\nimport * as path from \"path\"\nimport { getConfig as _getConfig, loadParentConfig, orNullIfFileNotExist, ReadConfigRequest } from \"read-config-file\"\nimport { FileSet } from \"..\"\nimport { Configuration } from \"../configuration\"\nimport { reactCra } from \"../presets/rectCra\"\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst validateSchema = require(\"@develar/schema-utils\")\n\ndeclare const PACKAGE_VERSION: string\n\n// https://github.com/electron-userland/electron-builder/issues/1847\nfunction mergePublish(config: Configuration, configFromOptions: Configuration) {\n // if config from disk doesn't have publish (or object), no need to handle, it will be simply merged by deepAssign\n const publish = Array.isArray(config.publish) ? configFromOptions.publish : null\n if (publish != null) {\n delete (configFromOptions as any).publish\n }\n\n deepAssign(config, configFromOptions)\n\n if (publish == null) {\n return\n }\n\n const listOnDisk = config.publish as Array<any>\n if (listOnDisk.length === 0) {\n config.publish = publish\n }\n else {\n // apply to first\n Object.assign(listOnDisk[0], publish)\n }\n}\n\nexport async function getConfig(projectDir: string,\n configPath: string | null,\n configFromOptions: Configuration | null | undefined,\n packageMetadata: Lazy<{ [key: string]: any } | null> = new Lazy(() => orNullIfFileNotExist(readJson(path.join(projectDir, \"package.json\"))))): Promise<Configuration> {\n const configRequest: ReadConfigRequest = {packageKey: \"build\", configFilename: \"electron-builder\", projectDir, packageMetadata}\n const configAndEffectiveFile = await _getConfig<Configuration>(configRequest, configPath)\n const config = configAndEffectiveFile == null ? {} : configAndEffectiveFile.result\n if (configFromOptions != null) {\n mergePublish(config, configFromOptions)\n }\n\n if (configAndEffectiveFile != null) {\n log.info({file: configAndEffectiveFile.configFile == null ? 'package.json (\"build\" field)' : configAndEffectiveFile.configFile}, \"loaded configuration\")\n }\n\n if (config.extends == null && config.extends !== null) {\n const metadata = await packageMetadata.value || {}\n const devDependencies = metadata.devDependencies\n const dependencies = metadata.dependencies\n if ((dependencies != null && \"react-scripts\" in dependencies) || (devDependencies != null && \"react-scripts\" in devDependencies)) {\n config.extends = \"react-cra\"\n }\n else if (devDependencies != null && \"electron-webpack\" in devDependencies) {\n let file = \"electron-webpack/out/electron-builder.js\"\n try {\n file = require.resolve(file)\n }\n catch (ignore) {\n file = require.resolve(\"electron-webpack/electron-builder.yml\")\n }\n config.extends = `file:${file}`\n }\n }\n\n let parentConfig: Configuration | null\n if (config.extends === \"react-cra\") {\n parentConfig = await reactCra(projectDir)\n log.info({preset: config.extends}, \"loaded parent configuration\")\n }\n else if (config.extends != null) {\n const parentConfigAndEffectiveFile = await loadParentConfig<Configuration>(configRequest, config.extends)\n log.info({file: parentConfigAndEffectiveFile.configFile}, \"loaded parent configuration\")\n parentConfig = parentConfigAndEffectiveFile.result\n }\n else {\n parentConfig = null\n }\n\n return doMergeConfigs(config, parentConfig)\n}\n\n// normalize for easy merge\nfunction normalizeFiles(configuration: Configuration, name: \"files\" | \"extraFiles\" | \"extraResources\") {\n let value = configuration[name]\n if (value == null) {\n return\n }\n\n if (!Array.isArray(value)) {\n value = [value]\n }\n\n itemLoop: for (let i = 0; i < value.length; i++) {\n let item = value[i]\n if (typeof item === \"string\") {\n // merge with previous if possible\n if (i !== 0) {\n let prevItemIndex = i - 1\n let prevItem: FileSet\n do {\n prevItem = value[prevItemIndex--] as FileSet\n } while (prevItem == null)\n\n if (prevItem.from == null && prevItem.to == null) {\n if (prevItem.filter == null) {\n prevItem.filter = [item]\n }\n else {\n (prevItem.filter as Array<string>).push(item)\n }\n value[i] = null as any\n continue itemLoop\n }\n }\n\n item = {\n filter: [item],\n }\n value[i] = item\n }\n else if (Array.isArray(item)) {\n throw new Error(`${name} configuration is invalid, nested array not expected for index ${i}: ` + item)\n }\n\n // make sure that merge logic is not complex - unify different presentations\n if (item.from === \".\") {\n item.from = undefined\n }\n\n if (item.to === \".\") {\n item.to = undefined\n }\n\n if (item.filter != null && typeof item.filter === \"string\") {\n item.filter = [item.filter]\n }\n }\n\n configuration[name] = value.filter(it => it != null)\n}\n\nfunction mergeFiles(configuration: Configuration, parentConfiguration: Configuration, mergedConfiguration: Configuration, name: \"files\" | \"extraFiles\" | \"extraResources\") {\n const list = configuration[name] as Array<FileSet> | null\n const parentList = parentConfiguration[name] as Array<FileSet> | null\n if (list == null || parentList == null) {\n return\n }\n\n const result = list.slice()\n mergedConfiguration[name] = result\n\n itemLoop: for (const item of parentConfiguration.files as Array<FileSet>) {\n for (const existingItem of list) {\n if (existingItem.from === item.from && existingItem.to === item.to) {\n if (item.filter != null) {\n if (existingItem.filter == null) {\n existingItem.filter = item.filter.slice()\n }\n else {\n existingItem.filter = (item.filter as Array<string>).concat(existingItem.filter)\n }\n }\n\n continue itemLoop\n }\n }\n\n // existing item not found, simply add\n result.push(item)\n }\n}\n\nexport function doMergeConfigs(configuration: Configuration, parentConfiguration: Configuration | null) {\n normalizeFiles(configuration, \"files\")\n normalizeFiles(configuration, \"extraFiles\")\n normalizeFiles(configuration, \"extraResources\")\n\n if (parentConfiguration == null) {\n return deepAssign(getDefaultConfig(), configuration)\n }\n\n normalizeFiles(parentConfiguration, \"files\")\n normalizeFiles(parentConfiguration, \"extraFiles\")\n normalizeFiles(parentConfiguration, \"extraResources\")\n\n const result = deepAssign(getDefaultConfig(), parentConfiguration, configuration)\n mergeFiles(configuration, parentConfiguration, result, \"files\")\n return result\n}\n\nfunction getDefaultConfig(): Configuration {\n return {\n directories: {\n output: \"dist\",\n buildResources: \"build\",\n },\n }\n}\n\nconst schemeDataPromise = new Lazy(() => readJson(path.join(__dirname, \"..\", \"..\", \"scheme.json\")))\n\nexport async function validateConfig(config: Configuration, debugLogger: DebugLogger) {\n const extraMetadata = config.extraMetadata\n if (extraMetadata != null) {\n if (extraMetadata.build != null) {\n throw new InvalidConfigurationError(`--em.build is deprecated, please specify as -c\"`)\n }\n if (extraMetadata.directories != null) {\n throw new InvalidConfigurationError(`--em.directories is deprecated, please specify as -c.directories\"`)\n }\n }\n\n const oldConfig: any = config\n if (oldConfig.npmSkipBuildFromSource === false) {\n throw new InvalidConfigurationError(`npmSkipBuildFromSource is deprecated, please use buildDependenciesFromSource\"`)\n }\n if (oldConfig.appImage != null && oldConfig.appImage.systemIntegration != null) {\n throw new InvalidConfigurationError(`appImage.systemIntegration is deprecated, https://github.com/TheAssassin/AppImageLauncher is used for desktop integration\"`)\n }\n\n // noinspection JSUnusedGlobalSymbols\n validateSchema(await schemeDataPromise.value, config, {\n name: `electron-builder ${PACKAGE_VERSION}`,\n postFormatter: (formattedError: string, error: any): string => {\n if (debugLogger.isEnabled) {\n debugLogger.add(\"invalidConfig\", safeStringifyJson(error))\n }\n\n const site = \"https://www.electron.build\"\n let url = `${site}/configuration/configuration`\n const targets = new Set([\"mac\", \"dmg\", \"pkg\", \"mas\", \"win\", \"nsis\", \"appx\", \"linux\", \"appimage\", \"snap\"])\n const dataPath: string = error.dataPath == null ? null : error.dataPath\n const targetPath = dataPath.startsWith(\".\") ? dataPath.substr(1).toLowerCase() : null\n if (targetPath != null && targets.has(targetPath)) {\n url = `${site}/configuration/${targetPath}`\n }\n\n return `${formattedError}\\n How to fix:\n 1. Open ${url}\n 2. Search the option name on the page (or type in into Search to find across the docs).\n * Not found? The option was deprecated or not exists (check spelling).\n * Found? Check that the option in the appropriate place. e.g. \"title\" only in the \"dmg\", not in the root.\n`\n },\n })\n}\n\nconst DEFAULT_APP_DIR_NAMES = [\"app\", \"www\"]\n\nexport async function computeDefaultAppDirectory(projectDir: string, userAppDir: string | null | undefined): Promise<string> {\n if (userAppDir != null) {\n const absolutePath = path.resolve(projectDir, userAppDir)\n const stat = await statOrNull(absolutePath)\n if (stat == null) {\n throw new InvalidConfigurationError(`Application directory ${userAppDir} doesn't exist`)\n }\n else if (!stat.isDirectory()) {\n throw new InvalidConfigurationError(`Application directory ${userAppDir} is not a directory`)\n }\n else if (projectDir === absolutePath) {\n log.warn({appDirectory: userAppDir}, `Specified application directory equals to project dir — superfluous or wrong configuration`)\n }\n return absolutePath\n }\n\n for (const dir of DEFAULT_APP_DIR_NAMES) {\n const absolutePath = path.join(projectDir, dir)\n const packageJson = path.join(absolutePath, \"package.json\")\n const stat = await statOrNull(packageJson)\n if (stat != null && stat.isFile()) {\n return absolutePath\n }\n }\n return projectDir\n}\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["../../src/util/config.ts"],"names":[],"mappings":"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","sourcesContent":["import { DebugLogger, deepAssign, InvalidConfigurationError, log, safeStringifyJson } from \"builder-util\"\nimport { statOrNull } from \"builder-util/out/fs\"\nimport { readJson } from \"fs-extra\"\nimport { Lazy } from \"lazy-val\"\nimport * as path from \"path\"\nimport { getConfig as _getConfig, loadParentConfig, orNullIfFileNotExist, ReadConfigRequest } from \"read-config-file\"\nimport { FileSet } from \"..\"\nimport { Configuration } from \"../configuration\"\nimport { reactCra } from \"../presets/rectCra\"\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst validateSchema = require(\"@develar/schema-utils\")\n\ndeclare const PACKAGE_VERSION: string\n\n// https://github.com/electron-userland/electron-builder/issues/1847\nfunction mergePublish(config: Configuration, configFromOptions: Configuration) {\n // if config from disk doesn't have publish (or object), no need to handle, it will be simply merged by deepAssign\n const publish = Array.isArray(config.publish) ? configFromOptions.publish : null\n if (publish != null) {\n delete (configFromOptions as any).publish\n }\n\n deepAssign(config, configFromOptions)\n\n if (publish == null) {\n return\n }\n\n const listOnDisk = config.publish as Array<any>\n if (listOnDisk.length === 0) {\n config.publish = publish\n }\n else {\n // apply to first\n Object.assign(listOnDisk[0], publish)\n }\n}\n\nexport async function getConfig(projectDir: string,\n configPath: string | null,\n configFromOptions: Configuration | null | undefined,\n packageMetadata: Lazy<{ [key: string]: any } | null> = new Lazy(() => orNullIfFileNotExist(readJson(path.join(projectDir, \"package.json\"))))): Promise<Configuration> {\n const configRequest: ReadConfigRequest = {packageKey: \"build\", configFilename: \"electron-builder\", projectDir, packageMetadata}\n const configAndEffectiveFile = await _getConfig<Configuration>(configRequest, configPath)\n const config = configAndEffectiveFile == null ? {} : configAndEffectiveFile.result\n if (configFromOptions != null) {\n mergePublish(config, configFromOptions)\n }\n\n if (configAndEffectiveFile != null) {\n log.info({file: configAndEffectiveFile.configFile == null ? 'package.json (\"build\" field)' : configAndEffectiveFile.configFile}, \"loaded configuration\")\n }\n\n if (config.extends == null && config.extends !== null) {\n const metadata = await packageMetadata.value || {}\n const devDependencies = metadata.devDependencies\n const dependencies = metadata.dependencies\n if ((dependencies != null && \"react-scripts\" in dependencies) || (devDependencies != null && \"react-scripts\" in devDependencies)) {\n config.extends = \"react-cra\"\n }\n else if (devDependencies != null && \"electron-webpack\" in devDependencies) {\n let file = \"electron-webpack/out/electron-builder.js\"\n try {\n file = require.resolve(file)\n }\n catch (ignore) {\n file = require.resolve(\"electron-webpack/electron-builder.yml\")\n }\n config.extends = `file:${file}`\n }\n }\n\n let parentConfig: Configuration | null\n if (config.extends === \"react-cra\") {\n parentConfig = await reactCra(projectDir)\n log.info({preset: config.extends}, \"loaded parent configuration\")\n }\n else if (config.extends != null) {\n const parentConfigAndEffectiveFile = await loadParentConfig<Configuration>(configRequest, config.extends)\n log.info({file: parentConfigAndEffectiveFile.configFile}, \"loaded parent configuration\")\n parentConfig = parentConfigAndEffectiveFile.result\n }\n else {\n parentConfig = null\n }\n\n return doMergeConfigs(config, parentConfig)\n}\n\n// normalize for easy merge\nfunction normalizeFiles(configuration: Configuration, name: \"files\" | \"extraFiles\" | \"extraResources\") {\n let value = configuration[name]\n if (value == null) {\n return\n }\n\n if (!Array.isArray(value)) {\n value = [value]\n }\n\n itemLoop: for (let i = 0; i < value.length; i++) {\n let item = value[i]\n if (typeof item === \"string\") {\n // merge with previous if possible\n if (i !== 0) {\n let prevItemIndex = i - 1\n let prevItem: FileSet\n do {\n prevItem = value[prevItemIndex--] as FileSet\n } while (prevItem == null)\n\n if (prevItem.from == null && prevItem.to == null) {\n if (prevItem.filter == null) {\n prevItem.filter = [item]\n }\n else {\n (prevItem.filter as Array<string>).push(item)\n }\n value[i] = null as any\n continue itemLoop\n }\n }\n\n item = {\n filter: [item],\n }\n value[i] = item\n }\n else if (Array.isArray(item)) {\n throw new Error(`${name} configuration is invalid, nested array not expected for index ${i}: ` + item)\n }\n\n // make sure that merge logic is not complex - unify different presentations\n if (item.from === \".\") {\n item.from = undefined\n }\n\n if (item.to === \".\") {\n item.to = undefined\n }\n\n if (item.filter != null && typeof item.filter === \"string\") {\n item.filter = [item.filter]\n }\n }\n\n configuration[name] = value.filter(it => it != null)\n}\n\nfunction mergeFiles(configuration: Configuration, parentConfiguration: Configuration, mergedConfiguration: Configuration, name: \"files\" | \"extraFiles\" | \"extraResources\") {\n const list = configuration[name] as Array<FileSet> | null\n const parentList = parentConfiguration[name] as Array<FileSet> | null\n if (list == null || parentList == null) {\n return\n }\n\n const result = list.slice()\n mergedConfiguration[name] = result\n\n itemLoop: for (const item of parentConfiguration.files as Array<FileSet>) {\n for (const existingItem of list) {\n if (existingItem.from === item.from && existingItem.to === item.to) {\n if (item.filter != null) {\n if (existingItem.filter == null) {\n existingItem.filter = item.filter.slice()\n }\n else {\n existingItem.filter = (item.filter as Array<string>).concat(existingItem.filter)\n }\n }\n\n continue itemLoop\n }\n }\n\n // existing item not found, simply add\n result.push(item)\n }\n}\n\nexport function doMergeConfigs(configuration: Configuration, parentConfiguration: Configuration | null) {\n normalizeFiles(configuration, \"files\")\n normalizeFiles(configuration, \"extraFiles\")\n normalizeFiles(configuration, \"extraResources\")\n\n if (parentConfiguration == null) {\n return deepAssign(getDefaultConfig(), configuration)\n }\n\n normalizeFiles(parentConfiguration, \"files\")\n normalizeFiles(parentConfiguration, \"extraFiles\")\n normalizeFiles(parentConfiguration, \"extraResources\")\n\n const result = deepAssign(getDefaultConfig(), parentConfiguration, configuration)\n mergeFiles(configuration, parentConfiguration, result, \"files\")\n return result\n}\n\nfunction getDefaultConfig(): Configuration {\n return {\n directories: {\n output: \"dist\",\n buildResources: \"build\",\n },\n }\n}\n\nconst schemeDataPromise = new Lazy(() => readJson(path.join(__dirname, \"..\", \"..\", \"scheme.json\")))\n\nexport async function validateConfig(config: Configuration, debugLogger: DebugLogger) {\n const extraMetadata = config.extraMetadata\n if (extraMetadata != null) {\n if (extraMetadata.build != null) {\n throw new InvalidConfigurationError(`--em.build is deprecated, please specify as -c\"`)\n }\n if (extraMetadata.directories != null) {\n throw new InvalidConfigurationError(`--em.directories is deprecated, please specify as -c.directories\"`)\n }\n }\n\n const oldConfig: any = config\n if (oldConfig.npmSkipBuildFromSource === false) {\n throw new InvalidConfigurationError(`npmSkipBuildFromSource is deprecated, please use buildDependenciesFromSource\"`)\n }\n if (oldConfig.appImage != null && oldConfig.appImage.systemIntegration != null) {\n throw new InvalidConfigurationError(`appImage.systemIntegration is deprecated, https://github.com/TheAssassin/AppImageLauncher is used for desktop integration\"`)\n }\n\n // noinspection JSUnusedGlobalSymbols\n validateSchema(await schemeDataPromise.value, config, {\n name: `electron-builder ${PACKAGE_VERSION}`,\n postFormatter: (formattedError: string, error: any): string => {\n if (debugLogger.isEnabled) {\n debugLogger.add(\"invalidConfig\", safeStringifyJson(error))\n }\n\n const site = \"https://www.electron.build\"\n let url = `${site}/configuration/configuration`\n const targets = new Set([\"mac\", \"dmg\", \"pkg\", \"mas\", \"win\", \"nsis\", \"appx\", \"linux\", \"appimage\", \"snap\"])\n const dataPath: string = error.dataPath == null ? null : error.dataPath\n const targetPath = dataPath.startsWith(\".\") ? dataPath.substr(1).toLowerCase() : null\n if (targetPath != null && targets.has(targetPath)) {\n url = `${site}/configuration/${targetPath}`\n }\n\n return `${formattedError}\\n How to fix:\n 1. Open ${url}\n 2. Search the option name on the page (or type in into Search to find across the docs).\n * Not found? The option was deprecated or not exists (check spelling).\n * Found? Check that the option in the appropriate place. e.g. \"title\" only in the \"dmg\", not in the root.\n`\n },\n })\n}\n\nconst DEFAULT_APP_DIR_NAMES = [\"app\", \"www\"]\n\nexport async function computeDefaultAppDirectory(projectDir: string, userAppDir: string | null | undefined): Promise<string> {\n if (userAppDir != null) {\n const absolutePath = path.resolve(projectDir, userAppDir)\n const stat = await statOrNull(absolutePath)\n if (stat == null) {\n throw new InvalidConfigurationError(`Application directory ${userAppDir} doesn't exist`)\n }\n else if (!stat.isDirectory()) {\n throw new InvalidConfigurationError(`Application directory ${userAppDir} is not a directory`)\n }\n else if (projectDir === absolutePath) {\n log.warn({appDirectory: userAppDir}, `Specified application directory equals to project dir — superfluous or wrong configuration`)\n }\n return absolutePath\n }\n\n for (const dir of DEFAULT_APP_DIR_NAMES) {\n const absolutePath = path.join(projectDir, dir)\n const packageJson = path.join(absolutePath, \"package.json\")\n const stat = await statOrNull(packageJson)\n if (stat != null && stat.isFile()) {\n return absolutePath\n }\n }\n return projectDir\n}\n"],"sourceRoot":""}
@@ -81,7 +81,7 @@ function clean(version) {
81
81
  }
82
82
 
83
83
  async function isOsVersionGreaterThanOrEqualTo(input) {
84
- return semver().gte((await macOsVersion.value), clean(input));
84
+ return semver().gte(await macOsVersion.value, clean(input));
85
85
  }
86
86
 
87
87
  function isMacOsHighSierra() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/util/macosVersion.ts"],"names":[],"mappings":";;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;AAEA,MAAM,YAAY,GAAG,KAAI,eAAJ,EAAiB,YAAW;AAC/C,QAAM,IAAI,GAAG,MAAM,yBAAS,kDAAT,EAA6D,MAA7D,CAAnB;AACA,QAAM,OAAO,GAAG,8DAA8D,IAA9D,CAAmE,IAAnE,CAAhB;;AACA,MAAI,CAAC,OAAL,EAAc;AACZ,UAAM,IAAI,KAAJ,CAAU,iCAAV,CAAN;AACD;;AACD,aAAI,KAAJ,CAAU;AAAC,IAAA,OAAO,EAAE,OAAO,CAAC,CAAD;AAAjB,GAAV,EAAiC,eAAjC;;AACA,SAAO,KAAK,CAAC,OAAO,CAAC,CAAD,CAAR,CAAZ;AACD,CARoB,CAArB;;AAUA,SAAS,KAAT,CAAe,OAAf,EAA8B;AAC5B,SAAO,OAAO,CAAC,KAAR,CAAc,GAAd,EAAmB,MAAnB,KAA8B,CAA9B,GAAkC,GAAG,OAAO,IAA5C,GAAmD,OAA1D;AACD;;AAED,eAAe,+BAAf,CAA+C,KAA/C,EAA4D;AAC1D,SAAO,MAAM,GAAC,GAAP,EAAW,MAAM,YAAY,CAAC,KAA9B,GAAqC,KAAK,CAAC,KAAD,CAA1C,CAAP;AACD;;AAEK,SAAU,iBAAV,GAA2B;AAC/B;AACA,SAAO,OAAO,CAAC,QAAR,KAAqB,QAArB,IAAiC,MAAM,GAAC,GAAP,CAAW,oBAAX,EAAwB,QAAxB,CAAxC;AACD;;AAEM,eAAe,aAAf,GAA4B;AACjC,SAAO,OAAO,CAAC,QAAR,KAAqB,QAArB,KAAiC,MAAM,+BAA+B,CAAC,SAAD,CAAtE,CAAP;AACD;;AAEK,SAAU,eAAV,GAAyB;AAC7B,SAAO,OAAO,CAAC,QAAR,KAAqB,QAArB,IAAiC,MAAM,GAAC,GAAP,CAAW,oBAAX,EAAwB,QAAxB,CAAxC;AACD,C","sourcesContent":["import { readFile } from \"fs-extra\"\nimport { Lazy } from \"lazy-val\"\nimport * as semver from \"semver\"\nimport { log } from \"builder-util/out/log\"\nimport { release as osRelease } from \"os\"\n\nconst macOsVersion = new Lazy<string>(async () => {\n const file = await readFile(\"/System/Library/CoreServices/SystemVersion.plist\", \"utf8\")\n const matches = /<key>ProductVersion<\\/key>[\\s\\S]*<string>([\\d.]+)<\\/string>/.exec(file)\n if (!matches) {\n throw new Error(\"Couldn't find the macOS version\")\n }\n log.debug({version: matches[1]}, \"macOS version\")\n return clean(matches[1])\n})\n\nfunction clean(version: string) {\n return version.split(\".\").length === 2 ? `${version}.0` : version\n}\n\nasync function isOsVersionGreaterThanOrEqualTo(input: string) {\n return semver.gte(await macOsVersion.value, clean(input))\n}\n\nexport function isMacOsHighSierra(): boolean {\n // 17.7.0 === 10.13.6\n return process.platform === \"darwin\" && semver.gte(osRelease(), \"17.7.0\")\n}\n\nexport async function isMacOsSierra() {\n return process.platform === \"darwin\" && await isOsVersionGreaterThanOrEqualTo(\"10.12.0\")\n}\n\nexport function isMacOsCatalina() {\n return process.platform === \"darwin\" && semver.gte(osRelease(), \"19.0.0\")\n}"],"sourceRoot":""}
1
+ {"version":3,"sources":["../../src/util/macosVersion.ts"],"names":[],"mappings":";;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;AAEA,MAAM,YAAY,GAAG,KAAI,eAAJ,EAAiB,YAAW;AAC/C,QAAM,IAAI,GAAG,MAAM,yBAAS,kDAAT,EAA6D,MAA7D,CAAnB;AACA,QAAM,OAAO,GAAG,8DAA8D,IAA9D,CAAmE,IAAnE,CAAhB;;AACA,MAAI,CAAC,OAAL,EAAc;AACZ,UAAM,IAAI,KAAJ,CAAU,iCAAV,CAAN;AACD;;AACD,aAAI,KAAJ,CAAU;AAAC,IAAA,OAAO,EAAE,OAAO,CAAC,CAAD;AAAjB,GAAV,EAAiC,eAAjC;;AACA,SAAO,KAAK,CAAC,OAAO,CAAC,CAAD,CAAR,CAAZ;AACD,CARoB,CAArB;;AAUA,SAAS,KAAT,CAAe,OAAf,EAA8B;AAC5B,SAAO,OAAO,CAAC,KAAR,CAAc,GAAd,EAAmB,MAAnB,KAA8B,CAA9B,GAAkC,GAAG,OAAO,IAA5C,GAAmD,OAA1D;AACD;;AAED,eAAe,+BAAf,CAA+C,KAA/C,EAA4D;AAC1D,SAAO,MAAM,GAAC,GAAP,CAAW,MAAM,YAAY,CAAC,KAA9B,EAAqC,KAAK,CAAC,KAAD,CAA1C,CAAP;AACD;;AAEK,SAAU,iBAAV,GAA2B;AAC/B;AACA,SAAO,OAAO,CAAC,QAAR,KAAqB,QAArB,IAAiC,MAAM,GAAC,GAAP,CAAW,oBAAX,EAAwB,QAAxB,CAAxC;AACD;;AAEM,eAAe,aAAf,GAA4B;AACjC,SAAO,OAAO,CAAC,QAAR,KAAqB,QAArB,KAAiC,MAAM,+BAA+B,CAAC,SAAD,CAAtE,CAAP;AACD;;AAEK,SAAU,eAAV,GAAyB;AAC7B,SAAO,OAAO,CAAC,QAAR,KAAqB,QAArB,IAAiC,MAAM,GAAC,GAAP,CAAW,oBAAX,EAAwB,QAAxB,CAAxC;AACD,C","sourcesContent":["import { readFile } from \"fs-extra\"\nimport { Lazy } from \"lazy-val\"\nimport * as semver from \"semver\"\nimport { log } from \"builder-util/out/log\"\nimport { release as osRelease } from \"os\"\n\nconst macOsVersion = new Lazy<string>(async () => {\n const file = await readFile(\"/System/Library/CoreServices/SystemVersion.plist\", \"utf8\")\n const matches = /<key>ProductVersion<\\/key>[\\s\\S]*<string>([\\d.]+)<\\/string>/.exec(file)\n if (!matches) {\n throw new Error(\"Couldn't find the macOS version\")\n }\n log.debug({version: matches[1]}, \"macOS version\")\n return clean(matches[1])\n})\n\nfunction clean(version: string) {\n return version.split(\".\").length === 2 ? `${version}.0` : version\n}\n\nasync function isOsVersionGreaterThanOrEqualTo(input: string) {\n return semver.gte(await macOsVersion.value, clean(input))\n}\n\nexport function isMacOsHighSierra(): boolean {\n // 17.7.0 === 10.13.6\n return process.platform === \"darwin\" && semver.gte(osRelease(), \"17.7.0\")\n}\n\nexport async function isMacOsSierra() {\n return process.platform === \"darwin\" && await isOsVersionGreaterThanOrEqualTo(\"10.12.0\")\n}\n\nexport function isMacOsCatalina() {\n return process.platform === \"darwin\" && semver.gte(osRelease(), \"19.0.0\")\n}"],"sourceRoot":""}
package/out/util/yarn.js CHANGED
@@ -96,7 +96,7 @@ function getGypEnv(frameworkInfo, platform, arch, buildFromSource) {
96
96
  common.npm_config_force = "true";
97
97
  }
98
98
 
99
- if (platform === "win32") {
99
+ if (platform === "win32" || platform === "darwin") {
100
100
  common.npm_config_target_libc = "unknown";
101
101
  }
102
102
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/util/yarn.ts"],"names":[],"mappings":"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","sourcesContent":["import { asArray, log, spawn } from \"builder-util\"\nimport { pathExists } from \"fs-extra\"\nimport { Lazy } from \"lazy-val\"\nimport { homedir } from \"os\"\nimport * as path from \"path\"\nimport { Configuration } from \"../configuration\"\nimport { executeAppBuilderAndWriteJson } from \"./appBuilder\"\nimport { NodeModuleDirInfo } from \"./packageDependencies\"\n\nexport async function installOrRebuild(config: Configuration, appDir: string, options: RebuildOptions, forceInstall: boolean = false) {\n const effectiveOptions = {\n buildFromSource: config.buildDependenciesFromSource === true,\n additionalArgs: asArray(config.npmArgs), ...options\n }\n let isDependenciesInstalled = false\n\n for (const fileOrDir of [\"node_modules\", \".pnp.js\"]) {\n if (await pathExists(path.join(appDir, fileOrDir))) {\n isDependenciesInstalled = true\n\n break\n }\n }\n\n if (forceInstall || !isDependenciesInstalled) {\n await installDependencies(appDir, effectiveOptions)\n }\n else {\n await rebuild(appDir, effectiveOptions)\n }\n}\n\nexport interface DesktopFrameworkInfo {\n version: string\n useCustomDist: boolean\n}\n\nfunction getElectronGypCacheDir() {\n return path.join(homedir(), \".electron-gyp\")\n}\n\nexport function getGypEnv(frameworkInfo: DesktopFrameworkInfo, platform: NodeJS.Platform, arch: string, buildFromSource: boolean) {\n const npmConfigArch = arch === \"armv7l\" ? \"arm\" : arch\n const common: any = {\n ...process.env,\n npm_config_arch: npmConfigArch,\n npm_config_target_arch: npmConfigArch,\n npm_config_platform: platform,\n npm_config_build_from_source: buildFromSource,\n // required for node-pre-gyp\n npm_config_target_platform: platform,\n npm_config_update_binary: true,\n npm_config_fallback_to_build: true,\n }\n\n if (platform !== process.platform) {\n common.npm_config_force = \"true\"\n }\n if (platform === \"win32\") {\n common.npm_config_target_libc = \"unknown\"\n }\n\n if (!frameworkInfo.useCustomDist) {\n return common\n }\n\n // https://github.com/nodejs/node-gyp/issues/21\n return {\n ...common,\n npm_config_disturl: \"https://electronjs.org/headers\",\n npm_config_target: frameworkInfo.version,\n npm_config_runtime: \"electron\",\n npm_config_devdir: getElectronGypCacheDir(),\n }\n}\n\nfunction installDependencies(appDir: string, options: RebuildOptions): Promise<any> {\n const platform = options.platform || process.platform\n const arch = options.arch || process.arch\n const additionalArgs = options.additionalArgs\n\n log.info({platform, arch, appDir}, `installing production dependencies`)\n let execPath = process.env.npm_execpath || process.env.NPM_CLI_JS\n const execArgs = [\"install\"]\n const npmUserAgent = process.env[\"npm_config_user_agent\"]\n const isYarn2 = npmUserAgent != null && npmUserAgent.startsWith(\"yarn/2.\")\n if (!isYarn2) {\n if (process.env.NPM_NO_BIN_LINKS === \"true\") {\n execArgs.push(\"--no-bin-links\")\n }\n execArgs.push(\"--production\")\n }\n\n if (!isRunningYarn(execPath)) {\n execArgs.push(\"--cache-min\", \"999999999\")\n }\n\n if (execPath == null) {\n execPath = getPackageToolPath()\n }\n else if (!isYarn2) {\n execArgs.unshift(execPath)\n execPath = process.env.npm_node_execpath || process.env.NODE_EXE || \"node\"\n }\n\n if (additionalArgs != null) {\n execArgs.push(...additionalArgs)\n }\n return spawn(execPath, execArgs, {\n cwd: appDir,\n env: getGypEnv(options.frameworkInfo, platform, arch, options.buildFromSource === true),\n })\n}\n\nfunction getPackageToolPath() {\n if (process.env.FORCE_YARN === \"true\") {\n return process.platform === \"win32\" ? \"yarn.cmd\" : \"yarn\"\n }\n else {\n return process.platform === \"win32\" ? \"npm.cmd\" : \"npm\"\n }\n}\n\nfunction isRunningYarn(execPath: string | null | undefined) {\n const userAgent = process.env.npm_config_user_agent\n return process.env.FORCE_YARN === \"true\" ||\n (execPath != null && path.basename(execPath).startsWith(\"yarn\")) ||\n (userAgent != null && /\\byarn\\b/.test(userAgent))\n}\n\nexport interface RebuildOptions {\n frameworkInfo: DesktopFrameworkInfo\n productionDeps?: Lazy<Array<NodeModuleDirInfo>>\n\n platform?: NodeJS.Platform\n arch?: string\n\n buildFromSource?: boolean\n\n additionalArgs?: Array<string> | null\n}\n\n/** @internal */\nexport async function rebuild(appDir: string, options: RebuildOptions) {\n const configuration: any = {\n dependencies: await options.productionDeps!!.value,\n nodeExecPath: process.execPath,\n platform: options.platform || process.platform,\n arch: options.arch || process.arch,\n additionalArgs: options.additionalArgs,\n execPath: process.env.npm_execpath || process.env.NPM_CLI_JS,\n buildFromSource: options.buildFromSource === true,\n }\n\n const env = getGypEnv(options.frameworkInfo, configuration.platform, configuration.arch, options.buildFromSource === true)\n await executeAppBuilderAndWriteJson([\"rebuild-node-modules\"], configuration, {env, cwd: appDir})\n}\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["../../src/util/yarn.ts"],"names":[],"mappings":"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","sourcesContent":["import { asArray, log, spawn } from \"builder-util\"\nimport { pathExists } from \"fs-extra\"\nimport { Lazy } from \"lazy-val\"\nimport { homedir } from \"os\"\nimport * as path from \"path\"\nimport { Configuration } from \"../configuration\"\nimport { executeAppBuilderAndWriteJson } from \"./appBuilder\"\nimport { NodeModuleDirInfo } from \"./packageDependencies\"\n\nexport async function installOrRebuild(config: Configuration, appDir: string, options: RebuildOptions, forceInstall: boolean = false) {\n const effectiveOptions = {\n buildFromSource: config.buildDependenciesFromSource === true,\n additionalArgs: asArray(config.npmArgs), ...options\n }\n let isDependenciesInstalled = false\n\n for (const fileOrDir of [\"node_modules\", \".pnp.js\"]) {\n if (await pathExists(path.join(appDir, fileOrDir))) {\n isDependenciesInstalled = true\n\n break\n }\n }\n\n if (forceInstall || !isDependenciesInstalled) {\n await installDependencies(appDir, effectiveOptions)\n }\n else {\n await rebuild(appDir, effectiveOptions)\n }\n}\n\nexport interface DesktopFrameworkInfo {\n version: string\n useCustomDist: boolean\n}\n\nfunction getElectronGypCacheDir() {\n return path.join(homedir(), \".electron-gyp\")\n}\n\nexport function getGypEnv(frameworkInfo: DesktopFrameworkInfo, platform: NodeJS.Platform, arch: string, buildFromSource: boolean) {\n const npmConfigArch = arch === \"armv7l\" ? \"arm\" : arch\n const common: any = {\n ...process.env,\n npm_config_arch: npmConfigArch,\n npm_config_target_arch: npmConfigArch,\n npm_config_platform: platform,\n npm_config_build_from_source: buildFromSource,\n // required for node-pre-gyp\n npm_config_target_platform: platform,\n npm_config_update_binary: true,\n npm_config_fallback_to_build: true,\n }\n\n if (platform !== process.platform) {\n common.npm_config_force = \"true\"\n }\n if (platform === \"win32\" || platform === \"darwin\") {\n common.npm_config_target_libc = \"unknown\"\n }\n\n if (!frameworkInfo.useCustomDist) {\n return common\n }\n\n // https://github.com/nodejs/node-gyp/issues/21\n return {\n ...common,\n npm_config_disturl: \"https://electronjs.org/headers\",\n npm_config_target: frameworkInfo.version,\n npm_config_runtime: \"electron\",\n npm_config_devdir: getElectronGypCacheDir(),\n }\n}\n\nfunction installDependencies(appDir: string, options: RebuildOptions): Promise<any> {\n const platform = options.platform || process.platform\n const arch = options.arch || process.arch\n const additionalArgs = options.additionalArgs\n\n log.info({platform, arch, appDir}, `installing production dependencies`)\n let execPath = process.env.npm_execpath || process.env.NPM_CLI_JS\n const execArgs = [\"install\"]\n const npmUserAgent = process.env[\"npm_config_user_agent\"]\n const isYarn2 = npmUserAgent != null && npmUserAgent.startsWith(\"yarn/2.\")\n if (!isYarn2) {\n if (process.env.NPM_NO_BIN_LINKS === \"true\") {\n execArgs.push(\"--no-bin-links\")\n }\n execArgs.push(\"--production\")\n }\n\n if (!isRunningYarn(execPath)) {\n execArgs.push(\"--cache-min\", \"999999999\")\n }\n\n if (execPath == null) {\n execPath = getPackageToolPath()\n }\n else if (!isYarn2) {\n execArgs.unshift(execPath)\n execPath = process.env.npm_node_execpath || process.env.NODE_EXE || \"node\"\n }\n\n if (additionalArgs != null) {\n execArgs.push(...additionalArgs)\n }\n return spawn(execPath, execArgs, {\n cwd: appDir,\n env: getGypEnv(options.frameworkInfo, platform, arch, options.buildFromSource === true),\n })\n}\n\nfunction getPackageToolPath() {\n if (process.env.FORCE_YARN === \"true\") {\n return process.platform === \"win32\" ? \"yarn.cmd\" : \"yarn\"\n }\n else {\n return process.platform === \"win32\" ? \"npm.cmd\" : \"npm\"\n }\n}\n\nfunction isRunningYarn(execPath: string | null | undefined) {\n const userAgent = process.env.npm_config_user_agent\n return process.env.FORCE_YARN === \"true\" ||\n (execPath != null && path.basename(execPath).startsWith(\"yarn\")) ||\n (userAgent != null && /\\byarn\\b/.test(userAgent))\n}\n\nexport interface RebuildOptions {\n frameworkInfo: DesktopFrameworkInfo\n productionDeps?: Lazy<Array<NodeModuleDirInfo>>\n\n platform?: NodeJS.Platform\n arch?: string\n\n buildFromSource?: boolean\n\n additionalArgs?: Array<string> | null\n}\n\n/** @internal */\nexport async function rebuild(appDir: string, options: RebuildOptions) {\n const configuration: any = {\n dependencies: await options.productionDeps!!.value,\n nodeExecPath: process.execPath,\n platform: options.platform || process.platform,\n arch: options.arch || process.arch,\n additionalArgs: options.additionalArgs,\n execPath: process.env.npm_execpath || process.env.NPM_CLI_JS,\n buildFromSource: options.buildFromSource === true,\n }\n\n const env = getGypEnv(options.frameworkInfo, configuration.platform, configuration.arch, options.buildFromSource === true)\n await executeAppBuilderAndWriteJson([\"rebuild-node-modules\"], configuration, {env, cwd: appDir})\n}\n"],"sourceRoot":""}
@@ -486,7 +486,7 @@ class WinPackager extends _platformPackager().PlatformPackager {
486
486
  hash.update(this.platformSpecificBuildOptions.certificateSubjectName || "no subjectName");
487
487
  buildCacheManager = new (_cacheManager().BuildCacheManager)(outDir, file, arch);
488
488
 
489
- if (await buildCacheManager.copyIfValid((await (0, _cacheManager().digest)(hash, files)))) {
489
+ if (await buildCacheManager.copyIfValid(await (0, _cacheManager().digest)(hash, files))) {
490
490
  timer.end();
491
491
  return;
492
492
  }
@@ -557,7 +557,7 @@ class WinPackager extends _platformPackager().PlatformPackager {
557
557
 
558
558
  const outResourcesDir = path.join(packContext.appOutDir, "resources", "app.asar.unpacked"); // noinspection JSUnusedLocalSymbols
559
559
 
560
- const fileToSign = await (0, _fs().walk)(outResourcesDir, (file, stat) => stat.isDirectory() || file.endsWith(".exe") || file.endsWith(".dll"));
560
+ const fileToSign = await (0, _fs().walk)(outResourcesDir, (file, stat) => stat.isDirectory() || file.endsWith(".exe") || this.isSignDlls() && file.endsWith(".dll"));
561
561
  await _bluebirdLst().default.map(fileToSign, file => this.sign(file), {
562
562
  concurrency: 4
563
563
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/winPackager.ts"],"names":[],"mappings":"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","sourcesContent":["import BluebirdPromise from \"bluebird-lst\"\nimport { Arch, asArray, InvalidConfigurationError, log, use, executeAppBuilder } from \"builder-util\"\nimport { parseDn } from \"builder-util-runtime\"\nimport { CopyFileTransformer, FileTransformer, walk } from \"builder-util/out/fs\"\nimport { createHash } from \"crypto\"\nimport { readdir } from \"fs-extra\"\nimport isCI from \"is-ci\"\nimport { Lazy } from \"lazy-val\"\nimport * as path from \"path\"\nimport { downloadCertificate } from \"./codeSign/codesign\"\nimport { CertificateFromStoreInfo, CertificateInfo, FileCodeSigningInfo, getCertificateFromStoreInfo, getCertInfo, sign, WindowsSignOptions } from \"./codeSign/windowsCodeSign\"\nimport { AfterPackContext } from \"./configuration\"\nimport { DIR_TARGET, Platform, Target } from \"./core\"\nimport { RequestedExecutionLevel, WindowsConfiguration } from \"./options/winOptions\"\nimport { Packager } from \"./packager\"\nimport { chooseNotNull, PlatformPackager } from \"./platformPackager\"\nimport AppXTarget from \"./targets/AppxTarget\"\nimport { NsisTarget } from \"./targets/nsis/NsisTarget\"\nimport { AppPackageHelper, CopyElevateHelper } from \"./targets/nsis/nsisUtil\"\nimport { WebInstallerTarget } from \"./targets/nsis/WebInstallerTarget\"\nimport { createCommonTarget } from \"./targets/targetFactory\"\nimport { BuildCacheManager, digest } from \"./util/cacheManager\"\nimport { isBuildCacheEnabled } from \"./util/flags\"\nimport { time } from \"./util/timer\"\nimport { getWindowsVm, VmManager } from \"./vm/vm\"\n\nexport class WinPackager extends PlatformPackager<WindowsConfiguration> {\n readonly cscInfo = new Lazy<FileCodeSigningInfo | CertificateFromStoreInfo | null>(() => {\n const platformSpecificBuildOptions = this.platformSpecificBuildOptions\n if (platformSpecificBuildOptions.certificateSubjectName != null || platformSpecificBuildOptions.certificateSha1 != null) {\n return this.vm.value\n .then(vm => getCertificateFromStoreInfo(platformSpecificBuildOptions, vm))\n .catch(e => {\n // https://github.com/electron-userland/electron-builder/pull/2397\n if (platformSpecificBuildOptions.sign == null) {\n throw e\n }\n else {\n log.debug({error: e}, \"getCertificateFromStoreInfo error\")\n return null\n }\n })\n }\n\n const certificateFile = platformSpecificBuildOptions.certificateFile\n if (certificateFile != null) {\n const certificatePassword = this.getCscPassword()\n return Promise.resolve({\n file: certificateFile,\n password: certificatePassword == null ? null : certificatePassword.trim(),\n })\n }\n\n const cscLink = this.getCscLink(\"WIN_CSC_LINK\")\n if (cscLink == null) {\n return Promise.resolve(null)\n }\n\n return downloadCertificate(cscLink, this.info.tempDirManager, this.projectDir)\n // before then\n .catch(e => {\n if (e instanceof InvalidConfigurationError) {\n throw new InvalidConfigurationError(`Env WIN_CSC_LINK is not correct, cannot resolve: ${e.message}`)\n }\n else {\n throw e\n }\n })\n .then(path => {\n return {\n file: path!!,\n password: this.getCscPassword(),\n }\n })\n })\n\n private _iconPath = new Lazy(() => this.getOrConvertIcon(\"ico\"))\n\n readonly vm = new Lazy<VmManager>(() => process.platform === \"win32\" ? Promise.resolve(new VmManager()) : getWindowsVm(this.debugLogger))\n\n readonly computedPublisherName = new Lazy<Array<string> | null>(async () => {\n const publisherName = (this.platformSpecificBuildOptions as WindowsConfiguration).publisherName\n if (publisherName === null) {\n return null\n }\n else if (publisherName != null) {\n return asArray(publisherName)\n }\n\n const certInfo = await this.lazyCertInfo.value\n return certInfo == null ? null : [certInfo.commonName]\n })\n\n readonly lazyCertInfo = new Lazy<CertificateInfo | null>(async () => {\n const cscInfo = await this.cscInfo.value\n if (cscInfo == null) {\n return null\n }\n\n if (\"subject\" in cscInfo) {\n const bloodyMicrosoftSubjectDn = (cscInfo as CertificateFromStoreInfo).subject\n return {\n commonName: parseDn(bloodyMicrosoftSubjectDn).get(\"CN\")!!,\n bloodyMicrosoftSubjectDn,\n }\n }\n\n const cscFile = (cscInfo as FileCodeSigningInfo).file\n if (cscFile == null) {\n return null\n }\n return await getCertInfo(cscFile, (cscInfo as FileCodeSigningInfo).password || \"\")\n })\n\n get isForceCodeSigningVerification(): boolean {\n return this.platformSpecificBuildOptions.verifyUpdateCodeSignature !== false\n }\n\n constructor(info: Packager) {\n super(info, Platform.WINDOWS)\n }\n\n get defaultTarget(): Array<string> {\n return [\"nsis\"]\n }\n\n protected doGetCscPassword(): string | undefined | null {\n return chooseNotNull(chooseNotNull(this.platformSpecificBuildOptions.certificatePassword, process.env.WIN_CSC_KEY_PASSWORD), super.doGetCscPassword())\n }\n\n createTargets(targets: Array<string>, mapper: (name: string, factory: (outDir: string) => Target) => void): void {\n let copyElevateHelper: CopyElevateHelper | null\n const getCopyElevateHelper = () => {\n if (copyElevateHelper == null) {\n copyElevateHelper = new CopyElevateHelper()\n }\n return copyElevateHelper\n }\n\n let helper: AppPackageHelper | null\n const getHelper = () => {\n if (helper == null) {\n helper = new AppPackageHelper(getCopyElevateHelper())\n }\n return helper\n }\n\n for (const name of targets) {\n if (name === DIR_TARGET) {\n continue\n }\n\n if (name === \"nsis\" || name === \"portable\") {\n mapper(name, outDir => new NsisTarget(this, outDir, name, getHelper()))\n }\n else if (name === \"nsis-web\") {\n // package file format differs from nsis target\n mapper(name, outDir => new WebInstallerTarget(this, path.join(outDir, name), name, new AppPackageHelper(getCopyElevateHelper())))\n }\n else {\n const targetClass: typeof NsisTarget | typeof AppXTarget | null = (() => {\n switch (name) {\n case \"squirrel\":\n try {\n return require(\"electron-builder-squirrel-windows\").default\n }\n catch (e) {\n throw new InvalidConfigurationError(`Module electron-builder-squirrel-windows must be installed in addition to build Squirrel.Windows: ${e.stack || e}`)\n }\n\n case \"appx\":\n return require(\"./targets/AppxTarget\").default\n\n case \"msi\":\n return require(\"./targets/MsiTarget\").default\n\n default:\n return null\n }\n })()\n\n mapper(name, outDir => targetClass === null ? createCommonTarget(name, outDir, this) : new (targetClass as any)(this, outDir, name))\n }\n }\n }\n\n getIconPath() {\n return this._iconPath.value\n }\n\n async sign(file: string, logMessagePrefix?: string): Promise<void> {\n const signOptions: WindowsSignOptions = {\n path: file,\n name: this.appInfo.productName,\n site: await this.appInfo.computePackageUrl(),\n options: this.platformSpecificBuildOptions,\n }\n\n const cscInfo = await this.cscInfo.value\n if (cscInfo == null) {\n if (this.platformSpecificBuildOptions.sign != null) {\n await sign(signOptions, this)\n }\n else if (this.forceCodeSigning) {\n throw new InvalidConfigurationError(`App is not signed and \"forceCodeSigning\" is set to true, please ensure that code signing configuration is correct, please see https://electron.build/code-signing`)\n }\n return\n }\n\n if (logMessagePrefix == null) {\n logMessagePrefix = \"signing\"\n }\n\n if (\"file\" in cscInfo) {\n log.info({\n file: log.filePath(file),\n certificateFile: (cscInfo as FileCodeSigningInfo).file,\n }, logMessagePrefix)\n }\n else {\n const info = cscInfo as CertificateFromStoreInfo\n log.info({\n file: log.filePath(file),\n subject: info.subject,\n thumbprint: info.thumbprint,\n store: info.store,\n user: info.isLocalMachineStore ? \"local machine\" : \"current user\",\n }, logMessagePrefix)\n }\n\n await this.doSign({\n ...signOptions,\n cscInfo,\n options: {\n ...this.platformSpecificBuildOptions,\n },\n })\n }\n\n private async doSign(options: WindowsSignOptions) {\n for (let i = 0; i < 3; i++) {\n try {\n await sign(options, this)\n break\n }\n catch (e) {\n // https://github.com/electron-userland/electron-builder/issues/1414\n const message = e.message\n if (message != null && message.includes(\"Couldn't resolve host name\")) {\n log.warn({error: message, attempt: i + 1}, `cannot sign`)\n continue\n }\n throw e\n }\n }\n }\n\n async signAndEditResources(file: string, arch: Arch, outDir: string, internalName?: string | null, requestedExecutionLevel?: RequestedExecutionLevel | null) {\n const appInfo = this.appInfo\n\n const files: Array<string> = []\n\n const args = [\n file,\n \"--set-version-string\", \"FileDescription\", appInfo.productName,\n \"--set-version-string\", \"ProductName\", appInfo.productName,\n \"--set-version-string\", \"LegalCopyright\", appInfo.copyright,\n \"--set-file-version\", appInfo.shortVersion || appInfo.buildVersion,\n \"--set-product-version\", appInfo.shortVersionWindows || appInfo.getVersionInWeirdWindowsForm(),\n ]\n\n if (internalName != null) {\n args.push(\n \"--set-version-string\", \"InternalName\", internalName,\n \"--set-version-string\", \"OriginalFilename\", \"\",\n )\n }\n\n if (requestedExecutionLevel != null && requestedExecutionLevel !== \"asInvoker\") {\n args.push(\"--set-requested-execution-level\", requestedExecutionLevel)\n }\n\n use(appInfo.companyName, it => args.push(\"--set-version-string\", \"CompanyName\", it!))\n use(this.platformSpecificBuildOptions.legalTrademarks, it => args.push(\"--set-version-string\", \"LegalTrademarks\", it!))\n const iconPath = await this.getIconPath()\n use(iconPath, it => {\n files.push(it)\n args.push(\"--set-icon\", it)\n })\n\n const config = this.config\n const cscInfoForCacheDigest = !isBuildCacheEnabled() || isCI || config.electronDist != null ? null : await this.cscInfo.value\n let buildCacheManager: BuildCacheManager | null = null\n // resources editing doesn't change executable for the same input and executed quickly - no need to complicate\n if (cscInfoForCacheDigest != null) {\n const cscFile = (cscInfoForCacheDigest as FileCodeSigningInfo).file\n if (cscFile != null) {\n files.push(cscFile)\n }\n\n const timer = time(\"executable cache\")\n const hash = createHash(\"sha512\")\n hash.update(config.electronVersion || \"no electronVersion\")\n hash.update(JSON.stringify(this.platformSpecificBuildOptions))\n hash.update(JSON.stringify(args))\n hash.update(this.platformSpecificBuildOptions.certificateSha1 || \"no certificateSha1\")\n hash.update(this.platformSpecificBuildOptions.certificateSubjectName || \"no subjectName\")\n\n buildCacheManager = new BuildCacheManager(outDir, file, arch)\n if (await buildCacheManager.copyIfValid(await digest(hash, files))) {\n timer.end()\n return\n }\n timer.end()\n }\n\n const timer = time(\"wine&sign\")\n // rcedit crashed of executed using wine, resourcehacker works\n if (process.platform === \"win32\" || this.info.framework.name === \"electron\") {\n await executeAppBuilder([\"rcedit\", \"--args\", JSON.stringify(args)], undefined /* child-process */, {}, 3 /* retry five times */)\n }\n\n await this.sign(file)\n timer.end()\n\n if (buildCacheManager != null) {\n await buildCacheManager.save()\n }\n }\n\n private isSignDlls(): boolean {\n return this.platformSpecificBuildOptions.signDlls === true\n }\n\n protected createTransformerForExtraFiles(packContext: AfterPackContext): FileTransformer | null {\n if (this.platformSpecificBuildOptions.signAndEditExecutable === false) {\n return null\n }\n\n return file => {\n if (file.endsWith(\".exe\") || (this.isSignDlls() && file.endsWith(\".dll\"))) {\n const parentDir = path.dirname(file)\n if (parentDir !== packContext.appOutDir) {\n return new CopyFileTransformer(file => this.sign(file))\n }\n }\n return null\n }\n }\n\n protected async signApp(packContext: AfterPackContext, isAsar: boolean): Promise<any> {\n const exeFileName = `${this.appInfo.productFilename}.exe`\n if (this.platformSpecificBuildOptions.signAndEditExecutable === false) {\n return\n }\n\n await BluebirdPromise.map(readdir(packContext.appOutDir), (file: string): any => {\n if (file === exeFileName) {\n return this.signAndEditResources(path.join(packContext.appOutDir, exeFileName), packContext.arch, packContext.outDir, path.basename(exeFileName, \".exe\"), this.platformSpecificBuildOptions.requestedExecutionLevel)\n }\n else if (file.endsWith(\".exe\") || (this.isSignDlls() && file.endsWith(\".dll\"))) {\n return this.sign(path.join(packContext.appOutDir, file))\n }\n return null\n })\n\n if (!isAsar) {\n return\n }\n\n const outResourcesDir = path.join(packContext.appOutDir, \"resources\", \"app.asar.unpacked\")\n // noinspection JSUnusedLocalSymbols\n const fileToSign = await walk(outResourcesDir, (file, stat) => stat.isDirectory() || file.endsWith(\".exe\") || file.endsWith(\".dll\"))\n await BluebirdPromise.map(fileToSign, file => this.sign(file), {concurrency: 4})\n }\n}"],"sourceRoot":""}
1
+ {"version":3,"sources":["../src/winPackager.ts"],"names":[],"mappings":"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","sourcesContent":["import BluebirdPromise from \"bluebird-lst\"\nimport { Arch, asArray, InvalidConfigurationError, log, use, executeAppBuilder } from \"builder-util\"\nimport { parseDn } from \"builder-util-runtime\"\nimport { CopyFileTransformer, FileTransformer, walk } from \"builder-util/out/fs\"\nimport { createHash } from \"crypto\"\nimport { readdir } from \"fs-extra\"\nimport isCI from \"is-ci\"\nimport { Lazy } from \"lazy-val\"\nimport * as path from \"path\"\nimport { downloadCertificate } from \"./codeSign/codesign\"\nimport { CertificateFromStoreInfo, CertificateInfo, FileCodeSigningInfo, getCertificateFromStoreInfo, getCertInfo, sign, WindowsSignOptions } from \"./codeSign/windowsCodeSign\"\nimport { AfterPackContext } from \"./configuration\"\nimport { DIR_TARGET, Platform, Target } from \"./core\"\nimport { RequestedExecutionLevel, WindowsConfiguration } from \"./options/winOptions\"\nimport { Packager } from \"./packager\"\nimport { chooseNotNull, PlatformPackager } from \"./platformPackager\"\nimport AppXTarget from \"./targets/AppxTarget\"\nimport { NsisTarget } from \"./targets/nsis/NsisTarget\"\nimport { AppPackageHelper, CopyElevateHelper } from \"./targets/nsis/nsisUtil\"\nimport { WebInstallerTarget } from \"./targets/nsis/WebInstallerTarget\"\nimport { createCommonTarget } from \"./targets/targetFactory\"\nimport { BuildCacheManager, digest } from \"./util/cacheManager\"\nimport { isBuildCacheEnabled } from \"./util/flags\"\nimport { time } from \"./util/timer\"\nimport { getWindowsVm, VmManager } from \"./vm/vm\"\n\nexport class WinPackager extends PlatformPackager<WindowsConfiguration> {\n readonly cscInfo = new Lazy<FileCodeSigningInfo | CertificateFromStoreInfo | null>(() => {\n const platformSpecificBuildOptions = this.platformSpecificBuildOptions\n if (platformSpecificBuildOptions.certificateSubjectName != null || platformSpecificBuildOptions.certificateSha1 != null) {\n return this.vm.value\n .then(vm => getCertificateFromStoreInfo(platformSpecificBuildOptions, vm))\n .catch(e => {\n // https://github.com/electron-userland/electron-builder/pull/2397\n if (platformSpecificBuildOptions.sign == null) {\n throw e\n }\n else {\n log.debug({error: e}, \"getCertificateFromStoreInfo error\")\n return null\n }\n })\n }\n\n const certificateFile = platformSpecificBuildOptions.certificateFile\n if (certificateFile != null) {\n const certificatePassword = this.getCscPassword()\n return Promise.resolve({\n file: certificateFile,\n password: certificatePassword == null ? null : certificatePassword.trim(),\n })\n }\n\n const cscLink = this.getCscLink(\"WIN_CSC_LINK\")\n if (cscLink == null) {\n return Promise.resolve(null)\n }\n\n return downloadCertificate(cscLink, this.info.tempDirManager, this.projectDir)\n // before then\n .catch(e => {\n if (e instanceof InvalidConfigurationError) {\n throw new InvalidConfigurationError(`Env WIN_CSC_LINK is not correct, cannot resolve: ${e.message}`)\n }\n else {\n throw e\n }\n })\n .then(path => {\n return {\n file: path!!,\n password: this.getCscPassword(),\n }\n })\n })\n\n private _iconPath = new Lazy(() => this.getOrConvertIcon(\"ico\"))\n\n readonly vm = new Lazy<VmManager>(() => process.platform === \"win32\" ? Promise.resolve(new VmManager()) : getWindowsVm(this.debugLogger))\n\n readonly computedPublisherName = new Lazy<Array<string> | null>(async () => {\n const publisherName = (this.platformSpecificBuildOptions as WindowsConfiguration).publisherName\n if (publisherName === null) {\n return null\n }\n else if (publisherName != null) {\n return asArray(publisherName)\n }\n\n const certInfo = await this.lazyCertInfo.value\n return certInfo == null ? null : [certInfo.commonName]\n })\n\n readonly lazyCertInfo = new Lazy<CertificateInfo | null>(async () => {\n const cscInfo = await this.cscInfo.value\n if (cscInfo == null) {\n return null\n }\n\n if (\"subject\" in cscInfo) {\n const bloodyMicrosoftSubjectDn = (cscInfo as CertificateFromStoreInfo).subject\n return {\n commonName: parseDn(bloodyMicrosoftSubjectDn).get(\"CN\")!!,\n bloodyMicrosoftSubjectDn,\n }\n }\n\n const cscFile = (cscInfo as FileCodeSigningInfo).file\n if (cscFile == null) {\n return null\n }\n return await getCertInfo(cscFile, (cscInfo as FileCodeSigningInfo).password || \"\")\n })\n\n get isForceCodeSigningVerification(): boolean {\n return this.platformSpecificBuildOptions.verifyUpdateCodeSignature !== false\n }\n\n constructor(info: Packager) {\n super(info, Platform.WINDOWS)\n }\n\n get defaultTarget(): Array<string> {\n return [\"nsis\"]\n }\n\n protected doGetCscPassword(): string | undefined | null {\n return chooseNotNull(chooseNotNull(this.platformSpecificBuildOptions.certificatePassword, process.env.WIN_CSC_KEY_PASSWORD), super.doGetCscPassword())\n }\n\n createTargets(targets: Array<string>, mapper: (name: string, factory: (outDir: string) => Target) => void): void {\n let copyElevateHelper: CopyElevateHelper | null\n const getCopyElevateHelper = () => {\n if (copyElevateHelper == null) {\n copyElevateHelper = new CopyElevateHelper()\n }\n return copyElevateHelper\n }\n\n let helper: AppPackageHelper | null\n const getHelper = () => {\n if (helper == null) {\n helper = new AppPackageHelper(getCopyElevateHelper())\n }\n return helper\n }\n\n for (const name of targets) {\n if (name === DIR_TARGET) {\n continue\n }\n\n if (name === \"nsis\" || name === \"portable\") {\n mapper(name, outDir => new NsisTarget(this, outDir, name, getHelper()))\n }\n else if (name === \"nsis-web\") {\n // package file format differs from nsis target\n mapper(name, outDir => new WebInstallerTarget(this, path.join(outDir, name), name, new AppPackageHelper(getCopyElevateHelper())))\n }\n else {\n const targetClass: typeof NsisTarget | typeof AppXTarget | null = (() => {\n switch (name) {\n case \"squirrel\":\n try {\n return require(\"electron-builder-squirrel-windows\").default\n }\n catch (e) {\n throw new InvalidConfigurationError(`Module electron-builder-squirrel-windows must be installed in addition to build Squirrel.Windows: ${e.stack || e}`)\n }\n\n case \"appx\":\n return require(\"./targets/AppxTarget\").default\n\n case \"msi\":\n return require(\"./targets/MsiTarget\").default\n\n default:\n return null\n }\n })()\n\n mapper(name, outDir => targetClass === null ? createCommonTarget(name, outDir, this) : new (targetClass as any)(this, outDir, name))\n }\n }\n }\n\n getIconPath() {\n return this._iconPath.value\n }\n\n async sign(file: string, logMessagePrefix?: string): Promise<void> {\n const signOptions: WindowsSignOptions = {\n path: file,\n name: this.appInfo.productName,\n site: await this.appInfo.computePackageUrl(),\n options: this.platformSpecificBuildOptions,\n }\n\n const cscInfo = await this.cscInfo.value\n if (cscInfo == null) {\n if (this.platformSpecificBuildOptions.sign != null) {\n await sign(signOptions, this)\n }\n else if (this.forceCodeSigning) {\n throw new InvalidConfigurationError(`App is not signed and \"forceCodeSigning\" is set to true, please ensure that code signing configuration is correct, please see https://electron.build/code-signing`)\n }\n return\n }\n\n if (logMessagePrefix == null) {\n logMessagePrefix = \"signing\"\n }\n\n if (\"file\" in cscInfo) {\n log.info({\n file: log.filePath(file),\n certificateFile: (cscInfo as FileCodeSigningInfo).file,\n }, logMessagePrefix)\n }\n else {\n const info = cscInfo as CertificateFromStoreInfo\n log.info({\n file: log.filePath(file),\n subject: info.subject,\n thumbprint: info.thumbprint,\n store: info.store,\n user: info.isLocalMachineStore ? \"local machine\" : \"current user\",\n }, logMessagePrefix)\n }\n\n await this.doSign({\n ...signOptions,\n cscInfo,\n options: {\n ...this.platformSpecificBuildOptions,\n },\n })\n }\n\n private async doSign(options: WindowsSignOptions) {\n for (let i = 0; i < 3; i++) {\n try {\n await sign(options, this)\n break\n }\n catch (e) {\n // https://github.com/electron-userland/electron-builder/issues/1414\n const message = e.message\n if (message != null && message.includes(\"Couldn't resolve host name\")) {\n log.warn({error: message, attempt: i + 1}, `cannot sign`)\n continue\n }\n throw e\n }\n }\n }\n\n async signAndEditResources(file: string, arch: Arch, outDir: string, internalName?: string | null, requestedExecutionLevel?: RequestedExecutionLevel | null) {\n const appInfo = this.appInfo\n\n const files: Array<string> = []\n\n const args = [\n file,\n \"--set-version-string\", \"FileDescription\", appInfo.productName,\n \"--set-version-string\", \"ProductName\", appInfo.productName,\n \"--set-version-string\", \"LegalCopyright\", appInfo.copyright,\n \"--set-file-version\", appInfo.shortVersion || appInfo.buildVersion,\n \"--set-product-version\", appInfo.shortVersionWindows || appInfo.getVersionInWeirdWindowsForm(),\n ]\n\n if (internalName != null) {\n args.push(\n \"--set-version-string\", \"InternalName\", internalName,\n \"--set-version-string\", \"OriginalFilename\", \"\",\n )\n }\n\n if (requestedExecutionLevel != null && requestedExecutionLevel !== \"asInvoker\") {\n args.push(\"--set-requested-execution-level\", requestedExecutionLevel)\n }\n\n use(appInfo.companyName, it => args.push(\"--set-version-string\", \"CompanyName\", it!))\n use(this.platformSpecificBuildOptions.legalTrademarks, it => args.push(\"--set-version-string\", \"LegalTrademarks\", it!))\n const iconPath = await this.getIconPath()\n use(iconPath, it => {\n files.push(it)\n args.push(\"--set-icon\", it)\n })\n\n const config = this.config\n const cscInfoForCacheDigest = !isBuildCacheEnabled() || isCI || config.electronDist != null ? null : await this.cscInfo.value\n let buildCacheManager: BuildCacheManager | null = null\n // resources editing doesn't change executable for the same input and executed quickly - no need to complicate\n if (cscInfoForCacheDigest != null) {\n const cscFile = (cscInfoForCacheDigest as FileCodeSigningInfo).file\n if (cscFile != null) {\n files.push(cscFile)\n }\n\n const timer = time(\"executable cache\")\n const hash = createHash(\"sha512\")\n hash.update(config.electronVersion || \"no electronVersion\")\n hash.update(JSON.stringify(this.platformSpecificBuildOptions))\n hash.update(JSON.stringify(args))\n hash.update(this.platformSpecificBuildOptions.certificateSha1 || \"no certificateSha1\")\n hash.update(this.platformSpecificBuildOptions.certificateSubjectName || \"no subjectName\")\n\n buildCacheManager = new BuildCacheManager(outDir, file, arch)\n if (await buildCacheManager.copyIfValid(await digest(hash, files))) {\n timer.end()\n return\n }\n timer.end()\n }\n\n const timer = time(\"wine&sign\")\n // rcedit crashed of executed using wine, resourcehacker works\n if (process.platform === \"win32\" || this.info.framework.name === \"electron\") {\n await executeAppBuilder([\"rcedit\", \"--args\", JSON.stringify(args)], undefined /* child-process */, {}, 3 /* retry five times */)\n }\n\n await this.sign(file)\n timer.end()\n\n if (buildCacheManager != null) {\n await buildCacheManager.save()\n }\n }\n\n private isSignDlls(): boolean {\n return this.platformSpecificBuildOptions.signDlls === true\n }\n\n protected createTransformerForExtraFiles(packContext: AfterPackContext): FileTransformer | null {\n if (this.platformSpecificBuildOptions.signAndEditExecutable === false) {\n return null\n }\n\n return file => {\n if (file.endsWith(\".exe\") || (this.isSignDlls() && file.endsWith(\".dll\"))) {\n const parentDir = path.dirname(file)\n if (parentDir !== packContext.appOutDir) {\n return new CopyFileTransformer(file => this.sign(file))\n }\n }\n return null\n }\n }\n\n protected async signApp(packContext: AfterPackContext, isAsar: boolean): Promise<any> {\n const exeFileName = `${this.appInfo.productFilename}.exe`\n if (this.platformSpecificBuildOptions.signAndEditExecutable === false) {\n return\n }\n\n await BluebirdPromise.map(readdir(packContext.appOutDir), (file: string): any => {\n if (file === exeFileName) {\n return this.signAndEditResources(path.join(packContext.appOutDir, exeFileName), packContext.arch, packContext.outDir, path.basename(exeFileName, \".exe\"), this.platformSpecificBuildOptions.requestedExecutionLevel)\n }\n else if (file.endsWith(\".exe\") || (this.isSignDlls() && file.endsWith(\".dll\"))) {\n return this.sign(path.join(packContext.appOutDir, file))\n }\n return null\n })\n\n if (!isAsar) {\n return\n }\n\n const outResourcesDir = path.join(packContext.appOutDir, \"resources\", \"app.asar.unpacked\")\n // noinspection JSUnusedLocalSymbols\n const fileToSign = await walk(outResourcesDir, (file, stat) => stat.isDirectory() || file.endsWith(\".exe\") || (this.isSignDlls() && file.endsWith(\".dll\")))\n await BluebirdPromise.map(fileToSign, file => this.sign(file), {concurrency: 4})\n }\n}"],"sourceRoot":""}