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
package/scheme.json CHANGED
@@ -2173,14 +2173,6 @@
2173
2173
  "description": "Whether to infer update channel from application version pre-release components. e.g. if version `0.12.1-alpha.1`, channel will be set to `alpha`. Otherwise to `latest`.\nThis does *not* apply to github publishing, which will [never auto-detect the update channel](https://github.com/electron-userland/electron-builder/issues/8589).",
2174
2174
  "type": "boolean"
2175
2175
  },
2176
- "disableDefaultIgnoredFiles": {
2177
- "default": false,
2178
- "description": "Whether to exclude all default ignored files(https://www.electron.build/contents#files) and options. Defaults to `false`.",
2179
- "type": [
2180
- "null",
2181
- "boolean"
2182
- ]
2183
- },
2184
2176
  "electronLanguages": {
2185
2177
  "anyOf": [
2186
2178
  {
@@ -2421,11 +2413,6 @@
2421
2413
  "$ref": "#/definitions/ReleaseInfo",
2422
2414
  "description": "The release info. Intended for command line usage:\n\n```\n-c.releaseInfo.releaseNotes=\"new features\"\n```"
2423
2415
  },
2424
- "syncDesktopName": {
2425
- "default": false,
2426
- "description": "When `true`, the installed `.desktop` filename is derived from `desktopName` in `package.json`\n(minus the `.desktop` suffix) so that it matches `StartupWMClass` and Electron's `app_id`.\nFalls back to `executableName` when `desktopName` is absent.",
2427
- "type": "boolean"
2428
- },
2429
2416
  "synopsis": {
2430
2417
  "description": "The [short description](https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Description).",
2431
2418
  "type": [
@@ -2824,14 +2811,6 @@
2824
2811
  "description": "Whether to infer update channel from application version pre-release components. e.g. if version `0.12.1-alpha.1`, channel will be set to `alpha`. Otherwise to `latest`.\nThis does *not* apply to github publishing, which will [never auto-detect the update channel](https://github.com/electron-userland/electron-builder/issues/8589).",
2825
2812
  "type": "boolean"
2826
2813
  },
2827
- "disableDefaultIgnoredFiles": {
2828
- "default": false,
2829
- "description": "Whether to exclude all default ignored files(https://www.electron.build/contents#files) and options. Defaults to `false`.",
2830
- "type": [
2831
- "null",
2832
- "boolean"
2833
- ]
2834
- },
2835
2814
  "electronLanguages": {
2836
2815
  "anyOf": [
2837
2816
  {
@@ -3310,14 +3289,6 @@
3310
3289
  "description": "Whether to infer update channel from application version pre-release components. e.g. if version `0.12.1-alpha.1`, channel will be set to `alpha`. Otherwise to `latest`.\nThis does *not* apply to github publishing, which will [never auto-detect the update channel](https://github.com/electron-userland/electron-builder/issues/8589).",
3311
3290
  "type": "boolean"
3312
3291
  },
3313
- "disableDefaultIgnoredFiles": {
3314
- "default": false,
3315
- "description": "Whether to exclude all default ignored files(https://www.electron.build/contents#files) and options. Defaults to `false`.",
3316
- "type": [
3317
- "null",
3318
- "boolean"
3319
- ]
3320
- },
3321
3292
  "electronLanguages": {
3322
3293
  "anyOf": [
3323
3294
  {
@@ -5910,8 +5881,18 @@
5910
5881
  "type": "boolean"
5911
5882
  },
5912
5883
  "buildFor": {
5913
- "description": "Target architecture for the remote build. Accepts a single snapcraft arch string\n(e.g. `\"amd64\"`, `\"arm64\"`, `\"armhf\"`).\n\nTo build for multiple architectures, configure electron-builder's top-level `arch` option\n(e.g. `arch: [\"x64\", \"arm64\"]`) — each arch spawns a separate remote-build job on Launchpad,\nkeeping the one-build-per-artifact contract intact.",
5914
- "type": "string"
5884
+ "anyOf": [
5885
+ {
5886
+ "items": {
5887
+ "type": "string"
5888
+ },
5889
+ "type": "array"
5890
+ },
5891
+ {
5892
+ "type": "string"
5893
+ }
5894
+ ],
5895
+ "description": "Target architecture (or architectures) for the remote build.\n\n- **Single string** (e.g. `\"amd64\"`): one Launchpad job, one output snap.\n- **Array** (e.g. `[\"amd64\", \"arm64\"]`): one Launchpad job that builds all listed\n architectures and downloads each resulting snap. All produced snaps are emitted as\n separate build artifacts.\n\nUsing an array here is mutually exclusive with setting `arch: [\"x64\", \"arm64\"]` at the\nelectron-builder top level — the top-level `arch` option spawns a separate remote-build\njob per architecture, which would duplicate work."
5915
5896
  },
5916
5897
  "enabled": {
5917
5898
  "description": "Whether to enable remote build on Launchpad. Must be set explicitly to `true` to opt in.",
@@ -6317,7 +6298,7 @@
6317
6298
  },
6318
6299
  "SnapOptions24": {
6319
6300
  "additionalProperties": false,
6320
- "description": "**[Beta]** Options for building a core24 snap. This interface does not extend the legacy\n`SnapBaseOptions` — it uses the snapcraft CLI directly.\n\nFields inherited from {@link CommonLinuxOptions} (`description`, `category`, `mimeTypes`,\n`executableArgs`, `desktop`, `synopsis`) are automatically populated from the root `linux.*`\nconfiguration. You do not need to duplicate them here; values set directly on this interface\ntake precedence over the cascaded `linux.*` values.",
6301
+ "description": "Options for building a core24 snap. This interface does not extend the legacy\n`SnapBaseOptions` — it uses the snapcraft CLI directly.\n\nFields inherited from {@link CommonLinuxOptions} (`description`, `category`, `mimeTypes`,\n`executableArgs`, `desktop`, `synopsis`) are automatically populated from the root `linux.*`\nconfiguration. You do not need to duplicate them here; values set directly on this interface\ntake precedence over the cascaded `linux.*` values.",
6321
6302
  "properties": {
6322
6303
  "after": {
6323
6304
  "anyOf": [
@@ -7213,7 +7194,7 @@
7213
7194
  "type": "null"
7214
7195
  }
7215
7196
  ],
7216
- "description": "**[Beta]** Options for building a core24 snap. Uses the snapcraft CLI directly.\nInherits desktop-entry fields from `CommonLinuxOptions` and publish config from `TargetSpecificOptions`."
7197
+ "description": "Options for building a core24 snap. Uses the snapcraft CLI directly.\nInherits desktop-entry fields from `CommonLinuxOptions` and publish config from `TargetSpecificOptions`."
7217
7198
  },
7218
7199
  "cscLink": {
7219
7200
  "description": "Snapcraft Store credentials — base64-encoded credentials string or file path.\nAccepts the same formats as `WIN_CSC_LINK` / `CSC_LINK`: base64 data,\nabsolute/relative/`~/` file paths, and `file://` URIs.\nRelative paths are resolved against the build resources directory.\n\nInjected as `SNAPCRAFT_STORE_CREDENTIALS` into every snapcraft subprocess\n(core18/core20/core22/core24 builds and `snapcraft upload`).\nNot applied for `base: \"custom\"` — inject credentials manually via environment variables.\n\nThe `SNAP_CSC_LINK` environment variable is the CI-friendly alternative.\nGenerate with: `snapcraft export-login - | base64 -w0`",
@@ -7228,7 +7209,7 @@
7228
7209
  "type": "null"
7229
7210
  }
7230
7211
  ],
7231
- "description": "**[Beta]** Pass-through custom snap configuration. electron-builder will read the\nsnapcraft.yaml at `yamlPath` and use it verbatim — no plugs, extensions,\norganize mappings, or desktop files are injected."
7212
+ "description": "Pass-through custom snap configuration. electron-builder will read the\nsnapcraft.yaml at `yamlPath` and use it verbatim — no plugs, extensions,\norganize mappings, or desktop files are injected."
7232
7213
  },
7233
7214
  "publish": {
7234
7215
  "anyOf": [
@@ -7762,7 +7743,7 @@
7762
7743
  },
7763
7744
  "ToolsetConfig": {
7764
7745
  "additionalProperties": false,
7765
- "description": "Version pins and custom bundle overrides for the binary toolsets that electron-builder\ndownloads and caches locally.\n\nEach toolset is a versioned archive hosted at\n[electron-userland/electron-builder-binaries](https://github.com/electron-userland/electron-builder-binaries/releases).\nOmitting a property (or setting it to `null`) selects the modern default for that toolset.\nSetting a property to `\"0.0.0\"` forces the legacy bundle — useful only for diagnosing\nregressions introduced by newer toolset bundles.\n\nTo supply your own bundle, set the property to a {@link ToolsetCustom} object with a `url`\n(https:// or file://) and a `checksum` for verification. The bundle must mirror the expected\ndirectory layout of the corresponding built-in bundle; see the build scripts at\nhttps://github.com/electron-userland/electron-builder-binaries/tree/master/packages.",
7746
+ "description": "Version pins and custom bundle overrides for the binary toolsets that electron-builder downloads and caches locally.\n\nEach toolset is a versioned archive hosted at [electron-userland/electron-builder-binaries](https://github.com/electron-userland/electron-builder-binaries/releases).\nOmitting a property (or setting it to `latest`) selects the modern default for that toolset.\n\nTo supply your own bundle, set the property to a {@link ToolsetCustom} object with a `url` (https:// or file://) and a `checksum` for verification. The bundle must mirror the expected directory layout of the corresponding built-in bundle; see the build scripts at\nhttps://github.com/electron-userland/electron-builder-binaries/tree/master/packages.",
7766
7747
  "properties": {
7767
7748
  "appimage": {
7768
7749
  "anyOf": [
@@ -7772,17 +7753,15 @@
7772
7753
  {
7773
7754
  "enum": [
7774
7755
  "0.0.0",
7775
- "1.0.2",
7776
- "1.0.3"
7756
+ "1.0.3",
7757
+ "1.1.0",
7758
+ "latest"
7777
7759
  ],
7778
7760
  "type": "string"
7779
- },
7780
- {
7781
- "type": "null"
7782
7761
  }
7783
7762
  ],
7784
- "default": "1.0.3",
7785
- "description": "Version of the AppImage toolset bundle used for building `.AppImage` files.\n\nThe bundle ships:\n- **`mksquashfs`** — creates the SquashFS filesystem embedded in the AppImage.\n- **`desktop-file-validate`** — validates the generated `.desktop` entry.\n- **AppImage runtime** — the self-executing stub that mounts the SquashFS at launch.\n\nAvailable versions:\n| Version | Runtime date | Notes |\n|---------|-------------|-------|\n| `\"0.0.0\"` | Legacy | FUSE2-based AppImage runtime (pre-v27 default) |\n| `\"1.0.2\"` | 20251108 | Static-runtime (FUSE3-compatible) |\n| `\"1.0.3\"` | 20251108 | Static-runtime (FUSE3-compatible); recommended (default) |\n\nReleases: https://github.com/electron-userland/electron-builder-binaries/blob/master/packages/appimage/CHANGELOG.md"
7763
+ "default": "latest",
7764
+ "description": "Version of the AppImage toolset bundle used for building `.AppImage` files.\n\nThe bundle ships:\n- **`mksquashfs`** — creates the SquashFS filesystem embedded in the AppImage.\n- **`desktop-file-validate`** — validates the generated `.desktop` entry.\n- **AppImage runtime** — the self-executing stub that mounts the SquashFS at launch.\n\nAvailable versions:\n| Version | Runtime date | Notes |\n|---------|-------------|-------|\n| `\"0.0.0\"` | Legacy | FUSE2-based AppImage runtime (pre-v27) |\n| `\"1.0.3\"` | 20251108 | Introduces static AppImage runtime |\n| `\"1.1.0\"` | 20251108 | Adds `unsquashfs` support |\n\nReleases: https://github.com/electron-userland/electron-builder-binaries/blob/master/packages/appimage/CHANGELOG.md"
7786
7765
  },
7787
7766
  "fpm": {
7788
7767
  "anyOf": [
@@ -7790,14 +7769,14 @@
7790
7769
  "$ref": "#/definitions/ToolsetCustom"
7791
7770
  },
7792
7771
  {
7793
- "const": "2.2.1",
7772
+ "enum": [
7773
+ "2.2.1",
7774
+ "latest"
7775
+ ],
7794
7776
  "type": "string"
7795
- },
7796
- {
7797
- "type": "null"
7798
7777
  }
7799
7778
  ],
7800
- "default": "2.2.1",
7779
+ "default": "latest",
7801
7780
  "description": "Version of the FPM bundle used to build Linux packages (`.deb`, `.rpm`, `.pacman`, etc.)\non macOS and Linux hosts.\n\nAvailable versions:\n| Version | FPM version | Notes |\n|---------|------------|-------|\n| `\"2.2.1\"` | 1.17.0 (Ruby 3.4.3) | Current default |\n\nReleases: https://github.com/electron-userland/electron-builder-binaries/blob/master/packages/fpm/CHANGELOG.md"
7802
7781
  },
7803
7782
  "icons": {
@@ -7806,15 +7785,15 @@
7806
7785
  "$ref": "#/definitions/ToolsetCustom"
7807
7786
  },
7808
7787
  {
7809
- "const": "1.1.0",
7788
+ "enum": [
7789
+ "1.2.1",
7790
+ "latest"
7791
+ ],
7810
7792
  "type": "string"
7811
- },
7812
- {
7813
- "type": "null"
7814
7793
  }
7815
7794
  ],
7816
- "default": "1.1.0",
7817
- "description": "Version of the icons-conversion bundle used to convert source images to `.icns`, `.ico`,\nand PNG icon sets.\n\nSet to a {@link ToolsetCustom} object to supply your own icons bundle directory.\n\nAvailable versions:\n| Version | Notes |\n|---------|-------|\n| `\"1.1.0\"` | Current default |\n\nReleases: https://github.com/electron-userland/electron-builder-binaries/blob/master/packages/icons/CHANGELOG.md"
7795
+ "default": "latest",
7796
+ "description": "Version of the icons-conversion bundle used to convert source images to `.icns`, `.ico`,\nand PNG icon sets.\n\nSet to a {@link ToolsetCustom} object to supply your own icons bundle directory.\n\nAvailable versions:\n| Version | Notes |\n|---------|-------|\n| `\"1.2.1\"` | `wasm-vips` + `@resvg/resvg-wasm` |\n\nReleases: https://github.com/electron-userland/electron-builder-binaries/blob/master/packages/icons/CHANGELOG.md"
7818
7797
  },
7819
7798
  "linuxToolsMac": {
7820
7799
  "anyOf": [
@@ -7822,15 +7801,15 @@
7822
7801
  "$ref": "#/definitions/ToolsetCustom"
7823
7802
  },
7824
7803
  {
7825
- "const": "1.0.0",
7804
+ "enum": [
7805
+ "1.0.0",
7806
+ "latest"
7807
+ ],
7826
7808
  "type": "string"
7827
- },
7828
- {
7829
- "type": "null"
7830
7809
  }
7831
7810
  ],
7832
- "default": "1.0.0",
7833
- "description": "Version of the Linux-tools-mac bundle used to produce `.tar.lz` archives and build\nLinux targets on macOS hosts.\n\nThe bundle ships macOS-native builds of `ar`, `lzip`, and `gtar` (GNU tar).\n\nAvailable versions:\n| Version | Notes |\n|---------|-------|\n| `\"1.0.0\"` | Current default |\n\nReleases: https://github.com/electron-userland/electron-builder-binaries/blob/master/packages/linux-tools-mac/CHANGELOG.md"
7811
+ "default": "latest",
7812
+ "description": "Version of the Linux-tools-mac bundle used to produce `.tar.lz` archives and build\nLinux targets on macOS hosts.\n\nThe bundle ships macOS-native builds of `ar`, `lzip`, and `gtar` (GNU tar).\n\nAvailable versions:\n| Version | Notes |\n|---------|-------|\n| `\"1.0.0\"` | gnu-tar, lzip, makedepend, glib, libgsf, libtool, pcre, gettext, binutils |\n\nReleases: https://github.com/electron-userland/electron-builder-binaries/blob/master/packages/linux-tools-mac/CHANGELOG.md"
7834
7813
  },
7835
7814
  "nsis": {
7836
7815
  "anyOf": [
@@ -7840,16 +7819,14 @@
7840
7819
  {
7841
7820
  "enum": [
7842
7821
  "0.0.0",
7843
- "1.2.1"
7822
+ "1.2.1",
7823
+ "latest"
7844
7824
  ],
7845
7825
  "type": "string"
7846
- },
7847
- {
7848
- "type": "null"
7849
7826
  }
7850
7827
  ],
7851
- "default": "1.2.1",
7852
- "description": "Version of the NSIS toolset bundle used to compile Windows installers.\n\nThe bundle ships:\n- **`makensis`** — the NSIS compiler invoked to build `.nsi` scripts into `.exe` installers.\n- **NSIS plugins** — the plugin DLLs (`NsisMultiUser`, `UAC`, `StdUtils`, etc.) referenced by\n electron-builder's default installer scripts.\n- **`elevate.exe`** — UAC elevation helper included in NSIS installers.\n\nAvailable versions:\n| Version | `makensis` version | Notes |\n|---------|------------------|-------|\n| `\"0.0.0\"` | 3.0.4.1 | Legacy split bundle — `nsis` + `nsis-resources` archives (pre-v27 default) |\n| `\"1.2.1\"` | 3.12 | Unified bundle — single archive, entrypoint scripts auto-set `NSISDIR` (default) |\n\nReleases: https://github.com/electron-userland/electron-builder-binaries/blob/master/packages/nsis/CHANGELOG.md"
7828
+ "default": "latest",
7829
+ "description": "Version of the NSIS toolset bundle used to compile Windows installers.\n\nThe bundle ships:\n- **`makensis`** — the NSIS compiler invoked to build `.nsi` scripts into `.exe` installers.\n- **NSIS plugins** — the plugin DLLs (`NsisMultiUser`, `UAC`, `StdUtils`, etc.) referenced by\n electron-builder's default installer scripts.\n- **`elevate.exe`** — UAC elevation helper included in NSIS installers.\n\nAvailable versions:\n| Version | `makensis` version | Notes |\n|---------|------------------|-------|\n| `\"0.0.0\"` | 3.0.4.1 | Legacy split bundle — `nsis` + `nsis-resources` archives (pre-v27) |\n| `\"1.2.1\"` | 3.12 | Unified bundle — single archive, entrypoint scripts auto-set `NSISDIR` |\n\nReleases: https://github.com/electron-userland/electron-builder-binaries/blob/master/packages/nsis/CHANGELOG.md"
7853
7830
  },
7854
7831
  "sevenZip": {
7855
7832
  "anyOf": [
@@ -7857,14 +7834,14 @@
7857
7834
  "$ref": "#/definitions/ToolsetCustom"
7858
7835
  },
7859
7836
  {
7860
- "const": "1.0.0",
7837
+ "enum": [
7838
+ "1.0.0",
7839
+ "latest"
7840
+ ],
7861
7841
  "type": "string"
7862
- },
7863
- {
7864
- "type": "null"
7865
7842
  }
7866
7843
  ],
7867
- "default": "1.0.0",
7844
+ "default": "latest",
7868
7845
  "description": "Version of the 7-Zip binary bundle used internally to extract `.7z` and `.tar.xz` archives.\n\nSet to a {@link ToolsetCustom} object to supply your own 7za binary.\nThe `url` must point to a directory (or a `.tar.gz`/`.zip` archive of one) that contains\n`bin/7za` (macOS/Linux) or `bin/7za.exe` (Windows).\n\n**Bootstrap constraint:** the custom bundle itself must be a `.tar.gz` or `.zip` archive\n(or a bare `file://` directory). `.7z` and `.tar.xz` archives cannot be used here because\nextracting them requires 7za — a circular dependency."
7869
7846
  },
7870
7847
  "winCodeSign": {
@@ -7879,16 +7856,14 @@
7879
7856
  "1.1.0",
7880
7857
  "1.1.1",
7881
7858
  "1.2.1",
7882
- "1.3.0"
7859
+ "1.3.0",
7860
+ "latest"
7883
7861
  ],
7884
7862
  "type": "string"
7885
- },
7886
- {
7887
- "type": "null"
7888
7863
  }
7889
7864
  ],
7890
- "default": "1.1.0",
7891
- "description": "Version of the `win-codesign` bundle used for Windows code signing and resource editing.\n\nThe bundle ships:\n- **`signtool.exe`** (Windows) / **`osslsigncode`** (macOS & Linux) — used to sign `.exe`,\n `.dll`, and `.msix` artifacts.\n- **`rcedit`** — used to embed version metadata and icons into `.exe` files.\n- **Windows Kits** (`10.0.26100.0`) — used by AppX/MSIX packaging (`makeappx`, `signtool`).\n\nAvailable versions:\n| Version | Contents |\n|---------|----------|\n| `\"0.0.0\"` | Legacy bundle — `winCodeSign-2.6.0` (pre-v27 default) |\n| `\"1.0.0\"` | Modern bundle — Windows Kits 10.0.26100.0, `win-codesign` v1.0.0 |\n| `\"1.1.0\"` | Modern bundle — Windows Kits 10.0.26100.0, `win-codesign` v1.1.0 |\n| `\"1.1.1\"` | Modern bundle — Windows Kits 10.0.26100.0, `win-codesign` v1.1.1 |\n| `\"1.2.1\"` | Modern bundle — Windows Kits 10.0.26100.0, `win-codesign` v1.2.1 |\n| `\"1.3.0\"` | Modern bundle — Windows Kits 10.0.26100.0, `win-codesign` v1.3.0 + separate ATS dlib bundle + .NET 8 runtime (required for Azure Trusted Signing `signtool /dlib`) |\n\nReleases: https://github.com/electron-userland/electron-builder-binaries/blob/master/packages/win-codesign/CHANGELOG.md"
7865
+ "default": "latest",
7866
+ "description": "Version of the `win-codesign` bundle used for Windows code signing and resource editing.\n\nThe bundle ships:\n- **`signtool.exe`** (Windows) / **`osslsigncode`** (macOS & Linux) — used to sign `.exe`,\n `.dll`, and `.msix` artifacts.\n- **`rcedit`** — embeds version metadata and icons into `.exe` files (legacy usage, migrated to npm `resedit` package).\n- **Windows Kits** — used by AppX/MSIX packaging (`makeappx`, `signtool`).\n\nAvailable versions:\n| Version | Notes |\n|---------|-------|\n| `\"0.0.0\"` | Legacy bundle — `winCodeSign-2.6.0` (pre-v27) |\n| `\"1.0.0\"` | Windows Kits 10.0.26100.0, `osslsigncode` v2.9 |\n| `\"1.1.1\"` | Updates `osslsigncode` to v2.11 |\n| `\"1.2.1\"` | Adds native `osslsigncode` arm64 |\n| `\"1.3.0\"` | Includes support for Azure Trusted Signing `signtool` via dlib and .NET 8 runtime |\n\nReleases: https://github.com/electron-userland/electron-builder-binaries/blob/master/packages/win-codesign/CHANGELOG.md"
7892
7867
  },
7893
7868
  "wine": {
7894
7869
  "anyOf": [
@@ -7898,16 +7873,14 @@
7898
7873
  {
7899
7874
  "enum": [
7900
7875
  "0.0.0",
7901
- "1.0.1"
7876
+ "1.0.1",
7877
+ "latest"
7902
7878
  ],
7903
7879
  "type": "string"
7904
- },
7905
- {
7906
- "type": "null"
7907
7880
  }
7908
7881
  ],
7909
- "default": "0.0.0",
7910
- "description": "Version of the Wine bundle used to run Windows tools (NSIS, rcedit, signtool) on\nnon-Windows hosts (macOS and Linux).\n\nWine is only required when building Windows targets on a non-Windows machine. On Windows,\nthis setting has no effect.\n\nAvailable versions:\n| Version | Wine version | Platform support | Notes |\n|---------|-------------|-----------------|-------|\n| `\"0.0.0\"` | 4.0.1 | macOS | Legacy portable bundle (default) |\n| `\"1.0.1\"` | 11.0 | macOS | Supports arm64 macOS via Rosetta |\n\nTo use a custom Wine binary, use a `ToolsetCustom` object.\n\nReleases: https://github.com/electron-userland/electron-builder-binaries/blob/master/packages/wine/CHANGELOG.md"
7882
+ "default": "latest",
7883
+ "description": "Version of the Wine bundle used to run Windows tools (NSIS, rcedit, signtool) on\nnon-Windows hosts (macOS and Linux).\n\nWine is only required when building Windows targets on a non-Windows machine. On Windows,\nthis setting has no effect.\n\nAvailable versions:\n| Version | Wine version | Platform support | Notes |\n|---------|-------------|-----------------|-------|\n| `\"0.0.0\"` | 4.0.1 | macOS | Legacy portable bundle (pre-v27) |\n| `\"1.0.1\"` | 11.0 | macOS | Supports arm64 macOS via Rosetta |\n\nTo use a custom Wine binary, use a `ToolsetCustom` object.\n\nReleases: https://github.com/electron-userland/electron-builder-binaries/blob/master/packages/wine/CHANGELOG.md"
7911
7884
  }
7912
7885
  },
