UNPKG

app-builder-lib

Version:
1,359 lines 266 kB
{ "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "definitions": { "AllPublishOptions": { "anyOf": [ { "$ref": "#/definitions/GithubOptions" }, { "$ref": "#/definitions/S3Options" }, { "$ref": "#/definitions/SpacesOptions" }, { "$ref": "#/definitions/GenericServerOptions" }, { "$ref": "#/definitions/CustomPublishOptions" }, { "$ref": "#/definitions/KeygenOptions" }, { "$ref": "#/definitions/SnapStoreOptions" }, { "$ref": "#/definitions/BitbucketOptions" }, { "type": "string" } ] }, "AppImageOptions": { "additionalProperties": false, "properties": { "artifactName": { "description": "The [artifact file name template](./configuration.md#artifact-file-name-template).", "type": [ "null", "string" ] }, "category": { "description": "The [application category](https://specifications.freedesktop.org/menu-spec/latest/apa.html#main-category-registry).", "type": [ "null", "string" ] }, "description": { "description": "As [description](./configuration.md#description) from application package.json, but allows you to specify different for Linux.", "type": [ "null", "string" ] }, "desktop": { "anyOf": [ { "$ref": "#/definitions/LinuxDesktopFile" }, { "type": "null" } ], "description": "The [Desktop file](https://developer.gnome.org/documentation/guidelines/maintainer/integrating.html#desktop-files)" }, "executableArgs": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "description": "The executable parameters. Pass to executableName" }, "license": { "description": "The path to EULA license file. Defaults to `license.txt` or `eula.txt` (or uppercase variants). Only plain text is supported.", "type": [ "null", "string" ] }, "mimeTypes": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "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." }, "publish": { "anyOf": [ { "$ref": "#/definitions/GithubOptions" }, { "$ref": "#/definitions/S3Options" }, { "$ref": "#/definitions/SpacesOptions" }, { "$ref": "#/definitions/GenericServerOptions" }, { "$ref": "#/definitions/CustomPublishOptions" }, { "$ref": "#/definitions/KeygenOptions" }, { "$ref": "#/definitions/SnapStoreOptions" }, { "$ref": "#/definitions/BitbucketOptions" }, { "items": { "$ref": "#/definitions/AllPublishOptions" }, "type": "array" }, { "type": [ "null", "string" ] } ] }, "synopsis": { "description": "The [short description](https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Description).", "type": [ "null", "string" ] } }, "type": "object" }, "AppXOptions": { "additionalProperties": false, "properties": { "addAutoLaunchExtension": { "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.", "type": "boolean" }, "applicationId": { "description": "The application id. Defaults to `identityName`. This string contains alpha-numeric fields separated by periods. Each field must begin with an ASCII alphabetic character.", "type": "string" }, "artifactName": { "description": "The [artifact file name template](./configuration.md#artifact-file-name-template).", "type": [ "null", "string" ] }, "backgroundColor": { "default": "#464646", "description": "The background color of the app tile. See [Visual Elements](https://msdn.microsoft.com/en-us/library/windows/apps/br211471.aspx).", "type": [ "null", "string" ] }, "customExtensionsPath": { "description": "Relative path to custom extensions xml to be included in an `appmanifest.xml`.", "type": "string" }, "customManifestPath": { "description": "(Advanced Option) Relative path to custom `appmanifest.xml` (file name doesn't matter, it'll be renamed) located in build resources directory.\nSupports the following template macros:\n\n- ${publisher}\n- ${publisherDisplayName}\n- ${version}\n- ${applicationId}\n- ${identityName}\n- ${executable}\n- ${displayName}\n- ${description}\n- ${backgroundColor}\n- ${logo}\n- ${square150x150Logo}\n- ${square44x44Logo}\n- ${lockScreen}\n- ${defaultTile}\n- ${splashScreen}\n- ${arch}\n- ${resourceLanguages}\n- ${extensions}\n- ${minVersion}\n- ${maxVersionTested}", "type": "string" }, "displayName": { "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.", "type": [ "null", "string" ] }, "electronUpdaterAware": { "default": false, "type": "boolean" }, "identityName": { "description": "The name. Corresponds to [Identity.Name](https://msdn.microsoft.com/en-us/library/windows/apps/br211441.aspx). Defaults to the [application name](./configuration.md#metadata).", "type": [ "null", "string" ] }, "languages": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": [ "null", "string" ] } ], "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." }, "makeappxArgs": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ] }, "maxVersionTested": { "default": "arch === Arch.arm64 ? \"10.0.16299.0\" : \"10.0.14316.0\"", "description": "Set the `MaxVersionTested` field in the appx manifest.xml", "type": [ "null", "string" ] }, "minVersion": { "default": "arch === Arch.arm64 ? \"10.0.16299.0\" : \"10.0.14316.0\"", "description": "Set the MinVersion field in the appx manifest.xml", "type": [ "null", "string" ] }, "publish": { "anyOf": [ { "$ref": "#/definitions/GithubOptions" }, { "$ref": "#/definitions/S3Options" }, { "$ref": "#/definitions/SpacesOptions" }, { "$ref": "#/definitions/GenericServerOptions" }, { "$ref": "#/definitions/CustomPublishOptions" }, { "$ref": "#/definitions/KeygenOptions" }, { "$ref": "#/definitions/SnapStoreOptions" }, { "$ref": "#/definitions/BitbucketOptions" }, { "items": { "$ref": "#/definitions/AllPublishOptions" }, "type": "array" }, { "type": [ "null", "string" ] } ] }, "publisher": { "description": "The Windows Store publisher. Not used if AppX is build for testing. See [AppX Package Code Signing](#appx-package-code-signing) below.", "type": [ "null", "string" ] }, "publisherDisplayName": { "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.", "type": [ "null", "string" ] }, "setBuildNumber": { "default": false, "description": "Whether to set build number. See https://github.com/electron-userland/electron-builder/issues/3875", "type": "boolean" }, "showNameOnTiles": { "default": false, "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.", "type": "boolean" } }, "type": "object" }, "ArchType": { "enum": [ "arm64", "armv7l", "ia32", "universal", "x64" ], "type": "string" }, "AsarOptions": { "additionalProperties": false, "properties": { "ordering": { "type": [ "null", "string" ] }, "smartUnpack": { "default": true, "description": "Whether to automatically unpack executables files.", "type": "boolean" } }, "type": "object" }, "BitbucketOptions": { "additionalProperties": false, "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```", "properties": { "channel": { "default": "latest", "description": "The channel.", "type": [ "null", "string" ] }, "owner": { "description": "Repository owner", "type": "string" }, "provider": { "const": "bitbucket", "description": "The provider. Must be `bitbucket`.", "type": "string" }, "publishAutoUpdate": { "default": true, "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.", "type": "boolean" }, "publisherName": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ] }, "requestHeaders": { "$ref": "#/definitions/OutgoingHttpHeaders", "description": "Any custom request headers" }, "slug": { "description": "Repository slug/name", "type": "string" }, "timeout": { "default": 120000, "description": "Request timeout in milliseconds. (Default is 2 minutes; O is ignored)", "type": [ "null", "number" ] }, "token": { "description": "The [app password](https://bitbucket.org/account/settings/app-passwords) to support auto-update from private bitbucket repositories.", "type": [ "null", "string" ] }, "updaterCacheDirName": { "type": [ "null", "string" ] }, "username": { "description": "The user name to support auto-update from private bitbucket repositories.", "type": [ "null", "string" ] } }, "required": [ "owner", "provider", "slug" ], "type": "object" }, "CustomNsisBinary": { "additionalProperties": false, "properties": { "checksum": { "default": "VKMiizYdmNdJOWpRGz4trl4lD++BvYP2irAXpMilheUP0pc93iKlWAoP843Vlraj8YG19CVn0j+dCo/hURz9+Q==", "type": [ "null", "string" ] }, "debugLogging": { "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`", "type": [ "null", "boolean" ] }, "url": { "default": "https://github.com/electron-userland/electron-builder-binaries/releases/download", "type": [ "null", "string" ] }, "version": { "default": "3.0.4.1", "type": [ "null", "string" ] } }, "required": [ "url" ], "type": "object" }, "CustomPublishOptions": { "additionalProperties": {}, "properties": { "provider": { "const": "custom", "description": "The provider. Must be `custom`.", "type": "string" }, "publishAutoUpdate": { "default": true, "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.", "type": "boolean" }, "publisherName": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ] }, "requestHeaders": { "$ref": "#/definitions/OutgoingHttpHeaders", "description": "Any custom request headers" }, "timeout": { "default": 120000, "description": "Request timeout in milliseconds. (Default is 2 minutes; O is ignored)", "type": [ "null", "number" ] }, "updateProvider": { "description": "The Provider to provide UpdateInfo regarding available updates. Required\nto use custom providers with electron-updater.", "typeof": "function" }, "updaterCacheDirName": { "type": [ "null", "string" ] } }, "required": [ "provider" ], "type": "object" }, "DebOptions": { "additionalProperties": false, "properties": { "afterInstall": { "description": "File path to script to be passed to FPM for `--after-install` arg.", "type": [ "null", "string" ] }, "afterRemove": { "description": "File path to script to be passed to FPM for `--after-remove` arg.", "type": [ "null", "string" ] }, "appArmorProfile": { "description": "File path to custom AppArmor profile (Ubuntu 24+)", "type": [ "null", "string" ] }, "artifactName": { "description": "The [artifact file name template](./configuration.md#artifact-file-name-template).", "type": [ "null", "string" ] }, "category": { "description": "The [application category](https://specifications.freedesktop.org/menu-spec/latest/apa.html#main-category-registry).", "type": [ "null", "string" ] }, "compression": { "anyOf": [ { "enum": [ "bzip2", "gz", "lzo", "xz" ], "type": "string" }, { "type": "null" } ], "default": "xz", "description": "The compression type." }, "depends": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": [ "libgtk-3-0", "libnotify4", "libnss3", "libxss1", "libxtst6", "xdg-utils", "libatspi2.0-0", "libuuid1", "libsecret-1-0" ], "description": "Package dependencies.\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)." }, "description": { "description": "As [description](./configuration.md#description) from application package.json, but allows you to specify different for Linux.", "type": [ "null", "string" ] }, "desktop": { "anyOf": [ { "$ref": "#/definitions/LinuxDesktopFile" }, { "type": "null" } ], "description": "The [Desktop file](https://developer.gnome.org/documentation/guidelines/maintainer/integrating.html#desktop-files)" }, "executableArgs": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "description": "The executable parameters. Pass to executableName" }, "fpm": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "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\"]`" }, "icon": { "type": "string" }, "maintainer": { "type": [ "null", "string" ] }, "mimeTypes": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "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." }, "packageCategory": { "description": "The [package category](https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Section).", "type": [ "null", "string" ] }, "packageName": { "description": "The name of the package.", "type": [ "null", "string" ] }, "priority": { "description": "The [Priority](https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Priority) attribute.", "type": [ "null", "string" ] }, "publish": { "anyOf": [ { "$ref": "#/definitions/GithubOptions" }, { "$ref": "#/definitions/S3Options" }, { "$ref": "#/definitions/SpacesOptions" }, { "$ref": "#/definitions/GenericServerOptions" }, { "$ref": "#/definitions/CustomPublishOptions" }, { "$ref": "#/definitions/KeygenOptions" }, { "$ref": "#/definitions/SnapStoreOptions" }, { "$ref": "#/definitions/BitbucketOptions" }, { "items": { "$ref": "#/definitions/AllPublishOptions" }, "type": "array" }, { "type": [ "null", "string" ] } ] }, "recommends": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": [ "libappindicator3-1" ], "description": "The [recommended package dependencies](https://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps)." }, "synopsis": { "description": "The [short description](https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Description).", "type": [ "null", "string" ] }, "vendor": { "type": [ "null", "string" ] } }, "type": "object" }, "DmgContent": { "additionalProperties": false, "properties": { "name": { "description": "The name of the file within the DMG. Defaults to basename of `path`.", "type": "string" }, "path": { "description": "The path of the file within the DMG.", "type": "string" }, "type": { "enum": [ "dir", "file", "link" ], "type": "string" }, "x": { "description": "The device-independent pixel offset from the left of the window to the **center** of the icon.", "type": "number" }, "y": { "description": "The device-independent pixel offset from the top of the window to the **center** of the icon.", "type": "number" } }, "required": [ "x", "y" ], "type": "object" }, "DmgOptions": { "additionalProperties": false, "properties": { "artifactName": { "description": "The [artifact file name template](./configuration.md#artifact-file-name-template).", "type": [ "null", "string" ] }, "background": { "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.", "type": [ "null", "string" ] }, "backgroundColor": { "description": "The background color (accepts css colors). Defaults to `#ffffff` (white) if no background image.", "type": [ "null", "string" ] }, "contents": { "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.", "items": { "$ref": "#/definitions/DmgContent" }, "type": "array" }, "format": { "default": "UDZO", "description": "The disk image format. `ULFO` (lzfse-compressed image (OS X 10.11+ only)).", "enum": [ "UDBZ", "UDCO", "UDRO", "UDRW", "UDZO", "ULFO" ], "type": "string" }, "icon": { "description": "The path to DMG icon (volume icon), which will be shown when mounted, relative to the [build resources](./contents.md#extraresources) or to the project directory.\nDefaults to the application icon (`build/icon.icns`).", "type": [ "null", "string" ] }, "iconSize": { "default": 80, "description": "The size of all the icons inside the DMG.", "type": [ "null", "number" ] }, "iconTextSize": { "default": 12, "description": "The size of all the icon texts inside the DMG.", "type": [ "null", "number" ] }, "internetEnabled": { "default": false, "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).", "type": "boolean" }, "publish": { "anyOf": [ { "$ref": "#/definitions/GithubOptions" }, { "$ref": "#/definitions/S3Options" }, { "$ref": "#/definitions/SpacesOptions" }, { "$ref": "#/definitions/GenericServerOptions" }, { "$ref": "#/definitions/CustomPublishOptions" }, { "$ref": "#/definitions/KeygenOptions" }, { "$ref": "#/definitions/SnapStoreOptions" }, { "$ref": "#/definitions/BitbucketOptions" }, { "items": { "$ref": "#/definitions/AllPublishOptions" }, "type": "array" }, { "type": [ "null", "string" ] } ] }, "sign": { "default": false, "description": "Whether to sign the DMG or not. Signing is not required and will lead to unwanted errors in combination with notarization requirements.", "type": "boolean" }, "title": { "default": "${productName} ${version}", "description": "The title of the produced DMG, which will be shown when mounted (volume name).\n\nMacro `${productName}`, `${version}` and `${name}` are supported.", "type": [ "null", "string" ] }, "window": { "$ref": "#/definitions/DmgWindow", "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." }, "writeUpdateInfo": { "default": true, "type": "boolean" } }, "type": "object" }, "DmgWindow": { "additionalProperties": false, "properties": { "height": { "description": "The height. Defaults to background image height or 380.", "type": "number" }, "width": { "description": "The width. Defaults to background image width or 540.", "type": "number" }, "x": { "default": 400, "description": "The X position relative to left of the screen.", "type": "number" }, "y": { "default": 100, "description": "The Y position relative to bottom of the screen.", "type": "number" } }, "type": "object" }, "ElectronBrandingOptions": { "additionalProperties": false, "description": "Electron distributables branding options.", "properties": { "productName": { "type": "string" }, "projectName": { "type": "string" } }, "type": "object" }, "ElectronDownloadOptions": { "additionalProperties": false, "properties": { "arch": { "type": "string" }, "cache": { "description": "The [cache location](https://github.com/electron-userland/electron-download#cache-location).", "type": [ "null", "string" ] }, "customDir": { "type": [ "null", "string" ] }, "customFilename": { "type": [ "null", "string" ] }, "isVerifyChecksum": { "type": "boolean" }, "mirror": { "description": "The mirror.", "type": [ "null", "string" ] }, "platform": { "enum": [ "darwin", "linux", "mas", "win32" ], "type": "string" }, "strictSSL": { "type": "boolean" }, "version": { "type": "string" } }, "type": "object" }, "FileAssociation": { "additionalProperties": false, "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://www.electron.build/nsis) is set to `true`.", "properties": { "description": { "description": "*windows-only.* The description.", "type": [ "null", "string" ] }, "ext": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "string" } ], "description": "The extension (minus the leading period). e.g. `png`." }, "icon": { "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.", "type": [ "null", "string" ] }, "isPackage": { "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`.", "type": "boolean" }, "mimeType": { "description": "*linux-only.* The mime-type.", "type": [ "null", "string" ] }, "name": { "description": "The name. e.g. `PNG`. Defaults to `ext`.", "type": [ "null", "string" ] }, "rank": { "default": "Default", "description": "*macOS-only* The app’s rank with respect to the type. The value can be `Owner`, `Default`, `Alternate`, or `None`. Corresponds to `LSHandlerRank`.", "type": "string" }, "role": { "default": "Editor", "description": "*macOS-only* The app’s role with respect to the type. The value can be `Editor`, `Viewer`, `Shell`, or `None`. Corresponds to `CFBundleTypeRole`.", "type": "string" } }, "required": [ "ext" ], "type": "object" }, "FileSet": { "additionalProperties": false, "properties": { "filter": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "string" } ], "description": "The [glob patterns](./file-patterns.md). Defaults to \"**\\/*\"" }, "from": { "description": "The source path relative to and defaults to:\n\n - the [app directory](configuration.md#directories) for `files`,\n - the project directory for `extraResources` and `extraFiles`.\nIf you don't use two-package.json structure and don't set custom app directory, app directory equals to project directory.", "type": "string" }, "to": { "description": "The destination path relative to and defaults to:\n\n - the asar archive root for `files`,\n - the app's content directory for `extraFiles`,\n - the app's resource directory for `extraResources`.", "type": "string" } }, "type": "object" }, "FlatpakOptions": { "additionalProperties": false, "properties": { "artifactName": { "description": "The [artifact file name template](./configuration.md#artifact-file-name-template).", "type": [ "null", "string" ] }, "base": { "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).", "type": "string" }, "baseVersion": { "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).", "type": "string" }, "branch": { "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).", "type": "string" }, "category": { "description": "The [application category](https://specifications.freedesktop.org/menu-spec/latest/apa.html#main-category-registry).", "type": [ "null", "string" ] }, "description": { "description": "As [description](./configuration.md#description) from application package.json, but allows you to specify different for Linux.", "type": [ "null", "string" ] }, "desktop": { "anyOf": [ { "$ref": "#/definitions/LinuxDesktopFile" }, { "type": "null" } ], "description": "The [Desktop file](https://developer.gnome.org/documentation/guidelines/maintainer/integrating.html#desktop-files)" }, "executableArgs": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "description": "The executable parameters. Pass to executableName" }, "files": { "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).", "items": { "items": [ { "type": "string" }, { "type": "string" } ], "maxItems": 2, "minItems": 2, "type": "array" }, "type": "array" }, "finishArgs": { "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).", "items": { "type": "string" }, "type": "array" }, "license": { "description": "The path to EULA license file. Defaults to `license.txt` or `eula.txt` (or uppercase variants). Only plain text is supported.", "type": [ "null", "string" ] }, "mimeTypes": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "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." }, "modules": { "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).", "items": {}, "type": "array" }, "publish": { "anyOf": [ { "$ref": "#/definitions/GithubOptions" }, { "$ref": "#/definitions/S3Options" }, { "$ref": "#/definitions/SpacesOptions" }, { "$ref": "#/definitions/GenericServerOptions" }, { "$ref": "#/definitions/CustomPublishOptions" }, { "$ref": "#/definitions/KeygenOptions" }, { "$ref": "#/definitions/SnapStoreOptions" }, { "$ref": "#/definitions/BitbucketOptions" }, { "items": { "$ref": "#/definitions/AllPublishOptions" }, "type": "array" }, { "type": [ "null", "string" ] } ] }, "runtime": { "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).", "type": "string" }, "runtimeVersion": { "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).", "type": "string" }, "sdk": { "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).", "type": "string" }, "symlinks": { "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).", "items": { "items": [ { "type": "string" }, { "type": "string" } ], "maxItems": 2, "minItems": 2, "type": "array" }, "type": "array" }, "synopsis": { "description": "The [short description](https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Description).", "type": [ "null", "string" ] }, "useWaylandFlags": { "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`.", "type": "boolean" } }, "type": "object" }, "FuseOptionsV1": { "additionalProperties": false, "description": "All options come from [@electron/fuses](https://github.com/electron/fuses)\nRef: https://raw.githubusercontent.com/electron/electron/refs/heads/main/docs/tutorial/fuses.md", "properties": { "enableCookieEncryption": { "description": "The cookieEncryption fuse toggles whether the cookie store on disk is encrypted using OS level cryptography keys. By default the sqlite database that Chromium uses to store cookies stores the values in plaintext. If you wish to ensure your apps cookies are encrypted in the same way Chrome does then you should enable this fuse. Please note it is a one-way transition, if you enable this fuse existing unencrypted cookies will be encrypted-on-write but if you then disable the fuse again your cookie store will effectively be corrupt and useless. Most apps can safely enable this fuse.", "type": "boolean" }, "enableEmbeddedAsarIntegrityValidation": { "description": "The embeddedAsarIntegrityValidation fuse toggles an experimental feature on macOS that validates the content of the `app.asar` file when it is loaded. This feature is designed to have a minimal performance impact but may marginally slow down file reads from inside the `app.asar` archive.\nCurrently, ASAR integrity checking is supported on:\n\n - macOS as of electron>=16.0.0\n - Windows as of electron>=30.0.0\n\nFor more information on how to use asar integrity validation please read the [Asar Integrity](https://github.com/electron/electron/blob/main/docs/tutorial/asar-integrity.md) documentation.", "type": "boolean" }, "enableNodeCliInspectArguments": { "description": "The nodeCliInspect fuse toggles whether the `--inspect`, `--inspect-brk`, etc. flags are respected or not. When disabled it also ensures that `SIGUSR1` signal does not initialize the main process inspector. Most apps can safely disable this fuse.", "type": "boolean" }, "enableNodeOptionsEnvironmentVariable": { "description": "The nodeOptions fuse toggles whether the [`NODE_OPTIONS`](https://nodejs.org/api/cli.html#node_optionsoptions) and [`NODE_EXTRA_CA_CERTS`](https://github.com/nodejs/node/blob/main/doc/api/cli.md#node_extra_ca_certsfile) environment variables are respected. The `NODE_OPTIONS` environment variable can be used to pass all kinds of custom options to the Node.js runtime and isn't typically used by apps in production. Most apps can safely disable this fuse.", "type": "boolean" }, "grantFileProtocolExtraPrivileges": { "description": "The grantFileProtocolExtraPrivileges fuse changes whether pages loaded from the `file://` protocol are given privileges beyond what they would receive in a traditional web browser. This behavior was core to Electron apps in original versions of Electron but is no longer required as apps should be [serving local files from custom protocols](https://github.com/electron/electron/blob/main/docs/tutorial/security.md#18-avoid-usage-of-the-file-protocol-and-prefer-usage-of-custom-protocols) now instead. If you aren't serving pages from `file://` you should disable this fuse.\nThe extra privileges granted to the `file://` protocol by this fuse are incompletely documented below:\n\n - `file://` protocol pages can use `fetch` to load other assets over `file://`\n - `file://` protocol pages can use service workers\n - `file://` protocol pages have universal access granted to child frames also running on `file://` protocols regardless of sandbox settings", "type": "boolean" }, "loadBrowserProcessSpecificV8Snapshot": { "description": "The loadBrowserProcessSpecificV8Snapshot fuse changes which V8 snapshot file is used for the browser process. By default Electron's processes will all use the same V8 snapshot file. When this fuse is enabled the browser process uses the file called `browser_v8_context_snapshot.bin` for its V8 snapshot. The other processes will use the V8 snapshot file that they normally do.", "type": "boolean" }, "onlyLoadAppFromAsar": { "description": "The onlyLoadAppFromAsar fuse changes the search system that Electron uses to locate your app code. By default Electron will search in the following order `app.asar` -> `app` -> `default_app.asar`. When this fuse is enabled the search order becomes a single entry `app.asar` thus ensuring that when combined with the `embeddedAsarIntegrityValidation` fuse it is impossible to load non-validated code.", "type": "boolean" }, "resetAdHocDarwinSignature": { "description": "Resets the app signature, specifically used for macOS.\nNote: This should be unneeded since electron-builder signs the app directly after flipping the fuses.\nRef: https://github.com/electron/fuses?tab=readme-ov-file#apple-silicon", "type": "boolean" }, "runAsNode": { "description": "The runAsNode fuse toggles whether the `ELECTRON_RUN_AS_NODE` environment variable is respected or not. Please note that if this fuse is disabled then `process.fork` in the main process will not function as expected as it depends on this environment variable to function. Instead, we recommend that you use [Utility Processes](https://github.com/electron/electron/blob/main/docs/api/utility-process.md), which work for many use cases where you need a standalone Node.js process (like a Sqlite server process or similar scenarios).", "type": "boolean" } }, "type": "object" }, "GenericServerOptions": { "additionalProperties": false, "description": "Generic (any HTTP(S) server) options.\nIn