app-builder-lib 27.0.0-alpha.3 → 27.0.0-alpha.5

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 (238) hide show
  1. package/dist/codeSign/mac/macCodeSign.d.ts.map +1 -1
  2. package/dist/codeSign/mac/macCodeSign.js +3 -6
  3. package/dist/codeSign/mac/macCodeSign.js.map +1 -1
  4. package/dist/codeSign/win/signtoolBaseSignManager.d.ts.map +1 -1
  5. package/dist/codeSign/win/signtoolBaseSignManager.js +11 -3
  6. package/dist/codeSign/win/signtoolBaseSignManager.js.map +1 -1
  7. package/dist/codeSign/win/windowsSignAzureManager.d.ts.map +1 -1
  8. package/dist/codeSign/win/windowsSignAzureManager.js +31 -21
  9. package/dist/codeSign/win/windowsSignAzureManager.js.map +1 -1
  10. package/dist/configuration.d.ts +37 -44
  11. package/dist/configuration.d.ts.map +1 -1
  12. package/dist/configuration.js.map +1 -1
  13. package/dist/electron/ElectronFramework.js +2 -2
  14. package/dist/electron/ElectronFramework.js.map +1 -1
  15. package/dist/electron/electronVersion.d.ts.map +1 -1
  16. package/dist/electron/electronVersion.js +1 -11
  17. package/dist/electron/electronVersion.js.map +1 -1
  18. package/dist/fileMatcher.d.ts +27 -2
  19. package/dist/fileMatcher.d.ts.map +1 -1
  20. package/dist/fileMatcher.js +204 -16
  21. package/dist/fileMatcher.js.map +1 -1
  22. package/dist/indexInternal.d.ts +6 -5
  23. package/dist/indexInternal.d.ts.map +1 -1
  24. package/dist/indexInternal.js +6 -5
  25. package/dist/indexInternal.js.map +1 -1
  26. package/dist/macPackager.d.ts +5 -0
  27. package/dist/macPackager.d.ts.map +1 -1
  28. package/dist/macPackager.js +35 -0
  29. package/dist/macPackager.js.map +1 -1
  30. package/dist/node-module-collector/moduleManager.d.ts +3 -1
  31. package/dist/node-module-collector/moduleManager.d.ts.map +1 -1
  32. package/dist/node-module-collector/moduleManager.js +9 -1
  33. package/dist/node-module-collector/moduleManager.js.map +1 -1
  34. package/dist/node-module-collector/nodeModulesCollector.d.ts +13 -23
  35. package/dist/node-module-collector/nodeModulesCollector.d.ts.map +1 -1
  36. package/dist/node-module-collector/nodeModulesCollector.js +52 -122
  37. package/dist/node-module-collector/nodeModulesCollector.js.map +1 -1
  38. package/dist/node-module-collector/pnpmNodeModulesCollector.js +5 -5
  39. package/dist/node-module-collector/pnpmNodeModulesCollector.js.map +1 -1
  40. package/dist/node-module-collector/types.d.ts +2 -0
  41. package/dist/node-module-collector/types.d.ts.map +1 -1
  42. package/dist/node-module-collector/types.js.map +1 -1
  43. package/dist/options/PlatformSpecificBuildOptions.d.ts +0 -6
  44. package/dist/options/PlatformSpecificBuildOptions.d.ts.map +1 -1
  45. package/dist/options/PlatformSpecificBuildOptions.js.map +1 -1
  46. package/dist/options/SnapOptions.d.ts +15 -13
  47. package/dist/options/SnapOptions.d.ts.map +1 -1
  48. package/dist/options/SnapOptions.js.map +1 -1
  49. package/dist/options/linuxOptions.d.ts +0 -10
  50. package/dist/options/linuxOptions.d.ts.map +1 -1
  51. package/dist/options/linuxOptions.js.map +1 -1
  52. package/dist/options/winOptions.d.ts +164 -34
  53. package/dist/options/winOptions.d.ts.map +1 -1
  54. package/dist/options/winOptions.js.map +1 -1
  55. package/dist/packager.d.ts +2 -0
  56. package/dist/packager.d.ts.map +1 -1
  57. package/dist/packager.js +20 -22
  58. package/dist/packager.js.map +1 -1
  59. package/dist/platformPackager.d.ts +3 -0
  60. package/dist/platformPackager.d.ts.map +1 -1
  61. package/dist/platformPackager.js +11 -6
  62. package/dist/platformPackager.js.map +1 -1
  63. package/dist/publish/PublishManager.d.ts +1 -0
  64. package/dist/publish/PublishManager.d.ts.map +1 -1
  65. package/dist/publish/PublishManager.js +7 -2
  66. package/dist/publish/PublishManager.js.map +1 -1
  67. package/dist/targets/linux/FlatpakTarget.d.ts.map +1 -1
  68. package/dist/targets/linux/FlatpakTarget.js +4 -1
  69. package/dist/targets/linux/FlatpakTarget.js.map +1 -1
  70. package/dist/targets/linux/FpmTarget.d.ts +6 -0
  71. package/dist/targets/linux/FpmTarget.d.ts.map +1 -1
  72. package/dist/targets/linux/FpmTarget.js +28 -6
  73. package/dist/targets/linux/FpmTarget.js.map +1 -1
  74. package/dist/targets/linux/LinuxTargetHelper.d.ts +14 -0
  75. package/dist/targets/linux/LinuxTargetHelper.d.ts.map +1 -1
  76. package/dist/targets/linux/LinuxTargetHelper.js +38 -59
  77. package/dist/targets/linux/LinuxTargetHelper.js.map +1 -1
  78. package/dist/targets/linux/appimage/AppImageTarget.d.ts +1 -0
  79. package/dist/targets/linux/appimage/AppImageTarget.d.ts.map +1 -1
  80. package/dist/targets/linux/appimage/AppImageTarget.js +12 -14
  81. package/dist/targets/linux/appimage/AppImageTarget.js.map +1 -1
  82. package/dist/targets/linux/appimage/appImageUtil.d.ts +4 -0
  83. package/dist/targets/linux/appimage/appImageUtil.d.ts.map +1 -1
  84. package/dist/targets/linux/appimage/appImageUtil.js +11 -4
  85. package/dist/targets/linux/appimage/appImageUtil.js.map +1 -1
  86. package/dist/targets/linux/appimage/appLauncher.d.ts.map +1 -1
  87. package/dist/targets/linux/appimage/appLauncher.js +5 -11
  88. package/dist/targets/linux/appimage/appLauncher.js.map +1 -1
  89. package/dist/targets/linux/launcherScript.d.ts +32 -0
  90. package/dist/targets/linux/launcherScript.d.ts.map +1 -0
  91. package/dist/targets/linux/launcherScript.js +24 -0
  92. package/dist/targets/linux/launcherScript.js.map +1 -0
  93. package/dist/targets/linux/snap/SnapTarget.d.ts +1 -1
  94. package/dist/targets/linux/snap/SnapTarget.d.ts.map +1 -1
  95. package/dist/targets/linux/snap/SnapTarget.js +23 -1
  96. package/dist/targets/linux/snap/SnapTarget.js.map +1 -1
  97. package/dist/targets/linux/snap/core24.d.ts +1 -1
  98. package/dist/targets/linux/snap/core24.d.ts.map +1 -1
  99. package/dist/targets/linux/snap/core24.js +3 -2
  100. package/dist/targets/linux/snap/core24.js.map +1 -1
  101. package/dist/targets/linux/snap/coreCustom.d.ts +1 -1
  102. package/dist/targets/linux/snap/coreCustom.d.ts.map +1 -1
  103. package/dist/targets/linux/snap/coreCustom.js +2 -2
  104. package/dist/targets/linux/snap/coreCustom.js.map +1 -1
  105. package/dist/targets/linux/snap/coreLegacy.d.ts +1 -1
  106. package/dist/targets/linux/snap/coreLegacy.d.ts.map +1 -1
  107. package/dist/targets/linux/snap/coreLegacy.js +8 -7
  108. package/dist/targets/linux/snap/coreLegacy.js.map +1 -1
  109. package/dist/targets/linux/snap/snapCommand.d.ts +2 -2
  110. package/dist/targets/linux/snap/snapCommand.d.ts.map +1 -1
  111. package/dist/targets/linux/snap/snapCommand.js +4 -10
  112. package/dist/targets/linux/snap/snapCommand.js.map +1 -1
  113. package/dist/targets/linux/snap/snapcraftBuilder.d.ts +7 -1
  114. package/dist/targets/linux/snap/snapcraftBuilder.d.ts.map +1 -1
  115. package/dist/targets/linux/snap/snapcraftBuilder.js +57 -20
  116. package/dist/targets/linux/snap/snapcraftBuilder.js.map +1 -1
  117. package/dist/targets/targetFactory.d.ts +7 -0
  118. package/dist/targets/targetFactory.d.ts.map +1 -1
  119. package/dist/targets/targetFactory.js +28 -0
  120. package/dist/targets/targetFactory.js.map +1 -1
  121. package/dist/targets/win/AppxTarget.d.ts.map +1 -1
  122. package/dist/targets/win/AppxTarget.js +17 -9
  123. package/dist/targets/win/AppxTarget.js.map +1 -1
  124. package/dist/targets/win/MsiTarget.d.ts.map +1 -1
  125. package/dist/targets/win/MsiTarget.js +8 -11
  126. package/dist/targets/win/MsiTarget.js.map +1 -1
  127. package/dist/targets/win/nsis/NsisTarget.d.ts +3 -2
  128. package/dist/targets/win/nsis/NsisTarget.d.ts.map +1 -1
  129. package/dist/targets/win/nsis/NsisTarget.js +26 -49
  130. package/dist/targets/win/nsis/NsisTarget.js.map +1 -1
  131. package/dist/targets/win/nsis/nsisScriptGenerator.d.ts.map +1 -1
  132. package/dist/targets/win/nsis/nsisScriptGenerator.js +3 -2
  133. package/dist/targets/win/nsis/nsisScriptGenerator.js.map +1 -1
  134. package/dist/targets/win/nsis/nsisUtil.d.ts +5 -2
  135. package/dist/targets/win/nsis/nsisUtil.d.ts.map +1 -1
  136. package/dist/targets/win/nsis/nsisUtil.js +46 -22
  137. package/dist/targets/win/nsis/nsisUtil.js.map +1 -1
  138. package/dist/targets/win/nsis/progId.d.ts +21 -0
  139. package/dist/targets/win/nsis/progId.d.ts.map +1 -0
  140. package/dist/targets/win/nsis/progId.js +60 -0
  141. package/dist/targets/win/nsis/progId.js.map +1 -0
  142. package/dist/toolsets/7zip.d.ts.map +1 -1
  143. package/dist/toolsets/7zip.js +3 -1
  144. package/dist/toolsets/7zip.js.map +1 -1
  145. package/dist/toolsets/appimage.d.ts +3 -3
  146. package/dist/toolsets/appimage.d.ts.map +1 -1
  147. package/dist/toolsets/appimage.js +9 -6
  148. package/dist/toolsets/appimage.js.map +1 -1
  149. package/dist/toolsets/custom.d.ts +1 -3
  150. package/dist/toolsets/custom.d.ts.map +1 -1
  151. package/dist/toolsets/custom.js +4 -133
  152. package/dist/toolsets/custom.js.map +1 -1
  153. package/dist/toolsets/fpm.d.ts.map +1 -1
  154. package/dist/toolsets/fpm.js +11 -5
  155. package/dist/toolsets/fpm.js.map +1 -1
  156. package/dist/toolsets/icons.d.ts.map +1 -1
  157. package/dist/toolsets/icons.js +13 -2
  158. package/dist/toolsets/icons.js.map +1 -1
  159. package/dist/toolsets/linuxToolsMac.d.ts.map +1 -1
  160. package/dist/toolsets/linuxToolsMac.js +4 -1
  161. package/dist/toolsets/linuxToolsMac.js.map +1 -1
  162. package/dist/toolsets/nsis.d.ts.map +1 -1
  163. package/dist/toolsets/nsis.js +6 -3
  164. package/dist/toolsets/nsis.js.map +1 -1
  165. package/dist/toolsets/version.d.ts +12 -0
  166. package/dist/toolsets/version.d.ts.map +1 -0
  167. package/dist/toolsets/version.js +13 -0
  168. package/dist/toolsets/version.js.map +1 -0
  169. package/dist/toolsets/winCodeSign.d.ts +11 -3
  170. package/dist/toolsets/winCodeSign.d.ts.map +1 -1
  171. package/dist/toolsets/winCodeSign.js +45 -27
  172. package/dist/toolsets/winCodeSign.js.map +1 -1
  173. package/dist/toolsets/wine.d.ts +2 -1
  174. package/dist/toolsets/wine.d.ts.map +1 -1
  175. package/dist/toolsets/wine.js +15 -13
  176. package/dist/toolsets/wine.js.map +1 -1
  177. package/dist/util/NodeModuleCopyHelper.js +3 -3
  178. package/dist/util/NodeModuleCopyHelper.js.map +1 -1
  179. package/dist/util/appFileCopier.d.ts +39 -0
  180. package/dist/util/appFileCopier.d.ts.map +1 -1
  181. package/dist/util/appFileCopier.js +71 -20
  182. package/dist/util/appFileCopier.js.map +1 -1
  183. package/dist/util/archCompatibility.d.ts +42 -0
  184. package/dist/util/archCompatibility.d.ts.map +1 -0
  185. package/dist/util/archCompatibility.js +202 -0
  186. package/dist/util/archCompatibility.js.map +1 -0
  187. package/dist/util/config/config.d.ts +1 -0
  188. package/dist/util/config/config.d.ts.map +1 -1
  189. package/dist/util/config/config.js +4 -1
  190. package/dist/util/config/config.js.map +1 -1
  191. package/dist/util/config/load.d.ts +2 -2
  192. package/dist/util/config/load.d.ts.map +1 -1
  193. package/dist/util/config/load.js +3 -12
  194. package/dist/util/config/load.js.map +1 -1
  195. package/dist/util/config/schemaValidator.js +1 -1
  196. package/dist/util/config/schemaValidator.js.map +1 -1
  197. package/dist/util/electronGet.d.ts +6 -3
  198. package/dist/util/electronGet.d.ts.map +1 -1
  199. package/dist/util/electronGet.js +23 -9
  200. package/dist/util/electronGet.js.map +1 -1
  201. package/dist/util/flags.d.ts +0 -1
  202. package/dist/util/flags.d.ts.map +1 -1
  203. package/dist/util/flags.js +0 -3
  204. package/dist/util/flags.js.map +1 -1
  205. package/dist/util/hash.d.ts +1 -1
  206. package/dist/util/hash.d.ts.map +1 -1
  207. package/dist/util/hash.js +1 -15
  208. package/dist/util/hash.js.map +1 -1
  209. package/dist/util/installOrRebuild.d.ts +38 -0
  210. package/dist/util/installOrRebuild.d.ts.map +1 -0
  211. package/dist/util/{yarn.js → installOrRebuild.js} +65 -14
  212. package/dist/util/installOrRebuild.js.map +1 -0
  213. package/dist/util/langs.d.ts.map +1 -1
  214. package/dist/util/langs.js +1 -0
  215. package/dist/util/langs.js.map +1 -1
  216. package/dist/util/mac/macosIconComposer.d.ts +2 -1
  217. package/dist/util/mac/macosIconComposer.d.ts.map +1 -1
  218. package/dist/util/mac/macosIconComposer.js +40 -58
  219. package/dist/util/mac/macosIconComposer.js.map +1 -1
  220. package/dist/util/streamSpawnToFile.d.ts +47 -0
  221. package/dist/util/streamSpawnToFile.d.ts.map +1 -0
  222. package/dist/util/streamSpawnToFile.js +110 -0
  223. package/dist/util/streamSpawnToFile.js.map +1 -0
  224. package/dist/util/toolsetLock.d.ts +2 -0
  225. package/dist/util/toolsetLock.d.ts.map +1 -1
  226. package/dist/util/toolsetLock.js +31 -5
  227. package/dist/util/toolsetLock.js.map +1 -1
  228. package/dist/version.d.ts +1 -1
  229. package/dist/version.js +1 -1
  230. package/dist/version.js.map +1 -1
  231. package/package.json +8 -8
  232. package/scheme.json +94 -130
  233. package/templates/appx/appxmanifest.xml +1 -2
  234. package/templates/nsis/assistedMessages.yml +17 -0
  235. package/templates/nsis/messages.yml +5 -0
  236. package/dist/util/yarn.d.ts +0 -23
  237. package/dist/util/yarn.d.ts.map +0 -1
  238. package/dist/util/yarn.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"toolsetLock.d.ts","sourceRoot":"","sources":["../../src/util/toolsetLock.ts"],"names":[],"mappings":"AAQA,wBAAsB,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAW3E"}