7913
7886
  "type": "object"
@@ -7936,17 +7909,18 @@
7936
7909
  },
7937
7910
  "WindowsAzureSigningConfig": {
7938
7911
  "additionalProperties": false,
7912
+ "description": "The `signtool /dlib` Azure Trusted Signing integration was introduced in `toolsets.winCodeSign: 1.3.0`.\nThe legacy PowerShell integration is deprecated, but leverages the same underlying Azure APIs, so both interfaces share the same config shape.",
7939
7913
  "properties": {
7940
7914
  "additionalMetadata": {
7941
7915
  "$ref": "#/definitions/Record<string,string>",
7942
7916
  "description": "Additional fields to include verbatim in the `metadata.json` file passed to\n`Azure.CodeSigning.Dlib.dll` via `signtool /dmdf`. Use this for DLib-specific options\nnot covered by the typed fields above (e.g. `ExcludeCredentials`, `CorrelationId`)."
7943
7917
  },
7944
7918
  "certificateProfileName": {
7945
- "description": "The Certificate Profile name. Translates to field: CertificateProfileName.",
7919
+ "description": "The name of the Trusted Signing Certificate Profile to sign with, as created in your Azure\nCode Signing Account. Maps to the DLib metadata field `CertificateProfileName`.",
7946
7920
  "type": "string"
7947
7921
  },
7948
7922
  "codeSigningAccountName": {
7949
- "description": "The Code Signing Account name. Translates to field: CodeSigningAccountName.",
7923
+ "description": "The name of the Azure Trusted Signing (Code Signing) Account that owns the certificate profile.\nMaps to the DLib metadata field `CodeSigningAccountName`.",
7950
7924
  "type": "string"
7951
7925
  },
7952
7926
  "endpoint": {
@@ -7955,11 +7929,11 @@
7955
7929
  },
7956
7930
  "fileDigest": {
7957
7931
  "default": "SHA256",
7958
- "description": "The file digest algorithm. Translates to field: FileDigest.",
7932
+ "description": "The digest algorithm used to hash the files being signed. Maps to the DLib metadata field\n`FileDigest`.",
7959
7933
  "type": "string"
7960
7934
  },
7961
7935
  "publisherName": {
7962
- "description": "[The publisher name](https://github.com/electron-userland/electron-builder/issues/1187#issuecomment-278972073), exactly as in your code signed certificate. Several names can be provided.",
7936
+ "description": "The publisher name to associate with the signature, exactly as it appears in the certificate\nissued by your Trusted Signing certificate profile. Required. Used for\n[update verification](#verifyUpdateCodeSignature) (embedded in `app-update.yml` and checked by\nelectron-updater) and must match the certificate subject.",
7963
7937
  "type": "string"
7964
7938
  },
7965
7939
  "timestampDigest": {
@@ -7974,6 +7948,7 @@
7974
7948
  },
7975
7949
  "type": {
7976
7950
  "const": "azure",
7951
+ "description": "Discriminator selecting Azure Trusted Signing (cloud signing — no local certificate).",
7977
7952
  "type": "string"
7978
7953
  }
7979
7954
  },
@@ -8057,14 +8032,6 @@
8057
8032
  "description": "Whether to infer update channel from application version pre-release components. e.g. if version `0.12.1-alpha.1`, channel will be set to `alpha`. Otherwise to `latest`.\nThis does *not* apply to github publishing, which will [never auto-detect the update channel](https://github.com/electron-userland/electron-builder/issues/8589).",
8058
8033
  "type": "boolean"
8059
8034
  },
