@tauri-apps/cli 2.0.0-alpha.8 → 2.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/schema.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "http://json-schema.org/draft-07/schema#",
3
3
  "title": "Config",
4
- "description": "The Tauri configuration object. It is read from a file where you can define your frontend assets, configure the bundler, enable the app updater, define a system tray, enable APIs via the allowlist and more.\n\nThe configuration file is generated by the [`tauri init`](https://tauri.app/v1/api/cli#init) command that lives in your Tauri application source directory (src-tauri).\n\nOnce generated, you may modify it at will to customize your Tauri application.\n\n## File Formats\n\nBy default, the configuration is defined as a JSON file named `tauri.conf.json`.\n\nTauri also supports JSON5 and TOML files via the `config-json5` and `config-toml` Cargo features, respectively. The JSON5 file name must be either `tauri.conf.json` or `tauri.conf.json5`. The TOML file name is `Tauri.toml`.\n\n## Platform-Specific Configuration\n\nIn addition to the default configuration file, Tauri can read a platform-specific configuration from `tauri.linux.conf.json`, `tauri.windows.conf.json`, `tauri.macos.conf.json`, `tauri.android.conf.json` and `tauri.ios.conf.json` (or `Tauri.linux.toml`, `Tauri.windows.toml`, `Tauri.macos.toml`, `Tauri.android.toml` and `Tauri.ios.toml` if the `Tauri.toml` format is used), which gets merged with the main configuration object.\n\n## Configuration Structure\n\nThe configuration is composed of the following objects:\n\n- [`package`](#packageconfig): Package settings - [`tauri`](#tauriconfig): The Tauri config - [`build`](#buildconfig): The build configuration - [`plugins`](#pluginconfig): The plugins config\n\n```json title=\"Example tauri.config.json file\" { \"build\": { \"beforeBuildCommand\": \"\", \"beforeDevCommand\": \"\", \"devPath\": \"../dist\", \"distDir\": \"../dist\" }, \"package\": { \"productName\": \"tauri-app\", \"version\": \"0.1.0\" }, \"tauri\": { \"allowlist\": { \"all\": true }, \"bundle\": {}, \"security\": { \"csp\": null }, \"updater\": { \"active\": false }, \"windows\": [ { \"fullscreen\": false, \"height\": 600, \"resizable\": true, \"title\": \"Tauri App\", \"width\": 800 } ] } } ```",
4
+ "description": "The Tauri configuration object. It is read from a file where you can define your frontend assets, configure the bundler and define a tray icon.\n\nThe configuration file is generated by the [`tauri init`](https://tauri.app/v1/api/cli#init) command that lives in your Tauri application source directory (src-tauri).\n\nOnce generated, you may modify it at will to customize your Tauri application.\n\n## File Formats\n\nBy default, the configuration is defined as a JSON file named `tauri.conf.json`.\n\nTauri also supports JSON5 and TOML files via the `config-json5` and `config-toml` Cargo features, respectively. The JSON5 file name must be either `tauri.conf.json` or `tauri.conf.json5`. The TOML file name is `Tauri.toml`.\n\n## Platform-Specific Configuration\n\nIn addition to the default configuration file, Tauri can read a platform-specific configuration from `tauri.linux.conf.json`, `tauri.windows.conf.json`, `tauri.macos.conf.json`, `tauri.android.conf.json` and `tauri.ios.conf.json` (or `Tauri.linux.toml`, `Tauri.windows.toml`, `Tauri.macos.toml`, `Tauri.android.toml` and `Tauri.ios.toml` if the `Tauri.toml` format is used), which gets merged with the main configuration object.\n\n## Configuration Structure\n\nThe configuration is composed of the following objects:\n\n- [`package`](#packageconfig): Package settings - [`app`](#appconfig): The Tauri config - [`build`](#buildconfig): The build configuration - [`plugins`](#pluginconfig): The plugins config\n\n```json title=\"Example tauri.config.json file\" { \"productName\": \"tauri-app\", \"version\": \"0.1.0\" \"build\": { \"beforeBuildCommand\": \"\", \"beforeDevCommand\": \"\", \"devUrl\": \"../dist\", \"frontendDist\": \"../dist\" }, \"app\": { \"security\": { \"csp\": null }, \"windows\": [ { \"fullscreen\": false, \"height\": 600, \"resizable\": true, \"title\": \"Tauri App\", \"width\": 800 } ] }, \"bundle\": {} } ```",
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "$schema": {
@@ -11,192 +11,119 @@
11
11
  "null"
12
12
  ]
13
13
  },
