app-builder-lib 27.0.0-alpha.6 → 27.0.0-alpha.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/codeSign/mac/macCodeSign.d.ts.map +1 -1
- package/dist/codeSign/mac/macCodeSign.js +6 -4
- package/dist/codeSign/mac/macCodeSign.js.map +1 -1
- package/dist/codeSign/signResult.d.ts +26 -0
- package/dist/codeSign/signResult.d.ts.map +1 -0
- package/dist/codeSign/signResult.js +12 -0
- package/dist/codeSign/signResult.js.map +1 -0
- package/dist/codeSign/win/signManager.d.ts +2 -1
- package/dist/codeSign/win/signManager.d.ts.map +1 -1
- package/dist/codeSign/win/signManager.js.map +1 -1
- package/dist/codeSign/win/signtoolBaseSignManager.d.ts +25 -1
- package/dist/codeSign/win/signtoolBaseSignManager.d.ts.map +1 -1
- package/dist/codeSign/win/signtoolBaseSignManager.js +74 -3
- package/dist/codeSign/win/signtoolBaseSignManager.js.map +1 -1
- package/dist/codeSign/win/windowsCodeSign.d.ts +2 -1
- package/dist/codeSign/win/windowsCodeSign.d.ts.map +1 -1
- package/dist/codeSign/win/windowsCodeSign.js +16 -7
- package/dist/codeSign/win/windowsCodeSign.js.map +1 -1
- package/dist/codeSign/win/windowsSignAzureManager.d.ts +2 -1
- package/dist/codeSign/win/windowsSignAzureManager.d.ts.map +1 -1
- package/dist/codeSign/win/windowsSignAzureManager.js +2 -2
- package/dist/codeSign/win/windowsSignAzureManager.js.map +1 -1
- package/dist/configuration.d.ts +56 -8
- package/dist/configuration.d.ts.map +1 -1
- package/dist/configuration.js.map +1 -1
- package/dist/core.d.ts +5 -0
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js.map +1 -1
- package/dist/fileMatcher.d.ts +15 -0
- package/dist/fileMatcher.d.ts.map +1 -1
- package/dist/fileMatcher.js +42 -2
- package/dist/fileMatcher.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/indexInternal.d.ts +2 -1
- package/dist/indexInternal.d.ts.map +1 -1
- package/dist/indexInternal.js +2 -1
- package/dist/indexInternal.js.map +1 -1
- package/dist/macPackager.d.ts +16 -8
- package/dist/macPackager.d.ts.map +1 -1
- package/dist/macPackager.js +59 -32
- package/dist/macPackager.js.map +1 -1
- package/dist/node-module-collector/nodeModulesCollector.d.ts +11 -1
- package/dist/node-module-collector/nodeModulesCollector.d.ts.map +1 -1
- package/dist/node-module-collector/nodeModulesCollector.js +28 -5
- package/dist/node-module-collector/nodeModulesCollector.js.map +1 -1
- package/dist/node-module-collector/pnpmNodeModulesCollector.d.ts.map +1 -1
- package/dist/node-module-collector/pnpmNodeModulesCollector.js +3 -1
- package/dist/node-module-collector/pnpmNodeModulesCollector.js.map +1 -1
- package/dist/options/PlatformSpecificBuildOptions.d.ts +2 -2
- package/dist/options/PlatformSpecificBuildOptions.js.map +1 -1
- package/dist/options/SnapOptions.d.ts +8 -4
- package/dist/options/SnapOptions.d.ts.map +1 -1
- package/dist/options/SnapOptions.js.map +1 -1
- package/dist/options/linuxOptions.d.ts +8 -2
- package/dist/options/linuxOptions.d.ts.map +1 -1
- package/dist/options/linuxOptions.js.map +1 -1
- package/dist/options/macOptions.d.ts +18 -8
- package/dist/options/macOptions.d.ts.map +1 -1
- package/dist/options/macOptions.js.map +1 -1
- package/dist/options/pkgOptions.d.ts +1 -1
- package/dist/options/pkgOptions.js.map +1 -1
- package/dist/options/winOptions.d.ts +8 -7
- package/dist/options/winOptions.d.ts.map +1 -1
- package/dist/options/winOptions.js.map +1 -1
- package/dist/packager.d.ts.map +1 -1
- package/dist/packager.js +6 -3
- package/dist/packager.js.map +1 -1
- package/dist/platformPackager.d.ts +2 -1
- package/dist/platformPackager.d.ts.map +1 -1
- package/dist/platformPackager.js +5 -3
- package/dist/platformPackager.js.map +1 -1
- package/dist/publish/PublishManager.js +37 -0
- package/dist/publish/PublishManager.js.map +1 -1
- package/dist/publish/updateInfoBuilder.d.ts.map +1 -1
- package/dist/publish/updateInfoBuilder.js +9 -5
- package/dist/publish/updateInfoBuilder.js.map +1 -1
- package/dist/targets/linux/FlatpakTarget.d.ts.map +1 -1
- package/dist/targets/linux/FlatpakTarget.js +4 -1
- package/dist/targets/linux/FlatpakTarget.js.map +1 -1
- package/dist/targets/linux/FpmTarget.d.ts +7 -0
- package/dist/targets/linux/FpmTarget.d.ts.map +1 -1
- package/dist/targets/linux/FpmTarget.js +29 -2
- package/dist/targets/linux/FpmTarget.js.map +1 -1
- package/dist/targets/linux/appimage/appImageUtil.d.ts +1 -1
- package/dist/targets/linux/appimage/appImageUtil.js +3 -3
- package/dist/targets/linux/appimage/appImageUtil.js.map +1 -1
- package/dist/targets/linux/snap/core24.d.ts +27 -0
- package/dist/targets/linux/snap/core24.d.ts.map +1 -1
- package/dist/targets/linux/snap/core24.js +92 -57
- package/dist/targets/linux/snap/core24.js.map +1 -1
- package/dist/targets/mac/MacTargetHelper.d.ts +16 -4
- package/dist/targets/mac/MacTargetHelper.d.ts.map +1 -1
- package/dist/targets/mac/MacTargetHelper.js +23 -14
- package/dist/targets/mac/MacTargetHelper.js.map +1 -1
- package/dist/targets/mac/pkg.js +1 -1
- package/dist/targets/mac/pkg.js.map +1 -1
- package/dist/targets/win/MsiTarget.js +2 -2
- package/dist/targets/win/MsiTarget.js.map +1 -1
- package/dist/toolsets/7zip.d.ts +32 -0
- package/dist/toolsets/7zip.d.ts.map +1 -1
- package/dist/toolsets/7zip.js +39 -13
- package/dist/toolsets/7zip.js.map +1 -1
- package/dist/toolsets/custom.js +4 -2
- package/dist/toolsets/custom.js.map +1 -1
- package/dist/toolsets/icons.d.ts.map +1 -1
- package/dist/toolsets/icons.js +4 -1
- package/dist/toolsets/icons.js.map +1 -1
- package/dist/toolsets/linuxToolsMac.d.ts.map +1 -1
- package/dist/toolsets/linuxToolsMac.js +15 -5
- package/dist/toolsets/linuxToolsMac.js.map +1 -1
- package/dist/util/appFileCopier.d.ts.map +1 -1
- package/dist/util/appFileCopier.js +63 -2
- package/dist/util/appFileCopier.js.map +1 -1
- package/dist/util/electronGet.d.ts +16 -0
- package/dist/util/electronGet.d.ts.map +1 -1
- package/dist/util/electronGet.js +153 -10
- package/dist/util/electronGet.js.map +1 -1
- package/dist/util/installOrRebuild.d.ts +6 -0
- package/dist/util/installOrRebuild.d.ts.map +1 -1
- package/dist/util/installOrRebuild.js +47 -0
- package/dist/util/installOrRebuild.js.map +1 -1
- package/dist/util/packageMetadata.js +46 -21
- package/dist/util/packageMetadata.js.map +1 -1
- package/dist/util/repositoryInfo.js +6 -3
- package/dist/util/repositoryInfo.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/dist/winPackager.d.ts +4 -3
- package/dist/winPackager.d.ts.map +1 -1
- package/dist/winPackager.js +22 -16
- package/dist/winPackager.js.map +1 -1
- package/package.json +10 -10
- package/scheme.json +63 -35
- package/templates/nsis/common.nsh +2 -2
- package/templates/nsis/include/allowOnlyOneInstallerInstance.nsh +68 -4
- package/templates/nsis/include/extractAppPackage.nsh +1 -1
- package/templates/nsis/include/installUtil.nsh +2 -2
- package/templates/nsis/include/installer.nsh +1 -1
- package/templates/nsis/installer.nsi +1 -1
package/scheme.json
CHANGED
|
@@ -749,7 +749,7 @@
|
|
|
749
749
|
"libuuid1",
|
|
750
750
|
"libsecret-1-0"
|
|
751
751
|
],
|
|
752
|
-
"description": "Package dependencies.\nIf need to support Debian, `libappindicator1` should be removed, it is [deprecated in Debian](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=895037).\nIf need to support KDE, `gconf2` and `gconf-service` should be removed as it's no longer used [by GNOME](https://packages.debian.org/bullseye/gconf2)."
|
|
752
|
+
"description": "Package dependencies.\nIf need to support Debian, `libappindicator1` should be removed, it is [deprecated in Debian](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=895037).\nIf need to support KDE, `gconf2` and `gconf-service` should be removed as it's no longer used [by GNOME](https://packages.debian.org/bullseye/gconf2).\n\nUse the `\"default\"` keyword to extend the default list instead of replacing it:\n`[\"default\", \"my-extra-lib\"]` appends `my-extra-lib` to the defaults. The resulting list is deduplicated."
|
|
753
753
|
},
|
|
754
754
|
"description": {
|
|
755
755
|
"description": "As [description](https://www.electron.build/configuration#description) from application package.json, but allows you to specify different for Linux.",
|
|
@@ -1219,7 +1219,7 @@
|
|
|
1219
1219
|
},
|
|
1220
1220
|
"ElectronSignOptions": {
|
|
1221
1221
|
"additionalProperties": false,
|
|
1222
|
-
"description": "Signing options passed to `@electron/osx-sign`. Electron-builder owns the fields it must control\nitself — `app`, `keychain`, `platform`, `version`,
|
|
1222
|
+
"description": "Signing options passed to `@electron/osx-sign`. Electron-builder owns the fields it must control\nitself — `app`, `keychain`, `platform`, `version`, and `optionsForFile` — and forwards everything else.\n\nAdditionally exposes a small set of per-file convenience fields that electron-builder maps\ninternally through `optionsForFile`.",
|
|
1223
1223
|
"properties": {
|
|
1224
1224
|
"additionalArguments": {
|
|
1225
1225
|
"anyOf": [
|
|
@@ -1268,7 +1268,7 @@
|
|
|
1268
1268
|
]
|
|
1269
1269
|
},
|
|
1270
1270
|
"hardenedRuntime": {
|
|
1271
|
-
"description": "Whether to enable [Hardened Runtime](https://developer.apple.com/documentation/security/hardened_runtime).\n\nHardened Runtime is a prerequisite for notarization (mandatory on macOS 10.15+).\nDefaults to `true` for `darwin` builds and `false` for `mas-dev
|
|
1271
|
+
"description": "Whether to enable [Hardened Runtime](https://developer.apple.com/documentation/security/hardened_runtime).\n\nHardened Runtime is a prerequisite for notarization (mandatory on macOS 10.15+).\nDefaults to `true` for `darwin` builds and `false` for MAS builds (`mas` and `mas-dev`).",
|
|
1272
1272
|
"type": "boolean"
|
|
1273
1273
|
},
|
|
1274
1274
|
"identity": {
|
|
@@ -1331,6 +1331,14 @@
|
|
|
1331
1331
|
"null",
|
|
1332
1332
|
"string"
|
|
1333
1333
|
]
|
|
1334
|
+
},
|
|
1335
|
+
"type": {
|
|
1336
|
+
"description": "The type of certificate to use when signing: `development` or `distribution`.\n\nDefaults to a value derived from the build flavor: `mas-dev` → `development`, otherwise `distribution`.\nSet it explicitly to override — e.g. `development` on a darwin build signs with a `Mac Developer` or\n`Apple Development` certificate instead of `Developer ID Application` and embeds a matching\ndevelopment provisioning profile.\n\nDevelopment-signed apps are blocked by Gatekeeper on other machines; users must use the\nright-click → Open workaround documented at https://support.apple.com/en-us/guide/mac-help/mh40616/mac.\nSuch builds are not suitable for production distribution and cannot be notarized.",
|
|
1337
|
+
"enum": [
|
|
1338
|
+
"development",
|
|
1339
|
+
"distribution"
|
|
1340
|
+
],
|
|
1341
|
+
"type": "string"
|
|
1334
1342
|
}
|
|
1335
1343
|
},
|
|
1336
1344
|
"type": "object"
|
|
@@ -1796,7 +1804,7 @@
|
|
|
1796
1804
|
]
|
|
1797
1805
|
},
|
|
1798
1806
|
"private": {
|
|
1799
|
-
"description": "Whether to use private github auto-update provider if `GH_TOKEN` environment variable is defined. See [Private GitHub Update Repo](https://www.electron.build/auto-update#private-github-update-repo).",
|
|
1807
|
+
"description": "Whether to use private github auto-update provider if `GH_TOKEN` environment variable is defined. See [Private GitHub Update Repo](https://www.electron.build/docs/features/auto-update#private-github-update-repo).",
|
|
1800
1808
|
"type": [
|
|
1801
1809
|
"null",
|
|
1802
1810
|
"boolean"
|
|
@@ -1883,7 +1891,7 @@
|
|
|
1883
1891
|
]
|
|
1884
1892
|
},
|
|
1885
1893
|
"token": {
|
|
1886
|
-
"description": "The access token to support auto-update from private github repositories. Never specify it in the configuration files. Only for [setFeedURL](https://www.electron.build/auto-update#
|
|
1894
|
+
"description": "The access token to support auto-update from private github repositories. Never specify it in the configuration files. Only for [setFeedURL](https://www.electron.build/docs/features/auto-update#custom-options-instantiating-updater-directly).",
|
|
1887
1895
|
"type": [
|
|
1888
1896
|
"null",
|
|
1889
1897
|
"string"
|
|
@@ -2207,7 +2215,7 @@
|
|
|
2207
2215
|
"description": "The electron locales to keep. By default, all Electron locales used as-is."
|
|
2208
2216
|
},
|
|
2209
2217
|
"electronUpdaterCompatibility": {
|
|
2210
|
-
"description": "The [electron-updater compatibility](https://www.electron.build/auto-update#compatibility) semver range.",
|
|
2218
|
+
"description": "The [electron-updater compatibility](https://www.electron.build/docs/features/auto-update#compatibility) semver range.",
|
|
2211
2219
|
"type": [
|
|
2212
2220
|
"null",
|
|
2213
2221
|
"string"
|
|
@@ -2327,7 +2335,7 @@
|
|
|
2327
2335
|
]
|
|
2328
2336
|
}
|
|
2329
2337
|
],
|
|
2330
|
-
"description": "A [glob patterns](https://www.electron.build/file-patterns) relative to the [app directory](https://www.electron.build/configuration#directories), which specifies which files to include when copying files to create the package.\n\nDefaults to:\n```json\n[\n\"**\\/*\",\n\"!**\\/node_modules/*\\/{CHANGELOG.md,README.md,README,readme.md,readme}\",\n\"!**\\/node_modules/*\\/{test,__tests__,tests,powered-test,example,examples}\",\n\"!**\\/node_modules/*.d.ts\",\n\"!**\\/node_modules/.bin\",\n\"!**\\/*.{iml,o,hprof,orig,pyc,pyo,rbc,swp,csproj,sln,xproj}\",\n\"!.editorconfig\",\n\"!**\\/._*\",\n\"!**\\/{.DS_Store,.git,.hg,.svn,CVS,RCS,SCCS,.gitignore,.gitattributes}\",\n\"!**\\/{__pycache__,thumbs.db,.flowconfig,.idea,.vs,.nyc_output}\",\n\"!**\\/{appveyor.yml,.travis.yml,circle.yml}\",\n\"!**\\/{npm-debug.log,yarn.lock,.yarn-integrity,.yarn-metadata.json}\"\n]\n```\n\nDevelopment dependencies are never copied in any case. You don't need to ignore it explicitly. Hidden files are not ignored by default, but all files that should be ignored, are ignored by default.\n\nDefault pattern \\`**\\/*\\` **is not added to your custom** if some of your patterns is not ignore (i.e. not starts with `!`). `package.json` and \\`**\\/node_modules/**\\/*` (only production dependencies will be copied) is added to your custom in any case. All default ignores are added in any case — you don't need to repeat it if you configure own patterns.\n\nMay be specified in the platform options (e.g. in the [mac](https://www.electron.build/mac)).\n\nYou may also specify custom source and destination directories by using `FileSet` objects instead of simple glob patterns.\n\n```json\n[\n{\n\"from\": \"path/to/source\",\n\"to\": \"path/to/destination\",\n\"filter\": [\"**\\/*\", \"!foo/*.js\"]\n}\n]\n```\n\nYou can use [file macros](https://www.electron.build/file-patterns#file-macros) in the `from` and `to` fields as well. `from` and `to` can be files and you can use this to [rename](https://github.com/electron-userland/electron-builder/issues/1119) a file while packaging."
|
|
2338
|
+
"description": "A [glob patterns](https://www.electron.build/file-patterns) relative to the [app directory](https://www.electron.build/configuration#directories), which specifies which files to include when copying files to create the package.\n\nDefaults to:\n```json\n[\n\"**\\/*\",\n\"!**\\/node_modules/*\\/{CHANGELOG.md,README.md,README,readme.md,readme}\",\n\"!**\\/node_modules/*\\/{test,__tests__,tests,powered-test,example,examples}\",\n\"!**\\/node_modules/*.d.ts\",\n\"!**\\/node_modules/.bin\",\n\"!**\\/*.{iml,o,hprof,orig,pyc,pyo,rbc,swp,csproj,sln,slnx,xproj}\",\n\"!.editorconfig\",\n\"!**\\/._*\",\n\"!**\\/{.DS_Store,.git,.hg,.svn,CVS,RCS,SCCS,.gitignore,.gitattributes}\",\n\"!**\\/{__pycache__,thumbs.db,.flowconfig,.idea,.vs,.nyc_output}\",\n\"!**\\/{appveyor.yml,.travis.yml,circle.yml}\",\n\"!**\\/{npm-debug.log,yarn.lock,.yarn-integrity,.yarn-metadata.json}\"\n]\n```\n\nDevelopment dependencies are never copied in any case. You don't need to ignore it explicitly. Hidden files are not ignored by default, but all files that should be ignored, are ignored by default.\n\nDefault pattern \\`**\\/*\\` **is not added to your custom** if some of your patterns is not ignore (i.e. not starts with `!`). `package.json` and \\`**\\/node_modules/**\\/*` (only production dependencies will be copied) is added to your custom in any case. All default ignores are added in any case — you don't need to repeat it if you configure own patterns.\n\nMay be specified in the platform options (e.g. in the [mac](https://www.electron.build/mac)).\n\nYou may also specify custom source and destination directories by using `FileSet` objects instead of simple glob patterns.\n\n```json\n[\n{\n\"from\": \"path/to/source\",\n\"to\": \"path/to/destination\",\n\"filter\": [\"**\\/*\", \"!foo/*.js\"]\n}\n]\n```\n\nYou can use [file macros](https://www.electron.build/file-patterns#file-macros) in the `from` and `to` fields as well. `from` and `to` can be files and you can use this to [rename](https://github.com/electron-userland/electron-builder/issues/1119) a file while packaging."
|
|
2331
2339
|
},
|
|
2332
2340
|
"forceCodeSigning": {
|
|
2333
2341
|
"default": false,
|
|
@@ -2468,7 +2476,7 @@
|
|
|
2468
2476
|
}
|
|
2469
2477
|
],
|
|
2470
2478
|
"default": "AppImage",
|
|
2471
|
-
"description": "Target package type: list of `AppImage`, `flatpak`, `snap`, `deb`, `rpm`, `freebsd`, `pacman`, `p5p`, `apk`, `7z`, `zip`, `tar.xz`, `tar.lz`, `tar.gz`, `tar.bz2`, `dir`.\n\nelectron-builder [docker image](https://www.electron.build/multi-platform-build#docker) can be used to build Linux targets on any platform.\n\nPlease [do not put an AppImage into another archive](https://github.com/probonopd/AppImageKit/wiki/Creating-AppImages#common-mistake) like a .zip or .tar.gz."
|
|
2479
|
+
"description": "Target package type: list of `AppImage`, `flatpak`, `snap`, `deb`, `rpm`, `freebsd`, `pacman`, `p5p`, `apk`, `7z`, `zip`, `tar.xz`, `tar.lz`, `tar.gz`, `tar.bz2`, `dir`.\n\nelectron-builder [docker image](https://www.electron.build/docs/features/multi-platform-build#docker) can be used to build Linux targets on any platform.\n\nPlease [do not put an AppImage into another archive](https://github.com/probonopd/AppImageKit/wiki/Creating-AppImages#common-mistake) like a .zip or .tar.gz."
|
|
2472
2480
|
},
|
|
2473
2481
|
"vendor": {
|
|
2474
2482
|
"description": "The vendor. Defaults to [author](https://www.electron.build/configuration#author).",
|
|
@@ -2580,7 +2588,7 @@
|
|
|
2580
2588
|
"type": "null"
|
|
2581
2589
|
}
|
|
2582
2590
|
],
|
|
2583
|
-
"description": "Package dependencies.\n`rpm` defaults to `[\"gtk3\", \"libnotify\", \"nss\", \"libXScrnSaver\", \"(libXtst or libXtst6)\", \"xdg-utils\", \"at-spi2-core\", \"(libuuid or libuuid1)\"]`\n`pacman` defaults to `[\"c-ares\", \"ffmpeg\", \"gtk3\", \"
|
|
2591
|
+
"description": "Package dependencies.\n`rpm` defaults to `[\"gtk3\", \"libnotify\", \"nss\", \"libXScrnSaver\", \"(libXtst or libXtst6)\", \"xdg-utils\", \"at-spi2-core\", \"(libuuid or libuuid1)\"]`\n`pacman` defaults to `[\"c-ares\", \"ffmpeg\", \"gtk3\", \"libevent\", \"libvpx\", \"libxslt\", \"libxss\", \"minizip\", \"nss\", \"re2\", \"snappy\", \"libnotify\", \"libappindicator-gtk3\"]`\n\nUse the `\"default\"` keyword to extend the target's default list instead of replacing it:\n`[\"default\", \"my-extra-lib\"]` appends `my-extra-lib` to the defaults. The resulting list is deduplicated."
|
|
2584
2592
|
},
|
|
2585
2593
|
"description": {
|
|
2586
2594
|
"description": "As [description](https://www.electron.build/configuration#description) from application package.json, but allows you to specify different for Linux.",
|
|
@@ -2851,7 +2859,7 @@
|
|
|
2851
2859
|
"description": "The electron locales to keep. By default, all Electron locales used as-is."
|
|
2852
2860
|
},
|
|
2853
2861
|
"electronUpdaterCompatibility": {
|
|
2854
|
-
"description": "The [electron-updater compatibility](https://www.electron.build/auto-update#compatibility) semver range.",
|
|
2862
|
+
"description": "The [electron-updater compatibility](https://www.electron.build/docs/features/auto-update#compatibility) semver range.",
|
|
2855
2863
|
"type": [
|
|
2856
2864
|
"null",
|
|
2857
2865
|
"string"
|
|
@@ -2977,7 +2985,7 @@
|
|
|
2977
2985
|
]
|
|
2978
2986
|
}
|
|
2979
2987
|
],
|
|
2980
|
-
"description": "A [glob patterns](https://www.electron.build/file-patterns) relative to the [app directory](https://www.electron.build/configuration#directories), which specifies which files to include when copying files to create the package.\n\nDefaults to:\n```json\n[\n\"**\\/*\",\n\"!**\\/node_modules/*\\/{CHANGELOG.md,README.md,README,readme.md,readme}\",\n\"!**\\/node_modules/*\\/{test,__tests__,tests,powered-test,example,examples}\",\n\"!**\\/node_modules/*.d.ts\",\n\"!**\\/node_modules/.bin\",\n\"!**\\/*.{iml,o,hprof,orig,pyc,pyo,rbc,swp,csproj,sln,xproj}\",\n\"!.editorconfig\",\n\"!**\\/._*\",\n\"!**\\/{.DS_Store,.git,.hg,.svn,CVS,RCS,SCCS,.gitignore,.gitattributes}\",\n\"!**\\/{__pycache__,thumbs.db,.flowconfig,.idea,.vs,.nyc_output}\",\n\"!**\\/{appveyor.yml,.travis.yml,circle.yml}\",\n\"!**\\/{npm-debug.log,yarn.lock,.yarn-integrity,.yarn-metadata.json}\"\n]\n```\n\nDevelopment dependencies are never copied in any case. You don't need to ignore it explicitly. Hidden files are not ignored by default, but all files that should be ignored, are ignored by default.\n\nDefault pattern \\`**\\/*\\` **is not added to your custom** if some of your patterns is not ignore (i.e. not starts with `!`). `package.json` and \\`**\\/node_modules/**\\/*` (only production dependencies will be copied) is added to your custom in any case. All default ignores are added in any case — you don't need to repeat it if you configure own patterns.\n\nMay be specified in the platform options (e.g. in the [mac](https://www.electron.build/mac)).\n\nYou may also specify custom source and destination directories by using `FileSet` objects instead of simple glob patterns.\n\n```json\n[\n{\n\"from\": \"path/to/source\",\n\"to\": \"path/to/destination\",\n\"filter\": [\"**\\/*\", \"!foo/*.js\"]\n}\n]\n```\n\nYou can use [file macros](https://www.electron.build/file-patterns#file-macros) in the `from` and `to` fields as well. `from` and `to` can be files and you can use this to [rename](https://github.com/electron-userland/electron-builder/issues/1119) a file while packaging."
|
|
2988
|
+
"description": "A [glob patterns](https://www.electron.build/file-patterns) relative to the [app directory](https://www.electron.build/configuration#directories), which specifies which files to include when copying files to create the package.\n\nDefaults to:\n```json\n[\n\"**\\/*\",\n\"!**\\/node_modules/*\\/{CHANGELOG.md,README.md,README,readme.md,readme}\",\n\"!**\\/node_modules/*\\/{test,__tests__,tests,powered-test,example,examples}\",\n\"!**\\/node_modules/*.d.ts\",\n\"!**\\/node_modules/.bin\",\n\"!**\\/*.{iml,o,hprof,orig,pyc,pyo,rbc,swp,csproj,sln,slnx,xproj}\",\n\"!.editorconfig\",\n\"!**\\/._*\",\n\"!**\\/{.DS_Store,.git,.hg,.svn,CVS,RCS,SCCS,.gitignore,.gitattributes}\",\n\"!**\\/{__pycache__,thumbs.db,.flowconfig,.idea,.vs,.nyc_output}\",\n\"!**\\/{appveyor.yml,.travis.yml,circle.yml}\",\n\"!**\\/{npm-debug.log,yarn.lock,.yarn-integrity,.yarn-metadata.json}\"\n]\n```\n\nDevelopment dependencies are never copied in any case. You don't need to ignore it explicitly. Hidden files are not ignored by default, but all files that should be ignored, are ignored by default.\n\nDefault pattern \\`**\\/*\\` **is not added to your custom** if some of your patterns is not ignore (i.e. not starts with `!`). `package.json` and \\`**\\/node_modules/**\\/*` (only production dependencies will be copied) is added to your custom in any case. All default ignores are added in any case — you don't need to repeat it if you configure own patterns.\n\nMay be specified in the platform options (e.g. in the [mac](https://www.electron.build/mac)).\n\nYou may also specify custom source and destination directories by using `FileSet` objects instead of simple glob patterns.\n\n```json\n[\n{\n\"from\": \"path/to/source\",\n\"to\": \"path/to/destination\",\n\"filter\": [\"**\\/*\", \"!foo/*.js\"]\n}\n]\n```\n\nYou can use [file macros](https://www.electron.build/file-patterns#file-macros) in the `from` and `to` fields as well. `from` and `to` can be files and you can use this to [rename](https://github.com/electron-userland/electron-builder/issues/1119) a file while packaging."
|
|
2981
2989
|
},
|
|
2982
2990
|
"forceCodeSigning": {
|
|
2983
2991
|
"default": false,
|
|
@@ -3332,7 +3340,7 @@
|
|
|
3332
3340
|
"description": "The electron locales to keep. By default, all Electron locales used as-is."
|
|
3333
3341
|
},
|
|
3334
3342
|
"electronUpdaterCompatibility": {
|
|
3335
|
-
"description": "The [electron-updater compatibility](https://www.electron.build/auto-update#compatibility) semver range.",
|
|
3343
|
+
"description": "The [electron-updater compatibility](https://www.electron.build/docs/features/auto-update#compatibility) semver range.",
|
|
3336
3344
|
"type": [
|
|
3337
3345
|
"null",
|
|
3338
3346
|
"string"
|
|
@@ -3458,7 +3466,7 @@
|
|
|
3458
3466
|
]
|
|
3459
3467
|
}
|
|
3460
3468
|
],
|
|
3461
|
-
"description": "A [glob patterns](https://www.electron.build/file-patterns) relative to the [app directory](https://www.electron.build/configuration#directories), which specifies which files to include when copying files to create the package.\n\nDefaults to:\n```json\n[\n\"**\\/*\",\n\"!**\\/node_modules/*\\/{CHANGELOG.md,README.md,README,readme.md,readme}\",\n\"!**\\/node_modules/*\\/{test,__tests__,tests,powered-test,example,examples}\",\n\"!**\\/node_modules/*.d.ts\",\n\"!**\\/node_modules/.bin\",\n\"!**\\/*.{iml,o,hprof,orig,pyc,pyo,rbc,swp,csproj,sln,xproj}\",\n\"!.editorconfig\",\n\"!**\\/._*\",\n\"!**\\/{.DS_Store,.git,.hg,.svn,CVS,RCS,SCCS,.gitignore,.gitattributes}\",\n\"!**\\/{__pycache__,thumbs.db,.flowconfig,.idea,.vs,.nyc_output}\",\n\"!**\\/{appveyor.yml,.travis.yml,circle.yml}\",\n\"!**\\/{npm-debug.log,yarn.lock,.yarn-integrity,.yarn-metadata.json}\"\n]\n```\n\nDevelopment dependencies are never copied in any case. You don't need to ignore it explicitly. Hidden files are not ignored by default, but all files that should be ignored, are ignored by default.\n\nDefault pattern \\`**\\/*\\` **is not added to your custom** if some of your patterns is not ignore (i.e. not starts with `!`). `package.json` and \\`**\\/node_modules/**\\/*` (only production dependencies will be copied) is added to your custom in any case. All default ignores are added in any case — you don't need to repeat it if you configure own patterns.\n\nMay be specified in the platform options (e.g. in the [mac](https://www.electron.build/mac)).\n\nYou may also specify custom source and destination directories by using `FileSet` objects instead of simple glob patterns.\n\n```json\n[\n{\n\"from\": \"path/to/source\",\n\"to\": \"path/to/destination\",\n\"filter\": [\"**\\/*\", \"!foo/*.js\"]\n}\n]\n```\n\nYou can use [file macros](https://www.electron.build/file-patterns#file-macros) in the `from` and `to` fields as well. `from` and `to` can be files and you can use this to [rename](https://github.com/electron-userland/electron-builder/issues/1119) a file while packaging."
|
|
3469
|
+
"description": "A [glob patterns](https://www.electron.build/file-patterns) relative to the [app directory](https://www.electron.build/configuration#directories), which specifies which files to include when copying files to create the package.\n\nDefaults to:\n```json\n[\n\"**\\/*\",\n\"!**\\/node_modules/*\\/{CHANGELOG.md,README.md,README,readme.md,readme}\",\n\"!**\\/node_modules/*\\/{test,__tests__,tests,powered-test,example,examples}\",\n\"!**\\/node_modules/*.d.ts\",\n\"!**\\/node_modules/.bin\",\n\"!**\\/*.{iml,o,hprof,orig,pyc,pyo,rbc,swp,csproj,sln,slnx,xproj}\",\n\"!.editorconfig\",\n\"!**\\/._*\",\n\"!**\\/{.DS_Store,.git,.hg,.svn,CVS,RCS,SCCS,.gitignore,.gitattributes}\",\n\"!**\\/{__pycache__,thumbs.db,.flowconfig,.idea,.vs,.nyc_output}\",\n\"!**\\/{appveyor.yml,.travis.yml,circle.yml}\",\n\"!**\\/{npm-debug.log,yarn.lock,.yarn-integrity,.yarn-metadata.json}\"\n]\n```\n\nDevelopment dependencies are never copied in any case. You don't need to ignore it explicitly. Hidden files are not ignored by default, but all files that should be ignored, are ignored by default.\n\nDefault pattern \\`**\\/*\\` **is not added to your custom** if some of your patterns is not ignore (i.e. not starts with `!`). `package.json` and \\`**\\/node_modules/**\\/*` (only production dependencies will be copied) is added to your custom in any case. All default ignores are added in any case — you don't need to repeat it if you configure own patterns.\n\nMay be specified in the platform options (e.g. in the [mac](https://www.electron.build/mac)).\n\nYou may also specify custom source and destination directories by using `FileSet` objects instead of simple glob patterns.\n\n```json\n[\n{\n\"from\": \"path/to/source\",\n\"to\": \"path/to/destination\",\n\"filter\": [\"**\\/*\", \"!foo/*.js\"]\n}\n]\n```\n\nYou can use [file macros](https://www.electron.build/file-patterns#file-macros) in the `from` and `to` fields as well. `from` and `to` can be files and you can use this to [rename](https://github.com/electron-userland/electron-builder/issues/1119) a file while packaging."
|
|
3462
3470
|
},
|
|
3463
3471
|
"forceCodeSigning": {
|
|
3464
3472
|
"default": false,
|
|
@@ -5495,7 +5503,7 @@
|
|
|
5495
5503
|
"type": "null"
|
|
5496
5504
|
}
|
|
5497
5505
|
],
|
|
5498
|
-
"description": "Package dependencies.\n`rpm` defaults to `[\"gtk3\", \"libnotify\", \"nss\", \"libXScrnSaver\", \"(libXtst or libXtst6)\", \"xdg-utils\", \"at-spi2-core\", \"(libuuid or libuuid1)\"]`\n`pacman` defaults to `[\"c-ares\", \"ffmpeg\", \"gtk3\", \"
|
|
5506
|
+
"description": "Package dependencies.\n`rpm` defaults to `[\"gtk3\", \"libnotify\", \"nss\", \"libXScrnSaver\", \"(libXtst or libXtst6)\", \"xdg-utils\", \"at-spi2-core\", \"(libuuid or libuuid1)\"]`\n`pacman` defaults to `[\"c-ares\", \"ffmpeg\", \"gtk3\", \"libevent\", \"libvpx\", \"libxslt\", \"libxss\", \"minizip\", \"nss\", \"re2\", \"snappy\", \"libnotify\", \"libappindicator-gtk3\"]`\n\nUse the `\"default\"` keyword to extend the target's default list instead of replacing it:\n`[\"default\", \"my-extra-lib\"]` appends `my-extra-lib` to the defaults. The resulting list is deduplicated."
|
|
5499
5507
|
},
|
|
5500
5508
|
"description": {
|
|
5501
5509
|
"description": "As [description](https://www.electron.build/configuration#description) from application package.json, but allows you to specify different for Linux.",
|
|
@@ -5762,7 +5770,7 @@
|
|
|
5762
5770
|
]
|
|
5763
5771
|
},
|
|
5764
5772
|
"identity": {
|
|
5765
|
-
"description": "The name of certificate to use when signing. Consider using environment variables [CSC_LINK or CSC_NAME](https://www.electron.build/code-signing) instead of specifying this option.",
|
|
5773
|
+
"description": "The name of certificate to use when signing. Consider using environment variables [CSC_LINK or CSC_NAME](https://www.electron.build/docs/features/code-signing) instead of specifying this option.",
|
|
5766
5774
|
"type": [
|
|
5767
5775
|
"null",
|
|
5768
5776
|
"string"
|
|
@@ -6278,7 +6286,7 @@
|
|
|
6278
6286
|
},
|
|
6279
6287
|
"RemoteBuildOptions": {
|
|
6280
6288
|
"additionalProperties": false,
|
|
6281
|
-
"description": "Configuration for a remote snap build on [Launchpad](https://launchpad.net/).\nRemote builds run on Canonical's infrastructure without requiring native hardware or nested virtualisation.\n\
|
|
6289
|
+
"description": "Configuration for a remote snap build on [Launchpad](https://launchpad.net/).\nRemote builds run on Canonical's infrastructure without requiring native hardware or nested virtualisation.\n\nA single remote build can target one or more architectures. Set `buildFor` to a string for one\narch, or to an array (e.g. `[\"amd64\", \"arm64\"]`) to build several architectures in a single\n`snapcraft remote-build` job on Launchpad that emits a separate snap artifact per arch.\nAlternatively, the top-level `arch` option (e.g. `arch: [\"x64\", \"arm64\"]`) spawns a separate\nremote-build job per architecture — do not combine that with a `buildFor` array (mutually exclusive).\n\nAuthentication is resolved in this order:\n1. `cscLink` config field — base64-encoded credentials or a file path\n2. `SNAP_CSC_LINK` environment variable — same format as `cscLink`\n (CI-recommended; follows the same pattern as `WIN_CSC_LINK` for Windows code signing)\n3. `SNAPCRAFT_STORE_CREDENTIALS` environment variable (read directly by snapcraft)\n4. An active interactive `snapcraft login` session\n\n**CI setup** (set once as a CI secret):\n```sh\nexport SNAP_CSC_LINK=$(snapcraft export-login - | base64 -w0)\n```\nThe resolved credentials are injected only into the spawned `snapcraft` subprocess\nenvironment and never exposed through `process.env`.",
|
|
6282
6290
|
"properties": {
|
|
6283
6291
|
"acceptPublicUpload": {
|
|
6284
6292
|
"description": "Suppress the Launchpad public-upload consent prompt by automatically accepting it.\nYour source code will be uploaded to a **public** Launchpad repository.\nSet to `true` in CI once you understand the implications.",
|
|
@@ -6400,7 +6408,7 @@
|
|
|
6400
6408
|
"type": "null"
|
|
6401
6409
|
}
|
|
6402
6410
|
],
|
|
6403
|
-
"description": "Package dependencies.\n`rpm` defaults to `[\"gtk3\", \"libnotify\", \"nss\", \"libXScrnSaver\", \"(libXtst or libXtst6)\", \"xdg-utils\", \"at-spi2-core\", \"(libuuid or libuuid1)\"]`\n`pacman` defaults to `[\"c-ares\", \"ffmpeg\", \"gtk3\", \"
|
|
6411
|
+
"description": "Package dependencies.\n`rpm` defaults to `[\"gtk3\", \"libnotify\", \"nss\", \"libXScrnSaver\", \"(libXtst or libXtst6)\", \"xdg-utils\", \"at-spi2-core\", \"(libuuid or libuuid1)\"]`\n`pacman` defaults to `[\"c-ares\", \"ffmpeg\", \"gtk3\", \"libevent\", \"libvpx\", \"libxslt\", \"libxss\", \"minizip\", \"nss\", \"re2\", \"snappy\", \"libnotify\", \"libappindicator-gtk3\"]`\n\nUse the `\"default\"` keyword to extend the target's default list instead of replacing it:\n`[\"default\", \"my-extra-lib\"]` appends `my-extra-lib` to the defaults. The resulting list is deduplicated."
|
|
6404
6412
|
},
|
|
6405
6413
|
"description": {
|
|
6406
6414
|
"description": "As [description](https://www.electron.build/configuration#description) from application package.json, but allows you to specify different for Linux.",
|
|
@@ -7012,7 +7020,7 @@
|
|
|
7012
7020
|
"type": "null"
|
|
7013
7021
|
}
|
|
7014
7022
|
],
|
|
7015
|
-
"description": "Configuration for a remote build on [Launchpad](https://launchpad.net/).\nEnables cross-architecture builds in CI without native hardware or nested virtualisation.\
|
|
7023
|
+
"description": "Configuration for a remote build on [Launchpad](https://launchpad.net/).\nEnables cross-architecture builds in CI without native hardware or nested virtualisation.\nSet `remoteBuild.buildFor: [\"amd64\", \"arm64\"]` to build several architectures in one Launchpad\njob, or the top-level `arch: [\"x64\", \"arm64\"]` option to spawn a separate job per architecture\n(the two are mutually exclusive)."
|
|
7016
7024
|
},
|
|
7017
7025
|
"slots": {
|
|
7018
7026
|
"anyOf": [
|
|
@@ -8205,14 +8213,14 @@
|
|
|
8205
8213
|
},
|
|
8206
8214
|
{
|
|
8207
8215
|
"enum": [
|
|
8208
|
-
"1.2.
|
|
8216
|
+
"1.2.3",
|
|
8209
8217
|
"latest"
|
|
8210
8218
|
],
|
|
8211
8219
|
"type": "string"
|
|
8212
8220
|
}
|
|
8213
8221
|
],
|
|
8214
8222
|
"default": "latest",
|
|
8215
|
-
"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.
|
|
8223
|
+
"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.3\"` | Writes 16px/32px ICNS entries as `ic04`/`ic05` ARGB (fixes corrupt small icons in Finder) |\n\nReleases: https://github.com/electron-userland/electron-builder-binaries/blob/master/packages/icons/CHANGELOG.md"
|
|
8216
8224
|
},
|
|
8217
8225
|
"linuxToolsMac": {
|
|
8218
8226
|
"anyOf": [
|
|
@@ -8222,13 +8230,14 @@
|
|
|
8222
8230
|
{
|
|
8223
8231
|
"enum": [
|
|
8224
8232
|
"1.0.0",
|
|
8233
|
+
"1.0.1",
|
|
8225
8234
|
"latest"
|
|
8226
8235
|
],
|
|
8227
8236
|
"type": "string"
|
|
8228
8237
|
}
|
|
8229
8238
|
],
|
|
8230
8239
|
"default": "latest",
|
|
8231
|
-
"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"
|
|
8240
|
+
"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| `\"1.0.1\"` | Same tools rebuilt on macOS 15 runners — binaries run on macOS 15+ (1.0.0 required macOS 26) |\n\nReleases: https://github.com/electron-userland/electron-builder-binaries/blob/master/packages/linux-tools-mac/CHANGELOG.md"
|
|
8232
8241
|
},
|
|
8233
8242
|
"nsis": {
|
|
8234
8243
|
"anyOf": [
|
|
@@ -8255,13 +8264,14 @@
|
|
|
8255
8264
|
{
|
|
8256
8265
|
"enum": [
|
|
8257
8266
|
"1.0.0",
|
|
8267
|
+
"1.0.1",
|
|
8258
8268
|
"latest"
|
|
8259
8269
|
],
|
|
8260
8270
|
"type": "string"
|
|
8261
8271
|
}
|
|
8262
8272
|
],
|
|
8263
8273
|
"default": "latest",
|
|
8264
|
-
"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."
|
|
8274
|
+
"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.\n\nAvailable versions:\n| Version | Notes |\n|---------|-------|\n| `\"1.0.0\"` | Shipped the 32-bit `7za.exe` for every Windows arch (1.75 GiB memory cap, no LZMA2 multithreading on x64/arm64) |\n| `\"1.0.1\"` | Correct per-arch Windows binaries (x64, ia32, arm64) |\n\nReleases: https://github.com/electron-userland/electron-builder-binaries/blob/master/packages/7zip/CHANGELOG.md"
|
|
8265
8275
|
},
|
|
8266
8276
|
"winCodeSign": {
|
|
8267
8277
|
"anyOf": [
|
|
@@ -8309,7 +8319,7 @@
|
|
|
8309
8319
|
"description": "A custom toolset bundle supplied by the user in place of a built-in versioned bundle.\n\nThe bundle must mirror the expected directory layout of the corresponding built-in bundle.\nSee the build scripts at\nhttps://github.com/electron-userland/electron-builder-binaries/tree/master/packages.\n\nFile formats supported for `url` archives: `.zip`, `.7z`, `.tar.gz`, `.tar.xz`.",
|
|
8310
8320
|
"properties": {
|
|
8311
8321
|
"checksum": {
|
|
8312
|
-
"description": "SHA checksum of the custom toolset bundle for verification.\nRequired for remote (`https://`) URLs and local archive files (`file://`).\nNot needed for bare directory paths — the directory is used as-is with no caching.",
|
|
8322
|
+
"description": "SHA-256 checksum of the custom toolset bundle for verification, as a lowercase hex string\n(e.g. the output of `shasum -a 256 bundle.tar.gz`) — not the base64 values GitHub release\nnotes may show.\nRequired for remote (`https://`) URLs and local archive files (`file://`).\nNot needed for bare directory paths — the directory is used as-is with no caching.",
|
|
8313
8323
|
"type": "string"
|
|
8314
8324
|
},
|
|
8315
8325
|
"url": {
|
|
@@ -8466,7 +8476,7 @@
|
|
|
8466
8476
|
"description": "The electron locales to keep. By default, all Electron locales used as-is."
|
|
8467
8477
|
},
|
|
8468
8478
|
"electronUpdaterCompatibility": {
|
|
8469
|
-
"description": "The [electron-updater compatibility](https://www.electron.build/auto-update#compatibility) semver range.",
|
|
8479
|
+
"description": "The [electron-updater compatibility](https://www.electron.build/docs/features/auto-update#compatibility) semver range.",
|
|
8470
8480
|
"type": [
|
|
8471
8481
|
"null",
|
|
8472
8482
|
"string"
|
|
@@ -8572,7 +8582,7 @@
|
|
|
8572
8582
|
]
|
|
8573
8583
|
}
|
|
8574
8584
|
],
|
|
8575
|
-
"description": "A [glob patterns](https://www.electron.build/file-patterns) relative to the [app directory](https://www.electron.build/configuration#directories), which specifies which files to include when copying files to create the package.\n\nDefaults to:\n```json\n[\n\"**\\/*\",\n\"!**\\/node_modules/*\\/{CHANGELOG.md,README.md,README,readme.md,readme}\",\n\"!**\\/node_modules/*\\/{test,__tests__,tests,powered-test,example,examples}\",\n\"!**\\/node_modules/*.d.ts\",\n\"!**\\/node_modules/.bin\",\n\"!**\\/*.{iml,o,hprof,orig,pyc,pyo,rbc,swp,csproj,sln,xproj}\",\n\"!.editorconfig\",\n\"!**\\/._*\",\n\"!**\\/{.DS_Store,.git,.hg,.svn,CVS,RCS,SCCS,.gitignore,.gitattributes}\",\n\"!**\\/{__pycache__,thumbs.db,.flowconfig,.idea,.vs,.nyc_output}\",\n\"!**\\/{appveyor.yml,.travis.yml,circle.yml}\",\n\"!**\\/{npm-debug.log,yarn.lock,.yarn-integrity,.yarn-metadata.json}\"\n]\n```\n\nDevelopment dependencies are never copied in any case. You don't need to ignore it explicitly. Hidden files are not ignored by default, but all files that should be ignored, are ignored by default.\n\nDefault pattern \\`**\\/*\\` **is not added to your custom** if some of your patterns is not ignore (i.e. not starts with `!`). `package.json` and \\`**\\/node_modules/**\\/*` (only production dependencies will be copied) is added to your custom in any case. All default ignores are added in any case — you don't need to repeat it if you configure own patterns.\n\nMay be specified in the platform options (e.g. in the [mac](https://www.electron.build/mac)).\n\nYou may also specify custom source and destination directories by using `FileSet` objects instead of simple glob patterns.\n\n```json\n[\n{\n\"from\": \"path/to/source\",\n\"to\": \"path/to/destination\",\n\"filter\": [\"**\\/*\", \"!foo/*.js\"]\n}\n]\n```\n\nYou can use [file macros](https://www.electron.build/file-patterns#file-macros) in the `from` and `to` fields as well. `from` and `to` can be files and you can use this to [rename](https://github.com/electron-userland/electron-builder/issues/1119) a file while packaging."
|
|
8585
|
+
"description": "A [glob patterns](https://www.electron.build/file-patterns) relative to the [app directory](https://www.electron.build/configuration#directories), which specifies which files to include when copying files to create the package.\n\nDefaults to:\n```json\n[\n\"**\\/*\",\n\"!**\\/node_modules/*\\/{CHANGELOG.md,README.md,README,readme.md,readme}\",\n\"!**\\/node_modules/*\\/{test,__tests__,tests,powered-test,example,examples}\",\n\"!**\\/node_modules/*.d.ts\",\n\"!**\\/node_modules/.bin\",\n\"!**\\/*.{iml,o,hprof,orig,pyc,pyo,rbc,swp,csproj,sln,slnx,xproj}\",\n\"!.editorconfig\",\n\"!**\\/._*\",\n\"!**\\/{.DS_Store,.git,.hg,.svn,CVS,RCS,SCCS,.gitignore,.gitattributes}\",\n\"!**\\/{__pycache__,thumbs.db,.flowconfig,.idea,.vs,.nyc_output}\",\n\"!**\\/{appveyor.yml,.travis.yml,circle.yml}\",\n\"!**\\/{npm-debug.log,yarn.lock,.yarn-integrity,.yarn-metadata.json}\"\n]\n```\n\nDevelopment dependencies are never copied in any case. You don't need to ignore it explicitly. Hidden files are not ignored by default, but all files that should be ignored, are ignored by default.\n\nDefault pattern \\`**\\/*\\` **is not added to your custom** if some of your patterns is not ignore (i.e. not starts with `!`). `package.json` and \\`**\\/node_modules/**\\/*` (only production dependencies will be copied) is added to your custom in any case. All default ignores are added in any case — you don't need to repeat it if you configure own patterns.\n\nMay be specified in the platform options (e.g. in the [mac](https://www.electron.build/mac)).\n\nYou may also specify custom source and destination directories by using `FileSet` objects instead of simple glob patterns.\n\n```json\n[\n{\n\"from\": \"path/to/source\",\n\"to\": \"path/to/destination\",\n\"filter\": [\"**\\/*\", \"!foo/*.js\"]\n}\n]\n```\n\nYou can use [file macros](https://www.electron.build/file-patterns#file-macros) in the `from` and `to` fields as well. `from` and `to` can be files and you can use this to [rename](https://github.com/electron-userland/electron-builder/issues/1119) a file while packaging."
|
|
8576
8586
|
},
|
|
8577
8587
|
"forceCodeSigning": {
|
|
8578
8588
|
"default": false,
|
|
@@ -8703,7 +8713,7 @@
|
|
|
8703
8713
|
"type": "null"
|
|
8704
8714
|
}
|
|
8705
8715
|
],
|
|
8706
|
-
"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
|
|
8716
|
+
"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 **required** `type` field selects the\n signing backend (`signtool`, `hsm`, `pkcs11`, or `azure`) and dispatches to a dedicated sign\n manager; provide exactly one of the modes below. When `win.sign` is left unset, the `signtool`\n backend is used with env-discovered credentials. Each output artifact is signed individually,\n and by 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/docs/features/code-signing)."
|
|
8707
8717
|
},
|
|
8708
8718
|
"signExts": {
|
|
8709
8719
|
"anyOf": [
|
|
@@ -8832,7 +8842,7 @@
|
|
|
8832
8842
|
]
|
|
8833
8843
|
}
|
|
8834
8844
|
],
|
|
8835
|
-
"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)."
|
|
8845
|
+
"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/docs/features/code-signing)."
|
|
8836
8846
|
},
|
|
8837
8847
|
"signingHashAlgorithms": {
|
|
8838
8848
|
"anyOf": [
|
|
@@ -8937,7 +8947,7 @@
|
|
|
8937
8947
|
]
|
|
8938
8948
|
}
|
|
8939
8949
|
],
|
|
8940
|
-
"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)."
|
|
8950
|
+
"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/docs/features/code-signing)."
|
|
8941
8951
|
},
|
|
8942
8952
|
"signingHashAlgorithms": {
|
|
8943
8953
|
"anyOf": [
|
|
@@ -8991,7 +9001,7 @@
|
|
|
8991
9001
|
]
|
|
8992
9002
|
},
|
|
8993
9003
|
"certificateFile": {
|
|
8994
|
-
"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).",
|
|
9004
|
+
"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/docs/features/code-signing).",
|
|
8995
9005
|
"type": [
|
|
8996
9006
|
"null",
|
|
8997
9007
|
"string"
|
|
@@ -9055,7 +9065,7 @@
|
|
|
9055
9065
|
]
|
|
9056
9066
|
}
|
|
9057
9067
|
],
|
|
9058
|
-
"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)."
|
|
9068
|
+
"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/docs/features/code-signing)."
|
|
9059
9069
|
},
|
|
9060
9070
|
"signingHashAlgorithms": {
|
|
9061
9071
|
"anyOf": [
|
|
@@ -9154,6 +9164,24 @@
|
|
|
9154
9164
|
],
|
|
9155
9165
|
"description": "Called after code signing but **before** the signed app is packed into the final\ndistributable format (e.g. before `dmg` is created from the signed `.app`).\n\nUse this hook to perform post-sign validation or to add signed resources that are not part of\nthe main app bundle.\n\nReceives an {@link AfterPackContext}."
|
|
9156
9166
|
},
|
|
9167
|
+
"allowMissingDependencies": {
|
|
9168
|
+
"anyOf": [
|
|
9169
|
+
{
|
|
9170
|
+
"items": {
|
|
9171
|
+
"type": "string"
|
|
9172
|
+
},
|
|
9173
|
+
"type": "array"
|
|
9174
|
+
},
|
|
9175
|
+
{
|
|
9176
|
+
"type": [
|
|
9177
|
+
"null",
|
|
9178
|
+
"boolean"
|
|
9179
|
+
]
|
|
9180
|
+
}
|
|
9181
|
+
],
|
|
9182
|
+
"default": false,
|
|
9183
|
+
"description": "Whether production dependencies that cannot be resolved during node-module collection are\nallowed — i.e. whether the build should continue with a warning instead of failing.\n\nDuring collection every production dependency must resolve to an installed package on disk. A\ndependency that does not resolve (`cannot find path for dependency` / `dependency not found on\ndisk`) is not bundled, which typically breaks the packaged app at runtime with\n`MODULE_NOT_FOUND`.\n\n- `false` or `null` (default): the build fails after dependency collection completes,\n reporting the **complete** list of missing production dependencies at once.\n- `string[]`: the listed dependency names are allowed to be missing; any other missing\n production dependency still fails the build. Entries match the package name of the reported\n `name@version` entry (e.g. `some-native-module`, `@scope/pkg`), or an exact `name@version`\n string to allow only that resolved version to be missing.\n- `true`: missing production dependencies are only logged as warnings (the electron-builder\n ≤ 26 behavior).\n\nMissing *optional* dependencies (declared in `optionalDependencies`, e.g. `fsevents` on\nLinux/Windows, or platform-specific packages) are always allowed and never fail the build.\n\nIndependent of {@link ignoredProductionDependencies}, which controls which dependencies are\nexcluded from the copied `node_modules`; this option only controls validation of the\ncollection result."
|
|
9184
|
+
},
|
|
9157
9185
|
"apk": {
|
|
9158
9186
|
"anyOf": [
|
|
9159
9187
|
{
|
|
@@ -9411,7 +9439,7 @@
|
|
|
9411
9439
|
]
|
|
9412
9440
|
}
|
|
9413
9441
|
],
|
|
9414
|
-
"description": "Override the source of the Electron distribution to stage.\n\nShould return the path to either:\n- A **directory** containing a pre-built, unpacked Electron app (e.g. `~/electron/out/R`).\n- A **directory** containing Electron zip archives following the naming convention\n `electron-v${version}-${platformName}-${arch}.zip`.\n\nWhen not set, electron-builder downloads the official Electron release from GitHub (or the\nmirror configured via `
|
|
9442
|
+
"description": "Override the source of the Electron distribution to stage.\n\nShould return the path to either:\n- A **directory** containing a pre-built, unpacked Electron app (e.g. `~/electron/out/R`).\n- A **directory** containing Electron zip archives following the naming convention\n `electron-v${version}-${platformName}-${arch}.zip`.\n\nWhen not set, electron-builder downloads the official Electron release from GitHub (or the\nmirror configured via `electronGet`).\n\nReceives a {@link PrepareApplicationStageDirectoryOptions}."
|
|
9415
9443
|
},
|
|
9416
9444
|
"electronFuses": {
|
|
9417
9445
|
"anyOf": [
|
|
@@ -9433,7 +9461,7 @@
|
|
|
9433
9461
|
"type": "null"
|
|
9434
9462
|
}
|
|
9435
9463
|
],
|
|
9436
|
-
"description": "Options forwarded to [`@electron/get`](https://github.com/electron/get) when downloading the\nElectron distribution to package."
|
|
9464
|
+
"description": "Options forwarded to [`@electron/get`](https://github.com/electron/get) when downloading the\nElectron distribution to package.\n\n`checksums` (a map of artifact file name → SHA-256 hex) makes checksum validation fully offline —\nwithout it, `@electron/get` fetches `SHASUMS256.txt` from the network on every build, even when the\nartifact itself is already cached. When `checksums` is not configured, electron-builder automatically\npicks up a locally seeded `SHASUMS256.txt-<version>` (or `SHASUMS256.txt`) file at the root of the\nElectron cache directory. See the\n[air-gapped / offline builds guide](https://www.electron.build/tutorials/offline-air-gapped-builds)."
|
|
9437
9465
|
},
|
|
9438
9466
|
"electronLanguages": {
|
|
9439
9467
|
"anyOf": [
|
|
@@ -9450,7 +9478,7 @@
|
|
|
9450
9478
|
"description": "The electron locales to keep. By default, all Electron locales used as-is."
|
|
9451
9479
|
},
|
|
9452
9480
|
"electronUpdaterCompatibility": {
|
|
9453
|
-
"description": "The [electron-updater compatibility](https://www.electron.build/auto-update#compatibility) semver range.",
|
|
9481
|
+
"description": "The [electron-updater compatibility](https://www.electron.build/docs/features/auto-update#compatibility) semver range.",
|
|
9454
9482
|
"type": [
|
|
9455
9483
|
"null",
|
|
9456
9484
|
"string"
|
|
@@ -9583,7 +9611,7 @@
|
|
|
9583
9611
|
]
|
|
9584
9612
|
}
|
|
9585
9613
|
],
|
|
9586
|
-
"description": "A [glob patterns](https://www.electron.build/file-patterns) relative to the [app directory](https://www.electron.build/configuration#directories), which specifies which files to include when copying files to create the package.\n\nDefaults to:\n```json\n[\n\"**\\/*\",\n\"!**\\/node_modules/*\\/{CHANGELOG.md,README.md,README,readme.md,readme}\",\n\"!**\\/node_modules/*\\/{test,__tests__,tests,powered-test,example,examples}\",\n\"!**\\/node_modules/*.d.ts\",\n\"!**\\/node_modules/.bin\",\n\"!**\\/*.{iml,o,hprof,orig,pyc,pyo,rbc,swp,csproj,sln,xproj}\",\n\"!.editorconfig\",\n\"!**\\/._*\",\n\"!**\\/{.DS_Store,.git,.hg,.svn,CVS,RCS,SCCS,.gitignore,.gitattributes}\",\n\"!**\\/{__pycache__,thumbs.db,.flowconfig,.idea,.vs,.nyc_output}\",\n\"!**\\/{appveyor.yml,.travis.yml,circle.yml}\",\n\"!**\\/{npm-debug.log,yarn.lock,.yarn-integrity,.yarn-metadata.json}\"\n]\n```\n\nDevelopment dependencies are never copied in any case. You don't need to ignore it explicitly. Hidden files are not ignored by default, but all files that should be ignored, are ignored by default.\n\nDefault pattern \\`**\\/*\\` **is not added to your custom** if some of your patterns is not ignore (i.e. not starts with `!`). `package.json` and \\`**\\/node_modules/**\\/*` (only production dependencies will be copied) is added to your custom in any case. All default ignores are added in any case — you don't need to repeat it if you configure own patterns.\n\nMay be specified in the platform options (e.g. in the [mac](https://www.electron.build/mac)).\n\nYou may also specify custom source and destination directories by using `FileSet` objects instead of simple glob patterns.\n\n```json\n[\n{\n\"from\": \"path/to/source\",\n\"to\": \"path/to/destination\",\n\"filter\": [\"**\\/*\", \"!foo/*.js\"]\n}\n]\n```\n\nYou can use [file macros](https://www.electron.build/file-patterns#file-macros) in the `from` and `to` fields as well. `from` and `to` can be files and you can use this to [rename](https://github.com/electron-userland/electron-builder/issues/1119) a file while packaging."
|
|
9614
|
+
"description": "A [glob patterns](https://www.electron.build/file-patterns) relative to the [app directory](https://www.electron.build/configuration#directories), which specifies which files to include when copying files to create the package.\n\nDefaults to:\n```json\n[\n\"**\\/*\",\n\"!**\\/node_modules/*\\/{CHANGELOG.md,README.md,README,readme.md,readme}\",\n\"!**\\/node_modules/*\\/{test,__tests__,tests,powered-test,example,examples}\",\n\"!**\\/node_modules/*.d.ts\",\n\"!**\\/node_modules/.bin\",\n\"!**\\/*.{iml,o,hprof,orig,pyc,pyo,rbc,swp,csproj,sln,slnx,xproj}\",\n\"!.editorconfig\",\n\"!**\\/._*\",\n\"!**\\/{.DS_Store,.git,.hg,.svn,CVS,RCS,SCCS,.gitignore,.gitattributes}\",\n\"!**\\/{__pycache__,thumbs.db,.flowconfig,.idea,.vs,.nyc_output}\",\n\"!**\\/{appveyor.yml,.travis.yml,circle.yml}\",\n\"!**\\/{npm-debug.log,yarn.lock,.yarn-integrity,.yarn-metadata.json}\"\n]\n```\n\nDevelopment dependencies are never copied in any case. You don't need to ignore it explicitly. Hidden files are not ignored by default, but all files that should be ignored, are ignored by default.\n\nDefault pattern \\`**\\/*\\` **is not added to your custom** if some of your patterns is not ignore (i.e. not starts with `!`). `package.json` and \\`**\\/node_modules/**\\/*` (only production dependencies will be copied) is added to your custom in any case. All default ignores are added in any case — you don't need to repeat it if you configure own patterns.\n\nMay be specified in the platform options (e.g. in the [mac](https://www.electron.build/mac)).\n\nYou may also specify custom source and destination directories by using `FileSet` objects instead of simple glob patterns.\n\n```json\n[\n{\n\"from\": \"path/to/source\",\n\"to\": \"path/to/destination\",\n\"filter\": [\"**\\/*\", \"!foo/*.js\"]\n}\n]\n```\n\nYou can use [file macros](https://www.electron.build/file-patterns#file-macros) in the `from` and `to` fields as well. `from` and `to` can be files and you can use this to [rename](https://github.com/electron-userland/electron-builder/issues/1119) a file while packaging."
|
|
9587
9615
|
},
|
|
9588
9616
|
"flatpak": {
|
|
9589
9617
|
"anyOf": [
|
|
@@ -9996,7 +10024,7 @@
|
|
|
9996
10024
|
"type": "null"
|
|
9997
10025
|
}
|
|
9998
10026
|
],
|
|
9999
|
-
"description": "Pinned versions of the binary toolsets electron-builder downloads and uses internally.\n\nEach property selects a specific release of the corresponding tool bundle. Set a property to\n`\"0.0.0\"` to force the legacy bundle (pre-v27 behaviour). Leave a property unset (or set to\n`
|
|
10027
|
+
"description": "Pinned versions of the binary toolsets electron-builder downloads and uses internally.\n\nEach property selects a specific release of the corresponding tool bundle. Set a property to\n`\"0.0.0\"` to force the legacy bundle (pre-v27 behaviour). Leave a property unset (or set it to\n`\"latest\"`) to use the modern default (newest bundle) for that toolset.\n\nNote: Toolset versioning can drop intermediate releases (such as if a problem is discovered in a bundle). If you need to pin to a specific release, check the release notes for the toolset to ensure the version you specify is valid."
|
|
10000
10028
|
},
|
|
10001
10029
|
"win": {
|
|
10002
10030
|
"anyOf": [
|
|
@@ -50,7 +50,7 @@ Name "${PRODUCT_NAME}" "${DoubleAmpersand}"
|
|
|
50
50
|
${OrIf} ${IsWinME}
|
|
51
51
|
${OrIf} ${IsWinXP}
|
|
52
52
|
${OrIf} ${IsWinVista}
|
|
53
|
-
MessageBox MB_OK "$(win7Required)"
|
|
53
|
+
MessageBox MB_OK "$(win7Required)" /SD IDOK
|
|
54
54
|
Quit
|
|
55
55
|
${EndIf}
|
|
56
56
|
|
|
@@ -67,7 +67,7 @@ Name "${PRODUCT_NAME}" "${DoubleAmpersand}"
|
|
|
67
67
|
SetRegView 64
|
|
68
68
|
${Else}
|
|
69
69
|
!ifndef APP_32
|
|
70
|
-
MessageBox MB_OK|MB_ICONEXCLAMATION "$(x64WinRequired)"
|
|
70
|
+
MessageBox MB_OK|MB_ICONEXCLAMATION "$(x64WinRequired)" /SD IDOK
|
|
71
71
|
Quit
|
|
72
72
|
!endif
|
|
73
73
|
${EndIf}
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
!include "nsProcess.nsh"
|
|
3
3
|
!endif
|
|
4
4
|
|
|
5
|
+
!include "WordFunc.nsh"
|
|
6
|
+
|
|
5
7
|
!ifmacrondef customCheckAppRunning
|
|
6
8
|
!include "getProcessInfo.nsh"
|
|
7
9
|
Var pid
|
|
@@ -29,11 +31,73 @@
|
|
|
29
31
|
launch:
|
|
30
32
|
!macroend
|
|
31
33
|
|
|
34
|
+
# strips trailing backslashes from the path in register _VAR (_TEMP is scratch), so that the
|
|
35
|
+
# single separator the caller appends cannot become a double backslash that never matches
|
|
36
|
+
!macro TRIM_TRAILING_BACKSLASHES _VAR _TEMP
|
|
37
|
+
${Do}
|
|
38
|
+
StrCpy ${_TEMP} ${_VAR} 1 -1
|
|
39
|
+
${if} ${_TEMP} != "\"
|
|
40
|
+
${Break}
|
|
41
|
+
${endIf}
|
|
42
|
+
StrCpy ${_VAR} ${_VAR} -1
|
|
43
|
+
${Loop}
|
|
44
|
+
!macroend
|
|
45
|
+
|
|
46
|
+
# appends "-or <path>.StartsWith(...)" to $processPathFilter for the InstallLocation stored in
|
|
47
|
+
# the given registry root (if any); expects $R8 to hold the escaped, normalized $INSTDIR prefix
|
|
48
|
+
# already in the filter (used to skip duplicates)
|
|
49
|
+
!macro APPEND_INSTALL_LOCATION_TO_PROCESS_PATH_FILTER _ROOT_KEY
|
|
50
|
+
ReadRegStr $R9 ${_ROOT_KEY} "${INSTALL_REGISTRY_KEY}" InstallLocation
|
|
51
|
+
# a registry value may carry a trailing backslash (e.g. written by an installer run with
|
|
52
|
+
# /D=C:\path\), which would defeat the StartsWith prefix built below
|
|
53
|
+
!insertmacro TRIM_TRAILING_BACKSLASHES $R9 $R7
|
|
54
|
+
# $R7 = $R9 with all double quotes removed; a double quote is invalid in a Windows path
|
|
55
|
+
# and would break out of the double-quoted PowerShell -Command argument built in
|
|
56
|
+
# FIND_PROCESS/KILL_PROCESS, so any value containing one is skipped below
|
|
57
|
+
${WordReplace} $R9 '"' "" "+" $R7
|
|
58
|
+
${if} $R9 != ""
|
|
59
|
+
${andIf} $R9 == $R7
|
|
60
|
+
# escape single quotes for the single-quoted PowerShell string literal, so a quote in the
|
|
61
|
+
# registry value can neither break the expression nor inject PowerShell into the
|
|
62
|
+
# (possibly elevated) installer
|
|
63
|
+
${WordReplace} $R9 "'" "''" "+" $R7
|
|
64
|
+
${if} $R7 != $R8
|
|
65
|
+
StrCpy $processPathFilter "$processPathFilter -or $$_.Path.StartsWith('$R7\', 'CurrentCultureIgnoreCase')"
|
|
66
|
+
${endIf}
|
|
67
|
+
${endIf}
|
|
68
|
+
!macroend
|
|
69
|
+
|
|
32
70
|
!macro CHECK_APP_RUNNING
|
|
33
71
|
Var /GLOBAL CmdPath
|
|
34
72
|
Var /GLOBAL PowerShellPath
|
|
73
|
+
Var /GLOBAL processPathFilter
|
|
35
74
|
StrCpy $CmdPath "$SYSDIR\cmd.exe"
|
|
36
75
|
StrCpy $PowerShellPath "$SYSDIR\WindowsPowerShell\v1.0\powershell.exe"
|
|
76
|
+
Push $R8
|
|
77
|
+
Push $R9
|
|
78
|
+
# PowerShell filter matching processes running from the installation directory
|
|
79
|
+
# (trailing backslash so that a sibling directory with the same prefix is not matched).
|
|
80
|
+
# $R8 = $INSTDIR with any trailing backslashes stripped ($INSTDIR can carry one, e.g. from
|
|
81
|
+
# /D=C:\path\ or a registry-restored install location, and the appended separator below
|
|
82
|
+
# would then become a never-matching double backslash) and with single quotes escaped ('')
|
|
83
|
+
# for the single-quoted PowerShell string literal, so a quote in the path can neither break
|
|
84
|
+
# the expression nor inject PowerShell; a double quote needs no handling here because it is
|
|
85
|
+
# invalid in a Windows path and NSIS never lets $INSTDIR contain one
|
|
86
|
+
StrCpy $R8 $INSTDIR
|
|
87
|
+
!insertmacro TRIM_TRAILING_BACKSLASHES $R8 $R9
|
|
88
|
+
${WordReplace} $R8 "'" "''" "+" $R8
|
|
89
|
+
StrCpy $processPathFilter "$$_.Path.StartsWith('$R8\', 'CurrentCultureIgnoreCase')"
|
|
90
|
+
!ifndef BUILD_UNINSTALLER
|
|
91
|
+
# also match processes running from the previous per-user and per-machine installation directories,
|
|
92
|
+
# because the previous installation is uninstalled during install
|
|
93
|
+
# https://github.com/electron-userland/electron-builder/issues/10022
|
|
94
|
+
Push $R7
|
|
95
|
+
!insertmacro APPEND_INSTALL_LOCATION_TO_PROCESS_PATH_FILTER HKCU
|
|
96
|
+
!insertmacro APPEND_INSTALL_LOCATION_TO_PROCESS_PATH_FILTER HKLM
|
|
97
|
+
Pop $R7
|
|
98
|
+
!endif
|
|
99
|
+
Pop $R9
|
|
100
|
+
Pop $R8
|
|
37
101
|
!ifmacrodef customCheckAppRunning
|
|
38
102
|
!insertmacro customCheckAppRunning
|
|
39
103
|
!else
|
|
@@ -45,12 +109,12 @@
|
|
|
45
109
|
!macro IS_POWERSHELL_AVAILABLE
|
|
46
110
|
Var /GLOBAL IsPowerShellAvailable ; 0 = available, 1 = not available
|
|
47
111
|
# Try running PowerShell with a simple command to check if it's available
|
|
48
|
-
nsExec::Exec `"$PowerShellPath" -C "if (Get-Command Get-CimInstance -ErrorAction SilentlyContinue) { exit 0 } else { exit 1 }"`
|
|
112
|
+
nsExec::Exec `"$PowerShellPath" -NoProfile -NonInteractive -C "if (Get-Command Get-CimInstance -ErrorAction SilentlyContinue) { exit 0 } else { exit 1 }"`
|
|
49
113
|
Pop $0 # Return code (0 = success, other = error)
|
|
50
114
|
|
|
51
115
|
${if} $0 == 0
|
|
52
116
|
# PowerShell is available, check if it's not blocked by policies
|
|
53
|
-
nsExec::Exec `"$PowerShellPath" -C "if ((Get-ExecutionPolicy -Scope Process) -eq 'Restricted') { exit 1 } else { exit 0 }"`
|
|
117
|
+
nsExec::Exec `"$PowerShellPath" -NoProfile -NonInteractive -C "if ((Get-ExecutionPolicy -Scope Process) -eq 'Restricted') { exit 1 } else { exit 0 }"`
|
|
54
118
|
Pop $0
|
|
55
119
|
${endIf}
|
|
56
120
|
|
|
@@ -63,7 +127,7 @@
|
|
|
63
127
|
|
|
64
128
|
!macro FIND_PROCESS _FILE _RETURN
|
|
65
129
|
${if} $IsPowerShellAvailable == 0
|
|
66
|
-
nsExec::Exec `"$PowerShellPath" -C "if ((Get-CimInstance -ClassName Win32_Process | ? {$$_.Path -and
|
|
130
|
+
nsExec::Exec `"$PowerShellPath" -NoProfile -NonInteractive -C "if ((Get-CimInstance -ClassName Win32_Process | ? {$$_.Path -and ($processPathFilter)}).Count -gt 0) { exit 0 } else { exit 1 }"`
|
|
67
131
|
Pop ${_RETURN}
|
|
68
132
|
${else}
|
|
69
133
|
!ifdef INSTALL_MODE_PER_ALL_USERS
|
|
@@ -91,7 +155,7 @@
|
|
|
91
155
|
${endIf}
|
|
92
156
|
|
|
93
157
|
${if} $IsPowerShellAvailable == 0
|
|
94
|
-
nsExec::Exec `"$PowerShellPath" -C "Get-CimInstance -ClassName Win32_Process | ? {$$_.Path -and
|
|
158
|
+
nsExec::Exec `"$PowerShellPath" -NoProfile -NonInteractive -C "Get-CimInstance -ClassName Win32_Process | ? {$$_.Path -and ($processPathFilter)} | % { Stop-Process -Id $$_.ProcessId $0 }"`
|
|
95
159
|
${else}
|
|
96
160
|
!ifdef INSTALL_MODE_PER_ALL_USERS
|
|
97
161
|
nsExec::Exec `taskkill /IM "${_FILE}" /FI "PID ne $pid"`
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
nsisunz::Unzip "$PLUGINSDIR\app-$packageArch.zip" "$INSTDIR"
|
|
83
83
|
Pop $R0
|
|
84
84
|
StrCmp $R0 "success" +3
|
|
85
|
-
MessageBox MB_OK|MB_ICONEXCLAMATION "$(decompressionFailed)$\n$R0"
|
|
85
|
+
MessageBox MB_OK|MB_ICONEXCLAMATION "$(decompressionFailed)$\n$R0" /SD IDOK
|
|
86
86
|
Quit
|
|
87
87
|
!else
|
|
88
88
|
!insertmacro extractUsing7za "$PLUGINSDIR\app-$packageArch.7z"
|
|
@@ -126,7 +126,7 @@ Function handleUninstallResult
|
|
|
126
126
|
Return
|
|
127
127
|
|
|
128
128
|
${if} $R0 != 0
|
|
129
|
-
MessageBox MB_OK|MB_ICONEXCLAMATION "$(uninstallFailed): $R0"
|
|
129
|
+
MessageBox MB_OK|MB_ICONEXCLAMATION "$(uninstallFailed): $R0" /SD IDOK
|
|
130
130
|
DetailPrint `Uninstall was not successful. Uninstaller error code: $R0.`
|
|
131
131
|
SetErrorLevel 2
|
|
132
132
|
Quit
|
|
@@ -216,7 +216,7 @@ Function uninstallOldVersion
|
|
|
216
216
|
IntOp $R5 $R5 + 1
|
|
217
217
|
|
|
218
218
|
${if} $R5 > 5
|
|
219
|
-
MessageBox MB_RETRYCANCEL|MB_ICONEXCLAMATION "$(
|
|
219
|
+
MessageBox MB_RETRYCANCEL|MB_ICONEXCLAMATION "$(uninstallFailed): $R0" /SD IDCANCEL IDRETRY OneMoreAttempt
|
|
220
220
|
Return
|
|
221
221
|
${endIf}
|
|
222
222
|
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
${if} $3 == $1
|
|
65
65
|
Goto fun_extract
|
|
66
66
|
${else}
|
|
67
|
-
MessageBox MB_OK "Package file $4 found locally, but checksum doesn't match — expected $1, actual $3.$\r$\nLocal file is ignored and package will be downloaded from Internet."
|
|
67
|
+
MessageBox MB_OK "Package file $4 found locally, but checksum doesn't match — expected $1, actual $3.$\r$\nLocal file is ignored and package will be downloaded from Internet." /SD IDOK
|
|
68
68
|
${endIf}
|
|
69
69
|
${endIf}
|
|
70
70
|
${endIf}
|