8060
- "disableDefaultIgnoredFiles": {
8061
- "default": false,
8062
- "description": "Whether to exclude all default ignored files(https://www.electron.build/contents#files) and options. Defaults to `false`.",
8063
- "type": [
8064
- "null",
8065
- "boolean"
8066
- ]
8067
- },
8068
8035
  "electronLanguages": {
8069
8036
  "anyOf": [
8070
8037
  {
@@ -8314,7 +8281,7 @@
8314
8281
  "type": "null"
8315
8282
  }
8316
8283
  ],
8317
- "description": "Code signing configuration. Set to `false` or `null` to disable Windows code signing\n(executable resources such as the icon and metadata are still edited). Leave unset to\nsign using credentials discovered from the environment (e.g. `WIN_CSC_LINK`). Otherwise\nprovide exactly one of the following signing modes:\n\n- `{ type: \"signtool\", ... }` — Sign with a local certificate file (.pfx/.p12) or a\n certificate from the Windows certificate store.\n- `{ type: \"hsm\", ... }` — Sign using a Hardware Security Module (HSM) or FIPS-compliant\n hardware token via signtool's `/csp` (cryptographic service provider) and `/kc` (key\n container) flags. Requires `toolsets.winCodeSign: \"1.x\"`. Windows-only.\n- `{ type: \"pkcs11\", ... }` — Sign using a PKCS#11 hardware token via osslsigncode.\n Available on macOS and Linux CI without a Windows VM.\n- `{ type: \"azure\", ... }` — Sign via Azure Trusted Signing (cloud service). Requires\n Azure Entra ID environment variables for authentication."
8284
+ "description": "Code signing configuration. Code signing stamps every installer and executable\nelectron-builder produces with an Authenticode signature, so that Windows (SmartScreen / UAC)\nand your auto-updater can verify the publisher and that the files were not tampered with.\n\nHow this option behaves:\n- Leave **unset** to sign using credentials discovered from the environment — primarily a\n certificate supplied via `WIN_CSC_LINK` (or `CSC_LINK`) with its password in\n `WIN_CSC_KEY_PASSWORD` (or `CSC_KEY_PASSWORD`). `WIN_CSC_LINK` accepts a file path, an\n `https://` URL, or a base64-encoded certificate. This is the recommended setup for CI.\n- Set to `false` or `null` to **disable** code signing entirely (executable resources such as\n the icon and metadata are still edited).\n- Set to an **object** to configure signing explicitly. The `type` field selects the signing\n backend (`signtool` is the implicit default) and dispatches to a dedicated sign manager;\n provide exactly one of the modes below. Each output artifact is signed individually, and by\n default executables are dual-signed (see `signingHashAlgorithms`).\n\n- `{ type: \"signtool\", ... }` — Sign with a local certificate file (.pfx/.p12) or a\n certificate from the Windows certificate store. Uses Microsoft `signtool.exe` on Windows and\n `osslsigncode` on macOS/Linux.\n- `{ type: \"hsm\", ... }` — Sign using a Hardware Security Module (HSM) or FIPS-compliant\n hardware token via signtool's `/csp` (cryptographic service provider) and `/kc` (key\n container) flags. Requires a modern `winCodeSign` toolset (the default — only the legacy\n `\"0.0.0\"` pin is unsupported). Windows-only.\n- `{ type: \"pkcs11\", ... }` — Sign using a PKCS#11 hardware token via osslsigncode.\n Available on macOS and Linux CI without a Windows VM.\n- `{ type: \"azure\", ... }` — Sign via Azure Trusted Signing (cloud service). Requires\n Azure Entra ID environment variables for authentication.\n\nSee [Code Signing](https://www.electron.build/code-signing)."
8318
8285
  },
