app-builder-lib 21.1.6 → 22.2.0

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 (146) hide show
  1. package/electron-osx-sign/util-provisioning-profiles.js +17 -5
  2. package/out/appInfo.d.ts +10 -10
  3. package/out/asar/asar.js +3 -1
  4. package/out/asar/asar.js.map +1 -1
  5. package/out/asar/asarUtil.js +3 -1
  6. package/out/asar/asarUtil.js.map +1 -1
  7. package/out/asar/integrity.js +3 -1
  8. package/out/asar/integrity.js.map +1 -1
  9. package/out/asar/unpackDetector.js +3 -1
  10. package/out/asar/unpackDetector.js.map +1 -1
  11. package/out/codeSign/codesign.js +3 -1
  12. package/out/codeSign/codesign.js.map +1 -1
  13. package/out/codeSign/macCodeSign.js +3 -1
  14. package/out/codeSign/macCodeSign.js.map +1 -1
  15. package/out/codeSign/windowsCodeSign.js +7 -5
  16. package/out/codeSign/windowsCodeSign.js.map +1 -1
  17. package/out/electron/ElectronFramework.d.ts +1 -1
  18. package/out/electron/ElectronFramework.js +3 -1
  19. package/out/electron/ElectronFramework.js.map +1 -1
  20. package/out/electron/electronMac.js +52 -8
  21. package/out/electron/electronMac.js.map +1 -1
  22. package/out/electron/electronVersion.js +3 -1
  23. package/out/electron/electronVersion.js.map +1 -1
  24. package/out/fileMatcher.js +3 -1
  25. package/out/fileMatcher.js.map +1 -1
  26. package/out/fileTransformer.js +3 -1
  27. package/out/fileTransformer.js.map +1 -1
  28. package/out/forge-maker.js +3 -1
  29. package/out/forge-maker.js.map +1 -1
  30. package/out/frameworks/LibUiFramework.js +3 -1
  31. package/out/frameworks/LibUiFramework.js.map +1 -1
  32. package/out/linuxPackager.d.ts +1 -1
  33. package/out/macPackager.d.ts +2 -1
  34. package/out/macPackager.js +18 -8
  35. package/out/macPackager.js.map +1 -1
  36. package/out/options/SnapOptions.d.ts +5 -0
  37. package/out/options/linuxOptions.d.ts +4 -0
  38. package/out/options/pkgOptions.d.ts +4 -0
  39. package/out/packager.d.ts +11 -11
  40. package/out/packager.js +5 -3
  41. package/out/packager.js.map +1 -1
  42. package/out/platformPackager.d.ts +10 -10
  43. package/out/platformPackager.js +3 -1
  44. package/out/platformPackager.js.map +1 -1
  45. package/out/presets/rectCra.js +3 -1
  46. package/out/presets/rectCra.js.map +1 -1
  47. package/out/publish/PublishManager.d.ts +2 -0
  48. package/out/publish/PublishManager.js +5 -3
  49. package/out/publish/PublishManager.js.map +1 -1
  50. package/out/publish/SnapStorePublisher.js +3 -1
  51. package/out/publish/SnapStorePublisher.js.map +1 -1
  52. package/out/publish/s3/BaseS3Publisher.js +3 -1
  53. package/out/publish/s3/BaseS3Publisher.js.map +1 -1
  54. package/out/publish/updateInfoBuilder.js +4 -2
  55. package/out/publish/updateInfoBuilder.js.map +1 -1
  56. package/out/remoteBuilder/ProjectInfoManager.js +3 -1
  57. package/out/remoteBuilder/ProjectInfoManager.js.map +1 -1
  58. package/out/remoteBuilder/RemoteBuilder.js +4 -2
  59. package/out/remoteBuilder/RemoteBuilder.js.map +1 -1
  60. package/out/remoteBuilder/builder-cli.js +4 -2
  61. package/out/remoteBuilder/builder-cli.js.map +1 -1
  62. package/out/targets/AppImageTarget.js +4 -2
  63. package/out/targets/AppImageTarget.js.map +1 -1
  64. package/out/targets/AppxTarget.js +19 -3
  65. package/out/targets/AppxTarget.js.map +1 -1
  66. package/out/targets/ArchiveTarget.js +3 -1
  67. package/out/targets/ArchiveTarget.js.map +1 -1
  68. package/out/targets/LinuxTargetHelper.d.ts +2 -2
  69. package/out/targets/LinuxTargetHelper.js +8 -2
  70. package/out/targets/LinuxTargetHelper.js.map +1 -1
  71. package/out/targets/MsiTarget.js +5 -3
  72. package/out/targets/MsiTarget.js.map +1 -1
  73. package/out/targets/archive.js +3 -1
  74. package/out/targets/archive.js.map +1 -1
  75. package/out/targets/differentialUpdateInfoBuilder.js +4 -2
  76. package/out/targets/differentialUpdateInfoBuilder.js.map +1 -1
  77. package/out/targets/fpm.js +5 -3
  78. package/out/targets/fpm.js.map +1 -1
  79. package/out/targets/nsis/NsisTarget.d.ts +5 -5
  80. package/out/targets/nsis/NsisTarget.js +24 -11
  81. package/out/targets/nsis/NsisTarget.js.map +1 -1
  82. package/out/targets/nsis/WebInstallerTarget.d.ts +2 -2
  83. package/out/targets/nsis/nsisLang.js +3 -1
  84. package/out/targets/nsis/nsisLang.js.map +1 -1
  85. package/out/targets/nsis/nsisLicense.js +3 -1
  86. package/out/targets/nsis/nsisLicense.js.map +1 -1
  87. package/out/targets/nsis/nsisOptions.d.ts +4 -0
  88. package/out/targets/nsis/nsisUtil.d.ts +3 -0
  89. package/out/targets/nsis/nsisUtil.js +195 -4
  90. package/out/targets/nsis/nsisUtil.js.map +1 -1
  91. package/out/targets/pkg.js +15 -2
  92. package/out/targets/pkg.js.map +1 -1
  93. package/out/targets/snap.js +10 -3
  94. package/out/targets/snap.js.map +1 -1
  95. package/out/targets/targetFactory.d.ts +1 -1
  96. package/out/targets/targetUtil.js +3 -1
  97. package/out/targets/targetUtil.js.map +1 -1
  98. package/out/util/AppFileWalker.js +3 -1
  99. package/out/util/AppFileWalker.js.map +1 -1
  100. package/out/util/NodeModuleCopyHelper.js +3 -1
  101. package/out/util/NodeModuleCopyHelper.js.map +1 -1
  102. package/out/util/appBuilder.js +1 -1
  103. package/out/util/appBuilder.js.map +1 -1
  104. package/out/util/appFileCopier.js +15 -18
  105. package/out/util/appFileCopier.js.map +1 -1
  106. package/out/util/bundledTool.js +1 -1
  107. package/out/util/bundledTool.js.map +1 -1
  108. package/out/util/cacheManager.js +3 -1
  109. package/out/util/cacheManager.js.map +1 -1
  110. package/out/util/config.js +4 -2
  111. package/out/util/config.js.map +1 -1
  112. package/out/util/filter.js +3 -1
  113. package/out/util/filter.js.map +1 -1
  114. package/out/util/hash.js +1 -1
  115. package/out/util/hash.js.map +1 -1
  116. package/out/util/license.js +3 -1
  117. package/out/util/license.js.map +1 -1
  118. package/out/util/macosVersion.js +3 -1
  119. package/out/util/macosVersion.js.map +1 -1
  120. package/out/util/packageMetadata.js +3 -1
  121. package/out/util/packageMetadata.js.map +1 -1
  122. package/out/util/pathManager.js +3 -1
  123. package/out/util/pathManager.js.map +1 -1
  124. package/out/util/repositoryInfo.js +3 -1
  125. package/out/util/repositoryInfo.js.map +1 -1
  126. package/out/util/yarn.js +14 -4
  127. package/out/util/yarn.js.map +1 -1
  128. package/out/vm/WineVm.js +3 -1
  129. package/out/vm/WineVm.js.map +1 -1
  130. package/out/vm/vm.d.ts +1 -1
  131. package/out/vm/vm.js +3 -1
  132. package/out/vm/vm.js.map +1 -1
  133. package/out/winPackager.d.ts +2 -2
  134. package/out/winPackager.js +4 -2
  135. package/out/winPackager.js.map +1 -1
  136. package/package.json +9 -9
  137. package/scheme.json +155 -1
  138. package/templates/linux/after-install.tpl +4 -1
  139. package/templates/nsis/assistedInstaller.nsh +6 -0
  140. package/templates/nsis/common.nsh +16 -7
  141. package/templates/nsis/include/extractAppPackage.nsh +46 -12
  142. package/templates/nsis/include/installer.nsh +43 -28
  143. package/templates/nsis/include/webPackage.nsh +19 -7
  144. package/templates/nsis/messages.yml +1 -1
  145. package/templates/nsis/multiUser.nsh +1 -1
  146. package/templates/nsis/portable.nsi +48 -11
