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
@@ -87,7 +87,9 @@ function _targetUtil() {
87
87
  return data;
88
88
  }
89
89
 
90
- 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; } }
90
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
91
+
92
+ 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; }
91
93
 
92
94
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
93
95
 
@@ -316,7 +318,7 @@ class AppXTarget extends _core().Target {
316
318
  return splashScreenTag(userAssets);
317
319
 
318
320
  case "arch":
319
- return arch === _builderUtil().Arch.ia32 ? "x86" : "x64";
321
+ return arch === _builderUtil().Arch.ia32 ? "x86" : arch === _builderUtil().Arch.arm64 ? "arm64" : "x64";
320
322
 
321
323
  case "resourceLanguages":
322
324
  return resourceLanguageTag((0, _builderUtil().asArray)(options.languages));
@@ -333,6 +335,7 @@ class AppXTarget extends _core().Target {
333
335
 
334
336
  getExtensions(executable, displayName) {
335
337
  const uriSchemes = (0, _builderUtil().asArray)(this.packager.config.protocols).concat((0, _builderUtil().asArray)(this.packager.platformSpecificBuildOptions.protocols));
338
+ const fileAssociations = (0, _builderUtil().asArray)(this.packager.config.fileAssociations).concat((0, _builderUtil().asArray)(this.packager.platformSpecificBuildOptions.fileAssociations));
336
339
  let isAddAutoLaunchExtension = this.options.addAutoLaunchExtension;
337
340
 
338
341
  if (isAddAutoLaunchExtension === undefined) {
@@ -340,7 +343,7 @@ class AppXTarget extends _core().Target {
340
343
  isAddAutoLaunchExtension = deps != null && deps["electron-winstore-auto-launch"] != null;
341
344
  }
342
345
 
343
- if (!isAddAutoLaunchExtension && uriSchemes.length === 0) {
346
+ if (!isAddAutoLaunchExtension && uriSchemes.length === 0 && fileAssociations.length === 0) {
344
347
  return "";
345
348
  }
346
349
 
@@ -364,6 +367,19 @@ class AppXTarget extends _core().Target {
364
367
  }
365
368
  }
366
369
 
370
+ for (const fileAssociation of fileAssociations) {
371
+ for (const ext of (0, _builderUtil().asArray)(fileAssociation.ext)) {
372
+ extensions += `
373
+ <uap:Extension Category="windows.fileTypeAssociation">
374
+ <uap:FileTypeAssociation Name="${ext}">
375
+ <uap:SupportedFileTypes>
376
+ <uap:FileType>.${ext}</uap:FileType>
377
+ </uap:SupportedFileTypes>
378
+ </uap:FileTypeAssociation>
379
+ </uap:Extension>`;
380
+ }
381
+ }
382
+
367
383
  extensions += "</Extensions>";
368
384
  return extensions;
369
385
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/targets/AppxTarget.ts"],"names":[],"mappings":"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","sourcesContent":["import BluebirdPromise from \"bluebird-lst\"\nimport { Arch, asArray, deepAssign, InvalidConfigurationError, log } from \"builder-util\"\nimport { copyOrLinkFile, walk } from \"builder-util/out/fs\"\nimport { emptyDir, readdir, readFile, writeFile } from \"fs-extra\"\nimport * as path from \"path\"\nimport { AppXOptions } from \"../\"\nimport { getSignVendorPath, isOldWin6 } from \"../codeSign/windowsCodeSign\"\nimport { Target } from \"../core\"\nimport { getTemplatePath } from \"../util/pathManager\"\nimport { VmManager } from \"../vm/vm\"\nimport { WinPackager } from \"../winPackager\"\nimport { createStageDir } from \"./targetUtil\"\n\nconst APPX_ASSETS_DIR_NAME = \"appx\"\n\nconst vendorAssetsForDefaultAssets: { [key: string]: string; } = {\n \"StoreLogo.png\": \"SampleAppx.50x50.png\",\n \"Square150x150Logo.png\": \"SampleAppx.150x150.png\",\n \"Square44x44Logo.png\": \"SampleAppx.44x44.png\",\n \"Wide310x150Logo.png\": \"SampleAppx.310x150.png\",\n}\n\nconst DEFAULT_RESOURCE_LANG = \"en-US\"\n\nexport default class AppXTarget extends Target {\n readonly options: AppXOptions = deepAssign({}, this.packager.platformSpecificBuildOptions, this.packager.config.appx)\n\n constructor(private readonly packager: WinPackager, readonly outDir: string) {\n super(\"appx\")\n\n if (process.platform !== \"darwin\" && (process.platform !== \"win32\" || isOldWin6())) {\n throw new Error(\"AppX is supported only on Windows 10 or Windows Server 2012 R2 (version number 6.3+)\")\n }\n }\n\n // https://docs.microsoft.com/en-us/windows/uwp/packaging/create-app-package-with-makeappx-tool#mapping-files\n async build(appOutDir: string, arch: Arch): Promise<any> {\n const packager = this.packager\n const artifactName = packager.expandArtifactBeautyNamePattern(this.options, \"appx\", arch)\n const artifactPath = path.join(this.outDir, artifactName)\n await packager.info.callArtifactBuildStarted({\n targetPresentableName: \"AppX\",\n file: artifactPath,\n arch,\n })\n\n const vendorPath = await getSignVendorPath()\n const vm = await packager.vm.value\n\n const stageDir = await createStageDir(this, packager, arch)\n\n const mappingFile = stageDir.getTempFile(\"mapping.txt\")\n const makeAppXArgs = [\"pack\", \"/o\" /* overwrite the output file if it exists */,\n \"/f\", vm.toVmFile(mappingFile),\n \"/p\", vm.toVmFile(artifactPath),\n ]\n if (packager.compression === \"store\") {\n makeAppXArgs.push(\"/nc\")\n }\n\n const mappingList: Array<Array<string>> = []\n mappingList.push(await BluebirdPromise.map(walk(appOutDir), file => {\n let appxPath = file.substring(appOutDir.length + 1)\n if (path.sep !== \"\\\\\") {\n appxPath = appxPath.replace(/\\//g, \"\\\\\")\n }\n return `\"${vm.toVmFile(file)}\" \"app\\\\${appxPath}\"`\n }))\n\n const userAssetDir = await this.packager.getResource(undefined, APPX_ASSETS_DIR_NAME)\n const assetInfo = await AppXTarget.computeUserAssets(vm, vendorPath, userAssetDir)\n const userAssets = assetInfo.userAssets\n\n const manifestFile = stageDir.getTempFile(\"AppxManifest.xml\")\n await this.writeManifest(manifestFile, arch, await this.computePublisherName(), userAssets)\n mappingList.push(assetInfo.mappings)\n mappingList.push([`\"${vm.toVmFile(manifestFile)}\" \"AppxManifest.xml\"`])\n\n if (isScaledAssetsProvided(userAssets)) {\n const outFile = vm.toVmFile(stageDir.getTempFile(\"resources.pri\"))\n const makePriPath = vm.toVmFile(path.join(vendorPath, \"windows-10\", Arch[arch], \"makepri.exe\"))\n\n const assetRoot = stageDir.getTempFile(\"appx/assets\")\n await emptyDir(assetRoot)\n await BluebirdPromise.map(assetInfo.allAssets, it => copyOrLinkFile(it, path.join(assetRoot, path.basename(it))))\n\n await vm.exec(makePriPath, [\"new\",\n \"/Overwrite\",\n \"/Manifest\", vm.toVmFile(manifestFile),\n \"/ProjectRoot\", vm.toVmFile(path.dirname(assetRoot)),\n \"/ConfigXml\", vm.toVmFile(path.join(getTemplatePath(\"appx\"), \"priconfig.xml\")),\n \"/OutputFile\", outFile,\n ])\n\n // in addition to resources.pri, resources.scale-140.pri and other such files will be generated\n for (const resourceFile of (await readdir(stageDir.dir)).filter(it => it.startsWith(\"resources.\")).sort()) {\n mappingList.push([`\"${vm.toVmFile(stageDir.getTempFile(resourceFile))}\" \"${resourceFile}\"`])\n }\n makeAppXArgs.push(\"/l\")\n }\n\n let mapping = \"[Files]\"\n for (const list of mappingList) {\n mapping += \"\\r\\n\" + list.join(\"\\r\\n\")\n }\n await writeFile(mappingFile, mapping)\n packager.debugLogger.add(\"appx.mapping\", mapping)\n\n if (this.options.makeappxArgs != null) {\n makeAppXArgs.push(...this.options.makeappxArgs)\n }\n await vm.exec(vm.toVmFile(path.join(vendorPath, \"windows-10\", Arch[arch], \"makeappx.exe\")), makeAppXArgs)\n await packager.sign(artifactPath)\n\n await stageDir.cleanup()\n\n await packager.info.callArtifactBuildCompleted({\n file: artifactPath,\n packager,\n arch,\n safeArtifactName: packager.computeSafeArtifactName(artifactName, \"appx\"),\n target: this,\n isWriteUpdateInfo: this.options.electronUpdaterAware,\n })\n }\n\n private static async computeUserAssets(vm: VmManager, vendorPath: string, userAssetDir: string | null) {\n const mappings: Array<string> = []\n let userAssets: Array<string>\n const allAssets: Array<string> = []\n if (userAssetDir == null) {\n userAssets = []\n }\n else {\n userAssets = (await readdir(userAssetDir)).filter(it => !it.startsWith(\".\") && !it.endsWith(\".db\") && it.includes(\".\"))\n for (const name of userAssets) {\n mappings.push(`\"${vm.toVmFile(userAssetDir)}${vm.pathSep}${name}\" \"assets\\\\${name}\"`)\n allAssets.push(path.join(userAssetDir, name))\n }\n }\n\n for (const defaultAsset of Object.keys(vendorAssetsForDefaultAssets)) {\n if (userAssets.length === 0 || !isDefaultAssetIncluded(userAssets, defaultAsset)) {\n const file = path.join(vendorPath, \"appxAssets\", vendorAssetsForDefaultAssets[defaultAsset])\n mappings.push(`\"${vm.toVmFile(file)}\" \"assets\\\\${defaultAsset}\"`)\n allAssets.push(file)\n }\n }\n\n // we do not use process.arch to build path to tools, because even if you are on x64, ia32 appx tool must be used if you build appx for ia32\n return {userAssets, mappings, allAssets}\n }\n\n // https://github.com/electron-userland/electron-builder/issues/2108#issuecomment-333200711\n private async computePublisherName() {\n if (await this.packager.cscInfo.value == null) {\n log.info({reason: \"Windows Store only build\"}, \"AppX is not signed\")\n return this.options.publisher || \"CN=ms\"\n }\n\n const certInfo = await this.packager.lazyCertInfo.value\n const publisher = certInfo == null ? null : certInfo.bloodyMicrosoftSubjectDn\n if (publisher == null) {\n throw new Error(\"Internal error: cannot compute subject using certificate info\")\n }\n return publisher\n }\n\n private async writeManifest(outFile: string, arch: Arch, publisher: string, userAssets: Array<string>) {\n const appInfo = this.packager.appInfo\n const options = this.options\n const executable = `app\\\\${appInfo.productFilename}.exe`\n const displayName = options.displayName || appInfo.productName\n const manifest = (await readFile(path.join(getTemplatePath(\"appx\"), \"appxmanifest.xml\"), \"utf8\"))\n .replace(/\\${([a-zA-Z0-9]+)}/g, (match, p1): string => {\n switch (p1) {\n case \"publisher\":\n return publisher\n\n case \"publisherDisplayName\":\n const name = options.publisherDisplayName || appInfo.companyName\n if (name == null) {\n throw new InvalidConfigurationError(`Please specify \"author\" in the application package.json — it is required because \"appx.publisherDisplayName\" is not set.`)\n }\n return name\n\n case \"version\":\n return appInfo.getVersionInWeirdWindowsForm(options.setBuildNumber === true)\n\n case \"applicationId\":\n const result = options.applicationId || options.identityName || appInfo.name\n if (!isNaN(parseInt(result[0], 10))) {\n let message = `AppX Application.Id can’t start with numbers: \"${result}\"`\n if (options.applicationId == null) {\n message += `\\nPlease set appx.applicationId (or correct appx.identityName or name)`\n }\n throw new InvalidConfigurationError(message)\n }\n return result\n\n case \"identityName\":\n return options.identityName || appInfo.name\n\n case \"executable\":\n return executable\n\n case \"displayName\":\n return displayName\n\n case \"description\":\n return appInfo.description || appInfo.productName\n\n case \"backgroundColor\":\n return options.backgroundColor || \"#464646\"\n\n case \"logo\":\n return \"assets\\\\StoreLogo.png\"\n\n case \"square150x150Logo\":\n return \"assets\\\\Square150x150Logo.png\"\n\n case \"square44x44Logo\":\n return \"assets\\\\Square44x44Logo.png\"\n\n case \"lockScreen\":\n return lockScreenTag(userAssets)\n\n case \"defaultTile\":\n return defaultTileTag(userAssets, options.showNameOnTiles || false)\n\n case \"splashScreen\":\n return splashScreenTag(userAssets)\n\n case \"arch\":\n return arch === Arch.ia32 ? \"x86\" : \"x64\"\n\n case \"resourceLanguages\":\n return resourceLanguageTag(asArray(options.languages))\n\n case \"extensions\":\n return this.getExtensions(executable, displayName)\n\n default:\n throw new Error(`Macro ${p1} is not defined`)\n }\n })\n await writeFile(outFile, manifest)\n }\n\n private getExtensions(executable: string, displayName: string): string {\n const uriSchemes = asArray(this.packager.config.protocols)\n .concat(asArray(this.packager.platformSpecificBuildOptions.protocols))\n\n let isAddAutoLaunchExtension = this.options.addAutoLaunchExtension\n if (isAddAutoLaunchExtension === undefined) {\n const deps = this.packager.info.metadata.dependencies\n isAddAutoLaunchExtension = deps != null && deps[\"electron-winstore-auto-launch\"] != null\n }\n\n if (!isAddAutoLaunchExtension && uriSchemes.length === 0) {\n return \"\"\n }\n\n let extensions = \"<Extensions>\"\n\n if (isAddAutoLaunchExtension) {\n extensions += `\n <desktop:Extension Category=\"windows.startupTask\" Executable=\"${executable}\" EntryPoint=\"Windows.FullTrustApplication\">\n <desktop:StartupTask TaskId=\"SlackStartup\" Enabled=\"true\" DisplayName=\"${displayName}\" />\n </desktop:Extension>`\n }\n\n for (const protocol of uriSchemes) {\n for (const scheme of asArray(protocol.schemes)) {\n extensions += `\n <uap:Extension Category=\"windows.protocol\">\n <uap:Protocol Name=\"${scheme}\">\n <uap:DisplayName>${protocol.name}</uap:DisplayName>\n </uap:Protocol>\n </uap:Extension>`\n }\n }\n\n extensions += \"</Extensions>\"\n return extensions\n }\n}\n\n// get the resource - language tag, see https://docs.microsoft.com/en-us/windows/uwp/globalizing/manage-language-and-region#specify-the-supported-languages-in-the-apps-manifest\nfunction resourceLanguageTag(userLanguages: Array<string> | null | undefined): string {\n if (userLanguages == null || userLanguages.length === 0) {\n userLanguages = [DEFAULT_RESOURCE_LANG]\n }\n return userLanguages.map(it => `<Resource Language=\"${it.replace(/_/g, \"-\")}\" />`).join(\"\\n\")\n}\n\nfunction lockScreenTag(userAssets: Array<string>): string {\n if (isDefaultAssetIncluded(userAssets, \"BadgeLogo.png\")) {\n return '<uap:LockScreen Notification=\"badgeAndTileText\" BadgeLogo=\"assets\\\\BadgeLogo.png\" />'\n }\n else {\n return \"\"\n }\n}\n\nfunction defaultTileTag(userAssets: Array<string>, showNameOnTiles: boolean): string {\n const defaultTiles: Array<string> = [\"<uap:DefaultTile\", 'Wide310x150Logo=\"assets\\\\Wide310x150Logo.png\"']\n\n if (isDefaultAssetIncluded(userAssets, \"LargeTile.png\")) {\n defaultTiles.push('Square310x310Logo=\"assets\\\\LargeTile.png\"')\n }\n if (isDefaultAssetIncluded(userAssets, \"SmallTile.png\")) {\n defaultTiles.push('Square71x71Logo=\"assets\\\\SmallTile.png\"')\n }\n\n if (showNameOnTiles) {\n defaultTiles.push(\">\")\n defaultTiles.push(\"<uap:ShowNameOnTiles>\")\n defaultTiles.push(\"<uap:ShowOn\", 'Tile=\"wide310x150Logo\"', \"/>\")\n defaultTiles.push(\"<uap:ShowOn\", 'Tile=\"square150x150Logo\"', \"/>\")\n defaultTiles.push(\"</uap:ShowNameOnTiles>\")\n defaultTiles.push(\"</uap:DefaultTile>\")\n } else {\n defaultTiles.push(\"/>\")\n }\n return defaultTiles.join(\" \")\n}\n\nfunction splashScreenTag(userAssets: Array<string>): string {\n if (isDefaultAssetIncluded(userAssets, \"SplashScreen.png\")) {\n return '<uap:SplashScreen Image=\"assets\\\\SplashScreen.png\" />'\n }\n else {\n return \"\"\n }\n}\n\nfunction isDefaultAssetIncluded(userAssets: Array<string>, defaultAsset: string) {\n const defaultAssetName = defaultAsset.substring(0, defaultAsset.indexOf(\".\"))\n return userAssets.some(it => it.includes(defaultAssetName))\n}\n\nfunction isScaledAssetsProvided(userAssets: Array<string>) {\n return userAssets.some(it => it.includes(\".scale-\") || it.includes(\".targetsize-\"))\n}\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["../../src/targets/AppxTarget.ts"],"names":[],"mappings":"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","sourcesContent":["import BluebirdPromise from \"bluebird-lst\"\nimport { Arch, asArray, deepAssign, InvalidConfigurationError, log } from \"builder-util\"\nimport { copyOrLinkFile, walk } from \"builder-util/out/fs\"\nimport { emptyDir, readdir, readFile, writeFile } from \"fs-extra\"\nimport * as path from \"path\"\nimport { AppXOptions } from \"../\"\nimport { getSignVendorPath, isOldWin6 } from \"../codeSign/windowsCodeSign\"\nimport { Target } from \"../core\"\nimport { getTemplatePath } from \"../util/pathManager\"\nimport { VmManager } from \"../vm/vm\"\nimport { WinPackager } from \"../winPackager\"\nimport { createStageDir } from \"./targetUtil\"\n\nconst APPX_ASSETS_DIR_NAME = \"appx\"\n\nconst vendorAssetsForDefaultAssets: { [key: string]: string; } = {\n \"StoreLogo.png\": \"SampleAppx.50x50.png\",\n \"Square150x150Logo.png\": \"SampleAppx.150x150.png\",\n \"Square44x44Logo.png\": \"SampleAppx.44x44.png\",\n \"Wide310x150Logo.png\": \"SampleAppx.310x150.png\",\n}\n\nconst DEFAULT_RESOURCE_LANG = \"en-US\"\n\nexport default class AppXTarget extends Target {\n readonly options: AppXOptions = deepAssign({}, this.packager.platformSpecificBuildOptions, this.packager.config.appx)\n\n constructor(private readonly packager: WinPackager, readonly outDir: string) {\n super(\"appx\")\n\n if (process.platform !== \"darwin\" && (process.platform !== \"win32\" || isOldWin6())) {\n throw new Error(\"AppX is supported only on Windows 10 or Windows Server 2012 R2 (version number 6.3+)\")\n }\n }\n\n // https://docs.microsoft.com/en-us/windows/uwp/packaging/create-app-package-with-makeappx-tool#mapping-files\n async build(appOutDir: string, arch: Arch): Promise<any> {\n const packager = this.packager\n const artifactName = packager.expandArtifactBeautyNamePattern(this.options, \"appx\", arch)\n const artifactPath = path.join(this.outDir, artifactName)\n await packager.info.callArtifactBuildStarted({\n targetPresentableName: \"AppX\",\n file: artifactPath,\n arch,\n })\n\n const vendorPath = await getSignVendorPath()\n const vm = await packager.vm.value\n\n const stageDir = await createStageDir(this, packager, arch)\n\n const mappingFile = stageDir.getTempFile(\"mapping.txt\")\n const makeAppXArgs = [\"pack\", \"/o\" /* overwrite the output file if it exists */,\n \"/f\", vm.toVmFile(mappingFile),\n \"/p\", vm.toVmFile(artifactPath),\n ]\n if (packager.compression === \"store\") {\n makeAppXArgs.push(\"/nc\")\n }\n\n const mappingList: Array<Array<string>> = []\n mappingList.push(await BluebirdPromise.map(walk(appOutDir), file => {\n let appxPath = file.substring(appOutDir.length + 1)\n if (path.sep !== \"\\\\\") {\n appxPath = appxPath.replace(/\\//g, \"\\\\\")\n }\n return `\"${vm.toVmFile(file)}\" \"app\\\\${appxPath}\"`\n }))\n\n const userAssetDir = await this.packager.getResource(undefined, APPX_ASSETS_DIR_NAME)\n const assetInfo = await AppXTarget.computeUserAssets(vm, vendorPath, userAssetDir)\n const userAssets = assetInfo.userAssets\n\n const manifestFile = stageDir.getTempFile(\"AppxManifest.xml\")\n await this.writeManifest(manifestFile, arch, await this.computePublisherName(), userAssets)\n mappingList.push(assetInfo.mappings)\n mappingList.push([`\"${vm.toVmFile(manifestFile)}\" \"AppxManifest.xml\"`])\n\n if (isScaledAssetsProvided(userAssets)) {\n const outFile = vm.toVmFile(stageDir.getTempFile(\"resources.pri\"))\n const makePriPath = vm.toVmFile(path.join(vendorPath, \"windows-10\", Arch[arch], \"makepri.exe\"))\n\n const assetRoot = stageDir.getTempFile(\"appx/assets\")\n await emptyDir(assetRoot)\n await BluebirdPromise.map(assetInfo.allAssets, it => copyOrLinkFile(it, path.join(assetRoot, path.basename(it))))\n\n await vm.exec(makePriPath, [\"new\",\n \"/Overwrite\",\n \"/Manifest\", vm.toVmFile(manifestFile),\n \"/ProjectRoot\", vm.toVmFile(path.dirname(assetRoot)),\n \"/ConfigXml\", vm.toVmFile(path.join(getTemplatePath(\"appx\"), \"priconfig.xml\")),\n \"/OutputFile\", outFile,\n ])\n\n // in addition to resources.pri, resources.scale-140.pri and other such files will be generated\n for (const resourceFile of (await readdir(stageDir.dir)).filter(it => it.startsWith(\"resources.\")).sort()) {\n mappingList.push([`\"${vm.toVmFile(stageDir.getTempFile(resourceFile))}\" \"${resourceFile}\"`])\n }\n makeAppXArgs.push(\"/l\")\n }\n\n let mapping = \"[Files]\"\n for (const list of mappingList) {\n mapping += \"\\r\\n\" + list.join(\"\\r\\n\")\n }\n await writeFile(mappingFile, mapping)\n packager.debugLogger.add(\"appx.mapping\", mapping)\n\n if (this.options.makeappxArgs != null) {\n makeAppXArgs.push(...this.options.makeappxArgs)\n }\n await vm.exec(vm.toVmFile(path.join(vendorPath, \"windows-10\", Arch[arch], \"makeappx.exe\")), makeAppXArgs)\n await packager.sign(artifactPath)\n\n await stageDir.cleanup()\n\n await packager.info.callArtifactBuildCompleted({\n file: artifactPath,\n packager,\n arch,\n safeArtifactName: packager.computeSafeArtifactName(artifactName, \"appx\"),\n target: this,\n isWriteUpdateInfo: this.options.electronUpdaterAware,\n })\n }\n\n private static async computeUserAssets(vm: VmManager, vendorPath: string, userAssetDir: string | null) {\n const mappings: Array<string> = []\n let userAssets: Array<string>\n const allAssets: Array<string> = []\n if (userAssetDir == null) {\n userAssets = []\n }\n else {\n userAssets = (await readdir(userAssetDir)).filter(it => !it.startsWith(\".\") && !it.endsWith(\".db\") && it.includes(\".\"))\n for (const name of userAssets) {\n mappings.push(`\"${vm.toVmFile(userAssetDir)}${vm.pathSep}${name}\" \"assets\\\\${name}\"`)\n allAssets.push(path.join(userAssetDir, name))\n }\n }\n\n for (const defaultAsset of Object.keys(vendorAssetsForDefaultAssets)) {\n if (userAssets.length === 0 || !isDefaultAssetIncluded(userAssets, defaultAsset)) {\n const file = path.join(vendorPath, \"appxAssets\", vendorAssetsForDefaultAssets[defaultAsset])\n mappings.push(`\"${vm.toVmFile(file)}\" \"assets\\\\${defaultAsset}\"`)\n allAssets.push(file)\n }\n }\n\n // we do not use process.arch to build path to tools, because even if you are on x64, ia32 appx tool must be used if you build appx for ia32\n return {userAssets, mappings, allAssets}\n }\n\n // https://github.com/electron-userland/electron-builder/issues/2108#issuecomment-333200711\n private async computePublisherName() {\n if (await this.packager.cscInfo.value == null) {\n log.info({reason: \"Windows Store only build\"}, \"AppX is not signed\")\n return this.options.publisher || \"CN=ms\"\n }\n\n const certInfo = await this.packager.lazyCertInfo.value\n const publisher = certInfo == null ? null : certInfo.bloodyMicrosoftSubjectDn\n if (publisher == null) {\n throw new Error(\"Internal error: cannot compute subject using certificate info\")\n }\n return publisher\n }\n\n private async writeManifest(outFile: string, arch: Arch, publisher: string, userAssets: Array<string>) {\n const appInfo = this.packager.appInfo\n const options = this.options\n const executable = `app\\\\${appInfo.productFilename}.exe`\n const displayName = options.displayName || appInfo.productName\n const manifest = (await readFile(path.join(getTemplatePath(\"appx\"), \"appxmanifest.xml\"), \"utf8\"))\n .replace(/\\${([a-zA-Z0-9]+)}/g, (match, p1): string => {\n switch (p1) {\n case \"publisher\":\n return publisher\n\n case \"publisherDisplayName\":\n const name = options.publisherDisplayName || appInfo.companyName\n if (name == null) {\n throw new InvalidConfigurationError(`Please specify \"author\" in the application package.json — it is required because \"appx.publisherDisplayName\" is not set.`)\n }\n return name\n\n case \"version\":\n return appInfo.getVersionInWeirdWindowsForm(options.setBuildNumber === true)\n\n case \"applicationId\":\n const result = options.applicationId || options.identityName || appInfo.name\n if (!isNaN(parseInt(result[0], 10))) {\n let message = `AppX Application.Id can’t start with numbers: \"${result}\"`\n if (options.applicationId == null) {\n message += `\\nPlease set appx.applicationId (or correct appx.identityName or name)`\n }\n throw new InvalidConfigurationError(message)\n }\n return result\n\n case \"identityName\":\n return options.identityName || appInfo.name\n\n case \"executable\":\n return executable\n\n case \"displayName\":\n return displayName\n\n case \"description\":\n return appInfo.description || appInfo.productName\n\n case \"backgroundColor\":\n return options.backgroundColor || \"#464646\"\n\n case \"logo\":\n return \"assets\\\\StoreLogo.png\"\n\n case \"square150x150Logo\":\n return \"assets\\\\Square150x150Logo.png\"\n\n case \"square44x44Logo\":\n return \"assets\\\\Square44x44Logo.png\"\n\n case \"lockScreen\":\n return lockScreenTag(userAssets)\n\n case \"defaultTile\":\n return defaultTileTag(userAssets, options.showNameOnTiles || false)\n\n case \"splashScreen\":\n return splashScreenTag(userAssets)\n\n case \"arch\":\n return arch === Arch.ia32 ? \"x86\" : (arch === Arch.arm64 ? \"arm64\" : \"x64\")\n\n case \"resourceLanguages\":\n return resourceLanguageTag(asArray(options.languages))\n\n case \"extensions\":\n return this.getExtensions(executable, displayName)\n\n default:\n throw new Error(`Macro ${p1} is not defined`)\n }\n })\n await writeFile(outFile, manifest)\n }\n\n private getExtensions(executable: string, displayName: string): string {\n const uriSchemes = asArray(this.packager.config.protocols)\n .concat(asArray(this.packager.platformSpecificBuildOptions.protocols))\n\n const fileAssociations = asArray(this.packager.config.fileAssociations)\n .concat(asArray(this.packager.platformSpecificBuildOptions.fileAssociations))\n\n let isAddAutoLaunchExtension = this.options.addAutoLaunchExtension\n if (isAddAutoLaunchExtension === undefined) {\n const deps = this.packager.info.metadata.dependencies\n isAddAutoLaunchExtension = deps != null && deps[\"electron-winstore-auto-launch\"] != null\n }\n\n if (!isAddAutoLaunchExtension && uriSchemes.length === 0 && fileAssociations.length === 0) {\n return \"\"\n }\n\n let extensions = \"<Extensions>\"\n\n if (isAddAutoLaunchExtension) {\n extensions += `\n <desktop:Extension Category=\"windows.startupTask\" Executable=\"${executable}\" EntryPoint=\"Windows.FullTrustApplication\">\n <desktop:StartupTask TaskId=\"SlackStartup\" Enabled=\"true\" DisplayName=\"${displayName}\" />\n </desktop:Extension>`\n }\n\n for (const protocol of uriSchemes) {\n for (const scheme of asArray(protocol.schemes)) {\n extensions += `\n <uap:Extension Category=\"windows.protocol\">\n <uap:Protocol Name=\"${scheme}\">\n <uap:DisplayName>${protocol.name}</uap:DisplayName>\n </uap:Protocol>\n </uap:Extension>`\n }\n }\n\n for (const fileAssociation of fileAssociations) {\n for (const ext of asArray(fileAssociation.ext)) {\n extensions += `\n <uap:Extension Category=\"windows.fileTypeAssociation\">\n <uap:FileTypeAssociation Name=\"${ext}\">\n <uap:SupportedFileTypes>\n <uap:FileType>.${ext}</uap:FileType>\n </uap:SupportedFileTypes>\n </uap:FileTypeAssociation>\n </uap:Extension>`\n }\n }\n\n extensions += \"</Extensions>\"\n return extensions\n }\n}\n\n// get the resource - language tag, see https://docs.microsoft.com/en-us/windows/uwp/globalizing/manage-language-and-region#specify-the-supported-languages-in-the-apps-manifest\nfunction resourceLanguageTag(userLanguages: Array<string> | null | undefined): string {\n if (userLanguages == null || userLanguages.length === 0) {\n userLanguages = [DEFAULT_RESOURCE_LANG]\n }\n return userLanguages.map(it => `<Resource Language=\"${it.replace(/_/g, \"-\")}\" />`).join(\"\\n\")\n}\n\nfunction lockScreenTag(userAssets: Array<string>): string {\n if (isDefaultAssetIncluded(userAssets, \"BadgeLogo.png\")) {\n return '<uap:LockScreen Notification=\"badgeAndTileText\" BadgeLogo=\"assets\\\\BadgeLogo.png\" />'\n }\n else {\n return \"\"\n }\n}\n\nfunction defaultTileTag(userAssets: Array<string>, showNameOnTiles: boolean): string {\n const defaultTiles: Array<string> = [\"<uap:DefaultTile\", 'Wide310x150Logo=\"assets\\\\Wide310x150Logo.png\"']\n\n if (isDefaultAssetIncluded(userAssets, \"LargeTile.png\")) {\n defaultTiles.push('Square310x310Logo=\"assets\\\\LargeTile.png\"')\n }\n if (isDefaultAssetIncluded(userAssets, \"SmallTile.png\")) {\n defaultTiles.push('Square71x71Logo=\"assets\\\\SmallTile.png\"')\n }\n\n if (showNameOnTiles) {\n defaultTiles.push(\">\")\n defaultTiles.push(\"<uap:ShowNameOnTiles>\")\n defaultTiles.push(\"<uap:ShowOn\", 'Tile=\"wide310x150Logo\"', \"/>\")\n defaultTiles.push(\"<uap:ShowOn\", 'Tile=\"square150x150Logo\"', \"/>\")\n defaultTiles.push(\"</uap:ShowNameOnTiles>\")\n defaultTiles.push(\"</uap:DefaultTile>\")\n } else {\n defaultTiles.push(\"/>\")\n }\n return defaultTiles.join(\" \")\n}\n\nfunction splashScreenTag(userAssets: Array<string>): string {\n if (isDefaultAssetIncluded(userAssets, \"SplashScreen.png\")) {\n return '<uap:SplashScreen Image=\"assets\\\\SplashScreen.png\" />'\n }\n else {\n return \"\"\n }\n}\n\nfunction isDefaultAssetIncluded(userAssets: Array<string>, defaultAsset: string) {\n const defaultAssetName = defaultAsset.substring(0, defaultAsset.indexOf(\".\"))\n return userAssets.some(it => it.includes(defaultAssetName))\n}\n\nfunction isScaledAssetsProvided(userAssets: Array<string>) {\n return userAssets.some(it => it.includes(\".scale-\") || it.includes(\".targetsize-\"))\n}\n"],"sourceRoot":""}
@@ -57,7 +57,9 @@ function _differentialUpdateInfoBuilder() {
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
  class ArchiveTarget extends _core().Target {
63
65
  constructor(name, outDir, packager, isWriteUpdateInfo = false) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/targets/ArchiveTarget.ts"],"names":[],"mappings":";;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;AAEM,MAAO,aAAP,SAA6B,cAA7B,CAAmC;AAGvC,EAAA,WAAA,CAAY,IAAZ,EAAmC,MAAnC,EAAoE,QAApE,EAAsH,iBAAA,GAAoB,KAA1I,EAA+I;AAC7I,UAAM,IAAN;AADiC,SAAA,MAAA,GAAA,MAAA;AAAiC,SAAA,QAAA,GAAA,QAAA;AAAkD,SAAA,iBAAA,GAAA,iBAAA;AAF7G,SAAA,OAAA,GAAkC,KAAK,QAAL,CAAc,MAAd,CAA6B,KAAK,IAAlC,CAAlC;AAIR;;AAED,QAAM,KAAN,CAAY,SAAZ,EAA+B,IAA/B,EAAyC;AACvC,UAAM,QAAQ,GAAG,KAAK,QAAtB;;AACA,UAAM,KAAK,GAAG,QAAQ,CAAC,QAAT,KAAsB,iBAAS,GAA7C;;AACA,UAAM,MAAM,GAAG,KAAK,IAApB;AAEA,QAAI,cAAJ;;AACA,QAAI,QAAQ,CAAC,QAAT,KAAsB,iBAAS,KAAnC,EAA0C;AACxC;AACA,MAAA,cAAc,GAAG,wBAAwB,IAAI,KAAK,oBAAK,GAAd,GAAoB,EAApB,GAAyB,UAAjD,IAA+D,SAAhF;AACD,KAHD,MAIK;AACH;AACA,MAAA,cAAc,GAAG,+BAA+B,IAAI,KAAK,oBAAK,GAAd,GAAoB,EAApB,GAAyB,UAAxD,IAAsE,eAAvF;AACD;;AAED,UAAM,YAAY,GAAG,QAAQ,CAAC,yBAAT,CAAmC,KAAK,OAAxC,EAAiD,MAAjD,EAAyD,IAAzD,EAA+D,cAA/D,EAA+E,KAA/E,CAArB;AACA,UAAM,YAAY,GAAG,IAAI,CAAC,IAAL,CAAU,KAAK,MAAf,EAAuB,YAAvB,CAArB;AAEA,UAAM,QAAQ,CAAC,IAAT,CAAc,wBAAd,CAAuC;AAC3C,MAAA,qBAAqB,EAAE,GAAG,KAAK,GAAG,QAAH,GAAc,EAAE,GAAG,MAAM,EADb;AAE3C,MAAA,IAAI,EAAE,YAFqC;AAG3C,MAAA;AAH2C,KAAvC,CAAN;AAKA,QAAI,UAAU,GAAQ,IAAtB;;AACA,QAAI,MAAM,CAAC,UAAP,CAAkB,MAAlB,CAAJ,EAA+B;AAC7B,YAAM,oBAAI,QAAQ,CAAC,WAAb,EAA0B,MAA1B,EAAkC,YAAlC,EAAgD,SAAhD,EAA2D,KAA3D,EAAkE,QAAQ,CAAC,IAAT,CAAc,cAAhF,CAAN;AACD,KAFD,MAGK;AACH,UAAI,UAAU,GAAG,CAAC,KAAlB;AACA,UAAI,YAAY,GAAG,SAAnB;;AACA,UAAI,KAAJ,EAAW;AACT,QAAA,YAAY,GAAG,IAAI,CAAC,OAAL,CAAa,SAAb,CAAf;AACA,cAAM,YAAY,GAAG,oCAAgB,QAAQ,CAAC,MAAzB,EAAiC,gBAAjC,EAAmD,YAAnD,EAAiE,QAAQ,CAAC,4BAAT,CAAsC,KAAK,MAA3C,EAAmD,IAAnD,EAAyD,QAAQ,CAAC,4BAAlE,CAAjE,CAArB;;AACA,YAAI,YAAY,IAAI,IAApB,EAA0B;AACxB,UAAA,YAAY,GAAG,SAAf;AACD,SAFD,MAGK;AACH,gBAAM,8BAAU,YAAV,EAAwB,IAAxB,EAA8B,IAA9B,CAAN;AACA,UAAA,UAAU,GAAG,IAAb;AACD;AACF;;AAED,YAAM,cAAc,GAAG;AACrB,QAAA,WAAW,EAAE,QAAQ,CAAC,WADD;AAErB,QAAA;AAFqB,OAAvB;AAIA,YAAM,wBAAQ,MAAR,EAAgB,YAAhB,EAA8B,YAA9B,EAA4C,cAA5C,CAAN;;AAEA,UAAI,KAAK,iBAAL,IAA0B,MAAM,KAAK,KAAzC,EAAgD;AAC9C,QAAA,UAAU,GAAG,MAAM,qDAAe,YAAf,CAAnB;AACD;AACF;;AAED,UAAM,QAAQ,CAAC,IAAT,CAAc,0BAAd,CAAyC;AAC7C,MAAA,UAD6C;AAE7C,MAAA,IAAI,EAAE,YAFuC;AAG7C;AACA,MAAA,gBAAgB,EAAE,QAAQ,CAAC,uBAAT,CAAiC,YAAjC,EAA+C,MAA/C,EAAuD,IAAvD,EAA6D,KAA7D,EAAoE,cAAc,CAAC,OAAf,CAAuB,gBAAvB,EAAyC,SAAzC,CAApE,CAJ2B;AAK7C,MAAA,MAAM,EAAE,IALqC;AAM7C,MAAA,IAN6C;AAO7C,MAAA,QAP6C;AAQ7C,MAAA,iBAAiB,EAAE,KAAK;AARqB,KAAzC,CAAN;AAUD;;AAtEsC,C","sourcesContent":["import { Arch } from \"builder-util\"\nimport * as path from \"path\"\nimport { Platform, Target, TargetSpecificOptions } from \"../core\"\nimport { copyFiles, getFileMatchers } from \"../fileMatcher\"\nimport { PlatformPackager } from \"../platformPackager\"\nimport { archive, tar } from \"./archive\"\nimport { appendBlockmap } from \"./differentialUpdateInfoBuilder\"\n\nexport class ArchiveTarget extends Target {\n readonly options: TargetSpecificOptions = (this.packager.config as any)[this.name]\n\n constructor(name: string, readonly outDir: string, private readonly packager: PlatformPackager<any>, private readonly isWriteUpdateInfo = false) {\n super(name)\n }\n\n async build(appOutDir: string, arch: Arch): Promise<any> {\n const packager = this.packager\n const isMac = packager.platform === Platform.MAC\n const format = this.name\n\n let defaultPattern: string\n if (packager.platform === Platform.LINUX) {\n // tslint:disable-next-line:no-invalid-template-strings\n defaultPattern = \"${name}-${version}\" + (arch === Arch.x64 ? \"\" : \"-${arch}\") + \".${ext}\"\n }\n else {\n // tslint:disable-next-line:no-invalid-template-strings\n defaultPattern = \"${productName}-${version}\" + (arch === Arch.x64 ? \"\" : \"-${arch}\") + \"-${os}.${ext}\"\n }\n\n const artifactName = packager.expandArtifactNamePattern(this.options, format, arch, defaultPattern, false)\n const artifactPath = path.join(this.outDir, artifactName)\n\n await packager.info.callArtifactBuildStarted({\n targetPresentableName: `${isMac ? \"macOS \" : \"\"}${format}`,\n file: artifactPath,\n arch,\n })\n let updateInfo: any = null\n if (format.startsWith(\"tar.\")) {\n await tar(packager.compression, format, artifactPath, appOutDir, isMac, packager.info.tempDirManager)\n }\n else {\n let withoutDir = !isMac\n let dirToArchive = appOutDir\n if (isMac) {\n dirToArchive = path.dirname(appOutDir)\n const fileMatchers = getFileMatchers(packager.config, \"extraDistFiles\", dirToArchive, packager.createGetFileMatchersOptions(this.outDir, arch, packager.platformSpecificBuildOptions))\n if (fileMatchers == null) {\n dirToArchive = appOutDir\n }\n else {\n await copyFiles(fileMatchers, null, true)\n withoutDir = true\n }\n }\n\n const archiveOptions = {\n compression: packager.compression,\n withoutDir,\n }\n await archive(format, artifactPath, dirToArchive, archiveOptions)\n\n if (this.isWriteUpdateInfo && format === \"zip\") {\n updateInfo = await appendBlockmap(artifactPath)\n }\n }\n\n await packager.info.callArtifactBuildCompleted({\n updateInfo,\n file: artifactPath,\n // tslint:disable-next-line:no-invalid-template-strings\n safeArtifactName: packager.computeSafeArtifactName(artifactName, format, arch, false, defaultPattern.replace(\"${productName}\", \"${name}\")),\n target: this,\n arch,\n packager,\n isWriteUpdateInfo: this.isWriteUpdateInfo,\n })\n }\n}"],"sourceRoot":""}
1
+ {"version":3,"sources":["../../src/targets/ArchiveTarget.ts"],"names":[],"mappings":";;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;AAEM,MAAO,aAAP,SAA6B,cAA7B,CAAmC;AAGvC,EAAA,WAAA,CAAY,IAAZ,EAAmC,MAAnC,EAAoE,QAApE,EAAsH,iBAAA,GAAoB,KAA1I,EAA+I;AAC7I,UAAM,IAAN;AADiC,SAAA,MAAA,GAAA,MAAA;AAAiC,SAAA,QAAA,GAAA,QAAA;AAAkD,SAAA,iBAAA,GAAA,iBAAA;AAF7G,SAAA,OAAA,GAAkC,KAAK,QAAL,CAAc,MAAd,CAA6B,KAAK,IAAlC,CAAlC;AAIR;;AAED,QAAM,KAAN,CAAY,SAAZ,EAA+B,IAA/B,EAAyC;AACvC,UAAM,QAAQ,GAAG,KAAK,QAAtB;;AACA,UAAM,KAAK,GAAG,QAAQ,CAAC,QAAT,KAAsB,iBAAS,GAA7C;;AACA,UAAM,MAAM,GAAG,KAAK,IAApB;AAEA,QAAI,cAAJ;;AACA,QAAI,QAAQ,CAAC,QAAT,KAAsB,iBAAS,KAAnC,EAA0C;AACxC;AACA,MAAA,cAAc,GAAG,wBAAwB,IAAI,KAAK,oBAAK,GAAd,GAAoB,EAApB,GAAyB,UAAjD,IAA+D,SAAhF;AACD,KAHD,MAIK;AACH;AACA,MAAA,cAAc,GAAG,+BAA+B,IAAI,KAAK,oBAAK,GAAd,GAAoB,EAApB,GAAyB,UAAxD,IAAsE,eAAvF;AACD;;AAED,UAAM,YAAY,GAAG,QAAQ,CAAC,yBAAT,CAAmC,KAAK,OAAxC,EAAiD,MAAjD,EAAyD,IAAzD,EAA+D,cAA/D,EAA+E,KAA/E,CAArB;AACA,UAAM,YAAY,GAAG,IAAI,CAAC,IAAL,CAAU,KAAK,MAAf,EAAuB,YAAvB,CAArB;AAEA,UAAM,QAAQ,CAAC,IAAT,CAAc,wBAAd,CAAuC;AAC3C,MAAA,qBAAqB,EAAE,GAAG,KAAK,GAAG,QAAH,GAAc,EAAE,GAAG,MAAM,EADb;AAE3C,MAAA,IAAI,EAAE,YAFqC;AAG3C,MAAA;AAH2C,KAAvC,CAAN;AAKA,QAAI,UAAU,GAAQ,IAAtB;;AACA,QAAI,MAAM,CAAC,UAAP,CAAkB,MAAlB,CAAJ,EAA+B;AAC7B,YAAM,oBAAI,QAAQ,CAAC,WAAb,EAA0B,MAA1B,EAAkC,YAAlC,EAAgD,SAAhD,EAA2D,KAA3D,EAAkE,QAAQ,CAAC,IAAT,CAAc,cAAhF,CAAN;AACD,KAFD,MAGK;AACH,UAAI,UAAU,GAAG,CAAC,KAAlB;AACA,UAAI,YAAY,GAAG,SAAnB;;AACA,UAAI,KAAJ,EAAW;AACT,QAAA,YAAY,GAAG,IAAI,CAAC,OAAL,CAAa,SAAb,CAAf;AACA,cAAM,YAAY,GAAG,oCAAgB,QAAQ,CAAC,MAAzB,EAAiC,gBAAjC,EAAmD,YAAnD,EAAiE,QAAQ,CAAC,4BAAT,CAAsC,KAAK,MAA3C,EAAmD,IAAnD,EAAyD,QAAQ,CAAC,4BAAlE,CAAjE,CAArB;;AACA,YAAI,YAAY,IAAI,IAApB,EAA0B;AACxB,UAAA,YAAY,GAAG,SAAf;AACD,SAFD,MAGK;AACH,gBAAM,8BAAU,YAAV,EAAwB,IAAxB,EAA8B,IAA9B,CAAN;AACA,UAAA,UAAU,GAAG,IAAb;AACD;AACF;;AAED,YAAM,cAAc,GAAG;AACrB,QAAA,WAAW,EAAE,QAAQ,CAAC,WADD;AAErB,QAAA;AAFqB,OAAvB;AAIA,YAAM,wBAAQ,MAAR,EAAgB,YAAhB,EAA8B,YAA9B,EAA4C,cAA5C,CAAN;;AAEA,UAAI,KAAK,iBAAL,IAA0B,MAAM,KAAK,KAAzC,EAAgD;AAC9C,QAAA,UAAU,GAAG,MAAM,qDAAe,YAAf,CAAnB;AACD;AACF;;AAED,UAAM,QAAQ,CAAC,IAAT,CAAc,0BAAd,CAAyC;AAC7C,MAAA,UAD6C;AAE7C,MAAA,IAAI,EAAE,YAFuC;AAG7C;AACA,MAAA,gBAAgB,EAAE,QAAQ,CAAC,uBAAT,CAAiC,YAAjC,EAA+C,MAA/C,EAAuD,IAAvD,EAA6D,KAA7D,EAAoE,cAAc,CAAC,OAAf,CAAuB,gBAAvB,EAAyC,SAAzC,CAApE,CAJ2B;AAK7C,MAAA,MAAM,EAAE,IALqC;AAM7C,MAAA,IAN6C;AAO7C,MAAA,QAP6C;AAQ7C,MAAA,iBAAiB,EAAE,KAAK;AARqB,KAAzC,CAAN;AAUD;;AAtEsC,C","sourcesContent":["import { Arch } from \"builder-util\"\nimport * as path from \"path\"\nimport { Platform, Target, TargetSpecificOptions } from \"../core\"\nimport { copyFiles, getFileMatchers } from \"../fileMatcher\"\nimport { PlatformPackager } from \"../platformPackager\"\nimport { archive, tar } from \"./archive\"\nimport { appendBlockmap } from \"./differentialUpdateInfoBuilder\"\n\nexport class ArchiveTarget extends Target {\n readonly options: TargetSpecificOptions = (this.packager.config as any)[this.name]\n\n constructor(name: string, readonly outDir: string, private readonly packager: PlatformPackager<any>, private readonly isWriteUpdateInfo = false) {\n super(name)\n }\n\n async build(appOutDir: string, arch: Arch): Promise<any> {\n const packager = this.packager\n const isMac = packager.platform === Platform.MAC\n const format = this.name\n\n let defaultPattern: string\n if (packager.platform === Platform.LINUX) {\n // tslint:disable-next-line:no-invalid-template-strings\n defaultPattern = \"${name}-${version}\" + (arch === Arch.x64 ? \"\" : \"-${arch}\") + \".${ext}\"\n }\n else {\n // tslint:disable-next-line:no-invalid-template-strings\n defaultPattern = \"${productName}-${version}\" + (arch === Arch.x64 ? \"\" : \"-${arch}\") + \"-${os}.${ext}\"\n }\n\n const artifactName = packager.expandArtifactNamePattern(this.options, format, arch, defaultPattern, false)\n const artifactPath = path.join(this.outDir, artifactName)\n\n await packager.info.callArtifactBuildStarted({\n targetPresentableName: `${isMac ? \"macOS \" : \"\"}${format}`,\n file: artifactPath,\n arch,\n })\n let updateInfo: any = null\n if (format.startsWith(\"tar.\")) {\n await tar(packager.compression, format, artifactPath, appOutDir, isMac, packager.info.tempDirManager)\n }\n else {\n let withoutDir = !isMac\n let dirToArchive = appOutDir\n if (isMac) {\n dirToArchive = path.dirname(appOutDir)\n const fileMatchers = getFileMatchers(packager.config, \"extraDistFiles\", dirToArchive, packager.createGetFileMatchersOptions(this.outDir, arch, packager.platformSpecificBuildOptions))\n if (fileMatchers == null) {\n dirToArchive = appOutDir\n }\n else {\n await copyFiles(fileMatchers, null, true)\n withoutDir = true\n }\n }\n\n const archiveOptions = {\n compression: packager.compression,\n withoutDir,\n }\n await archive(format, artifactPath, dirToArchive, archiveOptions)\n\n if (this.isWriteUpdateInfo && format === \"zip\") {\n updateInfo = await appendBlockmap(artifactPath)\n }\n }\n\n await packager.info.callArtifactBuildCompleted({\n updateInfo,\n file: artifactPath,\n // tslint:disable-next-line:no-invalid-template-strings\n safeArtifactName: packager.computeSafeArtifactName(artifactName, format, arch, false, defaultPattern.replace(\"${productName}\", \"${name}\")),\n target: this,\n arch,\n packager,\n isWriteUpdateInfo: this.isWriteUpdateInfo,\n })\n }\n}"],"sourceRoot":""}
@@ -8,8 +8,8 @@ export declare class LinuxTargetHelper {
8
8
  private readonly mimeTypeFilesPromise;
9
9
  maxIconPath: string | null;
10
10
  constructor(packager: LinuxPackager);
11
- readonly icons: Promise<Array<IconInfo>>;
12
- readonly mimeTypeFiles: Promise<string | null>;
11
+ get icons(): Promise<Array<IconInfo>>;
12
+ get mimeTypeFiles(): Promise<string | null>;
13
13
  private computeMimeTypeFiles;
14
14
  private computeDesktopIcons;
15
15
  getDescription(options: LinuxTargetSpecificOptions): string;
@@ -121,6 +121,7 @@ class LinuxTargetHelper {
121
121
  const packager = this.packager;
122
122
  const appInfo = packager.appInfo;
123
123
  const productFilename = appInfo.productFilename;
124
+ const executableArgs = targetSpecificOptions.executableArgs;
124
125
 
125
126
  if (exec == null) {
126
127
  exec = `${installPrefix}/${productFilename}/${packager.executableName}`;
@@ -129,10 +130,15 @@ class LinuxTargetHelper {
129
130
  exec = `"${exec}"`;
130
131
  }
131
132
 
133
+ if (executableArgs) {
134
+ exec += " ";
135
+ exec += executableArgs.join(" ");
136
+ }
137
+
132
138
  exec += " %U";
133
139
  }
134
140
 
135
- const desktopMeta = Object.assign({
141
+ const desktopMeta = Object.assign(Object.assign({
136
142
  Name: appInfo.productName,
137
143
  Exec: exec,
138
144
  Terminal: "false",
@@ -144,7 +150,7 @@ class LinuxTargetHelper {
144
150
  // StartupWMClass doesn't work for unicode
145
151
  // https://github.com/electron/electron/blob/2-0-x/atom/browser/native_window_views.cc#L226
146
152
  StartupWMClass: appInfo.productName
147
- }, extra, targetSpecificOptions.desktop);
153
+ }, extra), targetSpecificOptions.desktop);
148
154
  const description = this.getDescription(targetSpecificOptions);
149
155
 
150
156
  if (!(0, _builderUtil().isEmptyOrSpaces)(description)) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/targets/LinuxTargetHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import { asArray, isEmptyOrSpaces, log } from \"builder-util\"\nimport { outputFile } from \"fs-extra\"\nimport { Lazy } from \"lazy-val\"\nimport { LinuxTargetSpecificOptions } from \"..\"\nimport { LinuxPackager } from \"../linuxPackager\"\nimport { IconInfo } from \"../platformPackager\"\n\nexport const installPrefix = \"/opt\"\n\nexport class LinuxTargetHelper {\n private readonly iconPromise = new Lazy(() => this.computeDesktopIcons())\n\n private readonly mimeTypeFilesPromise = new Lazy(() => this.computeMimeTypeFiles())\n\n maxIconPath: string | null = null\n\n constructor(private packager: LinuxPackager) {\n }\n\n get icons(): Promise<Array<IconInfo>> {\n return this.iconPromise.value\n }\n\n get mimeTypeFiles(): Promise<string | null> {\n return this.mimeTypeFilesPromise.value\n }\n\n private async computeMimeTypeFiles(): Promise<string | null> {\n const items: Array<string> = []\n for (const fileAssociation of this.packager.fileAssociations) {\n if (!fileAssociation.mimeType) {\n continue\n }\n\n const data = `<mime-type type=\"${fileAssociation.mimeType}\">\n <glob pattern=\"*.${fileAssociation.ext}\"/>\n ${fileAssociation.description ? `<comment>${fileAssociation.description}</comment>` : \"\"}\n <icon name=\"x-office-document\" />\n</mime-type>`\n items.push(data)\n }\n\n if (items.length === 0) {\n return null\n }\n\n const file = await this.packager.getTempFile(\".xml\")\n await outputFile(file, '<?xml version=\"1.0\" encoding=\"utf-8\"?>\\n<mime-info xmlns=\"http://www.freedesktop.org/standards/shared-mime-info\">\\n' + items.join(\"\\n\") + \"\\n</mime-info>\")\n return file\n }\n\n // must be name without spaces and other special characters, but not product name used\n private async computeDesktopIcons(): Promise<Array<IconInfo>> {\n const packager = this.packager\n const iconDir = packager.platformSpecificBuildOptions.icon\n const sources = iconDir == null ? [] : [iconDir]\n\n const commonConfiguration = packager.config\n const icnsPath = (commonConfiguration.mac || {}).icon || commonConfiguration.icon\n if (icnsPath != null) {\n sources.push(icnsPath)\n }\n\n // need to put here and not as default because need to resolve image size\n const result = await packager.resolveIcon(sources, asArray(packager.getDefaultFrameworkIcon()), \"set\")\n this.maxIconPath = result[result.length - 1].file\n return result\n }\n\n getDescription(options: LinuxTargetSpecificOptions) {\n return options.description || this.packager.appInfo.description\n }\n\n async writeDesktopEntry(targetSpecificOptions: LinuxTargetSpecificOptions, exec?: string, destination?: string | null, extra?: { [key: string]: string; }): Promise<string> {\n const data = await this.computeDesktopEntry(targetSpecificOptions, exec, extra)\n const file = destination || await this.packager.getTempFile(`${this.packager.appInfo.productFilename}.desktop`)\n await outputFile(file, data)\n return file\n }\n\n async computeDesktopEntry(targetSpecificOptions: LinuxTargetSpecificOptions, exec?: string, extra?: { [key: string]: string; }): Promise<string> {\n if (exec != null && exec.length === 0) {\n throw new Error(\"Specified exec is empty\")\n }\n // https://github.com/electron-userland/electron-builder/issues/3418\n if (targetSpecificOptions.desktop != null && targetSpecificOptions.desktop.Exec != null) {\n throw new Error(\"Please specify executable name as linux.executableName instead of linux.desktop.Exec\")\n }\n\n const packager = this.packager\n const appInfo = packager.appInfo\n\n const productFilename = appInfo.productFilename\n\n if (exec == null) {\n exec = `${installPrefix}/${productFilename}/${packager.executableName}`\n if (!/^[/0-9A-Za-z._-]+$/.test(exec)) {\n exec = `\"${exec}\"`\n }\n exec += \" %U\"\n }\n\n const desktopMeta: any = {\n Name: appInfo.productName,\n Exec: exec,\n Terminal: \"false\",\n Type: \"Application\",\n Icon: packager.executableName,\n // https://askubuntu.com/questions/367396/what-represent-the-startupwmclass-field-of-a-desktop-file\n // must be set to package.json name (because it is Electron set WM_CLASS)\n // to get WM_CLASS of running window: xprop WM_CLASS\n // StartupWMClass doesn't work for unicode\n // https://github.com/electron/electron/blob/2-0-x/atom/browser/native_window_views.cc#L226\n StartupWMClass: appInfo.productName,\n ...extra,\n ...targetSpecificOptions.desktop,\n }\n\n const description = this.getDescription(targetSpecificOptions)\n if (!isEmptyOrSpaces(description)) {\n desktopMeta.Comment = description\n }\n\n const mimeTypes: Array<string> = asArray(targetSpecificOptions.mimeTypes)\n for (const fileAssociation of packager.fileAssociations) {\n if (fileAssociation.mimeType != null) {\n mimeTypes.push(fileAssociation.mimeType)\n }\n }\n\n for (const protocol of asArray(packager.config.protocols).concat(asArray(packager.platformSpecificBuildOptions.protocols))) {\n for (const scheme of asArray(protocol.schemes)) {\n mimeTypes.push(`x-scheme-handler/${scheme}`)\n }\n }\n\n if (mimeTypes.length !== 0) {\n desktopMeta.MimeType = mimeTypes.join(\";\") + \";\"\n }\n\n let category = targetSpecificOptions.category\n if (isEmptyOrSpaces(category)) {\n const macCategory = (packager.config.mac || {}).category\n if (macCategory != null) {\n category = macToLinuxCategory[macCategory]\n }\n\n if (category == null) {\n // https://github.com/develar/onshape-desktop-shell/issues/48\n if (macCategory != null) {\n log.warn({macCategory}, \"cannot map macOS category to Linux. If possible mapping is known for you, please file issue to add it.\")\n }\n log.warn({\n reason: \"linux.category is not set and cannot map from macOS\",\n docs: \"https://www.electron.build/configuration/linux\",\n }, \"application Linux category is set to default \\\"Utility\\\"\")\n category = \"Utility\"\n }\n }\n desktopMeta.Categories = `${category}${category.endsWith(\";\") ? \"\" : \";\"}`\n\n let data = `[Desktop Entry]`\n for (const name of Object.keys(desktopMeta)) {\n data += `\\n${name}=${desktopMeta[name]}`\n }\n data += \"\\n\"\n return data\n }\n}\n\nconst macToLinuxCategory: any = {\n \"public.app-category.graphics-design\": \"Graphics\",\n \"public.app-category.developer-tools\": \"Development\",\n \"public.app-category.education\": \"Education\",\n \"public.app-category.games\": \"Game\",\n \"public.app-category.video\": \"Video;AudioVideo\",\n \"public.app-category.utilities\": \"Utility\",\n \"public.app-category.social-networking\": \"Network;Chat\",\n \"public.app-category.finance\": \"Office;Finance\",\n}\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["../../src/targets/LinuxTargetHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import { asArray, isEmptyOrSpaces, log } from \"builder-util\"\nimport { outputFile } from \"fs-extra\"\nimport { Lazy } from \"lazy-val\"\nimport { LinuxTargetSpecificOptions } from \"..\"\nimport { LinuxPackager } from \"../linuxPackager\"\nimport { IconInfo } from \"../platformPackager\"\n\nexport const installPrefix = \"/opt\"\n\nexport class LinuxTargetHelper {\n private readonly iconPromise = new Lazy(() => this.computeDesktopIcons())\n\n private readonly mimeTypeFilesPromise = new Lazy(() => this.computeMimeTypeFiles())\n\n maxIconPath: string | null = null\n\n constructor(private packager: LinuxPackager) {\n }\n\n get icons(): Promise<Array<IconInfo>> {\n return this.iconPromise.value\n }\n\n get mimeTypeFiles(): Promise<string | null> {\n return this.mimeTypeFilesPromise.value\n }\n\n private async computeMimeTypeFiles(): Promise<string | null> {\n const items: Array<string> = []\n for (const fileAssociation of this.packager.fileAssociations) {\n if (!fileAssociation.mimeType) {\n continue\n }\n\n const data = `<mime-type type=\"${fileAssociation.mimeType}\">\n <glob pattern=\"*.${fileAssociation.ext}\"/>\n ${fileAssociation.description ? `<comment>${fileAssociation.description}</comment>` : \"\"}\n <icon name=\"x-office-document\" />\n</mime-type>`\n items.push(data)\n }\n\n if (items.length === 0) {\n return null\n }\n\n const file = await this.packager.getTempFile(\".xml\")\n await outputFile(file, '<?xml version=\"1.0\" encoding=\"utf-8\"?>\\n<mime-info xmlns=\"http://www.freedesktop.org/standards/shared-mime-info\">\\n' + items.join(\"\\n\") + \"\\n</mime-info>\")\n return file\n }\n\n // must be name without spaces and other special characters, but not product name used\n private async computeDesktopIcons(): Promise<Array<IconInfo>> {\n const packager = this.packager\n const iconDir = packager.platformSpecificBuildOptions.icon\n const sources = iconDir == null ? [] : [iconDir]\n\n const commonConfiguration = packager.config\n const icnsPath = (commonConfiguration.mac || {}).icon || commonConfiguration.icon\n if (icnsPath != null) {\n sources.push(icnsPath)\n }\n\n // need to put here and not as default because need to resolve image size\n const result = await packager.resolveIcon(sources, asArray(packager.getDefaultFrameworkIcon()), \"set\")\n this.maxIconPath = result[result.length - 1].file\n return result\n }\n\n getDescription(options: LinuxTargetSpecificOptions) {\n return options.description || this.packager.appInfo.description\n }\n\n async writeDesktopEntry(targetSpecificOptions: LinuxTargetSpecificOptions, exec?: string, destination?: string | null, extra?: { [key: string]: string; }): Promise<string> {\n const data = await this.computeDesktopEntry(targetSpecificOptions, exec, extra)\n const file = destination || await this.packager.getTempFile(`${this.packager.appInfo.productFilename}.desktop`)\n await outputFile(file, data)\n return file\n }\n\n async computeDesktopEntry(targetSpecificOptions: LinuxTargetSpecificOptions, exec?: string, extra?: { [key: string]: string; }): Promise<string> {\n if (exec != null && exec.length === 0) {\n throw new Error(\"Specified exec is empty\")\n }\n // https://github.com/electron-userland/electron-builder/issues/3418\n if (targetSpecificOptions.desktop != null && targetSpecificOptions.desktop.Exec != null) {\n throw new Error(\"Please specify executable name as linux.executableName instead of linux.desktop.Exec\")\n }\n\n const packager = this.packager\n const appInfo = packager.appInfo\n\n const productFilename = appInfo.productFilename\n const executableArgs = targetSpecificOptions.executableArgs\n if (exec == null) {\n exec = `${installPrefix}/${productFilename}/${packager.executableName}`\n if (!/^[/0-9A-Za-z._-]+$/.test(exec)) {\n exec = `\"${exec}\"`\n }\n if (executableArgs) {\n exec += \" \"\n exec += executableArgs.join(\" \")\n }\n exec += \" %U\"\n }\n\n const desktopMeta: any = {\n Name: appInfo.productName,\n Exec: exec,\n Terminal: \"false\",\n Type: \"Application\",\n Icon: packager.executableName,\n // https://askubuntu.com/questions/367396/what-represent-the-startupwmclass-field-of-a-desktop-file\n // must be set to package.json name (because it is Electron set WM_CLASS)\n // to get WM_CLASS of running window: xprop WM_CLASS\n // StartupWMClass doesn't work for unicode\n // https://github.com/electron/electron/blob/2-0-x/atom/browser/native_window_views.cc#L226\n StartupWMClass: appInfo.productName,\n ...extra,\n ...targetSpecificOptions.desktop,\n }\n\n const description = this.getDescription(targetSpecificOptions)\n if (!isEmptyOrSpaces(description)) {\n desktopMeta.Comment = description\n }\n\n const mimeTypes: Array<string> = asArray(targetSpecificOptions.mimeTypes)\n for (const fileAssociation of packager.fileAssociations) {\n if (fileAssociation.mimeType != null) {\n mimeTypes.push(fileAssociation.mimeType)\n }\n }\n\n for (const protocol of asArray(packager.config.protocols).concat(asArray(packager.platformSpecificBuildOptions.protocols))) {\n for (const scheme of asArray(protocol.schemes)) {\n mimeTypes.push(`x-scheme-handler/${scheme}`)\n }\n }\n\n if (mimeTypes.length !== 0) {\n desktopMeta.MimeType = mimeTypes.join(\";\") + \";\"\n }\n\n let category = targetSpecificOptions.category\n if (isEmptyOrSpaces(category)) {\n const macCategory = (packager.config.mac || {}).category\n if (macCategory != null) {\n category = macToLinuxCategory[macCategory]\n }\n\n if (category == null) {\n // https://github.com/develar/onshape-desktop-shell/issues/48\n if (macCategory != null) {\n log.warn({macCategory}, \"cannot map macOS category to Linux. If possible mapping is known for you, please file issue to add it.\")\n }\n log.warn({\n reason: \"linux.category is not set and cannot map from macOS\",\n docs: \"https://www.electron.build/configuration/linux\",\n }, \"application Linux category is set to default \\\"Utility\\\"\")\n category = \"Utility\"\n }\n }\n desktopMeta.Categories = `${category}${category.endsWith(\";\") ? \"\" : \";\"}`\n\n let data = `[Desktop Entry]`\n for (const name of Object.keys(desktopMeta)) {\n data += `\\n${name}=${desktopMeta[name]}`\n }\n data += \"\\n\"\n return data\n }\n}\n\nconst macToLinuxCategory: any = {\n \"public.app-category.graphics-design\": \"Graphics\",\n \"public.app-category.developer-tools\": \"Development\",\n \"public.app-category.education\": \"Education\",\n \"public.app-category.games\": \"Game\",\n \"public.app-category.video\": \"Video;AudioVideo\",\n \"public.app-category.utilities\": \"Utility\",\n \"public.app-category.social-networking\": \"Network;Chat\",\n \"public.app-category.finance\": \"Office;Finance\",\n}\n"],"sourceRoot":""}
@@ -157,7 +157,9 @@ function _targetUtil() {
157
157
  return data;
158
158
  }
159
159
 
160
- 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; } }
160
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
161
+
162
+ 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; }
161
163
 
