app-builder-lib 27.0.0-alpha.6 → 27.0.0-alpha.8

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 (143) hide show
  1. package/dist/codeSign/mac/macCodeSign.d.ts.map +1 -1
  2. package/dist/codeSign/mac/macCodeSign.js +6 -4
  3. package/dist/codeSign/mac/macCodeSign.js.map +1 -1
  4. package/dist/codeSign/signResult.d.ts +26 -0
  5. package/dist/codeSign/signResult.d.ts.map +1 -0
  6. package/dist/codeSign/signResult.js +12 -0
  7. package/dist/codeSign/signResult.js.map +1 -0
  8. package/dist/codeSign/win/signManager.d.ts +2 -1
  9. package/dist/codeSign/win/signManager.d.ts.map +1 -1
  10. package/dist/codeSign/win/signManager.js.map +1 -1
  11. package/dist/codeSign/win/signtoolBaseSignManager.d.ts +25 -1
  12. package/dist/codeSign/win/signtoolBaseSignManager.d.ts.map +1 -1
  13. package/dist/codeSign/win/signtoolBaseSignManager.js +74 -3
  14. package/dist/codeSign/win/signtoolBaseSignManager.js.map +1 -1
  15. package/dist/codeSign/win/windowsCodeSign.d.ts +2 -1
  16. package/dist/codeSign/win/windowsCodeSign.d.ts.map +1 -1
  17. package/dist/codeSign/win/windowsCodeSign.js +16 -7
  18. package/dist/codeSign/win/windowsCodeSign.js.map +1 -1
  19. package/dist/codeSign/win/windowsSignAzureManager.d.ts +2 -1
  20. package/dist/codeSign/win/windowsSignAzureManager.d.ts.map +1 -1
  21. package/dist/codeSign/win/windowsSignAzureManager.js +2 -2
  22. package/dist/codeSign/win/windowsSignAzureManager.js.map +1 -1
  23. package/dist/configuration.d.ts +56 -8
  24. package/dist/configuration.d.ts.map +1 -1
  25. package/dist/configuration.js.map +1 -1
  26. package/dist/core.d.ts +5 -0
  27. package/dist/core.d.ts.map +1 -1
  28. package/dist/core.js.map +1 -1
  29. package/dist/fileMatcher.d.ts +15 -0
  30. package/dist/fileMatcher.d.ts.map +1 -1
  31. package/dist/fileMatcher.js +42 -2
  32. package/dist/fileMatcher.js.map +1 -1
  33. package/dist/index.d.ts +1 -0
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +1 -0
  36. package/dist/index.js.map +1 -1
  37. package/dist/indexInternal.d.ts +2 -1
  38. package/dist/indexInternal.d.ts.map +1 -1
  39. package/dist/indexInternal.js +2 -1
  40. package/dist/indexInternal.js.map +1 -1
  41. package/dist/macPackager.d.ts +16 -8
  42. package/dist/macPackager.d.ts.map +1 -1
  43. package/dist/macPackager.js +59 -32
  44. package/dist/macPackager.js.map +1 -1
  45. package/dist/node-module-collector/nodeModulesCollector.d.ts +11 -1
  46. package/dist/node-module-collector/nodeModulesCollector.d.ts.map +1 -1
  47. package/dist/node-module-collector/nodeModulesCollector.js +28 -5
  48. package/dist/node-module-collector/nodeModulesCollector.js.map +1 -1
  49. package/dist/node-module-collector/pnpmNodeModulesCollector.d.ts.map +1 -1
  50. package/dist/node-module-collector/pnpmNodeModulesCollector.js +3 -1
  51. package/dist/node-module-collector/pnpmNodeModulesCollector.js.map +1 -1
  52. package/dist/options/PlatformSpecificBuildOptions.d.ts +2 -2
  53. package/dist/options/PlatformSpecificBuildOptions.js.map +1 -1
  54. package/dist/options/SnapOptions.d.ts +8 -4
  55. package/dist/options/SnapOptions.d.ts.map +1 -1
  56. package/dist/options/SnapOptions.js.map +1 -1
  57. package/dist/options/linuxOptions.d.ts +8 -2
  58. package/dist/options/linuxOptions.d.ts.map +1 -1
  59. package/dist/options/linuxOptions.js.map +1 -1
  60. package/dist/options/macOptions.d.ts +18 -8
  61. package/dist/options/macOptions.d.ts.map +1 -1
  62. package/dist/options/macOptions.js.map +1 -1
  63. package/dist/options/pkgOptions.d.ts +1 -1
  64. package/dist/options/pkgOptions.js.map +1 -1
  65. package/dist/options/winOptions.d.ts +8 -7
  66. package/dist/options/winOptions.d.ts.map +1 -1
  67. package/dist/options/winOptions.js.map +1 -1
  68. package/dist/packager.d.ts.map +1 -1
  69. package/dist/packager.js +6 -3
  70. package/dist/packager.js.map +1 -1
  71. package/dist/platformPackager.d.ts +2 -1
  72. package/dist/platformPackager.d.ts.map +1 -1
  73. package/dist/platformPackager.js +5 -3
  74. package/dist/platformPackager.js.map +1 -1
  75. package/dist/publish/PublishManager.js +37 -0
  76. package/dist/publish/PublishManager.js.map +1 -1
  77. package/dist/publish/updateInfoBuilder.d.ts.map +1 -1
  78. package/dist/publish/updateInfoBuilder.js +9 -5
  79. package/dist/publish/updateInfoBuilder.js.map +1 -1
  80. package/dist/targets/linux/FlatpakTarget.d.ts.map +1 -1
  81. package/dist/targets/linux/FlatpakTarget.js +4 -1
  82. package/dist/targets/linux/FlatpakTarget.js.map +1 -1
  83. package/dist/targets/linux/FpmTarget.d.ts +7 -0
  84. package/dist/targets/linux/FpmTarget.d.ts.map +1 -1
  85. package/dist/targets/linux/FpmTarget.js +29 -2
  86. package/dist/targets/linux/FpmTarget.js.map +1 -1
  87. package/dist/targets/linux/appimage/appImageUtil.d.ts +1 -1
  88. package/dist/targets/linux/appimage/appImageUtil.js +3 -3
  89. package/dist/targets/linux/appimage/appImageUtil.js.map +1 -1
  90. package/dist/targets/linux/snap/core24.d.ts +27 -0
  91. package/dist/targets/linux/snap/core24.d.ts.map +1 -1
  92. package/dist/targets/linux/snap/core24.js +92 -57
  93. package/dist/targets/linux/snap/core24.js.map +1 -1
  94. package/dist/targets/mac/MacTargetHelper.d.ts +16 -4
  95. package/dist/targets/mac/MacTargetHelper.d.ts.map +1 -1
  96. package/dist/targets/mac/MacTargetHelper.js +23 -14
  97. package/dist/targets/mac/MacTargetHelper.js.map +1 -1
  98. package/dist/targets/mac/pkg.js +1 -1
  99. package/dist/targets/mac/pkg.js.map +1 -1
  100. package/dist/targets/win/MsiTarget.js +2 -2
  101. package/dist/targets/win/MsiTarget.js.map +1 -1
  102. package/dist/toolsets/7zip.d.ts +32 -0
  103. package/dist/toolsets/7zip.d.ts.map +1 -1
  104. package/dist/toolsets/7zip.js +39 -13
  105. package/dist/toolsets/7zip.js.map +1 -1
  106. package/dist/toolsets/custom.js +4 -2
  107. package/dist/toolsets/custom.js.map +1 -1
  108. package/dist/toolsets/icons.d.ts.map +1 -1
  109. package/dist/toolsets/icons.js +4 -1
  110. package/dist/toolsets/icons.js.map +1 -1
  111. package/dist/toolsets/linuxToolsMac.d.ts.map +1 -1
  112. package/dist/toolsets/linuxToolsMac.js +15 -5
  113. package/dist/toolsets/linuxToolsMac.js.map +1 -1
  114. package/dist/util/appFileCopier.d.ts.map +1 -1
  115. package/dist/util/appFileCopier.js +63 -2
  116. package/dist/util/appFileCopier.js.map +1 -1
  117. package/dist/util/electronGet.d.ts +16 -0
  118. package/dist/util/electronGet.d.ts.map +1 -1
  119. package/dist/util/electronGet.js +153 -10
  120. package/dist/util/electronGet.js.map +1 -1
  121. package/dist/util/installOrRebuild.d.ts +6 -0
  122. package/dist/util/installOrRebuild.d.ts.map +1 -1
  123. package/dist/util/installOrRebuild.js +47 -0
  124. package/dist/util/installOrRebuild.js.map +1 -1
  125. package/dist/util/packageMetadata.js +46 -21
  126. package/dist/util/packageMetadata.js.map +1 -1
  127. package/dist/util/repositoryInfo.js +6 -3
  128. package/dist/util/repositoryInfo.js.map +1 -1
  129. package/dist/version.d.ts +1 -1
  130. package/dist/version.js +1 -1
  131. package/dist/version.js.map +1 -1
  132. package/dist/winPackager.d.ts +4 -3
  133. package/dist/winPackager.d.ts.map +1 -1
  134. package/dist/winPackager.js +22 -16
  135. package/dist/winPackager.js.map +1 -1
  136. package/package.json +10 -10
  137. package/scheme.json +63 -35
  138. package/templates/nsis/common.nsh +2 -2
  139. package/templates/nsis/include/allowOnlyOneInstallerInstance.nsh +68 -4
  140. package/templates/nsis/include/extractAppPackage.nsh +1 -1
  141. package/templates/nsis/include/installUtil.nsh +2 -2
  142. package/templates/nsis/include/installer.nsh +1 -1
  143. package/templates/nsis/installer.nsi +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"packageMetadata.js","sourceRoot":"","sources":["../../src/util/packageMetadata.ts"],"names":[],"mappings":"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","sourcesContent":["import { InvalidConfigurationError, isEmptyOrSpaces, log } from \"builder-util\"\nimport { Nullish } from \"builder-util-runtime\"\nimport fsExtra from \"fs-extra\"\nimport * as path from \"path\"\nimport * as semver from \"semver\"\nimport { Metadata } from \"../options/metadata.js\"\nimport { normalizePackageData } from \"./normalizePackageData.js\"\n\n/** @internal */\nexport async function readPackageJson(file: string): Promise<any> {\n const data = await fsExtra.readJson(file)\n await authors(file, data)\n // remove not required fields because can be used for remote build\n delete data.scripts\n delete data.readme\n normalizePackageData(data)\n return data\n}\n\nasync function authors(file: string, data: any) {\n if (data.contributors != null) {\n return\n }\n\n let authorData\n try {\n authorData = await fsExtra.readFile(path.resolve(path.dirname(file), \"AUTHORS\"), \"utf8\")\n } catch (_ignored) {\n return\n }\n\n data.contributors = authorData.split(/\\r?\\n/g).map(it => it.replace(/^\\s*#.*$/, \"\").trim())\n}\n\n/** @internal */\nexport function checkMetadata(metadata: Metadata, devMetadata: any | null, appPackageFile: string, devAppPackageFile: string): void {\n const errors: Array<string> = []\n const reportError = (missedFieldName: string) => {\n errors.push(`Please specify '${missedFieldName}' in the package.json (${appPackageFile})`)\n }\n\n const checkNotEmpty = (name: string, value: string | Nullish) => {\n if (isEmptyOrSpaces(value)) {\n reportError(name)\n }\n }\n\n checkNotEmpty(\"name\", metadata.name)\n\n if (isEmptyOrSpaces(metadata.description)) {\n log.warn({ appPackageFile }, `description is missed in the package.json`)\n }\n if (metadata.author == null) {\n log.warn({ appPackageFile }, `author is missed in the package.json`)\n }\n checkNotEmpty(\"version\", metadata.version)\n\n checkDependencies(metadata.dependencies, errors)\n if (metadata !== devMetadata) {\n if (metadata.build != null) {\n errors.push(\n `'build' in the application package.json (${appPackageFile}) is not supported since 3.0 anymore. Please move 'build' into the development package.json (${devAppPackageFile})`\n )\n }\n }\n\n const devDependencies = (metadata as any).devDependencies\n if (devDependencies != null && (\"electron-rebuild\" in devDependencies || \"@electron/rebuild\" in devDependencies)) {\n log.info(\n '@electron/rebuild already used by electron-builder, please consider to remove excess dependency from devDependencies\\n\\nTo ensure your native dependencies are always matched electron version, simply add script `\"postinstall\": \"electron-builder install-app-deps\" to your `package.json`'\n )\n }\n\n if (errors.length > 0) {\n throw new InvalidConfigurationError(errors.join(\"\\n\"))\n }\n}\n\nfunction versionSatisfies(version: string | semver.SemVer | null, range: string | semver.Range, loose?: boolean): boolean {\n if (version == null) {\n return false\n }\n\n const coerced = semver.coerce(version)\n if (coerced == null) {\n return false\n }\n\n return semver.satisfies(coerced, range, loose)\n}\n\nfunction checkDependencies(dependencies: Record<string, string> | Nullish, errors: Array<string>) {\n if (dependencies == null) {\n return\n }\n\n let updaterVersion = dependencies[\"electron-updater\"]\n if (updaterVersion != null) {\n // Pick the version out of yarn berry patch syntax\n // \"patch:electron-updater@npm%3A6.4.1#~/.yarn/patches/electron-updater-npm-6.4.1-ef33e6cc39.patch\"\n if (updaterVersion.startsWith(\"patch:\")) {\n // codeql[js/polynomial-redos] - [^#]+ is a possessive character-class match; linear time, no catastrophic backtracking\n const match = updaterVersion.match(/@npm%3A([^#]+)#/)\n if (match) {\n updaterVersion = match[1]\n }\n }\n\n // for testing auto-update using workspace electron-updater\n const prefixes = [\"link:\", \"file:\"]\n for (const prefix of prefixes) {\n if (updaterVersion.startsWith(prefix)) {\n const normalized = path.normalize(updaterVersion.substring(prefix.length))\n const packageJsonPath = path.isAbsolute(normalized) ? normalized : path.resolve(process.cwd(), normalized)\n const json = fsExtra.readJsonSync(path.join(packageJsonPath, \"package.json\"))\n updaterVersion = json.version\n break\n }\n }\n\n const requiredElectronUpdaterVersion = \"4.0.0\"\n if (!versionSatisfies(updaterVersion, `>=${requiredElectronUpdaterVersion}`)) {\n errors.push(\n `At least electron-updater ${requiredElectronUpdaterVersion} is recommended by current electron-builder version. Please set electron-updater version to \"^${requiredElectronUpdaterVersion}\". Received \"${updaterVersion}\"`\n )\n }\n }\n\n const swVersion = dependencies[\"electron-builder-squirrel-windows\"]\n if (swVersion != null && !versionSatisfies(swVersion, \">=20.32.0\")) {\n errors.push(`At least electron-builder-squirrel-windows 20.32.0 is required by current electron-builder version. Please set electron-builder-squirrel-windows to \"^20.32.0\"`)\n }\n}\n"]}