8319
8286
  "signExts": {
8320
8287
  "anyOf": [
@@ -8329,7 +8296,7 @@
8329
8296
  }
8330
8297
  ],
8331
8298
  "default": null,
8332
- "description": "Explicit file name/extensions (`str.endsWith`) to also sign. Advanced option.\nSupports negative patterns, e.g. example that excludes `.appx` files: `[\"somefilename\", \".dll\", \"!.appx\"]`."
8299
+ "description": "Additional file name suffixes to code sign, beyond the default. By default electron-builder\nonly signs `.exe` files; list extra suffixes here to also sign e.g. `.dll`, `.node`, or\nspecific file names. Advanced option — most apps do not need it.\n\nEach entry is matched with `String.endsWith`, so both bare extensions (`\".dll\"`) and full file\nnames (`\"mybinary.dll\"`) work. Prefix a pattern with `!` to *exclude* a suffix that would\notherwise be signed. Positive patterns are evaluated first, then negative ones. For example,\n`[\"somefilename\", \".dll\", \"!.appx\"]` signs `.dll` files (and anything ending in `somefilename`)\nbut never signs `.appx` files."
8333
8300
  },
8334
8301
  "target": {
8335
8302
  "anyOf": [
@@ -8361,7 +8328,7 @@
8361
8328
  },
8362
8329
  "verifyUpdateCodeSignature": {
8363
8330
  "default": true,
8364
- "description": "Whether to verify the signature of an available update before installation.\nThe [publisher name](#publisherName) will be used for the signature verification.",
8331
+ "description": "Whether the NSIS auto-updater should verify the Authenticode signature of a downloaded update\nbefore installing it. This is a **runtime** check performed by your app via electron-updater,\nnot a build-time check.\n\nWhen enabled (the default), the resolved [publisher name](#publisherName) is embedded into\n`app-update.yml` at build time. At update time electron-updater inspects the certificate that\nsigned the downloaded installer and compares its subject (Distinguished Name / Common Name)\nagainst that publisher name, refusing to install on a mismatch. This prevents a tampered or\nmaliciously substituted update from being installed.\n\nSet to `false` to skip verification — in which case the publisher name is **not** embedded.\nDisable this only if your updates are not Authenticode-signed.",
8365
8332
  "type": "boolean"
8366
8333
  }
8367
8334
  },
