app-builder-lib 25.0.6 → 25.1.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.
Files changed (45) hide show
  1. package/out/codeSign/windowsCodeSign.d.ts +2 -31
  2. package/out/codeSign/windowsCodeSign.js +28 -246
  3. package/out/codeSign/windowsCodeSign.js.map +1 -1
  4. package/out/codeSign/windowsSignAzureManager.d.ts +12 -0
  5. package/out/codeSign/windowsSignAzureManager.js +81 -0
  6. package/out/codeSign/windowsSignAzureManager.js.map +1 -0
  7. package/out/codeSign/windowsSignToolManager.d.ts +53 -0
  8. package/out/codeSign/windowsSignToolManager.js +341 -0
  9. package/out/codeSign/windowsSignToolManager.js.map +1 -0
  10. package/out/configuration.d.ts +14 -12
  11. package/out/configuration.js.map +1 -1
  12. package/out/electron/electronWin.js +1 -1
  13. package/out/electron/electronWin.js.map +1 -1
  14. package/out/electron/injectFFMPEG.js +1 -1
  15. package/out/electron/injectFFMPEG.js.map +1 -1
  16. package/out/index.d.ts +5 -4
  17. package/out/index.js.map +1 -1
  18. package/out/options/winOptions.d.ts +89 -4
  19. package/out/options/winOptions.js.map +1 -1
  20. package/out/packager.d.ts +1 -1
  21. package/out/packager.js +4 -4
  22. package/out/packager.js.map +1 -1
  23. package/out/platformPackager.d.ts +4 -4
  24. package/out/platformPackager.js.map +1 -1
  25. package/out/publish/PublishManager.js +3 -3
  26. package/out/publish/PublishManager.js.map +1 -1
  27. package/out/targets/AppxTarget.js +6 -5
  28. package/out/targets/AppxTarget.js.map +1 -1
  29. package/out/targets/FpmTarget.js +1 -1
  30. package/out/targets/FpmTarget.js.map +1 -1
  31. package/out/targets/nsis/nsisOptions.d.ts +1 -2
  32. package/out/targets/nsis/nsisOptions.js.map +1 -1
  33. package/out/util/config/load.js +1 -1
  34. package/out/util/config/load.js.map +1 -1
  35. package/out/util/packageDependencies.d.ts +1 -1
  36. package/out/util/packageDependencies.js +4 -2
  37. package/out/util/packageDependencies.js.map +1 -1
  38. package/out/version.d.ts +1 -1
  39. package/out/version.js +1 -1
  40. package/out/version.js.map +1 -1
  41. package/out/winPackager.d.ts +6 -7
  42. package/out/winPackager.js +28 -103
  43. package/out/winPackager.js.map +1 -1
  44. package/package.json +11 -11
  45. package/scheme.json +150 -2
@@ -3,14 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WinPackager = void 0;
4
4
  const bluebird_lst_1 = require("bluebird-lst");
5
5
  const builder_util_1 = require("builder-util");
6
- const builder_util_runtime_1 = require("builder-util-runtime");
7
6
  const crypto_1 = require("crypto");
8
7
  const promises_1 = require("fs/promises");
9
8
  const isCI = require("is-ci");
10
9
  const lazy_val_1 = require("lazy-val");
11
10
  const path = require("path");
12
- const codesign_1 = require("./codeSign/codesign");
13
- const windowsCodeSign_1 = require("./codeSign/windowsCodeSign");
11
+ const windowsSignToolManager_1 = require("./codeSign/windowsSignToolManager");
14
12
  const core_1 = require("./core");
15
13
  const platformPackager_1 = require("./platformPackager");
16
14
  const NsisTarget_1 = require("./targets/nsis/NsisTarget");
@@ -22,94 +20,25 @@ const flags_1 = require("./util/flags");
22
20
  const timer_1 = require("./util/timer");
23
21
  const vm_1 = require("./vm/vm");
24
22
  const wine_1 = require("./wine");