1
+ {"version":3,"file":"packageMetadata.js","sourceRoot":"","sources":["../../src/util/packageMetadata.ts"],"names":[],"mappings":"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","sourcesContent":["import { InvalidConfigurationError, isEmptyOrSpaces, log } from \"builder-util\"\nimport { Nullish } from \"builder-util-runtime\"\nimport fsExtra from \"fs-extra\"\nimport { createRequire } from \"node:module\"\nimport * as path from \"path\"\nimport * as semver from \"semver\"\nimport { Metadata } from \"../options/metadata.js\"\nimport { normalizePackageData } from \"./normalizePackageData.js\"\n\nconst require = createRequire(import.meta.url)\n\n/** @internal */\nexport async function readPackageJson(file: string): Promise<any> {\n const data = await fsExtra.readJson(file)\n await authors(file, data)\n // remove not required fields because can be used for remote build\n delete data.scripts\n delete data.readme\n normalizePackageData(data)\n return data\n}\n\nasync function authors(file: string, data: any) {\n if (data.contributors != null) {\n return\n }\n\n let authorData\n try {\n authorData = await fsExtra.readFile(path.resolve(path.dirname(file), \"AUTHORS\"), \"utf8\")\n } catch (_ignored) {\n return\n }\n\n data.contributors = authorData.split(/\\r?\\n/g).map(it => it.replace(/^\\s*#.*$/, \"\").trim())\n}\n\n/** @internal */\nexport function checkMetadata(metadata: Metadata, devMetadata: any | null, appPackageFile: string, devAppPackageFile: string, projectDir: string): void {\n const errors: Array<string> = []\n const reportError = (missedFieldName: string) => {\n errors.push(`Please specify '${missedFieldName}' in the package.json (${appPackageFile})`)\n }\n\n const checkNotEmpty = (name: string, value: string | Nullish) => {\n if (isEmptyOrSpaces(value)) {\n reportError(name)\n }\n }\n\n checkNotEmpty(\"name\", metadata.name)\n\n if (isEmptyOrSpaces(metadata.description)) {\n log.warn({ appPackageFile }, `description is missed in the package.json`)\n }\n if (metadata.author == null) {\n log.warn({ appPackageFile }, `author is missed in the package.json`)\n }\n checkNotEmpty(\"version\", metadata.version)\n\n checkDependencies(metadata.dependencies, errors, projectDir)\n if (metadata !== devMetadata) {\n if (metadata.build != null) {\n errors.push(\n `'build' in the application package.json (${appPackageFile}) is not supported since 3.0 anymore. Please move 'build' into the development package.json (${devAppPackageFile})`\n )\n }\n }\n\n const devDependencies = (metadata as any).devDependencies\n if (devDependencies != null && (\"electron-rebuild\" in devDependencies || \"@electron/rebuild\" in devDependencies)) {\n log.info(\n '@electron/rebuild already used by electron-builder, please consider to remove excess dependency from devDependencies\\n\\nTo ensure your native dependencies are always matched electron version, simply add script `\"postinstall\": \"electron-builder install-app-deps\" to your `package.json`'\n )\n }\n\n if (errors.length > 0) {\n throw new InvalidConfigurationError(errors.join(\"\\n\"))\n }\n}\n\nfunction versionSatisfies(version: string | semver.SemVer | null, range: string | semver.Range, loose?: boolean): boolean {\n if (version == null) {\n return false\n }\n\n const coerced = semver.coerce(version)\n if (coerced == null) {\n return false\n }\n\n return semver.satisfies(coerced, range, loose)\n}\n\nfunction checkDependencies(dependencies: Record<string, string> | Nullish, errors: Array<string>, projectDir: string) {\n if (dependencies == null) {\n return\n }\n\n let updaterVersion = dependencies[\"electron-updater\"]\n if (updaterVersion != null) {\n let skipValidation = false\n\n // prefer the version of the actually-installed electron-updater over the declared specifier,\n // so that specifiers like pnpm `catalog:`/`workspace:` are validated against the real version\n let resolvedPackageJson: string | null = null\n try {\n resolvedPackageJson = require.resolve(\"electron-updater/package.json\", { paths: [projectDir] })\n } catch (_ignored) {\n // electron-updater is not installed (MODULE_NOT_FOUND), or the installed version's `exports` map\n // does not expose \"./package.json\" (ERR_PACKAGE_PATH_NOT_EXPORTED) — fall back to the declared specifier below\n }\n\n if (resolvedPackageJson != null) {\n updaterVersion = fsExtra.readJsonSync(resolvedPackageJson).version\n } else {\n // Pick the version out of yarn berry patch syntax\n // \"patch:electron-updater@npm%3A6.4.1#~/.yarn/patches/electron-updater-npm-6.4.1-ef33e6cc39.patch\"\n if (updaterVersion.startsWith(\"patch:\")) {\n const npmMarker = \"@npm%3A\"\n const markerIndex = updaterVersion.indexOf(npmMarker)\n if (markerIndex !== -1) {\n const versionStart = markerIndex + npmMarker.length\n const hashIndex = updaterVersion.indexOf(\"#\", versionStart)\n if (hashIndex > versionStart) {\n updaterVersion = updaterVersion.slice(versionStart, hashIndex)\n }\n }\n }\n\n // for testing auto-update using workspace electron-updater\n const prefixes = [\"link:\", \"file:\"]\n for (const prefix of prefixes) {\n if (updaterVersion.startsWith(prefix)) {\n const normalized = path.normalize(updaterVersion.substring(prefix.length))\n const packageJsonPath = path.isAbsolute(normalized) ? normalized : path.resolve(process.cwd(), normalized)\n const json = fsExtra.readJsonSync(path.join(packageJsonPath, \"package.json\"))\n updaterVersion = json.version\n break\n }\n }\n\n // pnpm `catalog:` and `workspace:` specifiers cannot be resolved to a concrete version from the package.json alone, so skip validation\n const unresolvableProtocols = [\"catalog:\", \"workspace:\"]\n skipValidation = unresolvableProtocols.some(protocol => updaterVersion.startsWith(protocol))\n }\n\n const requiredElectronUpdaterVersion = \"4.0.0\"\n if (!skipValidation && !versionSatisfies(updaterVersion, `>=${requiredElectronUpdaterVersion}`)) {\n errors.push(\n `At least electron-updater ${requiredElectronUpdaterVersion} is recommended by current electron-builder version. Please set electron-updater version to \"^${requiredElectronUpdaterVersion}\". Received \"${updaterVersion}\"`\n )\n }\n }\n\n const swVersion = dependencies[\"electron-builder-squirrel-windows\"]\n if (swVersion != null && !versionSatisfies(swVersion, \">=20.32.0\")) {\n errors.push(`At least electron-builder-squirrel-windows 20.32.0 is required by current electron-builder version. Please set electron-builder-squirrel-windows to \"^20.32.0\"`)\n }\n}\n"]}
@@ -25,7 +25,7 @@ async function getGitUrlFromGitConfig(projectDir) {
25
25
  }