14
- "package": {
15
- "description": "Package settings.",
14
+ "productName": {
15
+ "description": "App name.",
16
+ "type": [
17
+ "string",
18
+ "null"
19
+ ],
20
+ "pattern": "^[^/\\:*?\"<>|]+$"
21
+ },
22
+ "version": {
23
+ "description": "App version. It is a semver version number or a path to a `package.json` file containing the `version` field. If removed the version number from `Cargo.toml` is used.",
24
+ "type": [
25
+ "string",
26
+ "null"
27
+ ]
28
+ },
29
+ "identifier": {
30
+ "description": "The application identifier in reverse domain name notation (e.g. `com.tauri.example`). This string must be unique across applications since it is used in system configurations like the bundle ID and path to the webview data directory. This string must contain only alphanumeric characters (A–Z, a–z, and 0–9), hyphens (-), and periods (.).",
31
+ "default": "",
32
+ "type": "string"
33
+ },
34
+ "app": {
35
+ "description": "The App configuration.",
16
36
  "default": {
17
- "productName": null,
18
- "version": null
37
+ "macOSPrivateApi": false,
38
+ "security": {
39
+ "assetProtocol": {
40
+ "enable": false,
41
+ "scope": []
42
+ },
43
+ "dangerousDisableAssetCspModification": false,
44
+ "freezePrototype": false,
45
+ "pattern": {
46
+ "use": "brownfield"
47
+ }
48
+ },
49
+ "windows": [],
50
+ "withGlobalTauri": false
19
51
  },
20
52
  "allOf": [
21
53
  {
22
- "$ref": "#/definitions/PackageConfig"
54
+ "$ref": "#/definitions/AppConfig"
55
+ }
56
+ ]
57
+ },
58
+ "build": {
59
+ "description": "The build configuration.",
60
+ "default": {},
61
+ "allOf": [
62
+ {
63
+ "$ref": "#/definitions/BuildConfig"
23
64
  }
24
65
  ]
25
66
  },
26
- "tauri": {
27
- "description": "The Tauri configuration.",
67
+ "bundle": {
68
+ "description": "The bundler configuration.",
28
69
  "default": {
29
- "allowlist": {
30
- "all": false,
31
- "app": {
32
- "all": false,
33
- "hide": false,
34
- "show": false
35
- },
36
- "clipboard": {
37
- "all": false,
38
- "readText": false,
39
- "writeText": false
40
- },
41
- "dialog": {
42
- "all": false,
43
- "ask": false,
44
- "confirm": false,
45
- "message": false,
46
- "open": false,
47
- "save": false
48
- },
49
- "fs": {
50
- "all": false,
51
- "copyFile": false,
52
- "createDir": false,
53
- "exists": false,
54
- "readDir": false,
55
- "readFile": false,
56
- "removeDir": false,
57
- "removeFile": false,
58
- "renameFile": false,
59
- "scope": [],
60
- "writeFile": false
61
- },
62
- "globalShortcut": {
63
- "all": false
64
- },
65
- "http": {
66
- "all": false,
67
- "request": false,
68
- "scope": []
69
- },
70
- "notification": {
71
- "all": false
72
- },
73
- "os": {
74
- "all": false
75
- },
76
- "path": {
77
- "all": false
78
- },
79
- "process": {
80
- "all": false,
81
- "exit": false,
82
- "relaunch": false,
83
- "relaunchDangerousAllowSymlinkMacos": false
84
- },
85
- "protocol": {
86
- "all": false,
87
- "asset": false,
88
- "assetScope": []
89
- },
90
- "shell": {
91
- "all": false,
92
- "execute": false,
93
- "open": false,
94
- "scope": [],
95
- "sidecar": false
96
- },
97
- "window": {
98
- "all": false,
99
- "center": false,
100
- "close": false,
101
- "create": false,
102
- "hide": false,
103
- "maximize": false,
104
- "minimize": false,
105
- "print": false,
106
- "requestUserAttention": false,
107
- "setAlwaysOnTop": false,
108
- "setContentProtected": false,
109
- "setCursorGrab": false,
110
- "setCursorIcon": false,
111
- "setCursorPosition": false,
112
- "setCursorVisible": false,
113
- "setDecorations": false,
114
- "setFocus": false,
115
- "setFullscreen": false,
116
- "setIcon": false,
117
- "setIgnoreCursorEvents": false,
118
- "setMaxSize": false,
119
- "setMinSize": false,
120
- "setPosition": false,
121
- "setResizable": false,
122
- "setShadow": false,
123
- "setSize": false,
124
- "setSkipTaskbar": false,
125
- "setTitle": false,
126
- "show": false,
127
- "startDragging": false,
128
- "unmaximize": false,
129
- "unminimize": false
130
- }
70
+ "active": false,
71
+ "android": {
72
+ "minSdkVersion": 24
131
73
  },
132
- "bundle": {
133
- "active": false,
134
- "android": {
135
- "minSdkVersion": 24
136
- },
74
+ "iOS": {},
75
+ "icon": [],
76
+ "linux": {
137
77
  "appimage": {
138
- "bundleMediaFramework": false
78
+ "bundleMediaFramework": false,
79
+ "files": {}
139
80
  },
140
81
  "deb": {
141
82
  "files": {}
142
83
  },
143
- "iOS": {},
144
- "icon": [],
145
- "identifier": "",
146
- "macOS": {
147
- "minimumSystemVersion": "10.13"
148
- },
149
- "targets": "all",
150
- "windows": {
151
- "allowDowngrades": true,
152
- "certificateThumbprint": null,
153
- "digestAlgorithm": null,
154
- "nsis": null,
155
- "timestampUrl": null,
156
- "tsp": false,
157
- "webviewFixedRuntimePath": null,
158
- "webviewInstallMode": {
159
- "silent": true,
160
- "type": "downloadBootstrapper"
161
- },
162
- "wix": null
84
+ "rpm": {
85
+ "epoch": 0,
86
+ "files": {},
87
+ "release": "1"
163
88
  }
164
89
  },
165
- "macOSPrivateApi": false,
166
- "pattern": {
167
- "use": "brownfield"
168
- },
169
- "security": {
170
- "dangerousDisableAssetCspModification": false,
171
- "freezePrototype": false
172
- },
173
- "updater": {
174
- "active": false,
175
- "dialog": true,
176
- "pubkey": "",
177
- "windows": {
178
- "installMode": "passive",
179
- "installerArgs": []
180
- }
90
+ "macOS": {
91
+ "dmg": {
92
+ "appPosition": {
93
+ "x": 180,
94
+ "y": 170
95
+ },
96
+ "applicationFolderPosition": {
97
+ "x": 480,
98
+ "y": 170
99
+ },
100
+ "windowSize": {
101
+ "height": 400,
102
+ "width": 660
103
+ }
104
+ },
105
+ "files": {},
106
+ "minimumSystemVersion": "10.13"
181
107
  },
182
- "windows": []
183
- },
184
- "allOf": [
185
- {
186
- "$ref": "#/definitions/TauriConfig"
108
+ "targets": "all",
109
+ "windows": {
110
+ "allowDowngrades": true,
111
+ "certificateThumbprint": null,
112
+ "digestAlgorithm": null,
113
+ "nsis": null,
114
+ "timestampUrl": null,
115
+ "tsp": false,
116
+ "webviewFixedRuntimePath": null,
117
+ "webviewInstallMode": {
118
+ "silent": true,
119
+ "type": "downloadBootstrapper"
120
+ },
121
+ "wix": null
187
122
  }
188
- ]
189
- },
190
- "build": {
191
- "description": "The build configuration.",
192
- "default": {
193
- "devPath": "http://localhost:8080/",
194
- "distDir": "../dist",
195
- "withGlobalTauri": false
196
123
  },
197
124
  "allOf": [
198
125
  {
199
- "$ref": "#/definitions/BuildConfig"
126
+ "$ref": "#/definitions/BundleConfig"
200
127
  }
201
128
  ]
202
129
  },
@@ -212,44 +139,10 @@
212
139
  },
213
140
  "additionalProperties": false,
214
141
  "definitions": {
215
- "PackageConfig": {
216
- "description": "The package configuration.\n\nSee more: https://tauri.app/v1/api/config#packageconfig",
217
- "type": "object",
218
- "properties": {
219
- "productName": {
220
- "description": "App name.",
221
- "type": [
222
- "string",
223
- "null"
224
- ],
225
- "pattern": "^[^/\\:*?\"<>|]+$"
226
- },
227
- "version": {
228
- "description": "App version. It is a semver version number or a path to a `package.json` file containing the `version` field.",
229
- "default": null,
230
- "type": [
231
- "string",
232
- "null"
233
- ]
234
- }
235
- },
236
- "additionalProperties": false
237
- },
238
- "TauriConfig": {
239
- "description": "The Tauri configuration object.\n\nSee more: https://tauri.app/v1/api/config#tauriconfig",
142
+ "AppConfig": {
143
+ "description": "The App configuration object.\n\nSee more: <https://tauri.app/v1/api/config#appconfig>",
240
144
  "type": "object",
241
145
  "properties": {
242
- "pattern": {
243
- "description": "The pattern to use.",
244
- "default": {
245
- "use": "brownfield"
246
- },
247
- "allOf": [
248
- {
249
- "$ref": "#/definitions/PatternKind"
250
- }
251
- ]
252
- },
253
146
  "windows": {
254
147
  "description": "The windows configuration.",
255
148
  "default": [],
@@ -258,203 +151,30 @@
258
151
  "$ref": "#/definitions/WindowConfig"
259
152
  }
260
153
  },
261
- "cli": {
262
- "description": "The CLI configuration.",
263
- "anyOf": [
264
- {
265
- "$ref": "#/definitions/CliConfig"
266
- },
267
- {
268
- "type": "null"
269
- }
270
- ]
271
- },
272
- "bundle": {
273
- "description": "The bundler configuration.",
274
- "default": {
275
- "active": false,
276
- "android": {
277
- "minSdkVersion": 24
278
- },
279
- "appimage": {
280
- "bundleMediaFramework": false
281
- },
282
- "deb": {
283
- "files": {}
284
- },
285
- "iOS": {},
286
- "icon": [],
287
- "identifier": "",
288
- "macOS": {
289
- "minimumSystemVersion": "10.13"
290
- },
291
- "targets": "all",
292
- "windows": {
293
- "allowDowngrades": true,
294
- "certificateThumbprint": null,
295
- "digestAlgorithm": null,
296
- "nsis": null,
297
- "timestampUrl": null,
298
- "tsp": false,
299
- "webviewFixedRuntimePath": null,
300
- "webviewInstallMode": {
301
- "silent": true,
302
- "type": "downloadBootstrapper"
303
- },
304
- "wix": null
305
- }
306
- },
307
- "allOf": [
308
- {
309
- "$ref": "#/definitions/BundleConfig"
310
- }
311
- ]
312
- },
313
- "allowlist": {
314
- "description": "The allowlist configuration.",
315
- "default": {
316
- "all": false,
317
- "app": {
318
- "all": false,
319
- "hide": false,
320
- "show": false
321
- },
322
- "clipboard": {
323
- "all": false,
324
- "readText": false,
325
- "writeText": false
326
- },
327
- "dialog": {
328
- "all": false,
329
- "ask": false,
330
- "confirm": false,
331
- "message": false,
332
- "open": false,
333
- "save": false
334
- },
335
- "fs": {
336
- "all": false,
337
- "copyFile": false,
338
- "createDir": false,
339
- "exists": false,
340
- "readDir": false,
341
- "readFile": false,
342
- "removeDir": false,
343
- "removeFile": false,
344
- "renameFile": false,
345
- "scope": [],
346
- "writeFile": false
347
- },
348
- "globalShortcut": {
349
- "all": false
350
- },
351
- "http": {
352
- "all": false,
353
- "request": false,
354
- "scope": []
355
- },
356
- "notification": {
357
- "all": false
358
- },
359
- "os": {
360
- "all": false
361
- },
362
- "path": {
363
- "all": false
364
- },
365
- "process": {
366
- "all": false,
367
- "exit": false,
368
- "relaunch": false,
369
- "relaunchDangerousAllowSymlinkMacos": false
370
- },
371
- "protocol": {
372
- "all": false,
373
- "asset": false,
374
- "assetScope": []
375
- },
376
- "shell": {
377
- "all": false,
378
- "execute": false,
379
- "open": false,
380
- "scope": [],
381
- "sidecar": false
382
- },
383
- "window": {
384
- "all": false,
385
- "center": false,
386
- "close": false,
387
- "create": false,
388
- "hide": false,
389
- "maximize": false,
390
- "minimize": false,
391
- "print": false,
392
- "requestUserAttention": false,
393
- "setAlwaysOnTop": false,
394
- "setContentProtected": false,
395
- "setCursorGrab": false,
396
- "setCursorIcon": false,
397
- "setCursorPosition": false,
398
- "setCursorVisible": false,
399
- "setDecorations": false,
400
- "setFocus": false,
401
- "setFullscreen": false,
402
- "setIcon": false,
403
- "setIgnoreCursorEvents": false,
404
- "setMaxSize": false,
405
- "setMinSize": false,
406
- "setPosition": false,
407
- "setResizable": false,
408
- "setShadow": false,
409
- "setSize": false,
410
- "setSkipTaskbar": false,
411
- "setTitle": false,
412
- "show": false,
413
- "startDragging": false,
414
- "unmaximize": false,
415
- "unminimize": false
416
- }
417
- },
418
- "allOf": [
419
- {
420
- "$ref": "#/definitions/AllowlistConfig"
421
- }
422
- ]
423
- },
424
154
  "security": {
425
155
  "description": "Security configuration.",
426
156
  "default": {
157
+ "assetProtocol": {
158
+ "enable": false,
159
+ "scope": []
160
+ },
427
161
  "dangerousDisableAssetCspModification": false,
428
- "freezePrototype": false
429
- },
430
- "allOf": [
431
- {
432
- "$ref": "#/definitions/SecurityConfig"
433
- }
434
- ]
435
- },
436
- "updater": {
437
- "description": "The updater configuration.",
438
- "default": {
439
- "active": false,
440
- "dialog": true,
441
- "pubkey": "",
442
- "windows": {
443
- "installMode": "passive",
444
- "installerArgs": []
162
+ "freezePrototype": false,
163
+ "pattern": {
164
+ "use": "brownfield"
445
165
  }
446
166
  },
447
167
  "allOf": [
448
168
  {
449
- "$ref": "#/definitions/UpdaterConfig"
169
+ "$ref": "#/definitions/SecurityConfig"
450
170
  }
451
171
  ]
452
172
  },
453
- "systemTray": {
454
- "description": "Configuration for app system tray.",
173
+ "trayIcon": {
174
+ "description": "Configuration for app tray icon.",
455
175
  "anyOf": [
456
176
  {
457
- "$ref": "#/definitions/SystemTrayConfig"
177
+ "$ref": "#/definitions/TrayIconConfig"
458
178
  },
459
179
  {
460
180
  "type": "null"
@@ -465,60 +185,17 @@
465
185
  "description": "MacOS private API configuration. Enables the transparent background API and sets the `fullScreenEnabled` preference to `true`.",
466
186
  "default": false,
467
187
  "type": "boolean"
188
+ },
189
+ "withGlobalTauri": {
190
+ "description": "Whether we should inject the Tauri API on `window.__TAURI__` or not.",
191
+ "default": false,
192
+ "type": "boolean"
468
193
  }
469
194
  },
470
195
  "additionalProperties": false
471
196
  },
472
- "PatternKind": {
473
- "description": "The application pattern.",
474
- "oneOf": [
475
- {
476
- "description": "Brownfield pattern.",
477
- "type": "object",
478
- "required": [
479
- "use"
480
- ],
481
- "properties": {
482
- "use": {
483
- "type": "string",
484
- "enum": [
485
- "brownfield"
486
- ]
487
- }
488
- }
489
- },
490
- {
491
- "description": "Isolation pattern. Recommended for security purposes.",
492
- "type": "object",
493
- "required": [
494
- "options",
495
- "use"
496
- ],
497
- "properties": {
498
- "use": {
499
- "type": "string",
500
- "enum": [
501
- "isolation"
502
- ]
503
- },
504
- "options": {
505
- "type": "object",
506
- "required": [
507
- "dir"
508
- ],
509
- "properties": {
510
- "dir": {
511
- "description": "The dir containing the index.html file that contains the secure isolation application.",
512
- "type": "string"
513
- }
514
- }
515
- }
516
- }
517
- }
518
- ]
519
- },
520
197
  "WindowConfig": {
521
- "description": "The window configuration object.\n\nSee more: https://tauri.app/v1/api/config#windowconfig",
198
+ "description": "The window configuration object.\n\nSee more: <https://tauri.app/v1/api/config#windowconfig>",
522
199
  "type": "object",
523
200
  "properties": {
524
201
  "label": {
@@ -531,7 +208,7 @@
531
208
  "default": "index.html",
532
209
  "allOf": [
533
210
  {
534
- "$ref": "#/definitions/WindowUrl"
211
+ "$ref": "#/definitions/WebviewUrl"
535
212
  }
536
213
  ]
537
214
  },
@@ -613,7 +290,22 @@
613
290
  "format": "double"
614
291
  },
615
292
  "resizable": {
616
- "description": "Whether the window is resizable or not.",
293
+ "description": "Whether the window is resizable or not. When resizable is set to false, native window's maximize button is automatically disabled.",
294
+ "default": true,
295
+ "type": "boolean"
296
+ },
297
+ "maximizable": {
298
+ "description": "Whether the window's native maximize button is enabled or not. If resizable is set to false, this setting is ignored.\n\n## Platform-specific\n\n- **macOS:** Disables the \"zoom\" button in the window titlebar, which is also used to enter fullscreen mode. - **Linux / iOS / Android:** Unsupported.",
299
+ "default": true,
300
+ "type": "boolean"
301
+ },
302
+ "minimizable": {
303
+ "description": "Whether the window's native minimize button is enabled or not.\n\n## Platform-specific\n\n- **Linux / iOS / Android:** Unsupported.",
304
+ "default": true,
305
+ "type": "boolean"
306
+ },
307
+ "closable": {
308
+ "description": "Whether the window's native close button is enabled or not.\n\n## Platform-specific\n\n- **Linux:** \"GTK+ will do its best to convince the window manager not to show a close button. Depending on the system, this function may not have any effect when called on a window that is already visible\" - **iOS / Android:** Unsupported.",
617
309
  "default": true,
618
310
  "type": "boolean"
619
311
  },
@@ -652,11 +344,21 @@
652
344
  "default": true,
653
345
  "type": "boolean"
654
346
  },
347
+ "alwaysOnBottom": {
348
+ "description": "Whether the window should always be below other windows.",
349
+ "default": false,
350
+ "type": "boolean"
351
+ },
655
352
  "alwaysOnTop": {
656
353
  "description": "Whether the window should always be on top of other windows.",
657
354
  "default": false,
658
355
  "type": "boolean"
659
356
  },
357
+ "visibleOnAllWorkspaces": {
358
+ "description": "Whether the window should be visible on all workspaces or virtual desktops.\n\n## Platform-specific\n\n- **Windows / iOS / Android:** Unsupported.",
359
+ "default": false,
360
+ "type": "boolean"
361
+ },
660
362
  "contentProtected": {
661
363
  "description": "Prevents the window contents from being captured by other apps.",
662
364
  "default": false,
@@ -713,28 +415,64 @@
713
415
  },
714
416
  "shadow": {
715
417
  "description": "Whether or not the window has shadow.\n\n## Platform-specific\n\n- **Windows:** - `false` has no effect on decorated window, shadow are always ON. - `true` will make ndecorated window have a 1px white border, and on Windows 11, it will have a rounded corners. - **Linux:** Unsupported.",
716
- "default": false,
418
+ "default": true,
717
419
  "type": "boolean"
718
- }
719
- },
720
- "additionalProperties": false
721
- },
722
- "WindowUrl": {
723
- "description": "An URL to open on a Tauri webview window.",
724
- "anyOf": [
725
- {
726
- "description": "An external URL.",
727
- "type": "string",
728
- "format": "uri"
729
420
  },
730
- {
731
- "description": "The path portion of an app URL. For instance, to load `tauri://localhost/users/john`, you can simply provide `users/john` in this configuration.",
732
- "type": "string"
733
- }
734
- ]
735
- },
736
- "Theme": {
737
- "description": "System theme.",
421
+ "windowEffects": {
422
+ "description": "Window effects.\n\nRequires the window to be transparent.\n\n## Platform-specific:\n\n- **Windows**: If using decorations or shadows, you may want to try this workaround <https://github.com/tauri-apps/tao/issues/72#issuecomment-975607891> - **Linux**: Unsupported",
423
+ "anyOf": [
424
+ {
425
+ "$ref": "#/definitions/WindowEffectsConfig"
426
+ },
427
+ {
428
+ "type": "null"
429
+ }
430
+ ]
431
+ },
432
+ "incognito": {
433
+ "description": "Whether or not the webview should be launched in incognito mode.\n\n## Platform-specific:\n\n- **Android**: Unsupported.",
434
+ "default": false,
435
+ "type": "boolean"
436
+ },
437
+ "parent": {
438
+ "description": "Sets the window associated with this label to be the parent of the window to be created.\n\n## Platform-specific\n\n- **Windows**: This sets the passed parent as an owner window to the window to be created. From [MSDN owned windows docs](https://docs.microsoft.com/en-us/windows/win32/winmsg/window-features#owned-windows): - An owned window is always above its owner in the z-order. - The system automatically destroys an owned window when its owner is destroyed. - An owned window is hidden when its owner is minimized. - **Linux**: This makes the new window transient for parent, see <https://docs.gtk.org/gtk3/method.Window.set_transient_for.html> - **macOS**: This adds the window as a child of parent, see <https://developer.apple.com/documentation/appkit/nswindow/1419152-addchildwindow?language=objc>",
439
+ "type": [
440
+ "string",
441
+ "null"
442
+ ]
443
+ },
444
+ "proxyUrl": {
445
+ "description": "The proxy URL for the WebView for all network requests.\n\nMust be either a `http://` or a `socks5://` URL.\n\n## Platform-specific\n\n- **macOS**: Requires the `macos-proxy` feature flag and only compiles for macOS 14+.",
446
+ "type": [
447
+ "string",
448
+ "null"
449
+ ],
450
+ "format": "uri"
451
+ }
452
+ },
453
+ "additionalProperties": false
454
+ },
455
+ "WebviewUrl": {
456
+ "description": "An URL to open on a Tauri webview window.",
457
+ "anyOf": [
458
+ {
459
+ "description": "An external URL. Must use either the `http` or `https` schemes.",
460
+ "type": "string",
461
+ "format": "uri"
462
+ },
463
+ {
464
+ "description": "The path portion of an app URL. For instance, to load `tauri://localhost/users/john`, you can simply provide `users/john` in this configuration.",
465
+ "type": "string"
466
+ },
467
+ {
468
+ "description": "A custom protocol url, for example, `doom://index.html`",
469
+ "type": "string",
470
+ "format": "uri"
471
+ }
472
+ ]
473
+ },
474
+ "Theme": {
475
+ "description": "System theme.",
738
476
  "oneOf": [
739
477
  {
740
478
  "description": "Light theme.",
@@ -778,587 +516,567 @@
778
516
  }
779
517
  ]
780
518
  },
781
- "CliConfig": {
782
- "description": "describes a CLI configuration\n\nSee more: https://tauri.app/v1/api/config#cliconfig",
519
+ "WindowEffectsConfig": {
520
+ "description": "The window effects configuration object",
783
521
  "type": "object",
522
+ "required": [
523
+ "effects"
524
+ ],
784
525
  "properties": {
785
- "description": {
786
- "description": "Command description which will be shown on the help information.",
787
- "type": [
788
- "string",
789
- "null"
790
- ]
791
- },
792
- "longDescription": {
793
- "description": "Command long description which will be shown on the help information.",
794
- "type": [
795
- "string",
796
- "null"
797
- ]
798
- },
799
- "beforeHelp": {
800
- "description": "Adds additional help information to be displayed in addition to auto-generated help. This information is displayed before the auto-generated help information. This is often used for header information.",
801
- "type": [
802
- "string",
803
- "null"
804
- ]
526
+ "effects": {
527
+ "description": "List of Window effects to apply to the Window. Conflicting effects will apply the first one and ignore the rest.",
528
+ "type": "array",
529
+ "items": {
530
+ "$ref": "#/definitions/WindowEffect"
531
+ }
805
532
  },
806
- "afterHelp": {
807
- "description": "Adds additional help information to be displayed in addition to auto-generated help. This information is displayed after the auto-generated help information. This is often used to describe how to use the arguments, or caveats to be noted.",
808
- "type": [
809
- "string",
810
- "null"
533
+ "state": {
534
+ "description": "Window effect state **macOS Only**",
535
+ "anyOf": [
536
+ {
537
+ "$ref": "#/definitions/WindowEffectState"
538
+ },
539
+ {
540
+ "type": "null"
541
+ }
811
542
  ]
812
543
  },
813
- "args": {
814
- "description": "List of arguments for the command",
544
+ "radius": {
545
+ "description": "Window effect corner radius **macOS Only**",
815
546
  "type": [
816
- "array",
547
+ "number",
817
548
  "null"
818
549
  ],
819
- "items": {
820
- "$ref": "#/definitions/CliArg"
821
- }
550
+ "format": "double"
822
551
  },
823
- "subcommands": {
824
- "description": "List of subcommands of this command",
825
- "type": [
826
- "object",
827
- "null"
828
- ],
829
- "additionalProperties": {
830
- "$ref": "#/definitions/CliConfig"
831
- }
552
+ "color": {
553
+ "description": "Window effect color. Affects [`WindowEffect::Blur`] and [`WindowEffect::Acrylic`] only on Windows 10 v1903+. Doesn't have any effect on Windows 7 or Windows 11.",
554
+ "anyOf": [
555
+ {
556
+ "$ref": "#/definitions/Color"
557
+ },
558
+ {
559
+ "type": "null"
560
+ }
561
+ ]
832
562
  }
833
563
  },
834
564
  "additionalProperties": false
835
565
  },
836
- "CliArg": {
837
- "description": "A CLI argument definition.",
838
- "type": "object",
839
- "required": [
840
- "name"
841
- ],
842
- "properties": {
843
- "short": {
844
- "description": "The short version of the argument, without the preceding -.\n\nNOTE: Any leading `-` characters will be stripped, and only the first non-character will be used as the short version.",
845
- "type": [
846
- "string",
847
- "null"
848
- ],
849
- "maxLength": 1,
850
- "minLength": 1
566
+ "WindowEffect": {
567
+ "description": "Platform-specific window effects",
568
+ "oneOf": [
569
+ {
570
+ "description": "A default material appropriate for the view's effectiveAppearance. **macOS 10.14-**",
571
+ "deprecated": true,
572
+ "type": "string",
573
+ "enum": [
574
+ "appearanceBased"
575
+ ]
851
576
  },
852
- "name": {
853
- "description": "The unique argument name",
854
- "type": "string"
577
+ {
578
+ "description": "*macOS 10.14-**",
579
+ "deprecated": true,
580
+ "type": "string",
581
+ "enum": [
582
+ "light"
583
+ ]
855
584
  },
856
- "description": {
857
- "description": "The argument description which will be shown on the help information. Typically, this is a short (one line) description of the arg.",
858
- "type": [
859
- "string",
860
- "null"
585
+ {
586
+ "description": "*macOS 10.14-**",
587
+ "deprecated": true,
588
+ "type": "string",
589
+ "enum": [
590
+ "dark"
861
591
  ]
862
592
  },
863
- "longDescription": {
864
- "description": "The argument long description which will be shown on the help information. Typically this a more detailed (multi-line) message that describes the argument.",
865
- "type": [
866
- "string",
867
- "null"
593
+ {
594
+ "description": "*macOS 10.14-**",
595
+ "deprecated": true,
596
+ "type": "string",
597
+ "enum": [
598
+ "mediumLight"
868
599
  ]
869
600
  },
870
- "takesValue": {
871
- "description": "Specifies that the argument takes a value at run time.\n\nNOTE: values for arguments may be specified in any of the following methods - Using a space such as -o value or --option value - Using an equals and no space such as -o=value or --option=value - Use a short and no space such as -ovalue",
872
- "default": false,
873
- "type": "boolean"
601
+ {
602
+ "description": "*macOS 10.14-**",
603
+ "deprecated": true,
604
+ "type": "string",
605
+ "enum": [
606
+ "ultraDark"
607
+ ]
874
608
  },
875
- "multiple": {
876
- "description": "Specifies that the argument may have an unknown number of multiple values. Without any other settings, this argument may appear only once.\n\nFor example, --opt val1 val2 is allowed, but --opt val1 val2 --opt val3 is not.\n\nNOTE: Setting this requires `takes_value` to be set to true.",
877
- "default": false,
878
- "type": "boolean"
609
+ {
610
+ "description": "*macOS 10.10+**",
611
+ "type": "string",
612
+ "enum": [
613
+ "titlebar"
614
+ ]
879
615
  },
880
- "multipleOccurrences": {
881
- "description": "Specifies that the argument may appear more than once. For flags, this results in the number of occurrences of the flag being recorded. For example -ddd or -d -d -d would count as three occurrences. For options or arguments that take a value, this does not affect how many values they can accept. (i.e. only one at a time is allowed)\n\nFor example, --opt val1 --opt val2 is allowed, but --opt val1 val2 is not.",
882
- "default": false,
883
- "type": "boolean"
616
+ {
617
+ "description": "*macOS 10.10+**",
618
+ "type": "string",
619
+ "enum": [
620
+ "selection"
621
+ ]
884
622
  },
885
- "numberOfValues": {
886
- "description": "Specifies how many values are required to satisfy this argument. For example, if you had a `-f <file>` argument where you wanted exactly 3 'files' you would set `number_of_values = 3`, and this argument wouldn't be satisfied unless the user provided 3 and only 3 values.\n\n**NOTE:** Does *not* require `multiple_occurrences = true` to be set. Setting `multiple_occurrences = true` would allow `-f <file> <file> <file> -f <file> <file> <file>` where as *not* setting it would only allow one occurrence of this argument.\n\n**NOTE:** implicitly sets `takes_value = true` and `multiple_values = true`.",
887
- "type": [
888
- "integer",
889
- "null"
890
- ],
891
- "format": "uint",
892
- "minimum": 0.0
623
+ {
624
+ "description": "*macOS 10.11+**",
625
+ "type": "string",
626
+ "enum": [
627
+ "menu"
628
+ ]
893
629
  },
894
- "possibleValues": {
895
- "description": "Specifies a list of possible values for this argument. At runtime, the CLI verifies that only one of the specified values was used, or fails with an error message.",
896
- "type": [
897
- "array",
898
- "null"
899
- ],
900
- "items": {
901
- "type": "string"
902
- }
630
+ {
631
+ "description": "*macOS 10.11+**",
632
+ "type": "string",
633
+ "enum": [
634
+ "popover"
635
+ ]
903
636
  },
904
- "minValues": {
905
- "description": "Specifies the minimum number of values for this argument. For example, if you had a -f `<file>` argument where you wanted at least 2 'files', you would set `minValues: 2`, and this argument would be satisfied if the user provided, 2 or more values.",
906
- "type": [
907
- "integer",
908
- "null"
909
- ],
910
- "format": "uint",
911
- "minimum": 0.0
637
+ {
638
+ "description": "*macOS 10.11+**",
639
+ "type": "string",
640
+ "enum": [
641
+ "sidebar"
642
+ ]
912
643
  },
913
- "maxValues": {
914
- "description": "Specifies the maximum number of values are for this argument. For example, if you had a -f `<file>` argument where you wanted up to 3 'files', you would set .max_values(3), and this argument would be satisfied if the user provided, 1, 2, or 3 values.",
915
- "type": [
916
- "integer",
917
- "null"
918
- ],
919
- "format": "uint",
920
- "minimum": 0.0
644
+ {
645
+ "description": "*macOS 10.14+**",
646
+ "type": "string",
647
+ "enum": [
648
+ "headerView"
649
+ ]
921
650
  },
922
- "required": {
923
- "description": "Sets whether or not the argument is required by default.\n\n- Required by default means it is required, when no other conflicting rules have been evaluated - Conflicting rules take precedence over being required.",
924
- "default": false,
925
- "type": "boolean"
651
+ {
652
+ "description": "*macOS 10.14+**",
653
+ "type": "string",
654
+ "enum": [
655
+ "sheet"
656
+ ]
926
657
  },
927
- "requiredUnlessPresent": {
928
- "description": "Sets an arg that override this arg's required setting i.e. this arg will be required unless this other argument is present.",
929
- "type": [
930
- "string",
931
- "null"
658
+ {
659
+ "description": "*macOS 10.14+**",
660
+ "type": "string",
661
+ "enum": [
662
+ "windowBackground"
932
663
  ]
933
664
  },
934
- "requiredUnlessPresentAll": {
935
- "description": "Sets args that override this arg's required setting i.e. this arg will be required unless all these other arguments are present.",
936
- "type": [
937
- "array",
938
- "null"
939
- ],
940
- "items": {
941
- "type": "string"
942
- }
665
+ {
666
+ "description": "*macOS 10.14+**",
667
+ "type": "string",
668
+ "enum": [
669
+ "hudWindow"
670
+ ]
943
671
  },
944
- "requiredUnlessPresentAny": {
945
- "description": "Sets args that override this arg's required setting i.e. this arg will be required unless at least one of these other arguments are present.",
946
- "type": [
947
- "array",
948
- "null"
949
- ],
950
- "items": {
951
- "type": "string"
952
- }
672
+ {
673
+ "description": "*macOS 10.14+**",
674
+ "type": "string",
675
+ "enum": [
676
+ "fullScreenUI"
677
+ ]
953
678
  },
954
- "conflictsWith": {
955
- "description": "Sets a conflicting argument by name i.e. when using this argument, the following argument can't be present and vice versa.",
956
- "type": [
957
- "string",
958
- "null"
679
+ {
680
+ "description": "*macOS 10.14+**",
681
+ "type": "string",
682
+ "enum": [
683
+ "tooltip"
959
684
  ]
960
685
  },
961
- "conflictsWithAll": {
962
- "description": "The same as conflictsWith but allows specifying multiple two-way conflicts per argument.",
963
- "type": [
964
- "array",
965
- "null"
966
- ],
967
- "items": {
968
- "type": "string"
969
- }
686
+ {
687
+ "description": "*macOS 10.14+**",
688
+ "type": "string",
689
+ "enum": [
690
+ "contentBackground"
691
+ ]
970
692
  },
971
- "requires": {
972
- "description": "Tets an argument by name that is required when this one is present i.e. when using this argument, the following argument must be present.",
973
- "type": [
974
- "string",
975
- "null"
693
+ {
694
+ "description": "*macOS 10.14+**",
695
+ "type": "string",
696
+ "enum": [
697
+ "underWindowBackground"
976
698
  ]
977
699
  },
978
- "requiresAll": {
979
- "description": "Sts multiple arguments by names that are required when this one is present i.e. when using this argument, the following arguments must be present.",
980
- "type": [
981
- "array",
982
- "null"
983
- ],
984
- "items": {
985
- "type": "string"
986
- }
700
+ {
701
+ "description": "*macOS 10.14+**",
702
+ "type": "string",
703
+ "enum": [
704
+ "underPageBackground"
705
+ ]
987
706
  },
988
- "requiresIf": {
989
- "description": "Allows a conditional requirement with the signature [arg, value] the requirement will only become valid if `arg`'s value equals `${value}`.",
990
- "type": [
991
- "array",
992
- "null"
993
- ],
994
- "items": {
995
- "type": "string"
996
- }
707
+ {
708
+ "description": "Mica effect that matches the system dark perefence **Windows 11 Only**",
709
+ "type": "string",
710
+ "enum": [
711
+ "mica"
712
+ ]
997
713
  },
998
- "requiredIfEq": {
999
- "description": "Allows specifying that an argument is required conditionally with the signature [arg, value] the requirement will only become valid if the `arg`'s value equals `${value}`.",
1000
- "type": [
1001
- "array",
1002
- "null"
1003
- ],
1004
- "items": {
1005
- "type": "string"
1006
- }
1007
- },
1008
- "requireEquals": {
1009
- "description": "Requires that options use the --option=val syntax i.e. an equals between the option and associated value.",
1010
- "type": [
1011
- "boolean",
1012
- "null"
714
+ {
715
+ "description": "Mica effect with dark mode but only if dark mode is enabled on the system **Windows 11 Only**",
716
+ "type": "string",
717
+ "enum": [
718
+ "micaDark"
1013
719
  ]
1014
720
  },
1015
- "index": {
1016
- "description": "The positional argument index, starting at 1.\n\nThe index refers to position according to other positional argument. It does not define position in the argument list as a whole. When utilized with multiple=true, only the last positional argument may be defined as multiple (i.e. the one with the highest index).",
1017
- "type": [
1018
- "integer",
1019
- "null"
1020
- ],
1021
- "format": "uint",
1022
- "minimum": 1.0
1023
- }
1024
- },
1025
- "additionalProperties": false
1026
- },
1027
- "BundleConfig": {
1028
- "description": "Configuration for tauri-bundler.\n\nSee more: https://tauri.app/v1/api/config#bundleconfig",
1029
- "type": "object",
1030
- "required": [
1031
- "identifier"
1032
- ],
1033
- "properties": {
1034
- "active": {
1035
- "description": "Whether Tauri should bundle your application or just output the executable.",
1036
- "default": false,
1037
- "type": "boolean"
1038
- },
1039
- "targets": {
1040
- "description": "The bundle targets, currently supports [\"deb\", \"appimage\", \"nsis\", \"msi\", \"app\", \"dmg\", \"updater\"] or \"all\".",
1041
- "default": "all",
1042
- "allOf": [
1043
- {
1044
- "$ref": "#/definitions/BundleTarget"
1045
- }
721
+ {
722
+ "description": "Mica effect with light mode **Windows 11 Only**",
723
+ "type": "string",
724
+ "enum": [
725
+ "micaLight"
1046
726
  ]
1047
727
  },
1048
- "identifier": {
1049
- "description": "The application identifier in reverse domain name notation (e.g. `com.tauri.example`). This string must be unique across applications since it is used in system configurations like the bundle ID and path to the webview data directory. This string must contain only alphanumeric characters (A–Z, a–z, and 0–9), hyphens (-), and periods (.).",
1050
- "type": "string"
1051
- },
1052
- "publisher": {
1053
- "description": "The application's publisher. Defaults to the second element in the identifier string. Currently maps to the Manufacturer property of the Windows Installer.",
1054
- "type": [
1055
- "string",
1056
- "null"
728
+ {
729
+ "description": "Tabbed effect that matches the system dark perefence **Windows 11 Only**",
730
+ "type": "string",
731
+ "enum": [
732
+ "tabbed"
1057
733
  ]
1058
734
  },
1059
- "icon": {
1060
- "description": "The app's icons",
1061
- "default": [],
1062
- "type": "array",
1063
- "items": {
1064
- "type": "string"
1065
- }
1066
- },
1067
- "resources": {
1068
- "description": "App resources to bundle. Each resource is a path to a file or directory. Glob patterns are supported.",
1069
- "type": [
1070
- "array",
1071
- "null"
1072
- ],
1073
- "items": {
1074
- "type": "string"
1075
- }
735
+ {
736
+ "description": "Tabbed effect with dark mode but only if dark mode is enabled on the system **Windows 11 Only**",
737
+ "type": "string",
738
+ "enum": [
739
+ "tabbedDark"
740
+ ]
1076
741
  },
1077
- "copyright": {
1078
- "description": "A copyright string associated with your application.",
1079
- "type": [
1080
- "string",
1081
- "null"
742
+ {
743
+ "description": "Tabbed effect with light mode **Windows 11 Only**",
744
+ "type": "string",
745
+ "enum": [
746
+ "tabbedLight"
1082
747
  ]
1083
748
  },
1084
- "category": {
1085
- "description": "The application kind.\n\nShould be one of the following: Business, DeveloperTool, Education, Entertainment, Finance, Game, ActionGame, AdventureGame, ArcadeGame, BoardGame, CardGame, CasinoGame, DiceGame, EducationalGame, FamilyGame, KidsGame, MusicGame, PuzzleGame, RacingGame, RolePlayingGame, SimulationGame, SportsGame, StrategyGame, TriviaGame, WordGame, GraphicsAndDesign, HealthcareAndFitness, Lifestyle, Medical, Music, News, Photography, Productivity, Reference, SocialNetworking, Sports, Travel, Utility, Video, Weather.",
1086
- "type": [
1087
- "string",
1088
- "null"
749
+ {
750
+ "description": "**Windows 7/10/11(22H1) Only**\n\n## Notes\n\nThis effect has bad performance when resizing/dragging the window on Windows 11 build 22621.",
751
+ "type": "string",
752
+ "enum": [
753
+ "blur"
1089
754
  ]
1090
755
  },
1091
- "shortDescription": {
1092
- "description": "A short description of your application.",
1093
- "type": [
1094
- "string",
1095
- "null"
756
+ {
757
+ "description": "**Windows 10/11 Only**\n\n## Notes\n\nThis effect has bad performance when resizing/dragging the window on Windows 10 v1903+ and Windows 11 build 22000.",
758
+ "type": "string",
759
+ "enum": [
760
+ "acrylic"
761
+ ]
762
+ }
763
+ ]
764
+ },
765
+ "WindowEffectState": {
766
+ "description": "Window effect state **macOS only**\n\n<https://developer.apple.com/documentation/appkit/nsvisualeffectview/state>",
767
+ "oneOf": [
768
+ {
769
+ "description": "Make window effect state follow the window's active state",
770
+ "type": "string",
771
+ "enum": [
772
+ "followsWindowActiveState"
1096
773
  ]
1097
774
  },
1098
- "longDescription": {
1099
- "description": "A longer, multi-line description of the application.",
1100
- "type": [
1101
- "string",
1102
- "null"
775
+ {
776
+ "description": "Make window effect state always active",
777
+ "type": "string",
778
+ "enum": [
779
+ "active"
1103
780
  ]
1104
781
  },
1105
- "appimage": {
1106
- "description": "Configuration for the AppImage bundle.",
1107
- "default": {
1108
- "bundleMediaFramework": false
1109
- },
1110
- "allOf": [
1111
- {
1112
- "$ref": "#/definitions/AppImageConfig"
1113
- }
782
+ {
783
+ "description": "Make window effect state always inactive",
784
+ "type": "string",
785
+ "enum": [
786
+ "inactive"
1114
787
  ]
788
+ }
789
+ ]
790
+ },
791
+ "Color": {
792
+ "description": "a tuple struct of RGBA colors. Each value has minimum of 0 and maximum of 255.",
793
+ "type": "array",
794
+ "items": [
795
+ {
796
+ "type": "integer",
797
+ "format": "uint8",
798
+ "minimum": 0.0
1115
799
  },
1116
- "deb": {
1117
- "description": "Configuration for the Debian bundle.",
1118
- "default": {
1119
- "files": {}
1120
- },
1121
- "allOf": [
800
+ {
801
+ "type": "integer",
802
+ "format": "uint8",
803
+ "minimum": 0.0
804
+ },
805
+ {
806
+ "type": "integer",
807
+ "format": "uint8",
808
+ "minimum": 0.0
809
+ },
810
+ {
811
+ "type": "integer",
812
+ "format": "uint8",
813
+ "minimum": 0.0
814
+ }
815
+ ],
816
+ "maxItems": 4,
817
+ "minItems": 4
818
+ },
819
+ "SecurityConfig": {
820
+ "description": "Security configuration.\n\nSee more: <https://tauri.app/v1/api/config#securityconfig>",
821
+ "type": "object",
822
+ "properties": {
823
+ "csp": {
824
+ "description": "The Content Security Policy that will be injected on all HTML files on the built application. If [`dev_csp`](#SecurityConfig.devCsp) is not specified, this value is also injected on dev.\n\nThis is a really important part of the configuration since it helps you ensure your WebView is secured. See <https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP>.",
825
+ "anyOf": [
1122
826
  {
1123
- "$ref": "#/definitions/DebConfig"
827
+ "$ref": "#/definitions/Csp"
828
+ },
829
+ {
830
+ "type": "null"
1124
831
  }
1125
832
  ]
1126
833
  },
1127
- "macOS": {
1128
- "description": "Configuration for the macOS bundles.",
1129
- "default": {
1130
- "minimumSystemVersion": "10.13"
1131
- },
1132
- "allOf": [
834
+ "devCsp": {
835
+ "description": "The Content Security Policy that will be injected on all HTML files on development.\n\nThis is a really important part of the configuration since it helps you ensure your WebView is secured. See <https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP>.",
836
+ "anyOf": [
1133
837
  {
1134
- "$ref": "#/definitions/MacConfig"
838
+ "$ref": "#/definitions/Csp"
839
+ },
840
+ {
841
+ "type": "null"
1135
842
  }
1136
843
  ]
1137
844
  },
1138
- "externalBin": {
1139
- "description": "A list of—either absolute or relative—paths to binaries to embed with your application.\n\nNote that Tauri will look for system-specific binaries following the pattern \"binary-name{-target-triple}{.system-extension}\".\n\nE.g. for the external binary \"my-binary\", Tauri looks for:\n\n- \"my-binary-x86_64-pc-windows-msvc.exe\" for Windows - \"my-binary-x86_64-apple-darwin\" for macOS - \"my-binary-x86_64-unknown-linux-gnu\" for Linux\n\nso don't forget to provide binaries for all targeted platforms.",
1140
- "type": [
1141
- "array",
1142
- "null"
1143
- ],
1144
- "items": {
1145
- "type": "string"
1146
- }
845
+ "freezePrototype": {
846
+ "description": "Freeze the `Object.prototype` when using the custom protocol.",
847
+ "default": false,
848
+ "type": "boolean"
1147
849
  },
1148
- "windows": {
1149
- "description": "Configuration for the Windows bundle.",
1150
- "default": {
1151
- "allowDowngrades": true,
1152
- "certificateThumbprint": null,
1153
- "digestAlgorithm": null,
1154
- "nsis": null,
1155
- "timestampUrl": null,
1156
- "tsp": false,
1157
- "webviewFixedRuntimePath": null,
1158
- "webviewInstallMode": {
1159
- "silent": true,
1160
- "type": "downloadBootstrapper"
1161
- },
1162
- "wix": null
1163
- },
850
+ "dangerousDisableAssetCspModification": {
851
+ "description": "Disables the Tauri-injected CSP sources.\n\nAt compile time, Tauri parses all the frontend assets and changes the Content-Security-Policy to only allow loading of your own scripts and styles by injecting nonce and hash sources. This stricts your CSP, which may introduce issues when using along with other flexing sources.\n\nThis configuration option allows both a boolean and a list of strings as value. A boolean instructs Tauri to disable the injection for all CSP injections, and a list of strings indicates the CSP directives that Tauri cannot inject.\n\n**WARNING:** Only disable this if you know what you are doing and have properly configured the CSP. Your application might be vulnerable to XSS attacks without this Tauri protection.",
852
+ "default": false,
1164
853
  "allOf": [
1165
854
  {
1166
- "$ref": "#/definitions/WindowsConfig"
855
+ "$ref": "#/definitions/DisabledCspModificationKind"
1167
856
  }
1168
857
  ]
1169
858
  },
1170
- "iOS": {
1171
- "description": "iOS configuration.",
1172
- "default": {},
859
+ "assetProtocol": {
860
+ "description": "Custom protocol config.",
861
+ "default": {
862
+ "enable": false,
863
+ "scope": []
864
+ },
1173
865
  "allOf": [
1174
866
  {
1175
- "$ref": "#/definitions/IosConfig"
867
+ "$ref": "#/definitions/AssetProtocolConfig"
1176
868
  }
1177
869
  ]
1178
870
  },
1179
- "android": {
1180
- "description": "Android configuration.",
871
+ "pattern": {
872
+ "description": "The pattern to use.",
1181
873
  "default": {
1182
- "minSdkVersion": 24
874
+ "use": "brownfield"
1183
875
  },
1184
876
  "allOf": [
1185
877
  {
1186
- "$ref": "#/definitions/AndroidConfig"
878
+ "$ref": "#/definitions/PatternKind"
1187
879
  }
1188
880
  ]
1189
881
  }
1190
882
  },
1191
883
  "additionalProperties": false
1192
884
  },
1193
- "BundleTarget": {
1194
- "description": "Targets to bundle. Each value is case insensitive.",
885
+ "Csp": {
886
+ "description": "A Content-Security-Policy definition. See <https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP>.",
1195
887
  "anyOf": [
1196
888
  {
1197
- "description": "Bundle all targets.",
1198
- "enum": [
1199
- "all"
1200
- ]
889
+ "description": "The entire CSP policy in a single text string.",
890
+ "type": "string"
1201
891
  },
1202
892
  {
1203
- "description": "A list of bundle targets.",
1204
- "type": "array",
1205
- "items": {
1206
- "$ref": "#/definitions/BundleType"
893
+ "description": "An object mapping a directive with its sources values as a list of strings.",
894
+ "type": "object",
895
+ "additionalProperties": {
896
+ "$ref": "#/definitions/CspDirectiveSources"
1207
897
  }
1208
- },
1209
- {
1210
- "description": "A single bundle target.",
1211
- "allOf": [
1212
- {
1213
- "$ref": "#/definitions/BundleType"
1214
- }
1215
- ]
1216
898
  }
1217
899
  ]
1218
900
  },
1219
- "BundleType": {
1220
- "description": "A bundle referenced by tauri-bundler.",
1221
- "oneOf": [
901
+ "CspDirectiveSources": {
902
+ "description": "A Content-Security-Policy directive source list. See <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/Sources#sources>.",
903
+ "anyOf": [
1222
904
  {
1223
- "description": "The debian bundle (.deb).",
1224
- "type": "string",
1225
- "enum": [
1226
- "deb"
1227
- ]
1228
- },
1229
- {
1230
- "description": "The AppImage bundle (.appimage).",
1231
- "type": "string",
1232
- "enum": [
1233
- "appimage"
1234
- ]
1235
- },
1236
- {
1237
- "description": "The Microsoft Installer bundle (.msi).",
1238
- "type": "string",
1239
- "enum": [
1240
- "msi"
1241
- ]
1242
- },
1243
- {
1244
- "description": "The NSIS bundle (.exe).",
1245
- "type": "string",
1246
- "enum": [
1247
- "nsis"
1248
- ]
905
+ "description": "An inline list of CSP sources. Same as [`Self::List`], but concatenated with a space separator.",
906
+ "type": "string"
1249
907
  },
1250
908
  {
1251
- "description": "The macOS application bundle (.app).",
1252
- "type": "string",
1253
- "enum": [
1254
- "app"
1255
- ]
1256
- },
909
+ "description": "A list of CSP sources. The collection will be concatenated with a space separator for the CSP string.",
910
+ "type": "array",
911
+ "items": {
912
+ "type": "string"
913
+ }
914
+ }
915
+ ]
916
+ },
917
+ "DisabledCspModificationKind": {
918
+ "description": "The possible values for the `dangerous_disable_asset_csp_modification` config option.",
919
+ "anyOf": [
1257
920
  {
1258
- "description": "The Apple Disk Image bundle (.dmg).",
1259
- "type": "string",
1260
- "enum": [
1261
- "dmg"
1262
- ]
921
+ "description": "If `true`, disables all CSP modification. `false` is the default value and it configures Tauri to control the CSP.",
922
+ "type": "boolean"
1263
923
  },
1264
924
  {
1265
- "description": "The Tauri updater bundle.",
1266
- "type": "string",
1267
- "enum": [
1268
- "updater"
1269
- ]
925
+ "description": "Disables the given list of CSP directives modifications.",
926
+ "type": "array",
927
+ "items": {
928
+ "type": "string"
929
+ }
1270
930
  }
1271
931
  ]
1272
932
  },
1273
- "AppImageConfig": {
1274
- "description": "Configuration for AppImage bundles.\n\nSee more: https://tauri.app/v1/api/config#appimageconfig",
933
+ "AssetProtocolConfig": {
934
+ "description": "Config for the asset custom protocol.\n\nSee more: <https://tauri.app/v1/api/config#assetprotocolconfig>",
1275
935
  "type": "object",
1276
936
  "properties": {
1277
- "bundleMediaFramework": {
1278
- "description": "Include additional gstreamer dependencies needed for audio and video playback. This increases the bundle size by ~15-35MB depending on your build system.",
937
+ "scope": {
938
+ "description": "The access scope for the asset protocol.",
939
+ "default": [],
940
+ "allOf": [
941
+ {
942
+ "$ref": "#/definitions/FsScope"
943
+ }
944
+ ]
945
+ },
946
+ "enable": {
947
+ "description": "Enables the asset protocol.",
1279
948
  "default": false,
1280
949
  "type": "boolean"
1281
950
  }
1282
951
  },
1283
952
  "additionalProperties": false
1284
953
  },
1285
- "DebConfig": {
1286
- "description": "Configuration for Debian (.deb) bundles.\n\nSee more: https://tauri.app/v1/api/config#debconfig",
1287
- "type": "object",
1288
- "properties": {
1289
- "depends": {
1290
- "description": "The list of deb dependencies your application relies on.",
1291
- "type": [
1292
- "array",
1293
- "null"
1294
- ],
954
+ "FsScope": {
955
+ "description": "Protocol scope definition. It is a list of glob patterns that restrict the API access from the webview.\n\nEach pattern can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.",
956
+ "anyOf": [
957
+ {
958
+ "description": "A list of paths that are allowed by this scope.",
959
+ "type": "array",
1295
960
  "items": {
1296
961
  "type": "string"
1297
962
  }
1298
963
  },
1299
- "files": {
1300
- "description": "The files to include on the package.",
1301
- "default": {},
964
+ {
965
+ "description": "A complete scope configuration.",
1302
966
  "type": "object",
1303
- "additionalProperties": {
1304
- "type": "string"
967
+ "properties": {
968
+ "allow": {
969
+ "description": "A list of paths that are allowed by this scope.",
970
+ "default": [],
971
+ "type": "array",
972
+ "items": {
973
+ "type": "string"
974
+ }
975
+ },
976
+ "deny": {
977
+ "description": "A list of paths that are not allowed by this scope. This gets precedence over the [`Self::Scope::allow`] list.",
978
+ "default": [],
979
+ "type": "array",
980
+ "items": {
981
+ "type": "string"
982
+ }
983
+ },
984
+ "requireLiteralLeadingDot": {
985
+ "description": "Whether or not paths that contain components that start with a `.` will require that `.` appears literally in the pattern; `*`, `?`, `**`, or `[...]` will not match. This is useful because such files are conventionally considered hidden on Unix systems and it might be desirable to skip them when listing files.\n\nDefaults to `true` on Unix systems and `false` on Windows",
986
+ "type": [
987
+ "boolean",
988
+ "null"
989
+ ]
990
+ }
1305
991
  }
1306
992
  }
1307
- },
1308
- "additionalProperties": false
993
+ ]
1309
994
  },
1310
- "MacConfig": {
1311
- "description": "Configuration for the macOS bundles.\n\nSee more: https://tauri.app/v1/api/config#macconfig",
1312
- "type": "object",
1313
- "properties": {
1314
- "frameworks": {
1315
- "description": "A list of strings indicating any macOS X frameworks that need to be bundled with the application.\n\nIf a name is used, \".framework\" must be omitted and it will look for standard install locations. You may also use a path to a specific framework.",
1316
- "type": [
1317
- "array",
1318
- "null"
995
+ "PatternKind": {
996
+ "description": "The application pattern.",
997
+ "oneOf": [
998
+ {
999
+ "description": "Brownfield pattern.",
1000
+ "type": "object",
1001
+ "required": [
1002
+ "use"
1319
1003
  ],
1320
- "items": {
1321
- "type": "string"
1004
+ "properties": {
1005
+ "use": {
1006
+ "type": "string",
1007
+ "enum": [
1008
+ "brownfield"
1009
+ ]
1010
+ }
1322
1011
  }
1323
1012
  },
1324
- "minimumSystemVersion": {
1325
- "description": "A version string indicating the minimum macOS X version that the bundled application supports. Defaults to `10.13`.\n\nSetting it to `null` completely removes the `LSMinimumSystemVersion` field on the bundle's `Info.plist` and the `MACOSX_DEPLOYMENT_TARGET` environment variable.\n\nAn empty string is considered an invalid value so the default value is used.",
1326
- "default": "10.13",
1013
+ {
1014
+ "description": "Isolation pattern. Recommended for security purposes.",
1015
+ "type": "object",
1016
+ "required": [
1017
+ "options",
1018
+ "use"
1019
+ ],
1020
+ "properties": {
1021
+ "use": {
1022
+ "type": "string",
1023
+ "enum": [
1024
+ "isolation"
1025
+ ]
1026
+ },
1027
+ "options": {
1028
+ "type": "object",
1029
+ "required": [
1030
+ "dir"
1031
+ ],
1032
+ "properties": {
1033
+ "dir": {
1034
+ "description": "The dir containing the index.html file that contains the secure isolation application.",
1035
+ "type": "string"
1036
+ }
1037
+ }
1038
+ }
1039
+ }
1040
+ }
1041
+ ]
1042
+ },
1043
+ "TrayIconConfig": {
1044
+ "description": "Configuration for application tray icon.\n\nSee more: <https://tauri.app/v1/api/config#trayiconconfig>",
1045
+ "type": "object",
1046
+ "required": [
1047
+ "iconPath"
1048
+ ],
1049
+ "properties": {
1050
+ "id": {
1051
+ "description": "Set an id for this tray icon so you can reference it later, defaults to `main`.",
1327
1052
  "type": [
1328
1053
  "string",
1329
1054
  "null"
1330
1055
  ]
1331
1056
  },
1332
- "exceptionDomain": {
1333
- "description": "Allows your application to communicate with the outside world. It should be a lowercase, without port and protocol domain name.",
1334
- "type": [
1335
- "string",
1336
- "null"
1337
- ]
1057
+ "iconPath": {
1058
+ "description": "Path to the default icon to use for the tray icon.",
1059
+ "type": "string"
1338
1060
  },
1339
- "license": {
1340
- "description": "The path to the license file to add to the DMG bundle.",
1341
- "type": [
1342
- "string",
1343
- "null"
1344
- ]
1061
+ "iconAsTemplate": {
1062
+ "description": "A Boolean value that determines whether the image represents a [template](https://developer.apple.com/documentation/appkit/nsimage/1520017-template?language=objc) image on macOS.",
1063
+ "default": false,
1064
+ "type": "boolean"
1345
1065
  },
1346
- "signingIdentity": {
1347
- "description": "Identity to use for code signing.",
1348
- "type": [
1349
- "string",
1350
- "null"
1351
- ]
1066
+ "menuOnLeftClick": {
1067
+ "description": "A Boolean value that determines whether the menu should appear when the tray icon receives a left click on macOS.",
1068
+ "default": true,
1069
+ "type": "boolean"
1352
1070
  },
1353
- "providerShortName": {
1354
- "description": "Provider short name for notarization.",
1071
+ "title": {
1072
+ "description": "Title for MacOS tray",
1355
1073
  "type": [
1356
1074
  "string",
1357
1075
  "null"
1358
1076
  ]
1359
1077
  },
1360
- "entitlements": {
1361
- "description": "Path to the entitlements file.",
1078
+ "tooltip": {
1079
+ "description": "Tray icon tooltip on Windows and macOS",
1362
1080
  "type": [
1363
1081
  "string",
1364
1082
  "null"
@@ -1367,372 +1085,264 @@
1367
1085
  },
1368
1086
  "additionalProperties": false
1369
1087
  },
1370
- "WindowsConfig": {
1371
- "description": "Windows bundler configuration.\n\nSee more: https://tauri.app/v1/api/config#windowsconfig",
1088
+ "BuildConfig": {
1089
+ "description": "The Build configuration object.\n\nSee more: <https://tauri.app/v1/api/config#buildconfig>",
1372
1090
  "type": "object",
1373
1091
  "properties": {
1374
- "digestAlgorithm": {
1375
- "description": "Specifies the file digest algorithm to use for creating file signatures. Required for code signing. SHA-256 is recommended.",
1092
+ "runner": {
1093
+ "description": "The binary used to build and run the application.",
1376
1094
  "type": [
1377
1095
  "string",
1378
1096
  "null"
1379
1097
  ]
1380
1098
  },
1381
- "certificateThumbprint": {
1382
- "description": "Specifies the SHA1 hash of the signing certificate.",
1099
+ "devUrl": {
1100
+ "description": "The URL to load in development.\n\nThis is usually an URL to a dev server, which serves your application assets with hot-reload and HMR. Most modern JavaScript bundlers like [vite](https://vitejs.dev/guide/) provides a way to start a dev server by default.\n\nIf you don't have a dev server or don't want to use one, ignore this option and use [`frontendDist`](BuildConfig::frontend_dist) and point to a web assets directory, and Tauri CLI will run its built-in dev server and provide a simple hot-reload experience.",
1383
1101
  "type": [
1384
1102
  "string",
1385
1103
  "null"
1386
- ]
1104
+ ],
1105
+ "format": "uri"
1387
1106
  },
1388
- "timestampUrl": {
1389
- "description": "Server to use during timestamping.",
1390
- "type": [
1391
- "string",
1392
- "null"
1107
+ "frontendDist": {
1108
+ "description": "The path to the application assets (usually the `dist` folder of your javascript bundler) or a URL that could be either a custom protocol registered in the tauri app (for example: `myprotocol://`) or a remote URL (for example: `https://site.com/app`).\n\nWhen a path relative to the configuration file is provided, it is read recursively and all files are embedded in the application binary. Tauri then looks for an `index.html` and serves it as the default entry point for your application.\n\nYou can also provide a list of paths to be embedded, which allows granular control over what files are added to the binary. In this case, all files are added to the root and you must reference it that way in your HTML files.\n\nWhen a URL is provided, the application won't have bundled assets and the application will load that URL by default.",
1109
+ "anyOf": [
1110
+ {
1111
+ "$ref": "#/definitions/FrontendDist"
1112
+ },
1113
+ {
1114
+ "type": "null"
1115
+ }
1393
1116
  ]
1394
1117
  },
1395
- "tsp": {
1396
- "description": "Whether to use Time-Stamp Protocol (TSP, a.k.a. RFC 3161) for the timestamp server. Your code signing provider may use a TSP timestamp server, like e.g. SSL.com does. If so, enable TSP by setting to true.",
1397
- "default": false,
1398
- "type": "boolean"
1399
- },
1400
- "webviewInstallMode": {
1401
- "description": "The installation mode for the Webview2 runtime.",
1402
- "default": {
1403
- "silent": true,
1404
- "type": "downloadBootstrapper"
1405
- },
1406
- "allOf": [
1118
+ "beforeDevCommand": {
1119
+ "description": "A shell command to run before `tauri dev` kicks in.\n\nThe TAURI_ENV_PLATFORM, TAURI_ENV_ARCH, TAURI_ENV_FAMILY, TAURI_ENV_PLATFORM_VERSION, TAURI_ENV_PLATFORM_TYPE and TAURI_ENV_DEBUG environment variables are set if you perform conditional compilation.",
1120
+ "anyOf": [
1407
1121
  {
1408
- "$ref": "#/definitions/WebviewInstallMode"
1122
+ "$ref": "#/definitions/BeforeDevCommand"
1123
+ },
1124
+ {
1125
+ "type": "null"
1409
1126
  }
1410
1127
  ]
1411
1128
  },
1412
- "webviewFixedRuntimePath": {
1413
- "description": "Path to the webview fixed runtime to use. Overwrites [`Self::webview_install_mode`] if set.\n\nWill be removed in v2, prefer the [`Self::webview_install_mode`] option.\n\nThe fixed version can be downloaded [on the official website](https://developer.microsoft.com/en-us/microsoft-edge/webview2/#download-section). The `.cab` file must be extracted to a folder and this folder path must be defined on this field.",
1414
- "type": [
1415
- "string",
1416
- "null"
1417
- ]
1418
- },
1419
- "allowDowngrades": {
1420
- "description": "Validates a second app installation, blocking the user from installing an older version if set to `false`.\n\nFor instance, if `1.2.1` is installed, the user won't be able to install app version `1.2.0` or `1.1.5`.\n\nThe default value of this flag is `true`.",
1421
- "default": true,
1422
- "type": "boolean"
1423
- },
1424
- "wix": {
1425
- "description": "Configuration for the MSI generated with WiX.",
1129
+ "beforeBuildCommand": {
1130
+ "description": "A shell command to run before `tauri build` kicks in.\n\nThe TAURI_ENV_PLATFORM, TAURI_ENV_ARCH, TAURI_ENV_FAMILY, TAURI_ENV_PLATFORM_VERSION, TAURI_ENV_PLATFORM_TYPE and TAURI_ENV_DEBUG environment variables are set if you perform conditional compilation.",
1426
1131
  "anyOf": [
1427
1132
  {
1428
- "$ref": "#/definitions/WixConfig"
1133
+ "$ref": "#/definitions/HookCommand"
1429
1134
  },
1430
1135
  {
1431
1136
  "type": "null"
1432
1137
  }
1433
1138
  ]
1434
1139
  },
1435
- "nsis": {
1436
- "description": "Configuration for the installer generated with NSIS.",
1140
+ "beforeBundleCommand": {
1141
+ "description": "A shell command to run before the bundling phase in `tauri build` kicks in.\n\nThe TAURI_ENV_PLATFORM, TAURI_ENV_ARCH, TAURI_ENV_FAMILY, TAURI_ENV_PLATFORM_VERSION, TAURI_ENV_PLATFORM_TYPE and TAURI_ENV_DEBUG environment variables are set if you perform conditional compilation.",
1437
1142
  "anyOf": [
1438
1143
  {
1439
- "$ref": "#/definitions/NsisConfig"
1144
+ "$ref": "#/definitions/HookCommand"
1440
1145
  },
1441
1146
  {
1442
1147
  "type": "null"
1443
1148
  }
1444
1149
  ]
1150
+ },
1151
+ "features": {
1152
+ "description": "Features passed to `cargo` commands.",
1153
+ "type": [
1154
+ "array",
1155
+ "null"
1156
+ ],
1157
+ "items": {
1158
+ "type": "string"
1159
+ }
1445
1160
  }
1446
1161
  },
1447
1162
  "additionalProperties": false
1448
1163
  },
1449
- "WebviewInstallMode": {
1450
- "description": "Install modes for the Webview2 runtime. Note that for the updater bundle [`Self::DownloadBootstrapper`] is used.\n\nFor more information see <https://tauri.app/v1/guides/building/windows>.",
1451
- "oneOf": [
1164
+ "FrontendDist": {
1165
+ "description": "Defines the URL or assets to embed in the application.",
1166
+ "anyOf": [
1452
1167
  {
1453
- "description": "Do not install the Webview2 as part of the Windows Installer.",
1454
- "type": "object",
1455
- "required": [
1456
- "type"
1457
- ],
1458
- "properties": {
1459
- "type": {
1460
- "type": "string",
1461
- "enum": [
1462
- "skip"
1463
- ]
1464
- }
1465
- },
1466
- "additionalProperties": false
1168
+ "description": "An external URL that should be used as the default application URL.",
1169
+ "type": "string",
1170
+ "format": "uri"
1467
1171
  },
1468
1172
  {
1469
- "description": "Download the bootstrapper and run it. Requires an internet connection. Results in a smaller installer size, but is not recommended on Windows 7.",
1470
- "type": "object",
1471
- "required": [
1472
- "type"
1473
- ],
1474
- "properties": {
1475
- "type": {
1476
- "type": "string",
1477
- "enum": [
1478
- "downloadBootstrapper"
1479
- ]
1480
- },
1481
- "silent": {
1482
- "description": "Instructs the installer to run the bootstrapper in silent mode. Defaults to `true`.",
1483
- "default": true,
1484
- "type": "boolean"
1485
- }
1486
- },
1487
- "additionalProperties": false
1173
+ "description": "Path to a directory containing the frontend dist assets.",
1174
+ "type": "string"
1488
1175
  },
1489
1176
  {
1490
- "description": "Embed the bootstrapper and run it. Requires an internet connection. Increases the installer size by around 1.8MB, but offers better support on Windows 7.",
1491
- "type": "object",
1492
- "required": [
1493
- "type"
1494
- ],
1495
- "properties": {
1496
- "type": {
1497
- "type": "string",
1498
- "enum": [
1499
- "embedBootstrapper"
1500
- ]
1501
- },
1502
- "silent": {
1503
- "description": "Instructs the installer to run the bootstrapper in silent mode. Defaults to `true`.",
1504
- "default": true,
1505
- "type": "boolean"
1506
- }
1507
- },
1508
- "additionalProperties": false
1177
+ "description": "An array of files to embed on the app.",
1178
+ "type": "array",
1179
+ "items": {
1180
+ "type": "string"
1181
+ }
1182
+ }
1183
+ ]
1184
+ },
1185
+ "BeforeDevCommand": {
1186
+ "description": "Describes the shell command to run before `tauri dev`.",
1187
+ "anyOf": [
1188
+ {
1189
+ "description": "Run the given script with the default options.",
1190
+ "type": "string"
1509
1191
  },
1510
1192
  {
1511
- "description": "Embed the offline installer and run it. Does not require an internet connection. Increases the installer size by around 127MB.",
1193
+ "description": "Run the given script with custom options.",
1512
1194
  "type": "object",
1513
1195
  "required": [
1514
- "type"
1196
+ "script"
1515
1197
  ],
1516
1198
  "properties": {
1517
- "type": {
1518
- "type": "string",
1519
- "enum": [
1520
- "offlineInstaller"
1199
+ "script": {
1200
+ "description": "The script to execute.",
1201
+ "type": "string"
1202
+ },
1203
+ "cwd": {
1204
+ "description": "The current working directory.",
1205
+ "type": [
1206
+ "string",
1207
+ "null"
1521
1208
  ]
1522
1209
  },
1523
- "silent": {
1524
- "description": "Instructs the installer to run the installer in silent mode. Defaults to `true`.",
1525
- "default": true,
1210
+ "wait": {
1211
+ "description": "Whether `tauri dev` should wait for the command to finish or not. Defaults to `false`.",
1212
+ "default": false,
1526
1213
  "type": "boolean"
1527
1214
  }
1528
- },
1529
- "additionalProperties": false
1215
+ }
1216
+ }
1217
+ ]
1218
+ },
1219
+ "HookCommand": {
1220
+ "description": "Describes a shell command to be executed when a CLI hook is triggered.",
1221
+ "anyOf": [
1222
+ {
1223
+ "description": "Run the given script with the default options.",
1224
+ "type": "string"
1530
1225
  },
1531
1226
  {
1532
- "description": "Embed a fixed webview2 version and use it at runtime. Increases the installer size by around 180MB.",
1227
+ "description": "Run the given script with custom options.",
1533
1228
  "type": "object",
1534
1229
  "required": [
1535
- "path",
1536
- "type"
1230
+ "script"
1537
1231
  ],
1538
1232
  "properties": {
1539
- "type": {
1540
- "type": "string",
1541
- "enum": [
1542
- "fixedRuntime"
1543
- ]
1544
- },
1545
- "path": {
1546
- "description": "The path to the fixed runtime to use.\n\nThe fixed version can be downloaded [on the official website](https://developer.microsoft.com/en-us/microsoft-edge/webview2/#download-section). The `.cab` file must be extracted to a folder and this folder path must be defined on this field.",
1233
+ "script": {
1234
+ "description": "The script to execute.",
1547
1235
  "type": "string"
1236
+ },
1237
+ "cwd": {
1238
+ "description": "The current working directory.",
1239
+ "type": [
1240
+ "string",
1241
+ "null"
1242
+ ]
1548
1243
  }
1549
- },
1550
- "additionalProperties": false
1244
+ }
1551
1245
  }
1552
1246
  ]
1553
1247
  },
1554
- "WixConfig": {
1555
- "description": "Configuration for the MSI bundle using WiX.\n\nSee more: https://tauri.app/v1/api/config#wixconfig",
1248
+ "BundleConfig": {
1249
+ "description": "Configuration for tauri-bundler.\n\nSee more: <https://tauri.app/v1/api/config#bundleconfig>",
1556
1250
  "type": "object",
1557
1251
  "properties": {
1558
- "language": {
1559
- "description": "The installer languages to build. See <https://docs.microsoft.com/en-us/windows/win32/msi/localizing-the-error-and-actiontext-tables>.",
1560
- "default": "en-US",
1252
+ "active": {
1253
+ "description": "Whether Tauri should bundle your application or just output the executable.",
1254
+ "default": false,
1255
+ "type": "boolean"
1256
+ },
1257
+ "targets": {
1258
+ "description": "The bundle targets, currently supports [\"deb\", \"rpm\", \"appimage\", \"nsis\", \"msi\", \"app\", \"dmg\", \"updater\"] or \"all\".",
1259
+ "default": "all",
1561
1260
  "allOf": [
1562
1261
  {
1563
- "$ref": "#/definitions/WixLanguage"
1262
+ "$ref": "#/definitions/BundleTarget"
1564
1263
  }
1565
1264
  ]
1566
1265
  },
1567
- "template": {
1568
- "description": "A custom .wxs template to use.",
1266
+ "publisher": {
1267
+ "description": "The application's publisher. Defaults to the second element in the identifier string. Currently maps to the Manufacturer property of the Windows Installer.",
1569
1268
  "type": [
1570
1269
  "string",
1571
1270
  "null"
1572
1271
  ]
1573
1272
  },
1574
- "fragmentPaths": {
1575
- "description": "A list of paths to .wxs files with WiX fragments to use.",
1576
- "default": [],
1577
- "type": "array",
1578
- "items": {
1579
- "type": "string"
1580
- }
1581
- },
1582
- "componentGroupRefs": {
1583
- "description": "The ComponentGroup element ids you want to reference from the fragments.",
1584
- "default": [],
1585
- "type": "array",
1586
- "items": {
1587
- "type": "string"
1588
- }
1589
- },
1590
- "componentRefs": {
1591
- "description": "The Component element ids you want to reference from the fragments.",
1592
- "default": [],
1593
- "type": "array",
1594
- "items": {
1595
- "type": "string"
1596
- }
1597
- },
1598
- "featureGroupRefs": {
1599
- "description": "The FeatureGroup element ids you want to reference from the fragments.",
1600
- "default": [],
1601
- "type": "array",
1602
- "items": {
1603
- "type": "string"
1604
- }
1605
- },
1606
- "featureRefs": {
1607
- "description": "The Feature element ids you want to reference from the fragments.",
1273
+ "icon": {
1274
+ "description": "The app's icons",
1608
1275
  "default": [],
1609
1276
  "type": "array",
1610
1277
  "items": {
1611
1278
  "type": "string"
1612
1279
  }
1613
1280
  },
1614
- "mergeRefs": {
1615
- "description": "The Merge element ids you want to reference from the fragments.",
1616
- "default": [],
1617
- "type": "array",
1618
- "items": {
1619
- "type": "string"
1620
- }
1281
+ "resources": {
1282
+ "description": "App resources to bundle. Each resource is a path to a file or directory. Glob patterns are supported.",
1283
+ "anyOf": [
1284
+ {
1285
+ "$ref": "#/definitions/BundleResources"
1286
+ },
1287
+ {
1288
+ "type": "null"
1289
+ }
1290
+ ]
1621
1291
  },
1622
- "skipWebviewInstall": {
1623
- "description": "Disables the Webview2 runtime installation after app install.\n\nWill be removed in v2, prefer the [`WindowsConfig::webview_install_mode`] option.",
1624
- "default": false,
1625
- "type": "boolean"
1292
+ "copyright": {
1293
+ "description": "A copyright string associated with your application.",
1294
+ "type": [
1295
+ "string",
1296
+ "null"
1297
+ ]
1626
1298
  },
1627
1299
  "license": {
1628
- "description": "The path to the license file to render on the installer.\n\nMust be an RTF file, so if a different extension is provided, we convert it to the RTF format.",
1300
+ "description": "The package's license identifier to be included in the appropriate bundles. If not set, defaults to the license from the Cargo.toml file.",
1629
1301
  "type": [
1630
1302
  "string",
1631
1303
  "null"
1632
1304
  ]
1633
1305
  },
1634
- "enableElevatedUpdateTask": {
1635
- "description": "Create an elevated update task within Windows Task Scheduler.",
1636
- "default": false,
1637
- "type": "boolean"
1638
- },
1639
- "bannerPath": {
1640
- "description": "Path to a bitmap file to use as the installation user interface banner. This bitmap will appear at the top of all but the first page of the installer.\n\nThe required dimensions are 493px × 58px.",
1306
+ "licenseFile": {
1307
+ "description": "The path to the license file to be included in the appropriate bundles.",
1641
1308
  "type": [
1642
1309
  "string",
1643
1310
  "null"
1644
1311
  ]
1645
1312
  },
1646
- "dialogImagePath": {
1647
- "description": "Path to a bitmap file to use on the installation user interface dialogs. It is used on the welcome and completion dialogs. The required dimensions are 493px × 312px.",
1648
- "type": [
1649
- "string",
1650
- "null"
1651
- ]
1652
- }
1653
- },
1654
- "additionalProperties": false
1655
- },
1656
- "WixLanguage": {
1657
- "description": "The languages to build using WiX.",
1658
- "anyOf": [
1659
- {
1660
- "description": "A single language to build, without configuration.",
1661
- "type": "string"
1662
- },
1663
- {
1664
- "description": "A list of languages to build, without configuration.",
1665
- "type": "array",
1666
- "items": {
1667
- "type": "string"
1668
- }
1669
- },
1670
- {
1671
- "description": "A map of languages and its configuration.",
1672
- "type": "object",
1673
- "additionalProperties": {
1674
- "$ref": "#/definitions/WixLanguageConfig"
1675
- }
1676
- }
1677
- ]
1678
- },
1679
- "WixLanguageConfig": {
1680
- "description": "Configuration for a target language for the WiX build.\n\nSee more: https://tauri.app/v1/api/config#wixlanguageconfig",
1681
- "type": "object",
1682
- "properties": {
1683
- "localePath": {
1684
- "description": "The path to a locale (`.wxl`) file. See <https://wixtoolset.org/documentation/manual/v3/howtos/ui_and_localization/build_a_localized_version.html>.",
1685
- "type": [
1686
- "string",
1687
- "null"
1688
- ]
1689
- }
1690
- },
1691
- "additionalProperties": false
1692
- },
1693
- "NsisConfig": {
1694
- "description": "Configuration for the Installer bundle using NSIS.",
1695
- "type": "object",
1696
- "properties": {
1697
- "license": {
1698
- "description": "The path to the license file to render on the installer.",
1313
+ "category": {
1314
+ "description": "The application kind.\n\nShould be one of the following: Business, DeveloperTool, Education, Entertainment, Finance, Game, ActionGame, AdventureGame, ArcadeGame, BoardGame, CardGame, CasinoGame, DiceGame, EducationalGame, FamilyGame, KidsGame, MusicGame, PuzzleGame, RacingGame, RolePlayingGame, SimulationGame, SportsGame, StrategyGame, TriviaGame, WordGame, GraphicsAndDesign, HealthcareAndFitness, Lifestyle, Medical, Music, News, Photography, Productivity, Reference, SocialNetworking, Sports, Travel, Utility, Video, Weather.",
1699
1315
  "type": [
1700
1316
  "string",
1701
1317
  "null"
1702
1318
  ]
1703
1319
  },
1704
- "headerImage": {
1705
- "description": "The path to a bitmap file to display on the header of installers pages.\n\nThe recommended dimensions are 150px x 57px.",
1320
+ "fileAssociations": {
1321
+ "description": "File associations to application.",
1706
1322
  "type": [
1707
- "string",
1323
+ "array",
1708
1324
  "null"
1709
- ]
1325
+ ],
1326
+ "items": {
1327
+ "$ref": "#/definitions/FileAssociation"
1328
+ }
1710
1329
  },
1711
- "sidebarImage": {
1712
- "description": "The path to a bitmap file for the Welcome page and the Finish page.\n\nThe recommended dimensions are 164px x 314px.",
1330
+ "shortDescription": {
1331
+ "description": "A short description of your application.",
1713
1332
  "type": [
1714
1333
  "string",
1715
1334
  "null"
1716
1335
  ]
1717
1336
  },
1718
- "installerIcon": {
1719
- "description": "The path to an icon file used as the installer icon.",
1337
+ "longDescription": {
1338
+ "description": "A longer, multi-line description of the application.",
1720
1339
  "type": [
1721
1340
  "string",
1722
1341
  "null"
1723
1342
  ]
1724
1343
  },
1725
- "installMode": {
1726
- "description": "Whether the installation will be for all users or just the current user.",
1727
- "default": "currentUser",
1728
- "allOf": [
1729
- {
1730
- "$ref": "#/definitions/NSISInstallerMode"
1731
- }
1732
- ]
1733
- },
1734
- "languages": {
1735
- "description": "A list of installer languages. By default the OS language is used. If the OS language is not in the list of languages, the first language will be used. To allow the user to select the language, set `display_language_selector` to `true`.\n\nSee <https://github.com/kichik/nsis/tree/9465c08046f00ccb6eda985abbdbf52c275c6c4d/Contrib/Language%20files> for the complete list of languages.",
1344
+ "externalBin": {
1345
+ "description": "A list of—either absolute or relative—paths to binaries to embed with your application.\n\nNote that Tauri will look for system-specific binaries following the pattern \"binary-name{-target-triple}{.system-extension}\".\n\nE.g. for the external binary \"my-binary\", Tauri looks for:\n\n- \"my-binary-x86_64-pc-windows-msvc.exe\" for Windows - \"my-binary-x86_64-apple-darwin\" for macOS - \"my-binary-x86_64-unknown-linux-gnu\" for Linux\n\nso don't forget to provide binaries for all targeted platforms.",
1736
1346
  "type": [
1737
1347
  "array",
1738
1348
  "null"
@@ -1741,662 +1351,473 @@
1741
1351
  "type": "string"
1742
1352
  }
1743
1353
  },
1744
- "displayLanguageSelector": {
1745
- "description": "Whether to display a language selector dialog before the installer and uninstaller windows are rendered or not. By default the OS language is selected, with a fallback to the first language in the `languages` array.",
1746
- "default": false,
1747
- "type": "boolean"
1748
- }
1749
- },
1750
- "additionalProperties": false
1751
- },
1752
- "NSISInstallerMode": {
1753
- "description": "Install Modes for the NSIS installer.",
1754
- "oneOf": [
1755
- {
1756
- "description": "Default mode for the installer.\n\nInstall the app by default in a directory that doesn't require Administrator access.\n\nInstaller metadata will be saved under the `HKCU` registry path.",
1757
- "type": "string",
1758
- "enum": [
1759
- "currentUser"
1760
- ]
1761
- },
1762
- {
1763
- "description": "Install the app by default in the `Program Files` folder directory requires Administrator access for the installation.\n\nInstaller metadata will be saved under the `HKLM` registry path.",
1764
- "type": "string",
1765
- "enum": [
1766
- "perMachine"
1767
- ]
1768
- },
1769
- {
1770
- "description": "Combines both modes and allows the user to choose at install time whether to install for the current user or per machine. Note that this mode will require Administrator access even if the user wants to install it for the current user only.\n\nInstaller metadata will be saved under the `HKLM` or `HKCU` registry path based on the user's choice.",
1771
- "type": "string",
1772
- "enum": [
1773
- "both"
1774
- ]
1775
- }
1776
- ]
1777
- },
1778
- "IosConfig": {
1779
- "description": "General configuration for the iOS target.",
1780
- "type": "object",
1781
- "properties": {
1782
- "developmentTeam": {
1783
- "description": "The development team. This value is required for iOS development because code signing is enforced. The `TAURI_APPLE_DEVELOPMENT_TEAM` environment variable can be set to overwrite it.",
1784
- "type": [
1785
- "string",
1786
- "null"
1787
- ]
1788
- }
1789
- },
1790
- "additionalProperties": false
1791
- },
1792
- "AndroidConfig": {
1793
- "description": "General configuration for the iOS target.",
1794
- "type": "object",
1795
- "properties": {
1796
- "minSdkVersion": {
1797
- "description": "The minimum API level required for the application to run. The Android system will prevent the user from installing the application if the system's API level is lower than the value specified.",
1798
- "default": 24,
1799
- "type": "integer",
1800
- "format": "uint32",
1801
- "minimum": 0.0
1802
- }
1803
- },
1804
- "additionalProperties": false
1805
- },
1806
- "AllowlistConfig": {
1807
- "description": "Allowlist configuration. The allowlist is a translation of the [Cargo allowlist features](https://docs.rs/tauri/latest/tauri/#cargo-allowlist-features).\n\n# Notes\n\n- Endpoints that don't have their own allowlist option are enabled by default. - There is only \"opt-in\", no \"opt-out\". Setting an option to `false` has no effect.\n\n# Examples\n\n- * [`\"app-all\": true`](https://tauri.app/v1/api/config/#appallowlistconfig.all) will make the [hide](https://tauri.app/v1/api/js/app#hide) endpoint be available regardless of whether `hide` is set to `false` or `true` in the allowlist.",
1808
- "type": "object",
1809
- "properties": {
1810
- "all": {
1811
- "description": "Use this flag to enable all API features.",
1812
- "default": false,
1813
- "type": "boolean"
1814
- },
1815
- "fs": {
1816
- "description": "File system API allowlist.",
1354
+ "windows": {
1355
+ "description": "Configuration for the Windows bundles.",
1817
1356
  "default": {
1818
- "all": false,
1819
- "copyFile": false,
1820
- "createDir": false,
1821
- "exists": false,
1822
- "readDir": false,
1823
- "readFile": false,
1824
- "removeDir": false,
1825
- "removeFile": false,
1826
- "renameFile": false,
1827
- "scope": [],
1828
- "writeFile": false
1357
+ "allowDowngrades": true,
1358
+ "certificateThumbprint": null,
1359
+ "digestAlgorithm": null,
1360
+ "nsis": null,
1361
+ "timestampUrl": null,
1362
+ "tsp": false,
1363
+ "webviewFixedRuntimePath": null,
1364
+ "webviewInstallMode": {
1365
+ "silent": true,
1366
+ "type": "downloadBootstrapper"
1367
+ },
1368
+ "wix": null
1829
1369
  },
1830
1370
  "allOf": [
1831
1371
  {
1832
- "$ref": "#/definitions/FsAllowlistConfig"
1372
+ "$ref": "#/definitions/WindowsConfig"
1833
1373
  }
1834
1374
  ]
1835
1375
  },
1836
- "window": {
1837
- "description": "Window API allowlist.",
1376
+ "linux": {
1377
+ "description": "Configuration for the Linux bundles.",
1838
1378
  "default": {
1839
- "all": false,
1840
- "center": false,
1841
- "close": false,
1842
- "create": false,
1843
- "hide": false,
1844
- "maximize": false,
1845
- "minimize": false,
1846
- "print": false,
1847
- "requestUserAttention": false,
1848
- "setAlwaysOnTop": false,
1849
- "setContentProtected": false,
1850
- "setCursorGrab": false,
1851
- "setCursorIcon": false,
1852
- "setCursorPosition": false,
1853
- "setCursorVisible": false,
1854
- "setDecorations": false,
1855
- "setFocus": false,
1856
- "setFullscreen": false,
1857
- "setIcon": false,
1858
- "setIgnoreCursorEvents": false,
1859
- "setMaxSize": false,
1860
- "setMinSize": false,
1861
- "setPosition": false,
1862
- "setResizable": false,
1863
- "setShadow": false,
1864
- "setSize": false,
1865
- "setSkipTaskbar": false,
1866
- "setTitle": false,
1867
- "show": false,
1868
- "startDragging": false,
1869
- "unmaximize": false,
1870
- "unminimize": false
1871
- },
1872
- "allOf": [
1873
- {
1874
- "$ref": "#/definitions/WindowAllowlistConfig"
1379
+ "appimage": {
1380
+ "bundleMediaFramework": false,
1381
+ "files": {}
1382
+ },
1383
+ "deb": {
1384
+ "files": {}
1385
+ },
1386
+ "rpm": {
1387
+ "epoch": 0,
1388
+ "files": {},
1389
+ "release": "1"
1875
1390
  }
1876
- ]
1877
- },
1878
- "shell": {
1879
- "description": "Shell API allowlist.",
1880
- "default": {
1881
- "all": false,
1882
- "execute": false,
1883
- "open": false,
1884
- "scope": [],
1885
- "sidecar": false
1886
1391
  },
1887
1392
  "allOf": [
1888
1393
  {
1889
- "$ref": "#/definitions/ShellAllowlistConfig"
1394
+ "$ref": "#/definitions/LinuxConfig"
1890
1395
  }
1891
1396
  ]
1892
1397
  },
1893
- "dialog": {
1894
- "description": "Dialog API allowlist.",
1398
+ "macOS": {
1399
+ "description": "Configuration for the macOS bundles.",
1895
1400
  "default": {
1896
- "all": false,
1897
- "ask": false,
1898
- "confirm": false,
1899
- "message": false,
1900
- "open": false,
1901
- "save": false
1401
+ "dmg": {
1402
+ "appPosition": {
1403
+ "x": 180,
1404
+ "y": 170
1405
+ },
1406
+ "applicationFolderPosition": {
1407
+ "x": 480,
1408
+ "y": 170
1409
+ },
1410
+ "windowSize": {
1411
+ "height": 400,
1412
+ "width": 660
1413
+ }
1414
+ },
1415
+ "files": {},
1416
+ "minimumSystemVersion": "10.13"
1902
1417
  },
1903
1418
  "allOf": [
1904
1419
  {
1905
- "$ref": "#/definitions/DialogAllowlistConfig"
1420
+ "$ref": "#/definitions/MacConfig"
1906
1421
  }
1907
1422
  ]
1908
1423
  },
1909
- "http": {
1910
- "description": "HTTP API allowlist.",
1911
- "default": {
1912
- "all": false,
1913
- "request": false,
1914
- "scope": []
1915
- },
1424
+ "iOS": {
1425
+ "description": "iOS configuration.",
1426
+ "default": {},
1916
1427
  "allOf": [
1917
1428
  {
1918
- "$ref": "#/definitions/HttpAllowlistConfig"
1429
+ "$ref": "#/definitions/IosConfig"
1919
1430
  }
1920
1431
  ]
1921
1432
  },
1922
- "notification": {
1923
- "description": "Notification API allowlist.",
1433
+ "android": {
1434
+ "description": "Android configuration.",
1924
1435
  "default": {
1925
- "all": false
1436
+ "minSdkVersion": 24
1926
1437
  },
1927
1438
  "allOf": [
1928
1439
  {
1929
- "$ref": "#/definitions/NotificationAllowlistConfig"
1440
+ "$ref": "#/definitions/AndroidConfig"
1930
1441
  }
1931
1442
  ]
1932
- },
1933
- "globalShortcut": {
1934
- "description": "Global shortcut API allowlist.",
1935
- "default": {
1936
- "all": false
1937
- },
1938
- "allOf": [
1939
- {
1940
- "$ref": "#/definitions/GlobalShortcutAllowlistConfig"
1941
- }
1443
+ }
1444
+ },
1445
+ "additionalProperties": false
1446
+ },
1447
+ "BundleTarget": {
1448
+ "description": "Targets to bundle. Each value is case insensitive.",
1449
+ "anyOf": [
1450
+ {
1451
+ "description": "Bundle all targets.",
1452
+ "enum": [
1453
+ "all"
1942
1454
  ]
1943
1455
  },
1944
- "os": {
1945
- "description": "OS allowlist.",
1946
- "default": {
1947
- "all": false
1948
- },
1949
- "allOf": [
1950
- {
1951
- "$ref": "#/definitions/OsAllowlistConfig"
1952
- }
1953
- ]
1456
+ {
1457
+ "description": "A list of bundle targets.",
1458
+ "type": "array",
1459
+ "items": {
1460
+ "$ref": "#/definitions/BundleType"
1461
+ }
1954
1462
  },
1955
- "path": {
1956
- "description": "Path API allowlist.",
1957
- "default": {
1958
- "all": false
1959
- },
1463
+ {
1464
+ "description": "A single bundle target.",
1960
1465
  "allOf": [
1961
1466
  {
1962
- "$ref": "#/definitions/PathAllowlistConfig"
1467
+ "$ref": "#/definitions/BundleType"
1963
1468
  }
1964
1469
  ]
1965
- },
1966
- "protocol": {
1967
- "description": "Custom protocol allowlist.",
1968
- "default": {
1969
- "all": false,
1970
- "asset": false,
1971
- "assetScope": []
1972
- },
1973
- "allOf": [
1974
- {
1975
- "$ref": "#/definitions/ProtocolAllowlistConfig"
1976
- }
1470
+ }
1471
+ ]
1472
+ },
1473
+ "BundleType": {
1474
+ "description": "A bundle referenced by tauri-bundler.",
1475
+ "oneOf": [
1476
+ {
1477
+ "description": "The debian bundle (.deb).",
1478
+ "type": "string",
1479
+ "enum": [
1480
+ "deb"
1977
1481
  ]
1978
1482
  },
1979
- "process": {
1980
- "description": "Process API allowlist.",
1981
- "default": {
1982
- "all": false,
1983
- "exit": false,
1984
- "relaunch": false,
1985
- "relaunchDangerousAllowSymlinkMacos": false
1986
- },
1987
- "allOf": [
1988
- {
1989
- "$ref": "#/definitions/ProcessAllowlistConfig"
1990
- }
1483
+ {
1484
+ "description": "The RPM bundle (.rpm).",
1485
+ "type": "string",
1486
+ "enum": [
1487
+ "rpm"
1991
1488
  ]
1992
1489
  },
1993
- "clipboard": {
1994
- "description": "Clipboard APIs allowlist.",
1995
- "default": {
1996
- "all": false,
1997
- "readText": false,
1998
- "writeText": false
1999
- },
2000
- "allOf": [
2001
- {
2002
- "$ref": "#/definitions/ClipboardAllowlistConfig"
2003
- }
1490
+ {
1491
+ "description": "The AppImage bundle (.appimage).",
1492
+ "type": "string",
1493
+ "enum": [
1494
+ "appimage"
2004
1495
  ]
2005
1496
  },
2006
- "app": {
2007
- "description": "App APIs allowlist.",
2008
- "default": {
2009
- "all": false,
2010
- "hide": false,
2011
- "show": false
2012
- },
2013
- "allOf": [
2014
- {
2015
- "$ref": "#/definitions/AppAllowlistConfig"
2016
- }
2017
- ]
2018
- }
2019
- },
2020
- "additionalProperties": false
2021
- },
2022
- "FsAllowlistConfig": {
2023
- "description": "Allowlist for the file system APIs.\n\nSee more: https://tauri.app/v1/api/config#fsallowlistconfig",
2024
- "type": "object",
2025
- "properties": {
2026
- "scope": {
2027
- "description": "The access scope for the filesystem APIs.",
2028
- "default": [],
2029
- "allOf": [
2030
- {
2031
- "$ref": "#/definitions/FsAllowlistScope"
2032
- }
1497
+ {
1498
+ "description": "The Microsoft Installer bundle (.msi).",
1499
+ "type": "string",
1500
+ "enum": [
1501
+ "msi"
2033
1502
  ]
2034
1503
  },
2035
- "all": {
2036
- "description": "Use this flag to enable all file system API features.",
2037
- "default": false,
2038
- "type": "boolean"
2039
- },
2040
- "readFile": {
2041
- "description": "Read file from local filesystem.",
2042
- "default": false,
2043
- "type": "boolean"
2044
- },
2045
- "writeFile": {
2046
- "description": "Write file to local filesystem.",
2047
- "default": false,
2048
- "type": "boolean"
2049
- },
2050
- "readDir": {
2051
- "description": "Read directory from local filesystem.",
2052
- "default": false,
2053
- "type": "boolean"
2054
- },
2055
- "copyFile": {
2056
- "description": "Copy file from local filesystem.",
2057
- "default": false,
2058
- "type": "boolean"
2059
- },
2060
- "createDir": {
2061
- "description": "Create directory from local filesystem.",
2062
- "default": false,
2063
- "type": "boolean"
2064
- },
2065
- "removeDir": {
2066
- "description": "Remove directory from local filesystem.",
2067
- "default": false,
2068
- "type": "boolean"
1504
+ {
1505
+ "description": "The NSIS bundle (.exe).",
1506
+ "type": "string",
1507
+ "enum": [
1508
+ "nsis"
1509
+ ]
2069
1510
  },
2070
- "removeFile": {
2071
- "description": "Remove file from local filesystem.",
2072
- "default": false,
2073
- "type": "boolean"
1511
+ {
1512
+ "description": "The macOS application bundle (.app).",
1513
+ "type": "string",
1514
+ "enum": [
1515
+ "app"
1516
+ ]
2074
1517
  },
2075
- "renameFile": {
2076
- "description": "Rename file from local filesystem.",
2077
- "default": false,
2078
- "type": "boolean"
1518
+ {
1519
+ "description": "The Apple Disk Image bundle (.dmg).",
1520
+ "type": "string",
1521
+ "enum": [
1522
+ "dmg"
1523
+ ]
2079
1524
  },
2080
- "exists": {
2081
- "description": "Check if path exists on the local filesystem.",
2082
- "default": false,
2083
- "type": "boolean"
1525
+ {
1526
+ "description": "The Tauri updater bundle.",
1527
+ "type": "string",
1528
+ "enum": [
1529
+ "updater"
1530
+ ]
2084
1531
  }
2085
- },
2086
- "additionalProperties": false
1532
+ ]
2087
1533
  },
2088
- "FsAllowlistScope": {
2089
- "description": "Filesystem scope definition. It is a list of glob patterns that restrict the API access from the webview.\n\nEach pattern can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.",
1534
+ "BundleResources": {
1535
+ "description": "Definition for bundle resources. Can be either a list of paths to include or a map of source to target paths.",
2090
1536
  "anyOf": [
2091
1537
  {
2092
- "description": "A list of paths that are allowed by this scope.",
1538
+ "description": "A list of paths to include.",
2093
1539
  "type": "array",
2094
1540
  "items": {
2095
1541
  "type": "string"
2096
1542
  }
2097
1543
  },
2098
1544
  {
2099
- "description": "A complete scope configuration.",
1545
+ "description": "A map of source to target paths.",
2100
1546
  "type": "object",
2101
- "properties": {
2102
- "allow": {
2103
- "description": "A list of paths that are allowed by this scope.",
2104
- "default": [],
2105
- "type": "array",
2106
- "items": {
2107
- "type": "string"
2108
- }
2109
- },
2110
- "deny": {
2111
- "description": "A list of paths that are not allowed by this scope. This gets precedence over the [`Self::Scope::allow`] list.",
2112
- "default": [],
2113
- "type": "array",
2114
- "items": {
2115
- "type": "string"
2116
- }
2117
- }
1547
+ "additionalProperties": {
1548
+ "type": "string"
2118
1549
  }
2119
1550
  }
2120
1551
  ]
2121
1552
  },
2122
- "WindowAllowlistConfig": {
2123
- "description": "Allowlist for the window APIs.\n\nSee more: https://tauri.app/v1/api/config#windowallowlistconfig",
1553
+ "FileAssociation": {
1554
+ "description": "File association",
2124
1555
  "type": "object",
1556
+ "required": [
1557
+ "ext"
1558
+ ],
2125
1559
  "properties": {
2126
- "all": {
2127
- "description": "Use this flag to enable all window API features.",
2128
- "default": false,
2129
- "type": "boolean"
2130
- },
2131
- "create": {
2132
- "description": "Allows dynamic window creation.",
2133
- "default": false,
2134
- "type": "boolean"
2135
- },
2136
- "center": {
2137
- "description": "Allows centering the window.",
2138
- "default": false,
2139
- "type": "boolean"
2140
- },
2141
- "requestUserAttention": {
2142
- "description": "Allows requesting user attention on the window.",
2143
- "default": false,
2144
- "type": "boolean"
2145
- },
2146
- "setResizable": {
2147
- "description": "Allows setting the resizable flag of the window.",
2148
- "default": false,
2149
- "type": "boolean"
2150
- },
2151
- "setTitle": {
2152
- "description": "Allows changing the window title.",
2153
- "default": false,
2154
- "type": "boolean"
2155
- },
2156
- "maximize": {
2157
- "description": "Allows maximizing the window.",
2158
- "default": false,
2159
- "type": "boolean"
2160
- },
2161
- "unmaximize": {
2162
- "description": "Allows unmaximizing the window.",
2163
- "default": false,
2164
- "type": "boolean"
2165
- },
2166
- "minimize": {
2167
- "description": "Allows minimizing the window.",
2168
- "default": false,
2169
- "type": "boolean"
2170
- },
2171
- "unminimize": {
2172
- "description": "Allows unminimizing the window.",
2173
- "default": false,
2174
- "type": "boolean"
2175
- },
2176
- "show": {
2177
- "description": "Allows showing the window.",
2178
- "default": false,
2179
- "type": "boolean"
2180
- },
2181
- "hide": {
2182
- "description": "Allows hiding the window.",
2183
- "default": false,
2184
- "type": "boolean"
2185
- },
2186
- "close": {
2187
- "description": "Allows closing the window.",
2188
- "default": false,
2189
- "type": "boolean"
2190
- },
2191
- "setDecorations": {
2192
- "description": "Allows setting the decorations flag of the window.",
2193
- "default": false,
2194
- "type": "boolean"
2195
- },
2196
- "setShadow": {
2197
- "description": "Allows setting the shadow flag of the window.",
2198
- "default": false,
2199
- "type": "boolean"
2200
- },
2201
- "setAlwaysOnTop": {
2202
- "description": "Allows setting the always_on_top flag of the window.",
2203
- "default": false,
2204
- "type": "boolean"
2205
- },
2206
- "setContentProtected": {
2207
- "description": "Allows preventing the window contents from being captured by other apps.",
2208
- "default": false,
2209
- "type": "boolean"
2210
- },
2211
- "setSize": {
2212
- "description": "Allows setting the window size.",
2213
- "default": false,
2214
- "type": "boolean"
2215
- },
2216
- "setMinSize": {
2217
- "description": "Allows setting the window minimum size.",
2218
- "default": false,
2219
- "type": "boolean"
2220
- },
2221
- "setMaxSize": {
2222
- "description": "Allows setting the window maximum size.",
2223
- "default": false,
2224
- "type": "boolean"
1560
+ "ext": {
1561
+ "description": "File extensions to associate with this app. e.g. 'png'",
1562
+ "type": "array",
1563
+ "items": {
1564
+ "$ref": "#/definitions/AssociationExt"
1565
+ }
2225
1566
  },
2226
- "setPosition": {
2227
- "description": "Allows changing the position of the window.",
2228
- "default": false,
2229
- "type": "boolean"
1567
+ "name": {
1568
+ "description": "The name. Maps to `CFBundleTypeName` on macOS. Default to `ext[0]`",
1569
+ "type": [
1570
+ "string",
1571
+ "null"
1572
+ ]
2230
1573
  },
2231
- "setFullscreen": {
2232
- "description": "Allows setting the fullscreen flag of the window.",
2233
- "default": false,
2234
- "type": "boolean"
1574
+ "description": {
1575
+ "description": "The association description. Windows-only. It is displayed on the `Type` column on Windows Explorer.",
1576
+ "type": [
1577
+ "string",
1578
+ "null"
1579
+ ]
2235
1580
  },
2236
- "setFocus": {
2237
- "description": "Allows focusing the window.",
2238
- "default": false,
2239
- "type": "boolean"
1581
+ "role": {
1582
+ "description": "The app's role with respect to the type. Maps to `CFBundleTypeRole` on macOS.",
1583
+ "default": "Editor",
1584
+ "allOf": [
1585
+ {
1586
+ "$ref": "#/definitions/BundleTypeRole"
1587
+ }
1588
+ ]
2240
1589
  },
2241
- "setIcon": {
2242
- "description": "Allows changing the window icon.",
2243
- "default": false,
2244
- "type": "boolean"
1590
+ "mimeType": {
1591
+ "description": "The mime-type e.g. 'image/png' or 'text/plain'. Linux-only.",
1592
+ "type": [
1593
+ "string",
1594
+ "null"
1595
+ ]
1596
+ }
1597
+ },
1598
+ "additionalProperties": false
1599
+ },
1600
+ "AssociationExt": {
1601
+ "description": "An extension for a [`FileAssociation`].\n\nA leading `.` is automatically stripped.",
1602
+ "type": "string"
1603
+ },
1604
+ "BundleTypeRole": {
1605
+ "description": "macOS-only. Corresponds to CFBundleTypeRole",
1606
+ "oneOf": [
1607
+ {
1608
+ "description": "CFBundleTypeRole.Editor. Files can be read and edited.",
1609
+ "type": "string",
1610
+ "enum": [
1611
+ "Editor"
1612
+ ]
2245
1613
  },
2246
- "setSkipTaskbar": {
2247
- "description": "Allows setting the skip_taskbar flag of the window.",
2248
- "default": false,
2249
- "type": "boolean"
1614
+ {
1615
+ "description": "CFBundleTypeRole.Viewer. Files can be read.",
1616
+ "type": "string",
1617
+ "enum": [
1618
+ "Viewer"
1619
+ ]
2250
1620
  },
2251
- "setCursorGrab": {
2252
- "description": "Allows grabbing the cursor.",
2253
- "default": false,
2254
- "type": "boolean"
1621
+ {
1622
+ "description": "CFBundleTypeRole.Shell",
1623
+ "type": "string",
1624
+ "enum": [
1625
+ "Shell"
1626
+ ]
2255
1627
  },
2256
- "setCursorVisible": {
2257
- "description": "Allows setting the cursor visibility.",
2258
- "default": false,
2259
- "type": "boolean"
1628
+ {
1629
+ "description": "CFBundleTypeRole.QLGenerator",
1630
+ "type": "string",
1631
+ "enum": [
1632
+ "QLGenerator"
1633
+ ]
2260
1634
  },
2261
- "setCursorIcon": {
2262
- "description": "Allows changing the cursor icon.",
2263
- "default": false,
2264
- "type": "boolean"
1635
+ {
1636
+ "description": "CFBundleTypeRole.None",
1637
+ "type": "string",
1638
+ "enum": [
1639
+ "None"
1640
+ ]
1641
+ }
1642
+ ]
1643
+ },
1644
+ "WindowsConfig": {
1645
+ "description": "Windows bundler configuration.\n\nSee more: <https://tauri.app/v1/api/config#windowsconfig>",
1646
+ "type": "object",
1647
+ "properties": {
1648
+ "digestAlgorithm": {
1649
+ "description": "Specifies the file digest algorithm to use for creating file signatures. Required for code signing. SHA-256 is recommended.",
1650
+ "type": [
1651
+ "string",
1652
+ "null"
1653
+ ]
2265
1654
  },
2266
- "setCursorPosition": {
2267
- "description": "Allows setting the cursor position.",
2268
- "default": false,
2269
- "type": "boolean"
1655
+ "certificateThumbprint": {
1656
+ "description": "Specifies the SHA1 hash of the signing certificate.",
1657
+ "type": [
1658
+ "string",
1659
+ "null"
1660
+ ]
2270
1661
  },
2271
- "setIgnoreCursorEvents": {
2272
- "description": "Allows ignoring cursor events.",
2273
- "default": false,
2274
- "type": "boolean"
1662
+ "timestampUrl": {
1663
+ "description": "Server to use during timestamping.",
1664
+ "type": [
1665
+ "string",
1666
+ "null"
1667
+ ]
2275
1668
  },
2276
- "startDragging": {
2277
- "description": "Allows start dragging on the window.",
1669
+ "tsp": {
1670
+ "description": "Whether to use Time-Stamp Protocol (TSP, a.k.a. RFC 3161) for the timestamp server. Your code signing provider may use a TSP timestamp server, like e.g. SSL.com does. If so, enable TSP by setting to true.",
2278
1671
  "default": false,
2279
1672
  "type": "boolean"
2280
1673
  },
2281
- "print": {
2282
- "description": "Allows opening the system dialog to print the window content.",
2283
- "default": false,
2284
- "type": "boolean"
2285
- }
2286
- },
2287
- "additionalProperties": false
2288
- },
2289
- "ShellAllowlistConfig": {
2290
- "description": "Allowlist for the shell APIs.\n\nSee more: https://tauri.app/v1/api/config#shellallowlistconfig",
2291
- "type": "object",
2292
- "properties": {
2293
- "scope": {
2294
- "description": "Access scope for the binary execution APIs. Sidecars are automatically enabled.",
2295
- "default": [],
1674
+ "webviewInstallMode": {
1675
+ "description": "The installation mode for the Webview2 runtime.",
1676
+ "default": {
1677
+ "silent": true,
1678
+ "type": "downloadBootstrapper"
1679
+ },
2296
1680
  "allOf": [
2297
1681
  {
2298
- "$ref": "#/definitions/ShellAllowlistScope"
1682
+ "$ref": "#/definitions/WebviewInstallMode"
2299
1683
  }
2300
1684
  ]
2301
1685
  },
2302
- "all": {
2303
- "description": "Use this flag to enable all shell API features.",
2304
- "default": false,
2305
- "type": "boolean"
1686
+ "webviewFixedRuntimePath": {
1687
+ "description": "Path to the webview fixed runtime to use. Overwrites [`Self::webview_install_mode`] if set.\n\nWill be removed in v2, prefer the [`Self::webview_install_mode`] option.\n\nThe fixed version can be downloaded [on the official website](https://developer.microsoft.com/en-us/microsoft-edge/webview2/#download-section). The `.cab` file must be extracted to a folder and this folder path must be defined on this field.",
1688
+ "type": [
1689
+ "string",
1690
+ "null"
1691
+ ]
2306
1692
  },
2307
- "execute": {
2308
- "description": "Enable binary execution.",
2309
- "default": false,
1693
+ "allowDowngrades": {
1694
+ "description": "Validates a second app installation, blocking the user from installing an older version if set to `false`.\n\nFor instance, if `1.2.1` is installed, the user won't be able to install app version `1.2.0` or `1.1.5`.\n\nThe default value of this flag is `true`.",
1695
+ "default": true,
2310
1696
  "type": "boolean"
2311
1697
  },
2312
- "sidecar": {
2313
- "description": "Enable sidecar execution, allowing the JavaScript layer to spawn a sidecar command, an executable that is shipped with the application. For more information see <https://tauri.app/v1/guides/building/sidecar>.",
2314
- "default": false,
2315
- "type": "boolean"
1698
+ "wix": {
1699
+ "description": "Configuration for the MSI generated with WiX.",
1700
+ "anyOf": [
1701
+ {
1702
+ "$ref": "#/definitions/WixConfig"
1703
+ },
1704
+ {
1705
+ "type": "null"
1706
+ }
1707
+ ]
2316
1708
  },
2317
- "open": {
2318
- "description": "Open URL with the user's default application.",
2319
- "default": false,
2320
- "allOf": [
1709
+ "nsis": {
1710
+ "description": "Configuration for the installer generated with NSIS.",
1711
+ "anyOf": [
2321
1712
  {
2322
- "$ref": "#/definitions/ShellAllowlistOpen"
1713
+ "$ref": "#/definitions/NsisConfig"
1714
+ },
1715
+ {
1716
+ "type": "null"
2323
1717
  }
2324
1718
  ]
2325
1719
  }
2326
1720
  },
2327
1721
  "additionalProperties": false
2328
1722
  },
2329
- "ShellAllowlistScope": {
2330
- "description": "Shell scope definition. It is a list of command names and associated CLI arguments that restrict the API access from the webview.",
2331
- "type": "array",
2332
- "items": {
2333
- "$ref": "#/definitions/ShellAllowedCommand"
2334
- }
2335
- },
2336
- "ShellAllowedCommand": {
2337
- "description": "A command allowed to be executed by the webview API.",
2338
- "type": "object",
2339
- "required": [
2340
- "name"
2341
- ],
2342
- "properties": {
2343
- "name": {
2344
- "description": "The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.",
2345
- "type": "string"
1723
+ "WebviewInstallMode": {
1724
+ "description": "Install modes for the Webview2 runtime. Note that for the updater bundle [`Self::DownloadBootstrapper`] is used.\n\nFor more information see <https://tauri.app/v1/guides/building/windows>.",
1725
+ "oneOf": [
1726
+ {
1727
+ "description": "Do not install the Webview2 as part of the Windows Installer.",
1728
+ "type": "object",
1729
+ "required": [
1730
+ "type"
1731
+ ],
1732
+ "properties": {
1733
+ "type": {
1734
+ "type": "string",
1735
+ "enum": [
1736
+ "skip"
1737
+ ]
1738
+ }
1739
+ },
1740
+ "additionalProperties": false
2346
1741
  },
2347
- "cmd": {
2348
- "description": "The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.",
2349
- "default": "",
2350
- "type": "string"
1742
+ {
1743
+ "description": "Download the bootstrapper and run it. Requires an internet connection. Results in a smaller installer size, but is not recommended on Windows 7.",
1744
+ "type": "object",
1745
+ "required": [
1746
+ "type"
1747
+ ],
1748
+ "properties": {
1749
+ "type": {
1750
+ "type": "string",
1751
+ "enum": [
1752
+ "downloadBootstrapper"
1753
+ ]
1754
+ },
1755
+ "silent": {
1756
+ "description": "Instructs the installer to run the bootstrapper in silent mode. Defaults to `true`.",
1757
+ "default": true,
1758
+ "type": "boolean"
1759
+ }
1760
+ },
1761
+ "additionalProperties": false
2351
1762
  },
2352
- "args": {
2353
- "description": "The allowed arguments for the command execution.",
2354
- "default": false,
2355
- "allOf": [
2356
- {
2357
- "$ref": "#/definitions/ShellAllowedArgs"
1763
+ {
1764
+ "description": "Embed the bootstrapper and run it. Requires an internet connection. Increases the installer size by around 1.8MB, but offers better support on Windows 7.",
1765
+ "type": "object",
1766
+ "required": [
1767
+ "type"
1768
+ ],
1769
+ "properties": {
1770
+ "type": {
1771
+ "type": "string",
1772
+ "enum": [
1773
+ "embedBootstrapper"
1774
+ ]
1775
+ },
1776
+ "silent": {
1777
+ "description": "Instructs the installer to run the bootstrapper in silent mode. Defaults to `true`.",
1778
+ "default": true,
1779
+ "type": "boolean"
2358
1780
  }
2359
- ]
2360
- },
2361
- "sidecar": {
2362
- "description": "If this command is a sidecar command.",
2363
- "default": false,
2364
- "type": "boolean"
2365
- }
2366
- }
2367
- },
2368
- "ShellAllowedArgs": {
2369
- "description": "A set of command arguments allowed to be executed by the webview API.\n\nA value of `true` will allow any arguments to be passed to the command. `false` will disable all arguments. A list of [`ShellAllowedArg`] will set those arguments as the only valid arguments to be passed to the attached command configuration.",
2370
- "anyOf": [
2371
- {
2372
- "description": "Use a simple boolean to allow all or disable all arguments to this command configuration.",
2373
- "type": "boolean"
1781
+ },
1782
+ "additionalProperties": false
2374
1783
  },
2375
1784
  {
2376
- "description": "A specific set of [`ShellAllowedArg`] that are valid to call for the command configuration.",
2377
- "type": "array",
2378
- "items": {
2379
- "$ref": "#/definitions/ShellAllowedArg"
2380
- }
2381
- }
2382
- ]
2383
- },
2384
- "ShellAllowedArg": {
2385
- "description": "A command argument allowed to be executed by the webview API.",
2386
- "anyOf": [
2387
- {
2388
- "description": "A non-configurable argument that is passed to the command in the order it was specified.",
2389
- "type": "string"
1785
+ "description": "Embed the offline installer and run it. Does not require an internet connection. Increases the installer size by around 127MB.",
1786
+ "type": "object",
1787
+ "required": [
1788
+ "type"
1789
+ ],
1790
+ "properties": {
1791
+ "type": {
1792
+ "type": "string",
1793
+ "enum": [
1794
+ "offlineInstaller"
1795
+ ]
1796
+ },
1797
+ "silent": {
1798
+ "description": "Instructs the installer to run the installer in silent mode. Defaults to `true`.",
1799
+ "default": true,
1800
+ "type": "boolean"
1801
+ }
1802
+ },
1803
+ "additionalProperties": false
2390
1804
  },
2391
1805
  {
2392
- "description": "A variable that is set while calling the command from the webview API.",
1806
+ "description": "Embed a fixed webview2 version and use it at runtime. Increases the installer size by around 180MB.",
2393
1807
  "type": "object",
2394
1808
  "required": [
2395
- "validator"
1809
+ "path",
1810
+ "type"
2396
1811
  ],
2397
1812
  "properties": {
2398
- "validator": {
2399
- "description": "[regex] validator to require passed values to conform to an expected input.\n\nThis will require the argument value passed to this variable to match the `validator` regex before it will be executed.\n\n[regex]: https://docs.rs/regex/latest/regex/#syntax",
1813
+ "type": {
1814
+ "type": "string",
1815
+ "enum": [
1816
+ "fixedRuntime"
1817
+ ]
1818
+ },
1819
+ "path": {
1820
+ "description": "The path to the fixed runtime to use.\n\nThe fixed version can be downloaded [on the official website](https://developer.microsoft.com/en-us/microsoft-edge/webview2/#download-section). The `.cab` file must be extracted to a folder and this folder path must be defined on this field.",
2400
1821
  "type": "string"
2401
1822
  }
2402
1823
  },
@@ -2404,448 +1825,401 @@
2404
1825
  }
2405
1826
  ]
2406
1827
  },
2407
- "ShellAllowlistOpen": {
2408
- "description": "Defines the `shell > open` api scope.",
2409
- "anyOf": [
2410
- {
2411
- "description": "If the shell open API should be enabled.\n\nIf enabled, the default validation regex (`^((mailto:\\w+)|(tel:\\w+)|(https?://\\w+)).+`) is used.",
2412
- "type": "boolean"
2413
- },
2414
- {
2415
- "description": "Enable the shell open API, with a custom regex that the opened path must match against.\n\nIf using a custom regex to support a non-http(s) schema, care should be used to prevent values that allow flag-like strings to pass validation. e.g. `--enable-debugging`, `-i`, `/R`.",
2416
- "type": "string"
2417
- }
2418
- ]
2419
- },
2420
- "DialogAllowlistConfig": {
2421
- "description": "Allowlist for the dialog APIs.\n\nSee more: https://tauri.app/v1/api/config#dialogallowlistconfig",
1828
+ "WixConfig": {
1829
+ "description": "Configuration for the MSI bundle using WiX.\n\nSee more: <https://tauri.app/v1/api/config#wixconfig>",
2422
1830
  "type": "object",
2423
1831
  "properties": {
2424
- "all": {
2425
- "description": "Use this flag to enable all dialog API features.",
2426
- "default": false,
2427
- "type": "boolean"
1832
+ "language": {
1833
+ "description": "The installer languages to build. See <https://docs.microsoft.com/en-us/windows/win32/msi/localizing-the-error-and-actiontext-tables>.",
1834
+ "default": "en-US",
1835
+ "allOf": [
1836
+ {
1837
+ "$ref": "#/definitions/WixLanguage"
1838
+ }
1839
+ ]
2428
1840
  },
2429
- "open": {
2430
- "description": "Allows the API to open a dialog window to pick files.",
2431
- "default": false,
2432
- "type": "boolean"
1841
+ "template": {
1842
+ "description": "A custom .wxs template to use.",
1843
+ "type": [
1844
+ "string",
1845
+ "null"
1846
+ ]
2433
1847
  },
2434
- "save": {
2435
- "description": "Allows the API to open a dialog window to pick where to save files.",
2436
- "default": false,
2437
- "type": "boolean"
1848
+ "fragmentPaths": {
1849
+ "description": "A list of paths to .wxs files with WiX fragments to use.",
1850
+ "default": [],
1851
+ "type": "array",
1852
+ "items": {
1853
+ "type": "string"
1854
+ }
2438
1855
  },
2439
- "message": {
2440
- "description": "Allows the API to show a message dialog window.",
2441
- "default": false,
2442
- "type": "boolean"
1856
+ "componentGroupRefs": {
1857
+ "description": "The ComponentGroup element ids you want to reference from the fragments.",
1858
+ "default": [],
1859
+ "type": "array",
1860
+ "items": {
1861
+ "type": "string"
1862
+ }
2443
1863
  },
2444
- "ask": {
2445
- "description": "Allows the API to show a dialog window with Yes/No buttons.",
2446
- "default": false,
2447
- "type": "boolean"
1864
+ "componentRefs": {
1865
+ "description": "The Component element ids you want to reference from the fragments.",
1866
+ "default": [],
1867
+ "type": "array",
1868
+ "items": {
1869
+ "type": "string"
1870
+ }
2448
1871
  },
2449
- "confirm": {
2450
- "description": "Allows the API to show a dialog window with Ok/Cancel buttons.",
2451
- "default": false,
2452
- "type": "boolean"
2453
- }
2454
- },
2455
- "additionalProperties": false
2456
- },
2457
- "HttpAllowlistConfig": {
2458
- "description": "Allowlist for the HTTP APIs.\n\nSee more: https://tauri.app/v1/api/config#httpallowlistconfig",
2459
- "type": "object",
2460
- "properties": {
2461
- "scope": {
2462
- "description": "The access scope for the HTTP APIs.",
1872
+ "featureGroupRefs": {
1873
+ "description": "The FeatureGroup element ids you want to reference from the fragments.",
2463
1874
  "default": [],
2464
- "allOf": [
2465
- {
2466
- "$ref": "#/definitions/HttpAllowlistScope"
2467
- }
2468
- ]
1875
+ "type": "array",
1876
+ "items": {
1877
+ "type": "string"
1878
+ }
2469
1879
  },
2470
- "all": {
2471
- "description": "Use this flag to enable all HTTP API features.",
2472
- "default": false,
2473
- "type": "boolean"
1880
+ "featureRefs": {
1881
+ "description": "The Feature element ids you want to reference from the fragments.",
1882
+ "default": [],
1883
+ "type": "array",
1884
+ "items": {
1885
+ "type": "string"
1886
+ }
2474
1887
  },
2475
- "request": {
2476
- "description": "Allows making HTTP requests.",
2477
- "default": false,
2478
- "type": "boolean"
2479
- }
2480
- },
2481
- "additionalProperties": false
2482
- },
2483
- "HttpAllowlistScope": {
2484
- "description": "HTTP API scope definition. It is a list of URLs that can be accessed by the webview when using the HTTP APIs. The scoped URL is matched against the request URL using a glob pattern.\n\nExamples: - \"https://**\": allows all HTTPS urls - \"https://*.github.com/tauri-apps/tauri\": allows any subdomain of \"github.com\" with the \"tauri-apps/api\" path - \"https://myapi.service.com/users/*\": allows access to any URLs that begins with \"https://myapi.service.com/users/\"",
2485
- "type": "array",
2486
- "items": {
2487
- "type": "string",
2488
- "format": "uri"
2489
- }
2490
- },
2491
- "NotificationAllowlistConfig": {
2492
- "description": "Allowlist for the notification APIs.\n\nSee more: https://tauri.app/v1/api/config#notificationallowlistconfig",
2493
- "type": "object",
2494
- "properties": {
2495
- "all": {
2496
- "description": "Use this flag to enable all notification API features.",
2497
- "default": false,
2498
- "type": "boolean"
2499
- }
2500
- },
2501
- "additionalProperties": false
2502
- },
2503
- "GlobalShortcutAllowlistConfig": {
2504
- "description": "Allowlist for the global shortcut APIs.\n\nSee more: https://tauri.app/v1/api/config#globalshortcutallowlistconfig",
2505
- "type": "object",
2506
- "properties": {
2507
- "all": {
2508
- "description": "Use this flag to enable all global shortcut API features.",
2509
- "default": false,
2510
- "type": "boolean"
2511
- }
2512
- },
2513
- "additionalProperties": false
2514
- },
2515
- "OsAllowlistConfig": {
2516
- "description": "Allowlist for the OS APIs.\n\nSee more: https://tauri.app/v1/api/config#osallowlistconfig",
2517
- "type": "object",
2518
- "properties": {
2519
- "all": {
2520
- "description": "Use this flag to enable all OS API features.",
2521
- "default": false,
2522
- "type": "boolean"
2523
- }
2524
- },
2525
- "additionalProperties": false
2526
- },
2527
- "PathAllowlistConfig": {
2528
- "description": "Allowlist for the path APIs.\n\nSee more: https://tauri.app/v1/api/config#pathallowlistconfig",
2529
- "type": "object",
2530
- "properties": {
2531
- "all": {
2532
- "description": "Use this flag to enable all path API features.",
2533
- "default": false,
2534
- "type": "boolean"
2535
- }
2536
- },
2537
- "additionalProperties": false
2538
- },
2539
- "ProtocolAllowlistConfig": {
2540
- "description": "Allowlist for the custom protocols.\n\nSee more: https://tauri.app/v1/api/config#protocolallowlistconfig",
2541
- "type": "object",
2542
- "properties": {
2543
- "assetScope": {
2544
- "description": "The access scope for the asset protocol.",
1888
+ "mergeRefs": {
1889
+ "description": "The Merge element ids you want to reference from the fragments.",
2545
1890
  "default": [],
2546
- "allOf": [
2547
- {
2548
- "$ref": "#/definitions/FsAllowlistScope"
2549
- }
2550
- ]
1891
+ "type": "array",
1892
+ "items": {
1893
+ "type": "string"
1894
+ }
2551
1895
  },
2552
- "all": {
2553
- "description": "Use this flag to enable all custom protocols.",
1896
+ "skipWebviewInstall": {
1897
+ "description": "Disables the Webview2 runtime installation after app install.\n\nWill be removed in v2, prefer the [`WindowsConfig::webview_install_mode`] option.",
2554
1898
  "default": false,
2555
1899
  "type": "boolean"
2556
1900
  },
2557
- "asset": {
2558
- "description": "Enables the asset protocol.",
1901
+ "enableElevatedUpdateTask": {
1902
+ "description": "Create an elevated update task within Windows Task Scheduler.",
2559
1903
  "default": false,
2560
1904
  "type": "boolean"
1905
+ },
1906
+ "bannerPath": {
1907
+ "description": "Path to a bitmap file to use as the installation user interface banner. This bitmap will appear at the top of all but the first page of the installer.\n\nThe required dimensions are 493px × 58px.",
1908
+ "type": [
1909
+ "string",
1910
+ "null"
1911
+ ]
1912
+ },
1913
+ "dialogImagePath": {
1914
+ "description": "Path to a bitmap file to use on the installation user interface dialogs. It is used on the welcome and completion dialogs. The required dimensions are 493px × 312px.",
1915
+ "type": [
1916
+ "string",
1917
+ "null"
1918
+ ]
2561
1919
  }
2562
1920
  },
2563
1921
  "additionalProperties": false
2564
1922
  },
2565
- "ProcessAllowlistConfig": {
2566
- "description": "Allowlist for the process APIs.\n\nSee more: https://tauri.app/v1/api/config#processallowlistconfig",
2567
- "type": "object",
2568
- "properties": {
2569
- "all": {
2570
- "description": "Use this flag to enable all process APIs.",
2571
- "default": false,
2572
- "type": "boolean"
2573
- },
2574
- "relaunch": {
2575
- "description": "Enables the relaunch API.",
2576
- "default": false,
2577
- "type": "boolean"
1923
+ "WixLanguage": {
1924
+ "description": "The languages to build using WiX.",
1925
+ "anyOf": [
1926
+ {
1927
+ "description": "A single language to build, without configuration.",
1928
+ "type": "string"
2578
1929
  },
2579
- "relaunchDangerousAllowSymlinkMacos": {
2580
- "description": "Dangerous option that allows macOS to relaunch even if the binary contains a symlink.\n\nThis is due to macOS having less symlink protection. Highly recommended to not set this flag unless you have a very specific reason too, and understand the implications of it.",
2581
- "default": false,
2582
- "type": "boolean"
1930
+ {
1931
+ "description": "A list of languages to build, without configuration.",
1932
+ "type": "array",
1933
+ "items": {
1934
+ "type": "string"
1935
+ }
2583
1936
  },
2584
- "exit": {
2585
- "description": "Enables the exit API.",
2586
- "default": false,
2587
- "type": "boolean"
1937
+ {
1938
+ "description": "A map of languages and its configuration.",
1939
+ "type": "object",
1940
+ "additionalProperties": {
1941
+ "$ref": "#/definitions/WixLanguageConfig"
1942
+ }
2588
1943
  }
2589
- },
2590
- "additionalProperties": false
1944
+ ]
2591
1945
  },
2592
- "ClipboardAllowlistConfig": {
2593
- "description": "Allowlist for the clipboard APIs.\n\nSee more: https://tauri.app/v1/api/config#clipboardallowlistconfig",
1946
+ "WixLanguageConfig": {
1947
+ "description": "Configuration for a target language for the WiX build.\n\nSee more: <https://tauri.app/v1/api/config#wixlanguageconfig>",
2594
1948
  "type": "object",
2595
1949
  "properties": {
2596
- "all": {
2597
- "description": "Use this flag to enable all clipboard APIs.",
2598
- "default": false,
2599
- "type": "boolean"
2600
- },
2601
- "writeText": {
2602
- "description": "Enables the clipboard's `writeText` API.",
2603
- "default": false,
2604
- "type": "boolean"
2605
- },
2606
- "readText": {
2607
- "description": "Enables the clipboard's `readText` API.",
2608
- "default": false,
2609
- "type": "boolean"
1950
+ "localePath": {
1951
+ "description": "The path to a locale (`.wxl`) file. See <https://wixtoolset.org/documentation/manual/v3/howtos/ui_and_localization/build_a_localized_version.html>.",
1952
+ "type": [
1953
+ "string",
1954
+ "null"
1955
+ ]
2610
1956
  }
2611
1957
  },
2612
1958
  "additionalProperties": false
2613
1959
  },
2614
- "AppAllowlistConfig": {
2615
- "description": "Allowlist for the app APIs.\n\nSee more: https://tauri.app/v1/api/config#appallowlistconfig",
1960
+ "NsisConfig": {
1961
+ "description": "Configuration for the Installer bundle using NSIS.",
2616
1962
  "type": "object",
2617
1963
  "properties": {
2618
- "all": {
2619
- "description": "Use this flag to enable all app APIs.",
2620
- "default": false,
2621
- "type": "boolean"
1964
+ "template": {
1965
+ "description": "A custom .nsi template to use.",
1966
+ "type": [
1967
+ "string",
1968
+ "null"
1969
+ ]
2622
1970
  },
2623
- "show": {
2624
- "description": "Enables the app's `show` API.",
2625
- "default": false,
2626
- "type": "boolean"
1971
+ "headerImage": {
1972
+ "description": "The path to a bitmap file to display on the header of installers pages.\n\nThe recommended dimensions are 150px x 57px.",
1973
+ "type": [
1974
+ "string",
1975
+ "null"
1976
+ ]
2627
1977
  },
2628
- "hide": {
2629
- "description": "Enables the app's `hide` API.",
2630
- "default": false,
2631
- "type": "boolean"
2632
- }
2633
- },
2634
- "additionalProperties": false
2635
- },
2636
- "SecurityConfig": {
2637
- "description": "Security configuration.\n\nSee more: https://tauri.app/v1/api/config#securityconfig",
2638
- "type": "object",
2639
- "properties": {
2640
- "csp": {
2641
- "description": "The Content Security Policy that will be injected on all HTML files on the built application. If [`dev_csp`](#SecurityConfig.devCsp) is not specified, this value is also injected on dev.\n\nThis is a really important part of the configuration since it helps you ensure your WebView is secured. See <https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP>.",
2642
- "anyOf": [
2643
- {
2644
- "$ref": "#/definitions/Csp"
2645
- },
2646
- {
2647
- "type": "null"
2648
- }
1978
+ "sidebarImage": {
1979
+ "description": "The path to a bitmap file for the Welcome page and the Finish page.\n\nThe recommended dimensions are 164px x 314px.",
1980
+ "type": [
1981
+ "string",
1982
+ "null"
2649
1983
  ]
2650
1984
  },
2651
- "devCsp": {
2652
- "description": "The Content Security Policy that will be injected on all HTML files on development.\n\nThis is a really important part of the configuration since it helps you ensure your WebView is secured. See <https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP>.",
2653
- "anyOf": [
2654
- {
2655
- "$ref": "#/definitions/Csp"
2656
- },
1985
+ "installerIcon": {
1986
+ "description": "The path to an icon file used as the installer icon.",
1987
+ "type": [
1988
+ "string",
1989
+ "null"
1990
+ ]
1991
+ },
1992
+ "installMode": {
1993
+ "description": "Whether the installation will be for all users or just the current user.",
1994
+ "default": "currentUser",
1995
+ "allOf": [
2657
1996
  {
2658
- "type": "null"
1997
+ "$ref": "#/definitions/NSISInstallerMode"
2659
1998
  }
2660
1999
  ]
2661
2000
  },
2662
- "freezePrototype": {
2663
- "description": "Freeze the `Object.prototype` when using the custom protocol.",
2001
+ "languages": {
2002
+ "description": "A list of installer languages. By default the OS language is used. If the OS language is not in the list of languages, the first language will be used. To allow the user to select the language, set `display_language_selector` to `true`.\n\nSee <https://github.com/kichik/nsis/tree/9465c08046f00ccb6eda985abbdbf52c275c6c4d/Contrib/Language%20files> for the complete list of languages.",
2003
+ "type": [
2004
+ "array",
2005
+ "null"
2006
+ ],
2007
+ "items": {
2008
+ "type": "string"
2009
+ }
2010
+ },
2011
+ "customLanguageFiles": {
2012
+ "description": "A key-value pair where the key is the language and the value is the path to a custom `.nsh` file that holds the translated text for tauri's custom messages.\n\nSee <https://github.com/tauri-apps/tauri/blob/dev/tooling/bundler/src/bundle/windows/templates/nsis-languages/English.nsh> for an example `.nsh` file.\n\n**Note**: the key must be a valid NSIS language and it must be added to [`NsisConfig`] languages array,",
2013
+ "type": [
2014
+ "object",
2015
+ "null"
2016
+ ],
2017
+ "additionalProperties": {
2018
+ "type": "string"
2019
+ }
2020
+ },
2021
+ "displayLanguageSelector": {
2022
+ "description": "Whether to display a language selector dialog before the installer and uninstaller windows are rendered or not. By default the OS language is selected, with a fallback to the first language in the `languages` array.",
2664
2023
  "default": false,
2665
2024
  "type": "boolean"
2666
2025
  },
2667
- "dangerousDisableAssetCspModification": {
2668
- "description": "Disables the Tauri-injected CSP sources.\n\nAt compile time, Tauri parses all the frontend assets and changes the Content-Security-Policy to only allow loading of your own scripts and styles by injecting nonce and hash sources. This stricts your CSP, which may introduce issues when using along with other flexing sources.\n\nThis configuration option allows both a boolean and a list of strings as value. A boolean instructs Tauri to disable the injection for all CSP injections, and a list of strings indicates the CSP directives that Tauri cannot inject.\n\n**WARNING:** Only disable this if you know what you are doing and have properly configured the CSP. Your application might be vulnerable to XSS attacks without this Tauri protection.",
2669
- "default": false,
2670
- "allOf": [
2026
+ "compression": {
2027
+ "description": "Set the compression algorithm used to compress files in the installer.\n\nSee <https://nsis.sourceforge.io/Reference/SetCompressor>",
2028
+ "anyOf": [
2671
2029
  {
2672
- "$ref": "#/definitions/DisabledCspModificationKind"
2030
+ "$ref": "#/definitions/NsisCompression"
2031
+ },
2032
+ {
2033
+ "type": "null"
2673
2034
  }
2674
2035
  ]
2675
2036
  }
2676
2037
  },
2677
2038
  "additionalProperties": false
2678
2039
  },
2679
- "Csp": {
2680
- "description": "A Content-Security-Policy definition. See <https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP>.",
2681
- "anyOf": [
2040
+ "NSISInstallerMode": {
2041
+ "description": "Install Modes for the NSIS installer.",
2042
+ "oneOf": [
2682
2043
  {
2683
- "description": "The entire CSP policy in a single text string.",
2684
- "type": "string"
2044
+ "description": "Default mode for the installer.\n\nInstall the app by default in a directory that doesn't require Administrator access.\n\nInstaller metadata will be saved under the `HKCU` registry path.",
2045
+ "type": "string",
2046
+ "enum": [
2047
+ "currentUser"
2048
+ ]
2685
2049
  },
2686
2050
  {
2687
- "description": "An object mapping a directive with its sources values as a list of strings.",
2688
- "type": "object",
2689
- "additionalProperties": {
2690
- "$ref": "#/definitions/CspDirectiveSources"
2691
- }
2692
- }
2693
- ]
2694
- },
2695
- "CspDirectiveSources": {
2696
- "description": "A Content-Security-Policy directive source list. See <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/Sources#sources>.",
2697
- "anyOf": [
2698
- {
2699
- "description": "An inline list of CSP sources. Same as [`Self::List`], but concatenated with a space separator.",
2700
- "type": "string"
2051
+ "description": "Install the app by default in the `Program Files` folder directory requires Administrator access for the installation.\n\nInstaller metadata will be saved under the `HKLM` registry path.",
2052
+ "type": "string",
2053
+ "enum": [
2054
+ "perMachine"
2055
+ ]
2701
2056
  },
2702
2057
  {
2703
- "description": "A list of CSP sources. The collection will be concatenated with a space separator for the CSP string.",
2704
- "type": "array",
2705
- "items": {
2706
- "type": "string"
2707
- }
2058
+ "description": "Combines both modes and allows the user to choose at install time whether to install for the current user or per machine. Note that this mode will require Administrator access even if the user wants to install it for the current user only.\n\nInstaller metadata will be saved under the `HKLM` or `HKCU` registry path based on the user's choice.",
2059
+ "type": "string",
2060
+ "enum": [
2061
+ "both"
2062
+ ]
2708
2063
  }
2709
2064
  ]
2710
2065
  },
2711
- "DisabledCspModificationKind": {
2712
- "description": "The possible values for the `dangerous_disable_asset_csp_modification` config option.",
2713
- "anyOf": [
2066
+ "NsisCompression": {
2067
+ "description": "Compression algorithms used in the NSIS installer.\n\nSee <https://nsis.sourceforge.io/Reference/SetCompressor>",
2068
+ "oneOf": [
2714
2069
  {
2715
- "description": "If `true`, disables all CSP modification. `false` is the default value and it configures Tauri to control the CSP.",
2716
- "type": "boolean"
2070
+ "description": "ZLIB uses the deflate algorithm, it is a quick and simple method. With the default compression level it uses about 300 KB of memory.",
2071
+ "type": "string",
2072
+ "enum": [
2073
+ "zlib"
2074
+ ]
2717
2075
  },
2718
2076
  {
2719
- "description": "Disables the given list of CSP directives modifications.",
2720
- "type": "array",
2721
- "items": {
2722
- "type": "string"
2723
- }
2077
+ "description": "BZIP2 usually gives better compression ratios than ZLIB, but it is a bit slower and uses more memory. With the default compression level it uses about 4 MB of memory.",
2078
+ "type": "string",
2079
+ "enum": [
2080
+ "bzip2"
2081
+ ]
2082
+ },
2083
+ {
2084
+ "description": "LZMA (default) is a new compression method that gives very good compression ratios. The decompression speed is high (10-20 MB/s on a 2 GHz CPU), the compression speed is lower. The memory size that will be used for decompression is the dictionary size plus a few KBs, the default is 8 MB.",
2085
+ "type": "string",
2086
+ "enum": [
2087
+ "lzma"
2088
+ ]
2724
2089
  }
2725
2090
  ]
2726
2091
  },
2727
- "UpdaterConfig": {
2728
- "description": "The Updater configuration object.\n\nSee more: https://tauri.app/v1/api/config#updaterconfig",
2092
+ "LinuxConfig": {
2093
+ "description": "Configuration for Linux bundles.\n\nSee more: <https://tauri.app/v1/api/config#linuxconfig>",
2729
2094
  "type": "object",
2730
2095
  "properties": {
2731
- "active": {
2732
- "description": "Whether the updater is active or not.",
2733
- "default": false,
2734
- "type": "boolean"
2735
- },
2736
- "dialog": {
2737
- "description": "Display built-in dialog or use event system if disabled.",
2738
- "default": true,
2739
- "type": "boolean"
2740
- },
2741
- "endpoints": {
2742
- "description": "The updater endpoints. TLS is enforced on production.\n\nThe updater URL can contain the following variables: - {{current_version}}: The version of the app that is requesting the update - {{target}}: The operating system name (one of `linux`, `windows` or `darwin`). - {{arch}}: The architecture of the machine (one of `x86_64`, `i686`, `aarch64` or `armv7`).\n\n# Examples - \"https://my.cdn.com/latest.json\": a raw JSON endpoint that returns the latest version and download links for each platform. - \"https://updates.app.dev/{{target}}?version={{current_version}}&arch={{arch}}\": a dedicated API with positional and query string arguments.",
2743
- "type": [
2744
- "array",
2745
- "null"
2746
- ],
2747
- "items": {
2748
- "$ref": "#/definitions/UpdaterEndpoint"
2749
- }
2096
+ "appimage": {
2097
+ "description": "Configuration for the AppImage bundle.",
2098
+ "default": {
2099
+ "bundleMediaFramework": false,
2100
+ "files": {}
2101
+ },
2102
+ "allOf": [
2103
+ {
2104
+ "$ref": "#/definitions/AppImageConfig"
2105
+ }
2106
+ ]
2750
2107
  },
2751
- "pubkey": {
2752
- "description": "Signature public key.",
2753
- "default": "",
2754
- "type": "string"
2108
+ "deb": {
2109
+ "description": "Configuration for the Debian bundle.",
2110
+ "default": {
2111
+ "files": {}
2112
+ },
2113
+ "allOf": [
2114
+ {
2115
+ "$ref": "#/definitions/DebConfig"
2116
+ }
2117
+ ]
2755
2118
  },
2756
- "windows": {
2757
- "description": "The Windows configuration for the updater.",
2119
+ "rpm": {
2120
+ "description": "Configuration for the RPM bundle.",
2758
2121
  "default": {
2759
- "installMode": "passive",
2760
- "installerArgs": []
2122
+ "epoch": 0,
2123
+ "files": {},
2124
+ "release": "1"
2761
2125
  },
2762
2126
  "allOf": [
2763
2127
  {
2764
- "$ref": "#/definitions/UpdaterWindowsConfig"
2128
+ "$ref": "#/definitions/RpmConfig"
2765
2129
  }
2766
2130
  ]
2767
2131
  }
2768
2132
  },
2769
2133
  "additionalProperties": false
2770
2134
  },
2771
- "UpdaterEndpoint": {
2772
- "description": "A URL to an updater server.\n\nThe URL must use the `https` scheme on production.",
2773
- "type": "string",
2774
- "format": "uri"
2775
- },
2776
- "UpdaterWindowsConfig": {
2777
- "description": "The updater configuration for Windows.\n\nSee more: https://tauri.app/v1/api/config#updaterwindowsconfig",
2135
+ "AppImageConfig": {
2136
+ "description": "Configuration for AppImage bundles.\n\nSee more: <https://tauri.app/v1/api/config#appimageconfig>",
2778
2137
  "type": "object",
2779
2138
  "properties": {
2780
- "installerArgs": {
2781
- "description": "Additional arguments given to the NSIS or WiX installer.",
2782
- "default": [],
2783
- "type": "array",
2784
- "items": {
2139
+ "bundleMediaFramework": {
2140
+ "description": "Include additional gstreamer dependencies needed for audio and video playback. This increases the bundle size by ~15-35MB depending on your build system.",
2141
+ "default": false,
2142
+ "type": "boolean"
2143
+ },
2144
+ "files": {
2145
+ "description": "The files to include in the Appimage Binary.",
2146
+ "default": {},
2147
+ "type": "object",
2148
+ "additionalProperties": {
2785
2149
  "type": "string"
2786
2150
  }
2787
- },
2788
- "installMode": {
2789
- "description": "The installation mode for the update on Windows. Defaults to `passive`.",
2790
- "default": "passive",
2791
- "allOf": [
2792
- {
2793
- "$ref": "#/definitions/WindowsUpdateInstallMode"
2794
- }
2795
- ]
2796
2151
  }
2797
2152
  },
2798
2153
  "additionalProperties": false
2799
2154
  },
2800
- "WindowsUpdateInstallMode": {
2801
- "description": "Install modes for the Windows update.",
2802
- "oneOf": [
2803
- {
2804
- "description": "Specifies there's a basic UI during the installation process, including a final dialog box at the end.",
2805
- "type": "string",
2806
- "enum": [
2807
- "basicUi"
2808
- ]
2155
+ "DebConfig": {
2156
+ "description": "Configuration for Debian (.deb) bundles.\n\nSee more: <https://tauri.app/v1/api/config#debconfig>",
2157
+ "type": "object",
2158
+ "properties": {
2159
+ "depends": {
2160
+ "description": "The list of deb dependencies your application relies on.",
2161
+ "type": [
2162
+ "array",
2163
+ "null"
2164
+ ],
2165
+ "items": {
2166
+ "type": "string"
2167
+ }
2809
2168
  },
2810
- {
2811
- "description": "The quiet mode means there's no user interaction required. Requires admin privileges if the installer does (WiX).",
2812
- "type": "string",
2813
- "enum": [
2814
- "quiet"
2815
- ]
2169
+ "files": {
2170
+ "description": "The files to include on the package.",
2171
+ "default": {},
2172
+ "type": "object",
2173
+ "additionalProperties": {
2174
+ "type": "string"
2175
+ }
2816
2176
  },
2817
- {
2818
- "description": "Specifies unattended mode, which means the installation only shows a progress bar.",
2819
- "type": "string",
2820
- "enum": [
2821
- "passive"
2177
+ "desktopTemplate": {
2178
+ "description": "Path to a custom desktop file Handlebars template.\n\nAvailable variables: `categories`, `comment` (optional), `exec`, `icon` and `name`.",
2179
+ "type": [
2180
+ "string",
2181
+ "null"
2822
2182
  ]
2823
2183
  }
2824
- ]
2184
+ },
2185
+ "additionalProperties": false
2825
2186
  },
2826
- "SystemTrayConfig": {
2827
- "description": "Configuration for application system tray icon.\n\nSee more: https://tauri.app/v1/api/config#systemtrayconfig",
2187
+ "RpmConfig": {
2188
+ "description": "Configuration for RPM bundles.",
2828
2189
  "type": "object",
2829
- "required": [
2830
- "iconPath"
2831
- ],
2832
2190
  "properties": {
2833
- "iconPath": {
2834
- "description": "Path to the default icon to use on the system tray.",
2191
+ "depends": {
2192
+ "description": "The list of RPM dependencies your application relies on.",
2193
+ "type": [
2194
+ "array",
2195
+ "null"
2196
+ ],
2197
+ "items": {
2198
+ "type": "string"
2199
+ }
2200
+ },
2201
+ "release": {
2202
+ "description": "The RPM release tag.",
2203
+ "default": "1",
2835
2204
  "type": "string"
2836
2205
  },
2837
- "iconAsTemplate": {
2838
- "description": "A Boolean value that determines whether the image represents a [template](https://developer.apple.com/documentation/appkit/nsimage/1520017-template?language=objc) image on macOS.",
2839
- "default": false,
2840
- "type": "boolean"
2206
+ "epoch": {
2207
+ "description": "The RPM epoch.",
2208
+ "default": 0,
2209
+ "type": "integer",
2210
+ "format": "uint32",
2211
+ "minimum": 0.0
2841
2212
  },
2842
- "menuOnLeftClick": {
2843
- "description": "A Boolean value that determines whether the menu should appear when the tray icon receives a left click on macOS.",
2844
- "default": true,
2845
- "type": "boolean"
2213
+ "files": {
2214
+ "description": "The files to include on the package.",
2215
+ "default": {},
2216
+ "type": "object",
2217
+ "additionalProperties": {
2218
+ "type": "string"
2219
+ }
2846
2220
  },
2847
- "title": {
2848
- "description": "Title for MacOS tray",
2221
+ "desktopTemplate": {
2222
+ "description": "Path to a custom desktop file Handlebars template.\n\nAvailable variables: `categories`, `comment` (optional), `exec`, `icon` and `name`.",
2849
2223
  "type": [
2850
2224
  "string",
2851
2225
  "null"
@@ -2854,171 +2228,226 @@
2854
2228
  },
2855
2229
  "additionalProperties": false
2856
2230
  },
2857
- "BuildConfig": {
2858
- "description": "The Build configuration object.\n\nSee more: https://tauri.app/v1/api/config#buildconfig",
2231
+ "MacConfig": {
2232
+ "description": "Configuration for the macOS bundles.\n\nSee more: <https://tauri.app/v1/api/config#macconfig>",
2859
2233
  "type": "object",
2860
2234
  "properties": {
2861
- "runner": {
2862
- "description": "The binary used to build and run the application.",
2235
+ "frameworks": {
2236
+ "description": "A list of strings indicating any macOS X frameworks that need to be bundled with the application.\n\nIf a name is used, \".framework\" must be omitted and it will look for standard install locations. You may also use a path to a specific framework.",
2237
+ "type": [
2238
+ "array",
2239
+ "null"
2240
+ ],
2241
+ "items": {
2242
+ "type": "string"
2243
+ }
2244
+ },
2245
+ "files": {
2246
+ "description": "The files to include in the application relative to the Contents directory.",
2247
+ "default": {},
2248
+ "type": "object",
2249
+ "additionalProperties": {
2250
+ "type": "string"
2251
+ }
2252
+ },
2253
+ "minimumSystemVersion": {
2254
+ "description": "A version string indicating the minimum macOS X version that the bundled application supports. Defaults to `10.13`.\n\nSetting it to `null` completely removes the `LSMinimumSystemVersion` field on the bundle's `Info.plist` and the `MACOSX_DEPLOYMENT_TARGET` environment variable.\n\nAn empty string is considered an invalid value so the default value is used.",
2255
+ "default": "10.13",
2863
2256
  "type": [
2864
2257
  "string",
2865
2258
  "null"
2866
2259
  ]
2867
2260
  },
2868
- "devPath": {
2869
- "description": "The path to the application assets or URL to load in development.\n\nThis is usually an URL to a dev server, which serves your application assets with live reloading. Most modern JavaScript bundlers provides a way to start a dev server by default.\n\nSee [vite](https://vitejs.dev/guide/), [Webpack DevServer](https://webpack.js.org/configuration/dev-server/) and [sirv](https://github.com/lukeed/sirv) for examples on how to set up a dev server.",
2870
- "default": "http://localhost:8080/",
2871
- "allOf": [
2872
- {
2873
- "$ref": "#/definitions/AppUrl"
2874
- }
2261
+ "exceptionDomain": {
2262
+ "description": "Allows your application to communicate with the outside world. It should be a lowercase, without port and protocol domain name.",
2263
+ "type": [
2264
+ "string",
2265
+ "null"
2266
+ ]
2267
+ },
2268
+ "signingIdentity": {
2269
+ "description": "Identity to use for code signing.",
2270
+ "type": [
2271
+ "string",
2272
+ "null"
2273
+ ]
2274
+ },
2275
+ "providerShortName": {
2276
+ "description": "Provider short name for notarization.",
2277
+ "type": [
2278
+ "string",
2279
+ "null"
2280
+ ]
2281
+ },
2282
+ "entitlements": {
2283
+ "description": "Path to the entitlements file.",
2284
+ "type": [
2285
+ "string",
2286
+ "null"
2875
2287
  ]
2876
2288
  },
2877
- "distDir": {
2878
- "description": "The path to the application assets or URL to load in production.\n\nWhen a path relative to the configuration file is provided, it is read recursively and all files are embedded in the application binary. Tauri then looks for an `index.html` file unless you provide a custom window URL.\n\nYou can also provide a list of paths to be embedded, which allows granular control over what files are added to the binary. In this case, all files are added to the root and you must reference it that way in your HTML files.\n\nWhen an URL is provided, the application won't have bundled assets and the application will load that URL by default.",
2879
- "default": "../dist",
2289
+ "dmg": {
2290
+ "description": "DMG-specific settings.",
2291
+ "default": {
2292
+ "appPosition": {
2293
+ "x": 180,
2294
+ "y": 170
2295
+ },
2296
+ "applicationFolderPosition": {
2297
+ "x": 480,
2298
+ "y": 170
2299
+ },
2300
+ "windowSize": {
2301
+ "height": 400,
2302
+ "width": 660
2303
+ }
2304
+ },
2880
2305
  "allOf": [
2881
2306
  {
2882
- "$ref": "#/definitions/AppUrl"
2307
+ "$ref": "#/definitions/DmgConfig"
2883
2308
  }
2884
2309
  ]
2310
+ }
2311
+ },
2312
+ "additionalProperties": false
2313
+ },
2314
+ "DmgConfig": {
2315
+ "description": "Configuration for Apple Disk Image (.dmg) bundles.\n\nSee more: <https://tauri.app/v1/api/config#dmgconfig>",
2316
+ "type": "object",
2317
+ "properties": {
2318
+ "background": {
2319
+ "description": "Image to use as the background in dmg file. Accepted formats: `png`/`jpg`/`gif`.",
2320
+ "type": [
2321
+ "string",
2322
+ "null"
2323
+ ]
2885
2324
  },
2886
- "beforeDevCommand": {
2887
- "description": "A shell command to run before `tauri dev` kicks in.\n\nThe TAURI_PLATFORM, TAURI_ARCH, TAURI_FAMILY, TAURI_PLATFORM_VERSION, TAURI_PLATFORM_TYPE and TAURI_DEBUG environment variables are set if you perform conditional compilation.",
2325
+ "windowPosition": {
2326
+ "description": "Position of volume window on screen.",
2888
2327
  "anyOf": [
2889
2328
  {
2890
- "$ref": "#/definitions/BeforeDevCommand"
2329
+ "$ref": "#/definitions/Position"
2891
2330
  },
2892
2331
  {
2893
2332
  "type": "null"
2894
2333
  }
2895
2334
  ]
2896
2335
  },
2897
- "beforeBuildCommand": {
2898
- "description": "A shell command to run before `tauri build` kicks in.\n\nThe TAURI_PLATFORM, TAURI_ARCH, TAURI_FAMILY, TAURI_PLATFORM_VERSION, TAURI_PLATFORM_TYPE and TAURI_DEBUG environment variables are set if you perform conditional compilation.",
2899
- "anyOf": [
2900
- {
2901
- "$ref": "#/definitions/HookCommand"
2902
- },
2336
+ "windowSize": {
2337
+ "description": "Size of volume window.",
2338
+ "default": {
2339
+ "height": 400,
2340
+ "width": 660
2341
+ },
2342
+ "allOf": [
2903
2343
  {
2904
- "type": "null"
2344
+ "$ref": "#/definitions/Size"
2905
2345
  }
2906
2346
  ]
2907
2347
  },
2908
- "beforeBundleCommand": {
2909
- "description": "A shell command to run before the bundling phase in `tauri build` kicks in.\n\nThe TAURI_PLATFORM, TAURI_ARCH, TAURI_FAMILY, TAURI_PLATFORM_VERSION, TAURI_PLATFORM_TYPE and TAURI_DEBUG environment variables are set if you perform conditional compilation.",
2910
- "anyOf": [
2911
- {
2912
- "$ref": "#/definitions/HookCommand"
2913
- },
2348
+ "appPosition": {
2349
+ "description": "Position of app file on window.",
2350
+ "default": {
2351
+ "x": 180,
2352
+ "y": 170
2353
+ },
2354
+ "allOf": [
2914
2355
  {
2915
- "type": "null"
2356
+ "$ref": "#/definitions/Position"
2916
2357
  }
2917
2358
  ]
2918
2359
  },
2919
- "features": {
2920
- "description": "Features passed to `cargo` commands.",
2921
- "type": [
2922
- "array",
2923
- "null"
2924
- ],
2925
- "items": {
2926
- "type": "string"
2927
- }
2928
- },
2929
- "withGlobalTauri": {
2930
- "description": "Whether we should inject the Tauri API on `window.__TAURI__` or not.",
2931
- "default": false,
2932
- "type": "boolean"
2933
- }
2934
- },
2935
- "additionalProperties": false
2936
- },
2937
- "AppUrl": {
2938
- "description": "Defines the URL or assets to embed in the application.",
2939
- "anyOf": [
2940
- {
2941
- "description": "The app's external URL, or the path to the directory containing the app assets.",
2360
+ "applicationFolderPosition": {
2361
+ "description": "Position of application folder on window.",
2362
+ "default": {
2363
+ "x": 480,
2364
+ "y": 170
2365
+ },
2942
2366
  "allOf": [
2943
2367
  {
2944
- "$ref": "#/definitions/WindowUrl"
2368
+ "$ref": "#/definitions/Position"
2945
2369
  }
2946
2370
  ]
2947
- },
2948
- {
2949
- "description": "An array of files to embed on the app.",
2950
- "type": "array",
2951
- "items": {
2952
- "type": "string"
2953
- }
2954
2371
  }
2955
- ]
2372
+ },
2373
+ "additionalProperties": false
2956
2374
  },
2957
- "BeforeDevCommand": {
2958
- "description": "Describes the shell command to run before `tauri dev`.",
2959
- "anyOf": [
2960
- {
2961
- "description": "Run the given script with the default options.",
2962
- "type": "string"
2375
+ "Position": {
2376
+ "description": "Position coordinates struct.",
2377
+ "type": "object",
2378
+ "required": [
2379
+ "x",
2380
+ "y"
2381
+ ],
2382
+ "properties": {
2383
+ "x": {
2384
+ "description": "X coordinate.",
2385
+ "type": "integer",
2386
+ "format": "uint32",
2387
+ "minimum": 0.0
2963
2388
  },
2964
- {
2965
- "description": "Run the given script with custom options.",
2966
- "type": "object",
2967
- "required": [
2968
- "script"
2969
- ],
2970
- "properties": {
2971
- "script": {
2972
- "description": "The script to execute.",
2973
- "type": "string"
2974
- },
2975
- "cwd": {
2976
- "description": "The current working directory.",
2977
- "type": [
2978
- "string",
2979
- "null"
2980
- ]
2981
- },
2982
- "wait": {
2983
- "description": "Whether `tauri dev` should wait for the command to finish or not. Defaults to `false`.",
2984
- "default": false,
2985
- "type": "boolean"
2986
- }
2987
- }
2389
+ "y": {
2390
+ "description": "Y coordinate.",
2391
+ "type": "integer",
2392
+ "format": "uint32",
2393
+ "minimum": 0.0
2988
2394
  }
2989
- ]
2395
+ },
2396
+ "additionalProperties": false
2990
2397
  },
2991
- "HookCommand": {
2992
- "description": "Describes a shell command to be executed when a CLI hook is triggered.",
2993
- "anyOf": [
2994
- {
2995
- "description": "Run the given script with the default options.",
2996
- "type": "string"
2398
+ "Size": {
2399
+ "description": "Size of the window.",
2400
+ "type": "object",
2401
+ "required": [
2402
+ "height",
2403
+ "width"
2404
+ ],
2405
+ "properties": {
2406
+ "width": {
2407
+ "description": "Width of the window.",
2408
+ "type": "integer",
2409
+ "format": "uint32",
2410
+ "minimum": 0.0
2997
2411
  },
2998
- {
2999
- "description": "Run the given script with custom options.",
3000
- "type": "object",
3001
- "required": [
3002
- "script"
3003
- ],
3004
- "properties": {
3005
- "script": {
3006
- "description": "The script to execute.",
3007
- "type": "string"
3008
- },
3009
- "cwd": {
3010
- "description": "The current working directory.",
3011
- "type": [
3012
- "string",
3013
- "null"
3014
- ]
3015
- }
3016
- }
2412
+ "height": {
2413
+ "description": "Height of the window.",
2414
+ "type": "integer",
2415
+ "format": "uint32",
2416
+ "minimum": 0.0
3017
2417
  }
3018
- ]
2418
+ },
2419
+ "additionalProperties": false
2420
+ },
2421
+ "IosConfig": {
2422
+ "description": "General configuration for the iOS target.",
2423
+ "type": "object",
2424
+ "properties": {
2425
+ "developmentTeam": {
2426
+ "description": "The development team. This value is required for iOS development because code signing is enforced. The `APPLE_DEVELOPMENT_TEAM` environment variable can be set to overwrite it.",
2427
+ "type": [
2428
+ "string",
2429
+ "null"
2430
+ ]
2431
+ }
2432
+ },
2433
+ "additionalProperties": false
2434
+ },
2435
+ "AndroidConfig": {
2436
+ "description": "General configuration for the iOS target.",
2437
+ "type": "object",
2438
+ "properties": {
2439
+ "minSdkVersion": {
2440
+ "description": "The minimum API level required for the application to run. The Android system will prevent the user from installing the application if the system's API level is lower than the value specified.",
2441
+ "default": 24,
2442
+ "type": "integer",
2443
+ "format": "uint32",
2444
+ "minimum": 0.0
2445
+ }
2446
+ },
2447
+ "additionalProperties": false
3019
2448
  },
3020
2449
  "PluginConfig": {
3021
- "description": "The plugin configs holds a HashMap mapping a plugin name to its configuration object.\n\nSee more: https://tauri.app/v1/api/config#pluginconfig",
2450
+ "description": "The plugin configs holds a HashMap mapping a plugin name to its configuration object.\n\nSee more: <https://tauri.app/v1/api/config#pluginconfig>",
3022
2451
  "type": "object",
3023
2452
  "additionalProperties": true
3024
2453
  }