@@ -8371,7 +8338,7 @@
8371
8338
  "additionalProperties": false,
8372
8339
  "properties": {
8373
8340
  "additionalCertificateFile": {
8374
- "description": "The path to an additional certificate file you want to add to the signature block.",
8341
+ "description": "Path to an additional certificate file (typically an intermediate / cross-signing CA\ncertificate) whose contents are added to the signature block via signtool's `/ac` flag. Use\nthis when the signing certificate's full chain is not already present on target machines and\nyou want it embedded in the signature so the chain can be validated.",
8375
8342
  "type": [
8376
8343
  "null",
8377
8344
  "string"
@@ -8385,21 +8352,21 @@
8385
8352
  ]
8386
8353
  },
8387
8354
  "certificateSha1": {
8388
- "description": "The SHA1 thumbprint of the certificate in the Windows certificate store.",
8355
+ "description": "Alternative to `certificateFile`: locate the public certificate in the Windows certificate\nstore by its SHA-1 thumbprint. The private key still comes from the HSM via\n`cryptoServiceProvider` / `keyContainer`; this only identifies which public certificate to sign\nwith.",
8389
8356
  "type": [
8390
8357
  "null",
8391
8358
  "string"
8392
8359
  ]
8393
8360
  },
8394
8361
  "certificateSubjectName": {
8395
- "description": "The subject name of the certificate in the Windows certificate store.",
8362
+ "description": "Alternative to `certificateFile`: locate the public certificate in the Windows certificate\nstore by (a substring of) its subject name. The private key still comes from the HSM via\n`cryptoServiceProvider` / `keyContainer`; this only identifies which public certificate to sign\nwith.",
8396
8363
  "type": [
8397
8364
  "null",
8398
8365
  "string"
8399
8366
  ]
8400
8367
  },
8401
8368
  "cryptoServiceProvider": {
8402
- "description": "The name of the cryptographic service provider (CSP) that holds the private key.\nMaps to signtool's `/csp` flag. Examples:\n- Google Cloud KMS: `\"Google Cloud KMS Provider\"`\n- Smart card / FIPS token: `\"Microsoft Base Smart Card Crypto Provider\"`\n\nRequires `toolsets.winCodeSign: \"1.x\"`. Windows-only — use `type: \"pkcs11\"` on macOS/Linux.",
8369
+ "description": "The name of the cryptographic service provider (CSP) that holds the private key.\nMaps to signtool's `/csp` flag. Examples:\n- Google Cloud KMS: `\"Google Cloud KMS Provider\"`\n- Smart card / FIPS token: `\"Microsoft Base Smart Card Crypto Provider\"`\n\nRequires a modern `winCodeSign` toolset (the default; only the legacy `\"0.0.0\"` pin is\nunsupported). Windows-only — use `type: \"pkcs11\"` on macOS/Linux.",
8403
8370
  "type": "string"
8404
8371
  },
8405
8372
  "keyContainer": {
@@ -8421,11 +8388,11 @@
8421
8388
  ]
8422
8389
  }