26
26
  async function _getInfo(projectDir, repo) {
27
27
  if (repo != null) {
28
- return parseRepositoryUrl(typeof repo === "string" ? repo : repo.url);
28
+ return parseRepositoryUrl(typeof repo === "string" ? repo : repo.url, "package.json");
29
29
  }
30
30
  const slug = process.env.TRAVIS_REPO_SLUG || process.env.APPVEYOR_REPO_NAME;
31
31
  if (slug != null) {
@@ -33,6 +33,7 @@ async function _getInfo(projectDir, repo) {
33
33
  return {
34
34
  user: splitted[0],
35
35
  project: splitted[1],
36
+ source: process.env.TRAVIS_REPO_SLUG ? "TRAVIS_REPO_SLUG" : "APPVEYOR_REPO_NAME",
36
37
  };
37
38
  }
38
39
  const user = process.env.CIRCLE_PROJECT_USERNAME;
@@ -41,12 +42,13 @@ async function _getInfo(projectDir, repo) {
41
42
  return {
42
43
  user,
43
44
  project,
45
+ source: "CIRCLE_PROJECT_USERNAME+CIRCLE_PROJECT_REPONAME",
44
46
  };
45
47
  }
46
48
  const url = await getGitUrlFromGitConfig(projectDir);
47
- return url == null ? null : parseRepositoryUrl(url);
49
+ return url == null ? null : parseRepositoryUrl(url, ".git/config");
48
50
  }
49
- function parseRepositoryUrl(url) {
51
+ function parseRepositoryUrl(url, source) {
50
52
  const info = fromUrl(url);
51
53
  if (info == null) {
52
54
  return null;
@@ -71,6 +73,7 @@ function parseRepositoryUrl(url) {
71
73
  delete info.opts;
72
74
  delete info.browsefiletemplate;
73
75
  delete info.auth;
76
+ info.source = source;
74
77
  return info;
75
78
  }
76
79
  //# sourceMappingURL=repositoryInfo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"repositoryInfo.js","sourceRoot":"","sources":["../../src/util/repositoryInfo.ts"],"names":[],"mappings":"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","sourcesContent":["import { orNullIfFileNotExist } from \"builder-util\"\nimport fsExtra from \"fs-extra\"\nimport GitHost, { fromUrl } from \"hosted-git-info\"\nimport * as path from \"path\"\nimport { SourceRepositoryInfo } from \"../core.js\"\nimport { Metadata, RepositoryInfo } from \"../options/metadata.js\"\n\nexport function getRepositoryInfo(projectDir: string, metadata?: Metadata, devMetadata?: Metadata | null): Promise<SourceRepositoryInfo | null> {\n return _getInfo(projectDir, (devMetadata == null ? null : devMetadata.repository) || (metadata == null ? null : metadata.repository))\n}\n\nasync function getGitUrlFromGitConfig(projectDir: string): Promise<string | null> {\n const data = await orNullIfFileNotExist(fsExtra.readFile(path.join(projectDir, \".git\", \"config\"), \"utf8\"))\n if (data == null) {\n return null\n }\n\n const conf = data.split(/\\r?\\n/)\n const i = conf.indexOf('[remote \"origin\"]')\n if (i !== -1) {\n let u = conf[i + 1]\n if (!/^\\s*url =/.exec(u)) {\n u = conf[i + 2]\n }\n\n if (/^\\s*url =/.exec(u)) {\n return u.replace(/^\\s*url = /, \"\")\n }\n }\n return null\n}\n\nasync function _getInfo(projectDir: string, repo?: RepositoryInfo | string | null): Promise<SourceRepositoryInfo | null> {\n if (repo != null) {\n return parseRepositoryUrl(typeof repo === \"string\" ? repo : repo.url)\n }\n\n const slug = process.env.TRAVIS_REPO_SLUG || process.env.APPVEYOR_REPO_NAME\n if (slug != null) {\n const splitted = slug.split(\"/\")\n return {\n user: splitted[0],\n project: splitted[1],\n }\n }\n\n const user = process.env.CIRCLE_PROJECT_USERNAME\n const project = process.env.CIRCLE_PROJECT_REPONAME\n if (user != null && project != null) {\n return {\n user,\n project,\n }\n }\n\n const url = await getGitUrlFromGitConfig(projectDir)\n return url == null ? null : parseRepositoryUrl(url)\n}\n\nfunction parseRepositoryUrl(url: string): GitHost | null {\n const info: any = fromUrl(url)\n if (info == null) {\n return null\n }\n delete info.protocols\n delete info.treepath\n delete info.filetemplate\n delete info.bugstemplate\n delete info.gittemplate\n delete info.tarballtemplate\n delete info.sshtemplate\n delete info.sshurltemplate\n delete info.browsetemplate\n delete info.docstemplate\n delete info.httpstemplate\n delete info.shortcuttemplate\n delete info.pathtemplate\n delete info.pathmatch\n delete info.protocols_re\n delete info.committish\n delete info.default\n delete info.opts\n delete info.browsefiletemplate\n delete info.auth\n return info\n}\n"]}
1
+ {"version":3,"file":"repositoryInfo.js","sourceRoot":"","sources":["../../src/util/repositoryInfo.ts"],"names":[],"mappings":"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","sourcesContent":["import { orNullIfFileNotExist } from \"builder-util\"\nimport fsExtra from \"fs-extra\"\nimport { fromUrl } from \"hosted-git-info\"\nimport * as path from \"path\"\nimport { SourceRepositoryInfo } from \"../core.js\"\nimport { Metadata, RepositoryInfo } from \"../options/metadata.js\"\n\nexport function getRepositoryInfo(projectDir: string, metadata?: Metadata, devMetadata?: Metadata | null): Promise<SourceRepositoryInfo | null> {\n return _getInfo(projectDir, (devMetadata == null ? null : devMetadata.repository) || (metadata == null ? null : metadata.repository))\n}\n\nasync function getGitUrlFromGitConfig(projectDir: string): Promise<string | null> {\n const data = await orNullIfFileNotExist(fsExtra.readFile(path.join(projectDir, \".git\", \"config\"), \"utf8\"))\n if (data == null) {\n return null\n }\n\n const conf = data.split(/\\r?\\n/)\n const i = conf.indexOf('[remote \"origin\"]')\n if (i !== -1) {\n let u = conf[i + 1]\n if (!/^\\s*url =/.exec(u)) {\n u = conf[i + 2]\n }\n\n if (/^\\s*url =/.exec(u)) {\n return u.replace(/^\\s*url = /, \"\")\n }\n }\n return null\n}\n\nasync function _getInfo(projectDir: string, repo?: RepositoryInfo | string | null): Promise<SourceRepositoryInfo | null> {\n if (repo != null) {\n return parseRepositoryUrl(typeof repo === \"string\" ? repo : repo.url, \"package.json\")\n }\n\n const slug = process.env.TRAVIS_REPO_SLUG || process.env.APPVEYOR_REPO_NAME\n if (slug != null) {\n const splitted = slug.split(\"/\")\n return {\n user: splitted[0],\n project: splitted[1],\n source: process.env.TRAVIS_REPO_SLUG ? \"TRAVIS_REPO_SLUG\" : \"APPVEYOR_REPO_NAME\",\n }\n }\n\n const user = process.env.CIRCLE_PROJECT_USERNAME\n const project = process.env.CIRCLE_PROJECT_REPONAME\n if (user != null && project != null) {\n return {\n user,\n project,\n source: \"CIRCLE_PROJECT_USERNAME+CIRCLE_PROJECT_REPONAME\",\n }\n }\n\n const url = await getGitUrlFromGitConfig(projectDir)\n return url == null ? null : parseRepositoryUrl(url, \".git/config\")\n}\n\nfunction parseRepositoryUrl(url: string, source: string): SourceRepositoryInfo | null {\n const info: any = fromUrl(url)\n if (info == null) {\n return null\n }\n delete info.protocols\n delete info.treepath\n delete info.filetemplate\n delete info.bugstemplate\n delete info.gittemplate\n delete info.tarballtemplate\n delete info.sshtemplate\n delete info.sshurltemplate\n delete info.browsetemplate\n delete info.docstemplate\n delete info.httpstemplate\n delete info.shortcuttemplate\n delete info.pathtemplate\n delete info.pathmatch\n delete info.protocols_re\n delete info.committish\n delete info.default\n delete info.opts\n delete info.browsefiletemplate\n delete info.auth\n info.source = source\n return info\n}\n"]}
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const PACKAGE_VERSION = "27.0.0-alpha.6";
1
+ export declare const PACKAGE_VERSION = "27.0.0-alpha.8";
2
2
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const PACKAGE_VERSION = "27.0.0-alpha.6";
1
+ export const PACKAGE_VERSION = "27.0.0-alpha.8";
2
2
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,gBAAgB,CAAA","sourcesContent":["export const PACKAGE_VERSION = \"27.0.0-alpha.6\"\n"]}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,gBAAgB,CAAA","sourcesContent":["export const PACKAGE_VERSION = \"27.0.0-alpha.8\"\n"]}
@@ -1,6 +1,7 @@
1
1
  import { Arch, FileTransformer } from "builder-util";
2
2
  import { Nullish } from "builder-util-runtime";
3
3
  import { Lazy } from "lazy-val";
4
+ import { SigningResult } from "./codeSign/signResult.js";
4
5
  import { AfterPackContext } from "./configuration.js";
5
6
  import { Target } from "./core.js";
6
7
  import { RequestedExecutionLevel, WindowsConfiguration } from "./options/winOptions.js";
@@ -18,12 +19,12 @@ export declare class WinPackager extends PlatformPackager<WindowsConfiguration>
18
19
  createTargets(targets: Array<string>, mapper: (name: string, factory: (outDir: string) => Target) => void): void;
