UNPKG

234 kBJSONView Raw
1{
2 "$schema": "http://json-schema.org/draft-07/schema#",
3 "additionalProperties": false,
4 "definitions": {
5 "AllPublishOptions": {
6 "anyOf": [
7 {
8 "$ref": "#/definitions/GithubOptions"
9 },
10 {
11 "$ref": "#/definitions/S3Options"
12 },
13 {
14 "$ref": "#/definitions/SpacesOptions"
15 },
16 {
17 "$ref": "#/definitions/GenericServerOptions"
18 },
19 {
20 "$ref": "#/definitions/CustomPublishOptions"
21 },
22 {
23 "$ref": "#/definitions/KeygenOptions"
24 },
25 {
26 "$ref": "#/definitions/SnapStoreOptions"
27 },
28 {
29 "$ref": "#/definitions/BitbucketOptions"
30 },
31 {
32 "type": "string"
33 }
34 ]
35 },
36 "AppImageOptions": {
37 "additionalProperties": false,
38 "properties": {
39 "artifactName": {
40 "description": "The [artifact file name template](/configuration/configuration#artifact-file-name-template).",
41 "type": [
42 "null",
43 "string"
44 ]
45 },
46 "category": {
47 "description": "The [application category](https://specifications.freedesktop.org/menu-spec/latest/apa.html#main-category-registry).",
48 "type": [
49 "null",
50 "string"
51 ]
52 },
53 "description": {
54 "description": "As [description](/configuration/configuration#Metadata-description) from application package.json, but allows you to specify different for Linux.",
55 "type": [
56 "null",
57 "string"
58 ]
59 },
60 "desktop": {
61 "description": "The [Desktop file](https://developer.gnome.org/documentation/guidelines/maintainer/integrating.html#desktop-files) entries (name to value)."
62 },
63 "executableArgs": {
64 "anyOf": [
65 {
66 "items": {
67 "type": "string"
68 },
69 "type": "array"
70 },
71 {
72 "type": "null"
73 }
74 ],
75 "description": "The executable parameters. Pass to executableName"
76 },
77 "license": {
78 "description": "The path to EULA license file. Defaults to `license.txt` or `eula.txt` (or uppercase variants). Only plain text is supported.",
79 "type": [
80 "null",
81 "string"
82 ]
83 },
84 "mimeTypes": {
85 "anyOf": [
86 {
87 "items": {
88 "type": "string"
89 },
90 "type": "array"
91 },
92 {
93 "type": "null"
94 }
95 ],
96 "description": "The mime types in addition to specified in the file associations. Use it if you don't want to register a new mime type, but reuse existing."
97 },
98 "publish": {
99 "anyOf": [
100 {
101 "$ref": "#/definitions/GithubOptions"
102 },
103 {
104 "$ref": "#/definitions/S3Options"
105 },
106 {
107 "$ref": "#/definitions/SpacesOptions"
108 },
109 {
110 "$ref": "#/definitions/GenericServerOptions"
111 },
112 {
113 "$ref": "#/definitions/CustomPublishOptions"
114 },
115 {
116 "$ref": "#/definitions/KeygenOptions"
117 },
118 {
119 "$ref": "#/definitions/SnapStoreOptions"
120 },
121 {
122 "$ref": "#/definitions/BitbucketOptions"
123 },
124 {
125 "items": {
126 "$ref": "#/definitions/AllPublishOptions"
127 },
128 "type": "array"
129 },
130 {
131 "type": [
132 "null",
133 "string"
134 ]
135 }
136 ]
137 },
138 "synopsis": {
139 "description": "The [short description](https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Description).",
140 "type": [
141 "null",
142 "string"
143 ]
144 }
145 },
146 "type": "object"
147 },
148 "AppXOptions": {
149 "additionalProperties": false,
150 "properties": {
151 "addAutoLaunchExtension": {
152 "description": "Whether to add auto launch extension. Defaults to `true` if [electron-winstore-auto-launch](https://github.com/felixrieseberg/electron-winstore-auto-launch) in the dependencies.",
153 "type": "boolean"
154 },
155 "applicationId": {
156 "description": "The application id. Defaults to `identityName`. Can’t start with numbers.",
157 "type": "string"
158 },
159 "artifactName": {
160 "description": "The [artifact file name template](/configuration/configuration#artifact-file-name-template).",
161 "type": [
162 "null",
163 "string"
164 ]
165 },
166 "backgroundColor": {
167 "default": "#464646",
168 "description": "The background color of the app tile. See [Visual Elements](https://msdn.microsoft.com/en-us/library/windows/apps/br211471.aspx).",
169 "type": [
170 "null",
171 "string"
172 ]
173 },
174 "customExtensionsPath": {
175 "description": "Relative path to custom extensions xml to be included in an `appmanifest.xml`.",
176 "type": "string"
177 },
178 "displayName": {
179 "description": "A friendly name that can be displayed to users. Corresponds to [Properties.DisplayName](https://msdn.microsoft.com/en-us/library/windows/apps/br211432.aspx).\nDefaults to the application product name.",
180 "type": [
181 "null",
182 "string"
183 ]
184 },
185 "electronUpdaterAware": {
186 "default": false,
187 "type": "boolean"
188 },
189 "identityName": {
190 "description": "The name. Corresponds to [Identity.Name](https://msdn.microsoft.com/en-us/library/windows/apps/br211441.aspx). Defaults to the [application name](/configuration/configuration#Metadata-name).",
191 "type": [
192 "null",
193 "string"
194 ]
195 },
196 "languages": {
197 "anyOf": [
198 {
199 "items": {
200 "type": "string"
201 },
202 "type": "array"
203 },
204 {
205 "type": [
206 "null",
207 "string"
208 ]
209 }
210 ],
211 "description": "The list of [supported languages](https://docs.microsoft.com/en-us/windows/uwp/globalizing/manage-language-and-region#specify-the-supported-languages-in-the-apps-manifest) that will be listed in the Windows Store.\nThe first entry (index 0) will be the default language.\nDefaults to en-US if omitted."
212 },
213 "makeappxArgs": {
214 "anyOf": [
215 {
216 "items": {
217 "type": "string"
218 },
219 "type": "array"
220 },
221 {
222 "type": "null"
223 }
224 ]
225 },
226 "maxVersionTested": {
227 "default": "arch === Arch.arm64 ? \"10.0.16299.0\" : \"10.0.14316.0\"",
228 "description": "Set the `MaxVersionTested` field in the appx manifest.xml",
229 "type": [
230 "null",
231 "string"
232 ]
233 },
234 "minVersion": {
235 "default": "arch === Arch.arm64 ? \"10.0.16299.0\" : \"10.0.14316.0\"",
236 "description": "Set the MinVersion field in the appx manifest.xml",
237 "type": [
238 "null",
239 "string"
240 ]
241 },
242 "publish": {
243 "anyOf": [
244 {
245 "$ref": "#/definitions/GithubOptions"
246 },
247 {
248 "$ref": "#/definitions/S3Options"
249 },
250 {
251 "$ref": "#/definitions/SpacesOptions"
252 },
253 {
254 "$ref": "#/definitions/GenericServerOptions"
255 },
256 {
257 "$ref": "#/definitions/CustomPublishOptions"
258 },
259 {
260 "$ref": "#/definitions/KeygenOptions"
261 },
262 {
263 "$ref": "#/definitions/SnapStoreOptions"
264 },
265 {
266 "$ref": "#/definitions/BitbucketOptions"
267 },
268 {
269 "items": {
270 "$ref": "#/definitions/AllPublishOptions"
271 },
272 "type": "array"
273 },
274 {
275 "type": [
276 "null",
277 "string"
278 ]
279 }
280 ]
281 },
282 "publisher": {
283 "description": "The Windows Store publisher. Not used if AppX is build for testing. See [AppX Package Code Signing](#appx-package-code-signing) below.",
284 "type": [
285 "null",
286 "string"
287 ]
288 },
289 "publisherDisplayName": {
290 "description": "A friendly name for the publisher that can be displayed to users. Corresponds to [Properties.PublisherDisplayName](https://msdn.microsoft.com/en-us/library/windows/apps/br211460.aspx).\nDefaults to company name from the application metadata.",
291 "type": [
292 "null",
293 "string"
294 ]
295 },
296 "setBuildNumber": {
297 "default": false,
298 "description": "Whether to set build number. See https://github.com/electron-userland/electron-builder/issues/3875",
299 "type": "boolean"
300 },
301 "showNameOnTiles": {
302 "default": false,
303 "description": "Whether to overlay the app's name on top of tile images on the Start screen. Defaults to `false`. (https://docs.microsoft.com/en-us/uwp/schemas/appxpackage/uapmanifestschema/element-uap-shownameontiles) in the dependencies.",
304 "type": "boolean"
305 }
306 },
307 "type": "object"
308 },
309 "ArchType": {
310 "enum": [
311 "arm64",
312 "armv7l",
313 "ia32",
314 "universal",
315 "x64"
316 ],
317 "type": "string"
318 },
319 "AsarOptions": {
320 "additionalProperties": false,
321 "properties": {
322 "ordering": {
323 "type": [
324 "null",
325 "string"
326 ]
327 },
328 "smartUnpack": {
329 "default": true,
330 "description": "Whether to automatically unpack executables files.",
331 "type": "boolean"
332 }
333 },
334 "type": "object"
335 },
336 "BitbucketOptions": {
337 "additionalProperties": false,
338 "description": "Bitbucket options.\nhttps://bitbucket.org/\nDefine `BITBUCKET_TOKEN` environment variable.\n\nFor converting an app password to a usable token, you can utilize this\n```typescript\nconvertAppPassword(owner: string, appPassword: string) {\nconst base64encodedData = Buffer.from(`${owner}:${appPassword.trim()}`).toString(\"base64\")\nreturn `Basic ${base64encodedData}`\n}\n```",
339 "properties": {
340 "channel": {
341 "default": "latest",
342 "description": "The channel.",
343 "type": [
344 "null",
345 "string"
346 ]
347 },
348 "owner": {
349 "description": "Repository owner",
350 "type": "string"
351 },
352 "provider": {
353 "const": "bitbucket",
354 "description": "The provider. Must be `bitbucket`.",
355 "type": "string"
356 },
357 "publishAutoUpdate": {
358 "default": true,
359 "description": "Whether to publish auto update info files.\n\nAuto update relies only on the first provider in the list (you can specify several publishers).\nThus, probably, there`s no need to upload the metadata files for the other configured providers. But by default will be uploaded.",
360 "type": "boolean"
361 },
362 "publisherName": {
363 "anyOf": [
364 {
365 "items": {
366 "type": "string"
367 },
368 "type": "array"
369 },
370 {
371 "type": "null"
372 }
373 ]
374 },
375 "requestHeaders": {
376 "$ref": "#/definitions/OutgoingHttpHeaders",
377 "description": "Any custom request headers"
378 },
379 "slug": {
380 "description": "Repository slug/name",
381 "type": "string"
382 },
383 "timeout": {
384 "default": 120000,
385 "description": "Request timeout in milliseconds. (Default is 2 minutes; O is ignored)",
386 "type": [
387 "null",
388 "number"
389 ]
390 },
391 "token": {
392 "description": "The [app password](https://bitbucket.org/account/settings/app-passwords) to support auto-update from private bitbucket repositories.",
393 "type": [
394 "null",
395 "string"
396 ]
397 },
398 "updaterCacheDirName": {
399 "type": [
400 "null",
401 "string"
402 ]
403 },
404 "username": {
405 "description": "The user name to support auto-update from private bitbucket repositories.",
406 "type": [
407 "null",
408 "string"
409 ]
410 }
411 },
412 "required": [
413 "owner",
414 "provider",
415 "slug"
416 ],
417 "type": "object"
418 },
419 "CustomNsisBinary": {
420 "additionalProperties": false,
421 "properties": {
422 "checksum": {
423 "default": "VKMiizYdmNdJOWpRGz4trl4lD++BvYP2irAXpMilheUP0pc93iKlWAoP843Vlraj8YG19CVn0j+dCo/hURz9+Q==",
424 "type": [
425 "null",
426 "string"
427 ]
428 },
429 "debugLogging": {
430 "description": "Whether or not to enable NSIS logging for debugging.\nNote: Requires a debug-enabled NSIS build.\nelectron-builder's included `makensis` does not natively support debug-enabled NSIS installers currently, you must supply your own via `customNsisBinary?: CustomNsisBinary`\nIn your custom nsis scripts, you can leverage this functionality via `LogSet` and `LogText`",
431 "type": [
432 "null",
433 "boolean"
434 ]
435 },
436 "url": {
437 "default": "https://github.com/electron-userland/electron-builder-binaries/releases/download",
438 "type": [
439 "null",
440 "string"
441 ]
442 },
443 "version": {
444 "default": "3.0.4.1",
445 "type": [
446 "null",
447 "string"
448 ]
449 }
450 },
451 "required": [
452 "url"
453 ],
454 "type": "object"
455 },
456 "CustomPublishOptions": {
457 "additionalProperties": {},
458 "properties": {
459 "provider": {
460 "const": "custom",
461 "description": "The provider. Must be `custom`.",
462 "type": "string"
463 },
464 "publishAutoUpdate": {
465 "default": true,
466 "description": "Whether to publish auto update info files.\n\nAuto update relies only on the first provider in the list (you can specify several publishers).\nThus, probably, there`s no need to upload the metadata files for the other configured providers. But by default will be uploaded.",
467 "type": "boolean"
468 },
469 "publisherName": {
470 "anyOf": [
471 {
472 "items": {
473 "type": "string"
474 },
475 "type": "array"
476 },
477 {
478 "type": "null"
479 }
480 ]
481 },
482 "requestHeaders": {
483 "$ref": "#/definitions/OutgoingHttpHeaders",
484 "description": "Any custom request headers"
485 },
486 "timeout": {
487 "default": 120000,
488 "description": "Request timeout in milliseconds. (Default is 2 minutes; O is ignored)",
489 "type": [
490 "null",
491 "number"
492 ]
493 },
494 "updateProvider": {
495 "description": "The Provider to provide UpdateInfo regarding available updates. Required\nto use custom providers with electron-updater.",
496 "typeof": "function"
497 },
498 "updaterCacheDirName": {
499 "type": [
500 "null",
501 "string"
502 ]
503 }
504 },
505 "required": [
506 "provider"
507 ],
508 "type": "object"
509 },
510 "DebOptions": {
511 "additionalProperties": false,
512 "properties": {
513 "afterInstall": {
514 "type": [
515 "null",
516 "string"
517 ]
518 },
519 "afterRemove": {
520 "type": [
521 "null",
522 "string"
523 ]
524 },
525 "artifactName": {
526 "description": "The [artifact file name template](/configuration/configuration#artifact-file-name-template).",
527 "type": [
528 "null",
529 "string"
530 ]
531 },
532 "category": {
533 "description": "The [application category](https://specifications.freedesktop.org/menu-spec/latest/apa.html#main-category-registry).",
534 "type": [
535 "null",
536 "string"
537 ]
538 },
539 "compression": {
540 "anyOf": [
541 {
542 "enum": [
543 "bzip2",
544 "gz",
545 "lzo",
546 "xz"
547 ],
548 "type": "string"
549 },
550 {
551 "type": "null"
552 }
553 ],
554 "default": "xz",
555 "description": "The compression type."
556 },
557 "depends": {
558 "anyOf": [
559 {
560 "items": {
561 "type": "string"
562 },
563 "type": "array"
564 },
565 {
566 "type": "null"
567 }
568 ],
569 "description": "Package dependencies. Defaults to `[\"gconf2\", \"gconf-service\", \"libnotify4\", \"libappindicator1\", \"libxtst6\", \"libnss3\"]`.\nIf need to support Debian, `libappindicator1` should be removed, it is [deprecated in Debian](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=895037).\nIf need to support KDE, `gconf2` and `gconf-service` should be removed as it's no longer used by GNOME](https://packages.debian.org/bullseye/gconf2)."
570 },
571 "description": {
572 "description": "As [description](/configuration/configuration#Metadata-description) from application package.json, but allows you to specify different for Linux.",
573 "type": [
574 "null",
575 "string"
576 ]
577 },
578 "desktop": {
579 "description": "The [Desktop file](https://developer.gnome.org/documentation/guidelines/maintainer/integrating.html#desktop-files) entries (name to value)."
580 },
581 "executableArgs": {
582 "anyOf": [
583 {
584 "items": {
585 "type": "string"
586 },
587 "type": "array"
588 },
589 {
590 "type": "null"
591 }
592 ],
593 "description": "The executable parameters. Pass to executableName"
594 },
595 "fpm": {
596 "anyOf": [
597 {
598 "items": {
599 "type": "string"
600 },
601 "type": "array"
602 },
603 {
604 "type": "null"
605 }
606 ],
607 "description": "*Advanced only* The [fpm](https://fpm.readthedocs.io/en/latest/cli-reference.html) options.\n\nExample: `[\"--before-install=build/deb-preinstall.sh\", \"--after-upgrade=build/deb-postinstall.sh\"]`"
608 },
609 "icon": {
610 "type": "string"
611 },
612 "maintainer": {
613 "type": [
614 "null",
615 "string"
616 ]
617 },
618 "mimeTypes": {
619 "anyOf": [
620 {
621 "items": {
622 "type": "string"
623 },
624 "type": "array"
625 },
626 {
627 "type": "null"
628 }
629 ],
630 "description": "The mime types in addition to specified in the file associations. Use it if you don't want to register a new mime type, but reuse existing."
631 },
632 "packageCategory": {
633 "description": "The [package category](https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Section).",
634 "type": [
635 "null",
636 "string"
637 ]
638 },
639 "packageName": {
640 "description": "The name of the package.",
641 "type": [
642 "null",
643 "string"
644 ]
645 },
646 "priority": {
647 "description": "The [Priority](https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Priority) attribute.",
648 "type": [
649 "null",
650 "string"
651 ]
652 },
653 "publish": {
654 "anyOf": [
655 {
656 "$ref": "#/definitions/GithubOptions"
657 },
658 {
659 "$ref": "#/definitions/S3Options"
660 },
661 {
662 "$ref": "#/definitions/SpacesOptions"
663 },
664 {
665 "$ref": "#/definitions/GenericServerOptions"
666 },
667 {
668 "$ref": "#/definitions/CustomPublishOptions"
669 },
670 {
671 "$ref": "#/definitions/KeygenOptions"
672 },
673 {
674 "$ref": "#/definitions/SnapStoreOptions"
675 },
676 {
677 "$ref": "#/definitions/BitbucketOptions"
678 },
679 {
680 "items": {
681 "$ref": "#/definitions/AllPublishOptions"
682 },
683 "type": "array"
684 },
685 {
686 "type": [
687 "null",
688 "string"
689 ]
690 }
691 ]
692 },
693 "recommends": {
694 "anyOf": [
695 {
696 "items": {
697 "type": "string"
698 },
699 "type": "array"
700 },
701 {
702 "type": "null"
703 }
704 ],
705 "description": "The [recommended package dependencies](https://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps).."
706 },
707 "synopsis": {
708 "description": "The [short description](https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Description).",
709 "type": [
710 "null",
711 "string"
712 ]
713 },
714 "vendor": {
715 "type": [
716 "null",
717 "string"
718 ]
719 }
720 },
721 "type": "object"
722 },
723 "DmgContent": {
724 "additionalProperties": false,
725 "properties": {
726 "name": {
727 "description": "The name of the file within the DMG. Defaults to basename of `path`.",
728 "type": "string"
729 },
730 "path": {
731 "description": "The path of the file within the DMG.",
732 "type": "string"
733 },
734 "type": {
735 "enum": [
736 "dir",
737 "file",
738 "link"
739 ],
740 "type": "string"
741 },
742 "x": {
743 "description": "The device-independent pixel offset from the left of the window to the **center** of the icon.",
744 "type": "number"
745 },
746 "y": {
747 "description": "The device-independent pixel offset from the top of the window to the **center** of the icon.",
748 "type": "number"
749 }
750 },
751 "required": [
752 "x",
753 "y"
754 ],
755 "type": "object"
756 },
757 "DmgOptions": {
758 "additionalProperties": false,
759 "properties": {
760 "artifactName": {
761 "description": "The [artifact file name template](/configuration/configuration#artifact-file-name-template).",
762 "type": [
763 "null",
764 "string"
765 ]
766 },
767 "background": {
768 "description": "The path to background image (default: `build/background.tiff` or `build/background.png` if exists). The resolution of this file determines the resolution of the installer window.\nIf background is not specified, use `window.size`. Default locations expected background size to be 540x380.",
769 "type": [
770 "null",
771 "string"
772 ]
773 },
774 "backgroundColor": {
775 "description": "The background color (accepts css colors). Defaults to `#ffffff` (white) if no background image.",
776 "type": [
777 "null",
778 "string"
779 ]
780 },
781 "contents": {
782 "description": "The content — to customize icon locations. The x and y coordinates refer to the position of the **center** of the icon (at 1x scale), and do not take the label into account.",
783 "items": {
784 "$ref": "#/definitions/DmgContent"
785 },
786 "type": "array"
787 },
788 "format": {
789 "default": "UDZO",
790 "description": "The disk image format. `ULFO` (lzfse-compressed image (OS X 10.11+ only)).",
791 "enum": [
792 "UDBZ",
793 "UDCO",
794 "UDRO",
795 "UDRW",
796 "UDZO",
797 "ULFO"
798 ],
799 "type": "string"
800 },
801 "icon": {
802 "description": "The path to DMG icon (volume icon), which will be shown when mounted, relative to the [build resources](/configuration/configuration#MetadataDirectories-buildResources) or to the project directory.\nDefaults to the application icon (`build/icon.icns`).",
803 "type": [
804 "null",
805 "string"
806 ]
807 },
808 "iconSize": {
809 "default": 80,
810 "description": "The size of all the icons inside the DMG.",
811 "type": [
812 "null",
813 "number"
814 ]
815 },
816 "iconTextSize": {
817 "default": 12,
818 "description": "The size of all the icon texts inside the DMG.",
819 "type": [
820 "null",
821 "number"
822 ]
823 },
824 "internetEnabled": {
825 "default": false,
826 "description": "Whether to create internet-enabled disk image (when it is downloaded using a browser it will automatically decompress the image, put the application on the desktop, unmount and remove the disk image file).",
827 "type": "boolean"
828 },
829 "publish": {
830 "anyOf": [
831 {
832 "$ref": "#/definitions/GithubOptions"
833 },
834 {
835 "$ref": "#/definitions/S3Options"
836 },
837 {
838 "$ref": "#/definitions/SpacesOptions"
839 },
840 {
841 "$ref": "#/definitions/GenericServerOptions"
842 },
843 {
844 "$ref": "#/definitions/CustomPublishOptions"
845 },
846 {
847 "$ref": "#/definitions/KeygenOptions"
848 },
849 {
850 "$ref": "#/definitions/SnapStoreOptions"
851 },
852 {
853 "$ref": "#/definitions/BitbucketOptions"
854 },
855 {
856 "items": {
857 "$ref": "#/definitions/AllPublishOptions"
858 },
859 "type": "array"
860 },
861 {
862 "type": [
863 "null",
864 "string"
865 ]
866 }
867 ]
868 },
869 "sign": {
870 "default": false,
871 "description": "Whether to sign the DMG or not. Signing is not required and will lead to unwanted errors in combination with notarization requirements.",
872 "type": "boolean"
873 },
874 "title": {
875 "default": "${productName} ${version}",
876 "description": "The title of the produced DMG, which will be shown when mounted (volume name).\n\nMacro `${productName}`, `${version}` and `${name}` are supported.",
877 "type": [
878 "null",
879 "string"
880 ]
881 },
882 "window": {
883 "$ref": "#/definitions/DmgWindow",
884 "description": "The DMG window position and size. With y co-ordinates running from bottom to top.\n\nThe Finder makes sure that the window will be on the user’s display, so if you want your window at the top left of the display you could use `\"x\": 0, \"y\": 100000` as the x, y co-ordinates.\nIt is not to be possible to position the window relative to the [top left](https://github.com/electron-userland/electron-builder/issues/3990#issuecomment-512960957) or relative to the center of the user’s screen."
885 },
886 "writeUpdateInfo": {
887 "default": true,
888 "type": "boolean"
889 }
890 },
891 "type": "object"
892 },
893 "DmgWindow": {
894 "additionalProperties": false,
895 "properties": {
896 "height": {
897 "description": "The height. Defaults to background image height or 380.",
898 "type": "number"
899 },
900 "width": {
901 "description": "The width. Defaults to background image width or 540.",
902 "type": "number"
903 },
904 "x": {
905 "default": 400,
906 "description": "The X position relative to left of the screen.",
907 "type": "number"
908 },
909 "y": {
910 "default": 100,
911 "description": "The Y position relative to bottom of the screen.",
912 "type": "number"
913 }
914 },
915 "type": "object"
916 },
917 "ElectronBrandingOptions": {
918 "additionalProperties": false,
919 "description": "Electron distributables branding options.",
920 "properties": {
921 "productName": {
922 "type": "string"
923 },
924 "projectName": {
925 "type": "string"
926 }
927 },
928 "type": "object"
929 },
930 "ElectronDownloadOptions": {
931 "additionalProperties": false,
932 "properties": {
933 "arch": {
934 "type": "string"
935 },
936 "cache": {
937 "description": "The [cache location](https://github.com/electron-userland/electron-download#cache-location).",
938 "type": [
939 "null",
940 "string"
941 ]
942 },
943 "customDir": {
944 "type": [
945 "null",
946 "string"
947 ]
948 },
949 "customFilename": {
950 "type": [
951 "null",
952 "string"
953 ]
954 },
955 "isVerifyChecksum": {
956 "type": "boolean"
957 },
958 "mirror": {
959 "description": "The mirror.",
960 "type": [
961 "null",
962 "string"
963 ]
964 },
965 "platform": {
966 "enum": [
967 "darwin",
968 "linux",
969 "mas",
970 "win32"
971 ],
972 "type": "string"
973 },
974 "strictSSL": {
975 "type": "boolean"
976 },
977 "version": {
978 "type": "string"
979 }
980 },
981 "type": "object"
982 },
983 "FileAssociation": {
984 "additionalProperties": false,
985 "description": "File associations.\n\nmacOS (corresponds to [CFBundleDocumentTypes](https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-101685)), NSIS, and MSI only.\n\nOn Windows (NSIS) works only if [nsis.perMachine](https://electron.build/configuration/configuration#NsisOptions-perMachine) is set to `true`.",
986 "properties": {
987 "description": {
988 "description": "*windows-only.* The description.",
989 "type": [
990 "null",
991 "string"
992 ]
993 },
994 "ext": {
995 "anyOf": [
996 {
997 "items": {
998 "type": "string"
999 },
1000 "type": "array"
1001 },
1002 {
1003 "type": "string"
1004 }
1005 ],
1006 "description": "The extension (minus the leading period). e.g. `png`."
1007 },
1008 "icon": {
1009 "description": "The path to icon (`.icns` for MacOS and `.ico` for Windows), relative to `build` (build resources directory). Defaults to `${firstExt}.icns`/`${firstExt}.ico` (if several extensions specified, first is used) or to application icon.\n\nNot supported on Linux, file issue if need (default icon will be `x-office-document`). Not supported on MSI.",
1010 "type": [
1011 "null",
1012 "string"
1013 ]
1014 },
1015 "isPackage": {
1016 "description": "*macOS-only* Whether the document is distributed as a bundle. If set to true, the bundle directory is treated as a file. Corresponds to `LSTypeIsPackage`.",
1017 "type": "boolean"
1018 },
1019 "mimeType": {
1020 "description": "*linux-only.* The mime-type.",
1021 "type": [
1022 "null",
1023 "string"
1024 ]
1025 },
1026 "name": {
1027 "description": "The name. e.g. `PNG`. Defaults to `ext`.",
1028 "type": [
1029 "null",
1030 "string"
1031 ]
1032 },
1033 "rank": {
1034 "default": "Default",
1035 "description": "*macOS-only* The app’s rank with respect to the type. The value can be `Owner`, `Default`, `Alternate`, or `None`. Corresponds to `LSHandlerRank`.",
1036 "type": "string"
1037 },
1038 "role": {
1039 "default": "Editor",
1040 "description": "*macOS-only* The app’s role with respect to the type. The value can be `Editor`, `Viewer`, `Shell`, or `None`. Corresponds to `CFBundleTypeRole`.",
1041 "type": "string"
1042 }
1043 },
1044 "required": [
1045 "ext"
1046 ],
1047 "type": "object"
1048 },
1049 "FileSet": {
1050 "additionalProperties": false,
1051 "properties": {
1052 "filter": {
1053 "anyOf": [
1054 {
1055 "items": {
1056 "type": "string"
1057 },
1058 "type": "array"
1059 },
1060 {
1061 "type": "string"
1062 }
1063 ],
1064 "description": "The [glob patterns](/file-patterns)."
1065 },
1066 "from": {
1067 "description": "The source path relative to the project directory.",
1068 "type": "string"
1069 },
1070 "to": {
1071 "description": "The destination path relative to the app's content directory for `extraFiles` and the app's resource directory for `extraResources`.",
1072 "type": "string"
1073 }
1074 },
1075 "type": "object"
1076 },
1077 "FlatpakOptions": {
1078 "additionalProperties": false,
1079 "properties": {
1080 "artifactName": {
1081 "description": "The [artifact file name template](/configuration/configuration#artifact-file-name-template).",
1082 "type": [
1083 "null",
1084 "string"
1085 ]
1086 },
1087 "base": {
1088 "description": "Start with the files from the specified application. This can be used to create applications that extend another application.\nDefaults to [org.electronjs.Electron2.BaseApp](https://github.com/flathub/org.electronjs.Electron2.BaseApp).\n\nSee [flatpak manifest documentation](https://docs.flatpak.org/en/latest/flatpak-builder-command-reference.html#flatpak-manifest).",
1089 "type": "string"
1090 },
1091 "baseVersion": {
1092 "description": "Use this specific version of the application specified in base. Defaults to `20.08`.\n\nSee [flatpak manifest documentation](https://docs.flatpak.org/en/latest/flatpak-builder-command-reference.html#flatpak-manifest).",
1093 "type": "string"
1094 },
1095 "branch": {
1096 "description": "The branch to use when exporting the application. Defaults to `master`.\n\nSee [flatpak manifest documentation](https://docs.flatpak.org/en/latest/flatpak-builder-command-reference.html#flatpak-manifest).",
1097 "type": "string"
1098 },
1099 "category": {
1100 "description": "The [application category](https://specifications.freedesktop.org/menu-spec/latest/apa.html#main-category-registry).",
1101 "type": [
1102 "null",
1103 "string"
1104 ]
1105 },
1106 "description": {
1107 "description": "As [description](/configuration/configuration#Metadata-description) from application package.json, but allows you to specify different for Linux.",
1108 "type": [
1109 "null",
1110 "string"
1111 ]
1112 },
1113 "desktop": {
1114 "description": "The [Desktop file](https://developer.gnome.org/documentation/guidelines/maintainer/integrating.html#desktop-files) entries (name to value)."
1115 },
1116 "executableArgs": {
1117 "anyOf": [
1118 {
1119 "items": {
1120 "type": "string"
1121 },
1122 "type": "array"
1123 },
1124 {
1125 "type": "null"
1126 }
1127 ],
1128 "description": "The executable parameters. Pass to executableName"
1129 },
1130 "files": {
1131 "description": "Files to copy directly into the app. Should be a list of [source, dest] tuples. Source should be a relative/absolute path to a file/directory to copy into the flatpak, and dest should be the path inside the app install prefix (e.g. /share/applications/).\n\nSee [@malept/flatpak-bundler documentation](https://github.com/malept/flatpak-bundler#build-options).",
1132 "items": {
1133 "items": [
1134 {
1135 "type": "string"
1136 },
1137 {
1138 "type": "string"
1139 }
1140 ],
1141 "maxItems": 2,
1142 "minItems": 2,
1143 "type": "array"
1144 },
1145 "type": "array"
1146 },
1147 "finishArgs": {
1148 "description": "An array of arguments passed to the flatpak build-finish command. Defaults to:\n```json\n[\n // Wayland/X11 Rendering\n \"--socket=wayland\",\n \"--socket=x11\",\n \"--share=ipc\",\n // Open GL\n \"--device=dri\",\n // Audio output\n \"--socket=pulseaudio\",\n // Read/write home directory access\n \"--filesystem=home\",\n // Allow communication with network\n \"--share=network\",\n // System notifications with libnotify\n \"--talk-name=org.freedesktop.Notifications\",\n]\n```\n\nSee [flatpak manifest documentation](https://docs.flatpak.org/en/latest/flatpak-builder-command-reference.html#flatpak-manifest).",
1149 "items": {
1150 "type": "string"
1151 },
1152 "type": "array"
1153 },
1154 "license": {
1155 "description": "The path to EULA license file. Defaults to `license.txt` or `eula.txt` (or uppercase variants). Only plain text is supported.",
1156 "type": [
1157 "null",
1158 "string"
1159 ]
1160 },
1161 "mimeTypes": {
1162 "anyOf": [
1163 {
1164 "items": {
1165 "type": "string"
1166 },
1167 "type": "array"
1168 },
1169 {
1170 "type": "null"
1171 }
1172 ],
1173 "description": "The mime types in addition to specified in the file associations. Use it if you don't want to register a new mime type, but reuse existing."
1174 },
1175 "modules": {
1176 "description": "An array of objects specifying the modules to be built in order.\n\nSee [flatpak manifest documentation](https://docs.flatpak.org/en/latest/flatpak-builder-command-reference.html#flatpak-manifest).",
1177 "items": {},
1178 "type": "array"
1179 },
1180 "publish": {
1181 "anyOf": [
1182 {
1183 "$ref": "#/definitions/GithubOptions"
1184 },
1185 {
1186 "$ref": "#/definitions/S3Options"
1187 },
1188 {
1189 "$ref": "#/definitions/SpacesOptions"
1190 },
1191 {
1192 "$ref": "#/definitions/GenericServerOptions"
1193 },
1194 {
1195 "$ref": "#/definitions/CustomPublishOptions"
1196 },
1197 {
1198 "$ref": "#/definitions/KeygenOptions"
1199 },
1200 {
1201 "$ref": "#/definitions/SnapStoreOptions"
1202 },
1203 {
1204 "$ref": "#/definitions/BitbucketOptions"
1205 },
1206 {
1207 "items": {
1208 "$ref": "#/definitions/AllPublishOptions"
1209 },
1210 "type": "array"
1211 },
1212 {
1213 "type": [
1214 "null",
1215 "string"
1216 ]
1217 }
1218 ]
1219 },
1220 "runtime": {
1221 "description": "The name of the runtime that the application uses. Defaults to `org.freedesktop.Platform`.\n\nSee [flatpak manifest documentation](https://docs.flatpak.org/en/latest/flatpak-builder-command-reference.html#flatpak-manifest).",
1222 "type": "string"
1223 },
1224 "runtimeVersion": {
1225 "description": "The version of the runtime that the application uses. Defaults to `20.08`.\n\nSee [flatpak manifest documentation](https://docs.flatpak.org/en/latest/flatpak-builder-command-reference.html#flatpak-manifest).",
1226 "type": "string"
1227 },
1228 "sdk": {
1229 "description": "The name of the development runtime that the application builds with. Defaults to `org.freedesktop.Sdk`.\n\nSee [flatpak manifest documentation](https://docs.flatpak.org/en/latest/flatpak-builder-command-reference.html#flatpak-manifest).",
1230 "type": "string"
1231 },
1232 "symlinks": {
1233 "description": "Symlinks to create in the app files. Should be a list of [target, location] symlink tuples. Target can be either a relative or absolute path inside the app install prefix, and location should be a absolute path inside the prefix to create the symlink at.\n\nSee [@malept/flatpak-bundler documentation](https://github.com/malept/flatpak-bundler#build-options).",
1234 "items": {
1235 "items": [
1236 {
1237 "type": "string"
1238 },
1239 {
1240 "type": "string"
1241 }
1242 ],
1243 "maxItems": 2,
1244 "minItems": 2,
1245 "type": "array"
1246 },
1247 "type": "array"
1248 },
1249 "synopsis": {
1250 "description": "The [short description](https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Description).",
1251 "type": [
1252 "null",
1253 "string"
1254 ]
1255 },
1256 "useWaylandFlags": {
1257 "description": "Whether to enable the Wayland specific flags (`--enable-features=UseOzonePlatform --ozone-platform=wayland`) in the wrapper script. These flags are only available starting with Electron version 12. Defaults to `false`.",
1258 "type": "boolean"
1259 }
1260 },
1261 "type": "object"
1262 },
1263 "GenericServerOptions": {
1264 "additionalProperties": false,
1265 "description": "Generic (any HTTP(S) server) options.\nIn all publish options [File Macros](/file-patterns#file-macros) are supported.",
1266 "properties": {
1267 "channel": {
1268 "default": "latest",
1269 "description": "The channel.",
1270 "type": [
1271 "null",
1272 "string"
1273 ]
1274 },
1275 "provider": {
1276 "const": "generic",
1277 "description": "The provider. Must be `generic`.",
1278 "type": "string"
1279 },
1280 "publishAutoUpdate": {
1281 "default": true,
1282 "description": "Whether to publish auto update info files.\n\nAuto update relies only on the first provider in the list (you can specify several publishers).\nThus, probably, there`s no need to upload the metadata files for the other configured providers. But by default will be uploaded.",
1283 "type": "boolean"
1284 },
1285 "publisherName": {
1286 "anyOf": [
1287 {
1288 "items": {
1289 "type": "string"
1290 },
1291 "type": "array"
1292 },
1293 {
1294 "type": "null"
1295 }
1296 ]
1297 },
1298 "requestHeaders": {
1299 "$ref": "#/definitions/OutgoingHttpHeaders",
1300 "description": "Any custom request headers"
1301 },
1302 "timeout": {
1303 "default": 120000,
1304 "description": "Request timeout in milliseconds. (Default is 2 minutes; O is ignored)",
1305 "type": [
1306 "null",
1307 "number"
1308 ]
1309 },
1310 "updaterCacheDirName": {
1311 "type": [
1312 "null",
1313 "string"
1314 ]
1315 },
1316 "url": {
1317 "description": "The base url. e.g. `https://bucket_name.s3.amazonaws.com`.",
1318 "type": "string"
1319 },
1320 "useMultipleRangeRequest": {
1321 "description": "Whether to use multiple range requests for differential update. Defaults to `true` if `url` doesn't contain `s3.amazonaws.com`.",
1322 "type": "boolean"
1323 }
1324 },
1325 "required": [
1326 "provider",
1327 "url"
1328 ],
1329 "type": "object"
1330 },
1331 "GithubOptions": {
1332 "additionalProperties": false,
1333 "description": "[GitHub](https://help.github.com/articles/about-releases/) options.\n\nGitHub [personal access token](https://help.github.com/articles/creating-an-access-token-for-command-line-use/) is required. You can generate by going to [https://github.com/settings/tokens/new](https://github.com/settings/tokens/new). The access token should have the repo scope/permission.\nDefine `GH_TOKEN` environment variable.",
1334 "properties": {
1335 "channel": {
1336 "default": "latest",
1337 "description": "The channel.",
1338 "type": [
1339 "null",
1340 "string"
1341 ]
1342 },
1343 "host": {
1344 "default": "github.com",
1345 "description": "The host (including the port if need).",
1346 "type": [
1347 "null",
1348 "string"
1349 ]
1350 },
1351 "owner": {
1352 "description": "The owner.",
1353 "type": [
1354 "null",
1355 "string"
1356 ]
1357 },
1358 "private": {
1359 "description": "Whether to use private github auto-update provider if `GH_TOKEN` environment variable is defined. See [Private GitHub Update Repo](/auto-update#private-github-update-repo).",
1360 "type": [
1361 "null",
1362 "boolean"
1363 ]
1364 },
1365 "protocol": {
1366 "anyOf": [
1367 {
1368 "enum": [
1369 "http",
1370 "https"
1371 ],
1372 "type": "string"
1373 },
1374 {
1375 "type": "null"
1376 }
1377 ],
1378 "default": "https",
1379 "description": "The protocol. GitHub Publisher supports only `https`."
1380 },
1381 "provider": {
1382 "const": "github",
1383 "description": "The provider. Must be `github`.",
1384 "type": "string"
1385 },
1386 "publishAutoUpdate": {
1387 "default": true,
1388 "description": "Whether to publish auto update info files.\n\nAuto update relies only on the first provider in the list (you can specify several publishers).\nThus, probably, there`s no need to upload the metadata files for the other configured providers. But by default will be uploaded.",
1389 "type": "boolean"
1390 },
1391 "publisherName": {
1392 "anyOf": [
1393 {
1394 "items": {
1395 "type": "string"
1396 },
1397 "type": "array"
1398 },
1399 {
1400 "type": "null"
1401 }
1402 ]
1403 },
1404 "releaseType": {
1405 "anyOf": [
1406 {
1407 "enum": [
1408 "draft",
1409 "prerelease",
1410 "release"
1411 ],
1412 "type": "string"
1413 },
1414 {
1415 "type": "null"
1416 }
1417 ],
1418 "default": "draft",
1419 "description": "The type of release. By default `draft` release will be created.\n\nAlso you can set release type using environment variable. If `EP_DRAFT`is set to `true` — `draft`, if `EP_PRE_RELEASE`is set to `true` — `prerelease`."
1420 },
1421 "repo": {
1422 "description": "The repository name. [Detected automatically](#github-repository-and-bintray-package).",
1423 "type": [
1424 "null",
1425 "string"
1426 ]
1427 },
1428 "requestHeaders": {
1429 "$ref": "#/definitions/OutgoingHttpHeaders",
1430 "description": "Any custom request headers"
1431 },
1432 "timeout": {
1433 "default": 120000,
1434 "description": "Request timeout in milliseconds. (Default is 2 minutes; O is ignored)",
1435 "type": [
1436 "null",
1437 "number"
1438 ]
1439 },
1440 "token": {
1441 "description": "The access token to support auto-update from private github repositories. Never specify it in the configuration files. Only for [setFeedURL](/auto-update#appupdatersetfeedurloptions).",
1442 "type": [
1443 "null",
1444 "string"
1445 ]
1446 },
1447 "updaterCacheDirName": {
1448 "type": [
1449 "null",
1450 "string"
1451 ]
1452 },
1453 "vPrefixedTagName": {
1454 "default": true,
1455 "description": "Whether to use `v`-prefixed tag name.",
1456 "type": "boolean"
1457 }
1458 },
1459 "required": [
1460 "provider"
1461 ],
1462 "type": "object"
1463 },
1464 "KeygenOptions": {
1465 "additionalProperties": false,
1466 "description": "Keygen options.\nhttps://keygen.sh/\nDefine `KEYGEN_TOKEN` environment variable.",
1467 "properties": {
1468 "account": {
1469 "description": "Keygen account's UUID",
1470 "type": "string"
1471 },
1472 "channel": {
1473 "anyOf": [
1474 {
1475 "enum": [
1476 "alpha",
1477 "beta",
1478 "dev",
1479 "rc",
1480 "stable"
1481 ],
1482 "type": "string"
1483 },
1484 {
1485 "type": "null"
1486 }
1487 ],
1488 "default": "stable",
1489 "description": "The channel."
1490 },
1491 "platform": {
1492 "description": "The target Platform. Is set programmatically explicitly during publishing.",
1493 "type": [
1494 "null",
1495 "string"
1496 ]
1497 },
1498 "product": {
1499 "description": "Keygen product's UUID",
1500 "type": "string"
1501 },
1502 "provider": {
1503 "const": "keygen",
1504 "description": "The provider. Must be `keygen`.",
1505 "type": "string"
1506 },
1507 "publishAutoUpdate": {
1508 "default": true,
1509 "description": "Whether to publish auto update info files.\n\nAuto update relies only on the first provider in the list (you can specify several publishers).\nThus, probably, there`s no need to upload the metadata files for the other configured providers. But by default will be uploaded.",
1510 "type": "boolean"
1511 },
1512 "publisherName": {
1513 "anyOf": [
1514 {
1515 "items": {
1516 "type": "string"
1517 },
1518 "type": "array"
1519 },
1520 {
1521 "type": "null"
1522 }
1523 ]
1524 },
1525 "requestHeaders": {
1526 "$ref": "#/definitions/OutgoingHttpHeaders",
1527 "description": "Any custom request headers"
1528 },
1529 "timeout": {
1530 "default": 120000,
1531 "description": "Request timeout in milliseconds. (Default is 2 minutes; O is ignored)",
1532 "type": [
1533 "null",
1534 "number"
1535 ]
1536 },
1537 "updaterCacheDirName": {
1538 "type": [
1539 "null",
1540 "string"
1541 ]
1542 }
1543 },
1544 "required": [
1545 "account",
1546 "product",
1547 "provider"
1548 ],
1549 "type": "object"
1550 },
1551 "LinuxConfiguration": {
1552 "additionalProperties": false,
1553 "properties": {
1554 "appId": {
1555 "default": "com.electron.${name}",
1556 "description": "The application id. Used as [CFBundleIdentifier](https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-102070) for MacOS and as\n[Application User Model ID](https://msdn.microsoft.com/en-us/library/windows/desktop/dd378459(v=vs.85).aspx) for Windows (NSIS target only, Squirrel.Windows not supported). It is strongly recommended that an explicit ID is set.",
1557 "type": [
1558 "null",
1559 "string"
1560 ]
1561 },
1562 "artifactName": {
1563 "description": "The [artifact file name template](/configuration/configuration#artifact-file-name-template). Defaults to `${productName}-${version}.${ext}` (some target can have other defaults, see corresponding options).",
1564 "type": [
1565 "null",
1566 "string"
1567 ]
1568 },
1569 "asar": {
1570 "anyOf": [
1571 {
1572 "$ref": "#/definitions/AsarOptions"
1573 },
1574 {
1575 "type": [
1576 "null",
1577 "boolean"
1578 ]
1579 }
1580 ],
1581 "default": true,
1582 "description": "Whether to package the application's source code into an archive, using [Electron's archive format](http://electron.atom.io/docs/tutorial/application-packaging/).\n\nNode modules, that must be unpacked, will be detected automatically, you don't need to explicitly set [asarUnpack](#configuration-asarUnpack) - please file an issue if this doesn't work."
1583 },
1584 "asarUnpack": {
1585 "anyOf": [
1586 {
1587 "items": {
1588 "type": "string"
1589 },
1590 "type": "array"
1591 },
1592 {
1593 "type": [
1594 "null",
1595 "string"
1596 ]
1597 }
1598 ],
1599 "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."
1600 },
1601 "category": {
1602 "description": "The [application category](https://specifications.freedesktop.org/menu-spec/latest/apa.html#main-category-registry).",
1603 "type": [
1604 "null",
1605 "string"
1606 ]
1607 },
1608 "compression": {
1609 "anyOf": [
1610 {
1611 "enum": [
1612 "maximum",
1613 "normal",
1614 "store"
1615 ],
1616 "type": "string"
1617 },
1618 {
1619 "type": "null"
1620 }
1621 ],
1622 "default": "normal",
1623 "description": "The compression level. If you want to rapidly test build, `store` can reduce build time significantly. `maximum` doesn't lead to noticeable size difference, but increase build time."
1624 },
1625 "cscKeyPassword": {
1626 "type": [
1627 "null",
1628 "string"
1629 ]
1630 },
1631 "cscLink": {
1632 "type": [
1633 "null",
1634 "string"
1635 ]
1636 },
1637 "defaultArch": {
1638 "type": "string"
1639 },
1640 "description": {
1641 "description": "As [description](/configuration/configuration#Metadata-description) from application package.json, but allows you to specify different for Linux.",
1642 "type": [
1643 "null",
1644 "string"
1645 ]
1646 },
1647 "desktop": {
1648 "description": "The [Desktop file](https://developer.gnome.org/documentation/guidelines/maintainer/integrating.html#desktop-files) entries (name to value)."
1649 },
1650 "detectUpdateChannel": {
1651 "default": true,
1652 "description": "Whether to infer update channel from application version pre-release components. e.g. if version `0.12.1-alpha.1`, channel will be set to `alpha`. Otherwise to `latest`.",
1653 "type": "boolean"
1654 },
1655 "electronLanguages": {
1656 "anyOf": [
1657 {
1658 "items": {
1659 "type": "string"
1660 },
1661 "type": "array"
1662 },
1663 {
1664 "type": "string"
1665 }
1666 ],
1667 "description": "The electron locales to keep. By default, all Electron locales used as-is."
1668 },
1669 "electronUpdaterCompatibility": {
1670 "description": "The [electron-updater compatibility](/auto-update#compatibility) semver range.",
1671 "type": [
1672 "null",
1673 "string"
1674 ]
1675 },
1676 "executableArgs": {
1677 "anyOf": [
1678 {
1679 "items": {
1680 "type": "string"
1681 },
1682 "type": "array"
1683 },
1684 {
1685 "type": "null"
1686 }
1687 ],
1688 "description": "The executable parameters. Pass to executableName"
1689 },
1690 "executableName": {
1691 "description": "The executable name. Defaults to `productName`.",
1692 "type": [
1693 "null",
1694 "string"
1695 ]
1696 },
1697 "extraFiles": {
1698 "anyOf": [
1699 {
1700 "$ref": "#/definitions/FileSet"
1701 },
1702 {
1703 "items": {
1704 "anyOf": [
1705 {
1706 "$ref": "#/definitions/FileSet"
1707 },
1708 {
1709 "type": "string"
1710 }
1711 ]
1712 },
1713 "type": "array"
1714 },
1715 {
1716 "type": [
1717 "null",
1718 "string"
1719 ]
1720 }
1721 ]
1722 },
1723 "extraResources": {
1724 "anyOf": [
1725 {
1726 "$ref": "#/definitions/FileSet"
1727 },
1728 {
1729 "items": {
1730 "anyOf": [
1731 {
1732 "$ref": "#/definitions/FileSet"
1733 },
1734 {
1735 "type": "string"
1736 }
1737 ]
1738 },
1739 "type": "array"
1740 },
1741 {
1742 "type": [
1743 "null",
1744 "string"
1745 ]
1746 }
1747 ]
1748 },
1749 "fileAssociations": {
1750 "anyOf": [
1751 {
1752 "$ref": "#/definitions/FileAssociation"
1753 },
1754 {
1755 "items": {
1756 "$ref": "#/definitions/FileAssociation"
1757 },
1758 "type": "array"
1759 }
1760 ],
1761 "description": "The file associations."
1762 },
1763 "files": {
1764 "anyOf": [
1765 {
1766 "$ref": "#/definitions/FileSet"
1767 },
1768 {
1769 "items": {
1770 "anyOf": [
1771 {
1772 "$ref": "#/definitions/FileSet"
1773 },
1774 {
1775 "type": "string"
1776 }
1777 ]
1778 },
1779 "type": "array"
1780 },
1781 {
1782 "type": [
1783 "null",
1784 "string"
1785 ]
1786 }
1787 ]
1788 },
1789 "forceCodeSigning": {
1790 "description": "Whether to fail if app will be not code signed.",
1791 "type": "boolean"
1792 },
1793 "generateUpdatesFilesForAllChannels": {
1794 "default": false,
1795 "description": "Please see [Building and Releasing using Channels](https://github.com/electron-userland/electron-builder/issues/1182#issuecomment-324947139).",
1796 "type": "boolean"
1797 },
1798 "icon": {
1799 "description": "The path to icon set directory or one png file, relative to the [build resources](/configuration/configuration#MetadataDirectories-buildResources) or to the project directory. The icon filename must contain the size (e.g. 32x32.png) of the icon.\nBy default will be generated automatically based on the macOS icns file.",
1800 "type": "string"
1801 },
1802 "maintainer": {
1803 "description": "The maintainer. Defaults to [author](/configuration/configuration#Metadata-author).",
1804 "type": [
1805 "null",
1806 "string"
1807 ]
1808 },
1809 "mimeTypes": {
1810 "anyOf": [
1811 {
1812 "items": {
1813 "type": "string"
1814 },
1815 "type": "array"
1816 },
1817 {
1818 "type": "null"
1819 }
1820 ],
1821 "description": "The mime types in addition to specified in the file associations. Use it if you don't want to register a new mime type, but reuse existing."
1822 },
1823 "packageCategory": {
1824 "description": "backward compatibility + to allow specify fpm-only category for all possible fpm targets in one place",
1825 "type": [
1826 "null",
1827 "string"
1828 ]
1829 },
1830 "protocols": {
1831 "anyOf": [
1832 {
1833 "$ref": "#/definitions/Protocol"
1834 },
1835 {
1836 "items": {
1837 "$ref": "#/definitions/Protocol"
1838 },
1839 "type": "array"
1840 }
1841 ],
1842 "description": "The URL protocol schemes."
1843 },
1844 "publish": {
1845 "anyOf": [
1846 {
1847 "$ref": "#/definitions/GithubOptions"
1848 },
1849 {
1850 "$ref": "#/definitions/S3Options"
1851 },
1852 {
1853 "$ref": "#/definitions/SpacesOptions"
1854 },
1855 {
1856 "$ref": "#/definitions/GenericServerOptions"
1857 },
1858 {
1859 "$ref": "#/definitions/CustomPublishOptions"
1860 },
1861 {
1862 "$ref": "#/definitions/KeygenOptions"
1863 },
1864 {
1865 "$ref": "#/definitions/SnapStoreOptions"
1866 },
1867 {
1868 "$ref": "#/definitions/BitbucketOptions"
1869 },
1870 {
1871 "items": {
1872 "$ref": "#/definitions/AllPublishOptions"
1873 },
1874 "type": "array"
1875 },
1876 {
1877 "type": [
1878 "null",
1879 "string"
1880 ]
1881 }
1882 ]
1883 },
1884 "releaseInfo": {
1885 "$ref": "#/definitions/ReleaseInfo",
1886 "description": "The release info. Intended for command line usage:\n\n```\n-c.releaseInfo.releaseNotes=\"new features\"\n```"
1887 },
1888 "synopsis": {
1889 "description": "The [short description](https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Description).",
1890 "type": [
1891 "null",
1892 "string"
1893 ]
1894 },
1895 "target": {
1896 "anyOf": [
1897 {
1898 "$ref": "#/definitions/TargetConfiguration"
1899 },
1900 {
1901 "items": {
1902 "anyOf": [
1903 {
1904 "$ref": "#/definitions/TargetConfiguration"
1905 },
1906 {
1907 "type": "string"
1908 }
1909 ]
1910 },
1911 "type": "array"
1912 },
1913 {
1914 "type": [
1915 "null",
1916 "string"
1917 ]
1918 }
1919 ],
1920 "default": "AppImage",
1921 "description": "Target package type: list of `AppImage`, `flatpak`, `snap`, `deb`, `rpm`, `freebsd`, `pacman`, `p5p`, `apk`, `7z`, `zip`, `tar.xz`, `tar.lz`, `tar.gz`, `tar.bz2`, `dir`.\n\nelectron-builder [docker image](/multi-platform-build#docker) can be used to build Linux targets on any platform.\n\nPlease [do not put an AppImage into another archive](https://github.com/probonopd/AppImageKit/wiki/Creating-AppImages#common-mistake) like a .zip or .tar.gz."
1922 },
1923 "vendor": {
1924 "description": "The vendor. Defaults to [author](/configuration/configuration#Metadata-author).",
1925 "type": [
1926 "null",
1927 "string"
1928 ]
1929 }
1930 },
1931 "type": "object"
1932 },
1933 "LinuxTargetSpecificOptions": {
1934 "additionalProperties": false,
1935 "properties": {
1936 "afterInstall": {
1937 "type": [
1938 "null",
1939 "string"
1940 ]
1941 },
1942 "afterRemove": {
1943 "type": [
1944 "null",
1945 "string"
1946 ]
1947 },
1948 "artifactName": {
1949 "description": "The [artifact file name template](/configuration/configuration#artifact-file-name-template).",
1950 "type": [
1951 "null",
1952 "string"
1953 ]
1954 },
1955 "category": {
1956 "description": "The [application category](https://specifications.freedesktop.org/menu-spec/latest/apa.html#main-category-registry).",
1957 "type": [
1958 "null",
1959 "string"
1960 ]
1961 },
1962 "compression": {
1963 "anyOf": [
1964 {
1965 "enum": [
1966 "bzip2",
1967 "gz",
1968 "lzo",
1969 "xz"
1970 ],
1971 "type": "string"
1972 },
1973 {
1974 "type": "null"
1975 }
1976 ],
1977 "default": "xz",
1978 "description": "The compression type."
1979 },
1980 "depends": {
1981 "anyOf": [
1982 {
1983 "items": {
1984 "type": "string"
1985 },
1986 "type": "array"
1987 },
1988 {
1989 "type": "null"
1990 }
1991 ],
1992 "description": "Package dependencies."
1993 },
1994 "description": {
1995 "description": "As [description](/configuration/configuration#Metadata-description) from application package.json, but allows you to specify different for Linux.",
1996 "type": [
1997 "null",
1998 "string"
1999 ]
2000 },
2001 "desktop": {
2002 "description": "The [Desktop file](https://developer.gnome.org/documentation/guidelines/maintainer/integrating.html#desktop-files) entries (name to value)."
2003 },
2004 "executableArgs": {
2005 "anyOf": [
2006 {
2007 "items": {
2008 "type": "string"
2009 },
2010 "type": "array"
2011 },
2012 {
2013 "type": "null"
2014 }
2015 ],
2016 "description": "The executable parameters. Pass to executableName"
2017 },
2018 "fpm": {
2019 "anyOf": [
2020 {
2021 "items": {
2022 "type": "string"
2023 },
2024 "type": "array"
2025 },
2026 {
2027 "type": "null"
2028 }
2029 ],
2030 "description": "*Advanced only* The [fpm](https://fpm.readthedocs.io/en/latest/cli-reference.html) options.\n\nExample: `[\"--before-install=build/deb-preinstall.sh\", \"--after-upgrade=build/deb-postinstall.sh\"]`"
2031 },
2032 "icon": {
2033 "type": "string"
2034 },
2035 "maintainer": {
2036 "type": [
2037 "null",
2038 "string"
2039 ]
2040 },
2041 "mimeTypes": {
2042 "anyOf": [
2043 {
2044 "items": {
2045 "type": "string"
2046 },
2047 "type": "array"
2048 },
2049 {
2050 "type": "null"
2051 }
2052 ],
2053 "description": "The mime types in addition to specified in the file associations. Use it if you don't want to register a new mime type, but reuse existing."
2054 },
2055 "packageCategory": {
2056 "description": "The package category.",
2057 "type": [
2058 "null",
2059 "string"
2060 ]
2061 },
2062 "packageName": {
2063 "description": "The name of the package.",
2064 "type": [
2065 "null",
2066 "string"
2067 ]
2068 },
2069 "publish": {
2070 "anyOf": [
2071 {
2072 "$ref": "#/definitions/GithubOptions"
2073 },
2074 {
2075 "$ref": "#/definitions/S3Options"
2076 },
2077 {
2078 "$ref": "#/definitions/SpacesOptions"
2079 },
2080 {
2081 "$ref": "#/definitions/GenericServerOptions"
2082 },
2083 {
2084 "$ref": "#/definitions/CustomPublishOptions"
2085 },
2086 {
2087 "$ref": "#/definitions/KeygenOptions"
2088 },
2089 {
2090 "$ref": "#/definitions/SnapStoreOptions"
2091 },
2092 {
2093 "$ref": "#/definitions/BitbucketOptions"
2094 },
2095 {
2096 "items": {
2097 "$ref": "#/definitions/AllPublishOptions"
2098 },
2099 "type": "array"
2100 },
2101 {
2102 "type": [
2103 "null",
2104 "string"
2105 ]
2106 }
2107 ]
2108 },
2109 "synopsis": {
2110 "description": "The [short description](https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Description).",
2111 "type": [
2112 "null",
2113 "string"
2114 ]
2115 },
2116 "vendor": {
2117 "type": [
2118 "null",
2119 "string"
2120 ]
2121 }
2122 },
2123 "type": "object"
2124 },
2125 "MacConfiguration": {
2126 "additionalProperties": false,
2127 "properties": {
2128 "appId": {
2129 "default": "com.electron.${name}",
2130 "description": "The application id. Used as [CFBundleIdentifier](https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-102070) for MacOS and as\n[Application User Model ID](https://msdn.microsoft.com/en-us/library/windows/desktop/dd378459(v=vs.85).aspx) for Windows (NSIS target only, Squirrel.Windows not supported). It is strongly recommended that an explicit ID is set.",
2131 "type": [
2132 "null",
2133 "string"
2134 ]
2135 },
2136 "artifactName": {
2137 "description": "The [artifact file name template](/configuration/configuration#artifact-file-name-template). Defaults to `${productName}-${version}.${ext}` (some target can have other defaults, see corresponding options).",
2138 "type": [
2139 "null",
2140 "string"
2141 ]
2142 },
2143 "asar": {
2144 "anyOf": [
2145 {
2146 "$ref": "#/definitions/AsarOptions"
2147 },
2148 {
2149 "type": [
2150 "null",
2151 "boolean"
2152 ]
2153 }
2154 ],
2155 "default": true,
2156 "description": "Whether to package the application's source code into an archive, using [Electron's archive format](http://electron.atom.io/docs/tutorial/application-packaging/).\n\nNode modules, that must be unpacked, will be detected automatically, you don't need to explicitly set [asarUnpack](#configuration-asarUnpack) - please file an issue if this doesn't work."
2157 },
2158 "asarUnpack": {
2159 "anyOf": [
2160 {
2161 "items": {
2162 "type": "string"
2163 },
2164 "type": "array"
2165 },
2166 {
2167 "type": [
2168 "null",
2169 "string"
2170 ]
2171 }
2172 ],
2173 "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."
2174 },
2175 "binaries": {
2176 "anyOf": [
2177 {
2178 "items": {
2179 "type": "string"
2180 },
2181 "type": "array"
2182 },
2183 {
2184 "type": "null"
2185 }
2186 ],
2187 "description": "Paths of any extra binaries that need to be signed."
2188 },
2189 "bundleShortVersion": {
2190 "description": "The `CFBundleShortVersionString`. Do not use it unless you need to.",
2191 "type": [
2192 "null",
2193 "string"
2194 ]
2195 },
2196 "bundleVersion": {
2197 "description": "The `CFBundleVersion`. Do not use it unless [you need to](https://github.com/electron-userland/electron-builder/issues/565#issuecomment-230678643).",
2198 "type": [
2199 "null",
2200 "string"
2201 ]
2202 },
2203 "category": {
2204 "description": "The application category type, as shown in the Finder via *View -> Arrange by Application Category* when viewing the Applications directory.\n\nFor example, `\"category\": \"public.app-category.developer-tools\"` will set the application category to *Developer Tools*.\n\nValid values are listed in [Apple's documentation](https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/LaunchServicesKeys.html#//apple_ref/doc/uid/TP40009250-SW8).",
2205 "type": [
2206 "null",
2207 "string"
2208 ]
2209 },
2210 "compression": {
2211 "anyOf": [
2212 {
2213 "enum": [
2214 "maximum",
2215 "normal",
2216 "store"
2217 ],
2218 "type": "string"
2219 },
2220 {
2221 "type": "null"
2222 }
2223 ],
2224 "default": "normal",
2225 "description": "The compression level. If you want to rapidly test build, `store` can reduce build time significantly. `maximum` doesn't lead to noticeable size difference, but increase build time."
2226 },
2227 "cscInstallerKeyPassword": {
2228 "type": [
2229 "null",
2230 "string"
2231 ]
2232 },
2233 "cscInstallerLink": {
2234 "type": [
2235 "null",
2236 "string"
2237 ]
2238 },
2239 "cscKeyPassword": {
2240 "type": [
2241 "null",
2242 "string"
2243 ]
2244 },
2245 "cscLink": {
2246 "type": [
2247 "null",
2248 "string"
2249 ]
2250 },
2251 "darkModeSupport": {
2252 "default": false,
2253 "description": "Whether a dark mode is supported. If your app does have a dark mode, you can make your app follow the system-wide dark mode setting.",
2254 "type": "boolean"
2255 },
2256 "defaultArch": {
2257 "type": "string"
2258 },
2259 "detectUpdateChannel": {
2260 "default": true,
2261 "description": "Whether to infer update channel from application version pre-release components. e.g. if version `0.12.1-alpha.1`, channel will be set to `alpha`. Otherwise to `latest`.",
2262 "type": "boolean"
2263 },
2264 "electronLanguages": {
2265 "anyOf": [
2266 {
2267 "items": {
2268 "type": "string"
2269 },
2270 "type": "array"
2271 },
2272 {
2273 "type": "string"
2274 }
2275 ],
2276 "description": "The electron locales to keep. By default, all Electron locales used as-is."
2277 },
2278 "electronUpdaterCompatibility": {
2279 "description": "The [electron-updater compatibility](/auto-update#compatibility) semver range.",
2280 "type": [
2281 "null",
2282 "string"
2283 ]
2284 },
2285 "entitlements": {
2286 "description": "The path to entitlements file for signing the app. `build/entitlements.mac.plist` will be used if exists (it is a recommended way to set).\nMAS entitlements is specified in the [mas](/configuration/mas).\nSee [this folder in osx-sign's repository](https://github.com/electron/osx-sign/tree/main/entitlements) for examples.\nBe aware that your app may crash if the right entitlements are not set like `com.apple.security.cs.allow-jit` for example on arm64 builds with Electron 20+.\nSee [Signing and Notarizing macOS Builds from the Electron documentation](https://www.electronjs.org/docs/latest/tutorial/code-signing#signing--notarizing-macos-builds) for more information.",
2287 "type": [
2288 "null",
2289 "string"
2290 ]
2291 },
2292 "entitlementsInherit": {
2293 "description": "The path to child entitlements which inherit the security settings for signing frameworks and bundles of a distribution. `build/entitlements.mac.inherit.plist` will be used if exists (it is a recommended way to set).\nSee [this folder in osx-sign's repository](https://github.com/electron/osx-sign/tree/main/entitlements) for examples.\n\nThis option only applies when signing with `entitlements` provided.",
2294 "type": [
2295 "null",
2296 "string"
2297 ]
2298 },
2299 "entitlementsLoginHelper": {
2300 "description": "Path to login helper entitlement file.\nWhen using App Sandbox, the the `com.apple.security.inherit` key that is normally in the inherited entitlements cannot be inherited since the login helper is a standalone executable.\nDefaults to the value provided for `entitlements`. This option only applies when signing with `entitlements` provided.",
2301 "type": [
2302 "null",
2303 "string"
2304 ]
2305 },
2306 "executableName": {
2307 "description": "The executable name. Defaults to `productName`.",
2308 "type": [
2309 "null",
2310 "string"
2311 ]
2312 },
2313 "extendInfo": {
2314 "description": "The extra entries for `Info.plist`."
2315 },
2316 "extraDistFiles": {
2317 "anyOf": [
2318 {
2319 "items": {
2320 "type": "string"
2321 },
2322 "type": "array"
2323 },
2324 {
2325 "type": [
2326 "null",
2327 "string"
2328 ]
2329 }
2330 ],
2331 "description": "Extra files to put in archive. Not applicable for `tar.*`."
2332 },
2333 "extraFiles": {
2334 "anyOf": [
2335 {
2336 "$ref": "#/definitions/FileSet"
2337 },
2338 {
2339 "items": {
2340 "anyOf": [
2341 {
2342 "$ref": "#/definitions/FileSet"
2343 },
2344 {
2345 "type": "string"
2346 }
2347 ]
2348 },
2349 "type": "array"
2350 },
2351 {
2352 "type": [
2353 "null",
2354 "string"
2355 ]
2356 }
2357 ]
2358 },
2359 "extraResources": {
2360 "anyOf": [
2361 {
2362 "$ref": "#/definitions/FileSet"
2363 },
2364 {
2365 "items": {
2366 "anyOf": [
2367 {
2368 "$ref": "#/definitions/FileSet"
2369 },
2370 {
2371 "type": "string"
2372 }
2373 ]
2374 },
2375 "type": "array"
2376 },
2377 {
2378 "type": [
2379 "null",
2380 "string"
2381 ]
2382 }
2383 ]
2384 },
2385 "fileAssociations": {
2386 "anyOf": [
2387 {
2388 "$ref": "#/definitions/FileAssociation"
2389 },
2390 {
2391 "items": {
2392 "$ref": "#/definitions/FileAssociation"
2393 },
2394 "type": "array"
2395 }
2396 ],
2397 "description": "The file associations."
2398 },
2399 "files": {
2400 "anyOf": [
2401 {
2402 "$ref": "#/definitions/FileSet"
2403 },
2404 {
2405 "items": {
2406 "anyOf": [
2407 {
2408 "$ref": "#/definitions/FileSet"
2409 },
2410 {
2411 "type": "string"
2412 }
2413 ]
2414 },
2415 "type": "array"
2416 },
2417 {
2418 "type": [
2419 "null",
2420 "string"
2421 ]
2422 }
2423 ]
2424 },
2425 "forceCodeSigning": {
2426 "description": "Whether to fail if app will be not code signed.",
2427 "type": "boolean"
2428 },
2429 "gatekeeperAssess": {
2430 "default": false,
2431 "description": "Whether to let `@electron/osx-sign` validate the signing or not.",
2432 "type": "boolean"
2433 },
2434 "generateUpdatesFilesForAllChannels": {
2435 "default": false,
2436 "description": "Please see [Building and Releasing using Channels](https://github.com/electron-userland/electron-builder/issues/1182#issuecomment-324947139).",
2437 "type": "boolean"
2438 },
2439 "hardenedRuntime": {
2440 "default": true,
2441 "description": "Whether your app has to be signed with hardened runtime.",
2442 "type": "boolean"
2443 },
2444 "helperBundleId": {
2445 "default": "${appBundleIdentifier}.helper",
2446 "description": "The bundle identifier to use in the application helper's plist.",
2447 "type": [
2448 "null",
2449 "string"
2450 ]
2451 },
2452 "helperEHBundleId": {
2453 "default": "${appBundleIdentifier}.helper.EH",
2454 "description": "The bundle identifier to use in the EH helper's plist.",
2455 "type": [
2456 "null",
2457 "string"
2458 ]
2459 },
2460 "helperGPUBundleId": {
2461 "default": "${appBundleIdentifier}.helper.GPU",
2462 "description": "The bundle identifier to use in the GPU helper's plist.",
2463 "type": [
2464 "null",
2465 "string"
2466 ]
2467 },
2468 "helperNPBundleId": {
2469 "default": "${appBundleIdentifier}.helper.NP",
2470 "description": "The bundle identifier to use in the NP helper's plist.",
2471 "type": [
2472 "null",
2473 "string"
2474 ]
2475 },
2476 "helperPluginBundleId": {
2477 "default": "${appBundleIdentifier}.helper.Plugin",
2478 "description": "The bundle identifier to use in the Plugin helper's plist.",
2479 "type": [
2480 "null",
2481 "string"
2482 ]
2483 },
2484 "helperRendererBundleId": {
2485 "default": "${appBundleIdentifier}.helper.Renderer",
2486 "description": "The bundle identifier to use in the Renderer helper's plist.",
2487 "type": [
2488 "null",
2489 "string"
2490 ]
2491 },
2492 "icon": {
2493 "default": "build/icon.icns",
2494 "description": "The path to application icon.",
2495 "type": [
2496 "null",
2497 "string"
2498 ]
2499 },
2500 "identity": {
2501 "description": "The name of certificate to use when signing. Consider using environment variables [CSC_LINK or CSC_NAME](/code-signing) instead of specifying this option.\nMAS installer identity is specified in the [mas](/configuration/mas).",
2502 "type": [
2503 "null",
2504 "string"
2505 ]
2506 },
2507 "mergeASARs": {
2508 "default": true,
2509 "description": "Whether to merge ASAR files for different architectures or not.\n\nThis option has no effect unless building for \"universal\" arch.",
2510 "type": "boolean"
2511 },
2512 "minimumSystemVersion": {
2513 "description": "The minimum version of macOS required for the app to run. Corresponds to `LSMinimumSystemVersion`.",
2514 "type": [
2515 "null",
2516 "string"
2517 ]
2518 },
2519 "notarize": {
2520 "anyOf": [
2521 {
2522 "$ref": "#/definitions/NotarizeLegacyOptions"
2523 },
2524 {
2525 "$ref": "#/definitions/NotarizeNotaryOptions"
2526 },
2527 {
2528 "type": [
2529 "null",
2530 "boolean"
2531 ]
2532 }
2533 ],
2534 "description": "Options to use for"
2535 },
2536 "preAutoEntitlements": {
2537 "default": true,
2538 "description": "Whether to enable entitlements automation from `@electron/osx-sign`.",
2539 "type": "boolean"
2540 },
2541 "protocols": {
2542 "anyOf": [
2543 {
2544 "$ref": "#/definitions/Protocol"
2545 },
2546 {
2547 "items": {
2548 "$ref": "#/definitions/Protocol"
2549 },
2550 "type": "array"
2551 }
2552 ],
2553 "description": "The URL protocol schemes."
2554 },
2555 "provisioningProfile": {
2556 "description": "The path to the provisioning profile to use when signing, absolute or relative to the app root.",
2557 "type": [
2558 "null",
2559 "string"
2560 ]
2561 },
2562 "publish": {
2563 "anyOf": [
2564 {
2565 "$ref": "#/definitions/GithubOptions"
2566 },
2567 {
2568 "$ref": "#/definitions/S3Options"
2569 },
2570 {
2571 "$ref": "#/definitions/SpacesOptions"
2572 },
2573 {
2574 "$ref": "#/definitions/GenericServerOptions"
2575 },
2576 {
2577 "$ref": "#/definitions/CustomPublishOptions"
2578 },
2579 {
2580 "$ref": "#/definitions/KeygenOptions"
2581 },
2582 {
2583 "$ref": "#/definitions/SnapStoreOptions"
2584 },
2585 {
2586 "$ref": "#/definitions/BitbucketOptions"
2587 },
2588 {
2589 "items": {
2590 "$ref": "#/definitions/AllPublishOptions"
2591 },
2592 "type": "array"
2593 },
2594 {
2595 "type": [
2596 "null",
2597 "string"
2598 ]
2599 }
2600 ]
2601 },
2602 "releaseInfo": {
2603 "$ref": "#/definitions/ReleaseInfo",
2604 "description": "The release info. Intended for command line usage:\n\n```\n-c.releaseInfo.releaseNotes=\"new features\"\n```"
2605 },
2606 "requirements": {
2607 "description": "Path of [requirements file](https://developer.apple.com/library/mac/documentation/Security/Conceptual/CodeSigningGuide/RequirementLang/RequirementLang.html) used in signing. Not applicable for MAS.",
2608 "type": [
2609 "null",
2610 "string"
2611 ]
2612 },
2613 "sign": {
2614 "anyOf": [
2615 {
2616 "typeof": "function"
2617 },
2618 {
2619 "type": [
2620 "null",
2621 "string"
2622 ]
2623 }
2624 ],
2625 "description": "The custom function (or path to file or module id) to sign an app bundle."
2626 },
2627 "signIgnore": {
2628 "anyOf": [
2629 {
2630 "items": {
2631 "type": "string"
2632 },
2633 "type": "array"
2634 },
2635 {
2636 "type": [
2637 "null",
2638 "string"
2639 ]
2640 }
2641 ],
2642 "description": "Regex or an array of regex's that signal skipping signing a file."
2643 },
2644 "singleArchFiles": {
2645 "description": "Minimatch pattern of paths that are allowed to be present in one of the\nASAR files, but not in the other.\n\nThis option has no effect unless building for \"universal\" arch and applies\nonly if `mergeASARs` is `true`.",
2646 "type": [
2647 "null",
2648 "string"
2649 ]
2650 },
2651 "strictVerify": {
2652 "default": true,
2653 "description": "Whether to let `@electron/osx-sign` verify the contents or not.",
2654 "type": "boolean"
2655 },
2656 "target": {
2657 "anyOf": [
2658 {
2659 "$ref": "#/definitions/TargetConfiguration"
2660 },
2661 {
2662 "items": {
2663 "anyOf": [
2664 {
2665 "$ref": "#/definitions/TargetConfiguration"
2666 },
2667 {
2668 "enum": [
2669 "7z",
2670 "default",
2671 "dir",
2672 "dmg",
2673 "mas",
2674 "mas-dev",
2675 "pkg",
2676 "tar.bz2",
2677 "tar.gz",
2678 "tar.lz",
2679 "tar.xz",
2680 "zip"
2681 ],
2682 "type": "string"
2683 }
2684 ]
2685 },
2686 "type": "array"
2687 },
2688 {
2689 "enum": [
2690 "7z",
2691 "default",
2692 "dir",
2693 "dmg",
2694 "mas",
2695 "mas-dev",
2696 "pkg",
2697 "tar.bz2",
2698 "tar.gz",
2699 "tar.lz",
2700 "tar.xz",
2701 "zip"
2702 ],
2703 "type": "string"
2704 },
2705 {
2706 "type": "null"
2707 }
2708 ],
2709 "description": "The target package type: list of `default`, `dmg`, `mas`, `mas-dev`, `pkg`, `7z`, `zip`, `tar.xz`, `tar.lz`, `tar.gz`, `tar.bz2`, `dir`. Defaults to `default` (`dmg` and `zip` for Squirrel.Mac). Note: Squirrel.Mac auto update mechanism requires both `dmg` and `zip` to be enabled, even when only `dmg` is used. Disabling `zip` will break auto update in `dmg` packages."
2710 },
2711 "timestamp": {
2712 "description": "Specify the URL of the timestamp authority server",
2713 "type": [
2714 "null",
2715 "string"
2716 ]
2717 },
2718 "type": {
2719 "anyOf": [
2720 {
2721 "enum": [
2722 "development",
2723 "distribution"
2724 ],
2725 "type": "string"
2726 },
2727 {
2728 "type": "null"
2729 }
2730 ],
2731 "default": "distribution",
2732 "description": "Whether to sign app for development or for distribution."
2733 },
2734 "x64ArchFiles": {
2735 "description": "Minimatch pattern of paths that are allowed to be x64 binaries in both\nASAR files\n\nThis option has no effect unless building for \"universal\" arch and applies\nonly if `mergeASARs` is `true`.",
2736 "type": [
2737 "null",
2738 "string"
2739 ]
2740 }
2741 },
2742 "type": "object"
2743 },
2744 "MasConfiguration": {
2745 "additionalProperties": false,
2746 "properties": {
2747 "appId": {
2748 "default": "com.electron.${name}",
2749 "description": "The application id. Used as [CFBundleIdentifier](https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-102070) for MacOS and as\n[Application User Model ID](https://msdn.microsoft.com/en-us/library/windows/desktop/dd378459(v=vs.85).aspx) for Windows (NSIS target only, Squirrel.Windows not supported). It is strongly recommended that an explicit ID is set.",
2750 "type": [
2751 "null",
2752 "string"
2753 ]
2754 },
2755 "artifactName": {
2756 "description": "The [artifact file name template](/configuration/configuration#artifact-file-name-template). Defaults to `${productName}-${version}.${ext}` (some target can have other defaults, see corresponding options).",
2757 "type": [
2758 "null",
2759 "string"
2760 ]
2761 },
2762 "asar": {
2763 "anyOf": [
2764 {
2765 "$ref": "#/definitions/AsarOptions"
2766 },
2767 {
2768 "type": [
2769 "null",
2770 "boolean"
2771 ]
2772 }
2773 ],
2774 "default": true,
2775 "description": "Whether to package the application's source code into an archive, using [Electron's archive format](http://electron.atom.io/docs/tutorial/application-packaging/).\n\nNode modules, that must be unpacked, will be detected automatically, you don't need to explicitly set [asarUnpack](#configuration-asarUnpack) - please file an issue if this doesn't work."
2776 },
2777 "asarUnpack": {
2778 "anyOf": [
2779 {
2780 "items": {
2781 "type": "string"
2782 },
2783 "type": "array"
2784 },
2785 {
2786 "type": [
2787 "null",
2788 "string"
2789 ]
2790 }
2791 ],
2792 "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."
2793 },
2794 "binaries": {
2795 "anyOf": [
2796 {
2797 "items": {
2798 "type": "string"
2799 },
2800 "type": "array"
2801 },
2802 {
2803 "type": "null"
2804 }
2805 ],
2806 "description": "Paths of any extra binaries that need to be signed."
2807 },
2808 "bundleShortVersion": {
2809 "description": "The `CFBundleShortVersionString`. Do not use it unless you need to.",
2810 "type": [
2811 "null",
2812 "string"
2813 ]
2814 },
2815 "bundleVersion": {
2816 "description": "The `CFBundleVersion`. Do not use it unless [you need to](https://github.com/electron-userland/electron-builder/issues/565#issuecomment-230678643).",
2817 "type": [
2818 "null",
2819 "string"
2820 ]
2821 },
2822 "category": {
2823 "description": "The application category type, as shown in the Finder via *View -> Arrange by Application Category* when viewing the Applications directory.\n\nFor example, `\"category\": \"public.app-category.developer-tools\"` will set the application category to *Developer Tools*.\n\nValid values are listed in [Apple's documentation](https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/LaunchServicesKeys.html#//apple_ref/doc/uid/TP40009250-SW8).",
2824 "type": [
2825 "null",
2826 "string"
2827 ]
2828 },
2829 "compression": {
2830 "anyOf": [
2831 {
2832 "enum": [
2833 "maximum",
2834 "normal",
2835 "store"
2836 ],
2837 "type": "string"
2838 },
2839 {
2840 "type": "null"
2841 }
2842 ],
2843 "default": "normal",
2844 "description": "The compression level. If you want to rapidly test build, `store` can reduce build time significantly. `maximum` doesn't lead to noticeable size difference, but increase build time."
2845 },
2846 "cscInstallerKeyPassword": {
2847 "type": [
2848 "null",
2849 "string"
2850 ]
2851 },
2852 "cscInstallerLink": {
2853 "type": [
2854 "null",
2855 "string"
2856 ]
2857 },
2858 "cscKeyPassword": {
2859 "type": [
2860 "null",
2861 "string"
2862 ]
2863 },
2864 "cscLink": {
2865 "type": [
2866 "null",
2867 "string"
2868 ]
2869 },
2870 "darkModeSupport": {
2871 "default": false,
2872 "description": "Whether a dark mode is supported. If your app does have a dark mode, you can make your app follow the system-wide dark mode setting.",
2873 "type": "boolean"
2874 },
2875 "defaultArch": {
2876 "type": "string"
2877 },
2878 "detectUpdateChannel": {
2879 "default": true,
2880 "description": "Whether to infer update channel from application version pre-release components. e.g. if version `0.12.1-alpha.1`, channel will be set to `alpha`. Otherwise to `latest`.",
2881 "type": "boolean"
2882 },
2883 "electronLanguages": {
2884 "anyOf": [
2885 {
2886 "items": {
2887 "type": "string"
2888 },
2889 "type": "array"
2890 },
2891 {
2892 "type": "string"
2893 }
2894 ],
2895 "description": "The electron locales to keep. By default, all Electron locales used as-is."
2896 },
2897 "electronUpdaterCompatibility": {
2898 "description": "The [electron-updater compatibility](/auto-update#compatibility) semver range.",
2899 "type": [
2900 "null",
2901 "string"
2902 ]
2903 },
2904 "entitlements": {
2905 "description": "The path to entitlements file for signing the app. `build/entitlements.mas.plist` will be used if exists (it is a recommended way to set).\nSee [this folder in osx-sign's repository](https://github.com/electron/osx-sign/tree/main/entitlements) for examples.\nBe aware that your app may crash if the right entitlements are not set like `com.apple.security.cs.allow-jit` for example on arm64 builds with Electron 20+.\nSee [Signing and Notarizing macOS Builds from the Electron documentation](https://www.electronjs.org/docs/latest/tutorial/code-signing#signing--notarizing-macos-builds) for more information.",
2906 "type": [
2907 "null",
2908 "string"
2909 ]
2910 },
2911 "entitlementsInherit": {
2912 "description": "The path to child entitlements which inherit the security settings for signing frameworks and bundles of a distribution. `build/entitlements.mas.inherit.plist` will be used if exists (it is a recommended way to set).\nSee [this folder in osx-sign's repository](https://github.com/electron/osx-sign/tree/main/entitlements) for examples.",
2913 "type": [
2914 "null",
2915 "string"
2916 ]
2917 },
2918 "entitlementsLoginHelper": {
2919 "description": "Path to login helper entitlement file.\nWhen using App Sandbox, the the `com.apple.security.inherit` key that is normally in the inherited entitlements cannot be inherited since the login helper is a standalone executable.\nDefaults to the value provided for `entitlements`. This option only applies when signing with `entitlements` provided.",
2920 "type": [
2921 "null",
2922 "string"
2923 ]
2924 },
2925 "executableName": {
2926 "description": "The executable name. Defaults to `productName`.",
2927 "type": [
2928 "null",
2929 "string"
2930 ]
2931 },
2932 "extendInfo": {
2933 "description": "The extra entries for `Info.plist`."
2934 },
2935 "extraDistFiles": {
2936 "anyOf": [
2937 {
2938 "items": {
2939 "type": "string"
2940 },
2941 "type": "array"
2942 },
2943 {
2944 "type": [
2945 "null",
2946 "string"
2947 ]
2948 }
2949 ],
2950 "description": "Extra files to put in archive. Not applicable for `tar.*`."
2951 },
2952 "extraFiles": {
2953 "anyOf": [
2954 {
2955 "$ref": "#/definitions/FileSet"
2956 },
2957 {
2958 "items": {
2959 "anyOf": [
2960 {
2961 "$ref": "#/definitions/FileSet"
2962 },
2963 {
2964 "type": "string"
2965 }
2966 ]
2967 },
2968 "type": "array"
2969 },
2970 {
2971 "type": [
2972 "null",
2973 "string"
2974 ]
2975 }
2976 ]
2977 },
2978 "extraResources": {
2979 "anyOf": [
2980 {
2981 "$ref": "#/definitions/FileSet"
2982 },
2983 {
2984 "items": {
2985 "anyOf": [
2986 {
2987 "$ref": "#/definitions/FileSet"
2988 },
2989 {
2990 "type": "string"
2991 }
2992 ]
2993 },
2994 "type": "array"
2995 },
2996 {
2997 "type": [
2998 "null",
2999 "string"
3000 ]
3001 }
3002 ]
3003 },
3004 "fileAssociations": {
3005 "anyOf": [
3006 {
3007 "$ref": "#/definitions/FileAssociation"
3008 },
3009 {
3010 "items": {
3011 "$ref": "#/definitions/FileAssociation"
3012 },
3013 "type": "array"
3014 }
3015 ],
3016 "description": "The file associations."
3017 },
3018 "files": {
3019 "anyOf": [
3020 {
3021 "$ref": "#/definitions/FileSet"
3022 },
3023 {
3024 "items": {
3025 "anyOf": [
3026 {
3027 "$ref": "#/definitions/FileSet"
3028 },
3029 {
3030 "type": "string"
3031 }
3032 ]
3033 },
3034 "type": "array"
3035 },
3036 {
3037 "type": [
3038 "null",
3039 "string"
3040 ]
3041 }
3042 ]
3043 },
3044