app-builder-lib 27.0.0-alpha.4 → 27.0.0-alpha.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/appInfo.d.ts +1 -1
- package/dist/appInfo.d.ts.map +1 -1
- package/dist/appInfo.js +3 -3
- package/dist/appInfo.js.map +1 -1
- package/dist/codeSign/mac/macCodeSign.d.ts.map +1 -1
- package/dist/codeSign/mac/macCodeSign.js +3 -6
- package/dist/codeSign/mac/macCodeSign.js.map +1 -1
- package/dist/codeSign/win/signtoolBaseSignManager.d.ts.map +1 -1
- package/dist/codeSign/win/signtoolBaseSignManager.js +6 -4
- package/dist/codeSign/win/signtoolBaseSignManager.js.map +1 -1
- package/dist/codeSign/win/windowsSignAzureManager.d.ts.map +1 -1
- package/dist/codeSign/win/windowsSignAzureManager.js +31 -21
- package/dist/codeSign/win/windowsSignAzureManager.js.map +1 -1
- package/dist/configuration.d.ts +84 -44
- package/dist/configuration.d.ts.map +1 -1
- package/dist/configuration.js +11 -1
- package/dist/configuration.js.map +1 -1
- package/dist/electron/ElectronFramework.d.ts +2 -1
- package/dist/electron/ElectronFramework.d.ts.map +1 -1
- package/dist/electron/ElectronFramework.js +32 -28
- package/dist/electron/ElectronFramework.js.map +1 -1
- package/dist/electron/electronArchSupport.d.ts +12 -0
- package/dist/electron/electronArchSupport.d.ts.map +1 -0
- package/dist/electron/electronArchSupport.js +58 -0
- package/dist/electron/electronArchSupport.js.map +1 -0
- package/dist/electron/electronVersion.d.ts.map +1 -1
- package/dist/electron/electronVersion.js +1 -11
- package/dist/electron/electronVersion.js.map +1 -1
- package/dist/electron/mac/electronMac.js +12 -21
- package/dist/electron/mac/electronMac.js.map +1 -1
- package/dist/electron/mac/electronMacUtils.d.ts +24 -0
- package/dist/electron/mac/electronMacUtils.d.ts.map +1 -0
- package/dist/electron/mac/electronMacUtils.js +42 -0
- package/dist/electron/mac/electronMacUtils.js.map +1 -0
- package/dist/fileMatcher.d.ts +27 -2
- package/dist/fileMatcher.d.ts.map +1 -1
- package/dist/fileMatcher.js +204 -16
- package/dist/fileMatcher.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/indexInternal.d.ts +8 -5
- package/dist/indexInternal.d.ts.map +1 -1
- package/dist/indexInternal.js +8 -4
- package/dist/indexInternal.js.map +1 -1
- package/dist/macPackager.d.ts.map +1 -1
- package/dist/macPackager.js +15 -3
- package/dist/macPackager.js.map +1 -1
- package/dist/node-module-collector/moduleManager.d.ts +3 -1
- package/dist/node-module-collector/moduleManager.d.ts.map +1 -1
- package/dist/node-module-collector/moduleManager.js +9 -1
- package/dist/node-module-collector/moduleManager.js.map +1 -1
- package/dist/node-module-collector/nodeModulesCollector.d.ts +17 -1
- package/dist/node-module-collector/nodeModulesCollector.d.ts.map +1 -1
- package/dist/node-module-collector/nodeModulesCollector.js +67 -1
- package/dist/node-module-collector/nodeModulesCollector.js.map +1 -1
- package/dist/node-module-collector/pnpmNodeModulesCollector.js +5 -5
- package/dist/node-module-collector/pnpmNodeModulesCollector.js.map +1 -1
- package/dist/node-module-collector/types.d.ts +2 -0
- package/dist/node-module-collector/types.d.ts.map +1 -1
- package/dist/node-module-collector/types.js.map +1 -1
- package/dist/options/MsixOptions.d.ts +126 -0
- package/dist/options/MsixOptions.d.ts.map +1 -0
- package/dist/options/MsixOptions.js +2 -0
- package/dist/options/MsixOptions.js.map +1 -0
- package/dist/options/PlatformSpecificBuildOptions.d.ts +0 -6
- package/dist/options/PlatformSpecificBuildOptions.d.ts.map +1 -1
- package/dist/options/PlatformSpecificBuildOptions.js.map +1 -1
- package/dist/options/SnapOptions.d.ts +15 -13
- package/dist/options/SnapOptions.d.ts.map +1 -1
- package/dist/options/SnapOptions.js.map +1 -1
- package/dist/options/macOptions.d.ts +4 -4
- package/dist/options/macOptions.d.ts.map +1 -1
- package/dist/options/macOptions.js.map +1 -1
- package/dist/options/winOptions.d.ts +166 -36
- package/dist/options/winOptions.d.ts.map +1 -1
- package/dist/options/winOptions.js.map +1 -1
- package/dist/packager.d.ts +2 -0
- package/dist/packager.d.ts.map +1 -1
- package/dist/packager.js +26 -21
- package/dist/packager.js.map +1 -1
- package/dist/platformPackager.d.ts +2 -0
- package/dist/platformPackager.d.ts.map +1 -1
- package/dist/platformPackager.js +6 -0
- package/dist/platformPackager.js.map +1 -1
- package/dist/publish/PublishManager.d.ts +1 -0
- package/dist/publish/PublishManager.d.ts.map +1 -1
- package/dist/publish/PublishManager.js +20 -6
- package/dist/publish/PublishManager.js.map +1 -1
- package/dist/publish/updateInfoBuilder.d.ts.map +1 -1
- package/dist/publish/updateInfoBuilder.js +20 -22
- package/dist/publish/updateInfoBuilder.js.map +1 -1
- package/dist/targets/archive.d.ts +11 -0
- package/dist/targets/archive.d.ts.map +1 -1
- package/dist/targets/archive.js +40 -22
- package/dist/targets/archive.js.map +1 -1
- package/dist/targets/linux/FpmTarget.d.ts.map +1 -1
- package/dist/targets/linux/FpmTarget.js +3 -3
- package/dist/targets/linux/FpmTarget.js.map +1 -1
- package/dist/targets/linux/appimage/AppImageTarget.d.ts.map +1 -1
- package/dist/targets/linux/appimage/AppImageTarget.js +5 -6
- package/dist/targets/linux/appimage/AppImageTarget.js.map +1 -1
- package/dist/targets/linux/snap/SnapTarget.d.ts +1 -1
- package/dist/targets/linux/snap/SnapTarget.d.ts.map +1 -1
- package/dist/targets/linux/snap/SnapTarget.js +23 -1
- package/dist/targets/linux/snap/SnapTarget.js.map +1 -1
- package/dist/targets/linux/snap/core24.d.ts +1 -1
- package/dist/targets/linux/snap/core24.d.ts.map +1 -1
- package/dist/targets/linux/snap/core24.js +3 -2
- package/dist/targets/linux/snap/core24.js.map +1 -1
- package/dist/targets/linux/snap/coreCustom.d.ts +1 -1
- package/dist/targets/linux/snap/coreCustom.d.ts.map +1 -1
- package/dist/targets/linux/snap/coreCustom.js +2 -2
- package/dist/targets/linux/snap/coreCustom.js.map +1 -1
- package/dist/targets/linux/snap/coreLegacy.d.ts +1 -1
- package/dist/targets/linux/snap/coreLegacy.d.ts.map +1 -1
- package/dist/targets/linux/snap/coreLegacy.js +2 -1
- package/dist/targets/linux/snap/coreLegacy.js.map +1 -1
- package/dist/targets/linux/snap/snapcraft.d.ts +190 -0
- package/dist/targets/linux/snap/snapcraft.d.ts.map +1 -0
- package/dist/targets/linux/snap/snapcraft.js +11 -0
- package/dist/targets/linux/snap/snapcraft.js.map +1 -0
- package/dist/targets/linux/snap/snapcraftBuilder.d.ts +7 -1
- package/dist/targets/linux/snap/snapcraftBuilder.d.ts.map +1 -1
- package/dist/targets/linux/snap/snapcraftBuilder.js +57 -20
- package/dist/targets/linux/snap/snapcraftBuilder.js.map +1 -1
- package/dist/targets/mac/MacTargetHelper.d.ts +6 -0
- package/dist/targets/mac/MacTargetHelper.d.ts.map +1 -1
- package/dist/targets/mac/MacTargetHelper.js +22 -1
- package/dist/targets/mac/MacTargetHelper.js.map +1 -1
- package/dist/targets/targetFactory.d.ts +7 -0
- package/dist/targets/targetFactory.d.ts.map +1 -1
- package/dist/targets/targetFactory.js +28 -0
- package/dist/targets/targetFactory.js.map +1 -1
- package/dist/targets/win/AppxTarget.d.ts +0 -2
- package/dist/targets/win/AppxTarget.d.ts.map +1 -1
- package/dist/targets/win/AppxTarget.js +37 -317
- package/dist/targets/win/AppxTarget.js.map +1 -1
- package/dist/targets/win/MsixTarget.d.ts +22 -0
- package/dist/targets/win/MsixTarget.d.ts.map +1 -0
- package/dist/targets/win/MsixTarget.js +214 -0
- package/dist/targets/win/MsixTarget.js.map +1 -0
- package/dist/targets/win/nsis/NsisTarget.d.ts +3 -2
- package/dist/targets/win/nsis/NsisTarget.d.ts.map +1 -1
- package/dist/targets/win/nsis/NsisTarget.js +28 -46
- package/dist/targets/win/nsis/NsisTarget.js.map +1 -1
- package/dist/targets/win/nsis/nsisScriptGenerator.d.ts.map +1 -1
- package/dist/targets/win/nsis/nsisScriptGenerator.js +2 -1
- package/dist/targets/win/nsis/nsisScriptGenerator.js.map +1 -1
- package/dist/targets/win/nsis/nsisUtil.d.ts +5 -2
- package/dist/targets/win/nsis/nsisUtil.d.ts.map +1 -1
- package/dist/targets/win/nsis/nsisUtil.js +46 -22
- package/dist/targets/win/nsis/nsisUtil.js.map +1 -1
- package/dist/targets/win/nsis/progId.d.ts +21 -0
- package/dist/targets/win/nsis/progId.d.ts.map +1 -0
- package/dist/targets/win/nsis/progId.js +60 -0
- package/dist/targets/win/nsis/progId.js.map +1 -0
- package/dist/targets/win/winAppUtil.d.ts +115 -0
- package/dist/targets/win/winAppUtil.d.ts.map +1 -0
- package/dist/targets/win/winAppUtil.js +407 -0
- package/dist/targets/win/winAppUtil.js.map +1 -0
- package/dist/toolsets/7zip.d.ts.map +1 -1
- package/dist/toolsets/7zip.js +3 -1
- package/dist/toolsets/7zip.js.map +1 -1
- package/dist/toolsets/appimage.d.ts +3 -3
- package/dist/toolsets/appimage.d.ts.map +1 -1
- package/dist/toolsets/appimage.js +9 -6
- package/dist/toolsets/appimage.js.map +1 -1
- package/dist/toolsets/custom.d.ts +1 -3
- package/dist/toolsets/custom.d.ts.map +1 -1
- package/dist/toolsets/custom.js +4 -133
- package/dist/toolsets/custom.js.map +1 -1
- package/dist/toolsets/fpm.d.ts.map +1 -1
- package/dist/toolsets/fpm.js +11 -5
- package/dist/toolsets/fpm.js.map +1 -1
- package/dist/toolsets/icons.d.ts.map +1 -1
- package/dist/toolsets/icons.js +4 -1
- package/dist/toolsets/icons.js.map +1 -1
- package/dist/toolsets/linuxToolsMac.d.ts.map +1 -1
- package/dist/toolsets/linuxToolsMac.js +4 -1
- package/dist/toolsets/linuxToolsMac.js.map +1 -1
- package/dist/toolsets/nsis.d.ts.map +1 -1
- package/dist/toolsets/nsis.js +6 -3
- package/dist/toolsets/nsis.js.map +1 -1
- package/dist/toolsets/version.d.ts +12 -0
- package/dist/toolsets/version.d.ts.map +1 -0
- package/dist/toolsets/version.js +13 -0
- package/dist/toolsets/version.js.map +1 -0
- package/dist/toolsets/winCodeSign.d.ts +20 -3
- package/dist/toolsets/winCodeSign.d.ts.map +1 -1
- package/dist/toolsets/winCodeSign.js +56 -27
- package/dist/toolsets/winCodeSign.js.map +1 -1
- package/dist/toolsets/wine.d.ts +2 -1
- package/dist/toolsets/wine.d.ts.map +1 -1
- package/dist/toolsets/wine.js +15 -13
- package/dist/toolsets/wine.js.map +1 -1
- package/dist/util/NodeModuleCopyHelper.js +3 -3
- package/dist/util/NodeModuleCopyHelper.js.map +1 -1
- package/dist/util/appFileCopier.d.ts +39 -0
- package/dist/util/appFileCopier.d.ts.map +1 -1
- package/dist/util/appFileCopier.js +88 -22
- package/dist/util/appFileCopier.js.map +1 -1
- package/dist/util/config/config.d.ts +1 -0
- package/dist/util/config/config.d.ts.map +1 -1
- package/dist/util/config/config.js +4 -1
- package/dist/util/config/config.js.map +1 -1
- package/dist/util/config/load.d.ts +2 -2
- package/dist/util/config/load.d.ts.map +1 -1
- package/dist/util/config/load.js +3 -12
- package/dist/util/config/load.js.map +1 -1
- package/dist/util/config/schemaValidator.js +1 -1
- package/dist/util/config/schemaValidator.js.map +1 -1
- package/dist/util/electronGet.d.ts +6 -3
- package/dist/util/electronGet.d.ts.map +1 -1
- package/dist/util/electronGet.js +40 -20
- package/dist/util/electronGet.js.map +1 -1
- package/dist/util/flags.d.ts +0 -2
- package/dist/util/flags.d.ts.map +1 -1
- package/dist/util/flags.js +0 -6
- package/dist/util/flags.js.map +1 -1
- package/dist/util/hash.d.ts +1 -1
- package/dist/util/hash.d.ts.map +1 -1
- package/dist/util/hash.js +1 -15
- package/dist/util/hash.js.map +1 -1
- package/dist/util/packageMetadata.js +0 -10
- package/dist/util/packageMetadata.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/dist/vm/ParallelsVm.d.ts.map +1 -1
- package/dist/vm/ParallelsVm.js +18 -5
- package/dist/vm/ParallelsVm.js.map +1 -1
- package/dist/winPackager.d.ts.map +1 -1
- package/dist/winPackager.js +3 -0
- package/dist/winPackager.js.map +1 -1
- package/package.json +8 -8
- package/scheme.json +556 -133
- package/templates/appx/appxmanifest.xml +1 -1
- package/templates/msix/appxmanifest.xml +45 -0
- package/templates/nsis/installSection.nsh +14 -0
|
@@ -4,7 +4,8 @@ import _fsExtra from "fs-extra";
|
|
|
4
4
|
import { Lazy } from "lazy-val";
|
|
5
5
|
import * as path from "path";
|
|
6
6
|
import { resolveWindowsSigningConfiguration } from "../../options/winOptions.js";
|
|
7
|
-
import { getAtsBundleDir, getDotnetRuntimeDir, getWindowsKitsBundle } from "../../toolsets/winCodeSign.js";
|
|
7
|
+
import { getAtsBundleDir, getDotnetRuntimeDir, getWindowsKitsBundle, WIN_CODESIGN_LATEST } from "../../toolsets/winCodeSign.js";
|
|
8
|
+
import { resolveToolsetVersion } from "../../toolsets/version.js";
|
|
8
9
|
import { VmManager } from "../../vm/vm.js";
|
|
9
10
|
import { WineVmManager } from "../../vm/WineVm.js";
|
|
10
11
|
import semver from "semver";
|
|
@@ -32,20 +33,25 @@ export class WindowsSignAzureManager {
|
|
|
32
33
|
this.signing = signing;
|
|
33
34
|
}
|
|
34
35
|
isLegacyMode() {
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
const wcs = this.packager.config.toolsets?.winCodeSign;
|
|
37
|
+
// ToolsetCustom object = user-managed bundle (provides its own dlib alongside signtool) → not legacy.
|
|
38
|
+
if (typeof wcs === "object" && wcs != null) {
|
|
39
|
+
return false;
|
|
38
40
|
}
|
|
39
|
-
// null
|
|
40
|
-
|
|
41
|
+
// Unset / null / "latest" resolve to the newest bundle, which ships the ATS dlib + .NET payload.
|
|
42
|
+
// An explicit version below 1.3.0 (e.g. "0.0.0", "1.2.1") has no dlib → legacy PowerShell.
|
|
43
|
+
const resolved = resolveToolsetVersion(wcs, WIN_CODESIGN_LATEST);
|
|
44
|
+
return semver.lt(resolved, minimumWinCodeSignVersionForDlib);
|
|
41
45
|
}
|
|
42
46
|
async initialize() {
|
|
43
47
|
if (!this.isLegacyMode()) {
|
|
44
48
|
return;
|
|
45
49
|
}
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
50
|
+
const wcs = this.packager.config.toolsets?.winCodeSign;
|
|
51
|
+
log.info({
|
|
52
|
+
reason: `toolsets.winCodeSign "${String(wcs)}" is below the minimum "${minimumWinCodeSignVersionForDlib}"`,
|
|
53
|
+
guidance: `leave toolsets.winCodeSign unset (or set it to "${minimumWinCodeSignVersionForDlib}" / "latest") to use the faster signtool /dlib integration`,
|
|
54
|
+
}, `Azure Trusted Signing: falling back to legacy PowerShell (Invoke-TrustedSigning)`);
|
|
49
55
|
const vm = await this.packager.vm.value;
|
|
50
56
|
const ps = await vm.powershellCommand.value;
|
|
51
57
|
log.info(null, "installing required module (TrustedSigning) with scope CurrentUser");
|
|
@@ -100,30 +106,34 @@ export class WindowsSignAzureManager {
|
|
|
100
106
|
}
|
|
101
107
|
async signFileWithDlib(options) {
|
|
102
108
|
const { signing } = this;
|
|
103
|
-
const winCodeSign = this.packager.config.toolsets
|
|
109
|
+
const winCodeSign = this.packager.config.toolsets?.winCodeSign;
|
|
110
|
+
const isCustom = typeof winCodeSign === "object" && winCodeSign != null;
|
|
104
111
|
// The ATS payload (dlib + its dependency closure) ships x64/x86 only; the bundle's arm64
|
|
105
112
|
// dir has no dlib. On arm64 hosts use the x64 signtool + dlib — x64 signtool runs under
|
|
106
113
|
// Windows-on-ARM emulation natively, and under x64 Wine on macOS/Linux.
|
|
107
114
|
const arch = process.arch === "ia32" ? Arch.ia32 : Arch.x64;
|
|
108
|
-
const { kit: kitDir } = await getWindowsKitsBundle({ winCodeSign,
|
|
115
|
+
const { kit: kitDir } = await getWindowsKitsBundle({ winCodeSign, resourcesDir: this.packager.buildResourcesDir });
|
|
109
116
|
// For custom toolsets the kit lives within buildResourcesDir; enforce that constraint.
|
|
110
117
|
// For versioned/cached bundles no base constraint is needed (paths are in the tool cache).
|
|
111
|
-
const safeKitDir = sanitizeDirPath(kitDir,
|
|
118
|
+
const safeKitDir = sanitizeDirPath(kitDir, isCustom ? this.packager.buildResourcesDir : undefined);
|
|
112
119
|
const signtoolPath = path.join(safeKitDir, "signtool.exe");
|
|
113
120
|
let dlibPath;
|
|
114
121
|
let dotnetRootPath = null;
|
|
115
|
-
if (typeof winCodeSign === "
|
|
116
|
-
// 1.3.0+: dlib ships in a separate ats-bundle with its full native dependency closure
|
|
117
|
-
// (Ijwhost.dll, VC++ runtime, etc.). The .NET 8 framework is in a separate dotnet-runtime
|
|
118
|
-
// bundle; DOTNET_ROOT tells Ijwhost where to find hostfxr.dll → shared framework.
|
|
119
|
-
const safeAtsDir = sanitizeDirPath(await getAtsBundleDir(winCodeSign));
|
|
120
|
-
dlibPath = path.join(safeAtsDir, arch === Arch.ia32 ? "x86" : "x64", "Azure.CodeSigning.Dlib.dll");
|
|
121
|
-
dotnetRootPath = sanitizeDirPath(await getDotnetRuntimeDir(winCodeSign));
|
|
122
|
-
}
|
|
123
|
-
else {
|
|
122
|
+
if (typeof winCodeSign === "object" && winCodeSign != null) {
|
|
124
123
|
// Custom toolset: user provides the dlib alongside signtool in the kit dir.
|
|
125
124
|
dlibPath = path.join(safeKitDir, "Azure.CodeSigning.Dlib.dll");
|
|
126
125
|
}
|
|
126
|
+
else {
|
|
127
|
+
// Built-in bundle. Unset / null / "latest" resolve to the newest version (>= 1.3.0); an
|
|
128
|
+
// explicit >= 1.3.0 version is used as-is. The dlib ships in a separate ats-bundle with its
|
|
129
|
+
// full native dependency closure (Ijwhost.dll, VC++ runtime, etc.). The .NET 8 framework is
|
|
130
|
+
// in a separate dotnet-runtime bundle; DOTNET_ROOT tells Ijwhost where to find hostfxr.dll →
|
|
131
|
+
// shared framework.
|
|
132
|
+
const version = resolveToolsetVersion(winCodeSign, WIN_CODESIGN_LATEST);
|
|
133
|
+
const safeAtsDir = sanitizeDirPath(await getAtsBundleDir(version));
|
|
134
|
+
dlibPath = path.join(safeAtsDir, arch === Arch.ia32 ? "x86" : "x64", "Azure.CodeSigning.Dlib.dll");
|
|
135
|
+
dotnetRootPath = sanitizeDirPath(await getDotnetRuntimeDir(version));
|
|
136
|
+
}
|
|
127
137
|
const metadataPath = await this.packager.getTempFile(".json");
|
|
128
138
|
await _fsExtra.writeJson(metadataPath, {
|
|
129
139
|
Endpoint: signing.endpoint,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"windowsSignAzureManager.js","sourceRoot":"","sources":["../../../src/codeSign/win/windowsSignAzureManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC1E,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,QAAQ,MAAM,UAAU,CAAA;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAC/B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAE5B,OAAO,EAAE,kCAAkC,EAAmD,MAAM,6BAA6B,CAAA;AACjI,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AAC1G,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAKlD,OAAO,MAAM,MAAM,QAAQ,CAAA;AAE3B,MAAM,gCAAgC,GAAG,OAAO,CAAA;AAChD,MAAM,OAAO,uBAAuB;IAUlC,IAAY,aAAa;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAA;QACzC,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,4GAA4G,CAAC,CAAA;QAC/H,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,YAA6B,QAAqB;QAArB,aAAQ,GAAR,QAAQ,CAAa;QAflD,4FAA4F;QAC3E,OAAE,GAAc,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAA;QAEhK,0BAAqB,GAAG,IAAI,IAAI,CAAuB,GAAG,EAAE;YACnE,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAA;QACrD,CAAC,CAAC,CAAA;QAsDO,YAAO,GAAG,IAAI,QAAQ,CAC7B,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,EACnC,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CACnC,CAAA;QA9CC,MAAM,OAAO,GAAG,kCAAkC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAA;QAC5E,IAAI,OAAO,EAAE,IAAI,KAAK,OAAO,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,iEAAiE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;QACnG,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAEO,YAAY;QAClB,MAAM,EAAE,WAAW,EAAE,GAAG,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAA;QACvE,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,gCAAgC,CAAC,CAAA;QACzD,CAAC;QACD,oGAAoG;QACpG,OAAO,GAAG,IAAI,IAAI,CAAA;IACpB,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YACzB,OAAM;QACR,CAAC;QAED,MAAM,EAAE,WAAW,EAAE,GAAG,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAA;QACvE,MAAM,MAAM,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,yBAAyB,GAAG,2BAA2B,gCAAgC,GAAG,CAAC,CAAC,CAAC,iCAAiC,CAAA;QACvK,GAAG,CAAC,IAAI,CACN,EAAE,MAAM,EAAE,QAAQ,EAAE,gCAAgC,gCAAgC,gDAAgD,EAAE,EACtI,kFAAkF,CACnF,CAAA;QAED,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAA;QACvC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAA;QAC3C,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,oEAAoE,CAAC,CAAA;QACpF,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,yFAAyF,CAAC,CAAC,CAAA;QAC7J,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE,EAAE,kEAAkE,CAAC,CAAA;QAC1H,CAAC;QACD,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,2GAA2G,CAAC,CAAC,CAAA;IAC/K,CAAC;IAED,oBAAoB,CAAC,OAAe,EAAE,aAA4B;QAChE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,CAAA;IAC7D,CAAC;IAOD,KAAK,CAAC,QAAQ,CAAC,OAA2B;QACxC,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAC5F,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,OAA2B;QACtD,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;QACxB,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAA;QACvC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAA;QAE3C,2EAA2E;QAC3E,yEAAyE;QACzE,iEAAiE;QACjE,MAAM,aAAa,GAAG,0BAA0B,CAAA;QAChD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,IAAI,EAAE,CAAC,EAAE,CAAC;YAChE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CACb,2BAA2B,GAAG,sIAAsI,CACrK,CAAA;YACH,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAuC;YACjD,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,sBAAsB,EAAE,OAAO,CAAC,sBAAsB;YACtD,sBAAsB,EAAE,OAAO,CAAC,sBAAsB;YACtD,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,oCAAoC;YAClF,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,QAAQ;YACpD,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,QAAQ;YAC1C,GAAG,OAAO,CAAC,kBAAkB;YAC7B,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;SACjC,CAAA;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;aACxC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC;aACpC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;aAC3E,IAAI,CAAC,GAAG,CAAC,CAAA;QAEZ,+EAA+E;QAC/E,gFAAgF;QAChF,mGAAmG;QACnG,MAAM,SAAS,GAAG,yBAAyB,YAAY,EAAE,CAAA;QACzD,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAC3E,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,cAAc,CAAC,CAAC,CAAA;QACvF,OAAO,IAAI,CAAA;IACb,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,OAA2B;QACxD,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;QACxB,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAS,CAAC,WAAY,CAAA;QAE/D,yFAAyF;QACzF,wFAAwF;QACxF,wEAAwE;QACxE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAA;QAC3D,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,oBAAoB,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAA;QACxH,uFAAuF;QACvF,2FAA2F;QAC3F,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,EAAE,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QACzH,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAA;QAE1D,IAAI,QAAgB,CAAA;QACpB,IAAI,cAAc,GAAkB,IAAI,CAAA;QAExC,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACpC,sFAAsF;YACtF,0FAA0F;YAC1F,kFAAkF;YAClF,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,eAAe,CAAC,WAAW,CAAC,CAAC,CAAA;YACtE,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,4BAA4B,CAAC,CAAA;YAClG,cAAc,GAAG,eAAe,CAAC,MAAM,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAA;QAC1E,CAAC;aAAM,CAAC;YACN,4EAA4E;YAC5E,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,4BAA4B,CAAC,CAAA;QAChE,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QAC7D,MAAM,QAAQ,CAAC,SAAS,CAAC,YAAY,EAAE;YACrC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,sBAAsB,EAAE,OAAO,CAAC,sBAAsB;YACtD,sBAAsB,EAAE,OAAO,CAAC,sBAAsB;YACtD,GAAG,OAAO,CAAC,kBAAkB;SAC9B,CAAC,CAAA;QAEF,MAAM,IAAI,GAAG;YACX,MAAM;YACN,KAAK;YACL,CAAC,OAAO,CAAC,UAAU,IAAI,QAAQ,CAAC,CAAC,WAAW,EAAE;YAC9C,KAAK;YACL,OAAO,CAAC,gBAAgB,IAAI,oCAAoC;YAChE,KAAK;YACL,CAAC,OAAO,CAAC,eAAe,IAAI,QAAQ,CAAC,CAAC,WAAW,EAAE;YACnD,OAAO;YACP,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC1B,OAAO;YACP,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC9B,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;SAC/B,CAAA;QAED,GAAG,CAAC,IAAI,CACN;YACE,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;YAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,OAAO,EAAE,OAAO,CAAC,sBAAsB;YACvC,OAAO,EAAE,OAAO,CAAC,sBAAsB;SACxC,EACD,qDAAqD,CACtD,CAAA;QAED,oFAAoF;QACpF,yFAAyF;QACzF,oDAAoD;QACpD,MAAM,WAAW,GAAG,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;QACnH,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,WAAW,CAAC,CAAA;QACnD,OAAO,IAAI,CAAA;IACb,CAAC;CACF","sourcesContent":["import { Arch, isEmptyOrSpaces, log, sanitizeDirPath } from \"builder-util\"\nimport { asArray, MemoLazy } from \"builder-util-runtime\"\nimport _fsExtra from \"fs-extra\"\nimport { Lazy } from \"lazy-val\"\nimport * as path from \"path\"\nimport { Target } from \"../../core.js\"\nimport { resolveWindowsSigningConfiguration, WindowsAzureSigningConfig, WindowsConfiguration } from \"../../options/winOptions.js\"\nimport { getAtsBundleDir, getDotnetRuntimeDir, getWindowsKitsBundle } from \"../../toolsets/winCodeSign.js\"\nimport { VmManager } from \"../../vm/vm.js\"\nimport { WineVmManager } from \"../../vm/WineVm.js\"\nimport { WinPackager } from \"../../winPackager.js\"\nimport { SignManager } from \"./signManager.js\"\nimport { WindowsSignOptions } from \"./windowsCodeSign.js\"\nimport { CertificateFromStoreInfo, FileCodeSigningInfo } from \"./windowsSignToolManager.js\"\nimport semver from \"semver\"\n\nconst minimumWinCodeSignVersionForDlib = \"1.3.0\"\nexport class WindowsSignAzureManager implements SignManager {\n private readonly signing: WindowsAzureSigningConfig\n\n // signtool.exe is a Windows PE binary; use Wine on non-Windows (same pattern as MsiTarget).\n private readonly vm: VmManager = process.platform === \"win32\" ? new VmManager() : new WineVmManager(this.packager.config.toolsets?.wine, this.packager.buildResourcesDir)\n\n readonly computedPublisherName = new Lazy<Array<string> | null>(() => {\n return Promise.resolve(asArray(this.publisherName))\n })\n\n private get publisherName(): string {\n const result = this.signing.publisherName\n if (isEmptyOrSpaces(result)) {\n throw new Error(\"Azure Trusted Signing requires 'publisherName' in win.sign config (no local certificate to derive it from)\")\n }\n return result\n }\n\n constructor(private readonly packager: WinPackager) {\n const signing = resolveWindowsSigningConfiguration(packager.platformOptions)\n if (signing?.type !== \"azure\") {\n throw new Error(`WindowsSignAzureManager requires signing.type = \"azure\", got: ${signing?.type}`)\n }\n this.signing = signing\n }\n\n private isLegacyMode(): boolean {\n const { winCodeSign: wcs = null } = this.packager.config.toolsets ?? {}\n if (typeof wcs === \"string\") {\n return semver.lt(wcs, minimumWinCodeSignVersionForDlib)\n }\n // null = built-in toolset not configured → legacy; ToolsetCustom object = user-managed → not legacy\n return wcs == null\n }\n\n async initialize(): Promise<void> {\n if (!this.isLegacyMode()) {\n return\n }\n\n const { winCodeSign: wcs = null } = this.packager.config.toolsets ?? {}\n const reason = typeof wcs === \"string\" ? `toolsets.winCodeSign \"${wcs}\" is below the minimum \"${minimumWinCodeSignVersionForDlib}\"` : `toolsets.winCodeSign is not set`\n log.info(\n { reason, guidance: `set toolsets.winCodeSign to \"${minimumWinCodeSignVersionForDlib}\" to use the faster signtool /dlib integration` },\n `Azure Trusted Signing: falling back to legacy PowerShell (Invoke-TrustedSigning)`\n )\n\n const vm = await this.packager.vm.value\n const ps = await vm.powershellCommand.value\n log.info(null, \"installing required module (TrustedSigning) with scope CurrentUser\")\n try {\n await vm.exec(ps, [\"-NoProfile\", \"-NonInteractive\", \"-Command\", \"Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force -Scope CurrentUser\"])\n } catch (error: any) {\n log.debug({ message: error.message || error.stack }, \"unable to install PackageProvider NuGet — may already be present\")\n }\n await vm.exec(ps, [\"-NoProfile\", \"-NonInteractive\", \"-Command\", \"Install-Module -Name TrustedSigning -MinimumVersion 0.5.0 -Force -Repository PSGallery -Scope CurrentUser\"])\n }\n\n computePublisherName(_target: Target, publisherName: string | null): Promise<string> {\n return Promise.resolve(this.publisherName ?? publisherName)\n }\n\n readonly cscInfo = new MemoLazy<WindowsConfiguration, FileCodeSigningInfo | CertificateFromStoreInfo | null>(\n () => this.packager.platformOptions,\n _selected => Promise.resolve(null)\n )\n\n async signFile(options: WindowsSignOptions): Promise<boolean> {\n return this.isLegacyMode() ? this.signFileLegacy(options) : this.signFileWithDlib(options)\n }\n\n private async signFileLegacy(options: WindowsSignOptions): Promise<boolean> {\n const { signing } = this\n const vm = await this.packager.vm.value\n const ps = await vm.powershellCommand.value\n\n // Validate additionalMetadata keys before embedding as PS parameter names.\n // Keys flow directly into `-${field} '...'` in the command string; a key\n // containing semicolons or quotes would be PowerShell injection.\n const PS_PARAM_NAME = /^[A-Za-z_][A-Za-z0-9_]*$/\n for (const key of Object.keys(signing.additionalMetadata ?? {})) {\n if (!PS_PARAM_NAME.test(key)) {\n throw new Error(\n `additionalMetadata key \"${key}\" is not a valid PowerShell parameter name. Keys must match /^[A-Za-z_][A-Za-z0-9_]*$/ (e.g. \"ExcludeCredentials\", \"CorrelationId\").`\n )\n }\n }\n\n const params: Record<string, string | undefined> = {\n Endpoint: signing.endpoint,\n CertificateProfileName: signing.certificateProfileName,\n CodeSigningAccountName: signing.codeSigningAccountName,\n TimestampRfc3161: signing.timestampRfc3161 ?? \"http://timestamp.acs.microsoft.com\",\n TimestampDigest: signing.timestampDigest ?? \"SHA256\",\n FileDigest: signing.fileDigest ?? \"SHA256\",\n ...signing.additionalMetadata,\n Files: vm.toVmFile(options.path),\n }\n\n const paramsString = Object.entries(params)\n .filter(([, value]) => value != null)\n .map(([field, value]) => `-${field} '${String(value).replace(/'/g, \"''\")}'`)\n .join(\" \")\n\n // Use -EncodedCommand (Base64 UTF-16LE) so the command string is opaque to any\n // intermediate shell or argument parser — no cmd.exe / ConHost escaping needed.\n // PowerShell still parses the decoded string, so PS-level single-quote escaping above is retained.\n const psCommand = `Invoke-TrustedSigning ${paramsString}`\n const encodedCommand = Buffer.from(psCommand, \"utf16le\").toString(\"base64\")\n await vm.exec(ps, [\"-NoProfile\", \"-NonInteractive\", \"-EncodedCommand\", encodedCommand])\n return true\n }\n\n private async signFileWithDlib(options: WindowsSignOptions): Promise<boolean> {\n const { signing } = this\n const winCodeSign = this.packager.config.toolsets!.winCodeSign!\n\n // The ATS payload (dlib + its dependency closure) ships x64/x86 only; the bundle's arm64\n // dir has no dlib. On arm64 hosts use the x64 signtool + dlib — x64 signtool runs under\n // Windows-on-ARM emulation natively, and under x64 Wine on macOS/Linux.\n const arch = process.arch === \"ia32\" ? Arch.ia32 : Arch.x64\n const { kit: kitDir } = await getWindowsKitsBundle({ winCodeSign, arch, resourcesDir: this.packager.buildResourcesDir })\n // For custom toolsets the kit lives within buildResourcesDir; enforce that constraint.\n // For versioned/cached bundles no base constraint is needed (paths are in the tool cache).\n const safeKitDir = sanitizeDirPath(kitDir, typeof winCodeSign === \"object\" ? this.packager.buildResourcesDir : undefined)\n const signtoolPath = path.join(safeKitDir, \"signtool.exe\")\n\n let dlibPath: string\n let dotnetRootPath: string | null = null\n\n if (typeof winCodeSign === \"string\") {\n // 1.3.0+: dlib ships in a separate ats-bundle with its full native dependency closure\n // (Ijwhost.dll, VC++ runtime, etc.). The .NET 8 framework is in a separate dotnet-runtime\n // bundle; DOTNET_ROOT tells Ijwhost where to find hostfxr.dll → shared framework.\n const safeAtsDir = sanitizeDirPath(await getAtsBundleDir(winCodeSign))\n dlibPath = path.join(safeAtsDir, arch === Arch.ia32 ? \"x86\" : \"x64\", \"Azure.CodeSigning.Dlib.dll\")\n dotnetRootPath = sanitizeDirPath(await getDotnetRuntimeDir(winCodeSign))\n } else {\n // Custom toolset: user provides the dlib alongside signtool in the kit dir.\n dlibPath = path.join(safeKitDir, \"Azure.CodeSigning.Dlib.dll\")\n }\n\n const metadataPath = await this.packager.getTempFile(\".json\")\n await _fsExtra.writeJson(metadataPath, {\n Endpoint: signing.endpoint,\n CodeSigningAccountName: signing.codeSigningAccountName,\n CertificateProfileName: signing.certificateProfileName,\n ...signing.additionalMetadata,\n })\n\n const args = [\n \"sign\",\n \"/fd\",\n (signing.fileDigest ?? \"SHA256\").toUpperCase(),\n \"/tr\",\n signing.timestampRfc3161 ?? \"http://timestamp.acs.microsoft.com\",\n \"/td\",\n (signing.timestampDigest ?? \"SHA256\").toUpperCase(),\n \"/dlib\",\n this.vm.toVmFile(dlibPath),\n \"/dmdf\",\n this.vm.toVmFile(metadataPath),\n this.vm.toVmFile(options.path),\n ]\n\n log.info(\n {\n file: log.filePath(options.path),\n endpoint: signing.endpoint,\n account: signing.codeSigningAccountName,\n profile: signing.certificateProfileName,\n },\n \"signing with Azure Trusted Signing (signtool /dlib)\"\n )\n\n // DOTNET_ROOT: Ijwhost.dll (shipped in the ats-bundle) reads this env var to locate\n // hostfxr.dll. On Wine, toVmFile converts the host path to a Z:\\ path that Wine resolves\n // back to the same location on the host filesystem.\n const execOptions = dotnetRootPath != null ? { env: { DOTNET_ROOT: this.vm.toVmFile(dotnetRootPath) } } : undefined\n await this.vm.exec(signtoolPath, args, execOptions)\n return true\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"windowsSignAzureManager.js","sourceRoot":"","sources":["../../../src/codeSign/win/windowsSignAzureManager.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arch, isEmptyOrSpaces, log, sanitizeDirPath } from \"builder-util\"\nimport { asArray, MemoLazy } from \"builder-util-runtime\"\nimport _fsExtra from \"fs-extra\"\nimport { Lazy } from \"lazy-val\"\nimport * as path from \"path\"\nimport { Target } from \"../../core.js\"\nimport { resolveWindowsSigningConfiguration, WindowsAzureSigningConfig, WindowsConfiguration } from \"../../options/winOptions.js\"\nimport { getAtsBundleDir, getDotnetRuntimeDir, getWindowsKitsBundle, WIN_CODESIGN_LATEST } from \"../../toolsets/winCodeSign.js\"\nimport { resolveToolsetVersion } from \"../../toolsets/version.js\"\nimport { VmManager } from \"../../vm/vm.js\"\nimport { WineVmManager } from \"../../vm/WineVm.js\"\nimport { WinPackager } from \"../../winPackager.js\"\nimport { SignManager } from \"./signManager.js\"\nimport { WindowsSignOptions } from \"./windowsCodeSign.js\"\nimport { CertificateFromStoreInfo, FileCodeSigningInfo } from \"./windowsSignToolManager.js\"\nimport semver from \"semver\"\n\nconst minimumWinCodeSignVersionForDlib = \"1.3.0\"\nexport class WindowsSignAzureManager implements SignManager {\n private readonly signing: WindowsAzureSigningConfig\n\n // signtool.exe is a Windows PE binary; use Wine on non-Windows (same pattern as MsiTarget).\n private readonly vm: VmManager = process.platform === \"win32\" ? new VmManager() : new WineVmManager(this.packager.config.toolsets?.wine, this.packager.buildResourcesDir)\n\n readonly computedPublisherName = new Lazy<Array<string> | null>(() => {\n return Promise.resolve(asArray(this.publisherName))\n })\n\n private get publisherName(): string {\n const result = this.signing.publisherName\n if (isEmptyOrSpaces(result)) {\n throw new Error(\"Azure Trusted Signing requires 'publisherName' in win.sign config (no local certificate to derive it from)\")\n }\n return result\n }\n\n constructor(private readonly packager: WinPackager) {\n const signing = resolveWindowsSigningConfiguration(packager.platformOptions)\n if (signing?.type !== \"azure\") {\n throw new Error(`WindowsSignAzureManager requires signing.type = \"azure\", got: ${signing?.type}`)\n }\n this.signing = signing\n }\n\n private isLegacyMode(): boolean {\n const wcs = this.packager.config.toolsets?.winCodeSign\n // ToolsetCustom object = user-managed bundle (provides its own dlib alongside signtool) → not legacy.\n if (typeof wcs === \"object\" && wcs != null) {\n return false\n }\n // Unset / null / \"latest\" resolve to the newest bundle, which ships the ATS dlib + .NET payload.\n // An explicit version below 1.3.0 (e.g. \"0.0.0\", \"1.2.1\") has no dlib → legacy PowerShell.\n const resolved = resolveToolsetVersion(wcs, WIN_CODESIGN_LATEST)\n return semver.lt(resolved, minimumWinCodeSignVersionForDlib)\n }\n\n async initialize(): Promise<void> {\n if (!this.isLegacyMode()) {\n return\n }\n\n const wcs = this.packager.config.toolsets?.winCodeSign\n log.info(\n {\n reason: `toolsets.winCodeSign \"${String(wcs)}\" is below the minimum \"${minimumWinCodeSignVersionForDlib}\"`,\n guidance: `leave toolsets.winCodeSign unset (or set it to \"${minimumWinCodeSignVersionForDlib}\" / \"latest\") to use the faster signtool /dlib integration`,\n },\n `Azure Trusted Signing: falling back to legacy PowerShell (Invoke-TrustedSigning)`\n )\n\n const vm = await this.packager.vm.value\n const ps = await vm.powershellCommand.value\n log.info(null, \"installing required module (TrustedSigning) with scope CurrentUser\")\n try {\n await vm.exec(ps, [\"-NoProfile\", \"-NonInteractive\", \"-Command\", \"Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force -Scope CurrentUser\"])\n } catch (error: any) {\n log.debug({ message: error.message || error.stack }, \"unable to install PackageProvider NuGet — may already be present\")\n }\n await vm.exec(ps, [\"-NoProfile\", \"-NonInteractive\", \"-Command\", \"Install-Module -Name TrustedSigning -MinimumVersion 0.5.0 -Force -Repository PSGallery -Scope CurrentUser\"])\n }\n\n computePublisherName(_target: Target, publisherName: string | null): Promise<string> {\n return Promise.resolve(this.publisherName ?? publisherName)\n }\n\n readonly cscInfo = new MemoLazy<WindowsConfiguration, FileCodeSigningInfo | CertificateFromStoreInfo | null>(\n () => this.packager.platformOptions,\n _selected => Promise.resolve(null)\n )\n\n async signFile(options: WindowsSignOptions): Promise<boolean> {\n return this.isLegacyMode() ? this.signFileLegacy(options) : this.signFileWithDlib(options)\n }\n\n private async signFileLegacy(options: WindowsSignOptions): Promise<boolean> {\n const { signing } = this\n const vm = await this.packager.vm.value\n const ps = await vm.powershellCommand.value\n\n // Validate additionalMetadata keys before embedding as PS parameter names.\n // Keys flow directly into `-${field} '...'` in the command string; a key\n // containing semicolons or quotes would be PowerShell injection.\n const PS_PARAM_NAME = /^[A-Za-z_][A-Za-z0-9_]*$/\n for (const key of Object.keys(signing.additionalMetadata ?? {})) {\n if (!PS_PARAM_NAME.test(key)) {\n throw new Error(\n `additionalMetadata key \"${key}\" is not a valid PowerShell parameter name. Keys must match /^[A-Za-z_][A-Za-z0-9_]*$/ (e.g. \"ExcludeCredentials\", \"CorrelationId\").`\n )\n }\n }\n\n const params: Record<string, string | undefined> = {\n Endpoint: signing.endpoint,\n CertificateProfileName: signing.certificateProfileName,\n CodeSigningAccountName: signing.codeSigningAccountName,\n TimestampRfc3161: signing.timestampRfc3161 ?? \"http://timestamp.acs.microsoft.com\",\n TimestampDigest: signing.timestampDigest ?? \"SHA256\",\n FileDigest: signing.fileDigest ?? \"SHA256\",\n ...signing.additionalMetadata,\n Files: vm.toVmFile(options.path),\n }\n\n const paramsString = Object.entries(params)\n .filter(([, value]) => value != null)\n .map(([field, value]) => `-${field} '${String(value).replace(/'/g, \"''\")}'`)\n .join(\" \")\n\n // Use -EncodedCommand (Base64 UTF-16LE) so the command string is opaque to any\n // intermediate shell or argument parser — no cmd.exe / ConHost escaping needed.\n // PowerShell still parses the decoded string, so PS-level single-quote escaping above is retained.\n const psCommand = `Invoke-TrustedSigning ${paramsString}`\n const encodedCommand = Buffer.from(psCommand, \"utf16le\").toString(\"base64\")\n await vm.exec(ps, [\"-NoProfile\", \"-NonInteractive\", \"-EncodedCommand\", encodedCommand])\n return true\n }\n\n private async signFileWithDlib(options: WindowsSignOptions): Promise<boolean> {\n const { signing } = this\n const winCodeSign = this.packager.config.toolsets?.winCodeSign\n const isCustom = typeof winCodeSign === \"object\" && winCodeSign != null\n\n // The ATS payload (dlib + its dependency closure) ships x64/x86 only; the bundle's arm64\n // dir has no dlib. On arm64 hosts use the x64 signtool + dlib — x64 signtool runs under\n // Windows-on-ARM emulation natively, and under x64 Wine on macOS/Linux.\n const arch = process.arch === \"ia32\" ? Arch.ia32 : Arch.x64\n const { kit: kitDir } = await getWindowsKitsBundle({ winCodeSign, resourcesDir: this.packager.buildResourcesDir })\n // For custom toolsets the kit lives within buildResourcesDir; enforce that constraint.\n // For versioned/cached bundles no base constraint is needed (paths are in the tool cache).\n const safeKitDir = sanitizeDirPath(kitDir, isCustom ? this.packager.buildResourcesDir : undefined)\n const signtoolPath = path.join(safeKitDir, \"signtool.exe\")\n\n let dlibPath: string\n let dotnetRootPath: string | null = null\n\n if (typeof winCodeSign === \"object\" && winCodeSign != null) {\n // Custom toolset: user provides the dlib alongside signtool in the kit dir.\n dlibPath = path.join(safeKitDir, \"Azure.CodeSigning.Dlib.dll\")\n } else {\n // Built-in bundle. Unset / null / \"latest\" resolve to the newest version (>= 1.3.0); an\n // explicit >= 1.3.0 version is used as-is. The dlib ships in a separate ats-bundle with its\n // full native dependency closure (Ijwhost.dll, VC++ runtime, etc.). The .NET 8 framework is\n // in a separate dotnet-runtime bundle; DOTNET_ROOT tells Ijwhost where to find hostfxr.dll →\n // shared framework.\n const version = resolveToolsetVersion(winCodeSign, WIN_CODESIGN_LATEST)\n const safeAtsDir = sanitizeDirPath(await getAtsBundleDir(version))\n dlibPath = path.join(safeAtsDir, arch === Arch.ia32 ? \"x86\" : \"x64\", \"Azure.CodeSigning.Dlib.dll\")\n dotnetRootPath = sanitizeDirPath(await getDotnetRuntimeDir(version))\n }\n\n const metadataPath = await this.packager.getTempFile(\".json\")\n await _fsExtra.writeJson(metadataPath, {\n Endpoint: signing.endpoint,\n CodeSigningAccountName: signing.codeSigningAccountName,\n CertificateProfileName: signing.certificateProfileName,\n ...signing.additionalMetadata,\n })\n\n const args = [\n \"sign\",\n \"/fd\",\n (signing.fileDigest ?? \"SHA256\").toUpperCase(),\n \"/tr\",\n signing.timestampRfc3161 ?? \"http://timestamp.acs.microsoft.com\",\n \"/td\",\n (signing.timestampDigest ?? \"SHA256\").toUpperCase(),\n \"/dlib\",\n this.vm.toVmFile(dlibPath),\n \"/dmdf\",\n this.vm.toVmFile(metadataPath),\n this.vm.toVmFile(options.path),\n ]\n\n log.info(\n {\n file: log.filePath(options.path),\n endpoint: signing.endpoint,\n account: signing.codeSigningAccountName,\n profile: signing.certificateProfileName,\n },\n \"signing with Azure Trusted Signing (signtool /dlib)\"\n )\n\n // DOTNET_ROOT: Ijwhost.dll (shipped in the ats-bundle) reads this env var to locate\n // hostfxr.dll. On Wine, toVmFile converts the host path to a Z:\\ path that Wine resolves\n // back to the same location on the host filesystem.\n const execOptions = dotnetRootPath != null ? { env: { DOTNET_ROOT: this.vm.toVmFile(dotnetRootPath) } } : undefined\n await this.vm.exec(signtoolPath, args, execOptions)\n return true\n }\n}\n"]}
|
package/dist/configuration.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ import { AppImageOptions, DebOptions, FlatpakOptions, LinuxConfiguration, LinuxT
|
|
|
7
7
|
import { DmgOptions, MacConfiguration, MasConfiguration } from "./options/macOptions.js";
|
|
8
8
|
import { MsiOptions } from "./options/MsiOptions.js";
|
|
9
9
|
import { MsiWrappedOptions } from "./options/MsiWrappedOptions.js";
|
|
10
|
+
import { MsixOptions } from "./options/MsixOptions.js";
|
|
10
11
|
import { PkgOptions } from "./options/pkgOptions.js";
|
|
11
12
|
import { PlatformSpecificBuildOptions } from "./options/PlatformSpecificBuildOptions.js";
|
|
12
13
|
import { SnapcraftOptions } from "./options/SnapOptions.js";
|
|
@@ -18,6 +19,17 @@ import { PlatformPackager } from "./platformPackager.js";
|
|
|
18
19
|
import { NsisOptions, NsisWebOptions, PortableOptions } from "./targets/win/nsis/nsisOptions.js";
|
|
19
20
|
import { ElectronGetOptions } from "./util/electronGet.js";
|
|
20
21
|
import { FuseOptionsV1 } from "./options/FuseOptionsV1.js";
|
|
22
|
+
/**
|
|
23
|
+
* Production dependencies that are excluded from the copied `node_modules` by default. These are
|
|
24
|
+
* still legitimate production dependencies (for SBOM, license, and vulnerability tracking), but
|
|
25
|
+
* electron-builder already provides them another way — notably the Electron runtime, which is
|
|
26
|
+
* embedded separately — so copying them into the app would just duplicate what is already there.
|
|
27
|
+
* Users can override the set via {@link CommonConfiguration.ignoredProductionDependencies}.
|
|
28
|
+
*
|
|
29
|
+
* Declared next to the option so the code constant, the jsdoc `@default`, and the generated
|
|
30
|
+
* `scheme.json` stay in one place; a test asserts the generated schema matches this constant.
|
|
31
|
+
*/
|
|
32
|
+
export declare const DEFAULT_IGNORED_PRODUCTION_DEPENDENCIES: ReadonlyArray<string>;
|
|
21
33
|
/**
|
|
22
34
|
* Configuration options shared across all platforms.
|
|
23
35
|
*
|
|
@@ -144,6 +156,8 @@ export interface CommonConfiguration {
|
|
|
144
156
|
* @see {@link AppXOptions}
|
|
145
157
|
*/
|
|
146
158
|
readonly appx?: AppXOptions | null;
|
|
159
|
+
/** MSIX package options. MSIX is the modern successor to AppX with additional deployment features. */
|
|
160
|
+
readonly msix?: MsixOptions | null;
|
|
147
161
|
/**
|
|
148
162
|
* WiX-based MSI installer options.
|
|
149
163
|
*
|
|
@@ -274,6 +288,39 @@ export interface CommonConfiguration {
|
|
|
274
288
|
* ```
|
|
275
289
|
*/
|
|
276
290
|
readonly npmArgs?: Array<string> | string | null;
|
|
291
|
+
/**
|
|
292
|
+
* Names of production dependencies that are excluded from the copied `node_modules`, even if they
|
|
293
|
+
* are declared in the `dependencies` section of `package.json`.
|
|
294
|
+
*
|
|
295
|
+
* electron-builder copies the resolved production dependency tree into the app. Some packages —
|
|
296
|
+
* notably `electron` — are already provided another way (the Electron runtime is embedded
|
|
297
|
+
* separately), so copying them would just duplicate what is already there. Such packages are
|
|
298
|
+
* excluded from the copy rather than rejected: they remain valid production dependencies for
|
|
299
|
+
* tooling purposes (e.g. SBOM, license, and vulnerability tracking) without being shipped twice.
|
|
300
|
+
*
|
|
301
|
+
* Only dependencies **declared by the app itself** are eligible: a listed name and the transitive
|
|
302
|
+
* dependencies required *only* by it are dropped, while anything also required by another (kept)
|
|
303
|
+
* production dependency stays bundled. A matching name that appears solely as a transitive
|
|
304
|
+
* dependency of a kept package is never excluded. Note that a kept package which `require()`s an
|
|
305
|
+
* excluded name at runtime *without declaring it* (relying on hoisting) will fail with
|
|
306
|
+
* `MODULE_NOT_FOUND` — declare such a dependency properly or remove the name from this list.
|
|
307
|
+
*
|
|
308
|
+
* Matching is by the dependency name as declared in `package.json`: an npm alias
|
|
309
|
+
* (`"custom-electron": "npm:electron@^30.0.0"`) is matched by its alias key (`custom-electron`),
|
|
310
|
+
* never by the underlying package name.
|
|
311
|
+
*
|
|
312
|
+
* Overriding this option **replaces** the default list, so include `electron` and `electron-builder`
|
|
313
|
+
* unless you intend to ship them. The most common reason to override is to *add* a dependency that a
|
|
314
|
+
* bundler (Vite, webpack, esbuild, …) already inlines into your app code: keep it in `dependencies`
|
|
315
|
+
* so SBOM/license tooling still sees it, and list it here so a duplicate copy is not packaged — e.g.
|
|
316
|
+
* `["electron", "electron-builder", "react", "react-dom"]`. Removing a default name keeps that
|
|
317
|
+
* package in the copied `node_modules`. Setting the option to `null` (or omitting it) applies the
|
|
318
|
+
* default list; to disable exclusion entirely, set it to an empty array `[]`. Each excluded package
|
|
319
|
+
* is logged once during packaging.
|
|
320
|
+
*
|
|
321
|
+
* @default ["electron", "electron-builder"]
|
|
322
|
+
*/
|
|
323
|
+
readonly ignoredProductionDependencies?: Array<string> | null;
|
|
277
324
|
/**
|
|
278
325
|
* Configuration for native Node.js module installation and rebuilding.
|
|
279
326
|
*
|
|
@@ -504,18 +551,12 @@ export type AfterPackContext = PackContext;
|
|
|
504
551
|
export type BeforePackContext = PackContext;
|
|
505
552
|
export type AfterExtractContext = PackContext;
|
|
506
553
|
/**
|
|
507
|
-
* Version pins and custom bundle overrides for the binary toolsets that electron-builder
|
|
508
|
-
* downloads and caches locally.
|
|
554
|
+
* Version pins and custom bundle overrides for the binary toolsets that electron-builder downloads and caches locally.
|
|
509
555
|
*
|
|
510
|
-
* Each toolset is a versioned archive hosted at
|
|
511
|
-
*
|
|
512
|
-
* Omitting a property (or setting it to `null`) selects the modern default for that toolset.
|
|
513
|
-
* Setting a property to `"0.0.0"` forces the legacy bundle — useful only for diagnosing
|
|
514
|
-
* regressions introduced by newer toolset bundles.
|
|
556
|
+
* Each toolset is a versioned archive hosted at [electron-userland/electron-builder-binaries](https://github.com/electron-userland/electron-builder-binaries/releases).
|
|
557
|
+
* Omitting a property (or setting it to `latest`) selects the modern default for that toolset.
|
|
515
558
|
*
|
|
516
|
-
* To supply your own bundle, set the property to a {@link ToolsetCustom} object with a `url`
|
|
517
|
-
* (https:// or file://) and a `checksum` for verification. The bundle must mirror the expected
|
|
518
|
-
* directory layout of the corresponding built-in bundle; see the build scripts at
|
|
559
|
+
* To supply your own bundle, set the property to a {@link ToolsetCustom} object with a `url` (https:// or file://) and a `checksum` for verification. The bundle must mirror the expected directory layout of the corresponding built-in bundle; see the build scripts at
|
|
519
560
|
* https://github.com/electron-userland/electron-builder-binaries/tree/master/packages.
|
|
520
561
|
*/
|
|
521
562
|
export interface ToolsetConfig {
|
|
@@ -525,24 +566,23 @@ export interface ToolsetConfig {
|
|
|
525
566
|
* The bundle ships:
|
|
526
567
|
* - **`signtool.exe`** (Windows) / **`osslsigncode`** (macOS & Linux) — used to sign `.exe`,
|
|
527
568
|
* `.dll`, and `.msix` artifacts.
|
|
528
|
-
* - **`rcedit`** —
|
|
529
|
-
* - **Windows Kits**
|
|
569
|
+
* - **`rcedit`** — embeds version metadata and icons into `.exe` files (legacy usage, migrated to npm `resedit` package).
|
|
570
|
+
* - **Windows Kits** — used by AppX/MSIX packaging (`makeappx`, `signtool`).
|
|
530
571
|
*
|
|
531
572
|
* Available versions:
|
|
532
|
-
* | Version |
|
|
533
|
-
*
|
|
534
|
-
* | `"0.0.0"` | Legacy bundle — `winCodeSign-2.6.0` (pre-v27
|
|
535
|
-
* | `"1.0.0"` |
|
|
536
|
-
* | `"1.1.
|
|
537
|
-
* | `"1.
|
|
538
|
-
* | `"1.
|
|
539
|
-
* | `"1.3.0"` | Modern bundle — Windows Kits 10.0.26100.0, `win-codesign` v1.3.0 + separate ATS dlib bundle + .NET 8 runtime (required for Azure Trusted Signing `signtool /dlib`) |
|
|
573
|
+
* | Version | Notes |
|
|
574
|
+
* |---------|-------|
|
|
575
|
+
* | `"0.0.0"` | Legacy bundle — `winCodeSign-2.6.0` (pre-v27) |
|
|
576
|
+
* | `"1.0.0"` | Windows Kits 10.0.26100.0, `osslsigncode` v2.9 |
|
|
577
|
+
* | `"1.1.1"` | Updates `osslsigncode` to v2.11 |
|
|
578
|
+
* | `"1.2.1"` | Adds native `osslsigncode` arm64 |
|
|
579
|
+
* | `"1.3.0"` | Includes support for Azure Trusted Signing `signtool` via dlib and .NET 8 runtime |
|
|
540
580
|
*
|
|
541
581
|
* Releases: https://github.com/electron-userland/electron-builder-binaries/blob/master/packages/win-codesign/CHANGELOG.md
|
|
542
582
|
*
|
|
543
|
-
* @default "
|
|
583
|
+
* @default "latest"
|
|
544
584
|
*/
|
|
545
|
-
readonly winCodeSign?: "0.0.0" | "1.0.0" | "1.1.0" | "1.1.1" | "1.2.1" | "1.3.0" | ToolsetCustom |
|
|
585
|
+
readonly winCodeSign?: "0.0.0" | "1.0.0" | "1.1.0" | "1.1.1" | "1.2.1" | "1.3.0" | ToolsetCustom | "latest";
|
|
546
586
|
/**
|
|
547
587
|
* Version of the AppImage toolset bundle used for building `.AppImage` files.
|
|
548
588
|
*
|
|
@@ -554,15 +594,15 @@ export interface ToolsetConfig {
|
|
|
554
594
|
* Available versions:
|
|
555
595
|
* | Version | Runtime date | Notes |
|
|
556
596
|
* |---------|-------------|-------|
|
|
557
|
-
* | `"0.0.0"` | Legacy | FUSE2-based AppImage runtime (pre-v27
|
|
558
|
-
* | `"1.0.
|
|
559
|
-
* | `"1.0
|
|
597
|
+
* | `"0.0.0"` | Legacy | FUSE2-based AppImage runtime (pre-v27) |
|
|
598
|
+
* | `"1.0.3"` | 20251108 | Introduces static AppImage runtime |
|
|
599
|
+
* | `"1.1.0"` | 20251108 | Adds `unsquashfs` support |
|
|
560
600
|
*
|
|
561
601
|
* Releases: https://github.com/electron-userland/electron-builder-binaries/blob/master/packages/appimage/CHANGELOG.md
|
|
562
602
|
*
|
|
563
|
-
* @default "
|
|
603
|
+
* @default "latest"
|
|
564
604
|
*/
|
|
565
|
-
readonly appimage?: "0.0.0" | "1.0.
|
|
605
|
+
readonly appimage?: "0.0.0" | "1.0.3" | "1.1.0" | ToolsetCustom | "latest";
|
|
566
606
|
/**
|
|
567
607
|
* Version of the NSIS toolset bundle used to compile Windows installers.
|
|
568
608
|
*
|
|
@@ -575,14 +615,14 @@ export interface ToolsetConfig {
|
|
|
575
615
|
* Available versions:
|
|
576
616
|
* | Version | `makensis` version | Notes |
|
|
577
617
|
* |---------|------------------|-------|
|
|
578
|
-
* | `"0.0.0"` | 3.0.4.1 | Legacy split bundle — `nsis` + `nsis-resources` archives (pre-v27
|
|
579
|
-
* | `"1.2.1"` | 3.12 | Unified bundle — single archive, entrypoint scripts auto-set `NSISDIR`
|
|
618
|
+
* | `"0.0.0"` | 3.0.4.1 | Legacy split bundle — `nsis` + `nsis-resources` archives (pre-v27) |
|
|
619
|
+
* | `"1.2.1"` | 3.12 | Unified bundle — single archive, entrypoint scripts auto-set `NSISDIR` |
|
|
580
620
|
*
|
|
581
621
|
* Releases: https://github.com/electron-userland/electron-builder-binaries/blob/master/packages/nsis/CHANGELOG.md
|
|
582
622
|
*
|
|
583
|
-
* @default "
|
|
623
|
+
* @default "latest"
|
|
584
624
|
*/
|
|
585
|
-
readonly nsis?: "0.0.0" | "1.2.1" | ToolsetCustom |
|
|
625
|
+
readonly nsis?: "0.0.0" | "1.2.1" | ToolsetCustom | "latest";
|
|
586
626
|
/**
|
|
587
627
|
* Version of the Wine bundle used to run Windows tools (NSIS, rcedit, signtool) on
|
|
588
628
|
* non-Windows hosts (macOS and Linux).
|
|
@@ -593,16 +633,16 @@ export interface ToolsetConfig {
|
|
|
593
633
|
* Available versions:
|
|
594
634
|
* | Version | Wine version | Platform support | Notes |
|
|
595
635
|
* |---------|-------------|-----------------|-------|
|
|
596
|
-
* | `"0.0.0"` | 4.0.1 | macOS | Legacy portable bundle (
|
|
636
|
+
* | `"0.0.0"` | 4.0.1 | macOS | Legacy portable bundle (pre-v27) |
|
|
597
637
|
* | `"1.0.1"` | 11.0 | macOS | Supports arm64 macOS via Rosetta |
|
|
598
638
|
*
|
|
599
639
|
* To use a custom Wine binary, use a `ToolsetCustom` object.
|
|
600
640
|
*
|
|
601
641
|
* Releases: https://github.com/electron-userland/electron-builder-binaries/blob/master/packages/wine/CHANGELOG.md
|
|
602
642
|
*
|
|
603
|
-
* @default "
|
|
643
|
+
* @default "latest"
|
|
604
644
|
*/
|
|
605
|
-
readonly wine?: "0.0.0" | "1.0.1" | ToolsetCustom |
|
|
645
|
+
readonly wine?: "0.0.0" | "1.0.1" | ToolsetCustom | "latest";
|
|
606
646
|
/**
|
|
607
647
|
* Version of the FPM bundle used to build Linux packages (`.deb`, `.rpm`, `.pacman`, etc.)
|
|
608
648
|
* on macOS and Linux hosts.
|
|
@@ -614,9 +654,9 @@ export interface ToolsetConfig {
|
|
|
614
654
|
*
|
|
615
655
|
* Releases: https://github.com/electron-userland/electron-builder-binaries/blob/master/packages/fpm/CHANGELOG.md
|
|
616
656
|
*
|
|
617
|
-
* @default "
|
|
657
|
+
* @default "latest"
|
|
618
658
|
*/
|
|
619
|
-
readonly fpm?: "2.2.1" | ToolsetCustom |
|
|
659
|
+
readonly fpm?: "2.2.1" | ToolsetCustom | "latest";
|
|
620
660
|
/**
|
|
621
661
|
* Version of the Linux-tools-mac bundle used to produce `.tar.lz` archives and build
|
|
622
662
|
* Linux targets on macOS hosts.
|
|
@@ -626,13 +666,13 @@ export interface ToolsetConfig {
|
|
|
626
666
|
* Available versions:
|
|
627
667
|
* | Version | Notes |
|
|
628
668
|
* |---------|-------|
|
|
629
|
-
* | `"1.0.0"` |
|
|
669
|
+
* | `"1.0.0"` | gnu-tar, lzip, makedepend, glib, libgsf, libtool, pcre, gettext, binutils |
|
|
630
670
|
*
|
|
631
671
|
* Releases: https://github.com/electron-userland/electron-builder-binaries/blob/master/packages/linux-tools-mac/CHANGELOG.md
|
|
632
672
|
*
|
|
633
|
-
* @default "
|
|
673
|
+
* @default "latest"
|
|
634
674
|
*/
|
|
635
|
-
readonly linuxToolsMac?: "1.0.0" | ToolsetCustom |
|
|
675
|
+
readonly linuxToolsMac?: "1.0.0" | ToolsetCustom | "latest";
|
|
636
676
|
/**
|
|
637
677
|
* Version of the 7-Zip binary bundle used internally to extract `.7z` and `.tar.xz` archives.
|
|
638
678
|
*
|
|
@@ -644,9 +684,9 @@ export interface ToolsetConfig {
|
|
|
644
684
|
* (or a bare `file://` directory). `.7z` and `.tar.xz` archives cannot be used here because
|
|
645
685
|
* extracting them requires 7za — a circular dependency.
|
|
646
686
|
*
|
|
647
|
-
* @default "
|
|
687
|
+
* @default "latest"
|
|
648
688
|
*/
|
|
649
|
-
readonly sevenZip?: "1.0.0" | ToolsetCustom |
|
|
689
|
+
readonly sevenZip?: "1.0.0" | ToolsetCustom | "latest";
|
|
650
690
|
/**
|
|
651
691
|
* Version of the icons-conversion bundle used to convert source images to `.icns`, `.ico`,
|
|
652
692
|
* and PNG icon sets.
|
|
@@ -656,13 +696,13 @@ export interface ToolsetConfig {
|
|
|
656
696
|
* Available versions:
|
|
657
697
|
* | Version | Notes |
|
|
658
698
|
* |---------|-------|
|
|
659
|
-
* | `"1.2.1"` |
|
|
699
|
+
* | `"1.2.1"` | `wasm-vips` + `@resvg/resvg-wasm` |
|
|
660
700
|
*
|
|
661
701
|
* Releases: https://github.com/electron-userland/electron-builder-binaries/blob/master/packages/icons/CHANGELOG.md
|
|
662
702
|
*
|
|
663
|
-
* @default "
|
|
703
|
+
* @default "latest"
|
|
664
704
|
*/
|
|
665
|
-
readonly icons?: "1.2.1" | ToolsetCustom |
|
|
705
|
+
readonly icons?: "1.2.1" | ToolsetCustom | "latest";
|
|
666
706
|
}
|
|
667
707
|
/**
|
|
668
708
|
* A custom toolset bundle supplied by the user in place of a built-in versioned bundle.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../src/configuration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAA;AACzE,OAAO,EAAE,uCAAuC,EAAE,MAAM,gBAAgB,CAAA;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAClK,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AACxF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAA;AACxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAA;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAA;AAChG,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../src/configuration.ts"],"names":[],"mappings":"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"}
|
package/dist/configuration.js
CHANGED
|
@@ -1,2 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Production dependencies that are excluded from the copied `node_modules` by default. These are
|
|
3
|
+
* still legitimate production dependencies (for SBOM, license, and vulnerability tracking), but
|
|
4
|
+
* electron-builder already provides them another way — notably the Electron runtime, which is
|
|
5
|
+
* embedded separately — so copying them into the app would just duplicate what is already there.
|
|
6
|
+
* Users can override the set via {@link CommonConfiguration.ignoredProductionDependencies}.
|
|
7
|
+
*
|
|
8
|
+
* Declared next to the option so the code constant, the jsdoc `@default`, and the generated
|
|
9
|
+
* `scheme.json` stay in one place; a test asserts the generated schema matches this constant.
|
|
10
|
+
*/
|
|
11
|
+
export const DEFAULT_IGNORED_PRODUCTION_DEPENDENCIES = ["electron", "electron-builder"];
|
|
2
12
|
//# sourceMappingURL=configuration.js.map
|