19
20
  getIconPath(): Promise<string | null>;
20
21
  doGetCscPassword(): string | Nullish;
21
- signIf(file: string): Promise<boolean>;
22
+ signIf(file: string): Promise<SigningResult>;
22
23
  private _sign;
23
- signAndEditResources(file: string, arch: Arch, outDir: string, internalName?: string | null, requestedExecutionLevel?: RequestedExecutionLevel | null): Promise<void>;
24
+ signAndEditResources(file: string, arch: Arch, outDir: string, internalName?: string | null, requestedExecutionLevel?: RequestedExecutionLevel | null): Promise<SigningResult>;
24
25
  private shouldSignFile;
25
26
  protected createTransformerForExtraFiles(packContext: AfterPackContext): FileTransformer | null;
26
- protected signApp(packContext: AfterPackContext, isAsar: boolean): Promise<boolean>;
27
+ protected signApp(packContext: AfterPackContext, isAsar: boolean): Promise<SigningResult>;
27
28
  private walkSignableFiles;
28
29
  }
29
30
  //# sourceMappingURL=winPackager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"winPackager.d.ts","sourceRoot":"","sources":["../src/winPackager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAA+B,eAAe,EAAwC,MAAM,cAAc,CAAA;AAEvH,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAI9C,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAM/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAwB,MAAM,EAAE,MAAM,WAAW,CAAA;AACxD,OAAO,EAA4B,uBAAuB,EAAsC,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AACrJ,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAiB,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAavE,OAAO,EAAgB,SAAS,EAAE,MAAM,YAAY,CAAA;AAIpD,qBAAa,WAAY,SAAQ,gBAAgB,CAAC,oBAAoB,CAAC;IACrE,SAAS,sBAA+C;IAExD,QAAQ,CAAC,EAAE,kBAAgI;IAE3I,QAAQ,CAAC,cAAc,4DAIrB;IACF,OAAO,CAAC,YAAY,CAAwB;IAE5C,IAAI,8BAA8B,IAAI,OAAO,CAE5C;gBAEW,IAAI,EAAE,QAAQ;IAI1B,IAAI,aAAa,IAAI,KAAK,CAAC,MAAM,CAAC,CAEjC;IAED,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,KAAK,IAAI,GAAG,IAAI;IA2DhH,WAAW;IAIX,gBAAgB,IAAI,MAAM,GAAG,OAAO;IAM9B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;YAmB9B,KAAK;IAeb,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,uBAAuB,CAAC,EAAE,uBAAuB,GAAG,IAAI;IAmF3J,OAAO,CAAC,cAAc;IAkBtB,SAAS,CAAC,8BAA8B,CAAC,WAAW,EAAE,gBAAgB,GAAG,eAAe,GAAG,IAAI;cAgB/E,OAAO,CAAC,WAAW,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAsCzF,OAAO,CAAC,iBAAiB;CAG1B"}
1
+ {"version":3,"file":"winPackager.d.ts","sourceRoot":"","sources":["../src/winPackager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAA+B,eAAe,EAAwC,MAAM,cAAc,CAAA;AAEvH,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAI9C,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAI/B,OAAO,EAA0D,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAGhH,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAwB,MAAM,EAAE,MAAM,WAAW,CAAA;AACxD,OAAO,EAA4B,uBAAuB,EAAsC,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AACrJ,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAiB,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAavE,OAAO,EAAgB,SAAS,EAAE,MAAM,YAAY,CAAA;AAIpD,qBAAa,WAAY,SAAQ,gBAAgB,CAAC,oBAAoB,CAAC;IACrE,SAAS,sBAA+C;IAExD,QAAQ,CAAC,EAAE,kBAAgI;IAE3I,QAAQ,CAAC,cAAc,4DAIrB;IAGF,OAAO,CAAC,YAAY,CAAmD;IAEvE,IAAI,8BAA8B,IAAI,OAAO,CAE5C;gBAEW,IAAI,EAAE,QAAQ;IAI1B,IAAI,aAAa,IAAI,KAAK,CAAC,MAAM,CAAC,CAEjC;IAED,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,KAAK,IAAI,GAAG,IAAI;IA2DhH,WAAW;IAIX,gBAAgB,IAAI,MAAM,GAAG,OAAO;IAM9B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;YAkBpC,KAAK;IAeb,oBAAoB,CACxB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,EAC5B,uBAAuB,CAAC,EAAE,uBAAuB,GAAG,IAAI,GACvD,OAAO,CAAC,aAAa,CAAC;IAqFzB,OAAO,CAAC,cAAc;IAkBtB,SAAS,CAAC,8BAA8B,CAAC,WAAW,EAAE,gBAAgB,GAAG,eAAe,GAAG,IAAI;cAgB/E,OAAO,CAAC,WAAW,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;IA0C/F,OAAO,CAAC,iBAAiB;CAG1B"}
@@ -7,6 +7,7 @@ import { Lazy } from "lazy-val";
7
7
  import * as path from "path";
8
8
  import { readAsarHeader } from "./asar/asar.js";
9
9
  import { createSignManager } from "./codeSign/win/signManager.js";
10
+ import { combineSignResults, isSignResultSigned } from "./codeSign/signResult.js";
10
11
  import { signWindows } from "./codeSign/win/windowsCodeSign.js";
11
12
  import { DIR_TARGET, Platform } from "./core.js";
12
13
  import { isWindowsSigningDisabled, resolveWindowsSigningConfiguration } from "./options/winOptions.js";
@@ -38,7 +39,9 @@ export class WinPackager extends PlatformPackager {
38
39
  await manager.initialize();
39
40
  return manager;
40
41
  });
41
- this.signingQueue = Promise.resolve(true);
42
+ // Sequences the sign requests; per-file failures are logged and swallowed in the queue itself (hence `| void`)
43
+ // so it keeps flowing to the next file — each caller still observes its own failure via the promise `signIf` returns.
44
+ this.signingQueue = Promise.resolve();
42
45
  }