@@ -17,7 +17,9 @@ function _fsExtra() {
17
17
 
18
18
  var path = _interopRequireWildcard(require("path"));
19
19
 
20
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
20
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
21
+
22
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
21
23
 
22
24
  const nodeModulesSystemDependentSuffix = `${path.sep}node_modules`;
23
25
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/util/AppFileWalker.ts"],"names":[],"mappings":"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","sourcesContent":["import { Filter, FileConsumer } from \"builder-util/out/fs\"\nimport { readlink, stat, Stats } from \"fs-extra\"\nimport { FileMatcher } from \"../fileMatcher\"\nimport { Packager } from \"../packager\"\nimport * as path from \"path\"\n\nconst nodeModulesSystemDependentSuffix = `${path.sep}node_modules`\n\nfunction addAllPatternIfNeed(matcher: FileMatcher) {\n if (!matcher.isSpecifiedAsEmptyArray && (matcher.isEmpty() || matcher.containsOnlyIgnore())) {\n matcher.prependPattern(\"**/*\")\n }\n return matcher\n}\n\nexport abstract class FileCopyHelper {\n readonly metadata = new Map<string, Stats>()\n\n protected constructor(protected readonly matcher: FileMatcher, readonly filter: Filter | null, protected readonly packager: Packager) {\n }\n\n protected handleFile(file: string, parent: string, fileStat: Stats): Promise<Stats | null> | null {\n if (!fileStat.isSymbolicLink()) {\n return null\n }\n\n return readlink(file)\n .then((linkTarget): any => {\n // http://unix.stackexchange.com/questions/105637/is-symlinks-target-relative-to-the-destinations-parent-directory-and-if-so-wh\n return this.handleSymlink(fileStat, file, parent, linkTarget)\n })\n }\n\n private handleSymlink(fileStat: Stats, file: string, parent: string, linkTarget: string): Promise<Stats> | null {\n const resolvedLinkTarget = path.resolve(parent, linkTarget)\n const link = path.relative(this.matcher.from, resolvedLinkTarget)\n if (link.startsWith(\"..\")) {\n // outside of project, linked module (https://github.com/electron-userland/electron-builder/issues/675)\n return stat(resolvedLinkTarget)\n .then(targetFileStat => {\n this.metadata.set(file, targetFileStat)\n return targetFileStat\n })\n }\n else {\n const s = (fileStat as any)\n s.relativeLink = link\n s.linkRelativeToFile = path.relative(parent, resolvedLinkTarget)\n }\n return null\n }\n}\n\nfunction createAppFilter(matcher: FileMatcher, packager: Packager): Filter | null {\n if (packager.areNodeModulesHandledExternally) {\n return matcher.isEmpty() ? null : matcher.createFilter()\n }\n\n const nodeModulesFilter: Filter = (file, fileStat) => {\n return !(fileStat.isDirectory() && file.endsWith(nodeModulesSystemDependentSuffix))\n }\n\n if (matcher.isEmpty()) {\n return nodeModulesFilter\n }\n\n const filter = matcher.createFilter()\n return (file, fileStat) => {\n if (!nodeModulesFilter(file, fileStat)) {\n return false\n }\n return filter(file, fileStat)\n }\n}\n\n/** @internal */\nexport class AppFileWalker extends FileCopyHelper implements FileConsumer {\n constructor(matcher: FileMatcher, packager: Packager) {\n super(addAllPatternIfNeed(matcher), createAppFilter(matcher, packager), packager)\n }\n\n // noinspection JSUnusedGlobalSymbols\n consume(file: string, fileStat: Stats, parent: string, siblingNames: Array<string>): any {\n if (fileStat.isDirectory()) {\n // https://github.com/electron-userland/electron-builder/issues/1539\n // but do not filter if we inside node_modules dir\n // update: solution disabled, node module resolver should support such setup\n if (file.endsWith(nodeModulesSystemDependentSuffix)) {\n return false\n }\n }\n else {\n // save memory - no need to store stat for directory\n this.metadata.set(file, fileStat)\n }\n\n return this.handleFile(file, parent, fileStat)\n }\n}"],"sourceRoot":""}
1
+ {"version":3,"sources":["../../src/util/AppFileWalker.ts"],"names":[],"mappings":"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","sourcesContent":["import { Filter, FileConsumer } from \"builder-util/out/fs\"\nimport { readlink, stat, Stats } from \"fs-extra\"\nimport { FileMatcher } from \"../fileMatcher\"\nimport { Packager } from \"../packager\"\nimport * as path from \"path\"\n\nconst nodeModulesSystemDependentSuffix = `${path.sep}node_modules`\n\nfunction addAllPatternIfNeed(matcher: FileMatcher) {\n if (!matcher.isSpecifiedAsEmptyArray && (matcher.isEmpty() || matcher.containsOnlyIgnore())) {\n matcher.prependPattern(\"**/*\")\n }\n return matcher\n}\n\nexport abstract class FileCopyHelper {\n readonly metadata = new Map<string, Stats>()\n\n protected constructor(protected readonly matcher: FileMatcher, readonly filter: Filter | null, protected readonly packager: Packager) {\n }\n\n protected handleFile(file: string, parent: string, fileStat: Stats): Promise<Stats | null> | null {\n if (!fileStat.isSymbolicLink()) {\n return null\n }\n\n return readlink(file)\n .then((linkTarget): any => {\n // http://unix.stackexchange.com/questions/105637/is-symlinks-target-relative-to-the-destinations-parent-directory-and-if-so-wh\n return this.handleSymlink(fileStat, file, parent, linkTarget)\n })\n }\n\n private handleSymlink(fileStat: Stats, file: string, parent: string, linkTarget: string): Promise<Stats> | null {\n const resolvedLinkTarget = path.resolve(parent, linkTarget)\n const link = path.relative(this.matcher.from, resolvedLinkTarget)\n if (link.startsWith(\"..\")) {\n // outside of project, linked module (https://github.com/electron-userland/electron-builder/issues/675)\n return stat(resolvedLinkTarget)\n .then(targetFileStat => {\n this.metadata.set(file, targetFileStat)\n return targetFileStat\n })\n }\n else {\n const s = (fileStat as any)\n s.relativeLink = link\n s.linkRelativeToFile = path.relative(parent, resolvedLinkTarget)\n }\n return null\n }\n}\n\nfunction createAppFilter(matcher: FileMatcher, packager: Packager): Filter | null {\n if (packager.areNodeModulesHandledExternally) {\n return matcher.isEmpty() ? null : matcher.createFilter()\n }\n\n const nodeModulesFilter: Filter = (file, fileStat) => {\n return !(fileStat.isDirectory() && file.endsWith(nodeModulesSystemDependentSuffix))\n }\n\n if (matcher.isEmpty()) {\n return nodeModulesFilter\n }\n\n const filter = matcher.createFilter()\n return (file, fileStat) => {\n if (!nodeModulesFilter(file, fileStat)) {\n return false\n }\n return filter(file, fileStat)\n }\n}\n\n/** @internal */\nexport class AppFileWalker extends FileCopyHelper implements FileConsumer {\n constructor(matcher: FileMatcher, packager: Packager) {\n super(addAllPatternIfNeed(matcher), createAppFilter(matcher, packager), packager)\n }\n\n // noinspection JSUnusedGlobalSymbols\n consume(file: string, fileStat: Stats, parent: string, siblingNames: Array<string>): any {\n if (fileStat.isDirectory()) {\n // https://github.com/electron-userland/electron-builder/issues/1539\n // but do not filter if we inside node_modules dir\n // update: solution disabled, node module resolver should support such setup\n if (file.endsWith(nodeModulesSystemDependentSuffix)) {\n return false\n }\n }\n else {\n // save memory - no need to store stat for directory\n this.metadata.set(file, fileStat)\n }\n\n return this.handleFile(file, parent, fileStat)\n }\n}"],"sourceRoot":""}
@@ -67,7 +67,9 @@ function _AppFileWalker() {
67
67
  return data;
68
68
  }
69
69
 
70
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
70
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
71
+
72
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
71
73
 