8423
8390
  ],
8424
- "description": "[The publisher name](https://github.com/electron-userland/electron-builder/issues/1187#issuecomment-278972073), exactly as in your code signed certificate. Several names can be provided.\nDefaults to common name from your code signing certificate."
8391
+ "description": "The publisher name(s) to associate with the signature, written exactly as the subject appears\nin your code signing certificate. May be a single string or an array — an array is useful when\nrotating certificates, so updates signed by either the old or the new certificate still verify.\n\nThis value is not a `signtool` argument; it is consumed in two places:\n- **Update verification** — when [verifyUpdateCodeSignature](#verifyUpdateCodeSignature) is\n enabled, it is written into `app-update.yml` and electron-updater checks it against the\n certificate that signed each downloaded update.\n- **AppX / MSIX identity** — the package `Publisher` attribute must equal the certificate\n subject, so electron-builder derives it from this value (or the certificate) to keep them\n in sync; a mismatch makes packaging fail with `ERROR_BAD_FORMAT`.\n\nDefaults to the Common Name (CN) extracted from your code signing certificate. Set to `null`\nto opt out."
8425
8392
  },
8426
8393
  "rfc3161TimeStampServer": {
8427
8394
  "default": "http://timestamp.digicert.com",
8428
- "description": "The URL of the RFC 3161 time stamp server.",
8395
+ "description": "The URL of the [RFC 3161](https://www.ietf.org/rfc/rfc3161.txt) timestamp server, used for\nSHA-256 and nested/appended signatures (signtool's `/tr` flag). Timestamping records *when*\nthe file was signed so the signature stays valid after the signing certificate expires.\nIgnored when the build runs with `ELECTRON_BUILDER_OFFLINE=true`.",
8429
8396
  "type": [
8430
8397
  "null",
8431
8398
  "string"
@@ -8443,7 +8410,7 @@
8443
8410
  ]
8444
8411
  }
8445
8412
  ],
8446
- "description": "The custom function (or path to file or module id) to sign Windows executables."
8413
+ "description": "A custom signing hook that **replaces** electron-builder's built-in `signtool` /\n`osslsigncode` invocation. Provide a function, or the path / module id of a file that exports\na `sign` function (resolved relative to the project, then as a module).\n\nThe hook is invoked once per signing pass (i.e. once per entry in\n[signingHashAlgorithms](#signingHashAlgorithms)) and receives a configuration object describing\nthe file to sign (`path`), the resolved certificate info (`cscInfo`), the current `hash`, and\nwhether this pass is a nested signature (`isNest`), plus a `computeSignToolArgs(isWin)` helper\nthat returns the default arguments electron-builder would otherwise have used. Use this to\nintegrate an external or cloud signing service. See\n[Code Signing](https://www.electron.build/code-signing)."
8447
8414
  },
8448
8415
  "signingHashAlgorithms": {
8449
8416
  "anyOf": [
@@ -8462,11 +8429,11 @@
8462
8429
  }
8463
8430
  ],
8464
8431
  "default": "['sha1', 'sha256']",
8465
- "description": "Array of signing algorithms used. For AppX `sha256` is always used."
8432
+ "description": "The digest (hash) algorithms to sign with, applied via signtool's `/fd` flag (or\nosslsigncode's `-h`). One signing pass runs per entry, in order; listing more than one\n**dual-signs** the file, with each additional signature appended as a nested signature\n(signtool `/as`). Signing with both `sha1` and `sha256` lets a single binary validate on\nlegacy (pre-SHA-2) Windows as well as modern Windows.\n\nSome targets override this: `.msi` cannot be dual-signed (a single hash is used) and AppX/MSIX\nis always `sha256` only."
8466
8433
  },
8467
8434
  "timeStampServer": {
8468
8435
  "default": "http://timestamp.digicert.com",
8469
- "description": "The URL of the time stamp server.",
8436
+ "description": "The URL of the legacy Authenticode timestamp server, used for SHA-1 signatures (signtool's\n`/t` flag). This is also the timestamp server used by `osslsigncode` (`-t`) when signing on\nmacOS/Linux. See [rfc3161TimeStampServer](#rfc3161TimeStampServer) for SHA-256 / nested\nsignatures. Ignored when the build runs with `ELECTRON_BUILDER_OFFLINE=true`.",
8470
8437
  "type": [
8471
8438
  "null",
8472
8439
  "string"
@@ -8474,6 +8441,7 @@
8474
8441
  },
8475
8442
  "type": {
8476
8443
  "const": "hsm",
8444
+ "description": "Discriminator selecting HSM / hardware-token signing via signtool's `/csp` and `/kc` flags.",
8477
8445
  "type": "string"
8478
8446
  }
8479
8447
  },
@@ -8486,9 +8454,10 @@
8486
8454
  },