162
164
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
163
165
 
@@ -211,7 +213,7 @@ class MsiTarget extends _core().Target {
211
213
 
212
214
  const vendorPath = await (0, _binDownload().getBinFromUrl)("wix", "4.0.0.5512.2", "/X5poahdCc3199Vt6AP7gluTlT1nxi9cbbHhZhCMEu+ngyP1LiBMn+oZX7QAZVaKeBMc2SjVp7fJqNLqsUnPNQ=="); // noinspection SpellCheckingInspection
213
215
 
214
- const candleArgs = ["-arch", arch === _builderUtil().Arch.ia32 ? "x86" : arch === _builderUtil().Arch.armv7l ? "arm" : "x64", `-dappDir=${vm.toVmFile(appOutDir)}`].concat(this.getCommonWixArgs());
216
+ const candleArgs = ["-arch", arch === _builderUtil().Arch.ia32 ? "x86" : arch === _builderUtil().Arch.arm64 ? "arm64" : "x64", `-dappDir=${vm.toVmFile(appOutDir)}`].concat(this.getCommonWixArgs());
215
217
  candleArgs.push("project.wxs");
216
218
 
217
219
  if (uiFile !== null) {
@@ -282,7 +284,7 @@ class MsiTarget extends _core().Target {
282
284
  const compression = this.packager.compression;
283
285
  const options = this.options;
284
286
  const iconPath = await this.packager.getIconPath();
285
- return (await projectTemplate.value)(Object.assign({}, commonOptions, {
287
+ return (await projectTemplate.value)(Object.assign(Object.assign({}, commonOptions), {
286
288
  isCreateDesktopShortcut: commonOptions.isCreateDesktopShortcut !== _CommonWindowsInstallerConfiguration().DesktopShortcutCreationPolicy.NEVER,
287
289
  isRunAfterFinish: options.runAfterFinish !== false,
288
290
  iconPath: iconPath == null ? null : this.vm.toVmFile(iconPath),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/targets/MsiTarget.ts"],"names":[],"mappings":"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","sourcesContent":["import BluebirdPromise from \"bluebird-lst\"\nimport { Arch, log, deepAssign } from \"builder-util\"\nimport { UUID } from \"builder-util-runtime\"\nimport { getBinFromUrl } from \"../binDownload\"\nimport { walk } from \"builder-util/out/fs\"\nimport { createHash } from \"crypto\"\nimport * as ejs from \"ejs\"\nimport { readFile, writeFile } from \"fs-extra\"\nimport { Lazy } from \"lazy-val\"\nimport * as path from \"path\"\nimport { MsiOptions } from \"../\"\nimport { Target } from \"../core\"\nimport { DesktopShortcutCreationPolicy, FinalCommonWindowsInstallerOptions, getEffectiveOptions } from \"../options/CommonWindowsInstallerConfiguration\"\nimport { getTemplatePath } from \"../util/pathManager\"\nimport { VmManager } from \"../vm/vm\"\nimport { WineVmManager } from \"../vm/WineVm\"\nimport { WinPackager } from \"../winPackager\"\nimport { createStageDir, getWindowsInstallationDirName } from \"./targetUtil\"\n\nconst ELECTRON_BUILDER_UPGRADE_CODE_NS_UUID = UUID.parse(\"d752fe43-5d44-44d5-9fc9-6dd1bf19d5cc\")\nconst ROOT_DIR_ID = \"APPLICATIONFOLDER\"\n\nconst ASSISTED_UI_FILE_NAME = \"WixUI_Assisted.wxs\"\n\nconst projectTemplate = new Lazy<(data: any) => string>(async () => {\n const template = (await readFile(path.join(getTemplatePath(\"msi\"), \"template.xml\"), \"utf8\"))\n .replace(/{{/g, \"<%\")\n .replace(/}}/g, \"%>\")\n .replace(/\\${([^}]+)}/g, \"<%=$1%>\")\n return ejs.compile(template)\n})\n\n// WiX doesn't support Mono, so, dontnet462 is required to be installed for wine (preinstalled in our bundled wine)\nexport default class MsiTarget extends Target {\n private readonly vm = process.platform === \"win32\" ? new VmManager() : new WineVmManager()\n\n readonly options: MsiOptions = deepAssign(this.packager.platformSpecificBuildOptions, this.packager.config.msi)\n\n constructor(private readonly packager: WinPackager, readonly outDir: string) {\n super(\"msi\")\n }\n\n async build(appOutDir: string, arch: Arch) {\n const packager = this.packager\n const artifactName = packager.expandArtifactBeautyNamePattern(this.options, \"msi\", arch)\n const artifactPath = path.join(this.outDir, artifactName)\n await packager.info.callArtifactBuildStarted({\n targetPresentableName: \"MSI\",\n file: artifactPath,\n arch,\n })\n\n const stageDir = await createStageDir(this, packager, arch)\n const vm = this.vm\n\n const commonOptions = getEffectiveOptions(this.options, this.packager)\n\n if (commonOptions.isAssisted) {\n // F*** *** *** *** *** *** *** *** *** *** *** *** *** WiX *** *** *** *** *** *** *** *** ***\n // cannot understand how to set MSIINSTALLPERUSER on radio box change. In any case installed per user.\n log.warn(`MSI DOESN'T SUPPORT assisted installer. Please use NSIS instead.`)\n }\n\n const projectFile = stageDir.getTempFile(\"project.wxs\")\n const objectFiles = [\"project.wixobj\"]\n const uiFile = commonOptions.isAssisted ? stageDir.getTempFile(ASSISTED_UI_FILE_NAME) : null\n await writeFile(projectFile, await this.writeManifest(appOutDir, arch, commonOptions))\n if (uiFile !== null) {\n await writeFile(uiFile, await readFile(path.join(getTemplatePath(\"msi\"), ASSISTED_UI_FILE_NAME), \"utf8\"))\n objectFiles.push(ASSISTED_UI_FILE_NAME.replace(\".wxs\", \".wixobj\"))\n }\n\n // noinspection SpellCheckingInspection\n const vendorPath = await getBinFromUrl(\"wix\", \"4.0.0.5512.2\", \"/X5poahdCc3199Vt6AP7gluTlT1nxi9cbbHhZhCMEu+ngyP1LiBMn+oZX7QAZVaKeBMc2SjVp7fJqNLqsUnPNQ==\")\n\n // noinspection SpellCheckingInspection\n const candleArgs = [\n \"-arch\", arch === Arch.ia32 ? \"x86\" : (arch === Arch.armv7l ? \"arm\" : \"x64\"),\n `-dappDir=${vm.toVmFile(appOutDir)}`,\n ].concat(this.getCommonWixArgs())\n candleArgs.push(\"project.wxs\")\n if (uiFile !== null) {\n candleArgs.push(ASSISTED_UI_FILE_NAME)\n }\n await vm.exec(vm.toVmFile(path.join(vendorPath, \"candle.exe\")), candleArgs, {\n cwd: stageDir.dir,\n })\n\n await this.light(objectFiles, vm, artifactPath, appOutDir, vendorPath, stageDir.dir)\n\n await stageDir.cleanup()\n\n await packager.sign(artifactPath)\n\n await packager.info.callArtifactBuildCompleted({\n file: artifactPath,\n packager,\n arch,\n safeArtifactName: packager.computeSafeArtifactName(artifactName, \"msi\"),\n target: this,\n isWriteUpdateInfo: false,\n })\n }\n\n private async light(objectFiles: Array<string>, vm: VmManager, artifactPath: string, appOutDir: string, vendorPath: string, tempDir: string) {\n // noinspection SpellCheckingInspection\n const lightArgs = [\n \"-out\", vm.toVmFile(artifactPath),\n \"-v\",\n // https://github.com/wixtoolset/issues/issues/5169\n \"-spdb\",\n // https://sourceforge.net/p/wix/bugs/2405/\n // error LGHT1076 : ICE61: This product should remove only older versions of itself. The Maximum version is not less than the current product. (1.1.0.42 1.1.0.42)\n \"-sw1076\",\n `-dappDir=${vm.toVmFile(appOutDir)}`,\n // \"-dcl:high\",\n ].concat(this.getCommonWixArgs())\n\n // http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Build-3-5-2229-0-give-me-the-following-error-error-LGHT0216-An-unexpected-Win32-exception-with-errorn-td5707443.html\n if (process.platform !== \"win32\") {\n // noinspection SpellCheckingInspection\n lightArgs.push(\"-sval\")\n }\n\n if (this.options.oneClick === false) {\n lightArgs.push(\"-ext\", \"WixUIExtension\")\n }\n\n // objectFiles - only filenames, we set current directory to our temp stage dir\n lightArgs.push(...objectFiles)\n await vm.exec(vm.toVmFile(path.join(vendorPath, \"light.exe\")), lightArgs, {\n cwd: tempDir,\n })\n }\n\n private getCommonWixArgs() {\n const args: Array<string> = [\"-pedantic\"]\n if (this.options.warningsAsErrors !== false) {\n args.push(\"-wx\")\n }\n return args\n }\n\n private async writeManifest(appOutDir: string, arch: Arch, commonOptions: FinalCommonWindowsInstallerOptions) {\n const appInfo = this.packager.appInfo\n const {files, dirs} = await this.computeFileDeclaration(appOutDir)\n\n const companyName = appInfo.companyName\n if (!companyName) {\n log.warn(`Manufacturer is not set for MSI — please set \"author\" in the package.json`)\n }\n\n const compression = this.packager.compression\n const options = this.options\n const iconPath = await this.packager.getIconPath()\n return (await projectTemplate.value)({\n ...commonOptions,\n isCreateDesktopShortcut: commonOptions.isCreateDesktopShortcut !== DesktopShortcutCreationPolicy.NEVER,\n isRunAfterFinish: options.runAfterFinish !== false,\n iconPath: iconPath == null ? null : this.vm.toVmFile(iconPath),\n compressionLevel: compression === \"store\" ? \"none\" : \"high\",\n version: appInfo.getVersionInWeirdWindowsForm(),\n productName: appInfo.productName,\n upgradeCode: (options.upgradeCode || UUID.v5(appInfo.id, ELECTRON_BUILDER_UPGRADE_CODE_NS_UUID)).toUpperCase(),\n manufacturer: companyName || appInfo.productName,\n appDescription: appInfo.description,\n // https://stackoverflow.com/questions/1929038/compilation-error-ice80-the-64bitcomponent-uses-32bitdirectory\n programFilesId: arch === Arch.x64 ? \"ProgramFiles64Folder\" : \"ProgramFilesFolder\",\n // wix in the name because special wix format can be used in the name\n installationDirectoryWixName: getWindowsInstallationDirName(appInfo, commonOptions.isPerMachine === true),\n dirs,\n files,\n })\n }\n\n private async computeFileDeclaration(appOutDir: string) {\n const appInfo = this.packager.appInfo\n let isRootDirAddedToRemoveTable = false\n const dirNames = new Set<string>()\n const dirs: Array<string> = []\n const fileSpace = \" \".repeat(6)\n const commonOptions = getEffectiveOptions(this.options, this.packager)\n const files = await BluebirdPromise.map(walk(appOutDir), file => {\n const packagePath = file.substring(appOutDir.length + 1)\n\n const lastSlash = packagePath.lastIndexOf(path.sep)\n const fileName = lastSlash > 0 ? packagePath.substring(lastSlash + 1) : packagePath\n let directoryId: string | null = null\n let dirName = \"\"\n // Wix Directory.FileSource doesn't work - https://stackoverflow.com/questions/21519388/wix-filesource-confusion\n if (lastSlash > 0) {\n // This Name attribute may also define multiple directories using the inline directory syntax.\n // For example, \"ProgramFilesFolder:\\My Company\\My Product\\bin\" would create a reference to a Directory element with Id=\"ProgramFilesFolder\" then create directories named \"My Company\" then \"My Product\" then \"bin\" nested beneath each other.\n // This syntax is a shortcut to defining each directory in an individual Directory element.\n dirName = packagePath.substring(0, lastSlash)\n // https://github.com/electron-userland/electron-builder/issues/3027\n directoryId = \"d\" + createHash(\"md5\").update(dirName).digest(\"base64\").replace(/\\//g, \"_\").replace(/\\+/g, \".\").replace(/=+$/, \"\")\n if (!dirNames.has(dirName)) {\n dirNames.add(dirName)\n dirs.push(`<Directory Id=\"${directoryId}\" Name=\"${ROOT_DIR_ID}:\\\\${dirName.replace(/\\//g, \"\\\\\")}\\\\\"/>`)\n }\n }\n else if (!isRootDirAddedToRemoveTable) {\n isRootDirAddedToRemoveTable = true\n }\n\n // since RegistryValue can be part of Component, *** *** *** *** *** *** *** *** *** wix cannot auto generate guid\n // https://stackoverflow.com/questions/1405100/change-my-component-guid-in-wix\n let result = `<Component${directoryId === null ? \"\" : ` Directory=\"${directoryId}\"`}>`\n result += `\\n${fileSpace} <File Name=\"${fileName}\" Source=\"$(var.appDir)${path.sep}${packagePath}\" ReadOnly=\"yes\" KeyPath=\"yes\"`\n const isMainExecutable = packagePath === `${appInfo.productFilename}.exe`\n if (isMainExecutable) {\n result += ' Id=\"mainExecutable\"'\n }\n else if (directoryId === null) {\n result += ` Id=\"${path.basename(packagePath)}_f\"`\n }\n\n const isCreateDesktopShortcut = commonOptions.isCreateDesktopShortcut !== DesktopShortcutCreationPolicy.NEVER\n if (isMainExecutable && (isCreateDesktopShortcut || commonOptions.isCreateStartMenuShortcut)) {\n result += `>\\n`\n const shortcutName = commonOptions.shortcutName\n if (isCreateDesktopShortcut) {\n result += `${fileSpace} <Shortcut Id=\"desktopShortcut\" Directory=\"DesktopFolder\" Name=\"${shortcutName}\" WorkingDirectory=\"APPLICATIONFOLDER\" Advertise=\"yes\" Icon=\"icon.ico\"/>\\n`\n }\n\n const hasMenuCategory = commonOptions.menuCategory != null\n const startMenuShortcutDirectoryId = hasMenuCategory ? \"AppProgramMenuDir\" : \"ProgramMenuFolder\"\n if (commonOptions.isCreateStartMenuShortcut) {\n if (hasMenuCategory) {\n dirs.push(`<Directory Id=\"${startMenuShortcutDirectoryId}\" Name=\"ProgramMenuFolder:\\\\${commonOptions.menuCategory}\\\\\"/>`)\n }\n result += `${fileSpace} <Shortcut Id=\"startMenuShortcut\" Directory=\"${startMenuShortcutDirectoryId}\" Name=\"${shortcutName}\" WorkingDirectory=\"APPLICATIONFOLDER\" Advertise=\"yes\" Icon=\"icon.ico\">\\n`\n result += `${fileSpace} <ShortcutProperty Key=\"System.AppUserModel.ID\" Value=\"${this.packager.appInfo.id}\"/>\\n`\n result += `${fileSpace} </Shortcut>\\n`\n }\n result += `${fileSpace}</File>`\n\n if (hasMenuCategory) {\n result += `<RemoveFolder Id=\"${startMenuShortcutDirectoryId}\" Directory=\"${startMenuShortcutDirectoryId}\" On=\"uninstall\"/>\\n`\n }\n }\n else {\n result += `/>`\n }\n\n return `${result}\\n${fileSpace}</Component>`\n })\n\n return {dirs: listToString(dirs, 2), files: listToString(files, 3)}\n }\n}\n\nfunction listToString(list: Array<string>, indentLevel: number) {\n const space = \" \".repeat(indentLevel * 2)\n return list.join(`\\n${space}`)\n}\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["../../src/targets/MsiTarget.ts"],"names":[],"mappings":"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","sourcesContent":["import BluebirdPromise from \"bluebird-lst\"\nimport { Arch, log, deepAssign } from \"builder-util\"\nimport { UUID } from \"builder-util-runtime\"\nimport { getBinFromUrl } from \"../binDownload\"\nimport { walk } from \"builder-util/out/fs\"\nimport { createHash } from \"crypto\"\nimport * as ejs from \"ejs\"\nimport { readFile, writeFile } from \"fs-extra\"\nimport { Lazy } from \"lazy-val\"\nimport * as path from \"path\"\nimport { MsiOptions } from \"../\"\nimport { Target } from \"../core\"\nimport { DesktopShortcutCreationPolicy, FinalCommonWindowsInstallerOptions, getEffectiveOptions } from \"../options/CommonWindowsInstallerConfiguration\"\nimport { getTemplatePath } from \"../util/pathManager\"\nimport { VmManager } from \"../vm/vm\"\nimport { WineVmManager } from \"../vm/WineVm\"\nimport { WinPackager } from \"../winPackager\"\nimport { createStageDir, getWindowsInstallationDirName } from \"./targetUtil\"\n\nconst ELECTRON_BUILDER_UPGRADE_CODE_NS_UUID = UUID.parse(\"d752fe43-5d44-44d5-9fc9-6dd1bf19d5cc\")\nconst ROOT_DIR_ID = \"APPLICATIONFOLDER\"\n\nconst ASSISTED_UI_FILE_NAME = \"WixUI_Assisted.wxs\"\n\nconst projectTemplate = new Lazy<(data: any) => string>(async () => {\n const template = (await readFile(path.join(getTemplatePath(\"msi\"), \"template.xml\"), \"utf8\"))\n .replace(/{{/g, \"<%\")\n .replace(/}}/g, \"%>\")\n .replace(/\\${([^}]+)}/g, \"<%=$1%>\")\n return ejs.compile(template)\n})\n\n// WiX doesn't support Mono, so, dontnet462 is required to be installed for wine (preinstalled in our bundled wine)\nexport default class MsiTarget extends Target {\n private readonly vm = process.platform === \"win32\" ? new VmManager() : new WineVmManager()\n\n readonly options: MsiOptions = deepAssign(this.packager.platformSpecificBuildOptions, this.packager.config.msi)\n\n constructor(private readonly packager: WinPackager, readonly outDir: string) {\n super(\"msi\")\n }\n\n async build(appOutDir: string, arch: Arch) {\n const packager = this.packager\n const artifactName = packager.expandArtifactBeautyNamePattern(this.options, \"msi\", arch)\n const artifactPath = path.join(this.outDir, artifactName)\n await packager.info.callArtifactBuildStarted({\n targetPresentableName: \"MSI\",\n file: artifactPath,\n arch,\n })\n\n const stageDir = await createStageDir(this, packager, arch)\n const vm = this.vm\n\n const commonOptions = getEffectiveOptions(this.options, this.packager)\n\n if (commonOptions.isAssisted) {\n // F*** *** *** *** *** *** *** *** *** *** *** *** *** WiX *** *** *** *** *** *** *** *** ***\n // cannot understand how to set MSIINSTALLPERUSER on radio box change. In any case installed per user.\n log.warn(`MSI DOESN'T SUPPORT assisted installer. Please use NSIS instead.`)\n }\n\n const projectFile = stageDir.getTempFile(\"project.wxs\")\n const objectFiles = [\"project.wixobj\"]\n const uiFile = commonOptions.isAssisted ? stageDir.getTempFile(ASSISTED_UI_FILE_NAME) : null\n await writeFile(projectFile, await this.writeManifest(appOutDir, arch, commonOptions))\n if (uiFile !== null) {\n await writeFile(uiFile, await readFile(path.join(getTemplatePath(\"msi\"), ASSISTED_UI_FILE_NAME), \"utf8\"))\n objectFiles.push(ASSISTED_UI_FILE_NAME.replace(\".wxs\", \".wixobj\"))\n }\n\n // noinspection SpellCheckingInspection\n const vendorPath = await getBinFromUrl(\"wix\", \"4.0.0.5512.2\", \"/X5poahdCc3199Vt6AP7gluTlT1nxi9cbbHhZhCMEu+ngyP1LiBMn+oZX7QAZVaKeBMc2SjVp7fJqNLqsUnPNQ==\")\n\n // noinspection SpellCheckingInspection\n const candleArgs = [\n \"-arch\", arch === Arch.ia32 ? \"x86\" : (arch === Arch.arm64 ? \"arm64\" : \"x64\"),\n `-dappDir=${vm.toVmFile(appOutDir)}`,\n ].concat(this.getCommonWixArgs())\n candleArgs.push(\"project.wxs\")\n if (uiFile !== null) {\n candleArgs.push(ASSISTED_UI_FILE_NAME)\n }\n await vm.exec(vm.toVmFile(path.join(vendorPath, \"candle.exe\")), candleArgs, {\n cwd: stageDir.dir,\n })\n\n await this.light(objectFiles, vm, artifactPath, appOutDir, vendorPath, stageDir.dir)\n\n await stageDir.cleanup()\n\n await packager.sign(artifactPath)\n\n await packager.info.callArtifactBuildCompleted({\n file: artifactPath,\n packager,\n arch,\n safeArtifactName: packager.computeSafeArtifactName(artifactName, \"msi\"),\n target: this,\n isWriteUpdateInfo: false,\n })\n }\n\n private async light(objectFiles: Array<string>, vm: VmManager, artifactPath: string, appOutDir: string, vendorPath: string, tempDir: string) {\n // noinspection SpellCheckingInspection\n const lightArgs = [\n \"-out\", vm.toVmFile(artifactPath),\n \"-v\",\n // https://github.com/wixtoolset/issues/issues/5169\n \"-spdb\",\n // https://sourceforge.net/p/wix/bugs/2405/\n // error LGHT1076 : ICE61: This product should remove only older versions of itself. The Maximum version is not less than the current product. (1.1.0.42 1.1.0.42)\n \"-sw1076\",\n `-dappDir=${vm.toVmFile(appOutDir)}`,\n // \"-dcl:high\",\n ].concat(this.getCommonWixArgs())\n\n // http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Build-3-5-2229-0-give-me-the-following-error-error-LGHT0216-An-unexpected-Win32-exception-with-errorn-td5707443.html\n if (process.platform !== \"win32\") {\n // noinspection SpellCheckingInspection\n lightArgs.push(\"-sval\")\n }\n\n if (this.options.oneClick === false) {\n lightArgs.push(\"-ext\", \"WixUIExtension\")\n }\n\n // objectFiles - only filenames, we set current directory to our temp stage dir\n lightArgs.push(...objectFiles)\n await vm.exec(vm.toVmFile(path.join(vendorPath, \"light.exe\")), lightArgs, {\n cwd: tempDir,\n })\n }\n\n private getCommonWixArgs() {\n const args: Array<string> = [\"-pedantic\"]\n if (this.options.warningsAsErrors !== false) {\n args.push(\"-wx\")\n }\n return args\n }\n\n private async writeManifest(appOutDir: string, arch: Arch, commonOptions: FinalCommonWindowsInstallerOptions) {\n const appInfo = this.packager.appInfo\n const {files, dirs} = await this.computeFileDeclaration(appOutDir)\n\n const companyName = appInfo.companyName\n if (!companyName) {\n log.warn(`Manufacturer is not set for MSI — please set \"author\" in the package.json`)\n }\n\n const compression = this.packager.compression\n const options = this.options\n const iconPath = await this.packager.getIconPath()\n return (await projectTemplate.value)({\n ...commonOptions,\n isCreateDesktopShortcut: commonOptions.isCreateDesktopShortcut !== DesktopShortcutCreationPolicy.NEVER,\n isRunAfterFinish: options.runAfterFinish !== false,\n iconPath: iconPath == null ? null : this.vm.toVmFile(iconPath),\n compressionLevel: compression === \"store\" ? \"none\" : \"high\",\n version: appInfo.getVersionInWeirdWindowsForm(),\n productName: appInfo.productName,\n upgradeCode: (options.upgradeCode || UUID.v5(appInfo.id, ELECTRON_BUILDER_UPGRADE_CODE_NS_UUID)).toUpperCase(),\n manufacturer: companyName || appInfo.productName,\n appDescription: appInfo.description,\n // https://stackoverflow.com/questions/1929038/compilation-error-ice80-the-64bitcomponent-uses-32bitdirectory\n programFilesId: arch === Arch.x64 ? \"ProgramFiles64Folder\" : \"ProgramFilesFolder\",\n // wix in the name because special wix format can be used in the name\n installationDirectoryWixName: getWindowsInstallationDirName(appInfo, commonOptions.isPerMachine === true),\n dirs,\n files,\n })\n }\n\n private async computeFileDeclaration(appOutDir: string) {\n const appInfo = this.packager.appInfo\n let isRootDirAddedToRemoveTable = false\n const dirNames = new Set<string>()\n const dirs: Array<string> = []\n const fileSpace = \" \".repeat(6)\n const commonOptions = getEffectiveOptions(this.options, this.packager)\n const files = await BluebirdPromise.map(walk(appOutDir), file => {\n const packagePath = file.substring(appOutDir.length + 1)\n\n const lastSlash = packagePath.lastIndexOf(path.sep)\n const fileName = lastSlash > 0 ? packagePath.substring(lastSlash + 1) : packagePath\n let directoryId: string | null = null\n let dirName = \"\"\n // Wix Directory.FileSource doesn't work - https://stackoverflow.com/questions/21519388/wix-filesource-confusion\n if (lastSlash > 0) {\n // This Name attribute may also define multiple directories using the inline directory syntax.\n // For example, \"ProgramFilesFolder:\\My Company\\My Product\\bin\" would create a reference to a Directory element with Id=\"ProgramFilesFolder\" then create directories named \"My Company\" then \"My Product\" then \"bin\" nested beneath each other.\n // This syntax is a shortcut to defining each directory in an individual Directory element.\n dirName = packagePath.substring(0, lastSlash)\n // https://github.com/electron-userland/electron-builder/issues/3027\n directoryId = \"d\" + createHash(\"md5\").update(dirName).digest(\"base64\").replace(/\\//g, \"_\").replace(/\\+/g, \".\").replace(/=+$/, \"\")\n if (!dirNames.has(dirName)) {\n dirNames.add(dirName)\n dirs.push(`<Directory Id=\"${directoryId}\" Name=\"${ROOT_DIR_ID}:\\\\${dirName.replace(/\\//g, \"\\\\\")}\\\\\"/>`)\n }\n }\n else if (!isRootDirAddedToRemoveTable) {\n isRootDirAddedToRemoveTable = true\n }\n\n // since RegistryValue can be part of Component, *** *** *** *** *** *** *** *** *** wix cannot auto generate guid\n // https://stackoverflow.com/questions/1405100/change-my-component-guid-in-wix\n let result = `<Component${directoryId === null ? \"\" : ` Directory=\"${directoryId}\"`}>`\n result += `\\n${fileSpace} <File Name=\"${fileName}\" Source=\"$(var.appDir)${path.sep}${packagePath}\" ReadOnly=\"yes\" KeyPath=\"yes\"`\n const isMainExecutable = packagePath === `${appInfo.productFilename}.exe`\n if (isMainExecutable) {\n result += ' Id=\"mainExecutable\"'\n }\n else if (directoryId === null) {\n result += ` Id=\"${path.basename(packagePath)}_f\"`\n }\n\n const isCreateDesktopShortcut = commonOptions.isCreateDesktopShortcut !== DesktopShortcutCreationPolicy.NEVER\n if (isMainExecutable && (isCreateDesktopShortcut || commonOptions.isCreateStartMenuShortcut)) {\n result += `>\\n`\n const shortcutName = commonOptions.shortcutName\n if (isCreateDesktopShortcut) {\n result += `${fileSpace} <Shortcut Id=\"desktopShortcut\" Directory=\"DesktopFolder\" Name=\"${shortcutName}\" WorkingDirectory=\"APPLICATIONFOLDER\" Advertise=\"yes\" Icon=\"icon.ico\"/>\\n`\n }\n\n const hasMenuCategory = commonOptions.menuCategory != null\n const startMenuShortcutDirectoryId = hasMenuCategory ? \"AppProgramMenuDir\" : \"ProgramMenuFolder\"\n if (commonOptions.isCreateStartMenuShortcut) {\n if (hasMenuCategory) {\n dirs.push(`<Directory Id=\"${startMenuShortcutDirectoryId}\" Name=\"ProgramMenuFolder:\\\\${commonOptions.menuCategory}\\\\\"/>`)\n }\n result += `${fileSpace} <Shortcut Id=\"startMenuShortcut\" Directory=\"${startMenuShortcutDirectoryId}\" Name=\"${shortcutName}\" WorkingDirectory=\"APPLICATIONFOLDER\" Advertise=\"yes\" Icon=\"icon.ico\">\\n`\n result += `${fileSpace} <ShortcutProperty Key=\"System.AppUserModel.ID\" Value=\"${this.packager.appInfo.id}\"/>\\n`\n result += `${fileSpace} </Shortcut>\\n`\n }\n result += `${fileSpace}</File>`\n\n if (hasMenuCategory) {\n result += `<RemoveFolder Id=\"${startMenuShortcutDirectoryId}\" Directory=\"${startMenuShortcutDirectoryId}\" On=\"uninstall\"/>\\n`\n }\n }\n else {\n result += `/>`\n }\n\n return `${result}\\n${fileSpace}</Component>`\n })\n\n return {dirs: listToString(dirs, 2), files: listToString(files, 3)}\n }\n}\n\nfunction listToString(list: Array<string>, indentLevel: number) {\n const space = \" \".repeat(indentLevel * 2)\n return list.join(`\\n${space}`)\n}\n"],"sourceRoot":""}
@@ -59,7 +59,9 @@ function _tools() {
59
59
  return data;
60
60
  }
61
61
 
62
- 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; } }
62
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
63
+
64
+ 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; }
63
65
 
64
66
  /** @internal */
65
67
  async function tar(compression, format, outFile, dirToArchive, isMacApp, tempDirManager) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/targets/archive.ts"],"names":[],"mappings":"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","sourcesContent":["import { path7za } from \"7zip-bin\"\nimport { debug7z, exec } from \"builder-util\"\nimport { exists, unlinkIfExists } from \"builder-util/out/fs\"\nimport { move } from \"fs-extra\"\nimport * as path from \"path\"\nimport { TmpDir } from \"temp-file\"\nimport { CompressionLevel } from \"../core\"\nimport { getLinuxToolsPath } from \"./tools\"\n\n/** @internal */\nexport async function tar(compression: CompressionLevel | any | any, format: string, outFile: string, dirToArchive: string, isMacApp: boolean, tempDirManager: TmpDir): Promise<void> {\n const tarFile = await tempDirManager.getTempFile({suffix: \".tar\"})\n const tarArgs = debug7zArgs(\"a\")\n tarArgs.push(tarFile)\n tarArgs.push(path.basename(dirToArchive))\n\n await Promise.all([\n exec(path7za, tarArgs, {cwd: path.dirname(dirToArchive)}),\n // remove file before - 7z doesn't overwrite file, but update\n unlinkIfExists(outFile),\n ])\n\n if (!isMacApp) {\n await exec(path7za, [\"rn\", tarFile, path.basename(dirToArchive), path.basename(outFile, `.${format}`)])\n }\n\n if (format === \"tar.lz\") {\n // noinspection SpellCheckingInspection\n let lzipPath = \"lzip\"\n if (process.platform === \"darwin\") {\n lzipPath = path.join(await getLinuxToolsPath(), \"bin\", lzipPath)\n }\n await exec(lzipPath, [compression === \"store\" ? \"-1\" : \"-9\", \"--keep\" /* keep (don't delete) input files */, tarFile])\n // bloody lzip creates file in the same dir where input file with postfix `.lz`, option --output doesn't work\n await move(`${tarFile}.lz`, outFile)\n return\n }\n\n const args = compute7zCompressArgs(format === \"tar.xz\" ? \"xz\" : (format === \"tar.bz2\" ? \"bzip2\" : \"gzip\"), {\n isRegularFile: true,\n method: \"DEFAULT\",\n compression,\n })\n args.push(outFile, tarFile)\n await exec(path7za, args, {\n cwd: path.dirname(dirToArchive),\n }, debug7z.enabled)\n}\n\nexport interface ArchiveOptions {\n compression?: CompressionLevel | null\n\n /**\n * @default false\n */\n withoutDir?: boolean\n\n /**\n * @default true\n */\n solid?: boolean\n\n /**\n * @default true\n */\n isArchiveHeaderCompressed?: boolean\n\n dictSize?: number\n excluded?: Array<string> | null\n\n // DEFAULT allows to disable custom logic and do not pass method switch at all\n method?: \"Copy\" | \"LZMA\" | \"Deflate\" | \"DEFAULT\"\n\n isRegularFile?: boolean\n}\n\nexport function compute7zCompressArgs(format: string, options: ArchiveOptions = {}) {\n let storeOnly = options.compression === \"store\"\n const args = debug7zArgs(\"a\")\n\n let isLevelSet = false\n if (process.env.ELECTRON_BUILDER_COMPRESSION_LEVEL != null) {\n storeOnly = false\n args.push(`-mx=${process.env.ELECTRON_BUILDER_COMPRESSION_LEVEL}`)\n isLevelSet = true\n }\n\n const isZip = format === \"zip\"\n if (!storeOnly) {\n if (isZip && options.compression === \"maximum\") {\n // http://superuser.com/a/742034\n args.push(\"-mfb=258\", \"-mpass=15\")\n }\n\n if (!isLevelSet) {\n // https://github.com/electron-userland/electron-builder/pull/3032\n args.push(\"-mx=\" + ((!isZip || options.compression === \"maximum\") ? \"9\" : \"7\"))\n }\n }\n\n if (options.dictSize != null) {\n args.push(`-md=${options.dictSize}m`)\n }\n\n // https://sevenzip.osdn.jp/chm/cmdline/switches/method.htm#7Z\n // https://stackoverflow.com/questions/27136783/7zip-produces-different-output-from-identical-input\n // tc and ta are off by default, but to be sure, we explicitly set it to off\n // disable \"Stores NTFS timestamps for files: Modification time, Creation time, Last access time.\" to produce the same archive for the same data\n if (!options.isRegularFile) {\n args.push(\"-mtc=off\")\n }\n\n if (format === \"7z\" || format.endsWith(\".7z\")) {\n if (options.solid === false) {\n args.push(\"-ms=off\")\n }\n\n if (options.isArchiveHeaderCompressed === false) {\n args.push(\"-mhc=off\")\n }\n\n // args valid only for 7z\n // -mtm=off disable \"Stores last Modified timestamps for files.\"\n args.push(\"-mtm=off\", \"-mta=off\")\n }\n\n if (options.method != null) {\n if (options.method !== \"DEFAULT\") {\n args.push(`-mm=${options.method}`)\n }\n }\n else if (isZip || storeOnly) {\n args.push(`-mm=${storeOnly ? \"Copy\" : \"Deflate\"}`)\n }\n\n if (isZip) {\n // -mcu switch: 7-Zip uses UTF-8, if there are non-ASCII symbols.\n // because default mode: 7-Zip uses UTF-8, if the local code page doesn't contain required symbols.\n // but archive should be the same regardless where produced\n args.push(\"-mcu\")\n }\n return args\n}\n\n// 7z is very fast, so, use ultra compression\n/** @internal */\nexport async function archive(format: string, outFile: string, dirToArchive: string, options: ArchiveOptions = {}): Promise<string> {\n const args = compute7zCompressArgs(format, options)\n // remove file before - 7z doesn't overwrite file, but update\n await unlinkIfExists(outFile)\n\n args.push(outFile, options.withoutDir ? \".\" : path.basename(dirToArchive))\n if (options.excluded != null) {\n for (const mask of options.excluded) {\n args.push(`-xr!${mask}`)\n }\n }\n\n try {\n await exec(path7za, args, {\n cwd: options.withoutDir ? dirToArchive : path.dirname(dirToArchive),\n }, debug7z.enabled)\n }\n catch (e) {\n if (e.code === \"ENOENT\" && !(await exists(dirToArchive))) {\n throw new Error(`Cannot create archive: \"${dirToArchive}\" doesn't exist`)\n }\n else {\n throw e\n }\n }\n\n return outFile\n}\n\nfunction debug7zArgs(command: \"a\" | \"x\"): Array<string> {\n const args = [command, \"-bd\"]\n if (debug7z.enabled) {\n args.push(\"-bb\")\n }\n return args\n}"],"sourceRoot":""}
1
+ {"version":3,"sources":["../../src/targets/archive.ts"],"names":[],"mappings":"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","sourcesContent":["import { path7za } from \"7zip-bin\"\nimport { debug7z, exec } from \"builder-util\"\nimport { exists, unlinkIfExists } from \"builder-util/out/fs\"\nimport { move } from \"fs-extra\"\nimport * as path from \"path\"\nimport { TmpDir } from \"temp-file\"\nimport { CompressionLevel } from \"../core\"\nimport { getLinuxToolsPath } from \"./tools\"\n\n/** @internal */\nexport async function tar(compression: CompressionLevel | any | any, format: string, outFile: string, dirToArchive: string, isMacApp: boolean, tempDirManager: TmpDir): Promise<void> {\n const tarFile = await tempDirManager.getTempFile({suffix: \".tar\"})\n const tarArgs = debug7zArgs(\"a\")\n tarArgs.push(tarFile)\n tarArgs.push(path.basename(dirToArchive))\n\n await Promise.all([\n exec(path7za, tarArgs, {cwd: path.dirname(dirToArchive)}),\n // remove file before - 7z doesn't overwrite file, but update\n unlinkIfExists(outFile),\n ])\n\n if (!isMacApp) {\n await exec(path7za, [\"rn\", tarFile, path.basename(dirToArchive), path.basename(outFile, `.${format}`)])\n }\n\n if (format === \"tar.lz\") {\n // noinspection SpellCheckingInspection\n let lzipPath = \"lzip\"\n if (process.platform === \"darwin\") {\n lzipPath = path.join(await getLinuxToolsPath(), \"bin\", lzipPath)\n }\n await exec(lzipPath, [compression === \"store\" ? \"-1\" : \"-9\", \"--keep\" /* keep (don't delete) input files */, tarFile])\n // bloody lzip creates file in the same dir where input file with postfix `.lz`, option --output doesn't work\n await move(`${tarFile}.lz`, outFile)\n return\n }\n\n const args = compute7zCompressArgs(format === \"tar.xz\" ? \"xz\" : (format === \"tar.bz2\" ? \"bzip2\" : \"gzip\"), {\n isRegularFile: true,\n method: \"DEFAULT\",\n compression,\n })\n args.push(outFile, tarFile)\n await exec(path7za, args, {\n cwd: path.dirname(dirToArchive),\n }, debug7z.enabled)\n}\n\nexport interface ArchiveOptions {\n compression?: CompressionLevel | null\n\n /**\n * @default false\n */\n withoutDir?: boolean\n\n /**\n * @default true\n */\n solid?: boolean\n\n /**\n * @default true\n */\n isArchiveHeaderCompressed?: boolean\n\n dictSize?: number\n excluded?: Array<string> | null\n\n // DEFAULT allows to disable custom logic and do not pass method switch at all\n method?: \"Copy\" | \"LZMA\" | \"Deflate\" | \"DEFAULT\"\n\n isRegularFile?: boolean\n}\n\nexport function compute7zCompressArgs(format: string, options: ArchiveOptions = {}) {\n let storeOnly = options.compression === \"store\"\n const args = debug7zArgs(\"a\")\n\n let isLevelSet = false\n if (process.env.ELECTRON_BUILDER_COMPRESSION_LEVEL != null) {\n storeOnly = false\n args.push(`-mx=${process.env.ELECTRON_BUILDER_COMPRESSION_LEVEL}`)\n isLevelSet = true\n }\n\n const isZip = format === \"zip\"\n if (!storeOnly) {\n if (isZip && options.compression === \"maximum\") {\n // http://superuser.com/a/742034\n args.push(\"-mfb=258\", \"-mpass=15\")\n }\n\n if (!isLevelSet) {\n // https://github.com/electron-userland/electron-builder/pull/3032\n args.push(\"-mx=\" + ((!isZip || options.compression === \"maximum\") ? \"9\" : \"7\"))\n }\n }\n\n if (options.dictSize != null) {\n args.push(`-md=${options.dictSize}m`)\n }\n\n // https://sevenzip.osdn.jp/chm/cmdline/switches/method.htm#7Z\n // https://stackoverflow.com/questions/27136783/7zip-produces-different-output-from-identical-input\n // tc and ta are off by default, but to be sure, we explicitly set it to off\n // disable \"Stores NTFS timestamps for files: Modification time, Creation time, Last access time.\" to produce the same archive for the same data\n if (!options.isRegularFile) {\n args.push(\"-mtc=off\")\n }\n\n if (format === \"7z\" || format.endsWith(\".7z\")) {\n if (options.solid === false) {\n args.push(\"-ms=off\")\n }\n\n if (options.isArchiveHeaderCompressed === false) {\n args.push(\"-mhc=off\")\n }\n\n // args valid only for 7z\n // -mtm=off disable \"Stores last Modified timestamps for files.\"\n args.push(\"-mtm=off\", \"-mta=off\")\n }\n\n if (options.method != null) {\n if (options.method !== \"DEFAULT\") {\n args.push(`-mm=${options.method}`)\n }\n }\n else if (isZip || storeOnly) {\n args.push(`-mm=${storeOnly ? \"Copy\" : \"Deflate\"}`)\n }\n\n if (isZip) {\n // -mcu switch: 7-Zip uses UTF-8, if there are non-ASCII symbols.\n // because default mode: 7-Zip uses UTF-8, if the local code page doesn't contain required symbols.\n // but archive should be the same regardless where produced\n args.push(\"-mcu\")\n }\n return args\n}\n\n// 7z is very fast, so, use ultra compression\n/** @internal */\nexport async function archive(format: string, outFile: string, dirToArchive: string, options: ArchiveOptions = {}): Promise<string> {\n const args = compute7zCompressArgs(format, options)\n // remove file before - 7z doesn't overwrite file, but update\n await unlinkIfExists(outFile)\n\n args.push(outFile, options.withoutDir ? \".\" : path.basename(dirToArchive))\n if (options.excluded != null) {\n for (const mask of options.excluded) {\n args.push(`-xr!${mask}`)\n }\n }\n\n try {\n await exec(path7za, args, {\n cwd: options.withoutDir ? dirToArchive : path.dirname(dirToArchive),\n }, debug7z.enabled)\n }\n catch (e) {\n if (e.code === \"ENOENT\" && !(await exists(dirToArchive))) {\n throw new Error(`Cannot create archive: \"${dirToArchive}\" doesn't exist`)\n }\n else {\n throw e\n }\n }\n\n return outFile\n}\n\nfunction debug7zArgs(command: \"a\" | \"x\"): Array<string> {\n const args = [command, \"-bd\"]\n if (debug7z.enabled) {\n args.push(\"-bb\")\n }\n return args\n}"],"sourceRoot":""}
@@ -31,7 +31,9 @@ function _appBuilder() {
31
31
  return data;
32
32
  }
33
33
 
34
- 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; } }
34
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
35
+
36
+ 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; }
35
37
 
36
38
  const BLOCK_MAP_FILE_SUFFIX = ".blockmap";
37
39
  exports.BLOCK_MAP_FILE_SUFFIX = BLOCK_MAP_FILE_SUFFIX;
@@ -52,7 +54,7 @@ function createNsisWebDifferentialUpdateInfo(artifactPath, packageFiles) {
52
54
  for (const arch of keys) {
53
55
  const packageFileInfo = packageFiles[arch];
54
56
  const file = path.basename(packageFileInfo.path);
55
- packages[arch] = Object.assign({}, packageFileInfo, {
57
+ packages[arch] = Object.assign(Object.assign({}, packageFileInfo), {
56
58
  path: file,
57
59
  // https://github.com/electron-userland/electron-builder/issues/2583
58
60
  file