app-builder-lib 26.11.0 → 26.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/out/binDownload.js +4 -1
- package/out/binDownload.js.map +1 -1
- package/out/codeSign/codesign.js +7 -23
- package/out/codeSign/codesign.js.map +1 -1
- package/out/configuration.d.ts +36 -2
- package/out/configuration.js.map +1 -1
- package/out/fileMatcher.d.ts +2 -1
- package/out/fileMatcher.js +0 -1
- package/out/fileMatcher.js.map +1 -1
- package/out/index.d.ts +1 -1
- package/out/index.js.map +1 -1
- package/out/linuxPackager.js +1 -1
- package/out/linuxPackager.js.map +1 -1
- package/out/macPackager.js +0 -12
- package/out/macPackager.js.map +1 -1
- package/out/node-module-collector/moduleManager.d.ts +1 -0
- package/out/node-module-collector/moduleManager.js +2 -0
- package/out/node-module-collector/moduleManager.js.map +1 -1
- package/out/node-module-collector/nodeModulesCollector.d.ts +3 -2
- package/out/node-module-collector/nodeModulesCollector.js +25 -5
- package/out/node-module-collector/nodeModulesCollector.js.map +1 -1
- package/out/node-module-collector/pnpmNodeModulesCollector.js +5 -1
- package/out/node-module-collector/pnpmNodeModulesCollector.js.map +1 -1
- package/out/options/SnapOptions.d.ts +415 -56
- package/out/options/SnapOptions.js.map +1 -1
- package/out/options/linuxOptions.d.ts +8 -0
- package/out/options/linuxOptions.js.map +1 -1
- package/out/platformPackager.js +1 -1
- package/out/platformPackager.js.map +1 -1
- package/out/publish/PublishManager.js +2 -2
- package/out/publish/PublishManager.js.map +1 -1
- package/out/publish/updateInfoBuilder.d.ts +4 -0
- package/out/publish/updateInfoBuilder.js +14 -2
- package/out/publish/updateInfoBuilder.js.map +1 -1
- package/out/targets/ArchiveTarget.js +1 -1
- package/out/targets/ArchiveTarget.js.map +1 -1
- package/out/targets/LinuxTargetHelper.d.ts +3 -0
- package/out/targets/LinuxTargetHelper.js +68 -0
- package/out/targets/LinuxTargetHelper.js.map +1 -1
- package/out/targets/MsiTarget.js +6 -3
- package/out/targets/MsiTarget.js.map +1 -1
- package/out/targets/archive.js +2 -6
- package/out/targets/archive.js.map +1 -1
- package/out/targets/nsis/NsisTarget.js +12 -12
- package/out/targets/nsis/NsisTarget.js.map +1 -1
- package/out/targets/nsis/nsisUtil.d.ts +0 -7
- package/out/targets/nsis/nsisUtil.js +5 -48
- package/out/targets/nsis/nsisUtil.js.map +1 -1
- package/out/targets/snap/SnapTarget.d.ts +36 -0
- package/out/targets/snap/SnapTarget.js +104 -0
- package/out/targets/snap/SnapTarget.js.map +1 -0
- package/out/targets/snap/core24.d.ts +52 -0
- package/out/targets/snap/core24.js +447 -0
- package/out/targets/snap/core24.js.map +1 -0
- package/out/targets/snap/coreCustom.d.ts +28 -0
- package/out/targets/snap/coreCustom.js +63 -0
- package/out/targets/snap/coreCustom.js.map +1 -0
- package/out/targets/snap/coreLegacy.d.ts +20 -0
- package/out/targets/{snap.js → snap/coreLegacy.js} +96 -155
- package/out/targets/snap/coreLegacy.js.map +1 -0
- package/out/targets/snap/snapcraftBuilder.d.ts +39 -0
- package/out/targets/snap/snapcraftBuilder.js +418 -0
- package/out/targets/snap/snapcraftBuilder.js.map +1 -0
- package/out/toolsets/linux.d.ts +5 -0
- package/out/toolsets/linux.js +55 -23
- package/out/toolsets/linux.js.map +1 -1
- package/out/toolsets/windows.d.ts +19 -0
- package/out/toolsets/windows.js +136 -18
- package/out/toolsets/windows.js.map +1 -1
- package/out/util/electronGet.d.ts +4 -1
- package/out/util/electronGet.js +19 -19
- package/out/util/electronGet.js.map +1 -1
- package/out/util/envPath.d.ts +2 -0
- package/out/util/envPath.js +28 -0
- package/out/util/envPath.js.map +1 -0
- package/out/util/toolsetLock.d.ts +1 -0
- package/out/util/toolsetLock.js +23 -0
- package/out/util/toolsetLock.js.map +1 -0
- package/out/version.d.ts +1 -1
- package/out/version.js +1 -1
- package/out/version.js.map +1 -1
- package/out/vm/vm.d.ts +1 -0
- package/out/vm/vm.js +18 -0
- package/out/vm/vm.js.map +1 -1
- package/package.json +8 -8
- package/scheme.json +1401 -107
- package/templates/nsis/multiUser.nsh +14 -12
- package/out/targets/snap.d.ts +0 -17
- package/out/targets/snap.js.map +0 -1
package/out/toolsets/linux.js
CHANGED
|
@@ -2,12 +2,14 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.appimageChecksums = void 0;
|
|
4
4
|
exports.getLinuxToolsPath = getLinuxToolsPath;
|
|
5
|
+
exports.getLinuxToolsMacToolset = getLinuxToolsMacToolset;
|
|
5
6
|
exports.getFpmPath = getFpmPath;
|
|
6
7
|
exports.getAppImageTools = getAppImageTools;
|
|
7
8
|
const builder_util_1 = require("builder-util");
|
|
8
9
|
const path = require("path");
|
|
9
10
|
const binDownload_1 = require("../binDownload");
|
|
10
11
|
const electronGet_1 = require("../util/electronGet");
|
|
12
|
+
const builder_util_2 = require("builder-util");
|
|
11
13
|
const fpmChecksums = {
|
|
12
14
|
"fpm-1.17.0-ruby-3.4.3-darwin-arm64.7z": "6cc6d4785875bc7d79bdf52ca146080a4c300e1d663376ae79615fb548030ede",
|
|
13
15
|
"fpm-1.17.0-ruby-3.4.3-darwin-x86_64.7z": "f7cb468c5e64177124c9d3a5f400ac20ffcb411aa5aa0ea224a808ff5a2d3bbf",
|
|
@@ -26,12 +28,41 @@ exports.appimageChecksums = {
|
|
|
26
28
|
"appimage-tools-runtime-20251108.tar.gz": "84021a78ee214ae6fd33a2d62a92ba25542dd10bc86bf117a9b2d0bba44e7665",
|
|
27
29
|
},
|
|
28
30
|
};
|
|
29
|
-
|
|
30
|
-
|
|
31
|
+
// no legacy toolset as macos arm64 BSD gtar/ar/lzip are not compatible with linux targets, so we always use newer toolset on macos for linux archives
|
|
32
|
+
const linuxToolsMacChecksums = {
|
|
33
|
+
"linux-tools-mac-darwin-arm64.tar.gz": "204e76f08364352edb28a6a4be87e8f9bd9340213865d9a0d1c664aa46fcf053",
|
|
34
|
+
"linux-tools-mac-darwin-x86_64.tar.gz": "7ee26dfbd0d2a4c2c83b55a9416a30cc84876eef01c6497ca49bb016a190c726",
|
|
35
|
+
};
|
|
36
|
+
async function getLinuxToolsPath() {
|
|
37
|
+
const envPath = await (0, builder_util_2.resolveEnvToolsetPath)("LINUX_TOOLS_MAC_PATH");
|
|
38
|
+
if (envPath != null) {
|
|
39
|
+
return envPath;
|
|
40
|
+
}
|
|
41
|
+
const arch = process.arch === "arm64" ? "arm64" : "x86_64";
|
|
42
|
+
const toolsetVersion = "1.0.0";
|
|
43
|
+
const filename = `linux-tools-mac-darwin-${arch}.tar.gz`;
|
|
44
|
+
return await (0, electronGet_1.downloadBuilderToolset)({
|
|
45
|
+
releaseName: `linux-tools-mac@${toolsetVersion}`,
|
|
46
|
+
filenameWithExt: filename,
|
|
47
|
+
checksums: {
|
|
48
|
+
[filename]: linuxToolsMacChecksums[filename],
|
|
49
|
+
},
|
|
50
|
+
githubOrgRepo: "electron-userland/electron-builder-binaries",
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
async function getLinuxToolsMacToolset() {
|
|
54
|
+
const linuxToolsPath = await getLinuxToolsPath();
|
|
55
|
+
const bin = (pkg) => path.join(linuxToolsPath, "bin", pkg);
|
|
56
|
+
return {
|
|
57
|
+
ar: bin("ar"),
|
|
58
|
+
lzip: bin("lzip"),
|
|
59
|
+
gtar: bin("gtar"),
|
|
60
|
+
};
|
|
31
61
|
}
|
|
32
62
|
async function getFpmPath() {
|
|
33
|
-
|
|
34
|
-
|
|
63
|
+
const customFpmPath = await (0, builder_util_2.resolveEnvToolsetPath)("CUSTOM_FPM_PATH");
|
|
64
|
+
if (customFpmPath != null) {
|
|
65
|
+
return customFpmPath;
|
|
35
66
|
}
|
|
36
67
|
const exec = "fpm";
|
|
37
68
|
if (process.platform === "win32" || process.env.USE_SYSTEM_FPM === "true") {
|
|
@@ -58,29 +89,30 @@ async function getFpmPath() {
|
|
|
58
89
|
return path.join(fpmPath, exec);
|
|
59
90
|
}
|
|
60
91
|
async function getAppImageTools(appimageToolVersion, targetArch) {
|
|
61
|
-
var _a;
|
|
62
92
|
// nullish and 0.0.0 are both considered legacy, but utilize an upstream dependency to download runtimes, so thus, we ignore logic here
|
|
63
93
|
if (appimageToolVersion == null || appimageToolVersion === "0.0.0") {
|
|
64
94
|
throw new Error("Legacy AppImage toolset was selected, but electron-builder is attempting to download newer runtime. Please file a GH issue if you see this error. Exiting early");
|
|
65
95
|
}
|
|
66
|
-
const override = (_a = process.env.APPIMAGE_TOOLS_PATH) === null || _a === void 0 ? void 0 : _a.trim();
|
|
67
|
-
const filenameWithExt = "appimage-tools-runtime-20251108.tar.gz";
|
|
68
|
-
let artifactPath = override ||
|
|
69
|
-
(await (0, electronGet_1.downloadBuilderToolset)({
|
|
70
|
-
releaseName: `appimage@${appimageToolVersion}`,
|
|
71
|
-
filenameWithExt,
|
|
72
|
-
checksums: {
|
|
73
|
-
[filenameWithExt]: exports.appimageChecksums[appimageToolVersion][filenameWithExt],
|
|
74
|
-
},
|
|
75
|
-
githubOrgRepo: "electron-userland/electron-builder-binaries",
|
|
76
|
-
}));
|
|
77
|
-
artifactPath = path.resolve(artifactPath);
|
|
78
96
|
const runtimeArch = targetArch === builder_util_1.Arch.armv7l ? "arm32" : targetArch === builder_util_1.Arch.arm64 ? "arm64" : targetArch === builder_util_1.Arch.ia32 ? "ia32" : "x64";
|
|
79
|
-
|
|
80
|
-
mksquashfs: path.
|
|
81
|
-
desktopFileValidate: path.
|
|
82
|
-
runtime: path.
|
|
83
|
-
runtimeLibraries: path.
|
|
84
|
-
};
|
|
97
|
+
const getPaths = (artifactPath) => ({
|
|
98
|
+
mksquashfs: path.resolve(artifactPath, "mksquashfs"),
|
|
99
|
+
desktopFileValidate: path.resolve(artifactPath, "desktop-file-validate"),
|
|
100
|
+
runtime: path.resolve(artifactPath, "runtimes", `runtime-${runtimeArch}`),
|
|
101
|
+
runtimeLibraries: path.resolve(artifactPath, "lib", runtimeArch),
|
|
102
|
+
});
|
|
103
|
+
const filenameWithExt = "appimage-tools-runtime-20251108.tar.gz";
|
|
104
|
+
const envPath = await (0, builder_util_2.resolveEnvToolsetPath)("APPIMAGE_TOOLS_PATH");
|
|
105
|
+
if (envPath != null) {
|
|
106
|
+
return getPaths(envPath);
|
|
107
|
+
}
|
|
108
|
+
const artifact = await (0, electronGet_1.downloadBuilderToolset)({
|
|
109
|
+
releaseName: `appimage@${appimageToolVersion}`,
|
|
110
|
+
filenameWithExt,
|
|
111
|
+
checksums: {
|
|
112
|
+
[filenameWithExt]: exports.appimageChecksums[appimageToolVersion][filenameWithExt],
|
|
113
|
+
},
|
|
114
|
+
githubOrgRepo: "electron-userland/electron-builder-binaries",
|
|
115
|
+
});
|
|
116
|
+
return getPaths(artifact);
|
|
85
117
|
}
|
|
86
118
|
//# sourceMappingURL=linux.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linux.js","sourceRoot":"","sources":["../../src/toolsets/linux.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"linux.js","sourceRoot":"","sources":["../../src/toolsets/linux.ts"],"names":[],"mappings":";;;AAiCA,8CAgBC;AAED,0DAQC;AAED,gCA4BC;AAED,4CAgCC;AA3HD,+CAAmC;AACnC,6BAA4B;AAC5B,gDAA8C;AAE9C,qDAA4D;AAC5D,+CAAoD;AAEpD,MAAM,YAAY,GAAG;IACnB,uCAAuC,EAAE,kEAAkE;IAC3G,wCAAwC,EAAE,kEAAkE;IAC5G,sCAAsC,EAAE,kEAAkE;IAC1G,wCAAwC,EAAE,kEAAkE;IAC5G,qCAAqC,EAAE,kEAAkE;CACjG,CAAA;AAEG,QAAA,iBAAiB,GAAG;IAC/B,OAAO,EAAE;IACP,SAAS;KACV;IACD,OAAO,EAAE;QACP,wCAAwC,EAAE,kEAAkE;KAC7G;IACD,OAAO,EAAE;QACP,wCAAwC,EAAE,kEAAkE;KAC7G;CACO,CAAA;AAEV,sJAAsJ;AACtJ,MAAM,sBAAsB,GAAG;IAC7B,qCAAqC,EAAE,kEAAkE;IACzG,sCAAsC,EAAE,kEAAkE;CAClG,CAAA;AAEH,KAAK,UAAU,iBAAiB;IACrC,MAAM,OAAO,GAAG,MAAM,IAAA,oCAAqB,EAAC,sBAAsB,CAAC,CAAA;IACnE,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;QACpB,OAAO,OAAO,CAAA;IAChB,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAA;IAC1D,MAAM,cAAc,GAAG,OAAO,CAAA;IAC9B,MAAM,QAAQ,GAAwC,0BAA0B,IAAI,SAAS,CAAA;IAC7F,OAAO,MAAM,IAAA,oCAAsB,EAAC;QAClC,WAAW,EAAE,mBAAmB,cAAc,EAAE;QAChD,eAAe,EAAE,QAAQ;QACzB,SAAS,EAAE;YACT,CAAC,QAAQ,CAAC,EAAE,sBAAsB,CAAC,QAAQ,CAAC;SAC7C;QACD,aAAa,EAAE,6CAA6C;KAC7D,CAAC,CAAA;AACJ,CAAC;AAEM,KAAK,UAAU,uBAAuB;IAC3C,MAAM,cAAc,GAAG,MAAM,iBAAiB,EAAE,CAAA;IAChD,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;IAClE,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC;QACb,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC;KAClB,CAAA;AACH,CAAC;AAEM,KAAK,UAAU,UAAU;IAC9B,MAAM,aAAa,GAAG,MAAM,IAAA,oCAAqB,EAAC,iBAAiB,CAAC,CAAA;IACpE,IAAI,aAAa,IAAI,IAAI,EAAE,CAAC;QAC1B,OAAO,aAAa,CAAA;IACtB,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAA;IAClB,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,MAAM,EAAE,CAAC;QAC1E,OAAO,IAAI,CAAA;IACb,CAAC;IACD,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YACjC,IAAI,OAAO,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC;gBAC1B,OAAO,sCAAsC,CAAA;YAC/C,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACpC,OAAO,wCAAwC,CAAA;YACjD,CAAC;YACD,OAAO,qCAAqC,CAAA;QAC9C,CAAC;QACD,eAAe;QACf,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC7B,OAAO,uCAAuC,CAAA;QAChD,CAAC;QACD,OAAO,wCAAwC,CAAA;IACjD,CAAC,CAAA;IAED,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAA;IACzB,MAAM,OAAO,GAAG,MAAM,IAAA,2BAAa,EAAC,WAAW,EAAE,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAA;IAClF,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;AACjC,CAAC;AAEM,KAAK,UAAU,gBAAgB,CAAC,mBAA8C,EAAE,UAAgB;IACrG,uIAAuI;IACvI,IAAI,mBAAmB,IAAI,IAAI,IAAI,mBAAmB,KAAK,OAAO,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CACb,iKAAiK,CAClK,CAAA;IACH,CAAC;IAED,MAAM,WAAW,GAAG,UAAU,KAAK,mBAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,KAAK,mBAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,KAAK,mBAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAA;IAE1I,MAAM,QAAQ,GAAG,CAAC,YAAoB,EAAE,EAAE,CAAC,CAAC;QAC1C,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,YAAY,CAAC;QACpD,mBAAmB,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,uBAAuB,CAAC;QACxE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,UAAU,EAAE,WAAW,WAAW,EAAE,CAAC;QACzE,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,EAAE,WAAW,CAAC;KACjE,CAAC,CAAA;IAEF,MAAM,eAAe,GAAG,wCAAwC,CAAA;IAChE,MAAM,OAAO,GAAG,MAAM,IAAA,oCAAqB,EAAC,qBAAqB,CAAC,CAAA;IAClE,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;QACpB,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC1B,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,IAAA,oCAAsB,EAAC;QAC5C,WAAW,EAAE,YAAY,mBAAmB,EAAE;QAC9C,eAAe;QACf,SAAS,EAAE;YACT,CAAC,eAAe,CAAC,EAAE,yBAAiB,CAAC,mBAAmB,CAAC,CAAC,eAAe,CAAC;SAC3E;QACD,aAAa,EAAE,6CAA6C;KAC7D,CAAC,CAAA;IAEF,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAA;AAC3B,CAAC","sourcesContent":["import { Arch } from \"builder-util\"\nimport * as path from \"path\"\nimport { getBinFromUrl } from \"../binDownload\"\nimport { ToolsetConfig } from \"../configuration\"\nimport { downloadBuilderToolset } from \"../util/electronGet\"\nimport { resolveEnvToolsetPath } from \"builder-util\"\n\nconst fpmChecksums = {\n \"fpm-1.17.0-ruby-3.4.3-darwin-arm64.7z\": \"6cc6d4785875bc7d79bdf52ca146080a4c300e1d663376ae79615fb548030ede\",\n \"fpm-1.17.0-ruby-3.4.3-darwin-x86_64.7z\": \"f7cb468c5e64177124c9d3a5f400ac20ffcb411aa5aa0ea224a808ff5a2d3bbf\",\n \"fpm-1.17.0-ruby-3.4.3-linux-amd64.7z\": \"44b0ec6025c14ec137f56180e62675c0eae36233cdce53d0953d9c73ced8989f\",\n \"fpm-1.17.0-ruby-3.4.3-linux-arm64v8.7z\": \"338b50cfa7f12d745a997d1a3d000bcd0410008050fa7d8c4476a78a61c0564e\",\n \"fpm-1.17.0-ruby-3.4.3-linux-i386.7z\": \"181124e2e9856855c21229ea9096bb7006a9e3e712d133ce332597ba878cd7b6\",\n} as const\n\nexport const appimageChecksums = {\n \"0.0.0\": {\n // legacy\n },\n \"1.0.2\": {\n \"appimage-tools-runtime-20251108.tar.gz\": \"a784a8c26331ec2e945c23d6bdb14af5c9df27f5939825d84b8709c61dc81eb0\",\n },\n \"1.0.3\": {\n \"appimage-tools-runtime-20251108.tar.gz\": \"84021a78ee214ae6fd33a2d62a92ba25542dd10bc86bf117a9b2d0bba44e7665\",\n },\n} as const\n\n// no legacy toolset as macos arm64 BSD gtar/ar/lzip are not compatible with linux targets, so we always use newer toolset on macos for linux archives\nconst linuxToolsMacChecksums = {\n \"linux-tools-mac-darwin-arm64.tar.gz\": \"204e76f08364352edb28a6a4be87e8f9bd9340213865d9a0d1c664aa46fcf053\",\n \"linux-tools-mac-darwin-x86_64.tar.gz\": \"7ee26dfbd0d2a4c2c83b55a9416a30cc84876eef01c6497ca49bb016a190c726\",\n} as const\n\nexport async function getLinuxToolsPath(): Promise<string> {\n const envPath = await resolveEnvToolsetPath(\"LINUX_TOOLS_MAC_PATH\")\n if (envPath != null) {\n return envPath\n }\n const arch = process.arch === \"arm64\" ? \"arm64\" : \"x86_64\"\n const toolsetVersion = \"1.0.0\"\n const filename: keyof typeof linuxToolsMacChecksums = `linux-tools-mac-darwin-${arch}.tar.gz`\n return await downloadBuilderToolset({\n releaseName: `linux-tools-mac@${toolsetVersion}`,\n filenameWithExt: filename,\n checksums: {\n [filename]: linuxToolsMacChecksums[filename],\n },\n githubOrgRepo: \"electron-userland/electron-builder-binaries\",\n })\n}\n\nexport async function getLinuxToolsMacToolset() {\n const linuxToolsPath = await getLinuxToolsPath()\n const bin = (pkg: string) => path.join(linuxToolsPath, \"bin\", pkg)\n return {\n ar: bin(\"ar\"),\n lzip: bin(\"lzip\"),\n gtar: bin(\"gtar\"),\n }\n}\n\nexport async function getFpmPath() {\n const customFpmPath = await resolveEnvToolsetPath(\"CUSTOM_FPM_PATH\")\n if (customFpmPath != null) {\n return customFpmPath\n }\n const exec = \"fpm\"\n if (process.platform === \"win32\" || process.env.USE_SYSTEM_FPM === \"true\") {\n return exec\n }\n const getKey = () => {\n if (process.platform === \"linux\") {\n if (process.arch == \"x64\") {\n return \"fpm-1.17.0-ruby-3.4.3-linux-amd64.7z\"\n } else if (process.arch === \"arm64\") {\n return \"fpm-1.17.0-ruby-3.4.3-linux-arm64v8.7z\"\n }\n return \"fpm-1.17.0-ruby-3.4.3-linux-i386.7z\"\n }\n // darwin arm64\n if (process.arch === \"arm64\") {\n return \"fpm-1.17.0-ruby-3.4.3-darwin-arm64.7z\"\n }\n return \"fpm-1.17.0-ruby-3.4.3-darwin-x86_64.7z\"\n }\n\n const filename = getKey()\n const fpmPath = await getBinFromUrl(\"fpm@2.1.4\", filename, fpmChecksums[filename])\n return path.join(fpmPath, exec)\n}\n\nexport async function getAppImageTools(appimageToolVersion: ToolsetConfig[\"appimage\"], targetArch: Arch) {\n // nullish and 0.0.0 are both considered legacy, but utilize an upstream dependency to download runtimes, so thus, we ignore logic here\n if (appimageToolVersion == null || appimageToolVersion === \"0.0.0\") {\n throw new Error(\n \"Legacy AppImage toolset was selected, but electron-builder is attempting to download newer runtime. Please file a GH issue if you see this error. Exiting early\"\n )\n }\n\n const runtimeArch = targetArch === Arch.armv7l ? \"arm32\" : targetArch === Arch.arm64 ? \"arm64\" : targetArch === Arch.ia32 ? \"ia32\" : \"x64\"\n\n const getPaths = (artifactPath: string) => ({\n mksquashfs: path.resolve(artifactPath, \"mksquashfs\"),\n desktopFileValidate: path.resolve(artifactPath, \"desktop-file-validate\"),\n runtime: path.resolve(artifactPath, \"runtimes\", `runtime-${runtimeArch}`),\n runtimeLibraries: path.resolve(artifactPath, \"lib\", runtimeArch),\n })\n\n const filenameWithExt = \"appimage-tools-runtime-20251108.tar.gz\"\n const envPath = await resolveEnvToolsetPath(\"APPIMAGE_TOOLS_PATH\")\n if (envPath != null) {\n return getPaths(envPath)\n }\n const artifact = await downloadBuilderToolset({\n releaseName: `appimage@${appimageToolVersion}`,\n filenameWithExt,\n checksums: {\n [filenameWithExt]: appimageChecksums[appimageToolVersion][filenameWithExt],\n },\n githubOrgRepo: \"electron-userland/electron-builder-binaries\",\n })\n\n return getPaths(artifact)\n}\n"]}
|
|
@@ -39,4 +39,23 @@ export declare function getRceditBundle(winCodeSign: ToolsetConfig["winCodeSign"
|
|
|
39
39
|
x86: string;
|
|
40
40
|
x64: string;
|
|
41
41
|
}>;
|
|
42
|
+
export declare const nsisChecksums: {
|
|
43
|
+
readonly "0.0.0": {};
|
|
44
|
+
readonly "1.2.1": {
|
|
45
|
+
readonly "nsis-bundle-3.12.tar.gz": "56997fdefe25e7928a1a68b4583d08b240b66cf660234053b20131a74cc082f4";
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
type CustomNsisBinaryConfig = {
|
|
49
|
+
url: string | null;
|
|
50
|
+
checksum?: string | null;
|
|
51
|
+
version?: string | null;
|
|
52
|
+
};
|
|
53
|
+
export declare function getMakeNsisPath(nsis: ToolsetConfig["nsis"] | Nullish, customBinary?: CustomNsisBinaryConfig | null): Promise<ToolInfo>;
|
|
54
|
+
type CustomNsisResourcesConfig = {
|
|
55
|
+
url: string;
|
|
56
|
+
checksum: string;
|
|
57
|
+
version: string;
|
|
58
|
+
};
|
|
59
|
+
export declare function getNsisPluginsPath(nsis: ToolsetConfig["nsis"] | Nullish, customNsisResources?: CustomNsisResourcesConfig | null): Promise<string>;
|
|
60
|
+
export declare function getNsisElevatePath(nsis: ToolsetConfig["nsis"] | Nullish, customBinary?: CustomNsisBinaryConfig | null): Promise<string>;
|
|
42
61
|
export {};
|
package/out/toolsets/windows.js
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.wincodesignChecksums = void 0;
|
|
3
|
+
exports.nsisChecksums = exports.wincodesignChecksums = void 0;
|
|
4
4
|
exports.getSignToolPath = getSignToolPath;
|
|
5
5
|
exports.getWindowsKitsBundle = getWindowsKitsBundle;
|
|
6
6
|
exports.isOldWin6 = isOldWin6;
|
|
7
7
|
exports.getRceditBundle = getRceditBundle;
|
|
8
|
+
exports.getMakeNsisPath = getMakeNsisPath;
|
|
9
|
+
exports.getNsisPluginsPath = getNsisPluginsPath;
|
|
10
|
+
exports.getNsisElevatePath = getNsisElevatePath;
|
|
8
11
|
const builder_util_1 = require("builder-util");
|
|
12
|
+
const fs_extra_1 = require("fs-extra");
|
|
9
13
|
const os = require("os");
|
|
10
14
|
const path = require("path");
|
|
11
15
|
const binDownload_1 = require("../binDownload");
|
|
@@ -48,13 +52,12 @@ function _getWindowsToolsBin(winCodeSign, file) {
|
|
|
48
52
|
return (0, binDownload_1.getBinFromUrl)(`win-codesign@${winCodeSign}`, file, exports.wincodesignChecksums[winCodeSign][file]);
|
|
49
53
|
}
|
|
50
54
|
async function getSignToolPath(winCodeSign, isWin) {
|
|
51
|
-
var _a;
|
|
52
55
|
if ((0, flags_1.isUseSystemSigncode)()) {
|
|
53
56
|
return { path: "osslsigncode" };
|
|
54
57
|
}
|
|
55
|
-
const
|
|
56
|
-
if (
|
|
57
|
-
return { path:
|
|
58
|
+
const signToolPath = await (0, builder_util_1.resolveEnvToolsetPath)("SIGNTOOL_PATH");
|
|
59
|
+
if (signToolPath != null) {
|
|
60
|
+
return { path: signToolPath };
|
|
58
61
|
}
|
|
59
62
|
if (isWin) {
|
|
60
63
|
// windows kits are always the target arch; signtool can be used by either arch.
|
|
@@ -67,9 +70,9 @@ async function getSignToolPath(winCodeSign, isWin) {
|
|
|
67
70
|
}
|
|
68
71
|
}
|
|
69
72
|
async function getWindowsKitsBundle({ winCodeSign, arch }) {
|
|
70
|
-
const
|
|
71
|
-
if (
|
|
72
|
-
return { kit:
|
|
73
|
+
const kitPath = await (0, builder_util_1.resolveEnvToolsetPath)("ELECTRON_BUILDER_WINDOWS_KITS_PATH");
|
|
74
|
+
if (kitPath != null) {
|
|
75
|
+
return { kit: kitPath, appxAssets: kitPath };
|
|
73
76
|
}
|
|
74
77
|
const useLegacy = winCodeSign == null || winCodeSign === "0.0.0";
|
|
75
78
|
if (useLegacy) {
|
|
@@ -99,9 +102,9 @@ async function getWindowsSignToolExe({ winCodeSign, arch }) {
|
|
|
99
102
|
return path.resolve(vendorPath.kit, "signtool.exe");
|
|
100
103
|
}
|
|
101
104
|
async function getOsslSigncodeBundle(winCodeSign) {
|
|
102
|
-
const
|
|
103
|
-
if (
|
|
104
|
-
return { path:
|
|
105
|
+
const osslSigncodePath = await (0, builder_util_1.resolveEnvToolsetPath)("ELECTRON_BUILDER_OSSL_SIGNCODE_PATH");
|
|
106
|
+
if (osslSigncodePath != null) {
|
|
107
|
+
return { path: osslSigncodePath };
|
|
105
108
|
}
|
|
106
109
|
if (process.platform === "win32" || process.env.USE_SYSTEM_OSSLSIGNCODE === "true") {
|
|
107
110
|
return { path: "osslsigncode" };
|
|
@@ -131,21 +134,136 @@ async function getOsslSigncodeBundle(winCodeSign) {
|
|
|
131
134
|
return { path: path.resolve(vendorPath, "osslsigncode") };
|
|
132
135
|
}
|
|
133
136
|
async function getRceditBundle(winCodeSign) {
|
|
134
|
-
var _a;
|
|
135
137
|
const ia32 = "rcedit-ia32.exe";
|
|
136
138
|
const x86 = "rcedit-x86.exe";
|
|
137
139
|
const x64 = "rcedit-x64.exe";
|
|
138
|
-
const
|
|
139
|
-
if (
|
|
140
|
-
|
|
141
|
-
return { x86: path.
|
|
140
|
+
const rcedit = await (0, builder_util_1.resolveEnvToolsetPath)("ELECTRON_BUILDER_RCEDIT_PATH");
|
|
141
|
+
if (rcedit != null) {
|
|
142
|
+
const overridePath = rcedit;
|
|
143
|
+
return { x86: path.resolve(overridePath, x86), x64: path.resolve(overridePath, x64) };
|
|
142
144
|
}
|
|
143
145
|
if (winCodeSign === "0.0.0" || winCodeSign == null) {
|
|
144
146
|
const vendorPath = await getLegacyWinCodeSignBin();
|
|
145
|
-
return { x86: path.
|
|
147
|
+
return { x86: path.resolve(vendorPath, ia32), x64: path.resolve(vendorPath, x64) };
|
|
146
148
|
}
|
|
147
149
|
const file = "rcedit-windows-2_0_0.zip";
|
|
148
150
|
const vendorPath = await _getWindowsToolsBin(winCodeSign, file);
|
|
149
|
-
return { x86: path.
|
|
151
|
+
return { x86: path.resolve(vendorPath, x86), x64: path.resolve(vendorPath, x64) };
|
|
152
|
+
}
|
|
153
|
+
// ─── NSIS toolset ────────────────────────────────────────────────────────────
|
|
154
|
+
function getLegacyNsisBin() {
|
|
155
|
+
// Warning: Don't use v3.0.4.2 - https://github.com/electron-userland/electron-builder/issues/6334
|
|
156
|
+
return (0, binDownload_1.getBinFromUrl)("nsis-3.0.4.1", "nsis-3.0.4.1.7z", "9877df902530f96357d13a7a31ae2b9df67f48b11ffc9a1700a7c961574ec5fa");
|
|
157
|
+
}
|
|
158
|
+
function getLegacyNsisResourcesBin() {
|
|
159
|
+
return (0, binDownload_1.getBinFromUrl)("nsis-resources-3.4.1", "nsis-resources-3.4.1.7z", "593a9a92ef958321293ac6a2ee61e64bf1bd543142a5bd6b3d310709cc924103");
|
|
160
|
+
}
|
|
161
|
+
exports.nsisChecksums = {
|
|
162
|
+
"0.0.0": {
|
|
163
|
+
// legacy — uses getLegacyNsisBin() / getLegacyNsisResourcesBin()
|
|
164
|
+
},
|
|
165
|
+
"1.2.1": {
|
|
166
|
+
// unified bundle
|
|
167
|
+
"nsis-bundle-3.12.tar.gz": "56997fdefe25e7928a1a68b4583d08b240b66cf660234053b20131a74cc082f4",
|
|
168
|
+
},
|
|
169
|
+
};
|
|
170
|
+
async function getNsisBundlePath(nsis, customBinary) {
|
|
171
|
+
var _a;
|
|
172
|
+
if ((customBinary === null || customBinary === void 0 ? void 0 : customBinary.url) && (customBinary === null || customBinary === void 0 ? void 0 : customBinary.checksum)) {
|
|
173
|
+
const binaryVersion = (_a = customBinary.version) !== null && _a !== void 0 ? _a : customBinary.checksum.substring(0, 8);
|
|
174
|
+
return (0, binDownload_1.getBinFromCustomLoc)("nsis", binaryVersion, customBinary.url, customBinary.checksum);
|
|
175
|
+
}
|
|
176
|
+
if (nsis === "0.0.0" || nsis == null) {
|
|
177
|
+
return getLegacyNsisBin();
|
|
178
|
+
}
|
|
179
|
+
const file = `nsis-bundle-3.12.tar.gz`;
|
|
180
|
+
return (0, electronGet_1.downloadBuilderToolset)({
|
|
181
|
+
releaseName: `nsis@${nsis}`,
|
|
182
|
+
filenameWithExt: file,
|
|
183
|
+
checksums: { [file]: exports.nsisChecksums[nsis][file] },
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
async function getNsisDirOverride() {
|
|
187
|
+
const overridePath = await (0, builder_util_1.resolveEnvToolsetPath)("ELECTRON_BUILDER_NSIS_DIR");
|
|
188
|
+
if (overridePath == null) {
|
|
189
|
+
return null;
|
|
190
|
+
}
|
|
191
|
+
if (!(await (0, fs_extra_1.stat)(overridePath)).isDirectory()) {
|
|
192
|
+
throw new Error(`ELECTRON_BUILDER_NSIS_DIR must be a directory, got a file: ${overridePath}`);
|
|
193
|
+
}
|
|
194
|
+
return overridePath;
|
|
195
|
+
}
|
|
196
|
+
async function getMakeNsisPath(nsis, customBinary) {
|
|
197
|
+
const legacyBundle = (bundlePath) => {
|
|
198
|
+
// legacy bundle: platform-specific subdirectories, NSISDIR must be set explicitly
|
|
199
|
+
const env = { NSISDIR: bundlePath };
|
|
200
|
+
if (process.platform === "darwin") {
|
|
201
|
+
return { path: path.resolve(bundlePath, "mac", "makensis"), env };
|
|
202
|
+
}
|
|
203
|
+
else if (process.platform === "win32") {
|
|
204
|
+
return { path: path.resolve(bundlePath, "Bin", "makensis.exe"), env };
|
|
205
|
+
}
|
|
206
|
+
return { path: path.resolve(bundlePath, "linux", "makensis"), env };
|
|
207
|
+
};
|
|
208
|
+
const entrypointBundle = (bundlePath) => {
|
|
209
|
+
// the entrypoint script auto-sets NSISDIR
|
|
210
|
+
return { path: path.resolve(bundlePath, process.platform === "win32" ? "makensis.cmd" : "makensis") };
|
|
211
|
+
};
|
|
212
|
+
const overridePath = await getNsisDirOverride();
|
|
213
|
+
if (overridePath != null) {
|
|
214
|
+
// we have to search both to maintain backward compatibility
|
|
215
|
+
let potentialBundle = legacyBundle(overridePath);
|
|
216
|
+
if (await (0, builder_util_1.exists)(potentialBundle.path)) {
|
|
217
|
+
return potentialBundle;
|
|
218
|
+
}
|
|
219
|
+
potentialBundle = entrypointBundle(overridePath);
|
|
220
|
+
if (await (0, builder_util_1.exists)(potentialBundle.path)) {
|
|
221
|
+
return potentialBundle;
|
|
222
|
+
}
|
|
223
|
+
throw new Error(`${path.basename(potentialBundle.path)} executable not found in ELECTRON_BUILDER_NSIS_DIR: ${overridePath}`);
|
|
224
|
+
}
|
|
225
|
+
const bundlePath = await getNsisBundlePath(nsis, customBinary);
|
|
226
|
+
if (nsis === "0.0.0" || nsis == null) {
|
|
227
|
+
return legacyBundle(bundlePath);
|
|
228
|
+
}
|
|
229
|
+
return entrypointBundle(bundlePath);
|
|
230
|
+
}
|
|
231
|
+
async function getNsisPluginsPath(nsis, customNsisResources) {
|
|
232
|
+
const resolveCustomBundle = async (bundlePath, type) => {
|
|
233
|
+
// we have to search both to maintain backward compatibility
|
|
234
|
+
const potentialPaths = [path.resolve(bundlePath, "plugins"), path.resolve(bundlePath, "windows", "Plugins")];
|
|
235
|
+
for (const p of potentialPaths) {
|
|
236
|
+
if ((await (0, builder_util_1.exists)(p)) && (await (0, fs_extra_1.stat)(p)).isDirectory()) {
|
|
237
|
+
return p;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
throw new Error(`Plugins directory not found in ${type}: ${bundlePath}. Expected to find in one of: ${potentialPaths.join(", ")}`);
|
|
241
|
+
};
|
|
242
|
+
const overridePath = await (0, builder_util_1.resolveEnvToolsetPath)("ELECTRON_BUILDER_NSIS_RESOURCES_DIR");
|
|
243
|
+
if (overridePath != null) {
|
|
244
|
+
return resolveCustomBundle(overridePath, "ELECTRON_BUILDER_NSIS_RESOURCES_DIR");
|
|
245
|
+
}
|
|
246
|
+
if (customNsisResources) {
|
|
247
|
+
const bundle = await (0, binDownload_1.getBinFromCustomLoc)("nsis-resources", customNsisResources.version, customNsisResources.url, customNsisResources.checksum);
|
|
248
|
+
return resolveCustomBundle(bundle, "CUSTOM_NSIS_RESOURCES");
|
|
249
|
+
}
|
|
250
|
+
if (nsis === "0.0.0" || nsis == null) {
|
|
251
|
+
return path.resolve(await getLegacyNsisResourcesBin(), "plugins");
|
|
252
|
+
}
|
|
253
|
+
return path.resolve(await getNsisBundlePath(nsis), "windows", "Plugins");
|
|
254
|
+
}
|
|
255
|
+
async function getNsisElevatePath(nsis, customBinary) {
|
|
256
|
+
const resolveElevate = async (dir, label) => {
|
|
257
|
+
const p = path.resolve(dir, "elevate.exe");
|
|
258
|
+
if ((await (0, builder_util_1.exists)(p)) && (await (0, fs_extra_1.stat)(p)).isFile()) {
|
|
259
|
+
return p;
|
|
260
|
+
}
|
|
261
|
+
throw new Error(`elevate.exe not found in ${label} directory: ${dir}. Expected path: ${p}`);
|
|
262
|
+
};
|
|
263
|
+
const overridePath = await getNsisDirOverride();
|
|
264
|
+
if (overridePath != null) {
|
|
265
|
+
return resolveElevate(overridePath, "ELECTRON_BUILDER_NSIS_DIR");
|
|
266
|
+
}
|
|
267
|
+
return resolveElevate(await getNsisBundlePath(nsis, customBinary), "NSIS bundle");
|
|
150
268
|
}
|
|
151
269
|
//# sourceMappingURL=windows.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"windows.js","sourceRoot":"","sources":["../../src/toolsets/windows.ts"],"names":[],"mappings":";;;AAkDA,0CAkBC;AAED,oDAcC;AAED,8BAGC;AAkDD,0CAgBC;AA3JD,+CAAyD;AAEzD,yBAAwB;AACxB,6BAA4B;AAC5B,gDAA8C;AAE9C,qDAA8D;AAC9D,qDAA4D;AAC5D,yCAAmD;AAEnD,SAAS,uBAAuB;IAC9B,OAAO,IAAA,oCAAsB,EAAC;QAC5B,WAAW,EAAE,mBAAmB;QAChC,eAAe,EAAE,sBAAsB;QACvC,SAAS,EAAE,EAAE,CAAC,sBAAsB,CAAC,EAAE,kEAAkE,EAAE;KAC5G,CAAC,CAAA;AACJ,CAAC;AAEY,QAAA,oBAAoB,GAAG;IAClC,OAAO,EAAE;IACP,qEAAqE;KACtE;IACD,OAAO,EAAE;QACP,0BAA0B,EAAE,kEAAkE;QAC9F,+BAA+B,EAAE,kEAAkE;QACnG,gCAAgC,EAAE,kEAAkE;QACpG,8BAA8B,EAAE,kEAAkE;QAClG,8BAA8B,EAAE,kEAAkE;QAClG,6BAA6B,EAAE,kEAAkE;QACjG,8BAA8B,EAAE,kEAAkE;QAClG,sCAAsC,EAAE,kEAAkE;KAC3G;IACD,OAAO,EAAE;QACP,0BAA0B,EAAE,kEAAkE;QAC9F,+BAA+B,EAAE,kEAAkE;QACnG,gCAAgC,EAAE,kEAAkE;QACpG,8BAA8B,EAAE,kEAAkE;QAClG,8BAA8B,EAAE,kEAAkE;QAClG,6BAA6B,EAAE,kEAAkE;QACjG,8BAA8B,EAAE,kEAAkE;QAClG,sCAAsC,EAAE,kEAAkE;KAC3G;CACO,CAAA;AAIV,SAAS,mBAAmB,CAA+B,WAAc,EAAE,IAA4C;IACrH,OAAO,IAAA,2BAAa,EAAC,gBAAgB,WAAW,EAAE,EAAE,IAAc,EAAE,4BAAoB,CAAC,WAAW,CAAC,CAAC,IAAI,CAAW,CAAC,CAAA;AACxH,CAAC;AAEM,KAAK,UAAU,eAAe,CAAC,WAAmD,EAAE,KAAc;;IACvG,IAAI,IAAA,2BAAmB,GAAE,EAAE,CAAC;QAC1B,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,CAAA;IACjC,CAAC;IAED,MAAM,MAAM,GAAG,MAAA,OAAO,CAAC,GAAG,CAAC,aAAa,0CAAE,IAAI,EAAE,CAAA;IAChD,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAA;IACvC,CAAC;IAED,IAAI,KAAK,EAAE,CAAC;QACV,gFAAgF;QAChF,MAAM,YAAY,GAAS,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,mBAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,mBAAI,CAAC,KAAK,CAAC,CAAC,CAAC,mBAAI,CAAC,IAAI,CAAA;QAChH,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,CAAA;IACnF,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,WAAW,CAAC,CAAA;QACvD,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAA;IAC/C,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,oBAAoB,CAAC,EAAE,WAAW,EAAE,IAAI,EAA6D;IACzH,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAA;IACnE,IAAI,CAAC,IAAA,8BAAe,EAAC,YAAY,CAAC,EAAE,CAAC;QACnC,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,CAAA;IACxD,CAAC;IAED,MAAM,SAAS,GAAG,WAAW,IAAI,IAAI,IAAI,WAAW,KAAK,OAAO,CAAA;IAChE,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,UAAU,GAAG,MAAM,uBAAuB,EAAE,CAAA;QAClD,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,YAAY,EAAE,IAAI,KAAK,mBAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,mBAAI,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAAA;IAC1H,CAAC;IACD,MAAM,IAAI,GAAG,sCAAsC,CAAA;IACnD,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;IAC/D,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,KAAK,mBAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,mBAAI,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAAA;AAC3G,CAAC;AAED,SAAgB,SAAS;IACvB,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,EAAE,CAAA;IAC/B,OAAO,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;AACrE,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,EAAE,WAAW,EAAE,IAAI,EAA6D;IACnH,IAAI,WAAW,KAAK,OAAO,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;QACnD,wEAAwE;QACxE,MAAM,UAAU,GAAG,MAAM,uBAAuB,EAAE,CAAA;QAClD,IAAI,SAAS,EAAE,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,WAAW,EAAE,cAAc,CAAC,CAAA;QAC9D,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,YAAY,EAAE,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,cAAc,CAAC,CAAA;QACzG,CAAC;IACH,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,oBAAoB,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;IACpE,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,cAAc,CAAC,CAAA;AACrD,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,WAAmD;IACtF,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAA;IACpE,IAAI,CAAC,IAAA,8BAAe,EAAC,YAAY,CAAC,EAAE,CAAC;QACnC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAA;IAC/B,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,MAAM,EAAE,CAAC;QACnF,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,CAAA;IACjC,CAAC;IAED,IAAI,WAAW,KAAK,OAAO,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;QACnD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,uBAAuB,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;QAClF,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAA;QACjG,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,cAAc,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAA,4BAAc,EAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAA;IAC/J,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE;QACjB,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YACjC,IAAI,OAAO,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC;gBAC1B,OAAO,8BAA8B,CAAA;YACvC,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACpC,OAAO,8BAA8B,CAAA;YACvC,CAAC;YACD,OAAO,6BAA6B,CAAA;QACtC,CAAC;QACD,eAAe;QACf,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC7B,OAAO,+BAA+B,CAAA;QACxC,CAAC;QACD,OAAO,gCAAgC,CAAA;IACzC,CAAC,CAAC,EAAE,CAAA;IACJ,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;IAC/D,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,cAAc,CAAC,EAAE,CAAA;AAC3D,CAAC;AAEM,KAAK,UAAU,eAAe,CAAC,WAAmD;;IACvF,MAAM,IAAI,GAAG,iBAAiB,CAAA;IAC9B,MAAM,GAAG,GAAG,gBAAgB,CAAA;IAC5B,MAAM,GAAG,GAAG,gBAAgB,CAAA;IAC5B,MAAM,YAAY,GAAG,MAAA,OAAO,CAAC,GAAG,CAAC,4BAA4B,0CAAE,IAAI,EAAE,CAAA;IACrE,IAAI,CAAC,IAAA,8BAAe,EAAC,YAAY,CAAC,EAAE,CAAC;QACnC,kBAAG,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,YAAY,EAAE,EAAE,gDAAgD,CAAC,CAAA;QACtG,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE,CAAA;IACjF,CAAC;IACD,IAAI,WAAW,KAAK,OAAO,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;QACnD,MAAM,UAAU,GAAG,MAAM,uBAAuB,EAAE,CAAA;QAClD,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,CAAA;IAC9E,CAAC;IACD,MAAM,IAAI,GAAG,0BAA0B,CAAA;IACvC,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;IAC/D,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,CAAA;AAC7E,CAAC","sourcesContent":["import { Arch, isEmptyOrSpaces, log } from \"builder-util\"\nimport { Nullish } from \"builder-util-runtime\"\nimport * as os from \"os\"\nimport * as path from \"path\"\nimport { getBinFromUrl } from \"../binDownload\"\nimport { ToolsetConfig } from \"../configuration\"\nimport { ToolInfo, computeToolEnv } from \"../util/bundledTool\"\nimport { downloadBuilderToolset } from \"../util/electronGet\"\nimport { isUseSystemSigncode } from \"../util/flags\"\n\nfunction getLegacyWinCodeSignBin(): Promise<string> {\n return downloadBuilderToolset({\n releaseName: \"winCodeSign-2.6.0\",\n filenameWithExt: \"winCodeSign-2.6.0.7z\",\n checksums: { [\"winCodeSign-2.6.0.7z\"]: \"cdaec7154dda7cc31f88d886e2489379a0625a737d610b5ae7f62a12f16743a4\" },\n })\n}\n\nexport const wincodesignChecksums = {\n \"0.0.0\": {\n // legacy — downloads winCodeSign-2.6.0 via getLegacyWinCodeSignBin()\n },\n \"1.0.0\": {\n \"rcedit-windows-2_0_0.zip\": \"589709935902545a8335190b08644cf61b46a9042e34c0c3ef0660a5aeddeaae\",\n \"win-codesign-darwin-arm64.zip\": \"7eb41c3e6e48a75ced6b3384de22185da4bb458960fa410970eedd4e838c5c14\",\n \"win-codesign-darwin-x86_64.zip\": \"3986c97429f002df63490193d7f787281836f055934e3cdd9e69c70a8acb695e\",\n \"win-codesign-linux-amd64.zip\": \"d362a1a981053841554867e3e9dff51fe420fd577b44653df89bd7d3c916b156\",\n \"win-codesign-linux-arm64.zip\": \"fb848d498281f081c937be48dd6ddaf49b0201f32210dfc816ad061c47ecd37b\",\n \"win-codesign-linux-i386.zip\": \"11f8d9ffbf5b01e3bf6321c6d93b9b5e43d0c2d2a9fde1bca07698f2eb967cdf\",\n \"win-codesign-windows-x64.zip\": \"1bd27f9fa553cb14bec8df530cb3caffcfb095f9dd187dab6eaf5e9b7d6e7bff\",\n \"windows-kits-bundle-10_0_26100_0.zip\": \"1a12c81024c3499c212fdc5fac34a918e6d199271a39dfc524f6d8da484329bd\",\n },\n \"1.1.0\": {\n \"rcedit-windows-2_0_0.zip\": \"c66591ebe0919c60231f0bf79ff223e6504bfa69bc13edc1fa8bfc6177b73402\",\n \"win-codesign-darwin-arm64.zip\": \"3f263b0e53cdc5410f6165471b2e808aee3148dc792efa23a7c303e7a01e67b7\",\n \"win-codesign-darwin-x86_64.zip\": \"143fbdfcbc53bc273fa181356be8416829778452621484d39eadbe1ce49979ba\",\n \"win-codesign-linux-amd64.zip\": \"65477fe8e40709b0f998928afb8336f82413b123310bf5adaa8efb7ed6ed0eeb\",\n \"win-codesign-linux-arm64.zip\": \"575b01a966f2b775bbea119de263957378e2bd28cbd064d35f9e981827e37b59\",\n \"win-codesign-linux-i386.zip\": \"aa3ce90e9aaa3449a228a3fa30633cdeb6b2791913786677a85c59db1d985598\",\n \"win-codesign-windows-x64.zip\": \"6e5dcc5d7af7c00a7387e2101d1ad986aef80e963a3526da07bd0e65de484c30\",\n \"windows-kits-bundle-10_0_26100_0.zip\": \"284f18a2fde66e6ecfbefc3065926c9bfdf641761a9e6cd2bd26e18d1e328bf7\",\n },\n} as const\n\ntype CodeSignVersionKey = keyof typeof wincodesignChecksums\n\nfunction _getWindowsToolsBin<V extends CodeSignVersionKey>(winCodeSign: V, file: keyof (typeof wincodesignChecksums)[V]): Promise<string> {\n return getBinFromUrl(`win-codesign@${winCodeSign}`, file as string, wincodesignChecksums[winCodeSign][file] as string)\n}\n\nexport async function getSignToolPath(winCodeSign: ToolsetConfig[\"winCodeSign\"] | Nullish, isWin: boolean): Promise<ToolInfo> {\n if (isUseSystemSigncode()) {\n return { path: \"osslsigncode\" }\n }\n\n const result = process.env.SIGNTOOL_PATH?.trim()\n if (result) {\n return { path: path.resolve(result) }\n }\n\n if (isWin) {\n // windows kits are always the target arch; signtool can be used by either arch.\n const signtoolArch: Arch = process.arch === \"x64\" ? Arch.x64 : process.arch === \"arm64\" ? Arch.arm64 : Arch.ia32\n return { path: await getWindowsSignToolExe({ winCodeSign, arch: signtoolArch }) }\n } else {\n const vendor = await getOsslSigncodeBundle(winCodeSign)\n return { path: vendor.path, env: vendor.env }\n }\n}\n\nexport async function getWindowsKitsBundle({ winCodeSign, arch }: { winCodeSign: CodeSignVersionKey | Nullish; arch: Arch }) {\n const overridePath = process.env.ELECTRON_BUILDER_WINDOWS_KITS_PATH\n if (!isEmptyOrSpaces(overridePath)) {\n return { kit: overridePath, appxAssets: overridePath }\n }\n\n const useLegacy = winCodeSign == null || winCodeSign === \"0.0.0\"\n if (useLegacy) {\n const vendorPath = await getLegacyWinCodeSignBin()\n return { kit: path.resolve(vendorPath, \"windows-10\", arch === Arch.arm64 ? \"x64\" : Arch[arch]), appxAssets: vendorPath }\n }\n const file = \"windows-kits-bundle-10_0_26100_0.zip\"\n const vendorPath = await _getWindowsToolsBin(winCodeSign, file)\n return { kit: path.resolve(vendorPath, arch === Arch.ia32 ? \"x86\" : Arch[arch]), appxAssets: vendorPath }\n}\n\nexport function isOldWin6() {\n const winVersion = os.release()\n return winVersion.startsWith(\"6.\") && !winVersion.startsWith(\"6.3\")\n}\n\nasync function getWindowsSignToolExe({ winCodeSign, arch }: { winCodeSign: CodeSignVersionKey | Nullish; arch: Arch }) {\n if (winCodeSign === \"0.0.0\" || winCodeSign == null) {\n // use modern signtool on Windows Server 2012 R2 to be able to sign AppX\n const vendorPath = await getLegacyWinCodeSignBin()\n if (isOldWin6()) {\n return path.resolve(vendorPath, \"windows-6\", \"signtool.exe\")\n } else {\n return path.resolve(vendorPath, \"windows-10\", process.arch === \"ia32\" ? \"ia32\" : \"x64\", \"signtool.exe\")\n }\n }\n const vendorPath = await getWindowsKitsBundle({ winCodeSign, arch })\n return path.resolve(vendorPath.kit, \"signtool.exe\")\n}\n\nasync function getOsslSigncodeBundle(winCodeSign: ToolsetConfig[\"winCodeSign\"] | Nullish) {\n const overridePath = process.env.ELECTRON_BUILDER_OSSL_SIGNCODE_PATH\n if (!isEmptyOrSpaces(overridePath)) {\n return { path: overridePath }\n }\n if (process.platform === \"win32\" || process.env.USE_SYSTEM_OSSLSIGNCODE === \"true\") {\n return { path: \"osslsigncode\" }\n }\n\n if (winCodeSign === \"0.0.0\" || winCodeSign == null) {\n const vendorBase = path.resolve(await getLegacyWinCodeSignBin(), process.platform)\n const vendorPath = process.platform === \"darwin\" ? path.resolve(vendorBase, \"10.12\") : vendorBase\n return { path: path.resolve(vendorPath, \"osslsigncode\"), env: process.platform === \"darwin\" ? computeToolEnv([path.resolve(vendorPath, \"lib\")]) : undefined }\n }\n\n const file = (() => {\n if (process.platform === \"linux\") {\n if (process.arch == \"x64\") {\n return \"win-codesign-linux-amd64.zip\"\n } else if (process.arch === \"arm64\") {\n return \"win-codesign-linux-arm64.zip\"\n }\n return \"win-codesign-linux-i386.zip\"\n }\n // darwin arm64\n if (process.arch === \"arm64\") {\n return \"win-codesign-darwin-arm64.zip\"\n }\n return \"win-codesign-darwin-x86_64.zip\"\n })()\n const vendorPath = await _getWindowsToolsBin(winCodeSign, file)\n return { path: path.resolve(vendorPath, \"osslsigncode\") }\n}\n\nexport async function getRceditBundle(winCodeSign: ToolsetConfig[\"winCodeSign\"] | Nullish) {\n const ia32 = \"rcedit-ia32.exe\"\n const x86 = \"rcedit-x86.exe\"\n const x64 = \"rcedit-x64.exe\"\n const overridePath = process.env.ELECTRON_BUILDER_RCEDIT_PATH?.trim()\n if (!isEmptyOrSpaces(overridePath)) {\n log.debug({ searchFiles: [x86, x64], overridePath }, `Using RCEdit from ELECTRON_BUILDER_RCEDIT_PATH`)\n return { x86: path.join(overridePath, x86), x64: path.join(overridePath, x64) }\n }\n if (winCodeSign === \"0.0.0\" || winCodeSign == null) {\n const vendorPath = await getLegacyWinCodeSignBin()\n return { x86: path.join(vendorPath, ia32), x64: path.join(vendorPath, x64) }\n }\n const file = \"rcedit-windows-2_0_0.zip\"\n const vendorPath = await _getWindowsToolsBin(winCodeSign, file)\n return { x86: path.join(vendorPath, x86), x64: path.join(vendorPath, x64) }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"windows.js","sourceRoot":"","sources":["../../src/toolsets/windows.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arch, exists, resolveEnvToolsetPath } from \"builder-util\"\nimport { Nullish } from \"builder-util-runtime\"\nimport { stat } from \"fs-extra\"\nimport * as os from \"os\"\nimport * as path from \"path\"\nimport { getBinFromCustomLoc, getBinFromUrl } from \"../binDownload\"\nimport { ToolsetConfig } from \"../configuration\"\nimport { ToolInfo, computeToolEnv } from \"../util/bundledTool\"\nimport { downloadBuilderToolset } from \"../util/electronGet\"\nimport { isUseSystemSigncode } from \"../util/flags\"\n\nfunction getLegacyWinCodeSignBin(): Promise<string> {\n return downloadBuilderToolset({\n releaseName: \"winCodeSign-2.6.0\",\n filenameWithExt: \"winCodeSign-2.6.0.7z\",\n checksums: { [\"winCodeSign-2.6.0.7z\"]: \"cdaec7154dda7cc31f88d886e2489379a0625a737d610b5ae7f62a12f16743a4\" },\n })\n}\n\nexport const wincodesignChecksums = {\n \"0.0.0\": {\n // legacy — downloads winCodeSign-2.6.0 via getLegacyWinCodeSignBin()\n },\n \"1.0.0\": {\n \"rcedit-windows-2_0_0.zip\": \"589709935902545a8335190b08644cf61b46a9042e34c0c3ef0660a5aeddeaae\",\n \"win-codesign-darwin-arm64.zip\": \"7eb41c3e6e48a75ced6b3384de22185da4bb458960fa410970eedd4e838c5c14\",\n \"win-codesign-darwin-x86_64.zip\": \"3986c97429f002df63490193d7f787281836f055934e3cdd9e69c70a8acb695e\",\n \"win-codesign-linux-amd64.zip\": \"d362a1a981053841554867e3e9dff51fe420fd577b44653df89bd7d3c916b156\",\n \"win-codesign-linux-arm64.zip\": \"fb848d498281f081c937be48dd6ddaf49b0201f32210dfc816ad061c47ecd37b\",\n \"win-codesign-linux-i386.zip\": \"11f8d9ffbf5b01e3bf6321c6d93b9b5e43d0c2d2a9fde1bca07698f2eb967cdf\",\n \"win-codesign-windows-x64.zip\": \"1bd27f9fa553cb14bec8df530cb3caffcfb095f9dd187dab6eaf5e9b7d6e7bff\",\n \"windows-kits-bundle-10_0_26100_0.zip\": \"1a12c81024c3499c212fdc5fac34a918e6d199271a39dfc524f6d8da484329bd\",\n },\n \"1.1.0\": {\n \"rcedit-windows-2_0_0.zip\": \"c66591ebe0919c60231f0bf79ff223e6504bfa69bc13edc1fa8bfc6177b73402\",\n \"win-codesign-darwin-arm64.zip\": \"3f263b0e53cdc5410f6165471b2e808aee3148dc792efa23a7c303e7a01e67b7\",\n \"win-codesign-darwin-x86_64.zip\": \"143fbdfcbc53bc273fa181356be8416829778452621484d39eadbe1ce49979ba\",\n \"win-codesign-linux-amd64.zip\": \"65477fe8e40709b0f998928afb8336f82413b123310bf5adaa8efb7ed6ed0eeb\",\n \"win-codesign-linux-arm64.zip\": \"575b01a966f2b775bbea119de263957378e2bd28cbd064d35f9e981827e37b59\",\n \"win-codesign-linux-i386.zip\": \"aa3ce90e9aaa3449a228a3fa30633cdeb6b2791913786677a85c59db1d985598\",\n \"win-codesign-windows-x64.zip\": \"6e5dcc5d7af7c00a7387e2101d1ad986aef80e963a3526da07bd0e65de484c30\",\n \"windows-kits-bundle-10_0_26100_0.zip\": \"284f18a2fde66e6ecfbefc3065926c9bfdf641761a9e6cd2bd26e18d1e328bf7\",\n },\n} as const\n\ntype CodeSignVersionKey = keyof typeof wincodesignChecksums\n\nfunction _getWindowsToolsBin<V extends CodeSignVersionKey>(winCodeSign: V, file: keyof (typeof wincodesignChecksums)[V]): Promise<string> {\n return getBinFromUrl(`win-codesign@${winCodeSign}`, file as string, wincodesignChecksums[winCodeSign][file] as string)\n}\n\nexport async function getSignToolPath(winCodeSign: ToolsetConfig[\"winCodeSign\"] | Nullish, isWin: boolean): Promise<ToolInfo> {\n if (isUseSystemSigncode()) {\n return { path: \"osslsigncode\" }\n }\n\n const signToolPath = await resolveEnvToolsetPath(\"SIGNTOOL_PATH\")\n if (signToolPath != null) {\n return { path: signToolPath }\n }\n\n if (isWin) {\n // windows kits are always the target arch; signtool can be used by either arch.\n const signtoolArch: Arch = process.arch === \"x64\" ? Arch.x64 : process.arch === \"arm64\" ? Arch.arm64 : Arch.ia32\n return { path: await getWindowsSignToolExe({ winCodeSign, arch: signtoolArch }) }\n } else {\n const vendor = await getOsslSigncodeBundle(winCodeSign)\n return { path: vendor.path, env: vendor.env }\n }\n}\n\nexport async function getWindowsKitsBundle({ winCodeSign, arch }: { winCodeSign: CodeSignVersionKey | Nullish; arch: Arch }) {\n const kitPath = await resolveEnvToolsetPath(\"ELECTRON_BUILDER_WINDOWS_KITS_PATH\")\n if (kitPath != null) {\n return { kit: kitPath, appxAssets: kitPath }\n }\n\n const useLegacy = winCodeSign == null || winCodeSign === \"0.0.0\"\n if (useLegacy) {\n const vendorPath = await getLegacyWinCodeSignBin()\n return { kit: path.resolve(vendorPath, \"windows-10\", arch === Arch.arm64 ? \"x64\" : Arch[arch]), appxAssets: vendorPath }\n }\n const file = \"windows-kits-bundle-10_0_26100_0.zip\"\n const vendorPath = await _getWindowsToolsBin(winCodeSign, file)\n return { kit: path.resolve(vendorPath, arch === Arch.ia32 ? \"x86\" : Arch[arch]), appxAssets: vendorPath }\n}\n\nexport function isOldWin6() {\n const winVersion = os.release()\n return winVersion.startsWith(\"6.\") && !winVersion.startsWith(\"6.3\")\n}\n\nasync function getWindowsSignToolExe({ winCodeSign, arch }: { winCodeSign: CodeSignVersionKey | Nullish; arch: Arch }) {\n if (winCodeSign === \"0.0.0\" || winCodeSign == null) {\n // use modern signtool on Windows Server 2012 R2 to be able to sign AppX\n const vendorPath = await getLegacyWinCodeSignBin()\n if (isOldWin6()) {\n return path.resolve(vendorPath, \"windows-6\", \"signtool.exe\")\n } else {\n return path.resolve(vendorPath, \"windows-10\", process.arch === \"ia32\" ? \"ia32\" : \"x64\", \"signtool.exe\")\n }\n }\n const vendorPath = await getWindowsKitsBundle({ winCodeSign, arch })\n return path.resolve(vendorPath.kit, \"signtool.exe\")\n}\n\nasync function getOsslSigncodeBundle(winCodeSign: ToolsetConfig[\"winCodeSign\"] | Nullish) {\n const osslSigncodePath = await resolveEnvToolsetPath(\"ELECTRON_BUILDER_OSSL_SIGNCODE_PATH\")\n if (osslSigncodePath != null) {\n return { path: osslSigncodePath }\n }\n if (process.platform === \"win32\" || process.env.USE_SYSTEM_OSSLSIGNCODE === \"true\") {\n return { path: \"osslsigncode\" }\n }\n\n if (winCodeSign === \"0.0.0\" || winCodeSign == null) {\n const vendorBase = path.resolve(await getLegacyWinCodeSignBin(), process.platform)\n const vendorPath = process.platform === \"darwin\" ? path.resolve(vendorBase, \"10.12\") : vendorBase\n return { path: path.resolve(vendorPath, \"osslsigncode\"), env: process.platform === \"darwin\" ? computeToolEnv([path.resolve(vendorPath, \"lib\")]) : undefined }\n }\n\n const file = (() => {\n if (process.platform === \"linux\") {\n if (process.arch == \"x64\") {\n return \"win-codesign-linux-amd64.zip\"\n } else if (process.arch === \"arm64\") {\n return \"win-codesign-linux-arm64.zip\"\n }\n return \"win-codesign-linux-i386.zip\"\n }\n // darwin arm64\n if (process.arch === \"arm64\") {\n return \"win-codesign-darwin-arm64.zip\"\n }\n return \"win-codesign-darwin-x86_64.zip\"\n })()\n const vendorPath = await _getWindowsToolsBin(winCodeSign, file)\n return { path: path.resolve(vendorPath, \"osslsigncode\") }\n}\n\nexport async function getRceditBundle(winCodeSign: ToolsetConfig[\"winCodeSign\"] | Nullish) {\n const ia32 = \"rcedit-ia32.exe\"\n const x86 = \"rcedit-x86.exe\"\n const x64 = \"rcedit-x64.exe\"\n const rcedit = await resolveEnvToolsetPath(\"ELECTRON_BUILDER_RCEDIT_PATH\")\n if (rcedit != null) {\n const overridePath = rcedit\n return { x86: path.resolve(overridePath, x86), x64: path.resolve(overridePath, x64) }\n }\n if (winCodeSign === \"0.0.0\" || winCodeSign == null) {\n const vendorPath = await getLegacyWinCodeSignBin()\n return { x86: path.resolve(vendorPath, ia32), x64: path.resolve(vendorPath, x64) }\n }\n const file = \"rcedit-windows-2_0_0.zip\"\n const vendorPath = await _getWindowsToolsBin(winCodeSign, file)\n return { x86: path.resolve(vendorPath, x86), x64: path.resolve(vendorPath, x64) }\n}\n\n// ─── NSIS toolset ────────────────────────────────────────────────────────────\n\nfunction getLegacyNsisBin(): Promise<string> {\n // Warning: Don't use v3.0.4.2 - https://github.com/electron-userland/electron-builder/issues/6334\n return getBinFromUrl(\"nsis-3.0.4.1\", \"nsis-3.0.4.1.7z\", \"9877df902530f96357d13a7a31ae2b9df67f48b11ffc9a1700a7c961574ec5fa\")\n}\n\nfunction getLegacyNsisResourcesBin(): Promise<string> {\n return getBinFromUrl(\"nsis-resources-3.4.1\", \"nsis-resources-3.4.1.7z\", \"593a9a92ef958321293ac6a2ee61e64bf1bd543142a5bd6b3d310709cc924103\")\n}\n\nexport const nsisChecksums = {\n \"0.0.0\": {\n // legacy — uses getLegacyNsisBin() / getLegacyNsisResourcesBin()\n },\n \"1.2.1\": {\n // unified bundle\n \"nsis-bundle-3.12.tar.gz\": \"56997fdefe25e7928a1a68b4583d08b240b66cf660234053b20131a74cc082f4\",\n },\n} as const\n\ntype CustomNsisBinaryConfig = { url: string | null; checksum?: string | null; version?: string | null }\n\nasync function getNsisBundlePath(nsis: ToolsetConfig[\"nsis\"], customBinary?: CustomNsisBinaryConfig | null): Promise<string> {\n if (customBinary?.url && customBinary?.checksum) {\n const binaryVersion = customBinary.version ?? customBinary.checksum.substring(0, 8)\n return getBinFromCustomLoc(\"nsis\", binaryVersion, customBinary.url, customBinary.checksum)\n }\n if (nsis === \"0.0.0\" || nsis == null) {\n return getLegacyNsisBin()\n }\n const file = `nsis-bundle-3.12.tar.gz`\n return downloadBuilderToolset({\n releaseName: `nsis@${nsis}`,\n filenameWithExt: file,\n checksums: { [file]: nsisChecksums[nsis][file] },\n })\n}\n\nasync function getNsisDirOverride(): Promise<string | null> {\n const overridePath = await resolveEnvToolsetPath(\"ELECTRON_BUILDER_NSIS_DIR\")\n if (overridePath == null) {\n return null\n }\n if (!(await stat(overridePath)).isDirectory()) {\n throw new Error(`ELECTRON_BUILDER_NSIS_DIR must be a directory, got a file: ${overridePath}`)\n }\n return overridePath\n}\n\nexport async function getMakeNsisPath(nsis: ToolsetConfig[\"nsis\"] | Nullish, customBinary?: CustomNsisBinaryConfig | null): Promise<ToolInfo> {\n const legacyBundle = (bundlePath: string) => {\n // legacy bundle: platform-specific subdirectories, NSISDIR must be set explicitly\n const env = { NSISDIR: bundlePath }\n if (process.platform === \"darwin\") {\n return { path: path.resolve(bundlePath, \"mac\", \"makensis\"), env }\n } else if (process.platform === \"win32\") {\n return { path: path.resolve(bundlePath, \"Bin\", \"makensis.exe\"), env }\n }\n return { path: path.resolve(bundlePath, \"linux\", \"makensis\"), env }\n }\n const entrypointBundle = (bundlePath: string) => {\n // the entrypoint script auto-sets NSISDIR\n return { path: path.resolve(bundlePath, process.platform === \"win32\" ? \"makensis.cmd\" : \"makensis\") }\n }\n\n const overridePath = await getNsisDirOverride()\n if (overridePath != null) {\n // we have to search both to maintain backward compatibility\n let potentialBundle: ToolInfo = legacyBundle(overridePath)\n if (await exists(potentialBundle.path)) {\n return potentialBundle\n }\n potentialBundle = entrypointBundle(overridePath)\n if (await exists(potentialBundle.path)) {\n return potentialBundle\n }\n throw new Error(`${path.basename(potentialBundle.path)} executable not found in ELECTRON_BUILDER_NSIS_DIR: ${overridePath}`)\n }\n\n const bundlePath = await getNsisBundlePath(nsis, customBinary)\n if (nsis === \"0.0.0\" || nsis == null) {\n return legacyBundle(bundlePath)\n }\n return entrypointBundle(bundlePath)\n}\n\ntype CustomNsisResourcesConfig = { url: string; checksum: string; version: string }\n\nexport async function getNsisPluginsPath(nsis: ToolsetConfig[\"nsis\"] | Nullish, customNsisResources?: CustomNsisResourcesConfig | null): Promise<string> {\n const resolveCustomBundle = async (bundlePath: string, type: \"ELECTRON_BUILDER_NSIS_RESOURCES_DIR\" | \"CUSTOM_NSIS_RESOURCES\") => {\n // we have to search both to maintain backward compatibility\n const potentialPaths = [path.resolve(bundlePath, \"plugins\"), path.resolve(bundlePath, \"windows\", \"Plugins\")]\n for (const p of potentialPaths) {\n if ((await exists(p)) && (await stat(p)).isDirectory()) {\n return p\n }\n }\n throw new Error(`Plugins directory not found in ${type}: ${bundlePath}. Expected to find in one of: ${potentialPaths.join(\", \")}`)\n }\n const overridePath = await resolveEnvToolsetPath(\"ELECTRON_BUILDER_NSIS_RESOURCES_DIR\")\n if (overridePath != null) {\n return resolveCustomBundle(overridePath, \"ELECTRON_BUILDER_NSIS_RESOURCES_DIR\")\n }\n if (customNsisResources) {\n const bundle = await getBinFromCustomLoc(\"nsis-resources\", customNsisResources.version, customNsisResources.url, customNsisResources.checksum)\n return resolveCustomBundle(bundle, \"CUSTOM_NSIS_RESOURCES\")\n }\n if (nsis === \"0.0.0\" || nsis == null) {\n return path.resolve(await getLegacyNsisResourcesBin(), \"plugins\")\n }\n return path.resolve(await getNsisBundlePath(nsis), \"windows\", \"Plugins\")\n}\n\nexport async function getNsisElevatePath(nsis: ToolsetConfig[\"nsis\"] | Nullish, customBinary?: CustomNsisBinaryConfig | null): Promise<string> {\n const resolveElevate = async (dir: string, label: string) => {\n const p = path.resolve(dir, \"elevate.exe\")\n if ((await exists(p)) && (await stat(p)).isFile()) {\n return p\n }\n throw new Error(`elevate.exe not found in ${label} directory: ${dir}. Expected path: ${p}`)\n }\n const overridePath = await getNsisDirOverride()\n if (overridePath != null) {\n return resolveElevate(overridePath, \"ELECTRON_BUILDER_NSIS_DIR\")\n }\n return resolveElevate(await getNsisBundlePath(nsis, customBinary), \"NSIS bundle\")\n}\n"]}
|
|
@@ -30,7 +30,10 @@ export interface ElectronDownloadOptions {
|
|
|
30
30
|
platform?: ElectronPlatformName;
|
|
31
31
|
arch?: string;
|
|
32
32
|
}
|
|
33
|
-
export declare function getCacheDirectory(
|
|
33
|
+
export declare function getCacheDirectory(options: {
|
|
34
|
+
isAvoidSystemOnWindows?: boolean;
|
|
35
|
+
allowEnvVarOverride: boolean;
|
|
36
|
+
}): string;
|
|
34
37
|
export declare function extractArchive(file: string, dir: string): Promise<void>;
|
|
35
38
|
/**
|
|
36
39
|
* Downloads a generic artifact (.tar.gz or .zip) from a GitHub release.
|
package/out/util/electronGet.js
CHANGED
|
@@ -28,8 +28,9 @@ function hashUrlSafe(input, length = 6) {
|
|
|
28
28
|
const out = hash.toString(36);
|
|
29
29
|
return out.length >= length ? out.slice(0, length) : out.padStart(length, "0");
|
|
30
30
|
}
|
|
31
|
-
function getCacheDirectory(
|
|
31
|
+
function getCacheDirectory(options) {
|
|
32
32
|
var _a, _b, _c, _d, _e;
|
|
33
|
+
const { isAvoidSystemOnWindows = true, allowEnvVarOverride } = options;
|
|
33
34
|
const env = (_a = process.env.ELECTRON_BUILDER_CACHE) === null || _a === void 0 ? void 0 : _a.trim();
|
|
34
35
|
if (allowEnvVarOverride && env && path.parse(env).root) {
|
|
35
36
|
return env;
|
|
@@ -43,6 +44,7 @@ function getCacheDirectory(isAvoidSystemOnWindows = false, allowEnvVarOverride =
|
|
|
43
44
|
if (platform === "win32") {
|
|
44
45
|
const localAppData = (_b = process.env.LOCALAPPDATA) === null || _b === void 0 ? void 0 : _b.trim();
|
|
45
46
|
const username = (_d = (_c = process.env.USERNAME) === null || _c === void 0 ? void 0 : _c.trim()) === null || _d === void 0 ? void 0 : _d.toLowerCase();
|
|
47
|
+
// https://github.com/electron-userland/electron-builder/issues/1164
|
|
46
48
|
const isSystemUser = isAvoidSystemOnWindows && (((_e = localAppData === null || localAppData === void 0 ? void 0 : localAppData.toLowerCase()) === null || _e === void 0 ? void 0 : _e.includes("\\windows\\system32\\")) || username === "system");
|
|
47
49
|
if (!localAppData || isSystemUser) {
|
|
48
50
|
return path.join(os.tmpdir(), `${appName}-cache`);
|
|
@@ -112,7 +114,7 @@ async function extractArchive(file, dir) {
|
|
|
112
114
|
const tmpDir = `${dir}.tmp`;
|
|
113
115
|
await fs.mkdir(tmpDir, { recursive: true });
|
|
114
116
|
const release = await lockfile.lock(tmpDir, {
|
|
115
|
-
retries: { retries:
|
|
117
|
+
retries: { retries: 15, minTimeout: 1000, maxTimeout: 5000 },
|
|
116
118
|
stale: 120000, // Increased from 60s to allow long-running extractions
|
|
117
119
|
});
|
|
118
120
|
try {
|
|
@@ -157,12 +159,13 @@ async function extractArchive(file, dir) {
|
|
|
157
159
|
}
|
|
158
160
|
}
|
|
159
161
|
async function downloadArtifactToFile(config, label) {
|
|
160
|
-
var _a, _b;
|
|
162
|
+
var _a, _b, _c, _d;
|
|
161
163
|
let lastLoggedMilestone = -1;
|
|
162
164
|
const state = { bar: undefined };
|
|
163
165
|
const downloadOptions = {
|
|
164
166
|
timeout: { request: 10 * 60 * 1000 }, // prevent indefinite hang on stalled connections
|
|
165
167
|
...config.downloadOptions,
|
|
168
|
+
agent: (_b = (_a = config.downloadOptions) === null || _a === void 0 ? void 0 : _a.agent) !== null && _b !== void 0 ? _b : (0, builder_util_1.buildGotProxyAgent)(),
|
|
166
169
|
getProgressCallback: info => {
|
|
167
170
|
// @electron/get passes downloadOptions (including this callback) to its internal
|
|
168
171
|
// SHASUMS256.txt validation download. That file is tiny (<1 MB) and fires at 100%
|
|
@@ -214,8 +217,8 @@ async function downloadArtifactToFile(config, label) {
|
|
|
214
217
|
return filePath;
|
|
215
218
|
}
|
|
216
219
|
finally {
|
|
217
|
-
(
|
|
218
|
-
(
|
|
220
|
+
(_c = state.bar) === null || _c === void 0 ? void 0 : _c.update(100);
|
|
221
|
+
(_d = state.bar) === null || _d === void 0 ? void 0 : _d.terminate();
|
|
219
222
|
}
|
|
220
223
|
}
|
|
221
224
|
/**
|
|
@@ -236,7 +239,7 @@ async function downloadAndExtract(config, extractDir, label) {
|
|
|
236
239
|
}
|
|
237
240
|
}
|
|
238
241
|
const release = await lockfile.lock(extractDir, {
|
|
239
|
-
retries: { retries:
|
|
242
|
+
retries: { retries: 15, minTimeout: 1000, maxTimeout: 5000 },
|
|
240
243
|
stale: 120000,
|
|
241
244
|
});
|
|
242
245
|
let downloadedFile = null;
|
|
@@ -286,22 +289,19 @@ async function downloadAndExtract(config, extractDir, label) {
|
|
|
286
289
|
async function downloadBuilderToolset(options) {
|
|
287
290
|
const { releaseName, filenameWithExt, checksums, githubOrgRepo = "electron-userland/electron-builder-binaries", overrideUrl } = options;
|
|
288
291
|
const baseUrl = getBinariesMirrorUrl(githubOrgRepo);
|
|
289
|
-
const
|
|
290
|
-
const suffix = hashUrlSafe(
|
|
292
|
+
const fullUrl = overrideUrl ? `${overrideUrl}/${filenameWithExt}` : `${baseUrl}${releaseName}/${filenameWithExt}`;
|
|
293
|
+
const suffix = hashUrlSafe(fullUrl, 5);
|
|
291
294
|
const folderName = `${filenameWithExt.replace(/\.(tar\.gz|tgz|zip|7z)$/, "")}-${suffix}`;
|
|
292
|
-
const extractDir = path.join(getCacheDirectory(), releaseName, folderName);
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
customDir: releaseName,
|
|
299
|
-
customFilename: filenameWithExt,
|
|
300
|
-
};
|
|
295
|
+
const extractDir = path.join(getCacheDirectory({ allowEnvVarOverride: true }), releaseName, folderName);
|
|
296
|
+
// Use resolveAssetURL so @electron/get's ELECTRON_MIRROR env var check cannot override
|
|
297
|
+
// the builder-binaries URL we've already resolved (see getArtifactRemoteURL in @electron/get).
|
|
298
|
+
const mirrorOptions = {
|
|
299
|
+
resolveAssetURL: async () => Promise.resolve(fullUrl),
|
|
300
|
+
};
|
|
301
301
|
const config = {
|
|
302
302
|
version: "9.9.9", // must be >1.3.2 to bypass @electron/get validation shortcut
|
|
303
303
|
artifactName: filenameWithExt,
|
|
304
|
-
cacheRoot: path.resolve(getCacheDirectory(), "downloads"),
|
|
304
|
+
cacheRoot: path.resolve(getCacheDirectory({ allowEnvVarOverride: true }), "downloads"),
|
|
305
305
|
cacheMode: resolveCacheMode(),
|
|
306
306
|
...(checksums != null ? { checksums } : { unsafelyDisableChecksums: true }),
|
|
307
307
|
mirrorOptions,
|
|
@@ -364,7 +364,7 @@ async function downloadElectronArtifact(options) {
|
|
|
364
364
|
const artifactConfig = buildElectronArtifactConfig(options);
|
|
365
365
|
const suffix = hashUrlSafe(JSON.stringify(artifactConfig), 5);
|
|
366
366
|
const folderName = `${artifactName}-v${version}-${platform}-${arch}-${suffix}`;
|
|
367
|
-
const extractDir = path.join(getCacheDirectory(), `${artifactName}-v${version}`, folderName);
|
|
367
|
+
const extractDir = path.join(getCacheDirectory({ allowEnvVarOverride: true }), `${artifactName}-v${version}`, folderName);
|
|
368
368
|
return downloadAndExtract(artifactConfig, extractDir, artifactName);
|
|
369
369
|
}
|
|
370
370
|
/**
|