23
+ const windowsCodeSign_1 = require("./codeSign/windowsCodeSign");
24
+ const windowsSignAzureManager_1 = require("./codeSign/windowsSignAzureManager");
25
25
  class WinPackager extends platformPackager_1.PlatformPackager {
26
26
  get isForceCodeSigningVerification() {
27
27
  return this.platformSpecificBuildOptions.verifyUpdateCodeSignature !== false;
28
28
  }
29
29
  constructor(info) {
30
30
  super(info, core_1.Platform.WINDOWS);
31
- this.cscInfo = new builder_util_runtime_1.MemoLazy(() => this.platformSpecificBuildOptions, platformSpecificBuildOptions => {
32
- if (platformSpecificBuildOptions.certificateSubjectName != null || platformSpecificBuildOptions.certificateSha1 != null) {
33
- return this.vm.value
34
- .then(vm => (0, windowsCodeSign_1.getCertificateFromStoreInfo)(platformSpecificBuildOptions, vm))
35
- .catch((e) => {
36
- // https://github.com/electron-userland/electron-builder/pull/2397
37
- if (platformSpecificBuildOptions.sign == null) {
38
- throw e;
39
- }
40
- else {
41
- builder_util_1.log.debug({ error: e }, "getCertificateFromStoreInfo error");
42
- return null;
43
- }
44
- });
45
- }
46
- const certificateFile = platformSpecificBuildOptions.certificateFile;
47
- if (certificateFile != null) {
48
- const certificatePassword = this.getCscPassword();
49
- return Promise.resolve({
50
- file: certificateFile,
51
- password: certificatePassword == null ? null : certificatePassword.trim(),
52
- });
53
- }
54
- const cscLink = this.getCscLink("WIN_CSC_LINK");
55
- if (cscLink == null || cscLink === "") {
56
- return Promise.resolve(null);
57
- }
58
- return ((0, codesign_1.importCertificate)(cscLink, this.info.tempDirManager, this.projectDir)
59
- // before then
60
- .catch((e) => {
61
- if (e instanceof builder_util_1.InvalidConfigurationError) {
62
- throw new builder_util_1.InvalidConfigurationError(`Env WIN_CSC_LINK is not correct, cannot resolve: ${e.message}`);
63
- }
64
- else {
65
- throw e;
66
- }
67
- })
68
- .then(path => {
69
- return {
70
- file: path,
71
- password: this.getCscPassword(),
72
- };
73
- }));
74
- });
75
31
  this._iconPath = new lazy_val_1.Lazy(() => this.getOrConvertIcon("ico"));
76
32
  this.vm = new lazy_val_1.Lazy(() => (process.platform === "win32" ? Promise.resolve(new vm_1.VmManager()) : (0, vm_1.getWindowsVm)(this.debugLogger)));
77
- this.computedPublisherName = new lazy_val_1.Lazy(async () => {
78
- const publisherName = this.platformSpecificBuildOptions.publisherName;
79
- if (publisherName === null) {
80
- return null;
81
- }
82
- else if (publisherName != null) {
83
- return (0, builder_util_1.asArray)(publisherName);
84
- }
85
- const certInfo = await this.lazyCertInfo.value;
86
- return certInfo == null ? null : [certInfo.commonName];
87
- });
88
- this.lazyCertInfo = new builder_util_runtime_1.MemoLazy(() => this.cscInfo, async (csc) => {
89
- const cscInfo = await csc.value;
90
- if (cscInfo == null) {
91
- return null;
92
- }
93
- if ("subject" in cscInfo) {
94
- const bloodyMicrosoftSubjectDn = cscInfo.subject;
95
- return {
96
- commonName: (0, builder_util_runtime_1.parseDn)(bloodyMicrosoftSubjectDn).get("CN"),
97
- bloodyMicrosoftSubjectDn,
98
- };
99
- }
100
- const cscFile = cscInfo.file;
101
- if (cscFile == null) {
102
- return null;
103
- }
104
- return await (0, windowsCodeSign_1.getCertInfo)(cscFile, cscInfo.password || "");
105
- });
33
+ this.signtoolManager = new lazy_val_1.Lazy(() => Promise.resolve(new windowsSignToolManager_1.WindowsSignToolManager(this)));
34
+ this.azureSignManager = new lazy_val_1.Lazy(() => Promise.resolve(new windowsSignAzureManager_1.WindowsSignAzureManager(this)).then(async (manager) => {
35
+ await manager.initializeProviderModules();
36
+ return manager;
37
+ }));
106
38
  }
107
39
  get defaultTarget() {
108
40
  return ["nsis"];
109
41
  }
110
- doGetCscPassword() {
111
- return (0, platformPackager_1.chooseNotNull)((0, platformPackager_1.chooseNotNull)(this.platformSpecificBuildOptions.certificatePassword, process.env.WIN_CSC_KEY_PASSWORD), super.doGetCscPassword());
112
- }
113
42
  createTargets(targets, mapper) {
114
43
  let copyElevateHelper;
115
44
  const getCopyElevateHelper = () => {
@@ -163,17 +92,20 @@ class WinPackager extends platformPackager_1.PlatformPackager {
163
92
  getIconPath() {
164
93
  return this._iconPath.value;
165
94
  }
95
+ doGetCscPassword() {
96
+ var _a;
97
+ return (0, platformPackager_1.chooseNotNull)((0, platformPackager_1.chooseNotNull)((0, platformPackager_1.chooseNotNull)((_a = this.platformSpecificBuildOptions.signtoolOptions) === null || _a === void 0 ? void 0 : _a.certificatePassword, this.platformSpecificBuildOptions.certificatePassword), process.env.WIN_CSC_KEY_PASSWORD), super.doGetCscPassword());
98
+ }
166
99
  async sign(file, logMessagePrefix) {
100
+ var _a;
167
101
  const signOptions = {
168
102
  path: file,
169
- name: this.appInfo.productName,
170
- site: await this.appInfo.computePackageUrl(),
171
103
  options: this.platformSpecificBuildOptions,
172
104
  };
173
- const cscInfo = await this.cscInfo.value;
105
+ const cscInfo = await (await this.signtoolManager.value).cscInfo.value;
174
106
  if (cscInfo == null) {
175
- if (this.platformSpecificBuildOptions.sign != null) {
176
- return (0, windowsCodeSign_1.sign)(signOptions, this);
107
+ if ((0, platformPackager_1.chooseNotNull)((_a = this.platformSpecificBuildOptions.signtoolOptions) === null || _a === void 0 ? void 0 : _a.sign, this.platformSpecificBuildOptions.sign) != null) {
108
+ return (0, windowsCodeSign_1.signWindows)(signOptions, this);
177
109
  }
178
110
  else if (this.forceCodeSigning) {
179
111
  throw new builder_util_1.InvalidConfigurationError(`App is not signed and "forceCodeSigning" is set to true, please ensure that code signing configuration is correct, please see https://electron.build/code-signing`);
@@ -201,31 +133,24 @@ class WinPackager extends platformPackager_1.PlatformPackager {
201
133
  }
202
134
  return this.doSign({
203
135
  ...signOptions,
204
- cscInfo,
205
136
  options: {
206
137
  ...this.platformSpecificBuildOptions,
207
138
  },
208
139
  });
209
140
  }
210
141
  async doSign(options) {
211
- for (let i = 0; i < 3; i++) {
212
- try {
213
- await (0, windowsCodeSign_1.sign)(options, this);
142
+ return (0, builder_util_1.retry)(() => (0, windowsCodeSign_1.signWindows)(options, this), 3, 500, 500, 0, (e) => {
143
+ // https://github.com/electron-userland/electron-builder/issues/1414
144
+ const message = e.message;
145
+ if (message != null && message.includes("Couldn't resolve host name")) {
146
+ builder_util_1.log.warn({ error: message }, `cannot sign`);
214
147
  return true;
215
148
  }
216
- catch (e) {
217
- // https://github.com/electron-userland/electron-builder/issues/1414
218
- const message = e.message;
219
- if (message != null && message.includes("Couldn't resolve host name")) {
220
- builder_util_1.log.warn({ error: message, attempt: i + 1 }, `cannot sign`);
221
- continue;
222
- }
223
- throw e;
224
- }
225
- }
226
- return false;
149
+ return false;
150
+ });
227
151
  }
228
152
  async signAndEditResources(file, arch, outDir, internalName, requestedExecutionLevel) {
153
+ var _a, _b;
229
154
  const appInfo = this.appInfo;
230
155
  const files = [];
231
156
  const args = [
@@ -258,7 +183,7 @@ class WinPackager extends platformPackager_1.PlatformPackager {
258
183
  args.push("--set-icon", it);
259
184
  });
260
185
  const config = this.config;
261
- const cscInfoForCacheDigest = !(0, flags_1.isBuildCacheEnabled)() || isCI || config.electronDist != null ? null : await this.cscInfo.value;
186
+ const cscInfoForCacheDigest = !(0, flags_1.isBuildCacheEnabled)() || isCI || config.electronDist != null ? null : await (await this.signtoolManager.value).cscInfo.value;
262
187
  let buildCacheManager = null;
263
188
  // resources editing doesn't change executable for the same input and executed quickly - no need to complicate
264
189
  if (cscInfoForCacheDigest != null) {
@@ -271,8 +196,8 @@ class WinPackager extends platformPackager_1.PlatformPackager {
271
196
  hash.update(config.electronVersion || "no electronVersion");
272
197
  hash.update(JSON.stringify(this.platformSpecificBuildOptions));
273
198
  hash.update(JSON.stringify(args));
274
- hash.update(this.platformSpecificBuildOptions.certificateSha1 || "no certificateSha1");
275
- hash.update(this.platformSpecificBuildOptions.certificateSubjectName || "no subjectName");
199
+ hash.update((0, platformPackager_1.chooseNotNull)((_a = this.platformSpecificBuildOptions.signtoolOptions) === null || _a === void 0 ? void 0 : _a.certificateSha1, this.platformSpecificBuildOptions.certificateSha1) || "no certificateSha1");
200
+ hash.update((0, platformPackager_1.chooseNotNull)((_b = this.platformSpecificBuildOptions.signtoolOptions) === null || _b === void 0 ? void 0 : _b.certificateSubjectName, this.platformSpecificBuildOptions.certificateSubjectName) || "no subjectName");
276
201
  buildCacheManager = new cacheManager_1.BuildCacheManager(outDir, file, arch);
277
202
  if (await buildCacheManager.copyIfValid(await (0, cacheManager_1.digest)(hash, files))) {
278
203
  timer.end();
@@ -286,7 +211,7 @@ class WinPackager extends platformPackager_1.PlatformPackager {
286
211
  await (0, builder_util_1.executeAppBuilder)(["rcedit", "--args", JSON.stringify(args)], undefined /* child-process */, {}, 3 /* retry three times */);
287
212
  }
288
213
  else if (this.info.framework.name === "electron") {
289
- const vendorPath = await (0, windowsCodeSign_1.getSignVendorPath)();
214
+ const vendorPath = await (0, windowsSignToolManager_1.getSignVendorPath)();
290
215
  await (0, wine_1.execWine)(path.join(vendorPath, "rcedit-ia32.exe"), path.join(vendorPath, "rcedit-x64.exe"), args);
291
216
  }
292
217
  await this.sign(file);
@@ -1 +1 @@
1
- {"version":3,"file":"winPackager.js","sourceRoot":"","sources":["../src/winPackager.ts"],"names":[],"mappings":"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","sourcesContent":["import BluebirdPromise from \"bluebird-lst\"\nimport { Arch, asArray, InvalidConfigurationError, log, use, executeAppBuilder, CopyFileTransformer, FileTransformer, walk } from \"builder-util\"\nimport { MemoLazy, parseDn } from \"builder-util-runtime\"\nimport { createHash } from \"crypto\"\nimport { readdir } from \"fs/promises\"\nimport * as isCI from \"is-ci\"\nimport { Lazy } from \"lazy-val\"\nimport * as path from \"path\"\nimport { importCertificate } from \"./codeSign/codesign\"\nimport {\n CertificateFromStoreInfo,\n CertificateInfo,\n FileCodeSigningInfo,\n getCertificateFromStoreInfo,\n getCertInfo,\n getSignVendorPath,\n sign,\n WindowsSignOptions,\n} from \"./codeSign/windowsCodeSign\"\nimport { AfterPackContext } from \"./configuration\"\nimport { DIR_TARGET, Platform, Target } from \"./core\"\nimport { RequestedExecutionLevel, WindowsConfiguration } from \"./options/winOptions\"\nimport { Packager } from \"./packager\"\nimport { chooseNotNull, PlatformPackager } from \"./platformPackager\"\nimport AppXTarget from \"./targets/AppxTarget\"\nimport MsiTarget from \"./targets/MsiTarget\"\nimport MsiWrappedTarget from \"./targets/MsiWrappedTarget\"\nimport { NsisTarget } from \"./targets/nsis/NsisTarget\"\nimport { AppPackageHelper, CopyElevateHelper } from \"./targets/nsis/nsisUtil\"\nimport { WebInstallerTarget } from \"./targets/nsis/WebInstallerTarget\"\nimport { createCommonTarget } from \"./targets/targetFactory\"\nimport { BuildCacheManager, digest } from \"./util/cacheManager\"\nimport { isBuildCacheEnabled } from \"./util/flags\"\nimport { time } from \"./util/timer\"\nimport { getWindowsVm, VmManager } from \"./vm/vm\"\nimport { execWine } from \"./wine\"\n\nexport class WinPackager extends PlatformPackager<WindowsConfiguration> {\n readonly cscInfo = new MemoLazy<WindowsConfiguration, FileCodeSigningInfo | CertificateFromStoreInfo | null>(\n () => this.platformSpecificBuildOptions,\n platformSpecificBuildOptions => {\n if (platformSpecificBuildOptions.certificateSubjectName != null || platformSpecificBuildOptions.certificateSha1 != null) {\n return this.vm.value\n .then(vm => getCertificateFromStoreInfo(platformSpecificBuildOptions, vm))\n .catch((e: any) => {\n // https://github.com/electron-userland/electron-builder/pull/2397\n if (platformSpecificBuildOptions.sign == null) {\n throw e\n } else {\n log.debug({ error: e }, \"getCertificateFromStoreInfo error\")\n return null\n }\n })\n }\n\n const certificateFile = platformSpecificBuildOptions.certificateFile\n if (certificateFile != null) {\n const certificatePassword = this.getCscPassword()\n return Promise.resolve({\n file: certificateFile,\n password: certificatePassword == null ? null : certificatePassword.trim(),\n })\n }\n\n const cscLink = this.getCscLink(\"WIN_CSC_LINK\")\n if (cscLink == null || cscLink === \"\") {\n return Promise.resolve(null)\n }\n\n return (\n importCertificate(cscLink, this.info.tempDirManager, this.projectDir)\n // before then\n .catch((e: any) => {\n if (e instanceof InvalidConfigurationError) {\n throw new InvalidConfigurationError(`Env WIN_CSC_LINK is not correct, cannot resolve: ${e.message}`)\n } else {\n throw e\n }\n })\n .then(path => {\n return {\n file: path,\n password: this.getCscPassword(),\n }\n })\n )\n }\n )\n\n private _iconPath = new Lazy(() => this.getOrConvertIcon(\"ico\"))\n\n readonly vm = new Lazy<VmManager>(() => (process.platform === \"win32\" ? Promise.resolve(new VmManager()) : getWindowsVm(this.debugLogger)))\n\n readonly computedPublisherName = new Lazy<Array<string> | null>(async () => {\n const publisherName = this.platformSpecificBuildOptions.publisherName\n if (publisherName === null) {\n return null\n } else if (publisherName != null) {\n return asArray(publisherName)\n }\n\n const certInfo = await this.lazyCertInfo.value\n return certInfo == null ? null : [certInfo.commonName]\n })\n\n readonly lazyCertInfo = new MemoLazy<MemoLazy<WindowsConfiguration, FileCodeSigningInfo | CertificateFromStoreInfo | null>, CertificateInfo | null>(\n () => this.cscInfo,\n async csc => {\n const cscInfo = await csc.value\n if (cscInfo == null) {\n return null\n }\n\n if (\"subject\" in cscInfo) {\n const bloodyMicrosoftSubjectDn = cscInfo.subject\n return {\n commonName: parseDn(bloodyMicrosoftSubjectDn).get(\"CN\")!,\n bloodyMicrosoftSubjectDn,\n }\n }\n\n const cscFile = cscInfo.file\n if (cscFile == null) {\n return null\n }\n return await getCertInfo(cscFile, cscInfo.password || \"\")\n }\n )\n\n get isForceCodeSigningVerification(): boolean {\n return this.platformSpecificBuildOptions.verifyUpdateCodeSignature !== false\n }\n\n constructor(info: Packager) {\n super(info, Platform.WINDOWS)\n }\n\n get defaultTarget(): Array<string> {\n return [\"nsis\"]\n }\n\n protected doGetCscPassword(): string | undefined | null {\n return chooseNotNull(chooseNotNull(this.platformSpecificBuildOptions.certificatePassword, process.env.WIN_CSC_KEY_PASSWORD), super.doGetCscPassword())\n }\n\n createTargets(targets: Array<string>, mapper: (name: string, factory: (outDir: string) => Target) => void): void {\n let copyElevateHelper: CopyElevateHelper | null\n const getCopyElevateHelper = () => {\n if (copyElevateHelper == null) {\n copyElevateHelper = new CopyElevateHelper()\n }\n return copyElevateHelper\n }\n\n let helper: AppPackageHelper | null\n const getHelper = () => {\n if (helper == null) {\n helper = new AppPackageHelper(getCopyElevateHelper())\n }\n return helper\n }\n\n for (const name of targets) {\n if (name === DIR_TARGET) {\n continue\n }\n\n if (name === \"nsis\" || name === \"portable\") {\n mapper(name, outDir => new NsisTarget(this, outDir, name, getHelper()))\n } else if (name === \"nsis-web\") {\n // package file format differs from nsis target\n mapper(name, outDir => new WebInstallerTarget(this, path.join(outDir, name), name, new AppPackageHelper(getCopyElevateHelper())))\n } else {\n const targetClass: typeof NsisTarget | typeof AppXTarget | typeof MsiTarget | typeof MsiWrappedTarget | null = (() => {\n switch (name) {\n case \"squirrel\":\n try {\n return require(\"electron-builder-squirrel-windows\").default\n } catch (e: any) {\n throw new InvalidConfigurationError(`Module electron-builder-squirrel-windows must be installed in addition to build Squirrel.Windows: ${e.stack || e}`)\n }\n\n case \"appx\":\n return require(\"./targets/AppxTarget\").default\n\n case \"msi\":\n return require(\"./targets/MsiTarget\").default\n\n case \"msiwrapped\":\n return require(\"./targets/MsiWrappedTarget\").default\n\n default:\n return null\n }\n })()\n\n mapper(name, outDir => (targetClass === null ? createCommonTarget(name, outDir, this) : new (targetClass as any)(this, outDir, name)))\n }\n }\n }\n\n getIconPath() {\n return this._iconPath.value\n }\n\n async sign(file: string, logMessagePrefix?: string): Promise<boolean> {\n const signOptions: WindowsSignOptions = {\n path: file,\n name: this.appInfo.productName,\n site: await this.appInfo.computePackageUrl(),\n options: this.platformSpecificBuildOptions,\n }\n\n const cscInfo = await this.cscInfo.value\n if (cscInfo == null) {\n if (this.platformSpecificBuildOptions.sign != null) {\n return sign(signOptions, this)\n } else if (this.forceCodeSigning) {\n throw new InvalidConfigurationError(\n `App is not signed and \"forceCodeSigning\" is set to true, please ensure that code signing configuration is correct, please see https://electron.build/code-signing`\n )\n }\n return false\n }\n\n if (logMessagePrefix == null) {\n logMessagePrefix = \"signing\"\n }\n\n if (\"file\" in cscInfo) {\n log.info(\n {\n file: log.filePath(file),\n certificateFile: cscInfo.file,\n },\n logMessagePrefix\n )\n } else {\n const info = cscInfo\n log.info(\n {\n file: log.filePath(file),\n subject: info.subject,\n thumbprint: info.thumbprint,\n store: info.store,\n user: info.isLocalMachineStore ? \"local machine\" : \"current user\",\n },\n logMessagePrefix\n )\n }\n\n return this.doSign({\n ...signOptions,\n cscInfo,\n options: {\n ...this.platformSpecificBuildOptions,\n },\n })\n }\n\n private async doSign(options: WindowsSignOptions) {\n for (let i = 0; i < 3; i++) {\n try {\n await sign(options, this)\n return true\n } catch (e: any) {\n // https://github.com/electron-userland/electron-builder/issues/1414\n const message = e.message\n if (message != null && message.includes(\"Couldn't resolve host name\")) {\n log.warn({ error: message, attempt: i + 1 }, `cannot sign`)\n continue\n }\n throw e\n }\n }\n return false\n }\n\n async signAndEditResources(file: string, arch: Arch, outDir: string, internalName?: string | null, requestedExecutionLevel?: RequestedExecutionLevel | null) {\n const appInfo = this.appInfo\n\n const files: Array<string> = []\n\n const args = [\n file,\n \"--set-version-string\",\n \"FileDescription\",\n appInfo.description || appInfo.productName,\n \"--set-version-string\",\n \"ProductName\",\n appInfo.productName,\n \"--set-version-string\",\n \"LegalCopyright\",\n appInfo.copyright,\n \"--set-file-version\",\n appInfo.shortVersion || appInfo.buildVersion,\n \"--set-product-version\",\n appInfo.shortVersionWindows || appInfo.getVersionInWeirdWindowsForm(),\n ]\n\n if (internalName != null) {\n args.push(\"--set-version-string\", \"InternalName\", internalName, \"--set-version-string\", \"OriginalFilename\", \"\")\n }\n\n if (requestedExecutionLevel != null && requestedExecutionLevel !== \"asInvoker\") {\n args.push(\"--set-requested-execution-level\", requestedExecutionLevel)\n }\n\n use(appInfo.companyName, it => args.push(\"--set-version-string\", \"CompanyName\", it))\n use(this.platformSpecificBuildOptions.legalTrademarks, it => args.push(\"--set-version-string\", \"LegalTrademarks\", it))\n const iconPath = await this.getIconPath()\n use(iconPath, it => {\n files.push(it)\n args.push(\"--set-icon\", it)\n })\n\n const config = this.config\n const cscInfoForCacheDigest = !isBuildCacheEnabled() || isCI || config.electronDist != null ? null : await this.cscInfo.value\n let buildCacheManager: BuildCacheManager | null = null\n // resources editing doesn't change executable for the same input and executed quickly - no need to complicate\n if (cscInfoForCacheDigest != null) {\n const cscFile = (cscInfoForCacheDigest as FileCodeSigningInfo).file\n if (cscFile != null) {\n files.push(cscFile)\n }\n\n const timer = time(\"executable cache\")\n const hash = createHash(\"sha512\")\n hash.update(config.electronVersion || \"no electronVersion\")\n hash.update(JSON.stringify(this.platformSpecificBuildOptions))\n hash.update(JSON.stringify(args))\n hash.update(this.platformSpecificBuildOptions.certificateSha1 || \"no certificateSha1\")\n hash.update(this.platformSpecificBuildOptions.certificateSubjectName || \"no subjectName\")\n\n buildCacheManager = new BuildCacheManager(outDir, file, arch)\n if (await buildCacheManager.copyIfValid(await digest(hash, files))) {\n timer.end()\n return\n }\n timer.end()\n }\n\n const timer = time(\"wine&sign\")\n // rcedit crashed of executed using wine, resourcehacker works\n if (process.platform === \"win32\" || process.platform === \"darwin\") {\n await executeAppBuilder([\"rcedit\", \"--args\", JSON.stringify(args)], undefined /* child-process */, {}, 3 /* retry three times */)\n } else if (this.info.framework.name === \"electron\") {\n const vendorPath = await getSignVendorPath()\n await execWine(path.join(vendorPath, \"rcedit-ia32.exe\"), path.join(vendorPath, \"rcedit-x64.exe\"), args)\n }\n\n await this.sign(file)\n timer.end()\n\n if (buildCacheManager != null) {\n await buildCacheManager.save()\n }\n }\n\n private shouldSignFile(file: string): boolean {\n const shouldSignDll = this.platformSpecificBuildOptions.signDlls === true && file.endsWith(\".dll\")\n const shouldSignExplicit = !!this.platformSpecificBuildOptions.signExts?.some(ext => file.endsWith(ext))\n return shouldSignDll || shouldSignExplicit || file.endsWith(\".exe\")\n }\n\n protected createTransformerForExtraFiles(packContext: AfterPackContext): FileTransformer | null {\n if (this.platformSpecificBuildOptions.signAndEditExecutable === false) {\n return null\n }\n\n return file => {\n if (this.shouldSignFile(file)) {\n const parentDir = path.dirname(file)\n if (parentDir !== packContext.appOutDir) {\n return new CopyFileTransformer(file => this.sign(file))\n }\n }\n return null\n }\n }\n\n protected async signApp(packContext: AfterPackContext, isAsar: boolean): Promise<boolean> {\n const exeFileName = `${this.appInfo.productFilename}.exe`\n if (this.platformSpecificBuildOptions.signAndEditExecutable === false) {\n return false\n }\n\n await BluebirdPromise.map(readdir(packContext.appOutDir), (file: string): any => {\n if (file === exeFileName) {\n return this.signAndEditResources(\n path.join(packContext.appOutDir, exeFileName),\n packContext.arch,\n packContext.outDir,\n path.basename(exeFileName, \".exe\"),\n this.platformSpecificBuildOptions.requestedExecutionLevel\n )\n } else if (this.shouldSignFile(file)) {\n return this.sign(path.join(packContext.appOutDir, file))\n }\n return null\n })\n\n if (!isAsar) {\n return true\n }\n\n const filesPromise = (filepath: string[]) => {\n const outDir = path.join(packContext.appOutDir, ...filepath)\n return walk(outDir, (file, stat) => stat.isDirectory() || this.shouldSignFile(file))\n }\n const filesToSign = await Promise.all([filesPromise([\"resources\", \"app.asar.unpacked\"]), filesPromise([\"swiftshader\"])])\n await BluebirdPromise.map(filesToSign.flat(1), file => this.sign(file), { concurrency: 4 })\n\n return true\n }\n}\n"]}
1
+ {"version":3,"file":"winPackager.js","sourceRoot":"","sources":["../src/winPackager.ts"],"names":[],"mappings":"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","sourcesContent":["import BluebirdPromise from \"bluebird-lst\"\nimport { Arch, InvalidConfigurationError, log, use, executeAppBuilder, CopyFileTransformer, FileTransformer, walk, retry } from \"builder-util\"\nimport { createHash } from \"crypto\"\nimport { readdir } from \"fs/promises\"\nimport * as isCI from \"is-ci\"\nimport { Lazy } from \"lazy-val\"\nimport * as path from \"path\"\nimport { FileCodeSigningInfo, getSignVendorPath, WindowsSignToolManager } from \"./codeSign/windowsSignToolManager\"\nimport { AfterPackContext } from \"./configuration\"\nimport { DIR_TARGET, Platform, Target } from \"./core\"\nimport { RequestedExecutionLevel, WindowsConfiguration } from \"./options/winOptions\"\nimport { Packager } from \"./packager\"\nimport { chooseNotNull, PlatformPackager } from \"./platformPackager\"\nimport AppXTarget from \"./targets/AppxTarget\"\nimport MsiTarget from \"./targets/MsiTarget\"\nimport MsiWrappedTarget from \"./targets/MsiWrappedTarget\"\nimport { NsisTarget } from \"./targets/nsis/NsisTarget\"\nimport { AppPackageHelper, CopyElevateHelper } from \"./targets/nsis/nsisUtil\"\nimport { WebInstallerTarget } from \"./targets/nsis/WebInstallerTarget\"\nimport { createCommonTarget } from \"./targets/targetFactory\"\nimport { BuildCacheManager, digest } from \"./util/cacheManager\"\nimport { isBuildCacheEnabled } from \"./util/flags\"\nimport { time } from \"./util/timer\"\nimport { getWindowsVm, VmManager } from \"./vm/vm\"\nimport { execWine } from \"./wine\"\nimport { signWindows } from \"./codeSign/windowsCodeSign\"\nimport { WindowsSignOptions } from \"./codeSign/windowsCodeSign\"\nimport { WindowsSignAzureManager } from \"./codeSign/windowsSignAzureManager\"\n\nexport class WinPackager extends PlatformPackager<WindowsConfiguration> {\n _iconPath = new Lazy(() => this.getOrConvertIcon(\"ico\"))\n\n readonly vm = new Lazy<VmManager>(() => (process.platform === \"win32\" ? Promise.resolve(new VmManager()) : getWindowsVm(this.debugLogger)))\n\n readonly signtoolManager = new Lazy<WindowsSignToolManager>(() => Promise.resolve(new WindowsSignToolManager(this)))\n readonly azureSignManager = new Lazy(() =>\n Promise.resolve(new WindowsSignAzureManager(this)).then(async manager => {\n await manager.initializeProviderModules()\n return manager\n })\n )\n\n get isForceCodeSigningVerification(): boolean {\n return this.platformSpecificBuildOptions.verifyUpdateCodeSignature !== false\n }\n\n constructor(info: Packager) {\n super(info, Platform.WINDOWS)\n }\n\n get defaultTarget(): Array<string> {\n return [\"nsis\"]\n }\n\n createTargets(targets: Array<string>, mapper: (name: string, factory: (outDir: string) => Target) => void): void {\n let copyElevateHelper: CopyElevateHelper | null\n const getCopyElevateHelper = () => {\n if (copyElevateHelper == null) {\n copyElevateHelper = new CopyElevateHelper()\n }\n return copyElevateHelper\n }\n\n let helper: AppPackageHelper | null\n const getHelper = () => {\n if (helper == null) {\n helper = new AppPackageHelper(getCopyElevateHelper())\n }\n return helper\n }\n\n for (const name of targets) {\n if (name === DIR_TARGET) {\n continue\n }\n\n if (name === \"nsis\" || name === \"portable\") {\n mapper(name, outDir => new NsisTarget(this, outDir, name, getHelper()))\n } else if (name === \"nsis-web\") {\n // package file format differs from nsis target\n mapper(name, outDir => new WebInstallerTarget(this, path.join(outDir, name), name, new AppPackageHelper(getCopyElevateHelper())))\n } else {\n const targetClass: typeof NsisTarget | typeof AppXTarget | typeof MsiTarget | typeof MsiWrappedTarget | null = (() => {\n switch (name) {\n case \"squirrel\":\n try {\n return require(\"electron-builder-squirrel-windows\").default\n } catch (e: any) {\n throw new InvalidConfigurationError(`Module electron-builder-squirrel-windows must be installed in addition to build Squirrel.Windows: ${e.stack || e}`)\n }\n\n case \"appx\":\n return require(\"./targets/AppxTarget\").default\n\n case \"msi\":\n return require(\"./targets/MsiTarget\").default\n\n case \"msiwrapped\":\n return require(\"./targets/MsiWrappedTarget\").default\n\n default:\n return null\n }\n })()\n\n mapper(name, outDir => (targetClass === null ? createCommonTarget(name, outDir, this) : new (targetClass as any)(this, outDir, name)))\n }\n }\n }\n\n getIconPath() {\n return this._iconPath.value\n }\n\n doGetCscPassword(): string | undefined | null {\n return chooseNotNull(\n chooseNotNull(\n chooseNotNull(this.platformSpecificBuildOptions.signtoolOptions?.certificatePassword, this.platformSpecificBuildOptions.certificatePassword),\n process.env.WIN_CSC_KEY_PASSWORD\n ),\n super.doGetCscPassword()\n )\n }\n\n async sign(file: string, logMessagePrefix?: string): Promise<boolean> {\n const signOptions: WindowsSignOptions = {\n path: file,\n options: this.platformSpecificBuildOptions,\n }\n\n const cscInfo = await (await this.signtoolManager.value).cscInfo.value\n if (cscInfo == null) {\n if (chooseNotNull(this.platformSpecificBuildOptions.signtoolOptions?.sign, this.platformSpecificBuildOptions.sign) != null) {\n return signWindows(signOptions, this)\n } else if (this.forceCodeSigning) {\n throw new InvalidConfigurationError(\n `App is not signed and \"forceCodeSigning\" is set to true, please ensure that code signing configuration is correct, please see https://electron.build/code-signing`\n )\n }\n return false\n }\n\n if (logMessagePrefix == null) {\n logMessagePrefix = \"signing\"\n }\n\n if (\"file\" in cscInfo) {\n log.info(\n {\n file: log.filePath(file),\n certificateFile: cscInfo.file,\n },\n logMessagePrefix\n )\n } else {\n const info = cscInfo\n log.info(\n {\n file: log.filePath(file),\n subject: info.subject,\n thumbprint: info.thumbprint,\n store: info.store,\n user: info.isLocalMachineStore ? \"local machine\" : \"current user\",\n },\n logMessagePrefix\n )\n }\n\n return this.doSign({\n ...signOptions,\n options: {\n ...this.platformSpecificBuildOptions,\n },\n })\n }\n\n private async doSign(options: WindowsSignOptions) {\n return retry(\n () => signWindows(options, this),\n 3,\n 500,\n 500,\n 0,\n (e: any) => {\n // https://github.com/electron-userland/electron-builder/issues/1414\n const message = e.message\n if (message != null && message.includes(\"Couldn't resolve host name\")) {\n log.warn({ error: message }, `cannot sign`)\n return true\n }\n return false\n }\n )\n }\n\n async signAndEditResources(file: string, arch: Arch, outDir: string, internalName?: string | null, requestedExecutionLevel?: RequestedExecutionLevel | null) {\n const appInfo = this.appInfo\n\n const files: Array<string> = []\n\n const args = [\n file,\n \"--set-version-string\",\n \"FileDescription\",\n appInfo.description || appInfo.productName,\n \"--set-version-string\",\n \"ProductName\",\n appInfo.productName,\n \"--set-version-string\",\n \"LegalCopyright\",\n appInfo.copyright,\n \"--set-file-version\",\n appInfo.shortVersion || appInfo.buildVersion,\n \"--set-product-version\",\n appInfo.shortVersionWindows || appInfo.getVersionInWeirdWindowsForm(),\n ]\n\n if (internalName != null) {\n args.push(\"--set-version-string\", \"InternalName\", internalName, \"--set-version-string\", \"OriginalFilename\", \"\")\n }\n\n if (requestedExecutionLevel != null && requestedExecutionLevel !== \"asInvoker\") {\n args.push(\"--set-requested-execution-level\", requestedExecutionLevel)\n }\n\n use(appInfo.companyName, it => args.push(\"--set-version-string\", \"CompanyName\", it))\n use(this.platformSpecificBuildOptions.legalTrademarks, it => args.push(\"--set-version-string\", \"LegalTrademarks\", it))\n const iconPath = await this.getIconPath()\n use(iconPath, it => {\n files.push(it)\n args.push(\"--set-icon\", it)\n })\n\n const config = this.config\n const cscInfoForCacheDigest = !isBuildCacheEnabled() || isCI || config.electronDist != null ? null : await (await this.signtoolManager.value).cscInfo.value\n let buildCacheManager: BuildCacheManager | null = null\n // resources editing doesn't change executable for the same input and executed quickly - no need to complicate\n if (cscInfoForCacheDigest != null) {\n const cscFile = (cscInfoForCacheDigest as FileCodeSigningInfo).file\n if (cscFile != null) {\n files.push(cscFile)\n }\n\n const timer = time(\"executable cache\")\n const hash = createHash(\"sha512\")\n hash.update(config.electronVersion || \"no electronVersion\")\n hash.update(JSON.stringify(this.platformSpecificBuildOptions))\n hash.update(JSON.stringify(args))\n hash.update(chooseNotNull(this.platformSpecificBuildOptions.signtoolOptions?.certificateSha1, this.platformSpecificBuildOptions.certificateSha1) || \"no certificateSha1\")\n hash.update(\n chooseNotNull(this.platformSpecificBuildOptions.signtoolOptions?.certificateSubjectName, this.platformSpecificBuildOptions.certificateSubjectName) || \"no subjectName\"\n )\n\n buildCacheManager = new BuildCacheManager(outDir, file, arch)\n if (await buildCacheManager.copyIfValid(await digest(hash, files))) {\n timer.end()\n return\n }\n timer.end()\n }\n\n const timer = time(\"wine&sign\")\n // rcedit crashed of executed using wine, resourcehacker works\n if (process.platform === \"win32\" || process.platform === \"darwin\") {\n await executeAppBuilder([\"rcedit\", \"--args\", JSON.stringify(args)], undefined /* child-process */, {}, 3 /* retry three times */)\n } else if (this.info.framework.name === \"electron\") {\n const vendorPath = await getSignVendorPath()\n await execWine(path.join(vendorPath, \"rcedit-ia32.exe\"), path.join(vendorPath, \"rcedit-x64.exe\"), args)\n }\n\n await this.sign(file)\n timer.end()\n\n if (buildCacheManager != null) {\n await buildCacheManager.save()\n }\n }\n\n private shouldSignFile(file: string): boolean {\n const shouldSignDll = this.platformSpecificBuildOptions.signDlls === true && file.endsWith(\".dll\")\n const shouldSignExplicit = !!this.platformSpecificBuildOptions.signExts?.some(ext => file.endsWith(ext))\n return shouldSignDll || shouldSignExplicit || file.endsWith(\".exe\")\n }\n\n protected createTransformerForExtraFiles(packContext: AfterPackContext): FileTransformer | null {\n if (this.platformSpecificBuildOptions.signAndEditExecutable === false) {\n return null\n }\n\n return file => {\n if (this.shouldSignFile(file)) {\n const parentDir = path.dirname(file)\n if (parentDir !== packContext.appOutDir) {\n return new CopyFileTransformer(file => this.sign(file))\n }\n }\n return null\n }\n }\n\n protected async signApp(packContext: AfterPackContext, isAsar: boolean): Promise<boolean> {\n const exeFileName = `${this.appInfo.productFilename}.exe`\n if (this.platformSpecificBuildOptions.signAndEditExecutable === false) {\n return false\n }\n\n await BluebirdPromise.map(readdir(packContext.appOutDir), (file: string): any => {\n if (file === exeFileName) {\n return this.signAndEditResources(\n path.join(packContext.appOutDir, exeFileName),\n packContext.arch,\n packContext.outDir,\n path.basename(exeFileName, \".exe\"),\n this.platformSpecificBuildOptions.requestedExecutionLevel\n )\n } else if (this.shouldSignFile(file)) {\n return this.sign(path.join(packContext.appOutDir, file))\n }\n return null\n })\n\n if (!isAsar) {\n return true\n }\n\n const filesPromise = (filepath: string[]) => {\n const outDir = path.join(packContext.appOutDir, ...filepath)\n return walk(outDir, (file, stat) => stat.isDirectory() || this.shouldSignFile(file))\n }\n const filesToSign = await Promise.all([filesPromise([\"resources\", \"app.asar.unpacked\"]), filesPromise([\"swiftshader\"])])\n await BluebirdPromise.map(filesToSign.flat(1), file => this.sign(file), { concurrency: 4 })\n\n return true\n }\n}\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "app-builder-lib",
3
3
  "description": "electron-builder lib",
4
- "version": "25.0.6",
4
+ "version": "25.1.1",
5
5
  "main": "out/index.js",
6
6
  "files": [
7
7
  "out",
@@ -47,7 +47,7 @@
47
47
  "homepage": "https://github.com/electron-userland/electron-builder",
48
48
  "dependencies": {
49
49
  "@develar/schema-utils": "~2.6.5",
50
- "@electron/notarize": "2.3.2",
50
+ "@electron/notarize": "2.4.0",
51
51
  "@electron/osx-sign": "1.3.1",
52
52
  "@electron/rebuild": "3.6.0",
53
53
  "@electron/universal": "2.0.1",
@@ -55,12 +55,15 @@
55
55
  "@types/fs-extra": "9.0.13",
56
56
  "async-exit-hook": "^2.0.1",
57
57
  "bluebird-lst": "^1.0.9",
58
+ "builder-util": "^25.1.0",
59
+ "builder-util-runtime": "^9",
58
60
  "chromium-pickle-js": "^0.2.0",
59
61
  "config-file-ts": "0.2.8-rc1",
60
62
  "debug": "^4.3.4",
61
63
  "dotenv": "^16.4.5",
62
64
  "dotenv-expand": "^11.0.6",
63
65
  "ejs": "^3.1.8",
66
+ "electron-publish": "^25.1.0",
64
67
  "form-data": "^4.0.0",
65
68
  "fs-extra": "^10.1.0",
66
69
  "hosted-git-info": "^4.1.0",
@@ -74,10 +77,7 @@
74
77
  "sanitize-filename": "^1.6.3",
75
78
  "semver": "^7.3.8",
76
79
  "tar": "^6.1.12",
77
- "temp-file": "^3.4.0",
78
- "builder-util": "25.0.6",
79
- "builder-util-runtime": "9.2.6",
80
- "electron-publish": "25.0.6"
80
+ "temp-file": "^3.4.0"
81
81
  },
82
82
  "///": "babel in devDependencies for proton tests",
83
83
  "devDependencies": {
@@ -107,13 +107,13 @@
107
107
  "@types/js-yaml": "4.0.3",
108
108
  "@types/semver": "7.3.8",
109
109
  "@types/tar": "^6.1.3",
110
- "toml": "^3.0.0",
111
- "electron-builder-squirrel-windows": "25.0.6",
112
- "dmg-builder": "25.0.6"
110
+ "dmg-builder": "^25.1.0",
111
+ "electron-builder-squirrel-windows": "^25.1.0",
112
+ "toml": "^3.0.0"
113
113
  },
114
114
  "peerDependencies": {
115
- "dmg-builder": "25.0.6",
116
- "electron-builder-squirrel-windows": "25.0.6"
115
+ "dmg-builder": "^25.1.025.1.0",
116
+ "electron-builder-squirrel-windows": "^25.1.025.1.0"
117
117
  },
118
118
  "//": "electron-builder-squirrel-windows and dmg-builder added as dev dep for tests (as otherwise `require` doesn't work using Yarn 2)",
119
119
  "typings": "./out/index.d.ts"
package/scheme.json CHANGED
@@ -5959,6 +5959,26 @@
5959
5959
  ],
5960
5960
  "type": "object"
5961
5961
  },
5962
+ "WindowsAzureSigningConfiguration": {
5963
+ "additionalProperties": {
5964
+ "type": "string"
5965
+ },
5966
+ "properties": {
5967
+ "certificateProfileName": {
5968
+ "description": "The Certificate Profile name. Translates to field: CertificateProfileName",
5969
+ "type": "string"
5970
+ },
5971
+ "endpoint": {
5972
+ "description": "The Trusted Signing Account endpoint. The URI value must have a URI that aligns to the\nregion your Trusted Signing Account and Certificate Profile you are specifying were created\nin during the setup of these resources.\n\nTranslates to field: Endpoint\n\nRequires one of environment variable configurations for authenticating to Microsoft Entra ID per [Microsoft's documentation](https://learn.microsoft.com/en-us/dotnet/api/azure.identity.environmentcredential?view=azure-dotnet#definition)",
5973
+ "type": "string"
5974
+ }
5975
+ },
5976
+ "required": [
5977
+ "certificateProfileName",
5978
+ "endpoint"
5979
+ ],
5980
+ "type": "object"
5981
+ },
5962
5982
  "WindowsConfiguration": {
5963
5983
  "additionalProperties": false,
5964
5984
  "properties": {
@@ -6016,6 +6036,17 @@
6016
6036
  ],
6017
6037
  "description": "A [glob patterns](/file-patterns) relative to the [app directory](#MetadataDirectories-app), which specifies which files to unpack when creating the [asar](http://electron.atom.io/docs/tutorial/application-packaging/) archive."
6018
6038
  },
6039
+ "azureSignOptions": {
6040
+ "anyOf": [
6041
+ {
6042
+ "$ref": "#/definitions/WindowsAzureSigningConfiguration"
6043
+ },
6044
+ {
6045
+ "type": "null"
6046
+ }
6047
+ ],
6048
+ "description": "Options for usage of Azure Trusted Signing (beta)"
6049
+ },
6019
6050
  "certificateFile": {
6020
6051
  "description": "The path to the *.pfx certificate you want to sign with. Please use it only if you cannot use env variable `CSC_LINK` (`WIN_CSC_LINK`) for some reason.\nPlease see [Code Signing](/code-signing).",
6021
6052
  "type": [
@@ -6345,7 +6376,7 @@
6345
6376
  ]
6346
6377
  }
6347
6378
  ],
6348
- "description": "The custom function (or path to file or module id) to sign Windows executable."
6379
+ "description": "The custom function (or path to file or module id) to sign Windows executables"
6349
6380
  },
6350
6381
  "signAndEditExecutable": {
6351
6382
  "default": true,
@@ -6388,9 +6419,19 @@
6388
6419
  "type": "null"
6389
6420
  }
6390
6421
  ],
6391
- "default": "['sha1', 'sha256']",
6392
6422
  "description": "Array of signing algorithms used. For AppX `sha256` is always used."
6393
6423
  },
6424
+ "signtoolOptions": {
6425
+ "anyOf": [
6426
+ {
6427
+ "$ref": "#/definitions/WindowsSigntoolConfiguration"
6428
+ },
6429
+ {
6430
+ "type": "null"
6431
+ }
6432
+ ],
6433
+ "description": "Options for usage with signtool.exe"
6434
+ },
6394
6435
  "target": {
6395
6436
  "anyOf": [
6396
6437
  {
@@ -6434,6 +6475,113 @@
6434
6475
  }
6435
6476
  },
6436
6477
  "type": "object"
6478
+ },
6479
+ "WindowsSigntoolConfiguration": {
6480
+ "additionalProperties": false,
6481
+ "properties": {
6482
+ "additionalCertificateFile": {
6483
+ "description": "The path to an additional certificate file you want to add to the signature block.",
6484
+ "type": [
6485
+ "null",
6486
+ "string"
6487
+ ]
6488
+ },
6489
+ "certificateFile": {
6490
+ "description": "The path to the *.pfx certificate you want to sign with. Please use it only if you cannot use env variable `CSC_LINK` (`WIN_CSC_LINK`) for some reason.\nPlease see [Code Signing](/code-signing).",
6491
+ "type": [
6492
+ "null",
6493
+ "string"
6494
+ ]
6495
+ },
6496
+ "certificatePassword": {
6497
+ "description": "The password to the certificate provided in `certificateFile`. Please use it only if you cannot use env variable `CSC_KEY_PASSWORD` (`WIN_CSC_KEY_PASSWORD`) for some reason.\nPlease see [Code Signing](/code-signing).",
6498
+ "type": [
6499
+ "null",
6500
+ "string"
6501
+ ]
6502
+ },
6503
+ "certificateSha1": {
6504
+ "description": "The SHA1 hash of the signing certificate. The SHA1 hash is commonly specified when multiple certificates satisfy the criteria specified by the remaining switches. Works only on Windows (or on macOS if [Parallels Desktop](https://www.parallels.com/products/desktop/) Windows 10 virtual machines exits).",
6505
+ "type": [
6506
+ "null",
6507
+ "string"
6508
+ ]
6509
+ },
6510
+ "certificateSubjectName": {
6511
+ "description": "The name of the subject of the signing certificate, which is often labeled with the field name `issued to`. Required only for EV Code Signing and works only on Windows (or on macOS if [Parallels Desktop](https://www.parallels.com/products/desktop/) Windows 10 virtual machines exits).",
6512
+ "type": [
6513
+ "null",
6514
+ "string"
6515
+ ]
6516
+ },
6517
+ "publisherName": {
6518
+ "anyOf": [
6519
+ {
6520
+ "items": {
6521
+ "type": "string"
6522
+ },
6523
+ "type": "array"
6524
+ },
6525
+ {
6526
+ "type": [
6527
+ "null",
6528
+ "string"
6529
+ ]
6530
+ }
6531
+ ],
6532
+ "description": "[The publisher name](https://github.com/electron-userland/electron-builder/issues/1187#issuecomment-278972073), exactly as in your code signed certificate. Several names can be provided.\nDefaults to common name from your code signing certificate."
6533
+ },
6534
+ "rfc3161TimeStampServer": {
6535
+ "default": "http://timestamp.digicert.com",
6536
+ "description": "The URL of the RFC 3161 time stamp server.",
6537
+ "type": [
6538
+ "null",
6539
+ "string"
6540
+ ]
6541
+ },
6542
+ "sign": {
6543
+ "anyOf": [
6544
+ {
6545
+ "typeof": "function"
6546
+ },
6547
+ {
6548
+ "type": [
6549
+ "null",
6550
+ "string"
6551
+ ]
6552
+ }
6553
+ ],
6554
+ "description": "The custom function (or path to file or module id) to sign Windows executables"
6555
+ },
6556
+ "signingHashAlgorithms": {
6557
+ "anyOf": [
6558
+ {
6559
+ "items": {
6560
+ "enum": [
6561
+ "sha1",
6562
+ "sha256"
6563
+ ],
6564
+ "type": "string"
6565
+ },
6566
+ "type": "array"
6567
+ },
6568
+ {
6569
+ "type": "null"
6570
+ }
6571
+ ],
6572
+ "default": "['sha1', 'sha256']",
6573
+ "description": "Array of signing algorithms used. For AppX `sha256` is always used."
6574
+ },
6575
+ "timeStampServer": {
6576
+ "default": "http://timestamp.digicert.com",
6577
+ "description": "The URL of the time stamp server.",
6578
+ "type": [
6579
+ "null",
6580
+ "string"
6581
+ ]
6582
+ }
6583
+ },
6584
+ "type": "object"
6437
6585
  }
6438
6586
  },
6439
6587
  "description": "Configuration Options",