72
74
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
73
75
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/util/NodeModuleCopyHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import BluebirdPromise from \"bluebird-lst\"\nimport { CONCURRENCY } from \"builder-util/out/fs\"\nimport { lstat, readdir } from \"fs-extra\"\nimport * as path from \"path\"\nimport { excludedNames, FileMatcher } from \"../fileMatcher\"\nimport { Packager } from \"../packager\"\nimport { resolveFunction } from \"../platformPackager\"\nimport { FileCopyHelper } from \"./AppFileWalker\"\n\nconst excludedFiles = new Set([\".DS_Store\", \"node_modules\" /* already in the queue */, \"CHANGELOG.md\", \"ChangeLog\", \"changelog.md\", \"binding.gyp\", \".npmignore\"].concat(excludedNames.split(\",\")))\nconst topLevelExcludedFiles = new Set([\"test.js\", \"karma.conf.js\", \".coveralls.yml\", \"README.md\", \"readme.markdown\", \"README\", \"readme.md\", \"readme\", \"test\", \"__tests__\", \"tests\", \"powered-test\", \"example\", \"examples\", \".bin\"])\n\n/** @internal */\nexport class NodeModuleCopyHelper extends FileCopyHelper {\n constructor(matcher: FileMatcher, packager: Packager) {\n super(matcher, matcher.isEmpty() ? null : matcher.createFilter(), packager)\n }\n\n async collectNodeModules(baseDir: string, moduleNames: Iterable<string>, nodeModuleExcludedExts: Array<string>): Promise<Array<string>> {\n const filter = this.filter\n const metadata = this.metadata\n\n const onNodeModuleFile = resolveFunction(this.packager.config.onNodeModuleFile, \"onNodeModuleFile\")\n\n const result: Array<string> = []\n const queue: Array<string> = []\n for (const moduleName of moduleNames) {\n const tmpPath = baseDir + path.sep + moduleName\n queue.length = 1\n // The path should be corrected in Windows that when the moduleName is Scoped packages named.\n const depPath = path.normalize(tmpPath)\n queue[0] = depPath\n\n while (queue.length > 0) {\n const dirPath = queue.pop()!\n\n const childNames = await readdir(dirPath)\n childNames.sort()\n\n const isTopLevel = dirPath === depPath\n const dirs: Array<string> = []\n // our handler is async, but we should add sorted files, so, we add file to result not in the mapper, but after map\n const sortedFilePaths = await BluebirdPromise.map(childNames, name => {\n if (onNodeModuleFile != null) {\n onNodeModuleFile(dirPath + path.sep + name)\n }\n\n if (excludedFiles.has(name) || name.startsWith(\"._\")) {\n return null\n }\n\n for (const ext of nodeModuleExcludedExts) {\n if (name.endsWith(ext)) {\n return null\n }\n }\n\n // noinspection SpellCheckingInspection\n if (isTopLevel && (topLevelExcludedFiles.has(name) || (moduleName === \"libui-node\" && (name === \"build\" || name === \"docs\" || name === \"src\")))) {\n return null\n }\n\n if (dirPath.endsWith(\"build\")) {\n if (name === \"gyp-mac-tool\" || name === \"Makefile\" || name.endsWith(\".mk\") || name.endsWith(\".gypi\") || name.endsWith(\".Makefile\")) {\n return null\n }\n }\n else if (dirPath.endsWith(\"Release\") && (name === \".deps\" || name === \"obj.target\")) {\n return null\n }\n else if (name === \"src\" && (dirPath.endsWith(\"keytar\") || dirPath.endsWith(\"keytar-prebuild\"))) {\n return null\n }\n else if (dirPath.endsWith(\"lzma-native\") && (name === \"build\" || name === \"deps\")) {\n return null\n }\n\n const filePath = dirPath + path.sep + name\n return lstat(filePath)\n .then(stat => {\n if (filter != null && !filter(filePath, stat)) {\n return null\n }\n\n if (!stat.isDirectory()) {\n metadata.set(filePath, stat)\n }\n const consumerResult = this.handleFile(filePath, dirPath, stat)\n if (consumerResult == null) {\n if (stat.isDirectory()) {\n dirs.push(name)\n return null\n }\n else {\n return filePath\n }\n }\n else {\n return consumerResult\n .then(it => {\n // asarUtil can return modified stat (symlink handling)\n if ((it == null ? stat : it).isDirectory()) {\n dirs.push(name)\n return null\n }\n else {\n return filePath\n }\n })\n }\n })\n }, CONCURRENCY)\n\n for (const child of sortedFilePaths) {\n if (child != null) {\n result.push(child)\n }\n }\n\n dirs.sort()\n for (const child of dirs) {\n queue.push(dirPath + path.sep + child)\n }\n }\n }\n return result\n }\n}"],"sourceRoot":""}
1
+ {"version":3,"sources":["../../src/util/NodeModuleCopyHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import BluebirdPromise from \"bluebird-lst\"\nimport { CONCURRENCY } from \"builder-util/out/fs\"\nimport { lstat, readdir } from \"fs-extra\"\nimport * as path from \"path\"\nimport { excludedNames, FileMatcher } from \"../fileMatcher\"\nimport { Packager } from \"../packager\"\nimport { resolveFunction } from \"../platformPackager\"\nimport { FileCopyHelper } from \"./AppFileWalker\"\n\nconst excludedFiles = new Set([\".DS_Store\", \"node_modules\" /* already in the queue */, \"CHANGELOG.md\", \"ChangeLog\", \"changelog.md\", \"binding.gyp\", \".npmignore\"].concat(excludedNames.split(\",\")))\nconst topLevelExcludedFiles = new Set([\"test.js\", \"karma.conf.js\", \".coveralls.yml\", \"README.md\", \"readme.markdown\", \"README\", \"readme.md\", \"readme\", \"test\", \"__tests__\", \"tests\", \"powered-test\", \"example\", \"examples\", \".bin\"])\n\n/** @internal */\nexport class NodeModuleCopyHelper extends FileCopyHelper {\n constructor(matcher: FileMatcher, packager: Packager) {\n super(matcher, matcher.isEmpty() ? null : matcher.createFilter(), packager)\n }\n\n async collectNodeModules(baseDir: string, moduleNames: Iterable<string>, nodeModuleExcludedExts: Array<string>): Promise<Array<string>> {\n const filter = this.filter\n const metadata = this.metadata\n\n const onNodeModuleFile = resolveFunction(this.packager.config.onNodeModuleFile, \"onNodeModuleFile\")\n\n const result: Array<string> = []\n const queue: Array<string> = []\n for (const moduleName of moduleNames) {\n const tmpPath = baseDir + path.sep + moduleName\n queue.length = 1\n // The path should be corrected in Windows that when the moduleName is Scoped packages named.\n const depPath = path.normalize(tmpPath)\n queue[0] = depPath\n\n while (queue.length > 0) {\n const dirPath = queue.pop()!\n\n const childNames = await readdir(dirPath)\n childNames.sort()\n\n const isTopLevel = dirPath === depPath\n const dirs: Array<string> = []\n // our handler is async, but we should add sorted files, so, we add file to result not in the mapper, but after map\n const sortedFilePaths = await BluebirdPromise.map(childNames, name => {\n if (onNodeModuleFile != null) {\n onNodeModuleFile(dirPath + path.sep + name)\n }\n\n if (excludedFiles.has(name) || name.startsWith(\"._\")) {\n return null\n }\n\n for (const ext of nodeModuleExcludedExts) {\n if (name.endsWith(ext)) {\n return null\n }\n }\n\n // noinspection SpellCheckingInspection\n if (isTopLevel && (topLevelExcludedFiles.has(name) || (moduleName === \"libui-node\" && (name === \"build\" || name === \"docs\" || name === \"src\")))) {\n return null\n }\n\n if (dirPath.endsWith(\"build\")) {\n if (name === \"gyp-mac-tool\" || name === \"Makefile\" || name.endsWith(\".mk\") || name.endsWith(\".gypi\") || name.endsWith(\".Makefile\")) {\n return null\n }\n }\n else if (dirPath.endsWith(\"Release\") && (name === \".deps\" || name === \"obj.target\")) {\n return null\n }\n else if (name === \"src\" && (dirPath.endsWith(\"keytar\") || dirPath.endsWith(\"keytar-prebuild\"))) {\n return null\n }\n else if (dirPath.endsWith(\"lzma-native\") && (name === \"build\" || name === \"deps\")) {\n return null\n }\n\n const filePath = dirPath + path.sep + name\n return lstat(filePath)\n .then(stat => {\n if (filter != null && !filter(filePath, stat)) {\n return null\n }\n\n if (!stat.isDirectory()) {\n metadata.set(filePath, stat)\n }\n const consumerResult = this.handleFile(filePath, dirPath, stat)\n if (consumerResult == null) {\n if (stat.isDirectory()) {\n dirs.push(name)\n return null\n }\n else {\n return filePath\n }\n }\n else {\n return consumerResult\n .then(it => {\n // asarUtil can return modified stat (symlink handling)\n if ((it == null ? stat : it).isDirectory()) {\n dirs.push(name)\n return null\n }\n else {\n return filePath\n }\n })\n }\n })\n }, CONCURRENCY)\n\n for (const child of sortedFilePaths) {\n if (child != null) {\n result.push(child)\n }\n }\n\n dirs.sort()\n for (const child of dirs) {\n queue.push(dirPath + path.sep + child)\n }\n }\n }\n return result\n }\n}"],"sourceRoot":""}
@@ -34,7 +34,7 @@ function executeAppBuilderAsJson(args) {
34
34
  function executeAppBuilderAndWriteJson(args, data, extraOptions = {}) {
35
35
  return (0, _builderUtil().executeAppBuilder)(args, childProcess => {
36
36
  childProcess.stdin.end(JSON.stringify(data));
37
- }, Object.assign({}, extraOptions, {
37
+ }, Object.assign(Object.assign({}, extraOptions), {
38
38
  stdio: ["pipe", "pipe", process.stdout]
39
39
  }));
40
40
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/util/appBuilder.ts"],"names":[],"mappings":";;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGM,SAAU,uBAAV,CAAqC,IAArC,EAAwD;AAC5D,SAAO,sCAAkB,IAAlB,EACJ,IADI,CACC,SAAS,IAAG;AAChB,QAAI,SAAS,KAAK,EAAlB,EAAsB;AACpB,aAAO,MAAM,CAAC,MAAP,CAAc,IAAd,CAAP;AACD;;AAED,QAAI;AACF,aAAO,IAAI,CAAC,KAAL,CAAW,SAAX,CAAP;AACD,KAFD,CAGA,OAAO,CAAP,EAAU;AACR,YAAM,IAAI,KAAJ,CAAU,wBAAwB,CAAC,CAAC,OAAO,MAAM,SAAS,GAA1D,CAAN;AACD;AACF,GAZI,CAAP;AAaD;;AAEK,SAAU,6BAAV,CAAwC,IAAxC,EAA6D,IAA7D,EAAwE,YAAA,GAA6B,EAArG,EAAuG;AAC3G,SAAO,sCAAkB,IAAlB,EAAwB,YAAY,IAAG;AAC5C,IAAA,YAAY,CAAC,KAAb,CAAqB,GAArB,CAAyB,IAAI,CAAC,SAAL,CAAe,IAAf,CAAzB;AACD,GAFM,EAEN,MAAA,CAAA,MAAA,CAAA,EAAA,EACI,YADJ,EACgB;AACf,IAAA,KAAK,EAAE,CAAC,MAAD,EAAS,MAAT,EAAiB,OAAO,CAAC,MAAzB;AADQ,GADhB,CAFM,CAAP;AAMD;;AAEK,SAAU,YAAV,CAAuB,EAAvB,EAA0C,cAA1C,EAA2F;AAC/F,OAAK,MAAM,IAAX,IAAmB,MAAM,CAAC,IAAP,CAAY,cAAZ,CAAnB,EAAgD;AAC9C,UAAM,KAAK,GAAG,cAAc,CAAC,IAAD,CAA5B;;AACA,QAAI,KAAK,IAAI,IAAb,EAAmB;AACjB,MAAA,EAAE,CAAC,IAAH,CAAQ,KAAK,IAAI,EAAjB,EAAqB,KAArB;AACD;AACF;AACF,C","sourcesContent":["import { executeAppBuilder } from \"builder-util\"\nimport { SpawnOptions } from \"child_process\"\n\nexport function executeAppBuilderAsJson<T>(args: Array<string>): Promise<T> {\n return executeAppBuilder(args)\n .then(rawResult => {\n if (rawResult === \"\") {\n return Object.create(null) as T\n }\n\n try {\n return JSON.parse(rawResult) as T\n }\n catch (e) {\n throw new Error(`Cannot parse result: ${e.message}: \"${rawResult}\"`)\n }\n })\n}\n\nexport function executeAppBuilderAndWriteJson(args: Array<string>, data: any, extraOptions: SpawnOptions = {}): Promise<string> {\n return executeAppBuilder(args, childProcess => {\n childProcess.stdin!!.end(JSON.stringify(data))\n }, {\n ...extraOptions,\n stdio: [\"pipe\", \"pipe\", process.stdout]\n })\n}\n\nexport function objectToArgs(to: Array<string>, argNameToValue: { [key: string]: string | null; }): void {\n for (const name of Object.keys(argNameToValue)) {\n const value = argNameToValue[name]\n if (value != null) {\n to.push(`--${name}`, value)\n }\n }\n}\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["../../src/util/appBuilder.ts"],"names":[],"mappings":";;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGM,SAAU,uBAAV,CAAqC,IAArC,EAAwD;AAC5D,SAAO,sCAAkB,IAAlB,EACJ,IADI,CACC,SAAS,IAAG;AAChB,QAAI,SAAS,KAAK,EAAlB,EAAsB;AACpB,aAAO,MAAM,CAAC,MAAP,CAAc,IAAd,CAAP;AACD;;AAED,QAAI;AACF,aAAO,IAAI,CAAC,KAAL,CAAW,SAAX,CAAP;AACD,KAFD,CAGA,OAAO,CAAP,EAAU;AACR,YAAM,IAAI,KAAJ,CAAU,wBAAwB,CAAC,CAAC,OAAO,MAAM,SAAS,GAA1D,CAAN;AACD;AACF,GAZI,CAAP;AAaD;;AAEK,SAAU,6BAAV,CAAwC,IAAxC,EAA6D,IAA7D,EAAwE,YAAA,GAA6B,EAArG,EAAuG;AAC3G,SAAO,sCAAkB,IAAlB,EAAwB,YAAY,IAAG;AAC5C,IAAA,YAAY,CAAC,KAAb,CAAqB,GAArB,CAAyB,IAAI,CAAC,SAAL,CAAe,IAAf,CAAzB;AACD,GAFM,EAEN,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACI,YADJ,CAAA,EACgB;AACf,IAAA,KAAK,EAAE,CAAC,MAAD,EAAS,MAAT,EAAiB,OAAO,CAAC,MAAzB;AADQ,GADhB,CAFM,CAAP;AAMD;;AAEK,SAAU,YAAV,CAAuB,EAAvB,EAA0C,cAA1C,EAA2F;AAC/F,OAAK,MAAM,IAAX,IAAmB,MAAM,CAAC,IAAP,CAAY,cAAZ,CAAnB,EAAgD;AAC9C,UAAM,KAAK,GAAG,cAAc,CAAC,IAAD,CAA5B;;AACA,QAAI,KAAK,IAAI,IAAb,EAAmB;AACjB,MAAA,EAAE,CAAC,IAAH,CAAQ,KAAK,IAAI,EAAjB,EAAqB,KAArB;AACD;AACF;AACF,C","sourcesContent":["import { executeAppBuilder } from \"builder-util\"\nimport { SpawnOptions } from \"child_process\"\n\nexport function executeAppBuilderAsJson<T>(args: Array<string>): Promise<T> {\n return executeAppBuilder(args)\n .then(rawResult => {\n if (rawResult === \"\") {\n return Object.create(null) as T\n }\n\n try {\n return JSON.parse(rawResult) as T\n }\n catch (e) {\n throw new Error(`Cannot parse result: ${e.message}: \"${rawResult}\"`)\n }\n })\n}\n\nexport function executeAppBuilderAndWriteJson(args: Array<string>, data: any, extraOptions: SpawnOptions = {}): Promise<string> {\n return executeAppBuilder(args, childProcess => {\n childProcess.stdin!!.end(JSON.stringify(data))\n }, {\n ...extraOptions,\n stdio: [\"pipe\", \"pipe\", process.stdout]\n })\n}\n\nexport function objectToArgs(to: Array<string>, argNameToValue: { [key: string]: string | null; }): void {\n for (const name of Object.keys(argNameToValue)) {\n const value = argNameToValue[name]\n if (value != null) {\n to.push(`--${name}`, value)\n }\n }\n}\n"],"sourceRoot":""}
@@ -112,7 +112,9 @@ function _NodeModuleCopyHelper() {
112
112
  return data;
113
113
  }
114
114
 
115
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
115
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
116
+
117
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
116
118
 
117
119
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
118
120
 
@@ -135,15 +137,17 @@ function getDestinationPath(file, fileSet) {
135
137
  // hoisted node_modules
136
138
  // not lastIndexOf, to ensure that nested module (top-level module depends on) copied to parent node_modules, not to top-level directory
137
139
  // project https://github.com/angexis/punchcontrol/commit/cf929aba55c40d0d8901c54df7945e1d001ce022
138
- const index = file.indexOf(_fileTransformer().NODE_MODULES_PATTERN);
140
+ let index = file.indexOf(_fileTransformer().NODE_MODULES_PATTERN);
141
+
142
+ if (index < 0 && file.endsWith(`${path.sep}node_modules`)) {
143
+ index = file.length - 13;
144
+ }
139
145
 
140
146
  if (index < 0) {
141
147
  throw new Error(`File "${file}" not under the source directory "${fileSet.src}"`);
142
148
  }
143
149
 
144
- return dest + file.substring(index + 1
145
- /* leading slash */
146
- );
150
+ return dest + file.substring(index);
147
151
  }
148
152
  }