8487
8455
  "WindowsPkcs11SigningConfig": {
8488
8456
  "additionalProperties": false,
8457
+ "description": "Sign with a PKCS#11 hardware token (smart card, USB HSM, cloud KMS exposed via a PKCS#11\nprovider) using `osslsigncode`. Unlike `hsm`, this mode does **not** require Windows or a\nWindows VM, so it can sign Windows binaries directly from macOS/Linux CI. The token PIN is read\nfrom the `WIN_CSC_KEY_PASSWORD` (or `CSC_KEY_PASSWORD`) environment variable.",
8489
8458
  "properties": {
8490
8459
  "additionalCertificateFile": {
8491
- "description": "The path to an additional certificate file you want to add to the signature block.",
8460
+ "description": "Path to an additional certificate file (typically an intermediate / cross-signing CA\ncertificate) whose contents are added to the signature block via signtool's `/ac` flag. Use\nthis when the signing certificate's full chain is not already present on target machines and\nyou want it embedded in the signature so the chain can be validated.",
8492
8461
  "type": [
8493
8462
  "null",
8494
8463
  "string"
@@ -8524,11 +8493,11 @@
8524
8493
  ]
8525
8494
  }
8526
8495
  ],
8527
- "description": "[The publisher name](https://github.com/electron-userland/electron-builder/issues/1187#issuecomment-278972073), exactly as in your code signed certificate. Several names can be provided.\nDefaults to common name from your code signing certificate."
8496
+ "description": "The publisher name(s) to associate with the signature, written exactly as the subject appears\nin your code signing certificate. May be a single string or an array — an array is useful when\nrotating certificates, so updates signed by either the old or the new certificate still verify.\n\nThis value is not a `signtool` argument; it is consumed in two places:\n- **Update verification** — when [verifyUpdateCodeSignature](#verifyUpdateCodeSignature) is\n enabled, it is written into `app-update.yml` and electron-updater checks it against the\n certificate that signed each downloaded update.\n- **AppX / MSIX identity** — the package `Publisher` attribute must equal the certificate\n subject, so electron-builder derives it from this value (or the certificate) to keep them\n in sync; a mismatch makes packaging fail with `ERROR_BAD_FORMAT`.\n\nDefaults to the Common Name (CN) extracted from your code signing certificate. Set to `null`\nto opt out."
8528
8497
  },
8529
8498
  "rfc3161TimeStampServer": {
8530
8499
  "default": "http://timestamp.digicert.com",
8531
- "description": "The URL of the RFC 3161 time stamp server.",
8500
+ "description": "The URL of the [RFC 3161](https://www.ietf.org/rfc/rfc3161.txt) timestamp server, used for\nSHA-256 and nested/appended signatures (signtool's `/tr` flag). Timestamping records *when*\nthe file was signed so the signature stays valid after the signing certificate expires.\nIgnored when the build runs with `ELECTRON_BUILDER_OFFLINE=true`.",
8532
8501
  "type": [
8533
8502
  "null",
8534
8503
  "string"
@@ -8546,7 +8515,7 @@
8546
8515
  ]
8547
8516
  }
8548
8517
  ],
8549
- "description": "The custom function (or path to file or module id) to sign Windows executables."
8518
+ "description": "A custom signing hook that **replaces** electron-builder's built-in `signtool` /\n`osslsigncode` invocation. Provide a function, or the path / module id of a file that exports\na `sign` function (resolved relative to the project, then as a module).\n\nThe hook is invoked once per signing pass (i.e. once per entry in\n[signingHashAlgorithms](#signingHashAlgorithms)) and receives a configuration object describing\nthe file to sign (`path`), the resolved certificate info (`cscInfo`), the current `hash`, and\nwhether this pass is a nested signature (`isNest`), plus a `computeSignToolArgs(isWin)` helper\nthat returns the default arguments electron-builder would otherwise have used. Use this to\nintegrate an external or cloud signing service. See\n[Code Signing](https://www.electron.build/code-signing)."
8550
8519
  },
8551
8520
  "signingHashAlgorithms": {
8552
8521
  "anyOf": [
@@ -8565,11 +8534,11 @@
8565
8534
  }
8566
8535
  ],
8567
8536
  "default": "['sha1', 'sha256']",
8568
- "description": "Array of signing algorithms used. For AppX `sha256` is always used."
8537
+ "description": "The digest (hash) algorithms to sign with, applied via signtool's `/fd` flag (or\nosslsigncode's `-h`). One signing pass runs per entry, in order; listing more than one\n**dual-signs** the file, with each additional signature appended as a nested signature\n(signtool `/as`). Signing with both `sha1` and `sha256` lets a single binary validate on\nlegacy (pre-SHA-2) Windows as well as modern Windows.\n\nSome targets override this: `.msi` cannot be dual-signed (a single hash is used) and AppX/MSIX\nis always `sha256` only."
8569
8538
  },
8570
8539
  "timeStampServer": {
8571
8540
  "default": "http://timestamp.digicert.com",
8572
- "description": "The URL of the time stamp server.",
8541
+ "description": "The URL of the legacy Authenticode timestamp server, used for SHA-1 signatures (signtool's\n`/t` flag). This is also the timestamp server used by `osslsigncode` (`-t`) when signing on\nmacOS/Linux. See [rfc3161TimeStampServer](#rfc3161TimeStampServer) for SHA-256 / nested\nsignatures. Ignored when the build runs with `ELECTRON_BUILDER_OFFLINE=true`.",
8573
8542
  "type": [
8574
8543
  "null",
8575
8544
  "string"
@@ -8577,6 +8546,7 @@
8577
8546
  },
8578
8547
  "type": {
8579
8548
  "const": "pkcs11",
8549
+ "description": "Discriminator selecting cross-platform PKCS#11 token signing via `osslsigncode`.",
8580
8550
  "type": "string"
8581
8551
  }
8582
8552
  },
@@ -8589,37 +8559,38 @@
8589
8559
  },