1
+ {"version":3,"file":"toolsetLock.d.ts","sourceRoot":"","sources":["../../src/util/toolsetLock.ts"],"names":[],"mappings":"AAuBA,wBAAgB,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAErE;AAUD,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAEtE;AASD,wBAAgB,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAEnE"}
@@ -3,10 +3,12 @@ import { writeFile } from "fs/promises";
3
3
  import * as lockfile from "proper-lockfile";
4
4
  import * as os from "os";
5
5
  import * as path from "path";
6
- const LOCK_FILE = path.join(os.tmpdir(), ".electron-builder-toolset.lock");
7
- export async function withToolsetLock(task) {
8
- await writeFile(LOCK_FILE, "", { flag: "a" });
9
- const release = await lockfile.lock(LOCK_FILE, {
6
+ const TOOLSET_LOCK_FILE = path.join(os.tmpdir(), ".electron-builder-toolset.lock");
7
+ const SIGNTOOL_LOCK_FILE = path.join(os.tmpdir(), ".electron-builder-signtool.lock");
8
+ const ICONS_LOCK_FILE = path.join(os.tmpdir(), ".electron-builder-icons.lock");
9
+ async function withLock(lockFile, task) {
10
+ await writeFile(lockFile, "", { flag: "a" });
11
+ const release = await lockfile.lock(lockFile, {
10
12
  retries: { retries: 100, minTimeout: 1000, maxTimeout: 5000 },
11
13
  stale: 120_000,
12
14
  });
@@ -14,7 +16,31 @@ export async function withToolsetLock(task) {
14
16
  return await task();
15
17
  }
16
18
  finally {
17
- await release().catch((err) => log.warn({ err }, "failed to release toolset lock"));
19
+ await release().catch((err) => log.warn({ err }, "failed to release lock"));
18
20
  }
19
21
  }
22
+ export function withToolsetLock(task) {
23
+ return withLock(TOOLSET_LOCK_FILE, task);
24
+ }
25
+ // `signtool sign /f <pfx>` imports the PFX via PFXImportCertStore, which mutates the per-user
26
+ // CryptoAPI/CNG key+cert storage — a process-global resource that is not safe for concurrent access.
27
+ // winPackager already serializes signing within a single packager (signingQueue), but parallel builds
28
+ // (e.g. the test harness running multiple packagers across vitest workers that share one Windows user
29
+ // profile) race on that shared store and intermittently fail, after cert selection, with
30
+ // "SignTool Error: An error occurred while attempting to load the signing certificate". A dedicated
31
+ // cross-process lock (separate from the toolset lock so it does not block MSI/Squirrel builds)
32
+ // serializes signtool invocations. No-op overhead for real single builds, which are already serial.
33
+ export function withSigntoolLock(task) {
34
+ return withLock(SIGNTOOL_LOCK_FILE, task);
35
+ }
36
+ // The icons toolset CLI (icon-tool.js) converts via a WebAssembly-backed image pipeline, and each
37
+ // invocation reserves a large `WebAssembly.Memory`. A single build converting one icon is fine, but
38
+ // parallel builds — most acutely the test harness running many packagers across forked vitest workers
39
+ // on one machine — spawn enough concurrent icon-tool processes to exhaust memory, failing with
40
+ // "WebAssembly.Memory(): could not allocate memory". A cross-process lock (separate from the toolset
41
+ // lock so it does not serialize against MSI/Squirrel/DMG builds) caps icon conversion at one at a
42
+ // time. No-op overhead for real single builds, which are already serial.
43
+ export function withIconsLock(task) {
44
+ return withLock(ICONS_LOCK_FILE, task);
45
+ }
20
46
  //# sourceMappingURL=toolsetLock.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"toolsetLock.js","sourceRoot":"","sources":["../../src/util/toolsetLock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAE5B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,gCAAgC,CAAC,CAAA;AAE1E,MAAM,CAAC,KAAK,UAAU,eAAe,CAAI,IAAsB;IAC7D,MAAM,SAAS,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAA;IAC7C,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE;QAC7C,OAAO,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;QAC7D,KAAK,EAAE,OAAO;KACf,CAAC,CAAA;IACF,IAAI,CAAC;QACH,OAAO,MAAM,IAAI,EAAE,CAAA;IACrB,CAAC;YAAS,CAAC;QACT,MAAM,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,gCAAgC,CAAC,CAAC,CAAA;IAC5F,CAAC;AACH,CAAC","sourcesContent":["import { log } from \"builder-util\"\nimport { writeFile } from \"fs/promises\"\nimport * as lockfile from \"proper-lockfile\"\nimport * as os from \"os\"\nimport * as path from \"path\"\n\nconst LOCK_FILE = path.join(os.tmpdir(), \".electron-builder-toolset.lock\")\n\nexport async function withToolsetLock<T>(task: () => Promise<T>): Promise<T> {\n await writeFile(LOCK_FILE, \"\", { flag: \"a\" })\n const release = await lockfile.lock(LOCK_FILE, {\n retries: { retries: 100, minTimeout: 1000, maxTimeout: 5000 },\n stale: 120_000,\n })\n try {\n return await task()\n } finally {\n await release().catch((err: Error) => log.warn({ err }, \"failed to release toolset lock\"))\n }\n}\n"]}
1
+ {"version":3,"file":"toolsetLock.js","sourceRoot":"","sources":["../../src/util/toolsetLock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAE5B,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,gCAAgC,CAAC,CAAA;AAClF,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,iCAAiC,CAAC,CAAA;AACpF,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,8BAA8B,CAAC,CAAA;AAE9E,KAAK,UAAU,QAAQ,CAAI,QAAgB,EAAE,IAAsB;IACjE,MAAM,SAAS,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAA;IAC5C,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE;QAC5C,OAAO,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;QAC7D,KAAK,EAAE,OAAO;KACf,CAAC,CAAA;IACF,IAAI,CAAC;QACH,OAAO,MAAM,IAAI,EAAE,CAAA;IACrB,CAAC;YAAS,CAAC;QACT,MAAM,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,wBAAwB,CAAC,CAAC,CAAA;IACpF,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAI,IAAsB;IACvD,OAAO,QAAQ,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAA;AAC1C,CAAC;AAED,8FAA8F;AAC9F,qGAAqG;AACrG,sGAAsG;AACtG,sGAAsG;AACtG,yFAAyF;AACzF,oGAAoG;AACpG,+FAA+F;AAC/F,oGAAoG;AACpG,MAAM,UAAU,gBAAgB,CAAI,IAAsB;IACxD,OAAO,QAAQ,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAA;AAC3C,CAAC;AAED,kGAAkG;AAClG,oGAAoG;AACpG,sGAAsG;AACtG,+FAA+F;AAC/F,qGAAqG;AACrG,kGAAkG;AAClG,yEAAyE;AACzE,MAAM,UAAU,aAAa,CAAI,IAAsB;IACrD,OAAO,QAAQ,CAAC,eAAe,EAAE,IAAI,CAAC,CAAA;AACxC,CAAC","sourcesContent":["import { log } from \"builder-util\"\nimport { writeFile } from \"fs/promises\"\nimport * as lockfile from \"proper-lockfile\"\nimport * as os from \"os\"\nimport * as path from \"path\"\n\nconst TOOLSET_LOCK_FILE = path.join(os.tmpdir(), \".electron-builder-toolset.lock\")\nconst SIGNTOOL_LOCK_FILE = path.join(os.tmpdir(), \".electron-builder-signtool.lock\")\nconst ICONS_LOCK_FILE = path.join(os.tmpdir(), \".electron-builder-icons.lock\")\n\nasync function withLock<T>(lockFile: string, task: () => Promise<T>): Promise<T> {\n await writeFile(lockFile, \"\", { flag: \"a\" })\n const release = await lockfile.lock(lockFile, {\n retries: { retries: 100, minTimeout: 1000, maxTimeout: 5000 },\n stale: 120_000,\n })\n try {\n return await task()\n } finally {\n await release().catch((err: Error) => log.warn({ err }, \"failed to release lock\"))\n }\n}\n\nexport function withToolsetLock<T>(task: () => Promise<T>): Promise<T> {\n return withLock(TOOLSET_LOCK_FILE, task)\n}\n\n// `signtool sign /f <pfx>` imports the PFX via PFXImportCertStore, which mutates the per-user\n// CryptoAPI/CNG key+cert storage — a process-global resource that is not safe for concurrent access.\n// winPackager already serializes signing within a single packager (signingQueue), but parallel builds\n// (e.g. the test harness running multiple packagers across vitest workers that share one Windows user\n// profile) race on that shared store and intermittently fail, after cert selection, with\n// \"SignTool Error: An error occurred while attempting to load the signing certificate\". A dedicated\n// cross-process lock (separate from the toolset lock so it does not block MSI/Squirrel builds)\n// serializes signtool invocations. No-op overhead for real single builds, which are already serial.\nexport function withSigntoolLock<T>(task: () => Promise<T>): Promise<T> {\n return withLock(SIGNTOOL_LOCK_FILE, task)\n}\n\n// The icons toolset CLI (icon-tool.js) converts via a WebAssembly-backed image pipeline, and each\n// invocation reserves a large `WebAssembly.Memory`. A single build converting one icon is fine, but\n// parallel builds — most acutely the test harness running many packagers across forked vitest workers\n// on one machine — spawn enough concurrent icon-tool processes to exhaust memory, failing with\n// \"WebAssembly.Memory(): could not allocate memory\". A cross-process lock (separate from the toolset\n// lock so it does not serialize against MSI/Squirrel/DMG builds) caps icon conversion at one at a\n// time. No-op overhead for real single builds, which are already serial.\nexport function withIconsLock<T>(task: () => Promise<T>): Promise<T> {\n return withLock(ICONS_LOCK_FILE, task)\n}\n"]}
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const PACKAGE_VERSION = "27.0.0-alpha.3";
1
+ export declare const PACKAGE_VERSION = "27.0.0-alpha.5";
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.3";
1
+ export const PACKAGE_VERSION = "27.0.0-alpha.5";
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.3\"\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.5\"\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.3",
4
+ "version": "27.0.0-alpha.5",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "exports": {
@@ -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.3",
102
- "electron-publish": "27.0.0-alpha.3",
103
- "builder-util-runtime": "10.0.0-alpha.2"
101
+ "builder-util": "27.0.0-alpha.5",
102
+ "builder-util-runtime": "10.0.0-alpha.4",
103
+ "electron-publish": "27.0.0-alpha.5"
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.3",
119
- "electron-builder-squirrel-windows": "27.0.0-alpha.3"
118
+ "dmg-builder": "27.0.0-alpha.5",
119
+ "electron-builder-squirrel-windows": "27.0.0-alpha.5"
120
120
  },
121
121
  "peerDependencies": {
122
- "dmg-builder": "27.0.0-alpha.3",
123
- "electron-builder-squirrel-windows": "27.0.0-alpha.3"
122
+ "dmg-builder": "27.0.0-alpha.5",
123
+ "electron-builder-squirrel-windows": "27.0.0-alpha.5"
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",