149
153
  }
@@ -314,21 +318,14 @@ async function computeNodeModuleFileSets(platformPackager, mainMatcher) {
314
318
 
315
319
  for (const info of deps) {
316
320
  const source = info.dir;
317
- let destination;
318
-
319
- if (source.length > mainMatcher.from.length && source.startsWith(mainMatcher.from) && source[mainMatcher.from.length] === path.sep) {
320
- destination = getDestinationPath(source, {
321
- src: mainMatcher.from,
322
- destination: mainMatcher.to,
323
- files: [],
324
- metadata: null
325
- });
326
- } else {
327
- destination = mainMatcher.to + path.sep + "node_modules";
328
- } // use main matcher patterns, so, user can exclude some files in such hoisted node modules
321
+ const destination = getDestinationPath(source, {
322
+ src: mainMatcher.from,
323
+ destination: mainMatcher.to,
324
+ files: [],
325
+ metadata: null
326
+ }); // use main matcher patterns, so, user can exclude some files in such hoisted node modules
329
327
  // source here includes node_modules, but pattern base should be without because users expect that pattern "!node_modules/loot-core/src{,/**/*}" will work
330
328
 
331
-
332
329
  const matcher = new (_fileMatcher().FileMatcher)(path.dirname(source), destination, mainMatcher.macroExpander, mainMatcher.patterns);
333
330
  const copier = new (_NodeModuleCopyHelper().NodeModuleCopyHelper)(matcher, platformPackager.info);
334
331
  const files = await copier.collectNodeModules(source, info.deps.map(it => it.name), nodeModuleExcludedExts);
@@ -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 const index = file.indexOf(NODE_MODULES_PATTERN)\n if (index < 0) {\n throw new Error(`File \"${file}\" not under the source directory \"${fileSet.src}\"`)\n }\n return dest + file.substring(index + 1 /* leading slash */)\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 let destination: string\n if (source.length > mainMatcher.from.length && source.startsWith(mainMatcher.from) && source[mainMatcher.from.length] === path.sep) {\n destination = getDestinationPath(source, {src: mainMatcher.from, destination: mainMatcher.to, files: [], metadata: null as any})\n }\n else {\n destination = mainMatcher.to + path.sep + \"node_modules\"\n }\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":""}
@@ -13,7 +13,7 @@ function computeEnv(oldValue, newValues) {
13
13
 
14
14
  function computeToolEnv(libPath) {
15
15
  // noinspection SpellCheckingInspection
16
- return Object.assign({}, process.env, {
16
+ return Object.assign(Object.assign({}, process.env), {
17
17
  DYLD_LIBRARY_PATH: computeEnv(process.env.DYLD_LIBRARY_PATH, libPath)
18
18
  });
19
19
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/util/bundledTool.ts"],"names":[],"mappings":";;;;;;;;AAKM,SAAU,UAAV,CAAqB,QAArB,EAA0D,SAA1D,EAAkF;AACtF,QAAM,cAAc,GAAG,QAAQ,GAAG,QAAQ,CAAC,KAAT,CAAe,GAAf,CAAH,GAAyB,EAAxD;AACA,SAAO,SAAS,CAAC,MAAV,CAAiB,cAAjB,EAAiC,MAAjC,CAAwC,EAAE,IAAI,EAAE,CAAC,MAAH,GAAY,CAA1D,EAA6D,IAA7D,CAAkE,GAAlE,CAAP;AACD;;AAEK,SAAU,cAAV,CAAyB,OAAzB,EAA+C;AACnD;AACA,SAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACK,OAAO,CAAC,GADb,EACgB;AACd,IAAA,iBAAiB,EAAE,UAAU,CAAC,OAAO,CAAC,GAAR,CAAY,iBAAb,EAAgC,OAAhC;AADf,GADhB,CAAA;AAID,C","sourcesContent":["export interface ToolInfo {\n path: string\n env?: any\n}\n\nexport function computeEnv(oldValue: string | null | undefined, newValues: Array<string>): string {\n const parsedOldValue = oldValue ? oldValue.split(\":\") : []\n return newValues.concat(parsedOldValue).filter(it => it.length > 0).join(\":\")\n}\n\nexport function computeToolEnv(libPath: Array<string>): any {\n // noinspection SpellCheckingInspection\n return {\n ...process.env,\n DYLD_LIBRARY_PATH: computeEnv(process.env.DYLD_LIBRARY_PATH, libPath)\n }\n}"],"sourceRoot":""}
1
+ {"version":3,"sources":["../../src/util/bundledTool.ts"],"names":[],"mappings":";;;;;;;;AAKM,SAAU,UAAV,CAAqB,QAArB,EAA0D,SAA1D,EAAkF;AACtF,QAAM,cAAc,GAAG,QAAQ,GAAG,QAAQ,CAAC,KAAT,CAAe,GAAf,CAAH,GAAyB,EAAxD;AACA,SAAO,SAAS,CAAC,MAAV,CAAiB,cAAjB,EAAiC,MAAjC,CAAwC,EAAE,IAAI,EAAE,CAAC,MAAH,GAAY,CAA1D,EAA6D,IAA7D,CAAkE,GAAlE,CAAP;AACD;;AAEK,SAAU,cAAV,CAAyB,OAAzB,EAA+C;AACnD;AACA,SAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACK,OAAO,CAAC,GADb,CAAA,EACgB;AACd,IAAA,iBAAiB,EAAE,UAAU,CAAC,OAAO,CAAC,GAAR,CAAY,iBAAb,EAAgC,OAAhC;AADf,GADhB,CAAA;AAID,C","sourcesContent":["export interface ToolInfo {\n path: string\n env?: any\n}\n\nexport function computeEnv(oldValue: string | null | undefined, newValues: Array<string>): string {\n const parsedOldValue = oldValue ? oldValue.split(\":\") : []\n return newValues.concat(parsedOldValue).filter(it => it.length > 0).join(\":\")\n}\n\nexport function computeToolEnv(libPath: Array<string>): any {\n // noinspection SpellCheckingInspection\n return {\n ...process.env,\n DYLD_LIBRARY_PATH: computeEnv(process.env.DYLD_LIBRARY_PATH, libPath)\n }\n}"],"sourceRoot":""}
@@ -58,7 +58,9 @@ function _fsExtra() {
58
58
 
59
59
  var path = _interopRequireWildcard(require("path"));
60
60
 
61
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
61
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
62
+
63
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
62
64
 
63
65
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
64
66
 
@@ -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":""}
@@ -70,7 +70,9 @@ function _rectCra() {
70
70
  return data;
71
71
  }
72
72
 
73
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
73
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
74
+
75
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
74
76
 
75
77
  const validateSchema = require("@develar/schema-utils"); // https://github.com/electron-userland/electron-builder/issues/1847
76
78
 
@@ -308,7 +310,7 @@ async function validateConfig(config, debugLogger) {
308
310
 
309
311
 
310
312
  validateSchema((await schemeDataPromise.value), config, {
311
- name: `electron-builder ${"21.1.6"}`,
313
+ name: `electron-builder ${"22.2.0"}`,
312
314
  postFormatter: (formattedError, error) => {
313
315
  if (debugLogger.isEnabled) {
314
316
  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\"\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\"\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":""}
@@ -18,7 +18,9 @@ function _fileTransformer() {
18
18
  return data;
19
19
  }
20
20
 
21
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
21
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
22
+
23
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
22
24
 
23
25
  /** @internal */
24
26
  function hasMagic(pattern) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/util/filter.ts"],"names":[],"mappings":";;;;;;;;AAGA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;AAEA;AACM,SAAU,QAAV,CAAmB,OAAnB,EAAqC;AACzC,QAAM,GAAG,GAAG,OAAO,CAAC,GAApB;;AACA,MAAI,GAAG,CAAC,MAAJ,GAAa,CAAjB,EAAoB;AAClB,WAAO,IAAP;AACD;;AAED,OAAK,MAAM,CAAX,IAAgB,GAAG,CAAC,CAAD,CAAnB,EAAwB;AACtB,QAAI,OAAO,CAAP,KAAa,QAAjB,EAA2B;AACzB,aAAO,IAAP;AACD;AACF;;AAED,SAAO,KAAP;AACD,C,CAED;;;AACA,SAAS,cAAT,CAAwB,CAAxB,EAAiC;AAC/B,SAAO,CAAC,CAAC,MAAF,KAAa,CAAb,IAAkB,CAAC,CAAC,QAAF,CAAW,IAAI,CAAC,GAAhB,CAAlB,GAAyC,CAAzC,GAA8C,CAAC,GAAG,IAAI,CAAC,GAA9D;AACD;;AAED,SAAS,eAAT,CAAyB,IAAzB,EAAuC,eAAvC,EAA8D;AAC5D,MAAI,CAAC,IAAI,CAAC,UAAL,CAAgB,eAAhB,CAAL,EAAuC;AACrC,UAAM,KAAK,GAAG,IAAI,CAAC,OAAL,CAAa,uCAAb,CAAd;;AACA,QAAI,KAAK,GAAG,CAAZ,EAAe;AACb,YAAM,IAAI,KAAJ,CAAU,GAAG,IAAI,kBAAkB,eAAe,EAAlD,CAAN;AACD,KAFD,MAGK;AACH,aAAO,IAAI,CAAC,SAAL,CAAe,KAAK,GAAG;AAAE;AAAzB,OAAP;AACD;AACF;;AAED,MAAI,QAAQ,GAAG,IAAI,CAAC,SAAL,CAAe,eAAe,CAAC,MAA/B,CAAf;;AACA,MAAI,IAAI,CAAC,GAAL,KAAa,IAAjB,EAAuB;AACrB,QAAI,QAAQ,CAAC,UAAT,CAAoB,IAApB,CAAJ,EAA+B;AAC7B;AACA,MAAA,QAAQ,GAAG,QAAQ,CAAC,SAAT,CAAmB,CAAnB,CAAX;AACD;;AACD,IAAA,QAAQ,GAAG,QAAQ,CAAC,OAAT,CAAiB,KAAjB,EAAwB,GAAxB,CAAX;AACD;;AACD,SAAO,QAAP;AACD;AAED;;;AACM,SAAU,YAAV,CAAuB,GAAvB,EAAoC,QAApC,EAAgE,eAAhE,EAAyG;AAC7G,QAAM,eAAe,GAAG,cAAc,CAAC,GAAD,CAAtC;AACA,SAAO,CAAC,IAAD,EAAO,IAAP,KAAe;AACpB,QAAI,GAAG,KAAK,IAAZ,EAAkB;AAChB,aAAO,IAAP;AACD;;AAED,UAAM,QAAQ,GAAG,eAAe,CAAC,IAAD,EAAO,eAAP,CAAhC,CALoB,CAMpB;;AACA,WAAO,YAAY,CAAC,QAAD,EAAW,QAAX,EAAqB,IAArB,CAAZ,KAA2C,eAAe,IAAI,IAAnB,IAA2B,IAAI,CAAC,WAAL,EAA3B,IAAiD,CAAC,YAAY,CAAC,QAAD,EAAW,eAAX,EAA4B,IAA5B,CAAzG,CAAP;AACD,GARD;AASD,C,CAED;;;AACA,SAAS,YAAT,CAAsB,IAAtB,EAAoC,QAApC,EAAgE,IAAhE,EAA2E;AACzE,MAAI,KAAK,GAAG,KAAZ;;AACA,OAAK,MAAM,OAAX,IAAsB,QAAtB,EAAgC;AAC9B;AACA;AACA,QAAI,KAAK,KAAK,OAAO,CAAC,MAAtB,EAA8B;AAC5B;AACD,KAL6B,CAO9B;AACA;;;AACA,IAAA,KAAK,GAAG,OAAO,CAAC,KAAR,CAAc,IAAd,EAAoB,IAAI,CAAC,WAAL,MAAsB,CAAC,OAAO,CAAC,MAAnD,CAAR;AACD;;AACD,SAAO,KAAP;AACD,C","sourcesContent":["import { Filter } from \"builder-util/out/fs\"\nimport { Stats } from \"fs-extra\"\nimport { Minimatch } from \"minimatch\"\nimport * as path from \"path\"\nimport { NODE_MODULES_PATTERN } from \"../fileTransformer\"\n\n/** @internal */\nexport function hasMagic(pattern: Minimatch) {\n const set = pattern.set\n if (set.length > 1) {\n return true\n }\n\n for (const i of set[0]) {\n if (typeof i !== \"string\") {\n return true\n }\n }\n\n return false\n}\n\n// sometimes, destination may not contain path separator in the end (path to folder), but the src does. So let's ensure paths have path separators in the end\nfunction ensureEndSlash(s: string) {\n return s.length === 0 || s.endsWith(path.sep) ? s : (s + path.sep)\n}\n\nfunction getRelativePath(file: string, srcWithEndSlash: string) {\n if (!file.startsWith(srcWithEndSlash)) {\n const index = file.indexOf(NODE_MODULES_PATTERN)\n if (index < 0) {\n throw new Error(`${file} must be under ${srcWithEndSlash}`)\n }\n else {\n return file.substring(index + 1 /* leading slash */)\n }\n }\n\n let relative = file.substring(srcWithEndSlash.length)\n if (path.sep === \"\\\\\") {\n if (relative.startsWith(\"\\\\\")) {\n // windows problem: double backslash, the above substring call removes root path with a single slash, so here can me some leftovers\n relative = relative.substring(1)\n }\n relative = relative.replace(/\\\\/g, \"/\")\n }\n return relative\n}\n\n/** @internal */\nexport function createFilter(src: string, patterns: Array<Minimatch>, excludePatterns?: Array<Minimatch> | null): Filter {\n const srcWithEndSlash = ensureEndSlash(src)\n return (file, stat) => {\n if (src === file) {\n return true\n }\n\n const relative = getRelativePath(file, srcWithEndSlash)\n // https://github.com/electron-userland/electron-builder/issues/867\n return minimatchAll(relative, patterns, stat) && (excludePatterns == null || stat.isDirectory() || !minimatchAll(relative, excludePatterns, stat))\n }\n}\n\n// https://github.com/joshwnj/minimatch-all/blob/master/index.js\nfunction minimatchAll(path: string, patterns: Array<Minimatch>, stat: Stats): boolean {\n let match = false\n for (const pattern of patterns) {\n // If we've got a match, only re-test for exclusions.\n // if we don't have a match, only re-test for inclusions.\n if (match !== pattern.negate) {\n continue\n }\n\n // partial match — pattern: foo/bar.txt path: foo — we must allow foo\n // use it only for non-negate patterns: const m = new Minimatch(\"!node_modules/@(electron-download|electron)/**/*\", {dot: true }); m.match(\"node_modules\", true) will return false, but must be true\n match = pattern.match(path, stat.isDirectory() && !pattern.negate)\n }\n return match\n}\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["../../src/util/filter.ts"],"names":[],"mappings":";;;;;;;;AAGA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;AAEA;AACM,SAAU,QAAV,CAAmB,OAAnB,EAAqC;AACzC,QAAM,GAAG,GAAG,OAAO,CAAC,GAApB;;AACA,MAAI,GAAG,CAAC,MAAJ,GAAa,CAAjB,EAAoB;AAClB,WAAO,IAAP;AACD;;AAED,OAAK,MAAM,CAAX,IAAgB,GAAG,CAAC,CAAD,CAAnB,EAAwB;AACtB,QAAI,OAAO,CAAP,KAAa,QAAjB,EAA2B;AACzB,aAAO,IAAP;AACD;AACF;;AAED,SAAO,KAAP;AACD,C,CAED;;;AACA,SAAS,cAAT,CAAwB,CAAxB,EAAiC;AAC/B,SAAO,CAAC,CAAC,MAAF,KAAa,CAAb,IAAkB,CAAC,CAAC,QAAF,CAAW,IAAI,CAAC,GAAhB,CAAlB,GAAyC,CAAzC,GAA8C,CAAC,GAAG,IAAI,CAAC,GAA9D;AACD;;AAED,SAAS,eAAT,CAAyB,IAAzB,EAAuC,eAAvC,EAA8D;AAC5D,MAAI,CAAC,IAAI,CAAC,UAAL,CAAgB,eAAhB,CAAL,EAAuC;AACrC,UAAM,KAAK,GAAG,IAAI,CAAC,OAAL,CAAa,uCAAb,CAAd;;AACA,QAAI,KAAK,GAAG,CAAZ,EAAe;AACb,YAAM,IAAI,KAAJ,CAAU,GAAG,IAAI,kBAAkB,eAAe,EAAlD,CAAN;AACD,KAFD,MAGK;AACH,aAAO,IAAI,CAAC,SAAL,CAAe,KAAK,GAAG;AAAE;AAAzB,OAAP;AACD;AACF;;AAED,MAAI,QAAQ,GAAG,IAAI,CAAC,SAAL,CAAe,eAAe,CAAC,MAA/B,CAAf;;AACA,MAAI,IAAI,CAAC,GAAL,KAAa,IAAjB,EAAuB;AACrB,QAAI,QAAQ,CAAC,UAAT,CAAoB,IAApB,CAAJ,EAA+B;AAC7B;AACA,MAAA,QAAQ,GAAG,QAAQ,CAAC,SAAT,CAAmB,CAAnB,CAAX;AACD;;AACD,IAAA,QAAQ,GAAG,QAAQ,CAAC,OAAT,CAAiB,KAAjB,EAAwB,GAAxB,CAAX;AACD;;AACD,SAAO,QAAP;AACD;AAED;;;AACM,SAAU,YAAV,CAAuB,GAAvB,EAAoC,QAApC,EAAgE,eAAhE,EAAyG;AAC7G,QAAM,eAAe,GAAG,cAAc,CAAC,GAAD,CAAtC;AACA,SAAO,CAAC,IAAD,EAAO,IAAP,KAAe;AACpB,QAAI,GAAG,KAAK,IAAZ,EAAkB;AAChB,aAAO,IAAP;AACD;;AAED,UAAM,QAAQ,GAAG,eAAe,CAAC,IAAD,EAAO,eAAP,CAAhC,CALoB,CAMpB;;AACA,WAAO,YAAY,CAAC,QAAD,EAAW,QAAX,EAAqB,IAArB,CAAZ,KAA2C,eAAe,IAAI,IAAnB,IAA2B,IAAI,CAAC,WAAL,EAA3B,IAAiD,CAAC,YAAY,CAAC,QAAD,EAAW,eAAX,EAA4B,IAA5B,CAAzG,CAAP;AACD,GARD;AASD,C,CAED;;;AACA,SAAS,YAAT,CAAsB,IAAtB,EAAoC,QAApC,EAAgE,IAAhE,EAA2E;AACzE,MAAI,KAAK,GAAG,KAAZ;;AACA,OAAK,MAAM,OAAX,IAAsB,QAAtB,EAAgC;AAC9B;AACA;AACA,QAAI,KAAK,KAAK,OAAO,CAAC,MAAtB,EAA8B;AAC5B;AACD,KAL6B,CAO9B;AACA;;;AACA,IAAA,KAAK,GAAG,OAAO,CAAC,KAAR,CAAc,IAAd,EAAoB,IAAI,CAAC,WAAL,MAAsB,CAAC,OAAO,CAAC,MAAnD,CAAR;AACD;;AACD,SAAO,KAAP;AACD,C","sourcesContent":["import { Filter } from \"builder-util/out/fs\"\nimport { Stats } from \"fs-extra\"\nimport { Minimatch } from \"minimatch\"\nimport * as path from \"path\"\nimport { NODE_MODULES_PATTERN } from \"../fileTransformer\"\n\n/** @internal */\nexport function hasMagic(pattern: Minimatch) {\n const set = pattern.set\n if (set.length > 1) {\n return true\n }\n\n for (const i of set[0]) {\n if (typeof i !== \"string\") {\n return true\n }\n }\n\n return false\n}\n\n// sometimes, destination may not contain path separator in the end (path to folder), but the src does. So let's ensure paths have path separators in the end\nfunction ensureEndSlash(s: string) {\n return s.length === 0 || s.endsWith(path.sep) ? s : (s + path.sep)\n}\n\nfunction getRelativePath(file: string, srcWithEndSlash: string) {\n if (!file.startsWith(srcWithEndSlash)) {\n const index = file.indexOf(NODE_MODULES_PATTERN)\n if (index < 0) {\n throw new Error(`${file} must be under ${srcWithEndSlash}`)\n }\n else {\n return file.substring(index + 1 /* leading slash */)\n }\n }\n\n let relative = file.substring(srcWithEndSlash.length)\n if (path.sep === \"\\\\\") {\n if (relative.startsWith(\"\\\\\")) {\n // windows problem: double backslash, the above substring call removes root path with a single slash, so here can me some leftovers\n relative = relative.substring(1)\n }\n relative = relative.replace(/\\\\/g, \"/\")\n }\n return relative\n}\n\n/** @internal */\nexport function createFilter(src: string, patterns: Array<Minimatch>, excludePatterns?: Array<Minimatch> | null): Filter {\n const srcWithEndSlash = ensureEndSlash(src)\n return (file, stat) => {\n if (src === file) {\n return true\n }\n\n const relative = getRelativePath(file, srcWithEndSlash)\n // https://github.com/electron-userland/electron-builder/issues/867\n return minimatchAll(relative, patterns, stat) && (excludePatterns == null || stat.isDirectory() || !minimatchAll(relative, excludePatterns, stat))\n }\n}\n\n// https://github.com/joshwnj/minimatch-all/blob/master/index.js\nfunction minimatchAll(path: string, patterns: Array<Minimatch>, stat: Stats): boolean {\n let match = false\n for (const pattern of patterns) {\n // If we've got a match, only re-test for exclusions.\n // if we don't have a match, only re-test for inclusions.\n if (match !== pattern.negate) {\n continue\n }\n\n // partial match — pattern: foo/bar.txt path: foo — we must allow foo\n // use it only for non-negate patterns: const m = new Minimatch(\"!node_modules/@(electron-download|electron)/**/*\", {dot: true }); m.match(\"node_modules\", true) will return false, but must be true\n match = pattern.match(path, stat.isDirectory() && !pattern.negate)\n }\n return match\n}\n"],"sourceRoot":""}
package/out/util/hash.js CHANGED
@@ -21,7 +21,7 @@ function hashFile(file, algorithm = "sha512", encoding = "base64", options) {
21
21
  return new Promise((resolve, reject) => {
22
22
  const hash = (0, _crypto().createHash)(algorithm);
23
23
  hash.on("error", reject).setEncoding(encoding);
24
- (0, _fs.createReadStream)(file, Object.assign({}, options, {
24
+ (0, _fs.createReadStream)(file, Object.assign(Object.assign({}, options), {
25
25
  highWaterMark: 1024 * 1024
26
26
  /* better to use more memory but hash faster */
27
27
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/util/hash.ts"],"names":[],"mappings":";;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;;AAEM,SAAU,QAAV,CAAmB,IAAnB,EAAiC,SAAA,GAAoB,QAArD,EAA+D,QAAA,GAA6B,QAA5F,EAAsG,OAAtG,EAAmH;AACvH,SAAO,IAAI,OAAJ,CAAoB,CAAC,OAAD,EAAU,MAAV,KAAoB;AAC7C,UAAM,IAAI,GAAG,0BAAW,SAAX,CAAb;AACA,IAAA,IAAI,CACD,EADH,CACM,OADN,EACe,MADf,EAEG,WAFH,CAEe,QAFf;AAIA,8BAAiB,IAAjB,EAAqB,MAAA,CAAA,MAAA,CAAA,EAAA,EAAM,OAAN,EAAa;AAAE,MAAA,aAAa,EAAE,OAAO;AAAK;;AAA7B,KAAb,CAArB,EACG,EADH,CACM,OADN,EACe,MADf,EAEG,EAFH,CAEM,KAFN,EAEa,MAAK;AACd,MAAA,IAAI,CAAC,GAAL;AACA,MAAA,OAAO,CAAC,IAAI,CAAC,IAAL,EAAD,CAAP;AACD,KALH,EAMG,IANH,CAMQ,IANR,EAMc;AAAC,MAAA,GAAG,EAAE;AAAN,KANd;AAOD,GAbM,CAAP;AAcD,C","sourcesContent":["import { createHash } from \"crypto\"\nimport { createReadStream } from \"fs\"\n\nexport function hashFile(file: string, algorithm: string = \"sha512\", encoding: \"base64\" | \"hex\" = \"base64\", options?: any) {\n return new Promise<string>((resolve, reject) => {\n const hash = createHash(algorithm)\n hash\n .on(\"error\", reject)\n .setEncoding(encoding)\n\n createReadStream(file, {...options, highWaterMark: 1024 * 1024 /* better to use more memory but hash faster */})\n .on(\"error\", reject)\n .on(\"end\", () => {\n hash.end()\n resolve(hash.read() as string)\n })\n .pipe(hash, {end: false})\n })\n}"],"sourceRoot":""}
1
+ {"version":3,"sources":["../../src/util/hash.ts"],"names":[],"mappings":";;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;;AAEM,SAAU,QAAV,CAAmB,IAAnB,EAAiC,SAAA,GAAoB,QAArD,EAA+D,QAAA,GAA6B,QAA5F,EAAsG,OAAtG,EAAmH;AACvH,SAAO,IAAI,OAAJ,CAAoB,CAAC,OAAD,EAAU,MAAV,KAAoB;AAC7C,UAAM,IAAI,GAAG,0BAAW,SAAX,CAAb;AACA,IAAA,IAAI,CACD,EADH,CACM,OADN,EACe,MADf,EAEG,WAFH,CAEe,QAFf;AAIA,8BAAiB,IAAjB,EAAqB,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAM,OAAN,CAAA,EAAa;AAAE,MAAA,aAAa,EAAE,OAAO;AAAK;;AAA7B,KAAb,CAArB,EACG,EADH,CACM,OADN,EACe,MADf,EAEG,EAFH,CAEM,KAFN,EAEa,MAAK;AACd,MAAA,IAAI,CAAC,GAAL;AACA,MAAA,OAAO,CAAC,IAAI,CAAC,IAAL,EAAD,CAAP;AACD,KALH,EAMG,IANH,CAMQ,IANR,EAMc;AAAC,MAAA,GAAG,EAAE;AAAN,KANd;AAOD,GAbM,CAAP;AAcD,C","sourcesContent":["import { createHash } from \"crypto\"\nimport { createReadStream } from \"fs\"\n\nexport function hashFile(file: string, algorithm: string = \"sha512\", encoding: \"base64\" | \"hex\" = \"base64\", options?: any) {\n return new Promise<string>((resolve, reject) => {\n const hash = createHash(algorithm)\n hash\n .on(\"error\", reject)\n .setEncoding(encoding)\n\n createReadStream(file, {...options, highWaterMark: 1024 * 1024 /* better to use more memory but hash faster */})\n .on(\"error\", reject)\n .on(\"end\", () => {\n hash.end()\n resolve(hash.read() as string)\n })\n .pipe(hash, {end: false})\n })\n}"],"sourceRoot":""}
@@ -19,7 +19,9 @@ function _langs() {
19
19
  return data;
20
20
  }
21
21
 
22
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
22
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
23
+
24
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
25
 
24
26
  function getLicenseAssets(fileNames, packager) {
25
27
  return fileNames.sort((a, b) => {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/util/license.ts"],"names":[],"mappings":";;;;;;;;;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;AAGM,SAAU,gBAAV,CAA2B,SAA3B,EAAqD,QAArD,EAAoF;AACxF,SAAO,SAAS,CAAC,IAAV,CAAe,CAAC,CAAD,EAAI,CAAJ,KAAS;AAC7B,UAAM,EAAE,GAAG,CAAC,CAAC,QAAF,CAAW,KAAX,IAAoB,CAApB,GAAwB,GAAnC;AACA,UAAM,EAAE,GAAG,CAAC,CAAC,QAAF,CAAW,KAAX,IAAoB,CAApB,GAAwB,GAAnC;AACA,WAAO,EAAE,KAAK,EAAP,GAAY,CAAC,CAAC,aAAF,CAAgB,CAAhB,CAAZ,GAAiC,EAAE,GAAG,EAA7C;AACD,GAJM,EAKJ,GALI,CAKA,IAAI,IAAG;AACV,QAAI,IAAI,GAAG,IAAI,CAAC,KAAL,CAAW,YAAX,EAA0B,CAA1B,CAAX;AACA,QAAI,cAAJ;;AACA,QAAI,IAAI,CAAC,QAAL,CAAc,GAAd,CAAJ,EAAwB;AACtB,MAAA,cAAc,GAAG,IAAjB;AACA,MAAA,IAAI,GAAG,cAAc,CAAC,SAAf,CAAyB,CAAzB,EAA4B,IAAI,CAAC,OAAL,CAAa,GAAb,CAA5B,CAAP;AACD,KAHD,MAIK;AACH,MAAA,IAAI,GAAG,IAAI,CAAC,WAAL,EAAP;AACA,MAAA,cAAc,GAAG,+BAAiB,IAAjB,CAAjB;AACD;;AACD,WAAO;AAAC,MAAA,IAAI,EAAE,IAAI,CAAC,IAAL,CAAU,QAAQ,CAAC,iBAAnB,EAAsC,IAAtC,CAAP;AAAoD,MAAA,IAApD;AAA0D,MAAA,cAA1D;AAA0E,MAAA,QAAQ,EAAG,sBAAqB,IAArB;AAArF,KAAP;AACD,GAjBI,CAAP;AAkBD;;AAEM,eAAe,0BAAf,CAA0C,MAA1C,EAA6E,QAA7E,EAA8G,kBAAA,GAAoC,CAAC,KAAD,EAAQ,KAAR,EAAe,MAAf,CAAlJ,EAAwK;AAC7K,QAAM,aAAa,GAAkB,EAArC;;AACA,OAAK,MAAM,IAAX,IAAmB,CAAC,SAAD,EAAY,MAAZ,CAAnB,EAAwC;AACtC,SAAK,MAAM,GAAX,IAAkB,kBAAlB,EAAsC;AACpC,MAAA,aAAa,CAAC,IAAd,CAAmB,GAAG,IAAI,IAAI,GAAG,EAAjC;AACA,MAAA,aAAa,CAAC,IAAd,CAAmB,GAAG,IAAI,CAAC,WAAL,EAAkB,IAAI,GAAG,EAA/C;AACA,MAAA,aAAa,CAAC,IAAd,CAAmB,GAAG,IAAI,IAAI,GAAG,CAAC,WAAJ,EAAiB,EAA/C;AACA,MAAA,aAAa,CAAC,IAAd,CAAmB,GAAG,IAAI,CAAC,WAAL,EAAkB,IAAI,GAAG,CAAC,WAAJ,EAAiB,EAA7D;AACD;AACF;;AAED,SAAO,MAAM,QAAQ,CAAC,WAAT,CAAqB,MAArB,EAA6B,GAAG,aAAhC,CAAb;AACD;;AAEM,eAAe,eAAf,CAA+B,QAA/B,EAA8D;AACnE,SAAO,gBAAgB,CAAC,CAAC,MAAM,QAAQ,CAAC,YAAhB,EACrB,MADqB,CACd,EAAE,IAAG;AACX,UAAM,IAAI,GAAG,EAAE,CAAC,WAAH,EAAb;AACA,WAAO,CAAC,IAAI,CAAC,UAAL,CAAgB,UAAhB,KAA+B,IAAI,CAAC,UAAL,CAAgB,OAAhB,CAAhC,MAA8D,IAAI,CAAC,QAAL,CAAc,MAAd,KAAyB,IAAI,CAAC,QAAL,CAAc,MAAd,CAAvF,CAAP;AACD,GAJqB,CAAD,EAIjB,QAJiB,CAAvB;AAKD,C","sourcesContent":["import * as path from \"path\"\nimport { langIdToName, toLangWithRegion } from \"./langs\"\nimport { PlatformPackager } from \"../platformPackager\"\n\nexport function getLicenseAssets(fileNames: Array<string>, packager: PlatformPackager<any>) {\n return fileNames.sort((a, b) => {\n const aW = a.includes(\"_en\") ? 0 : 100\n const bW = b.includes(\"_en\") ? 0 : 100\n return aW === bW ? a.localeCompare(b) : aW - bW\n })\n .map(file => {\n let lang = file.match(/_([^.]+)\\./)![1]\n let langWithRegion\n if (lang.includes(\"_\")) {\n langWithRegion = lang\n lang = langWithRegion.substring(0, lang.indexOf(\"_\"))\n }\n else {\n lang = lang.toLowerCase()\n langWithRegion = toLangWithRegion(lang)\n }\n return {file: path.join(packager.buildResourcesDir, file), lang, langWithRegion, langName: (langIdToName as any)[lang]}\n })\n}\n\nexport async function getNotLocalizedLicenseFile(custom: string | null | undefined, packager: PlatformPackager<any>, supportedExtension: Array<string> = [\"rtf\", \"txt\", \"html\"]): Promise<string | null> {\n const possibleFiles: Array<string> = []\n for (const name of [\"license\", \"eula\"]) {\n for (const ext of supportedExtension) {\n possibleFiles.push(`${name}.${ext}`)\n possibleFiles.push(`${name.toUpperCase()}.${ext}`)\n possibleFiles.push(`${name}.${ext.toUpperCase()}`)\n possibleFiles.push(`${name.toUpperCase()}.${ext.toUpperCase()}`)\n }\n }\n\n return await packager.getResource(custom, ...possibleFiles)\n}\n\nexport async function getLicenseFiles(packager: PlatformPackager<any>): Promise<Array<LicenseFile>> {\n return getLicenseAssets((await packager.resourceList)\n .filter(it => {\n const name = it.toLowerCase()\n return (name.startsWith(\"license_\") || name.startsWith(\"eula_\")) && (name.endsWith(\".rtf\") || name.endsWith(\".txt\"))\n }), packager)\n}\n\nexport interface LicenseFile {\n file: string\n lang: string\n langWithRegion: string\n langName: string\n}"],"sourceRoot":""}
1
+ {"version":3,"sources":["../../src/util/license.ts"],"names":[],"mappings":";;;;;;;;;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;AAGM,SAAU,gBAAV,CAA2B,SAA3B,EAAqD,QAArD,EAAoF;AACxF,SAAO,SAAS,CAAC,IAAV,CAAe,CAAC,CAAD,EAAI,CAAJ,KAAS;AAC7B,UAAM,EAAE,GAAG,CAAC,CAAC,QAAF,CAAW,KAAX,IAAoB,CAApB,GAAwB,GAAnC;AACA,UAAM,EAAE,GAAG,CAAC,CAAC,QAAF,CAAW,KAAX,IAAoB,CAApB,GAAwB,GAAnC;AACA,WAAO,EAAE,KAAK,EAAP,GAAY,CAAC,CAAC,aAAF,CAAgB,CAAhB,CAAZ,GAAiC,EAAE,GAAG,EAA7C;AACD,GAJM,EAKJ,GALI,CAKA,IAAI,IAAG;AACV,QAAI,IAAI,GAAG,IAAI,CAAC,KAAL,CAAW,YAAX,EAA0B,CAA1B,CAAX;AACA,QAAI,cAAJ;;AACA,QAAI,IAAI,CAAC,QAAL,CAAc,GAAd,CAAJ,EAAwB;AACtB,MAAA,cAAc,GAAG,IAAjB;AACA,MAAA,IAAI,GAAG,cAAc,CAAC,SAAf,CAAyB,CAAzB,EAA4B,IAAI,CAAC,OAAL,CAAa,GAAb,CAA5B,CAAP;AACD,KAHD,MAIK;AACH,MAAA,IAAI,GAAG,IAAI,CAAC,WAAL,EAAP;AACA,MAAA,cAAc,GAAG,+BAAiB,IAAjB,CAAjB;AACD;;AACD,WAAO;AAAC,MAAA,IAAI,EAAE,IAAI,CAAC,IAAL,CAAU,QAAQ,CAAC,iBAAnB,EAAsC,IAAtC,CAAP;AAAoD,MAAA,IAApD;AAA0D,MAAA,cAA1D;AAA0E,MAAA,QAAQ,EAAG,sBAAqB,IAArB;AAArF,KAAP;AACD,GAjBI,CAAP;AAkBD;;AAEM,eAAe,0BAAf,CAA0C,MAA1C,EAA6E,QAA7E,EAA8G,kBAAA,GAAoC,CAAC,KAAD,EAAQ,KAAR,EAAe,MAAf,CAAlJ,EAAwK;AAC7K,QAAM,aAAa,GAAkB,EAArC;;AACA,OAAK,MAAM,IAAX,IAAmB,CAAC,SAAD,EAAY,MAAZ,CAAnB,EAAwC;AACtC,SAAK,MAAM,GAAX,IAAkB,kBAAlB,EAAsC;AACpC,MAAA,aAAa,CAAC,IAAd,CAAmB,GAAG,IAAI,IAAI,GAAG,EAAjC;AACA,MAAA,aAAa,CAAC,IAAd,CAAmB,GAAG,IAAI,CAAC,WAAL,EAAkB,IAAI,GAAG,EAA/C;AACA,MAAA,aAAa,CAAC,IAAd,CAAmB,GAAG,IAAI,IAAI,GAAG,CAAC,WAAJ,EAAiB,EAA/C;AACA,MAAA,aAAa,CAAC,IAAd,CAAmB,GAAG,IAAI,CAAC,WAAL,EAAkB,IAAI,GAAG,CAAC,WAAJ,EAAiB,EAA7D;AACD;AACF;;AAED,SAAO,MAAM,QAAQ,CAAC,WAAT,CAAqB,MAArB,EAA6B,GAAG,aAAhC,CAAb;AACD;;AAEM,eAAe,eAAf,CAA+B,QAA/B,EAA8D;AACnE,SAAO,gBAAgB,CAAC,CAAC,MAAM,QAAQ,CAAC,YAAhB,EACrB,MADqB,CACd,EAAE,IAAG;AACX,UAAM,IAAI,GAAG,EAAE,CAAC,WAAH,EAAb;AACA,WAAO,CAAC,IAAI,CAAC,UAAL,CAAgB,UAAhB,KAA+B,IAAI,CAAC,UAAL,CAAgB,OAAhB,CAAhC,MAA8D,IAAI,CAAC,QAAL,CAAc,MAAd,KAAyB,IAAI,CAAC,QAAL,CAAc,MAAd,CAAvF,CAAP;AACD,GAJqB,CAAD,EAIjB,QAJiB,CAAvB;AAKD,C","sourcesContent":["import * as path from \"path\"\nimport { langIdToName, toLangWithRegion } from \"./langs\"\nimport { PlatformPackager } from \"../platformPackager\"\n\nexport function getLicenseAssets(fileNames: Array<string>, packager: PlatformPackager<any>) {\n return fileNames.sort((a, b) => {\n const aW = a.includes(\"_en\") ? 0 : 100\n const bW = b.includes(\"_en\") ? 0 : 100\n return aW === bW ? a.localeCompare(b) : aW - bW\n })\n .map(file => {\n let lang = file.match(/_([^.]+)\\./)![1]\n let langWithRegion\n if (lang.includes(\"_\")) {\n langWithRegion = lang\n lang = langWithRegion.substring(0, lang.indexOf(\"_\"))\n }\n else {\n lang = lang.toLowerCase()\n langWithRegion = toLangWithRegion(lang)\n }\n return {file: path.join(packager.buildResourcesDir, file), lang, langWithRegion, langName: (langIdToName as any)[lang]}\n })\n}\n\nexport async function getNotLocalizedLicenseFile(custom: string | null | undefined, packager: PlatformPackager<any>, supportedExtension: Array<string> = [\"rtf\", \"txt\", \"html\"]): Promise<string | null> {\n const possibleFiles: Array<string> = []\n for (const name of [\"license\", \"eula\"]) {\n for (const ext of supportedExtension) {\n possibleFiles.push(`${name}.${ext}`)\n possibleFiles.push(`${name.toUpperCase()}.${ext}`)\n possibleFiles.push(`${name}.${ext.toUpperCase()}`)\n possibleFiles.push(`${name.toUpperCase()}.${ext.toUpperCase()}`)\n }\n }\n\n return await packager.getResource(custom, ...possibleFiles)\n}\n\nexport async function getLicenseFiles(packager: PlatformPackager<any>): Promise<Array<LicenseFile>> {\n return getLicenseAssets((await packager.resourceList)\n .filter(it => {\n const name = it.toLowerCase()\n return (name.startsWith(\"license_\") || name.startsWith(\"eula_\")) && (name.endsWith(\".rtf\") || name.endsWith(\".txt\"))\n }), packager)\n}\n\nexport interface LicenseFile {\n file: string\n lang: string\n langWithRegion: string\n langName: string\n}"],"sourceRoot":""}
@@ -57,7 +57,9 @@ function _os() {
57
57
  return data;
58
58
  }
59
59
 
60
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
60
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
61
+
62
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
61
63
 
62
64
  const macOsVersion = new (_lazyVal().Lazy)(async () => {
63
65
  const file = await (0, _fsExtra().readFile)("/System/Library/CoreServices/SystemVersion.plist", "utf8");