8590
8560
  "WindowsSigntoolSigningConfig": {
8591
8561
  "additionalProperties": false,
8562
+ "description": "Sign with a certificate file (`.pfx` / `.p12`) or with a certificate from the Windows\ncertificate store, using Microsoft `signtool.exe` on Windows and `osslsigncode` on macOS/Linux.\nThis is the default mode when `win.sign` is unset. Supply the certificate one of four ways:\na file via `certificateFile` (or the `WIN_CSC_LINK` env var), or a store lookup via\n`certificateSubjectName` or `certificateSha1`.",
8592
8563
  "properties": {
8593
8564
  "additionalCertificateFile": {
8594
- "description": "The path to an additional certificate file you want to add to the signature block.",
8565
+ "description": "Path to an additional certificate file (typically an intermediate / cross-signing CA\ncertificate) whose contents are added to the signature block via signtool's `/ac` flag. Use\nthis when the signing certificate's full chain is not already present on target machines and\nyou want it embedded in the signature so the chain can be validated.",
8595
8566
  "type": [
8596
8567
  "null",
8597
8568
  "string"
8598
8569
  ]
8599
8570
  },
8600
8571
  "certificateFile": {
8601
- "description": "The path to the *.pfx or *.p12 certificate file. Prefer the `WIN_CSC_LINK` environment\nvariable when possible. See [Code Signing](https://www.electron.build/code-signing).",
8572
+ "description": "Path to the PKCS#12 certificate file (`.pfx` or `.p12`) holding both the signing certificate\nand its private key. Passed to signtool via `/f` (or osslsigncode via `-pkcs12`).\n\nPrefer supplying this out-of-band via the `WIN_CSC_LINK` (or `CSC_LINK`) environment variable\ninstead of hardcoding a path — that variable also accepts an `https://` URL or a base64-encoded\ncertificate, which is safer and more convenient on CI. See\n[Code Signing](https://www.electron.build/code-signing).",
8602
8573
  "type": [
8603
8574
  "null",
8604
8575
  "string"
8605
8576
  ]
8606
8577
  },
8607
8578
  "certificatePassword": {
8608
- "description": "The password to the certificate provided in `certificateFile`. Prefer the\n`WIN_CSC_KEY_PASSWORD` environment variable when possible.",
8579
+ "description": "The password protecting the private key in `certificateFile`. Passed to signtool via `/p`\n(or osslsigncode via `-pass`).\n\nPrefer the `WIN_CSC_KEY_PASSWORD` (or `CSC_KEY_PASSWORD`) environment variable so the secret\nnever lands in your build configuration.",
8609
8580
  "type": [
8610
8581
  "null",
8611
8582
  "string"
8612
8583
  ]
8613
8584
  },
8614
8585
  "certificateSha1": {
8615
- "description": "The SHA1 hash of the signing certificate. Works only on Windows (or macOS with Parallels Desktop).",
8586
+ "description": "Select the signing certificate from the Windows certificate store by its SHA-1 thumbprint,\ninstead of pointing at a `.pfx` file. electron-builder looks the certificate up in the store\nand signs with `/sha1 <thumbprint> /s <store>`. Like\n[certificateSubjectName](#certificateSubjectName), this suits EV certificates backed by a\nhardware token; if both are set, both must resolve to the same certificate.\n\nWorks only on Windows (or macOS with Parallels Desktop, via the bundled Windows VM).",
8616
8587
  "type": [
8617
8588
  "null",
8618
8589
  "string"
8619
8590
  ]
8620
8591
  },
8621
8592
  "certificateSubjectName": {
8622
- "description": "The name of the subject of the signing certificate. Required for EV Code Signing.\nWorks only on Windows (or macOS with Parallels Desktop).",
8593
+ "description": "Select the signing certificate from the Windows certificate store by (a substring of) its\nsubject name, instead of pointing at a `.pfx` file. electron-builder enumerates the installed\ncode-signing certificates, picks the match, and signs by its thumbprint\n(`/sha1 <thumbprint> /s <store>`). **Required for EV (Extended Validation) certificates**,\nwhose private keys live on a hardware token and cannot be exported to a file.\n\nWorks only on Windows (or macOS with Parallels Desktop, via the bundled Windows VM).",
8623
8594
  "type": [
8624
8595
  "null",
8625
8596
  "string"
@@ -8640,11 +8611,11 @@
8640
8611
  ]
8641
8612
  }
8642
8613
  ],
8643
- "description": "[The publisher name](https://github.com/electron-userland/electron-builder/issues/1187#issuecomment-278972073), exactly as in your code signed certificate. Several names can be provided.\nDefaults to common name from your code signing certificate."
8614
+ "description": "The publisher name(s) to associate with the signature, written exactly as the subject appears\nin your code signing certificate. May be a single string or an array — an array is useful when\nrotating certificates, so updates signed by either the old or the new certificate still verify.\n\nThis value is not a `signtool` argument; it is consumed in two places:\n- **Update verification** — when [verifyUpdateCodeSignature](#verifyUpdateCodeSignature) is\n enabled, it is written into `app-update.yml` and electron-updater checks it against the\n certificate that signed each downloaded update.\n- **AppX / MSIX identity** — the package `Publisher` attribute must equal the certificate\n subject, so electron-builder derives it from this value (or the certificate) to keep them\n in sync; a mismatch makes packaging fail with `ERROR_BAD_FORMAT`.\n\nDefaults to the Common Name (CN) extracted from your code signing certificate. Set to `null`\nto opt out."
8644
8615
  },
8645
8616
  "rfc3161TimeStampServer": {
8646
8617
  "default": "http://timestamp.digicert.com",
8647
- "description": "The URL of the RFC 3161 time stamp server.",
8618
+ "description": "The URL of the [RFC 3161](https://www.ietf.org/rfc/rfc3161.txt) timestamp server, used for\nSHA-256 and nested/appended signatures (signtool's `/tr` flag). Timestamping records *when*\nthe file was signed so the signature stays valid after the signing certificate expires.\nIgnored when the build runs with `ELECTRON_BUILDER_OFFLINE=true`.",
8648
8619
  "type": [
8649
8620
  "null",
8650
8621
  "string"
@@ -8662,7 +8633,7 @@
8662
8633
  ]
8663
8634
  }
8664
8635
  ],
8665
- "description": "The custom function (or path to file or module id) to sign Windows executables."
8636
+ "description": "A custom signing hook that **replaces** electron-builder's built-in `signtool` /\n`osslsigncode` invocation. Provide a function, or the path / module id of a file that exports\na `sign` function (resolved relative to the project, then as a module).\n\nThe hook is invoked once per signing pass (i.e. once per entry in\n[signingHashAlgorithms](#signingHashAlgorithms)) and receives a configuration object describing\nthe file to sign (`path`), the resolved certificate info (`cscInfo`), the current `hash`, and\nwhether this pass is a nested signature (`isNest`), plus a `computeSignToolArgs(isWin)` helper\nthat returns the default arguments electron-builder would otherwise have used. Use this to\nintegrate an external or cloud signing service. See\n[Code Signing](https://www.electron.build/code-signing)."
8666
8637
  },
8667
8638
  "signingHashAlgorithms": {
8668
8639
  "anyOf": [
@@ -8681,11 +8652,11 @@
8681
8652
  }
8682
8653
  ],
8683
8654
  "default": "['sha1', 'sha256']",
8684
- "description": "Array of signing algorithms used. For AppX `sha256` is always used."
8655
+ "description": "The digest (hash) algorithms to sign with, applied via signtool's `/fd` flag (or\nosslsigncode's `-h`). One signing pass runs per entry, in order; listing more than one\n**dual-signs** the file, with each additional signature appended as a nested signature\n(signtool `/as`). Signing with both `sha1` and `sha256` lets a single binary validate on\nlegacy (pre-SHA-2) Windows as well as modern Windows.\n\nSome targets override this: `.msi` cannot be dual-signed (a single hash is used) and AppX/MSIX\nis always `sha256` only."
8685
8656
  },
8686
8657
  "timeStampServer": {
8687
8658
  "default": "http://timestamp.digicert.com",
8688
- "description": "The URL of the time stamp server.",
8659
+ "description": "The URL of the legacy Authenticode timestamp server, used for SHA-1 signatures (signtool's\n`/t` flag). This is also the timestamp server used by `osslsigncode` (`-t`) when signing on\nmacOS/Linux. See [rfc3161TimeStampServer](#rfc3161TimeStampServer) for SHA-256 / nested\nsignatures. Ignored when the build runs with `ELECTRON_BUILDER_OFFLINE=true`.",
8689
8660
  "type": [
8690
8661
  "null",
8691
8662
  "string"
@@ -8693,6 +8664,7 @@
8693
8664
  },
8694
8665
  "type": {
8695
8666
  "const": "signtool",
8667
+ "description": "Discriminator selecting the default file/store signing mode.",
8696
8668
  "type": "string"
8697
8669
  }
8698
8670
  },
@@ -8986,14 +8958,6 @@
8986
8958
  ],
8987
8959
  "description": "Overrides for input/output directory paths used during the build."
8988
8960
  },
8989
- "disableDefaultIgnoredFiles": {
8990
- "default": false,
8991
- "description": "Whether to exclude all default ignored files(https://www.electron.build/contents#files) and options. Defaults to `false`.",
8992
- "type": [
8993
- "null",
8994
- "boolean"
8995
- ]
8996
- },
8997
8961
  "dmg": {
8998
8962
  "anyOf": [
8999
8963
  {