Files
paseo/vendor/react-native-gpui/packages/cli/desktop.schema.json
T

250 lines
8.6 KiB
JSON
Vendored

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/streetwriters/react-native-gpui/packages/cli/desktop.schema.json",
"title": "React Native GPUI desktop app configuration",
"description": "The desktop/desktop.json file of a React Native GPUI app. Every field is optional: an app with no desktop.json runs and packages with the defaults.",
"type": "object",
"additionalProperties": false,
"properties": {
"$schema": {
"description": "Path to this schema, for editor completion.",
"type": "string"
},
"productName": {
"description": "The name a person sees: window title bar, Dock, menu bar, installers. Defaults to the app's displayName, else its name.",
"type": "string",
"minLength": 1
},
"identifier": {
"description": "The reverse-DNS bundle id, e.g. com.example.myapp. Defaults to an id derived from the app name.",
"type": "string",
"minLength": 1,
"pattern": "^[A-Za-z0-9][A-Za-z0-9.-]*$"
},
"version": {
"description": "The app version. Defaults to the version in package.json.",
"type": "string",
"minLength": 1
},
"icon": {
"description": "One square PNG, recommended 1024x1024, relative to desktop/. Per-OS icon formats are generated from it. When this is unset the CLI uses its own placeholder, so every packaging format can be built.",
"type": "string",
"minLength": 1
},
"window": {
"description": "The main window.",
"type": "object",
"additionalProperties": false,
"properties": {
"title": {
"description": "The title bar text. Defaults to productName.",
"type": "string"
},
"width": {
"description": "The window width in points. Defaults to 1024.",
"type": "number",
"exclusiveMinimum": 0
},
"height": {
"description": "The window height in points. Defaults to 768.",
"type": "number",
"exclusiveMinimum": 0
},
"position": {
"description": "Where the window opens. Omit to let the platform place it.",
"type": "object",
"additionalProperties": false,
"required": ["x", "y"],
"properties": {
"x": {
"type": "number"
},
"y": {
"type": "number"
}
}
},
"resizable": {
"description": "Whether the window can be resized. Defaults to true.",
"type": "boolean"
},
"restoreState": {
"description": "Whether the window remembers its size and position between launches. Defaults to true.",
"type": "boolean"
},
"titleBar": {
"description": "How the window's title bar is drawn. 'default' keeps the platform's; 'transparent' keeps the window's chrome but lets the app draw under it, which on macOS leaves the traffic lights over the app's own bar; 'hidden' removes it entirely, and the app must draw and move its own bar. On Linux 'transparent' and 'hidden' both ask the compositor for client-side decorations, and a window manager that refuses leaves the native title bar in place. Defaults to 'default'.",
"default": "default",
"oneOf": [
{
"type": "string",
"enum": ["default"]
},
{
"type": "string",
"enum": ["transparent"]
},
{
"type": "string",
"enum": ["hidden"]
}
]
},
"trafficLightPosition": {
"description": "Where the macOS traffic lights sit inside a transparent or hidden title bar, in points from the window's top-left corner. Ignored on Windows and Linux, which have no traffic lights. Defaults to the platform's own position.",
"type": "object",
"additionalProperties": false,
"required": ["x", "y"],
"properties": {
"x": {
"type": "number",
"minimum": 0
},
"y": {
"type": "number",
"minimum": 0
}
}
},
"menuBar": {
"description": "Whether the main window shows a menu bar. Windows and Linux draw one inside the window; on macOS this does nothing, because the bar belongs to the system. Defaults to true.",
"type": "boolean"
}
}
},
"devMenu": {
"description": "Whether the development menu is available. Defaults to true in development builds.",
"type": "boolean"
},
"tray": {
"description": "A menu-bar or notification-area icon for the app.",
"type": "object",
"additionalProperties": false,
"properties": {
"component": {
"description": "The React component to render as the tray popover.",
"type": "string",
"minLength": 1
},
"tooltip": {
"description": "The tooltip text.",
"type": "string"
},
"icon": {
"description": "The tray icon, a PNG or JPEG path relative to desktop/. Without one the tray shows a built-in glyph.",
"type": "string",
"minLength": 1
},
"iconTemplate": {
"description": "macOS: draw the icon as a template the menu bar tints for light and dark mode. Use it for a monochrome glyph. Defaults to false.",
"type": "boolean"
},
"accessory": {
"description": "Whether the app runs as an accessory, with no Dock icon. Defaults to true.",
"type": "boolean"
}
}
},
"bundle": {
"description": "How the app is packaged.",
"type": "object",
"additionalProperties": false,
"properties": {
"targets": {
"description": "The formats to build. 'all' means every alpha format for the current OS.",
"oneOf": [
{
"type": "string",
"enum": ["all"]
},
{
"type": "array",
"minItems": 1,
"items": {
"type": "string",
"enum": ["app", "dmg", "nsis", "deb", "appimage"]
}
}
]
},
"resources": {
"description": "Extra files to ship, relative to desktop/.",
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"copyright": {
"description": "The copyright line shown by installers.",
"type": "string"
},
"category": {
"description": "The app category, for the Linux desktop entry.",
"type": "string"
},
"macos": {
"type": "object",
"additionalProperties": false,
"properties": {
"minimumSystemVersion": {
"description": "The oldest macOS the app supports. Defaults to 13.0.",
"type": "string"
},
"entitlements": {
"description": "A path to an entitlements plist, relative to desktop/.",
"type": ["string", "null"]
},
"infoPlist": {
"description": "Extra keys merged into the generated Info.plist.",
"type": "object"
}
}
},
"windows": {
"type": "object",
"additionalProperties": false,
"properties": {
"nsis": {
"type": "object",
"additionalProperties": false,
"properties": {
"installMode": {
"description": "Whether the installer installs for the current user or for everyone.",
"type": "string",
"enum": ["currentUser", "perMachine", "both"]
}
}
}
}
},
"linux": {
"type": "object",
"additionalProperties": false,
"properties": {
"deb": {
"type": "object",
"additionalProperties": false,
"properties": {
"depends": {
"description": "Extra Debian package dependencies.",
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
}
}
},
"appimage": {
"type": "object",
"additionalProperties": false,
"properties": {}
}
}
}
}
}
}
}