app-builder-lib 26.12.0 → 26.12.1
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 +32 -5
- package/out/binDownload.js.map +1 -1
- package/out/codeSign/macCodeSign.js +2 -2
- package/out/codeSign/macCodeSign.js.map +1 -1
- package/out/electron/ElectronFramework.js +4 -1
- package/out/electron/ElectronFramework.js.map +1 -1
- package/out/electron/electronVersion.js +9 -4
- package/out/electron/electronVersion.js.map +1 -1
- package/out/fileTransformer.js +2 -1
- package/out/fileTransformer.js.map +1 -1
- package/out/forge-maker.js +6 -2
- package/out/forge-maker.js.map +1 -1
- package/out/mac/MacTargetHelper.d.ts +24 -0
- package/out/mac/MacTargetHelper.js +267 -0
- package/out/mac/MacTargetHelper.js.map +1 -0
- package/out/macPackager.d.ts +21 -7
- package/out/macPackager.js +218 -346
- package/out/macPackager.js.map +1 -1
- package/out/packager.js +4 -4
- package/out/packager.js.map +1 -1
- package/out/platformPackager.js +8 -4
- package/out/platformPackager.js.map +1 -1
- package/out/targets/AppxTarget.js +2 -1
- package/out/targets/AppxTarget.js.map +1 -1
- package/out/targets/FlatpakTarget.js +2 -4
- package/out/targets/FlatpakTarget.js.map +1 -1
- package/out/targets/FpmTarget.js +30 -6
- package/out/targets/FpmTarget.js.map +1 -1
- package/out/targets/LinuxTargetHelper.d.ts +1 -1
- package/out/targets/LinuxTargetHelper.js +69 -11
- package/out/targets/LinuxTargetHelper.js.map +1 -1
- package/out/targets/MsiTarget.js +1 -1
- package/out/targets/MsiTarget.js.map +1 -1
- package/out/targets/MsiWrappedTarget.js +1 -1
- package/out/targets/MsiWrappedTarget.js.map +1 -1
- package/out/targets/appimage/AppImageTarget.js +2 -1
- package/out/targets/appimage/AppImageTarget.js.map +1 -1
- package/out/targets/nsis/NsisTarget.js +14 -4
- package/out/targets/nsis/NsisTarget.js.map +1 -1
- package/out/targets/nsis/nsisScriptGenerator.js +2 -3
- package/out/targets/nsis/nsisScriptGenerator.js.map +1 -1
- package/out/targets/pkg.js +1 -1
- package/out/targets/pkg.js.map +1 -1
- package/out/targets/snap/SnapTarget.js +2 -1
- package/out/targets/snap/SnapTarget.js.map +1 -1
- package/out/targets/snap/core24.js +5 -4
- package/out/targets/snap/core24.js.map +1 -1
- package/out/targets/snap/coreLegacy.js +5 -5
- package/out/targets/snap/coreLegacy.js.map +1 -1
- package/out/targets/snap/snapcraftBuilder.js +4 -3
- package/out/targets/snap/snapcraftBuilder.js.map +1 -1
- package/out/toolsets/linux.js +3 -3
- package/out/toolsets/linux.js.map +1 -1
- package/out/toolsets/windows.js +7 -17
- package/out/toolsets/windows.js.map +1 -1
- package/out/util/bundledTool.js +2 -1
- package/out/util/bundledTool.js.map +1 -1
- package/out/util/config/config.js +4 -3
- package/out/util/config/config.js.map +1 -1
- package/out/util/electronGet.d.ts +2 -0
- package/out/util/electronGet.js +7 -1
- package/out/util/electronGet.js.map +1 -1
- package/out/util/packageMetadata.js +2 -1
- package/out/util/packageMetadata.js.map +1 -1
- package/out/util/yarn.js +1 -1
- package/out/util/yarn.js.map +1 -1
- package/out/version.d.ts +1 -1
- package/out/version.js +1 -1
- package/out/version.js.map +1 -1
- package/package.json +8 -8
|
@@ -1 +1 @@
|
|
|
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;
|
|
1
|
+
{"version":3,"file":"linux.js","sourceRoot":"","sources":["../../src/toolsets/linux.ts"],"names":[],"mappings":"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","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\", \"directory\")\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\", \"file\")\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\", \"directory\")\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"]}
|
package/out/toolsets/windows.js
CHANGED
|
@@ -55,7 +55,7 @@ async function getSignToolPath(winCodeSign, isWin) {
|
|
|
55
55
|
if ((0, flags_1.isUseSystemSigncode)()) {
|
|
56
56
|
return { path: "osslsigncode" };
|
|
57
57
|
}
|
|
58
|
-
const signToolPath = await (0, builder_util_1.resolveEnvToolsetPath)("SIGNTOOL_PATH");
|
|
58
|
+
const signToolPath = await (0, builder_util_1.resolveEnvToolsetPath)("SIGNTOOL_PATH", "file");
|
|
59
59
|
if (signToolPath != null) {
|
|
60
60
|
return { path: signToolPath };
|
|
61
61
|
}
|
|
@@ -70,7 +70,7 @@ async function getSignToolPath(winCodeSign, isWin) {
|
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
72
|
async function getWindowsKitsBundle({ winCodeSign, arch }) {
|
|
73
|
-
const kitPath = await (0, builder_util_1.resolveEnvToolsetPath)("ELECTRON_BUILDER_WINDOWS_KITS_PATH");
|
|
73
|
+
const kitPath = await (0, builder_util_1.resolveEnvToolsetPath)("ELECTRON_BUILDER_WINDOWS_KITS_PATH", "directory");
|
|
74
74
|
if (kitPath != null) {
|
|
75
75
|
return { kit: kitPath, appxAssets: kitPath };
|
|
76
76
|
}
|
|
@@ -102,7 +102,7 @@ async function getWindowsSignToolExe({ winCodeSign, arch }) {
|
|
|
102
102
|
return path.resolve(vendorPath.kit, "signtool.exe");
|
|
103
103
|
}
|
|
104
104
|
async function getOsslSigncodeBundle(winCodeSign) {
|
|
105
|
-
const osslSigncodePath = await (0, builder_util_1.resolveEnvToolsetPath)("ELECTRON_BUILDER_OSSL_SIGNCODE_PATH");
|
|
105
|
+
const osslSigncodePath = await (0, builder_util_1.resolveEnvToolsetPath)("ELECTRON_BUILDER_OSSL_SIGNCODE_PATH", "file");
|
|
106
106
|
if (osslSigncodePath != null) {
|
|
107
107
|
return { path: osslSigncodePath };
|
|
108
108
|
}
|
|
@@ -137,7 +137,7 @@ async function getRceditBundle(winCodeSign) {
|
|
|
137
137
|
const ia32 = "rcedit-ia32.exe";
|
|
138
138
|
const x86 = "rcedit-x86.exe";
|
|
139
139
|
const x64 = "rcedit-x64.exe";
|
|
140
|
-
const rcedit = await (0, builder_util_1.resolveEnvToolsetPath)("ELECTRON_BUILDER_RCEDIT_PATH");
|
|
140
|
+
const rcedit = await (0, builder_util_1.resolveEnvToolsetPath)("ELECTRON_BUILDER_RCEDIT_PATH", "directory");
|
|
141
141
|
if (rcedit != null) {
|
|
142
142
|
const overridePath = rcedit;
|
|
143
143
|
return { x86: path.resolve(overridePath, x86), x64: path.resolve(overridePath, x64) };
|
|
@@ -183,16 +183,6 @@ async function getNsisBundlePath(nsis, customBinary) {
|
|
|
183
183
|
checksums: { [file]: exports.nsisChecksums[nsis][file] },
|
|
184
184
|
});
|
|
185
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
186
|
async function getMakeNsisPath(nsis, customBinary) {
|
|
197
187
|
const legacyBundle = (bundlePath) => {
|
|
198
188
|
// legacy bundle: platform-specific subdirectories, NSISDIR must be set explicitly
|
|
@@ -209,7 +199,7 @@ async function getMakeNsisPath(nsis, customBinary) {
|
|
|
209
199
|
// the entrypoint script auto-sets NSISDIR
|
|
210
200
|
return { path: path.resolve(bundlePath, process.platform === "win32" ? "makensis.cmd" : "makensis") };
|
|
211
201
|
};
|
|
212
|
-
const overridePath = await
|
|
202
|
+
const overridePath = await (0, builder_util_1.resolveEnvToolsetPath)("ELECTRON_BUILDER_NSIS_DIR", "directory");
|
|
213
203
|
if (overridePath != null) {
|
|
214
204
|
// we have to search both to maintain backward compatibility
|
|
215
205
|
let potentialBundle = legacyBundle(overridePath);
|
|
@@ -239,7 +229,7 @@ async function getNsisPluginsPath(nsis, customNsisResources) {
|
|
|
239
229
|
}
|
|
240
230
|
throw new Error(`Plugins directory not found in ${type}: ${bundlePath}. Expected to find in one of: ${potentialPaths.join(", ")}`);
|
|
241
231
|
};
|
|
242
|
-
const overridePath = await (0, builder_util_1.resolveEnvToolsetPath)("ELECTRON_BUILDER_NSIS_RESOURCES_DIR");
|
|
232
|
+
const overridePath = await (0, builder_util_1.resolveEnvToolsetPath)("ELECTRON_BUILDER_NSIS_RESOURCES_DIR", "directory");
|
|
243
233
|
if (overridePath != null) {
|
|
244
234
|
return resolveCustomBundle(overridePath, "ELECTRON_BUILDER_NSIS_RESOURCES_DIR");
|
|
245
235
|
}
|
|
@@ -260,7 +250,7 @@ async function getNsisElevatePath(nsis, customBinary) {
|
|
|
260
250
|
}
|
|
261
251
|
throw new Error(`elevate.exe not found in ${label} directory: ${dir}. Expected path: ${p}`);
|
|
262
252
|
};
|
|
263
|
-
const overridePath = await
|
|
253
|
+
const overridePath = await (0, builder_util_1.resolveEnvToolsetPath)("ELECTRON_BUILDER_NSIS_DIR", "directory");
|
|
264
254
|
if (overridePath != null) {
|
|
265
255
|
return resolveElevate(overridePath, "ELECTRON_BUILDER_NSIS_DIR");
|
|
266
256
|
}
|
|
@@ -1 +1 @@
|
|
|
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"]}
|
|
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\", \"file\")\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\", \"directory\")\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\", \"file\")\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\", \"directory\")\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\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 resolveEnvToolsetPath(\"ELECTRON_BUILDER_NSIS_DIR\", \"directory\")\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\", \"directory\")\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 resolveEnvToolsetPath(\"ELECTRON_BUILDER_NSIS_DIR\", \"directory\")\n if (overridePath != null) {\n return resolveElevate(overridePath, \"ELECTRON_BUILDER_NSIS_DIR\")\n }\n return resolveElevate(await getNsisBundlePath(nsis, customBinary), \"NSIS bundle\")\n}\n"]}
|
package/out/util/bundledTool.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.computeEnv = computeEnv;
|
|
4
4
|
exports.computeToolEnv = computeToolEnv;
|
|
5
|
+
const builder_util_1 = require("builder-util");
|
|
5
6
|
function computeEnv(oldValue, newValues) {
|
|
6
7
|
const parsedOldValue = oldValue ? oldValue.split(":") : [];
|
|
7
8
|
return newValues
|
|
@@ -12,7 +13,7 @@ function computeEnv(oldValue, newValues) {
|
|
|
12
13
|
function computeToolEnv(libPath) {
|
|
13
14
|
// noinspection SpellCheckingInspection
|
|
14
15
|
return {
|
|
15
|
-
...process.env,
|
|
16
|
+
...(0, builder_util_1.stripSensitiveEnvVars)(process.env),
|
|
16
17
|
DYLD_LIBRARY_PATH: computeEnv(process.env.DYLD_LIBRARY_PATH, libPath),
|
|
17
18
|
};
|
|
18
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundledTool.js","sourceRoot":"","sources":["../../src/util/bundledTool.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"bundledTool.js","sourceRoot":"","sources":["../../src/util/bundledTool.ts"],"names":[],"mappings":";;AAQA,gCAMC;AAED,wCAMC;AAtBD,+CAAoD;AAQpD,SAAgB,UAAU,CAAC,QAA0B,EAAE,SAAwB;IAC7E,MAAM,cAAc,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC1D,OAAO,SAAS;SACb,MAAM,CAAC,cAAc,CAAC;SACtB,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;SAC3B,IAAI,CAAC,GAAG,CAAC,CAAA;AACd,CAAC;AAED,SAAgB,cAAc,CAAC,OAAsB;IACnD,uCAAuC;IACvC,OAAO;QACL,GAAG,IAAA,oCAAqB,EAAC,OAAO,CAAC,GAAG,CAAC;QACrC,iBAAiB,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC;KACtE,CAAA;AACH,CAAC","sourcesContent":["import { stripSensitiveEnvVars } from \"builder-util\"\nimport { Nullish } from \"builder-util-runtime\"\n\nexport interface ToolInfo {\n path: string\n env?: any\n}\n\nexport function computeEnv(oldValue: string | Nullish, newValues: Array<string>): string {\n const parsedOldValue = oldValue ? oldValue.split(\":\") : []\n return newValues\n .concat(parsedOldValue)\n .filter(it => it.length > 0)\n .join(\":\")\n}\n\nexport function computeToolEnv(libPath: Array<string>): any {\n // noinspection SpellCheckingInspection\n return {\n ...stripSensitiveEnvVars(process.env),\n DYLD_LIBRARY_PATH: computeEnv(process.env.DYLD_LIBRARY_PATH, libPath),\n }\n}\n"]}
|
|
@@ -5,6 +5,7 @@ exports.doMergeConfigs = doMergeConfigs;
|
|
|
5
5
|
exports.validateConfiguration = validateConfiguration;
|
|
6
6
|
exports.computeDefaultAppDirectory = computeDefaultAppDirectory;
|
|
7
7
|
const builder_util_1 = require("builder-util");
|
|
8
|
+
const builder_util_runtime_1 = require("builder-util-runtime");
|
|
8
9
|
const fs_extra_1 = require("fs-extra");
|
|
9
10
|
const lazy_val_1 = require("lazy-val");
|
|
10
11
|
const path = require("path");
|
|
@@ -19,7 +20,7 @@ function mergePublish(config, configFromOptions) {
|
|
|
19
20
|
if (publish != null) {
|
|
20
21
|
delete configFromOptions.publish;
|
|
21
22
|
}
|
|
22
|
-
(0,
|
|
23
|
+
(0, builder_util_runtime_1.deepAssign)(config, configFromOptions);
|
|
23
24
|
if (publish == null) {
|
|
24
25
|
return;
|
|
25
26
|
}
|
|
@@ -29,7 +30,7 @@ function mergePublish(config, configFromOptions) {
|
|
|
29
30
|
}
|
|
30
31
|
else {
|
|
31
32
|
// apply to first
|
|
32
|
-
|
|
33
|
+
(0, builder_util_runtime_1.deepAssign)(listOnDisk[0], publish);
|
|
33
34
|
}
|
|
34
35
|
}
|
|
35
36
|
async function getConfig(projectDir, configPath, configFromOptions, packageMetadata = new lazy_val_1.Lazy(() => (0, load_1.orNullIfFileNotExist)((0, fs_extra_1.readJson)(path.join(projectDir, "package.json"))))) {
|
|
@@ -169,7 +170,7 @@ function doMergeConfigs(configs) {
|
|
|
169
170
|
normalizeFiles(config, "extraFiles");
|
|
170
171
|
normalizeFiles(config, "extraResources");
|
|
171
172
|
}
|
|
172
|
-
const result = (0,
|
|
173
|
+
const result = (0, builder_util_runtime_1.deepAssign)(getDefaultConfig(), ...configs);
|
|
173
174
|
// `deepAssign` prioritises latter configs, while `mergeFilesSets` prioritises
|
|
174
175
|
// former configs, so we have to reverse the order, because latter configs
|
|
175
176
|
// must have higher priority.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/util/config/config.ts"],"names":[],"mappings":"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","sourcesContent":["import { DebugLogger, deepAssign, InvalidConfigurationError, log, safeStringifyJson, statOrNull } from \"builder-util\"\nimport { Nullish } from \"builder-util-runtime\"\nimport { readJson } from \"fs-extra\"\nimport { Lazy } from \"lazy-val\"\nimport * as path from \"path\"\nimport { Configuration } from \"../../configuration\"\nimport { FileSet } from \"../../options/PlatformSpecificBuildOptions\"\nimport { reactCra } from \"../../presets/rectCra\"\nimport { PACKAGE_VERSION } from \"../../version\"\nimport { getConfig as _getConfig, loadParentConfig, orNullIfFileNotExist, ReadConfigRequest } from \"./load\"\nconst validateSchema = require(\"@develar/schema-utils\")\n\n// https://github.com/electron-userland/electron-builder/issues/1847\nfunction mergePublish(config: Configuration, configFromOptions: Configuration) {\n // if config from disk doesn't have publish (or object), no need to handle, it will be simply merged by deepAssign\n const publish = Array.isArray(config.publish) ? configFromOptions.publish : null\n if (publish != null) {\n delete (configFromOptions as any).publish\n }\n\n deepAssign(config, configFromOptions)\n\n if (publish == null) {\n return\n }\n\n const listOnDisk = config.publish as Array<any>\n if (listOnDisk.length === 0) {\n config.publish = publish\n } else {\n // apply to first\n Object.assign(listOnDisk[0], publish)\n }\n}\n\nexport async function getConfig(\n projectDir: string,\n configPath: string | null,\n configFromOptions: Configuration | Nullish,\n packageMetadata: Lazy<Record<string, any> | null> = new Lazy(() => orNullIfFileNotExist(readJson(path.join(projectDir, \"package.json\"))))\n): Promise<Configuration> {\n const configRequest: ReadConfigRequest = { packageKey: \"build\", configFilename: \"electron-builder\", projectDir, packageMetadata }\n const configAndEffectiveFile = await _getConfig<Configuration>(configRequest, configPath)\n const config = configAndEffectiveFile == null ? {} : configAndEffectiveFile.result\n if (configFromOptions != null) {\n mergePublish(config, configFromOptions)\n }\n\n if (configAndEffectiveFile != null) {\n log.info({ file: configAndEffectiveFile.configFile == null ? 'package.json (\"build\" field)' : configAndEffectiveFile.configFile }, \"loaded configuration\")\n }\n\n if (config.extends == null && config.extends !== null) {\n const metadata = (await packageMetadata.value) || {}\n const devDependencies = metadata.devDependencies\n const dependencies = metadata.dependencies\n if ((dependencies != null && \"react-scripts\" in dependencies) || (devDependencies != null && \"react-scripts\" in devDependencies)) {\n config.extends = \"react-cra\"\n } else if (devDependencies != null && \"electron-webpack\" in devDependencies) {\n let file = \"electron-webpack/out/electron-builder.js\"\n try {\n file = require.resolve(file)\n } catch (_ignore) {\n file = require.resolve(\"electron-webpack/electron-builder.yml\")\n }\n config.extends = `file:${file}`\n }\n }\n\n const parentConfigs = await loadParentConfigsRecursively(config.extends, async configExtend => {\n if (configExtend === \"react-cra\") {\n const result = await reactCra(projectDir)\n log.info({ preset: configExtend }, \"loaded parent configuration\")\n return result\n } else {\n const { configFile, result } = await loadParentConfig<Configuration>(configRequest, configExtend)\n log.info({ file: configFile }, \"loaded parent configuration\")\n return result\n }\n })\n\n return doMergeConfigs([...parentConfigs, config])\n}\n\nfunction asArray(value: string[] | string | Nullish): string[] {\n return Array.isArray(value) ? value : typeof value === \"string\" ? [value] : []\n}\n\nasync function loadParentConfigsRecursively(configExtends: Configuration[\"extends\"], loader: (configExtend: string) => Promise<Configuration>): Promise<Configuration[]> {\n const configs = []\n\n for (const configExtend of asArray(configExtends)) {\n const result = await loader(configExtend)\n const parentConfigs = await loadParentConfigsRecursively(result.extends, loader)\n configs.push(...parentConfigs, result)\n }\n\n return configs\n}\n\n// normalize for easy merge\nfunction normalizeFiles(configuration: Configuration, name: \"files\" | \"extraFiles\" | \"extraResources\") {\n let value = configuration[name]\n if (value == null) {\n return\n }\n\n if (!Array.isArray(value)) {\n value = [value]\n }\n\n itemLoop: for (let i = 0; i < value.length; i++) {\n let item = value[i]\n if (typeof item === \"string\") {\n // merge with previous if possible\n if (i !== 0) {\n let prevItemIndex = i - 1\n let prevItem: FileSet\n do {\n prevItem = value[prevItemIndex--] as FileSet\n } while (prevItem == null)\n\n if (prevItem.from == null && prevItem.to == null) {\n if (prevItem.filter == null) {\n prevItem.filter = [item]\n } else {\n ;(prevItem.filter as Array<string>).push(item)\n }\n value[i] = null as any\n continue itemLoop\n }\n }\n\n item = {\n filter: [item],\n }\n value[i] = item\n } else if (Array.isArray(item)) {\n throw new Error(`${name} configuration is invalid, nested array not expected for index ${i}: ${item}`)\n }\n\n // make sure that merge logic is not complex - unify different presentations\n if (item.from === \".\") {\n item.from = undefined\n }\n\n if (item.to === \".\") {\n item.to = undefined\n }\n\n if (item.filter != null && typeof item.filter === \"string\") {\n item.filter = [item.filter]\n }\n }\n\n configuration[name] = value.filter(it => it != null)\n}\n\nfunction isSimilarFileSet(value: FileSet, other: FileSet): boolean {\n return value.from === other.from && value.to === other.to\n}\n\ntype Filter = FileSet[\"filter\"]\n\nfunction mergeFilters(value: Filter, other: Filter): string[] {\n return asArray(value).concat(asArray(other))\n}\n\nfunction mergeFileSets(lists: FileSet[][]): FileSet[] {\n const result: FileSet[] = []\n\n for (const list of lists) {\n for (const item of list) {\n const existingItem = result.find(i => isSimilarFileSet(i, item))\n if (existingItem) {\n existingItem.filter = mergeFilters(item.filter, existingItem.filter)\n } else {\n result.push(item)\n }\n }\n }\n\n return result\n}\n\n/**\n * `doMergeConfigs` takes configs in the order you would pass them to\n * Object.assign as sources.\n */\nexport function doMergeConfigs(configs: Configuration[]): Configuration {\n for (const config of configs) {\n normalizeFiles(config, \"files\")\n normalizeFiles(config, \"extraFiles\")\n normalizeFiles(config, \"extraResources\")\n }\n\n const result = deepAssign(getDefaultConfig(), ...configs)\n\n // `deepAssign` prioritises latter configs, while `mergeFilesSets` prioritises\n // former configs, so we have to reverse the order, because latter configs\n // must have higher priority.\n configs = configs.slice().reverse()\n\n result.files = mergeFileSets(configs.map(config => (config.files ?? []) as FileSet[]))\n return result\n}\n\nfunction getDefaultConfig(): Configuration {\n return {\n directories: {\n output: \"dist\",\n buildResources: \"build\",\n },\n }\n}\n\nconst schemeDataPromise = new Lazy(() => readJson(path.join(__dirname, \"..\", \"..\", \"..\", \"scheme.json\")))\n\nexport async function validateConfiguration(config: Configuration, debugLogger: DebugLogger) {\n const extraMetadata = config.extraMetadata\n if (extraMetadata != null) {\n if (extraMetadata.build != null) {\n throw new InvalidConfigurationError(`--em.build is deprecated, please specify as -c\"`)\n }\n if (extraMetadata.directories != null) {\n throw new InvalidConfigurationError(`--em.directories is deprecated, please specify as -c.directories\"`)\n }\n }\n\n const oldConfig: any = config\n if (oldConfig.npmSkipBuildFromSource === false) {\n throw new InvalidConfigurationError(`npmSkipBuildFromSource is deprecated, please use buildDependenciesFromSource\"`)\n }\n if (oldConfig.appImage != null && oldConfig.appImage.systemIntegration != null) {\n throw new InvalidConfigurationError(`appImage.systemIntegration is deprecated, https://github.com/TheAssassin/AppImageLauncher is used for desktop integration\"`)\n }\n\n // noinspection JSUnusedGlobalSymbols\n validateSchema(await schemeDataPromise.value, config, {\n name: `electron-builder ${PACKAGE_VERSION}`,\n postFormatter: (formattedError: string, error: any): string => {\n if (debugLogger.isEnabled) {\n debugLogger.add(\"invalidConfig\", safeStringifyJson(error))\n }\n\n const site = \"https://www.electron.build\"\n let url = `${site}/configuration`\n const targets = new Set([\"mac\", \"dmg\", \"pkg\", \"mas\", \"win\", \"nsis\", \"appx\", \"linux\", \"appimage\", \"snap\"])\n const dataPath: string = error.dataPath == null ? null : error.dataPath\n const targetPath = dataPath.startsWith(\".\") ? dataPath.substr(1).toLowerCase() : null\n if (targetPath != null && targets.has(targetPath)) {\n url = `${site}/${targetPath}`\n }\n\n return `${formattedError}\\n How to fix:\n 1. Open ${url}\n 2. Search the option name on the page (or type in into Search to find across the docs).\n * Not found? The option was deprecated or not exists (check spelling).\n * Found? Check that the option in the appropriate place. e.g. \"title\" only in the \"dmg\", not in the root.\n`\n },\n })\n}\n\nconst DEFAULT_APP_DIR_NAMES = [\"app\", \"www\"]\n\nexport async function computeDefaultAppDirectory(projectDir: string, userAppDir: string | Nullish): Promise<string> {\n if (userAppDir != null) {\n const absolutePath = path.resolve(projectDir, userAppDir)\n const stat = await statOrNull(absolutePath)\n if (stat == null) {\n throw new InvalidConfigurationError(`Application directory ${userAppDir} doesn't exist`)\n } else if (!stat.isDirectory()) {\n throw new InvalidConfigurationError(`Application directory ${userAppDir} is not a directory`)\n } else if (projectDir === absolutePath) {\n log.warn({ appDirectory: userAppDir }, `Specified application directory equals to project dir — superfluous or wrong configuration`)\n }\n return absolutePath\n }\n\n for (const dir of DEFAULT_APP_DIR_NAMES) {\n const absolutePath = path.join(projectDir, dir)\n const packageJson = path.join(absolutePath, \"package.json\")\n const stat = await statOrNull(packageJson)\n if (stat != null && stat.isFile()) {\n return absolutePath\n }\n }\n return projectDir\n}\n"]}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/util/config/config.ts"],"names":[],"mappings":"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","sourcesContent":["import { DebugLogger, InvalidConfigurationError, log, safeStringifyJson, statOrNull } from \"builder-util\"\nimport { deepAssign, Nullish } from \"builder-util-runtime\"\nimport { readJson } from \"fs-extra\"\nimport { Lazy } from \"lazy-val\"\nimport * as path from \"path\"\nimport { Configuration } from \"../../configuration\"\nimport { FileSet } from \"../../options/PlatformSpecificBuildOptions\"\nimport { reactCra } from \"../../presets/rectCra\"\nimport { PACKAGE_VERSION } from \"../../version\"\nimport { getConfig as _getConfig, loadParentConfig, orNullIfFileNotExist, ReadConfigRequest } from \"./load\"\nconst validateSchema = require(\"@develar/schema-utils\")\n\n// https://github.com/electron-userland/electron-builder/issues/1847\nfunction mergePublish(config: Configuration, configFromOptions: Configuration) {\n // if config from disk doesn't have publish (or object), no need to handle, it will be simply merged by deepAssign\n const publish = Array.isArray(config.publish) ? configFromOptions.publish : null\n if (publish != null) {\n delete (configFromOptions as any).publish\n }\n\n deepAssign(config, configFromOptions)\n\n if (publish == null) {\n return\n }\n\n const listOnDisk = config.publish as Array<any>\n if (listOnDisk.length === 0) {\n config.publish = publish\n } else {\n // apply to first\n deepAssign(listOnDisk[0], publish)\n }\n}\n\nexport async function getConfig(\n projectDir: string,\n configPath: string | null,\n configFromOptions: Configuration | Nullish,\n packageMetadata: Lazy<Record<string, any> | null> = new Lazy(() => orNullIfFileNotExist(readJson(path.join(projectDir, \"package.json\"))))\n): Promise<Configuration> {\n const configRequest: ReadConfigRequest = { packageKey: \"build\", configFilename: \"electron-builder\", projectDir, packageMetadata }\n const configAndEffectiveFile = await _getConfig<Configuration>(configRequest, configPath)\n const config = configAndEffectiveFile == null ? {} : configAndEffectiveFile.result\n if (configFromOptions != null) {\n mergePublish(config, configFromOptions)\n }\n\n if (configAndEffectiveFile != null) {\n log.info({ file: configAndEffectiveFile.configFile == null ? 'package.json (\"build\" field)' : configAndEffectiveFile.configFile }, \"loaded configuration\")\n }\n\n if (config.extends == null && config.extends !== null) {\n const metadata = (await packageMetadata.value) || {}\n const devDependencies = metadata.devDependencies\n const dependencies = metadata.dependencies\n if ((dependencies != null && \"react-scripts\" in dependencies) || (devDependencies != null && \"react-scripts\" in devDependencies)) {\n config.extends = \"react-cra\"\n } else if (devDependencies != null && \"electron-webpack\" in devDependencies) {\n let file = \"electron-webpack/out/electron-builder.js\"\n try {\n file = require.resolve(file)\n } catch (_ignore) {\n file = require.resolve(\"electron-webpack/electron-builder.yml\")\n }\n config.extends = `file:${file}`\n }\n }\n\n const parentConfigs = await loadParentConfigsRecursively(config.extends, async configExtend => {\n if (configExtend === \"react-cra\") {\n const result = await reactCra(projectDir)\n log.info({ preset: configExtend }, \"loaded parent configuration\")\n return result\n } else {\n const { configFile, result } = await loadParentConfig<Configuration>(configRequest, configExtend)\n log.info({ file: configFile }, \"loaded parent configuration\")\n return result\n }\n })\n\n return doMergeConfigs([...parentConfigs, config])\n}\n\nfunction asArray(value: string[] | string | Nullish): string[] {\n return Array.isArray(value) ? value : typeof value === \"string\" ? [value] : []\n}\n\nasync function loadParentConfigsRecursively(configExtends: Configuration[\"extends\"], loader: (configExtend: string) => Promise<Configuration>): Promise<Configuration[]> {\n const configs = []\n\n for (const configExtend of asArray(configExtends)) {\n const result = await loader(configExtend)\n const parentConfigs = await loadParentConfigsRecursively(result.extends, loader)\n configs.push(...parentConfigs, result)\n }\n\n return configs\n}\n\n// normalize for easy merge\nfunction normalizeFiles(configuration: Configuration, name: \"files\" | \"extraFiles\" | \"extraResources\") {\n let value = configuration[name]\n if (value == null) {\n return\n }\n\n if (!Array.isArray(value)) {\n value = [value]\n }\n\n itemLoop: for (let i = 0; i < value.length; i++) {\n let item = value[i]\n if (typeof item === \"string\") {\n // merge with previous if possible\n if (i !== 0) {\n let prevItemIndex = i - 1\n let prevItem: FileSet\n do {\n prevItem = value[prevItemIndex--] as FileSet\n } while (prevItem == null)\n\n if (prevItem.from == null && prevItem.to == null) {\n if (prevItem.filter == null) {\n prevItem.filter = [item]\n } else {\n ;(prevItem.filter as Array<string>).push(item)\n }\n value[i] = null as any\n continue itemLoop\n }\n }\n\n item = {\n filter: [item],\n }\n value[i] = item\n } else if (Array.isArray(item)) {\n throw new Error(`${name} configuration is invalid, nested array not expected for index ${i}: ${item}`)\n }\n\n // make sure that merge logic is not complex - unify different presentations\n if (item.from === \".\") {\n item.from = undefined\n }\n\n if (item.to === \".\") {\n item.to = undefined\n }\n\n if (item.filter != null && typeof item.filter === \"string\") {\n item.filter = [item.filter]\n }\n }\n\n configuration[name] = value.filter(it => it != null)\n}\n\nfunction isSimilarFileSet(value: FileSet, other: FileSet): boolean {\n return value.from === other.from && value.to === other.to\n}\n\ntype Filter = FileSet[\"filter\"]\n\nfunction mergeFilters(value: Filter, other: Filter): string[] {\n return asArray(value).concat(asArray(other))\n}\n\nfunction mergeFileSets(lists: FileSet[][]): FileSet[] {\n const result: FileSet[] = []\n\n for (const list of lists) {\n for (const item of list) {\n const existingItem = result.find(i => isSimilarFileSet(i, item))\n if (existingItem) {\n existingItem.filter = mergeFilters(item.filter, existingItem.filter)\n } else {\n result.push(item)\n }\n }\n }\n\n return result\n}\n\n/**\n * `doMergeConfigs` takes configs in the order you would pass them to\n * Object.assign as sources.\n */\nexport function doMergeConfigs(configs: Configuration[]): Configuration {\n for (const config of configs) {\n normalizeFiles(config, \"files\")\n normalizeFiles(config, \"extraFiles\")\n normalizeFiles(config, \"extraResources\")\n }\n\n const result = deepAssign(getDefaultConfig(), ...configs)\n\n // `deepAssign` prioritises latter configs, while `mergeFilesSets` prioritises\n // former configs, so we have to reverse the order, because latter configs\n // must have higher priority.\n configs = configs.slice().reverse()\n\n result.files = mergeFileSets(configs.map(config => (config.files ?? []) as FileSet[]))\n return result\n}\n\nfunction getDefaultConfig(): Configuration {\n return {\n directories: {\n output: \"dist\",\n buildResources: \"build\",\n },\n }\n}\n\nconst schemeDataPromise = new Lazy(() => readJson(path.join(__dirname, \"..\", \"..\", \"..\", \"scheme.json\")))\n\nexport async function validateConfiguration(config: Configuration, debugLogger: DebugLogger) {\n const extraMetadata = config.extraMetadata\n if (extraMetadata != null) {\n if (extraMetadata.build != null) {\n throw new InvalidConfigurationError(`--em.build is deprecated, please specify as -c\"`)\n }\n if (extraMetadata.directories != null) {\n throw new InvalidConfigurationError(`--em.directories is deprecated, please specify as -c.directories\"`)\n }\n }\n\n const oldConfig: any = config\n if (oldConfig.npmSkipBuildFromSource === false) {\n throw new InvalidConfigurationError(`npmSkipBuildFromSource is deprecated, please use buildDependenciesFromSource\"`)\n }\n if (oldConfig.appImage != null && oldConfig.appImage.systemIntegration != null) {\n throw new InvalidConfigurationError(`appImage.systemIntegration is deprecated, https://github.com/TheAssassin/AppImageLauncher is used for desktop integration\"`)\n }\n\n // noinspection JSUnusedGlobalSymbols\n validateSchema(await schemeDataPromise.value, config, {\n name: `electron-builder ${PACKAGE_VERSION}`,\n postFormatter: (formattedError: string, error: any): string => {\n if (debugLogger.isEnabled) {\n debugLogger.add(\"invalidConfig\", safeStringifyJson(error))\n }\n\n const site = \"https://www.electron.build\"\n let url = `${site}/configuration`\n const targets = new Set([\"mac\", \"dmg\", \"pkg\", \"mas\", \"win\", \"nsis\", \"appx\", \"linux\", \"appimage\", \"snap\"])\n const dataPath: string = error.dataPath == null ? null : error.dataPath\n const targetPath = dataPath.startsWith(\".\") ? dataPath.substr(1).toLowerCase() : null\n if (targetPath != null && targets.has(targetPath)) {\n url = `${site}/${targetPath}`\n }\n\n return `${formattedError}\\n How to fix:\n 1. Open ${url}\n 2. Search the option name on the page (or type in into Search to find across the docs).\n * Not found? The option was deprecated or not exists (check spelling).\n * Found? Check that the option in the appropriate place. e.g. \"title\" only in the \"dmg\", not in the root.\n`\n },\n })\n}\n\nconst DEFAULT_APP_DIR_NAMES = [\"app\", \"www\"]\n\nexport async function computeDefaultAppDirectory(projectDir: string, userAppDir: string | Nullish): Promise<string> {\n if (userAppDir != null) {\n const absolutePath = path.resolve(projectDir, userAppDir)\n const stat = await statOrNull(absolutePath)\n if (stat == null) {\n throw new InvalidConfigurationError(`Application directory ${userAppDir} doesn't exist`)\n } else if (!stat.isDirectory()) {\n throw new InvalidConfigurationError(`Application directory ${userAppDir} is not a directory`)\n } else if (projectDir === absolutePath) {\n log.warn({ appDirectory: userAppDir }, `Specified application directory equals to project dir — superfluous or wrong configuration`)\n }\n return absolutePath\n }\n\n for (const dir of DEFAULT_APP_DIR_NAMES) {\n const absolutePath = path.join(projectDir, dir)\n const packageJson = path.join(absolutePath, \"package.json\")\n const stat = await statOrNull(packageJson)\n if (stat != null && stat.isFile()) {\n return absolutePath\n }\n }\n return projectDir\n}\n"]}
|
|
@@ -25,7 +25,9 @@ export interface ElectronDownloadOptions {
|
|
|
25
25
|
customDir?: string | null;
|
|
26
26
|
/** @private */
|
|
27
27
|
customFilename?: string | null;
|
|
28
|
+
/** @private */
|
|
28
29
|
strictSSL?: boolean;
|
|
30
|
+
/** @private */
|
|
29
31
|
isVerifyChecksum?: boolean;
|
|
30
32
|
platform?: ElectronPlatformName;
|
|
31
33
|
arch?: string;
|
package/out/util/electronGet.js
CHANGED
|
@@ -130,7 +130,7 @@ async function extractArchive(file, dir) {
|
|
|
130
130
|
else if (file.endsWith(".7z")) {
|
|
131
131
|
const cmd7za = await (0, builder_util_1.getPath7za)();
|
|
132
132
|
try {
|
|
133
|
-
await (0, builder_util_1.exec)(cmd7za, ["x", "-bd", file,
|
|
133
|
+
await (0, builder_util_1.exec)(cmd7za, ["x", "-bd", file, (0, builder_util_1.to7zaOutputSwitch)((0, builder_util_1.sanitizeDirPath)(tmpDir)), "-y"]);
|
|
134
134
|
}
|
|
135
135
|
catch (e) {
|
|
136
136
|
// Check if extraction actually failed or just had benign warnings
|
|
@@ -329,6 +329,12 @@ function buildElectronArtifactConfig(options) {
|
|
|
329
329
|
}
|
|
330
330
|
else {
|
|
331
331
|
const { mirror, customDir, cache, customFilename, isVerifyChecksum, strictSSL, platform: overridePlatform, arch: overrideArch } = electronDownload;
|
|
332
|
+
// strictSSL: false disables TLS certificate validation for all
|
|
333
|
+
// electron/tool downloads. This option exists only for air-gapped or
|
|
334
|
+
// self-signed-cert environments; ensure your build network is fully trusted.
|
|
335
|
+
if (strictSSL === false) {
|
|
336
|
+
builder_util_1.log.warn({ option: "electronDownload.strictSSL" }, "strictSSL is false — TLS certificate validation is DISABLED for Electron downloads. Only use this option in a trusted, isolated build environment.");
|
|
337
|
+
}
|
|
332
338
|
artifactConfig = {
|
|
333
339
|
...artifactConfig,
|
|
334
340
|
unsafelyDisableChecksums: isVerifyChecksum === false,
|