43
46
  get defaultTarget() {
44
47
  return ["nsis"];
@@ -107,16 +110,15 @@ export class WinPackager extends PlatformPackager {
107
110
  const logFields = { file: log.filePath(file) };
108
111
  if (!this.shouldSignFile(file, true)) {
109
112
  log.info(logFields, "file signing skipped via signExts configuration");
110
- return false;
113
+ return "skipped:filtered";
111
114
  }
112
115
  if (isWindowsSigningDisabled(this.platformSpecificBuildOptions)) {
113
116
  log.info(logFields, "file signing disabled (`sign: false` or `sign: null`)");
114
- return false;
117
+ return "skipped:disabled";
115
118
  }
116
119
  const promise = this.signingQueue.then(() => this._sign(file));
117
120
  this.signingQueue = promise.catch(e => {
118
121
  log.warn({ file: log.filePath(file), error: e.message }, "signing failed for file, queue will continue to next file");
119
- return false;
120
122
  });
121
123
  return promise;
122
124
  }
@@ -125,11 +127,11 @@ export class WinPackager extends PlatformPackager {
125
127
  path: file,
126
128
  options: this.platformSpecificBuildOptions,
127
129
  };
128
- const didSignSuccessfully = await signWindows(signOptions, this);
129
- if (!didSignSuccessfully && this.forceCodeSigning) {
130
- throw new InvalidConfigurationError(`App is not signed and "forceCodeSigning" is set to true, please ensure that code signing configuration is correct, please see https://electron.build/code-signing`);
130
+ const result = await signWindows(signOptions, this);
131
+ if (!isSignResultSigned(result) && this.forceCodeSigning) {
132
+ throw new InvalidConfigurationError(`App is not signed and "forceCodeSigning" is set to true, please ensure that code signing configuration is correct, please see https://electron.build/docs/features/code-signing`);
131
133
  }
132
- return didSignSuccessfully;
134
+ return result;
133
135
  }
134
136
  async signAndEditResources(file, arch, outDir, internalName, requestedExecutionLevel) {
135
137
  const appInfo = this.appInfo;
@@ -190,17 +192,19 @@ export class WinPackager extends PlatformPackager {
190
192
  buildCacheManager = new BuildCacheManager(outDir, file, arch);
191
193
  if (await buildCacheManager.copyIfValid(await digest(hash, files))) {
192
194
  timer.end();
193
- return;
195
+ // the cache is only used when signing is configured (cscInfo != null), so the restored executable was signed when it was cached
196
+ return "signed";
194
197
  }
195
198
  timer.end();
196
199
  }
197
200
  const timer = time("resource-edit&sign");
198
201
  await editWindowsResources(opts);
199
- await this.signIf(file);
202
+ const signResult = await this.signIf(file);
200
203
  timer.end();
201
204
  if (buildCacheManager != null) {
202
205
  await buildCacheManager.save();
203
206
  }
207
+ return signResult;
204
208
  }
205
209
  shouldSignFile(file, fallbackValue = false) {
206
210
  const isExe = file.endsWith(".exe");
@@ -227,7 +231,7 @@ export class WinPackager extends PlatformPackager {
227
231
  if (this.shouldSignFile(file)) {
228
232
  const parentDir = path.dirname(file);
229
233
  if (parentDir !== packContext.appOutDir) {
230
- return new CopyFileTransformer(file => this.signIf(file));
234
+ return new CopyFileTransformer(file => this.signIf(file).then(isSignResultSigned));
231
235
  }
232
236
  }
233
237
  return null;
@@ -239,17 +243,19 @@ export class WinPackager extends PlatformPackager {
239
243
  if (signingDisabled && this.forceCodeSigning) {
240
244
  throw new InvalidConfigurationError("Signing is disabled (`sign: false`) but `forceCodeSigning` is enabled. Remove one of these options.");
241
245
  }
246
+ const results = [];
242
247
  const files = await readdir(packContext.appOutDir);
243
248
  for (const file of files) {
244
249
  if (file === exeFileName) {
245
- await this.signAndEditResources(path.join(packContext.appOutDir, exeFileName), packContext.arch, packContext.outDir, path.basename(exeFileName, ".exe"), this.platformSpecificBuildOptions.requestedExecutionLevel);
250
+ results.push(await this.signAndEditResources(path.join(packContext.appOutDir, exeFileName), packContext.arch, packContext.outDir, path.basename(exeFileName, ".exe"), this.platformSpecificBuildOptions.requestedExecutionLevel));
246
251
  }
247
252
  else if (this.shouldSignFile(file)) {
248
- await this.signIf(path.join(packContext.appOutDir, file));
253
+ results.push(await this.signIf(path.join(packContext.appOutDir, file)));
249
254
  }
250
255
  }
256
+ // the combined result gates the `afterSign` hook — a signed result wins (see PlatformPackager.doSignAfterPack)
251
257
  if (!isAsar || signingDisabled) {
252
- return true;
258
+ return combineSignResults(results);
253
259
  }
254
260
  const filesToSign = await Promise.all([
255
261
  this.walkSignableFiles(packContext.appOutDir, "resources", "app.asar.unpacked"),
@@ -257,9 +263,9 @@ export class WinPackager extends PlatformPackager {
257
263
  this.walkSignableFiles(packContext.appOutDir, "swiftshader"),
258
264
  ]);
259
265
  for (const file of filesToSign.flat(1)) {
260
- await this.signIf(file);
266
+ results.push(await this.signIf(file));
261
267
  }
262
- return true;
268
+ return combineSignResults(results);
263
269
  }
264
270
  walkSignableFiles(baseDir, ...subpath) {
265
271
  return walk(path.join(baseDir, ...subpath), (file, stat) => stat.isDirectory() || this.shouldSignFile(file));
@@ -1 +1 @@
1
- {"version":3,"file":"winPackager.js","sourceRoot":"","sources":["../src/winPackager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,mBAAmB,EAAE,MAAM,EAAmB,yBAAyB,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACvH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE3C,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAC/B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACjE,OAAO,EAAE,WAAW,EAAsB,MAAM,mCAAmC,CAAA;AAGnF,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAU,MAAM,WAAW,CAAA;AACxD,OAAO,EAAE,wBAAwB,EAA2B,kCAAkC,EAAwB,MAAM,yBAAyB,CAAA;AAErJ,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACvE,OAAO,UAAU,MAAM,6BAA6B,CAAA;AACpD,OAAO,UAAU,MAAM,6BAA6B,CAAA;AACpD,OAAO,SAAS,MAAM,4BAA4B,CAAA;AAClD,OAAO,gBAAgB,MAAM,mCAAmC,CAAA;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AACpF,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAA;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,EAAE,oBAAoB,EAAuB,MAAM,uBAAuB,CAAA;AACjF,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACtC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEpD,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAE/C,MAAM,OAAO,WAAY,SAAQ,gBAAsC;IAYrE,IAAI,8BAA8B;QAChC,OAAO,IAAI,CAAC,4BAA4B,CAAC,yBAAyB,KAAK,KAAK,CAAA;IAC9E,CAAC;IAED,YAAY,IAAc;QACxB,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;QAhB/B,cAAS,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAA;QAE/C,OAAE,GAAG,IAAI,IAAI,CAAY,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;QAElI,mBAAc,GAAG,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE;YAC5C,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;YACvC,MAAM,OAAO,CAAC,UAAU,EAAE,CAAA;YAC1B,OAAO,OAAO,CAAA;QAChB,CAAC,CAAC,CAAA;QACM,iBAAY,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAQ5C,CAAC;IAED,IAAI,aAAa;QACf,OAAO,CAAC,MAAM,CAAC,CAAA;IACjB,CAAC;IAED,aAAa,CAAC,OAAsB,EAAE,MAAmE;QACvG,IAAI,iBAA2C,CAAA;QAC/C,MAAM,oBAAoB,GAAG,GAAG,EAAE;YAChC,IAAI,iBAAiB,IAAI,IAAI,EAAE,CAAC;gBAC9B,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAA;YAC7C,CAAC;YACD,OAAO,iBAAiB,CAAA;QAC1B,CAAC,CAAA;QAED,IAAI,MAA+B,CAAA;QACnC,MAAM,SAAS,GAAG,GAAG,EAAE;YACrB,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBACnB,MAAM,GAAG,IAAI,gBAAgB,CAAC,oBAAoB,EAAE,CAAC,CAAA;YACvD,CAAC;YACD,OAAO,MAAM,CAAA;QACf,CAAC,CAAA;QAED,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;gBACxB,SAAQ;YACV,CAAC;YAED,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC3C,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;YACzE,CAAC;iBAAM,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC/B,+CAA+C;gBAC/C,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,gBAAgB,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,CAAA;YACnI,CAAC;iBAAM,CAAC;gBACN,MAAM,WAAW,GAAkH,CAAC,GAAG,EAAE;oBACvI,QAAQ,IAAI,EAAE,CAAC;wBACb,KAAK,UAAU;4BACb,IAAI,CAAC;gCACH,OAAO,QAAQ,CAAC,mCAAmC,CAAC,CAAC,OAAO,CAAA;4BAC9D,CAAC;4BAAC,OAAO,CAAM,EAAE,CAAC;gCAChB,MAAM,IAAI,yBAAyB,CAAC,qGAAqG,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAA;4BAC1J,CAAC;wBAEH,KAAK,MAAM;4BACT,OAAO,UAAU,CAAA;wBAEnB,KAAK,KAAK;4BACR,OAAO,SAAS,CAAA;wBAElB,KAAK,YAAY;4BACf,OAAO,gBAAgB,CAAA;wBAEzB,KAAK,MAAM;4BACT,OAAO,UAAU,CAAA;wBAEnB;4BACE,OAAO,IAAI,CAAA;oBACf,CAAC;gBACH,CAAC,CAAC,EAAE,CAAA;gBAEJ,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAK,WAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;YACxI,CAAC;QACH,CAAC;IACH,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAA;IAC7B,CAAC;IAED,gBAAgB;QACd,MAAM,OAAO,GAAG,kCAAkC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAA;QACrF,MAAM,YAAY,GAAG,OAAO,EAAE,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAA;QACtF,OAAO,aAAa,CAAC,aAAa,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAA;IAC/G,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY;QACvB,MAAM,SAAS,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAA;QAC9C,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YACrC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,iDAAiD,CAAC,CAAA;YACtE,OAAO,KAAK,CAAA;QACd,CAAC;QACD,IAAI,wBAAwB,CAAC,IAAI,CAAC,4BAA4B,CAAC,EAAE,CAAC;YAChE,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,uDAAuD,CAAC,CAAA;YAC5E,OAAO,KAAK,CAAA;QACd,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;QAC9D,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YACpC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,2DAA2D,CAAC,CAAA;YACrH,OAAO,KAAK,CAAA;QACd,CAAC,CAAC,CAAA;QACF,OAAO,OAAO,CAAA;IAChB,CAAC;IAEO,KAAK,CAAC,KAAK,CAAC,IAAY;QAC9B,MAAM,WAAW,GAAuB;YACtC,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,IAAI,CAAC,4BAA4B;SAC3C,CAAA;QAED,MAAM,mBAAmB,GAAG,MAAM,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;QAChE,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAClD,MAAM,IAAI,yBAAyB,CACjC,mKAAmK,CACpK,CAAA;QACH,CAAC;QACD,OAAO,mBAAmB,CAAA;IAC5B,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,IAAY,EAAE,IAAU,EAAE,MAAc,EAAE,YAA4B,EAAE,uBAAwD;QACzJ,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAE5B,MAAM,KAAK,GAAkB,EAAE,CAAA;QAE/B,MAAM,cAAc,GAA2B;YAC7C,eAAe,EAAE,OAAO,CAAC,WAAW;YACpC,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,cAAc,EAAE,OAAO,CAAC,SAAS;SAClC,CAAA;QAED,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;YACzB,cAAc,CAAC,YAAY,GAAG,YAAY,CAAA;YAC1C,cAAc,CAAC,gBAAgB,GAAG,EAAE,CAAA;QACtC,CAAC;QAED,IAAI,OAAO,CAAC,WAAW,IAAI,IAAI,EAAE,CAAC;YAChC,cAAc,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAA;QAClD,CAAC;QACD,IAAI,IAAI,CAAC,4BAA4B,CAAC,eAAe,IAAI,IAAI,EAAE,CAAC;YAC9D,cAAc,CAAC,eAAe,GAAG,IAAI,CAAC,4BAA4B,CAAC,eAAe,CAAA;QACpF,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAA;QACzC,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACtB,CAAC;QAED,MAAM,IAAI,GAAwB;YAChC,IAAI;YACJ,cAAc;YACd,WAAW,EAAE,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,YAAY;YACzD,cAAc,EAAE,OAAO,CAAC,mBAAmB,IAAI,OAAO,CAAC,4BAA4B,EAAE;YACrF,uBAAuB;YACvB,QAAQ;SACT,CAAA;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QAC1B,MAAM,qBAAqB,GAAG,CAAC,mBAAmB,EAAE,IAAI,IAAI,IAAI,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAA;QAC1J,IAAI,iBAAiB,GAA6B,IAAI,CAAA;QACtD,8GAA8G;QAC9G,IAAI,qBAAqB,IAAI,IAAI,EAAE,CAAC;YAClC,MAAM,OAAO,GAAI,qBAA6C,CAAC,IAAI,CAAA;YACnE,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;gBACpB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACrB,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAA;YACtC,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAA;YACjC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,IAAI,oBAAoB,CAAC,CAAA;YAC3D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAA;YAC9D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;YACjC,MAAM,aAAa,GAAG,kCAAkC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAA;YAC3F,MAAM,QAAQ,GAAG,aAAa,EAAE,IAAI,KAAK,UAAU,IAAI,aAAa,EAAE,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAA;YAC3H,MAAM,WAAW,GAAG,aAAa,EAAE,IAAI,KAAK,UAAU,IAAI,aAAa,EAAE,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAA;YACrI,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,oBAAoB,CAAC,CAAA;YAC7C,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,gBAAgB,CAAC,CAAA;YAE5C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,CAAA;YACnE,IAAI,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvB,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;YAClD,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YACxB,CAAC;YAED,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;YAC7D,IAAI,MAAM,iBAAiB,CAAC,WAAW,CAAC,MAAM,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;gBACnE,KAAK,CAAC,GAAG,EAAE,CAAA;gBACX,OAAM;YACR,CAAC;YACD,KAAK,CAAC,GAAG,EAAE,CAAA;QACb,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAA;QACxC,MAAM,oBAAoB,CAAC,IAAI,CAAC,CAAA;QAChC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACvB,KAAK,CAAC,GAAG,EAAE,CAAA;QAEX,IAAI,iBAAiB,IAAI,IAAI,EAAE,CAAC;YAC9B,MAAM,iBAAiB,CAAC,IAAI,EAAE,CAAA;QAChC,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,IAAY,EAAE,aAAa,GAAG,KAAK;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,4BAA4B,CAAC,QAAQ,CAAA;QAC3D,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;YACtB,OAAO,KAAK,IAAI,aAAa,CAAA;QAC/B,CAAC;QACD,kEAAkE;QAClE,gGAAgG;QAChG,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC7C,OAAO,IAAI,CAAA;QACb,CAAC;QACD,4BAA4B;QAC5B,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACjF,OAAO,KAAK,CAAA;QACd,CAAC;QACD,OAAO,KAAK,IAAI,aAAa,CAAA;IAC/B,CAAC;IAES,8BAA8B,CAAC,WAA6B;QACpE,IAAI,wBAAwB,CAAC,IAAI,CAAC,4BAA4B,CAAC,EAAE,CAAC;YAChE,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO,IAAI,CAAC,EAAE;YACZ,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;gBACpC,IAAI,SAAS,KAAK,WAAW,CAAC,SAAS,EAAE,CAAC;oBACxC,OAAO,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;gBAC3D,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC,CAAA;IACH,CAAC;IAES,KAAK,CAAC,OAAO,CAAC,WAA6B,EAAE,MAAe;QACpE,MAAM,WAAW,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,MAAM,CAAA;QACzD,MAAM,eAAe,GAAG,wBAAwB,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAA;QACnF,IAAI,eAAe,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC7C,MAAM,IAAI,yBAAyB,CAAC,qGAAqG,CAAC,CAAA;QAC5I,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;QAClD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;gBACzB,MAAM,IAAI,CAAC,oBAAoB,CAC7B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,EAC7C,WAAW,CAAC,IAAI,EAChB,WAAW,CAAC,MAAM,EAClB,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,EAClC,IAAI,CAAC,4BAA4B,CAAC,uBAAuB,CAC1D,CAAA;YACH,CAAC;iBAAM,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAA;YAC3D,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,IAAI,eAAe,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACpC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,EAAE,mBAAmB,CAAC;YAC/E,ibAAib;YACjb,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,SAAS,EAAE,aAAa,CAAC;SAC7D,CAAC,CAAA;QACF,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACzB,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAEO,iBAAiB,CAAC,OAAe,EAAE,GAAG,OAAiB;QAC7D,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAA;IAC9G,CAAC;CACF","sourcesContent":["import { Arch, CopyFileTransformer, exists, FileTransformer, InvalidConfigurationError, log, walk } from \"builder-util\"\nimport { createRequire } from \"node:module\"\nimport { Nullish } from \"builder-util-runtime\"\nimport { isCI } from \"ci-info\"\nimport { createHash } from \"crypto\"\nimport { readdir } from \"fs/promises\"\nimport { Lazy } from \"lazy-val\"\nimport * as path from \"path\"\nimport { readAsarHeader } from \"./asar/asar.js\"\nimport { createSignManager } from \"./codeSign/win/signManager.js\"\nimport { signWindows, WindowsSignOptions } from \"./codeSign/win/windowsCodeSign.js\"\nimport { FileCodeSigningInfo } from \"./codeSign/win/signtoolBaseSignManager.js\"\nimport { AfterPackContext } from \"./configuration.js\"\nimport { DIR_TARGET, Platform, Target } from \"./core.js\"\nimport { isWindowsSigningDisabled, RequestedExecutionLevel, resolveWindowsSigningConfiguration, WindowsConfiguration } from \"./options/winOptions.js\"\nimport { Packager } from \"./packager.js\"\nimport { chooseNotNull, PlatformPackager } from \"./platformPackager.js\"\nimport MsixTarget from \"./targets/win/MsixTarget.js\"\nimport AppXTarget from \"./targets/win/AppxTarget.js\"\nimport MsiTarget from \"./targets/win/MsiTarget.js\"\nimport MsiWrappedTarget from \"./targets/win/MsiWrappedTarget.js\"\nimport { NsisTarget } from \"./targets/win/nsis/NsisTarget.js\"\nimport { AppPackageHelper, CopyElevateHelper } from \"./targets/win/nsis/nsisUtil.js\"\nimport { WebInstallerTarget } from \"./targets/win/nsis/WebInstallerTarget.js\"\nimport { createCommonTarget } from \"./targets/targetFactory.js\"\nimport { BuildCacheManager, digest } from \"./util/cacheManager.js\"\nimport { isBuildCacheEnabled } from \"./util/flags.js\"\nimport { editWindowsResources, ResourceEditOptions } from \"./util/win/resEdit.js\"\nimport { time } from \"./util/timer.js\"\nimport { getWindowsVm, VmManager } from \"./vm/vm.js\"\n\nconst _require = createRequire(import.meta.url)\n\nexport class WinPackager extends PlatformPackager<WindowsConfiguration> {\n _iconPath = new Lazy(() => this.getOrConvertIcon(\"ico\"))\n\n readonly vm = new Lazy<VmManager>(() => (process.platform === \"win32\" ? Promise.resolve(new VmManager()) : getWindowsVm(this.debugLogger)))\n\n readonly signingManager = new Lazy(async () => {\n const manager = createSignManager(this)\n await manager.initialize()\n return manager\n })\n private signingQueue = Promise.resolve(true)\n\n get isForceCodeSigningVerification(): boolean {\n return this.platformSpecificBuildOptions.verifyUpdateCodeSignature !== false\n }\n\n constructor(info: Packager) {\n super(info, Platform.WINDOWS)\n }\n\n get defaultTarget(): Array<string> {\n return [\"nsis\"]\n }\n\n createTargets(targets: Array<string>, mapper: (name: string, factory: (outDir: string) => Target) => void): void {\n let copyElevateHelper: CopyElevateHelper | null\n const getCopyElevateHelper = () => {\n if (copyElevateHelper == null) {\n copyElevateHelper = new CopyElevateHelper()\n }\n return copyElevateHelper\n }\n\n let helper: AppPackageHelper | null\n const getHelper = () => {\n if (helper == null) {\n helper = new AppPackageHelper(getCopyElevateHelper())\n }\n return helper\n }\n\n for (const name of targets) {\n if (name === DIR_TARGET) {\n continue\n }\n\n if (name === \"nsis\" || name === \"portable\") {\n mapper(name, outDir => new NsisTarget(this, outDir, name, getHelper()))\n } else if (name === \"nsis-web\") {\n // package file format differs from nsis target\n mapper(name, outDir => new WebInstallerTarget(this, path.join(outDir, name), name, new AppPackageHelper(getCopyElevateHelper())))\n } else {\n const targetClass: typeof NsisTarget | typeof AppXTarget | typeof MsixTarget | typeof MsiTarget | typeof MsiWrappedTarget | null = (() => {\n switch (name) {\n case \"squirrel\":\n try {\n return _require(\"electron-builder-squirrel-windows\").default\n } catch (e: any) {\n throw new InvalidConfigurationError(`Module electron-builder-squirrel-windows must be installed in addition to build Squirrel.Windows: ${e.stack || e}`)\n }\n\n case \"appx\":\n return AppXTarget\n\n case \"msi\":\n return MsiTarget\n\n case \"msiwrapped\":\n return MsiWrappedTarget\n\n case \"msix\":\n return MsixTarget\n\n default:\n return null\n }\n })()\n\n mapper(name, outDir => (targetClass === null ? createCommonTarget(name, outDir, this) : new (targetClass as any)(this, outDir, name)))\n }\n }\n }\n\n getIconPath() {\n return this._iconPath.value\n }\n\n doGetCscPassword(): string | Nullish {\n const signing = resolveWindowsSigningConfiguration(this.platformSpecificBuildOptions)\n const certPassword = signing?.type === \"signtool\" ? signing.certificatePassword : null\n return chooseNotNull(chooseNotNull(certPassword, process.env.WIN_CSC_KEY_PASSWORD), super.doGetCscPassword())\n }\n\n async signIf(file: string): Promise<boolean> {\n const logFields = { file: log.filePath(file) }\n if (!this.shouldSignFile(file, true)) {\n log.info(logFields, \"file signing skipped via signExts configuration\")\n return false\n }\n if (isWindowsSigningDisabled(this.platformSpecificBuildOptions)) {\n log.info(logFields, \"file signing disabled (`sign: false` or `sign: null`)\")\n return false\n }\n\n const promise = this.signingQueue.then(() => this._sign(file))\n this.signingQueue = promise.catch(e => {\n log.warn({ file: log.filePath(file), error: e.message }, \"signing failed for file, queue will continue to next file\")\n return false\n })\n return promise\n }\n\n private async _sign(file: string): Promise<boolean> {\n const signOptions: WindowsSignOptions = {\n path: file,\n options: this.platformSpecificBuildOptions,\n }\n\n const didSignSuccessfully = await signWindows(signOptions, this)\n if (!didSignSuccessfully && this.forceCodeSigning) {\n throw new InvalidConfigurationError(\n `App is not signed and \"forceCodeSigning\" is set to true, please ensure that code signing configuration is correct, please see https://electron.build/code-signing`\n )\n }\n return didSignSuccessfully\n }\n\n async signAndEditResources(file: string, arch: Arch, outDir: string, internalName?: string | null, requestedExecutionLevel?: RequestedExecutionLevel | null) {\n const appInfo = this.appInfo\n\n const files: Array<string> = []\n\n const versionStrings: Record<string, string> = {\n FileDescription: appInfo.productName,\n ProductName: appInfo.productName,\n LegalCopyright: appInfo.copyright,\n }\n\n if (internalName != null) {\n versionStrings.InternalName = internalName\n versionStrings.OriginalFilename = \"\"\n }\n\n if (appInfo.companyName != null) {\n versionStrings.CompanyName = appInfo.companyName\n }\n if (this.platformSpecificBuildOptions.legalTrademarks != null) {\n versionStrings.LegalTrademarks = this.platformSpecificBuildOptions.legalTrademarks\n }\n\n const iconPath = await this.getIconPath()\n if (iconPath != null) {\n files.push(iconPath)\n }\n\n const opts: ResourceEditOptions = {\n file,\n versionStrings,\n fileVersion: appInfo.shortVersion || appInfo.buildVersion,\n productVersion: appInfo.shortVersionWindows || appInfo.getVersionInWeirdWindowsForm(),\n requestedExecutionLevel,\n iconPath,\n }\n\n const config = this.config\n const cscInfoForCacheDigest = !isBuildCacheEnabled() || isCI || config.electronDist != null ? null : await (await this.signingManager.value).cscInfo.value\n let buildCacheManager: BuildCacheManager | null = null\n // resources editing doesn't change executable for the same input and executed quickly - no need to complicate\n if (cscInfoForCacheDigest != null) {\n const cscFile = (cscInfoForCacheDigest as FileCodeSigningInfo).file\n if (cscFile != null) {\n files.push(cscFile)\n }\n\n const timer = time(\"executable cache\")\n const hash = createHash(\"sha512\")\n hash.update(config.electronVersion || \"no electronVersion\")\n hash.update(JSON.stringify(this.platformSpecificBuildOptions))\n hash.update(JSON.stringify(opts))\n const signingConfig = resolveWindowsSigningConfiguration(this.platformSpecificBuildOptions)\n const certSha1 = signingConfig?.type === \"signtool\" || signingConfig?.type === \"hsm\" ? signingConfig.certificateSha1 : null\n const subjectName = signingConfig?.type === \"signtool\" || signingConfig?.type === \"hsm\" ? signingConfig.certificateSubjectName : null\n hash.update(certSha1 || \"no certificateSha1\")\n hash.update(subjectName || \"no subjectName\")\n\n const asar = path.resolve(this.getResourcesDir(outDir), \"app.asar\")\n if (await exists(asar)) {\n hash.update((await readAsarHeader(asar)).header)\n } else {\n hash.update(\"no asar\")\n }\n\n buildCacheManager = new BuildCacheManager(outDir, file, arch)\n if (await buildCacheManager.copyIfValid(await digest(hash, files))) {\n timer.end()\n return\n }\n timer.end()\n }\n\n const timer = time(\"resource-edit&sign\")\n await editWindowsResources(opts)\n await this.signIf(file)\n timer.end()\n\n if (buildCacheManager != null) {\n await buildCacheManager.save()\n }\n }\n\n private shouldSignFile(file: string, fallbackValue = false): boolean {\n const isExe = file.endsWith(\".exe\")\n const signExts = this.platformSpecificBuildOptions.signExts\n if (!signExts?.length) {\n return isExe || fallbackValue\n }\n // process patterns ( !exe => exclude .exe, .dll => include .dll )\n // we process first to allow literal negatives in case a filename matches \"help!.txt\" or similar\n if (signExts.some(ext => file.endsWith(ext))) {\n return true\n }\n // process negative patterns\n if (signExts.some(ext => ext.startsWith(\"!\") && file.endsWith(ext.substring(1)))) {\n return false\n }\n return isExe || fallbackValue\n }\n\n protected createTransformerForExtraFiles(packContext: AfterPackContext): FileTransformer | null {\n if (isWindowsSigningDisabled(this.platformSpecificBuildOptions)) {\n return null\n }\n\n return file => {\n if (this.shouldSignFile(file)) {\n const parentDir = path.dirname(file)\n if (parentDir !== packContext.appOutDir) {\n return new CopyFileTransformer(file => this.signIf(file))\n }\n }\n return null\n }\n }\n\n protected async signApp(packContext: AfterPackContext, isAsar: boolean): Promise<boolean> {\n const exeFileName = `${this.appInfo.productFilename}.exe`\n const signingDisabled = isWindowsSigningDisabled(this.platformSpecificBuildOptions)\n if (signingDisabled && this.forceCodeSigning) {\n throw new InvalidConfigurationError(\"Signing is disabled (`sign: false`) but `forceCodeSigning` is enabled. Remove one of these options.\")\n }\n\n const files = await readdir(packContext.appOutDir)\n for (const file of files) {\n if (file === exeFileName) {\n await this.signAndEditResources(\n path.join(packContext.appOutDir, exeFileName),\n packContext.arch,\n packContext.outDir,\n path.basename(exeFileName, \".exe\"),\n this.platformSpecificBuildOptions.requestedExecutionLevel\n )\n } else if (this.shouldSignFile(file)) {\n await this.signIf(path.join(packContext.appOutDir, file))\n }\n }\n\n if (!isAsar || signingDisabled) {\n return true\n }\n\n const filesToSign = await Promise.all([\n this.walkSignableFiles(packContext.appOutDir, \"resources\", \"app.asar.unpacked\"),\n // Note: The `swiftshader` directory is absent in modern electron versions. `swiftshader/` held Chromium's legacy SwiftShader GL fallback (libEGL.dll / libGLESv2.dll), removed in Chromium 102 (Electron 19+) in favor of SwANGLE (ANGLE + SwiftShader Vulkan). This is kept here only for backwards compat with older Electron; `walk` no-ops on a missing dir (readdir ENOENT is swallowed), so this is harmless when the directory is absent.\n this.walkSignableFiles(packContext.appOutDir, \"swiftshader\"),\n ])\n for (const file of filesToSign.flat(1)) {\n await this.signIf(file)\n }\n\n return true\n }\n\n private walkSignableFiles(baseDir: string, ...subpath: string[]): Promise<string[]> {\n return walk(path.join(baseDir, ...subpath), (file, stat) => stat.isDirectory() || this.shouldSignFile(file))\n }\n}\n"]}
1
+ {"version":3,"file":"winPackager.js","sourceRoot":"","sources":["../src/winPackager.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arch, CopyFileTransformer, exists, FileTransformer, InvalidConfigurationError, log, walk } from \"builder-util\"\nimport { createRequire } from \"node:module\"\nimport { Nullish } from \"builder-util-runtime\"\nimport { isCI } from \"ci-info\"\nimport { createHash } from \"crypto\"\nimport { readdir } from \"fs/promises\"\nimport { Lazy } from \"lazy-val\"\nimport * as path from \"path\"\nimport { readAsarHeader } from \"./asar/asar.js\"\nimport { createSignManager } from \"./codeSign/win/signManager.js\"\nimport { combineSignResults, isSignResultSigned, SignFileResult, SigningResult } from \"./codeSign/signResult.js\"\nimport { signWindows, WindowsSignOptions } from \"./codeSign/win/windowsCodeSign.js\"\nimport { FileCodeSigningInfo } from \"./codeSign/win/signtoolBaseSignManager.js\"\nimport { AfterPackContext } from \"./configuration.js\"\nimport { DIR_TARGET, Platform, Target } from \"./core.js\"\nimport { isWindowsSigningDisabled, RequestedExecutionLevel, resolveWindowsSigningConfiguration, WindowsConfiguration } from \"./options/winOptions.js\"\nimport { Packager } from \"./packager.js\"\nimport { chooseNotNull, PlatformPackager } from \"./platformPackager.js\"\nimport MsixTarget from \"./targets/win/MsixTarget.js\"\nimport AppXTarget from \"./targets/win/AppxTarget.js\"\nimport MsiTarget from \"./targets/win/MsiTarget.js\"\nimport MsiWrappedTarget from \"./targets/win/MsiWrappedTarget.js\"\nimport { NsisTarget } from \"./targets/win/nsis/NsisTarget.js\"\nimport { AppPackageHelper, CopyElevateHelper } from \"./targets/win/nsis/nsisUtil.js\"\nimport { WebInstallerTarget } from \"./targets/win/nsis/WebInstallerTarget.js\"\nimport { createCommonTarget } from \"./targets/targetFactory.js\"\nimport { BuildCacheManager, digest } from \"./util/cacheManager.js\"\nimport { isBuildCacheEnabled } from \"./util/flags.js\"\nimport { editWindowsResources, ResourceEditOptions } from \"./util/win/resEdit.js\"\nimport { time } from \"./util/timer.js\"\nimport { getWindowsVm, VmManager } from \"./vm/vm.js\"\n\nconst _require = createRequire(import.meta.url)\n\nexport class WinPackager extends PlatformPackager<WindowsConfiguration> {\n _iconPath = new Lazy(() => this.getOrConvertIcon(\"ico\"))\n\n readonly vm = new Lazy<VmManager>(() => (process.platform === \"win32\" ? Promise.resolve(new VmManager()) : getWindowsVm(this.debugLogger)))\n\n readonly signingManager = new Lazy(async () => {\n const manager = createSignManager(this)\n await manager.initialize()\n return manager\n })\n // Sequences the sign requests; per-file failures are logged and swallowed in the queue itself (hence `| void`)\n // so it keeps flowing to the next file — each caller still observes its own failure via the promise `signIf` returns.\n private signingQueue: Promise<SigningResult | void> = Promise.resolve()\n\n get isForceCodeSigningVerification(): boolean {\n return this.platformSpecificBuildOptions.verifyUpdateCodeSignature !== false\n }\n\n constructor(info: Packager) {\n super(info, Platform.WINDOWS)\n }\n\n get defaultTarget(): Array<string> {\n return [\"nsis\"]\n }\n\n createTargets(targets: Array<string>, mapper: (name: string, factory: (outDir: string) => Target) => void): void {\n let copyElevateHelper: CopyElevateHelper | null\n const getCopyElevateHelper = () => {\n if (copyElevateHelper == null) {\n copyElevateHelper = new CopyElevateHelper()\n }\n return copyElevateHelper\n }\n\n let helper: AppPackageHelper | null\n const getHelper = () => {\n if (helper == null) {\n helper = new AppPackageHelper(getCopyElevateHelper())\n }\n return helper\n }\n\n for (const name of targets) {\n if (name === DIR_TARGET) {\n continue\n }\n\n if (name === \"nsis\" || name === \"portable\") {\n mapper(name, outDir => new NsisTarget(this, outDir, name, getHelper()))\n } else if (name === \"nsis-web\") {\n // package file format differs from nsis target\n mapper(name, outDir => new WebInstallerTarget(this, path.join(outDir, name), name, new AppPackageHelper(getCopyElevateHelper())))\n } else {\n const targetClass: typeof NsisTarget | typeof AppXTarget | typeof MsixTarget | typeof MsiTarget | typeof MsiWrappedTarget | null = (() => {\n switch (name) {\n case \"squirrel\":\n try {\n return _require(\"electron-builder-squirrel-windows\").default\n } catch (e: any) {\n throw new InvalidConfigurationError(`Module electron-builder-squirrel-windows must be installed in addition to build Squirrel.Windows: ${e.stack || e}`)\n }\n\n case \"appx\":\n return AppXTarget\n\n case \"msi\":\n return MsiTarget\n\n case \"msiwrapped\":\n return MsiWrappedTarget\n\n case \"msix\":\n return MsixTarget\n\n default:\n return null\n }\n })()\n\n mapper(name, outDir => (targetClass === null ? createCommonTarget(name, outDir, this) : new (targetClass as any)(this, outDir, name)))\n }\n }\n }\n\n getIconPath() {\n return this._iconPath.value\n }\n\n doGetCscPassword(): string | Nullish {\n const signing = resolveWindowsSigningConfiguration(this.platformSpecificBuildOptions)\n const certPassword = signing?.type === \"signtool\" ? signing.certificatePassword : null\n return chooseNotNull(chooseNotNull(certPassword, process.env.WIN_CSC_KEY_PASSWORD), super.doGetCscPassword())\n }\n\n async signIf(file: string): Promise<SigningResult> {\n const logFields = { file: log.filePath(file) }\n if (!this.shouldSignFile(file, true)) {\n log.info(logFields, \"file signing skipped via signExts configuration\")\n return \"skipped:filtered\"\n }\n if (isWindowsSigningDisabled(this.platformSpecificBuildOptions)) {\n log.info(logFields, \"file signing disabled (`sign: false` or `sign: null`)\")\n return \"skipped:disabled\"\n }\n\n const promise = this.signingQueue.then(() => this._sign(file))\n this.signingQueue = promise.catch(e => {\n log.warn({ file: log.filePath(file), error: e.message }, \"signing failed for file, queue will continue to next file\")\n })\n return promise\n }\n\n private async _sign(file: string): Promise<SignFileResult> {\n const signOptions: WindowsSignOptions = {\n path: file,\n options: this.platformSpecificBuildOptions,\n }\n\n const result = await signWindows(signOptions, this)\n if (!isSignResultSigned(result) && this.forceCodeSigning) {\n throw new InvalidConfigurationError(\n `App is not signed and \"forceCodeSigning\" is set to true, please ensure that code signing configuration is correct, please see https://electron.build/docs/features/code-signing`\n )\n }\n return result\n }\n\n async signAndEditResources(\n file: string,\n arch: Arch,\n outDir: string,\n internalName?: string | null,\n requestedExecutionLevel?: RequestedExecutionLevel | null\n ): Promise<SigningResult> {\n const appInfo = this.appInfo\n\n const files: Array<string> = []\n\n const versionStrings: Record<string, string> = {\n FileDescription: appInfo.productName,\n ProductName: appInfo.productName,\n LegalCopyright: appInfo.copyright,\n }\n\n if (internalName != null) {\n versionStrings.InternalName = internalName\n versionStrings.OriginalFilename = \"\"\n }\n\n if (appInfo.companyName != null) {\n versionStrings.CompanyName = appInfo.companyName\n }\n if (this.platformSpecificBuildOptions.legalTrademarks != null) {\n versionStrings.LegalTrademarks = this.platformSpecificBuildOptions.legalTrademarks\n }\n\n const iconPath = await this.getIconPath()\n if (iconPath != null) {\n files.push(iconPath)\n }\n\n const opts: ResourceEditOptions = {\n file,\n versionStrings,\n fileVersion: appInfo.shortVersion || appInfo.buildVersion,\n productVersion: appInfo.shortVersionWindows || appInfo.getVersionInWeirdWindowsForm(),\n requestedExecutionLevel,\n iconPath,\n }\n\n const config = this.config\n const cscInfoForCacheDigest = !isBuildCacheEnabled() || isCI || config.electronDist != null ? null : await (await this.signingManager.value).cscInfo.value\n let buildCacheManager: BuildCacheManager | null = null\n // resources editing doesn't change executable for the same input and executed quickly - no need to complicate\n if (cscInfoForCacheDigest != null) {\n const cscFile = (cscInfoForCacheDigest as FileCodeSigningInfo).file\n if (cscFile != null) {\n files.push(cscFile)\n }\n\n const timer = time(\"executable cache\")\n const hash = createHash(\"sha512\")\n hash.update(config.electronVersion || \"no electronVersion\")\n hash.update(JSON.stringify(this.platformSpecificBuildOptions))\n hash.update(JSON.stringify(opts))\n const signingConfig = resolveWindowsSigningConfiguration(this.platformSpecificBuildOptions)\n const certSha1 = signingConfig?.type === \"signtool\" || signingConfig?.type === \"hsm\" ? signingConfig.certificateSha1 : null\n const subjectName = signingConfig?.type === \"signtool\" || signingConfig?.type === \"hsm\" ? signingConfig.certificateSubjectName : null\n hash.update(certSha1 || \"no certificateSha1\")\n hash.update(subjectName || \"no subjectName\")\n\n const asar = path.resolve(this.getResourcesDir(outDir), \"app.asar\")\n if (await exists(asar)) {\n hash.update((await readAsarHeader(asar)).header)\n } else {\n hash.update(\"no asar\")\n }\n\n buildCacheManager = new BuildCacheManager(outDir, file, arch)\n if (await buildCacheManager.copyIfValid(await digest(hash, files))) {\n timer.end()\n // the cache is only used when signing is configured (cscInfo != null), so the restored executable was signed when it was cached\n return \"signed\"\n }\n timer.end()\n }\n\n const timer = time(\"resource-edit&sign\")\n await editWindowsResources(opts)\n const signResult = await this.signIf(file)\n timer.end()\n\n if (buildCacheManager != null) {\n await buildCacheManager.save()\n }\n return signResult\n }\n\n private shouldSignFile(file: string, fallbackValue = false): boolean {\n const isExe = file.endsWith(\".exe\")\n const signExts = this.platformSpecificBuildOptions.signExts\n if (!signExts?.length) {\n return isExe || fallbackValue\n }\n // process patterns ( !exe => exclude .exe, .dll => include .dll )\n // we process first to allow literal negatives in case a filename matches \"help!.txt\" or similar\n if (signExts.some(ext => file.endsWith(ext))) {\n return true\n }\n // process negative patterns\n if (signExts.some(ext => ext.startsWith(\"!\") && file.endsWith(ext.substring(1)))) {\n return false\n }\n return isExe || fallbackValue\n }\n\n protected createTransformerForExtraFiles(packContext: AfterPackContext): FileTransformer | null {\n if (isWindowsSigningDisabled(this.platformSpecificBuildOptions)) {\n return null\n }\n\n return file => {\n if (this.shouldSignFile(file)) {\n const parentDir = path.dirname(file)\n if (parentDir !== packContext.appOutDir) {\n return new CopyFileTransformer(file => this.signIf(file).then(isSignResultSigned))\n }\n }\n return null\n }\n }\n\n protected async signApp(packContext: AfterPackContext, isAsar: boolean): Promise<SigningResult> {\n const exeFileName = `${this.appInfo.productFilename}.exe`\n const signingDisabled = isWindowsSigningDisabled(this.platformSpecificBuildOptions)\n if (signingDisabled && this.forceCodeSigning) {\n throw new InvalidConfigurationError(\"Signing is disabled (`sign: false`) but `forceCodeSigning` is enabled. Remove one of these options.\")\n }\n\n const results: Array<SigningResult> = []\n const files = await readdir(packContext.appOutDir)\n for (const file of files) {\n if (file === exeFileName) {\n results.push(\n await this.signAndEditResources(\n path.join(packContext.appOutDir, exeFileName),\n packContext.arch,\n packContext.outDir,\n path.basename(exeFileName, \".exe\"),\n this.platformSpecificBuildOptions.requestedExecutionLevel\n )\n )\n } else if (this.shouldSignFile(file)) {\n results.push(await this.signIf(path.join(packContext.appOutDir, file)))\n }\n }\n\n // the combined result gates the `afterSign` hook — a signed result wins (see PlatformPackager.doSignAfterPack)\n if (!isAsar || signingDisabled) {\n return combineSignResults(results)\n }\n\n const filesToSign = await Promise.all([\n this.walkSignableFiles(packContext.appOutDir, \"resources\", \"app.asar.unpacked\"),\n // Note: The `swiftshader` directory is absent in modern electron versions. `swiftshader/` held Chromium's legacy SwiftShader GL fallback (libEGL.dll / libGLESv2.dll), removed in Chromium 102 (Electron 19+) in favor of SwANGLE (ANGLE + SwiftShader Vulkan). This is kept here only for backwards compat with older Electron; `walk` no-ops on a missing dir (readdir ENOENT is swallowed), so this is harmless when the directory is absent.\n this.walkSignableFiles(packContext.appOutDir, \"swiftshader\"),\n ])\n for (const file of filesToSign.flat(1)) {\n results.push(await this.signIf(file))\n }\n\n return combineSignResults(results)\n }\n\n private walkSignableFiles(baseDir: string, ...subpath: string[]): Promise<string[]> {\n return walk(path.join(baseDir, ...subpath), (file, stat) => stat.isDirectory() || this.shouldSignFile(file))\n }\n}\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "app-builder-lib",
3
3
  "description": "electron-builder lib",
4
- "version": "27.0.0-alpha.6",
4
+ "version": "27.0.0-alpha.8",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "exports": {
@@ -76,8 +76,8 @@
76
76
  "chromium-pickle-js": "^0.2.0",
77
77
  "ci-info": "4.3.1",
78
78
  "debug": "^4.3.4",
79
- "dotenv": "^16.4.5",
80
- "dotenv-expand": "^11.0.6",
79
+ "dotenv": "^17.4.2",
80
+ "dotenv-expand": "^13.0.0",
81
81
  "ejs": "^3.1.8",
82
82
  "fs-extra": "^11.3.0",
83
83
  "hosted-git-info": "^4.1.0",
@@ -98,9 +98,9 @@
98
98
  "undici": "^7.27.1",
99
99
  "unzipper": "^0.12.3",
100
100
  "which": "^5.0.0",
101
- "builder-util": "27.0.0-alpha.6",
102
- "electron-publish": "27.0.0-alpha.6",
103
- "builder-util-runtime": "10.0.0-alpha.5"
101
+ "builder-util-runtime": "10.0.0-alpha.7",
102
+ "builder-util": "27.0.0-alpha.8",
103
+ "electron-publish": "27.0.0-alpha.8"
104
104
  },
105
105
  "///": "babel in devDependencies for proton tests",
106
106
  "devDependencies": {
@@ -115,12 +115,12 @@
115
115
  "@types/unzipper": "^0.10.11",
116
116
  "@types/which": "^3.0.4",
117
117
  "toml": "^3.0.0",
118
- "dmg-builder": "27.0.0-alpha.6",
119
- "electron-builder-squirrel-windows": "27.0.0-alpha.6"
118
+ "dmg-builder": "27.0.0-alpha.8",
119
+ "electron-builder-squirrel-windows": "27.0.0-alpha.8"
120
120
  },
121
121
  "peerDependencies": {
122
- "dmg-builder": "27.0.0-alpha.6",
123
- "electron-builder-squirrel-windows": "27.0.0-alpha.6"
122
+ "dmg-builder": "27.0.0-alpha.8",
123
+ "electron-builder-squirrel-windows": "27.0.0-alpha.8"
124
124
  },
125
125
  "//": "electron-builder-squirrel-windows and dmg-builder added as dev dep for tests (as otherwise `require` doesn't work using Yarn 2)",
126
126
  "types": "./dist/index.d.ts",