@tauri-apps/cli 2.0.0-alpha.1 → 2.0.0-alpha.11

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 - [`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\": { \"bundle\": {}, \"security\": { \"csp\": null }, \"windows\": [ { \"fullscreen\": false, \"height\": 600, \"resizable\": true, \"title\": \"Tauri App\", \"width\": 800 } ] } } ```",
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "$schema": {
@@ -26,109 +26,11 @@
26
26
  "tauri": {
27
27
  "description": "The Tauri configuration.",
28
28
  "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
- "setCursorGrab": false,
109
- "setCursorIcon": false,
110
- "setCursorPosition": false,
111
- "setCursorVisible": false,
112
- "setDecorations": false,
113
- "setFocus": false,
114
- "setFullscreen": false,
115
- "setIcon": false,
116
- "setIgnoreCursorEvents": false,
117
- "setMaxSize": false,
118
- "setMinSize": false,
119
- "setPosition": false,
120
- "setResizable": false,
121
- "setSize": false,
122
- "setSkipTaskbar": false,
123
- "setTitle": false,
124
- "show": false,
125
- "startDragging": false,
126
- "unmaximize": false,
127
- "unminimize": false
128
- }
129
- },
130
29
  "bundle": {
131
30
  "active": false,
31
+ "android": {
32
+ "minSdkVersion": 24
33
+ },
132
34
  "appimage": {
133
35
  "bundleMediaFramework": false
134
36
  },
@@ -142,10 +44,18 @@
142
44
  "minimumSystemVersion": "10.13"
143
45
  },
144
46
  "targets": "all",
47
+ "updater": {
48
+ "active": false,
49
+ "pubkey": "",
50
+ "windows": {
51
+ "installMode": "passive"
52
+ }
53
+ },
145
54
  "windows": {
146
55
  "allowDowngrades": true,
147
56
  "certificateThumbprint": null,
148
57
  "digestAlgorithm": null,
58
+ "nsis": null,
149
59
  "timestampUrl": null,
150
60
  "tsp": false,
151
61
  "webviewFixedRuntimePath": null,
@@ -161,17 +71,14 @@
161
71
  "use": "brownfield"
162
72
  },
163
73
  "security": {
74
+ "assetProtocol": {
75
+ "enable": false,
76
+ "scope": []
77
+ },
164
78
  "dangerousDisableAssetCspModification": false,
79
+ "dangerousRemoteDomainIpcAccess": [],
165
80
  "freezePrototype": false
166
81
  },
167
- "updater": {
168
- "active": false,
169
- "dialog": true,
170
- "pubkey": "",
171
- "windows": {
172
- "installMode": "passive"
173
- }
174
- },
175
82
  "windows": []
176
83
  },
177
84
  "allOf": [
@@ -206,7 +113,7 @@
206
113
  "additionalProperties": false,
207
114
  "definitions": {
208
115
  "PackageConfig": {
209
- "description": "The package configuration.",
116
+ "description": "The package configuration.\n\nSee more: https://tauri.app/v1/api/config#packageconfig",
210
117
  "type": "object",
211
118
  "properties": {
212
119
  "productName": {
@@ -218,7 +125,7 @@
218
125
  "pattern": "^[^/\\:*?\"<>|]+$"
219
126
  },
220
127
  "version": {
221
- "description": "App version. It is a semver version number or a path to a `package.json` file containing the `version` field.",
128
+ "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.",
222
129
  "default": null,
223
130
  "type": [
224
131
  "string",
@@ -229,7 +136,7 @@
229
136
  "additionalProperties": false
230
137
  },
231
138
  "TauriConfig": {
232
- "description": "The Tauri configuration object.",
139
+ "description": "The Tauri configuration object.\n\nSee more: https://tauri.app/v1/api/config#tauriconfig",
233
140
  "type": "object",
234
141
  "properties": {
235
142
  "pattern": {
@@ -251,21 +158,13 @@
251
158
  "$ref": "#/definitions/WindowConfig"
252
159
  }
253
160
  },
254
- "cli": {
255
- "description": "The CLI configuration.",
256
- "anyOf": [
257
- {
258
- "$ref": "#/definitions/CliConfig"
259
- },
260
- {
261
- "type": "null"
262
- }
263
- ]
264
- },
265
161
  "bundle": {
266
162
  "description": "The bundler configuration.",
267
163
  "default": {
268
164
  "active": false,
165
+ "android": {
166
+ "minSdkVersion": 24
167
+ },
269
168
  "appimage": {
270
169
  "bundleMediaFramework": false
271
170
  },
@@ -279,10 +178,18 @@
279
178
  "minimumSystemVersion": "10.13"
280
179
  },
281
180
  "targets": "all",
181
+ "updater": {
182
+ "active": false,
183
+ "pubkey": "",
184
+ "windows": {
185
+ "installMode": "passive"
186
+ }
187
+ },
282
188
  "windows": {
283
189
  "allowDowngrades": true,
284
190
  "certificateThumbprint": null,
285
191
  "digestAlgorithm": null,
192
+ "nsis": null,
286
193
  "timestampUrl": null,
287
194
  "tsp": false,
288
195
  "webviewFixedRuntimePath": null,
@@ -299,119 +206,15 @@
299
206
  }
300
207
  ]
301
208
  },
302
- "allowlist": {
303
- "description": "The allowlist configuration.",
304
- "default": {
305
- "all": false,
306
- "app": {
307
- "all": false,
308
- "hide": false,
309
- "show": false
310
- },
311
- "clipboard": {
312
- "all": false,
313
- "readText": false,
314
- "writeText": false
315
- },
316
- "dialog": {
317
- "all": false,
318
- "ask": false,
319
- "confirm": false,
320
- "message": false,
321
- "open": false,
322
- "save": false
323
- },
324
- "fs": {
325
- "all": false,
326
- "copyFile": false,
327
- "createDir": false,
328
- "exists": false,
329
- "readDir": false,
330
- "readFile": false,
331
- "removeDir": false,
332
- "removeFile": false,
333
- "renameFile": false,
334
- "scope": [],
335
- "writeFile": false
336
- },
337
- "globalShortcut": {
338
- "all": false
339
- },
340
- "http": {
341
- "all": false,
342
- "request": false,
343
- "scope": []
344
- },
345
- "notification": {
346
- "all": false
347
- },
348
- "os": {
349
- "all": false
350
- },
351
- "path": {
352
- "all": false
353
- },
354
- "process": {
355
- "all": false,
356
- "exit": false,
357
- "relaunch": false,
358
- "relaunchDangerousAllowSymlinkMacos": false
359
- },
360
- "protocol": {
361
- "all": false,
362
- "asset": false,
363
- "assetScope": []
364
- },
365
- "shell": {
366
- "all": false,
367
- "execute": false,
368
- "open": false,
369
- "scope": [],
370
- "sidecar": false
371
- },
372
- "window": {
373
- "all": false,
374
- "center": false,
375
- "close": false,
376
- "create": false,
377
- "hide": false,
378
- "maximize": false,
379
- "minimize": false,
380
- "print": false,
381
- "requestUserAttention": false,
382
- "setAlwaysOnTop": false,
383
- "setCursorGrab": false,
384
- "setCursorIcon": false,
385
- "setCursorPosition": false,
386
- "setCursorVisible": false,
387
- "setDecorations": false,
388
- "setFocus": false,
389
- "setFullscreen": false,
390
- "setIcon": false,
391
- "setIgnoreCursorEvents": false,
392
- "setMaxSize": false,
393
- "setMinSize": false,
394
- "setPosition": false,
395
- "setResizable": false,
396
- "setSize": false,
397
- "setSkipTaskbar": false,
398
- "setTitle": false,
399
- "show": false,
400
- "startDragging": false,
401
- "unmaximize": false,
402
- "unminimize": false
403
- }
404
- },
405
- "allOf": [
406
- {
407
- "$ref": "#/definitions/AllowlistConfig"
408
- }
409
- ]
410
- },
411
209
  "security": {
412
210
  "description": "Security configuration.",
413
211
  "default": {
212
+ "assetProtocol": {
213
+ "enable": false,
214
+ "scope": []
215
+ },
414
216
  "dangerousDisableAssetCspModification": false,
217
+ "dangerousRemoteDomainIpcAccess": [],
415
218
  "freezePrototype": false
416
219
  },
417
220
  "allOf": [
@@ -420,27 +223,11 @@
420
223
  }
421
224
  ]
422
225
  },
423
- "updater": {
424
- "description": "The updater configuration.",
425
- "default": {
426
- "active": false,
427
- "dialog": true,
428
- "pubkey": "",
429
- "windows": {
430
- "installMode": "passive"
431
- }
432
- },
433
- "allOf": [
434
- {
435
- "$ref": "#/definitions/UpdaterConfig"
436
- }
437
- ]
438
- },
439
- "systemTray": {
440
- "description": "Configuration for app system tray.",
226
+ "trayIcon": {
227
+ "description": "Configuration for app tray icon.",
441
228
  "anyOf": [
442
229
  {
443
- "$ref": "#/definitions/SystemTrayConfig"
230
+ "$ref": "#/definitions/TrayIconConfig"
444
231
  },
445
232
  {
446
233
  "type": "null"
@@ -504,7 +291,7 @@
504
291
  ]
505
292
  },
506
293
  "WindowConfig": {
507
- "description": "The window configuration object.",
294
+ "description": "The window configuration object.\n\nSee more: https://tauri.app/v1/api/config#windowconfig",
508
295
  "type": "object",
509
296
  "properties": {
510
297
  "label": {
@@ -599,7 +386,22 @@
599
386
  "format": "double"
600
387
  },
601
388
  "resizable": {
602
- "description": "Whether the window is resizable or not.",
389
+ "description": "Whether the window is resizable or not. When resizable is set to false, native window's maximize button is automatically disabled.",
390
+ "default": true,
391
+ "type": "boolean"
392
+ },
393
+ "maximizable": {
394
+ "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.",
395
+ "default": true,
396
+ "type": "boolean"
397
+ },
398
+ "minimizable": {
399
+ "description": "Whether the window's native minimize button is enabled or not.\n\n## Platform-specific\n\n- **Linux / iOS / Android:** Unsupported.",
400
+ "default": true,
401
+ "type": "boolean"
402
+ },
403
+ "closable": {
404
+ "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.",
603
405
  "default": true,
604
406
  "type": "boolean"
605
407
  },
@@ -643,6 +445,16 @@
643
445
  "default": false,
644
446
  "type": "boolean"
645
447
  },
448
+ "visibleOnAllWorkspaces": {
449
+ "description": "Whether the window should be visible on all workspaces or virtual desktops.",
450
+ "default": false,
451
+ "type": "boolean"
452
+ },
453
+ "contentProtected": {
454
+ "description": "Prevents the window contents from being captured by other apps.",
455
+ "default": false,
456
+ "type": "boolean"
457
+ },
646
458
  "skipTaskbar": {
647
459
  "description": "If `true`, hides the window icon from the taskbar on Windows and Linux.",
648
460
  "default": false,
@@ -684,6 +496,34 @@
684
496
  "string",
685
497
  "null"
686
498
  ]
499
+ },
500
+ "additionalBrowserArgs": {
501
+ "description": "Defines additional browser arguments on Windows. By default wry passes `--disable-features=msWebOOUI,msPdfOOUI,msSmartScreenProtection` so if you use this method, you also need to disable these components by yourself if you want.",
502
+ "type": [
503
+ "string",
504
+ "null"
505
+ ]
506
+ },
507
+ "shadow": {
508
+ "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.",
509
+ "default": true,
510
+ "type": "boolean"
511
+ },
512
+ "windowEffects": {
513
+ "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",
514
+ "anyOf": [
515
+ {
516
+ "$ref": "#/definitions/WindowEffectsConfig"
517
+ },
518
+ {
519
+ "type": "null"
520
+ }
521
+ ]
522
+ },
523
+ "incognito": {
524
+ "description": "Whether or not the webview should be launched in incognito mode.\n\n## Platform-specific:\n\n- **Android**: Unsupported.",
525
+ "default": false,
526
+ "type": "boolean"
687
527
  }
688
528
  },
689
529
  "additionalProperties": false
@@ -747,254 +587,287 @@
747
587
  }
748
588
  ]
749
589
  },
750
- "CliConfig": {
751
- "description": "describes a CLI configuration",
590
+ "WindowEffectsConfig": {
591
+ "description": "The window effects configuration object",
752
592
  "type": "object",
593
+ "required": [
594
+ "effects"
595
+ ],
753
596
  "properties": {
754
- "description": {
755
- "description": "Command description which will be shown on the help information.",
756
- "type": [
757
- "string",
758
- "null"
759
- ]
760
- },
761
- "longDescription": {
762
- "description": "Command long description which will be shown on the help information.",
763
- "type": [
764
- "string",
765
- "null"
766
- ]
767
- },
768
- "beforeHelp": {
769
- "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.",
770
- "type": [
771
- "string",
772
- "null"
773
- ]
597
+ "effects": {
598
+ "description": "List of Window effects to apply to the Window. Conflicting effects will apply the first one and ignore the rest.",
599
+ "type": "array",
600
+ "items": {
601
+ "$ref": "#/definitions/WindowEffect"
602
+ }
774
603
  },
775
- "afterHelp": {
776
- "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.",
777
- "type": [
778
- "string",
779
- "null"
604
+ "state": {
605
+ "description": "Window effect state **macOS Only**",
606
+ "anyOf": [
607
+ {
608
+ "$ref": "#/definitions/WindowEffectState"
609
+ },
610
+ {
611
+ "type": "null"
612
+ }
780
613
  ]
781
614
  },
782
- "args": {
783
- "description": "List of arguments for the command",
615
+ "radius": {
616
+ "description": "Window effect corner radius **macOS Only**",
784
617
  "type": [
785
- "array",
618
+ "number",
786
619
  "null"
787
620
  ],
788
- "items": {
789
- "$ref": "#/definitions/CliArg"
790
- }
621
+ "format": "double"
791
622
  },
792
- "subcommands": {
793
- "description": "List of subcommands of this command",
794
- "type": [
795
- "object",
796
- "null"
797
- ],
798
- "additionalProperties": {
799
- "$ref": "#/definitions/CliConfig"
800
- }
623
+ "color": {
624
+ "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.",
625
+ "anyOf": [
626
+ {
627
+ "$ref": "#/definitions/Color"
628
+ },
629
+ {
630
+ "type": "null"
631
+ }
632
+ ]
801
633
  }
802
634
  },
803
635
  "additionalProperties": false
804
636
  },
805
- "CliArg": {
806
- "description": "A CLI argument definition.",
807
- "type": "object",
808
- "required": [
809
- "name"
810
- ],
811
- "properties": {
812
- "short": {
813
- "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.",
814
- "type": [
815
- "string",
816
- "null"
817
- ],
818
- "maxLength": 1,
819
- "minLength": 1
820
- },
821
- "name": {
822
- "description": "The unique argument name",
823
- "type": "string"
824
- },
825
- "description": {
826
- "description": "The argument description which will be shown on the help information. Typically, this is a short (one line) description of the arg.",
827
- "type": [
828
- "string",
829
- "null"
637
+ "WindowEffect": {
638
+ "description": "Platform-specific window effects",
639
+ "oneOf": [
640
+ {
641
+ "description": "A default material appropriate for the view's effectiveAppearance. **macOS 10.14-**",
642
+ "deprecated": true,
643
+ "type": "string",
644
+ "enum": [
645
+ "appearanceBased"
830
646
  ]
831
647
  },
832
- "longDescription": {
833
- "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.",
834
- "type": [
835
- "string",
836
- "null"
648
+ {
649
+ "description": "*macOS 10.14-**",
650
+ "deprecated": true,
651
+ "type": "string",
652
+ "enum": [
653
+ "light"
837
654
  ]
838
655
  },
839
- "takesValue": {
840
- "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",
841
- "default": false,
842
- "type": "boolean"
656
+ {
657
+ "description": "*macOS 10.14-**",
658
+ "deprecated": true,
659
+ "type": "string",
660
+ "enum": [
661
+ "dark"
662
+ ]
843
663
  },
844
- "multiple": {
845
- "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.",
846
- "default": false,
847
- "type": "boolean"
664
+ {
665
+ "description": "*macOS 10.14-**",
666
+ "deprecated": true,
667
+ "type": "string",
668
+ "enum": [
669
+ "mediumLight"
670
+ ]
848
671
  },
849
- "multipleOccurrences": {
850
- "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.",
851
- "default": false,
852
- "type": "boolean"
672
+ {
673
+ "description": "*macOS 10.14-**",
674
+ "deprecated": true,
675
+ "type": "string",
676
+ "enum": [
677
+ "ultraDark"
678
+ ]
853
679
  },
854
- "numberOfValues": {
855
- "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`.",
856
- "type": [
857
- "integer",
858
- "null"
859
- ],
860
- "format": "uint",
861
- "minimum": 0.0
680
+ {
681
+ "description": "*macOS 10.10+**",
682
+ "type": "string",
683
+ "enum": [
684
+ "titlebar"
685
+ ]
862
686
  },
863
- "possibleValues": {
864
- "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.",
865
- "type": [
866
- "array",
867
- "null"
868
- ],
869
- "items": {
870
- "type": "string"
871
- }
687
+ {
688
+ "description": "*macOS 10.10+**",
689
+ "type": "string",
690
+ "enum": [
691
+ "selection"
692
+ ]
872
693
  },
873
- "minValues": {
874
- "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.",
875
- "type": [
876
- "integer",
877
- "null"
878
- ],
879
- "format": "uint",
880
- "minimum": 0.0
694
+ {
695
+ "description": "*macOS 10.11+**",
696
+ "type": "string",
697
+ "enum": [
698
+ "menu"
699
+ ]
881
700
  },
882
- "maxValues": {
883
- "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.",
884
- "type": [
885
- "integer",
886
- "null"
887
- ],
888
- "format": "uint",
889
- "minimum": 0.0
701
+ {
702
+ "description": "*macOS 10.11+**",
703
+ "type": "string",
704
+ "enum": [
705
+ "popover"
706
+ ]
890
707
  },
891
- "required": {
892
- "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.",
893
- "default": false,
894
- "type": "boolean"
708
+ {
709
+ "description": "*macOS 10.11+**",
710
+ "type": "string",
711
+ "enum": [
712
+ "sidebar"
713
+ ]
895
714
  },
896
- "requiredUnlessPresent": {
897
- "description": "Sets an arg that override this arg's required setting i.e. this arg will be required unless this other argument is present.",
898
- "type": [
899
- "string",
900
- "null"
715
+ {
716
+ "description": "*macOS 10.14+**",
717
+ "type": "string",
718
+ "enum": [
719
+ "headerView"
901
720
  ]
902
721
  },
903
- "requiredUnlessPresentAll": {
904
- "description": "Sets args that override this arg's required setting i.e. this arg will be required unless all these other arguments are present.",
905
- "type": [
906
- "array",
907
- "null"
908
- ],
909
- "items": {
910
- "type": "string"
911
- }
722
+ {
723
+ "description": "*macOS 10.14+**",
724
+ "type": "string",
725
+ "enum": [
726
+ "sheet"
727
+ ]
912
728
  },
913
- "requiredUnlessPresentAny": {
914
- "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.",
915
- "type": [
916
- "array",
917
- "null"
918
- ],
919
- "items": {
920
- "type": "string"
921
- }
729
+ {
730
+ "description": "*macOS 10.14+**",
731
+ "type": "string",
732
+ "enum": [
733
+ "windowBackground"
734
+ ]
922
735
  },
923
- "conflictsWith": {
924
- "description": "Sets a conflicting argument by name i.e. when using this argument, the following argument can't be present and vice versa.",
925
- "type": [
926
- "string",
927
- "null"
736
+ {
737
+ "description": "*macOS 10.14+**",
738
+ "type": "string",
739
+ "enum": [
740
+ "hudWindow"
928
741
  ]
929
742
  },
930
- "conflictsWithAll": {
931
- "description": "The same as conflictsWith but allows specifying multiple two-way conflicts per argument.",
932
- "type": [
933
- "array",
934
- "null"
935
- ],
936
- "items": {
937
- "type": "string"
938
- }
743
+ {
744
+ "description": "*macOS 10.14+**",
745
+ "type": "string",
746
+ "enum": [
747
+ "fullScreenUI"
748
+ ]
939
749
  },
940
- "requires": {
941
- "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.",
942
- "type": [
943
- "string",
944
- "null"
750
+ {
751
+ "description": "*macOS 10.14+**",
752
+ "type": "string",
753
+ "enum": [
754
+ "tooltip"
945
755
  ]
946
756
  },
947
- "requiresAll": {
948
- "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.",
949
- "type": [
950
- "array",
951
- "null"
952
- ],
953
- "items": {
954
- "type": "string"
955
- }
757
+ {
758
+ "description": "*macOS 10.14+**",
759
+ "type": "string",
760
+ "enum": [
761
+ "contentBackground"
762
+ ]
956
763
  },
957
- "requiresIf": {
958
- "description": "Allows a conditional requirement with the signature [arg, value] the requirement will only become valid if `arg`'s value equals `${value}`.",
959
- "type": [
960
- "array",
961
- "null"
962
- ],
963
- "items": {
964
- "type": "string"
965
- }
764
+ {
765
+ "description": "*macOS 10.14+**",
766
+ "type": "string",
767
+ "enum": [
768
+ "underWindowBackground"
769
+ ]
966
770
  },
967
- "requiredIfEq": {
968
- "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}`.",
969
- "type": [
970
- "array",
971
- "null"
972
- ],
973
- "items": {
974
- "type": "string"
975
- }
771
+ {
772
+ "description": "*macOS 10.14+**",
773
+ "type": "string",
774
+ "enum": [
775
+ "underPageBackground"
776
+ ]
976
777
  },
977
- "requireEquals": {
978
- "description": "Requires that options use the --option=val syntax i.e. an equals between the option and associated value.",
979
- "type": [
980
- "boolean",
981
- "null"
778
+ {
779
+ "description": "Mica effect that matches the system dark perefence **Windows 11 Only**",
780
+ "type": "string",
781
+ "enum": [
782
+ "mica"
982
783
  ]
983
784
  },
984
- "index": {
985
- "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).",
986
- "type": [
987
- "integer",
988
- "null"
989
- ],
990
- "format": "uint",
991
- "minimum": 1.0
785
+ {
786
+ "description": "Mica effect with dark mode but only if dark mode is enabled on the system **Windows 11 Only**",
787
+ "type": "string",
788
+ "enum": [
789
+ "micaDark"
790
+ ]
791
+ },
792
+ {
793
+ "description": "Mica effect with light mode **Windows 11 Only**",
794
+ "type": "string",
795
+ "enum": [
796
+ "micaLight"
797
+ ]
798
+ },
799
+ {
800
+ "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.",
801
+ "type": "string",
802
+ "enum": [
803
+ "blur"
804
+ ]
805
+ },
806
+ {
807
+ "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.",
808
+ "type": "string",
809
+ "enum": [
810
+ "acrylic"
811
+ ]
992
812
  }
993
- },
994
- "additionalProperties": false
813
+ ]
814
+ },
815
+ "WindowEffectState": {
816
+ "description": "Window effect state **macOS only**\n\n<https://developer.apple.com/documentation/appkit/nsvisualeffectview/state>",
817
+ "oneOf": [
818
+ {
819
+ "description": "Make window effect state follow the window's active state",
820
+ "type": "string",
821
+ "enum": [
822
+ "followsWindowActiveState"
823
+ ]
824
+ },
825
+ {
826
+ "description": "Make window effect state always active",
827
+ "type": "string",
828
+ "enum": [
829
+ "active"
830
+ ]
831
+ },
832
+ {
833
+ "description": "Make window effect state always inactive",
834
+ "type": "string",
835
+ "enum": [
836
+ "inactive"
837
+ ]
838
+ }
839
+ ]
840
+ },
841
+ "Color": {
842
+ "description": "a tuple struct of RGBA colors. Each value has minimum of 0 and maximum of 255.",
843
+ "type": "array",
844
+ "items": [
845
+ {
846
+ "type": "integer",
847
+ "format": "uint8",
848
+ "minimum": 0.0
849
+ },
850
+ {
851
+ "type": "integer",
852
+ "format": "uint8",
853
+ "minimum": 0.0
854
+ },
855
+ {
856
+ "type": "integer",
857
+ "format": "uint8",
858
+ "minimum": 0.0
859
+ },
860
+ {
861
+ "type": "integer",
862
+ "format": "uint8",
863
+ "minimum": 0.0
864
+ }
865
+ ],
866
+ "maxItems": 4,
867
+ "minItems": 4
995
868
  },
996
869
  "BundleConfig": {
997
- "description": "Configuration for tauri-bundler.",
870
+ "description": "Configuration for tauri-bundler.\n\nSee more: https://tauri.app/v1/api/config#bundleconfig",
998
871
  "type": "object",
999
872
  "required": [
1000
873
  "identifier"
@@ -1006,7 +879,7 @@
1006
879
  "type": "boolean"
1007
880
  },
1008
881
  "targets": {
1009
- "description": "The bundle targets, currently supports [\"deb\", \"appimage\", \"msi\", \"app\", \"dmg\", \"updater\"] or \"all\".",
882
+ "description": "The bundle targets, currently supports [\"deb\", \"appimage\", \"nsis\", \"msi\", \"app\", \"dmg\", \"updater\"] or \"all\".",
1010
883
  "default": "all",
1011
884
  "allOf": [
1012
885
  {
@@ -1057,6 +930,16 @@
1057
930
  "null"
1058
931
  ]
1059
932
  },
933
+ "fileAssociations": {
934
+ "description": "File associations to application.",
935
+ "type": [
936
+ "array",
937
+ "null"
938
+ ],
939
+ "items": {
940
+ "$ref": "#/definitions/FileAssociation"
941
+ }
942
+ },
1060
943
  "shortDescription": {
1061
944
  "description": "A short description of your application.",
1062
945
  "type": [
@@ -1120,6 +1003,7 @@
1120
1003
  "allowDowngrades": true,
1121
1004
  "certificateThumbprint": null,
1122
1005
  "digestAlgorithm": null,
1006
+ "nsis": null,
1123
1007
  "timestampUrl": null,
1124
1008
  "tsp": false,
1125
1009
  "webviewFixedRuntimePath": null,
@@ -1143,6 +1027,32 @@
1143
1027
  "$ref": "#/definitions/IosConfig"
1144
1028
  }
1145
1029
  ]
1030
+ },
1031
+ "android": {
1032
+ "description": "Android configuration.",
1033
+ "default": {
1034
+ "minSdkVersion": 24
1035
+ },
1036
+ "allOf": [
1037
+ {
1038
+ "$ref": "#/definitions/AndroidConfig"
1039
+ }
1040
+ ]
1041
+ },
1042
+ "updater": {
1043
+ "description": "The updater configuration.",
1044
+ "default": {
1045
+ "active": false,
1046
+ "pubkey": "",
1047
+ "windows": {
1048
+ "installMode": "passive"
1049
+ }
1050
+ },
1051
+ "allOf": [
1052
+ {
1053
+ "$ref": "#/definitions/UpdaterConfig"
1054
+ }
1055
+ ]
1146
1056
  }
1147
1057
  },
1148
1058
  "additionalProperties": false
@@ -1197,6 +1107,13 @@
1197
1107
  "msi"
1198
1108
  ]
1199
1109
  },
1110
+ {
1111
+ "description": "The NSIS bundle (.exe).",
1112
+ "type": "string",
1113
+ "enum": [
1114
+ "nsis"
1115
+ ]
1116
+ },
1200
1117
  {
1201
1118
  "description": "The macOS application bundle (.app).",
1202
1119
  "type": "string",
@@ -1220,8 +1137,99 @@
1220
1137
  }
1221
1138
  ]
1222
1139
  },
1140
+ "FileAssociation": {
1141
+ "description": "File association",
1142
+ "type": "object",
1143
+ "required": [
1144
+ "ext"
1145
+ ],
1146
+ "properties": {
1147
+ "ext": {
1148
+ "description": "File extensions to associate with this app. e.g. 'png'",
1149
+ "type": "array",
1150
+ "items": {
1151
+ "$ref": "#/definitions/AssociationExt"
1152
+ }
1153
+ },
1154
+ "name": {
1155
+ "description": "The name. Maps to `CFBundleTypeName` on macOS. Default to ext[0]",
1156
+ "type": [
1157
+ "string",
1158
+ "null"
1159
+ ]
1160
+ },
1161
+ "description": {
1162
+ "description": "The association description. Windows-only. It is displayed on the `Type` column on Windows Explorer.",
1163
+ "type": [
1164
+ "string",
1165
+ "null"
1166
+ ]
1167
+ },
1168
+ "role": {
1169
+ "description": "The app’s role with respect to the type. Maps to `CFBundleTypeRole` on macOS.",
1170
+ "default": "Editor",
1171
+ "allOf": [
1172
+ {
1173
+ "$ref": "#/definitions/BundleTypeRole"
1174
+ }
1175
+ ]
1176
+ },
1177
+ "mimeType": {
1178
+ "description": "The mime-type e.g. 'image/png' or 'text/plain'. Linux-only.",
1179
+ "type": [
1180
+ "string",
1181
+ "null"
1182
+ ]
1183
+ }
1184
+ },
1185
+ "additionalProperties": false
1186
+ },
1187
+ "AssociationExt": {
1188
+ "description": "An extension for a [`FileAssociation`].\n\nA leading `.` is automatically stripped.",
1189
+ "type": "string"
1190
+ },
1191
+ "BundleTypeRole": {
1192
+ "description": "macOS-only. Corresponds to CFBundleTypeRole",
1193
+ "oneOf": [
1194
+ {
1195
+ "description": "CFBundleTypeRole.Editor. Files can be read and edited.",
1196
+ "type": "string",
1197
+ "enum": [
1198
+ "Editor"
1199
+ ]
1200
+ },
1201
+ {
1202
+ "description": "CFBundleTypeRole.Viewer. Files can be read.",
1203
+ "type": "string",
1204
+ "enum": [
1205
+ "Viewer"
1206
+ ]
1207
+ },
1208
+ {
1209
+ "description": "CFBundleTypeRole.Shell",
1210
+ "type": "string",
1211
+ "enum": [
1212
+ "Shell"
1213
+ ]
1214
+ },
1215
+ {
1216
+ "description": "CFBundleTypeRole.QLGenerator",
1217
+ "type": "string",
1218
+ "enum": [
1219
+ "QLGenerator"
1220
+ ]
1221
+ },
1222
+ {
1223
+ "description": "CFBundleTypeRole.None",
1224
+ "type": "string",
1225
+ "enum": [
1226
+ "None"
1227
+ ]
1228
+ }
1229
+ ]
1230
+ },
1223
1231
  "AppImageConfig": {
1224
- "description": "Configuration for AppImage bundles.",
1232
+ "description": "Configuration for AppImage bundles.\n\nSee more: https://tauri.app/v1/api/config#appimageconfig",
1225
1233
  "type": "object",
1226
1234
  "properties": {
1227
1235
  "bundleMediaFramework": {
@@ -1233,7 +1241,7 @@
1233
1241
  "additionalProperties": false
1234
1242
  },
1235
1243
  "DebConfig": {
1236
- "description": "Configuration for Debian (.deb) bundles.",
1244
+ "description": "Configuration for Debian (.deb) bundles.\n\nSee more: https://tauri.app/v1/api/config#debconfig",
1237
1245
  "type": "object",
1238
1246
  "properties": {
1239
1247
  "depends": {
@@ -1253,12 +1261,19 @@
1253
1261
  "additionalProperties": {
1254
1262
  "type": "string"
1255
1263
  }
1264
+ },
1265
+ "desktopTemplate": {
1266
+ "description": "Path to a custom desktop file Handlebars template.\n\nAvailable variables: `categories`, `comment` (optional), `exec`, `icon` and `name`.",
1267
+ "type": [
1268
+ "string",
1269
+ "null"
1270
+ ]
1256
1271
  }
1257
1272
  },
1258
1273
  "additionalProperties": false
1259
1274
  },
1260
1275
  "MacConfig": {
1261
- "description": "Configuration for the macOS bundles.",
1276
+ "description": "Configuration for the macOS bundles.\n\nSee more: https://tauri.app/v1/api/config#macconfig",
1262
1277
  "type": "object",
1263
1278
  "properties": {
1264
1279
  "frameworks": {
@@ -1318,7 +1333,7 @@
1318
1333
  "additionalProperties": false
1319
1334
  },
1320
1335
  "WindowsConfig": {
1321
- "description": "Windows bundler configuration.",
1336
+ "description": "Windows bundler configuration.\n\nSee more: https://tauri.app/v1/api/config#windowsconfig",
1322
1337
  "type": "object",
1323
1338
  "properties": {
1324
1339
  "digestAlgorithm": {
@@ -1381,6 +1396,17 @@
1381
1396
  "type": "null"
1382
1397
  }
1383
1398
  ]
1399
+ },
1400
+ "nsis": {
1401
+ "description": "Configuration for the installer generated with NSIS.",
1402
+ "anyOf": [
1403
+ {
1404
+ "$ref": "#/definitions/NsisConfig"
1405
+ },
1406
+ {
1407
+ "type": "null"
1408
+ }
1409
+ ]
1384
1410
  }
1385
1411
  },
1386
1412
  "additionalProperties": false
@@ -1405,7 +1431,7 @@
1405
1431
  "additionalProperties": false
1406
1432
  },
1407
1433
  {
1408
- "description": "Download the bootstrapper and run it. Requires internet connection. Results in a smaller installer size, but is not recommended on Windows 7.",
1434
+ "description": "Download the bootstrapper and run it. Requires an internet connection. Results in a smaller installer size, but is not recommended on Windows 7.",
1409
1435
  "type": "object",
1410
1436
  "required": [
1411
1437
  "type"
@@ -1426,7 +1452,7 @@
1426
1452
  "additionalProperties": false
1427
1453
  },
1428
1454
  {
1429
- "description": "Embed the bootstrapper and run it. Requires internet connection. Increases the installer size by around 1.8MB, but offers better support on Windows 7.",
1455
+ "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.",
1430
1456
  "type": "object",
1431
1457
  "required": [
1432
1458
  "type"
@@ -1447,7 +1473,7 @@
1447
1473
  "additionalProperties": false
1448
1474
  },
1449
1475
  {
1450
- "description": "Embed the offline installer and run it. Does not require internet connection. Increases the installer size by around 127MB.",
1476
+ "description": "Embed the offline installer and run it. Does not require an internet connection. Increases the installer size by around 127MB.",
1451
1477
  "type": "object",
1452
1478
  "required": [
1453
1479
  "type"
@@ -1491,7 +1517,7 @@
1491
1517
  ]
1492
1518
  },
1493
1519
  "WixConfig": {
1494
- "description": "Configuration for the MSI bundle using WiX.",
1520
+ "description": "Configuration for the MSI bundle using WiX.\n\nSee more: https://tauri.app/v1/api/config#wixconfig",
1495
1521
  "type": "object",
1496
1522
  "properties": {
1497
1523
  "language": {
@@ -1616,7 +1642,7 @@
1616
1642
  ]
1617
1643
  },
1618
1644
  "WixLanguageConfig": {
1619
- "description": "Configuration for a target language for the WiX build.",
1645
+ "description": "Configuration for a target language for the WiX build.\n\nSee more: https://tauri.app/v1/api/config#wixlanguageconfig",
1620
1646
  "type": "object",
1621
1647
  "properties": {
1622
1648
  "localePath": {
@@ -1629,840 +1655,208 @@
1629
1655
  },
1630
1656
  "additionalProperties": false
1631
1657
  },
1632
- "IosConfig": {
1633
- "description": "General configuration for the iOS target.",
1658
+ "NsisConfig": {
1659
+ "description": "Configuration for the Installer bundle using NSIS.",
1634
1660
  "type": "object",
1635
1661
  "properties": {
1636
- "developmentTeam": {
1637
- "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.",
1662
+ "template": {
1663
+ "description": "A custom .nsi template to use.",
1638
1664
  "type": [
1639
1665
  "string",
1640
1666
  "null"
1641
1667
  ]
1642
- }
1643
- },
1644
- "additionalProperties": false
1645
- },
1646
- "AllowlistConfig": {
1647
- "description": "Allowlist configuration.",
1648
- "type": "object",
1649
- "properties": {
1650
- "all": {
1651
- "description": "Use this flag to enable all API features.",
1652
- "default": false,
1653
- "type": "boolean"
1654
- },
1655
- "fs": {
1656
- "description": "File system API allowlist.",
1657
- "default": {
1658
- "all": false,
1659
- "copyFile": false,
1660
- "createDir": false,
1661
- "exists": false,
1662
- "readDir": false,
1663
- "readFile": false,
1664
- "removeDir": false,
1665
- "removeFile": false,
1666
- "renameFile": false,
1667
- "scope": [],
1668
- "writeFile": false
1669
- },
1670
- "allOf": [
1671
- {
1672
- "$ref": "#/definitions/FsAllowlistConfig"
1673
- }
1674
- ]
1675
- },
1676
- "window": {
1677
- "description": "Window API allowlist.",
1678
- "default": {
1679
- "all": false,
1680
- "center": false,
1681
- "close": false,
1682
- "create": false,
1683
- "hide": false,
1684
- "maximize": false,
1685
- "minimize": false,
1686
- "print": false,
1687
- "requestUserAttention": false,
1688
- "setAlwaysOnTop": false,
1689
- "setCursorGrab": false,
1690
- "setCursorIcon": false,
1691
- "setCursorPosition": false,
1692
- "setCursorVisible": false,
1693
- "setDecorations": false,
1694
- "setFocus": false,
1695
- "setFullscreen": false,
1696
- "setIcon": false,
1697
- "setIgnoreCursorEvents": false,
1698
- "setMaxSize": false,
1699
- "setMinSize": false,
1700
- "setPosition": false,
1701
- "setResizable": false,
1702
- "setSize": false,
1703
- "setSkipTaskbar": false,
1704
- "setTitle": false,
1705
- "show": false,
1706
- "startDragging": false,
1707
- "unmaximize": false,
1708
- "unminimize": false
1709
- },
1710
- "allOf": [
1711
- {
1712
- "$ref": "#/definitions/WindowAllowlistConfig"
1713
- }
1714
- ]
1715
- },
1716
- "shell": {
1717
- "description": "Shell API allowlist.",
1718
- "default": {
1719
- "all": false,
1720
- "execute": false,
1721
- "open": false,
1722
- "scope": [],
1723
- "sidecar": false
1724
- },
1725
- "allOf": [
1726
- {
1727
- "$ref": "#/definitions/ShellAllowlistConfig"
1728
- }
1729
- ]
1730
1668
  },
1731
- "dialog": {
1732
- "description": "Dialog API allowlist.",
1733
- "default": {
1734
- "all": false,
1735
- "ask": false,
1736
- "confirm": false,
1737
- "message": false,
1738
- "open": false,
1739
- "save": false
1740
- },
1741
- "allOf": [
1742
- {
1743
- "$ref": "#/definitions/DialogAllowlistConfig"
1744
- }
1745
- ]
1746
- },
1747
- "http": {
1748
- "description": "HTTP API allowlist.",
1749
- "default": {
1750
- "all": false,
1751
- "request": false,
1752
- "scope": []
1753
- },
1754
- "allOf": [
1755
- {
1756
- "$ref": "#/definitions/HttpAllowlistConfig"
1757
- }
1758
- ]
1759
- },
1760
- "notification": {
1761
- "description": "Notification API allowlist.",
1762
- "default": {
1763
- "all": false
1764
- },
1765
- "allOf": [
1766
- {
1767
- "$ref": "#/definitions/NotificationAllowlistConfig"
1768
- }
1769
- ]
1770
- },
1771
- "globalShortcut": {
1772
- "description": "Global shortcut API allowlist.",
1773
- "default": {
1774
- "all": false
1775
- },
1776
- "allOf": [
1777
- {
1778
- "$ref": "#/definitions/GlobalShortcutAllowlistConfig"
1779
- }
1780
- ]
1781
- },
1782
- "os": {
1783
- "description": "OS allowlist.",
1784
- "default": {
1785
- "all": false
1786
- },
1787
- "allOf": [
1788
- {
1789
- "$ref": "#/definitions/OsAllowlistConfig"
1790
- }
1791
- ]
1792
- },
1793
- "path": {
1794
- "description": "Path API allowlist.",
1795
- "default": {
1796
- "all": false
1797
- },
1798
- "allOf": [
1799
- {
1800
- "$ref": "#/definitions/PathAllowlistConfig"
1801
- }
1669
+ "license": {
1670
+ "description": "The path to the license file to render on the installer.",
1671
+ "type": [
1672
+ "string",
1673
+ "null"
1802
1674
  ]
1803
1675
  },
1804
- "protocol": {
1805
- "description": "Custom protocol allowlist.",
1806
- "default": {
1807
- "all": false,
1808
- "asset": false,
1809
- "assetScope": []
1810
- },
1811
- "allOf": [
1812
- {
1813
- "$ref": "#/definitions/ProtocolAllowlistConfig"
1814
- }
1676
+ "headerImage": {
1677
+ "description": "The path to a bitmap file to display on the header of installers pages.\n\nThe recommended dimensions are 150px x 57px.",
1678
+ "type": [
1679
+ "string",
1680
+ "null"
1815
1681
  ]
1816
1682
  },
1817
- "process": {
1818
- "description": "Process API allowlist.",
1819
- "default": {
1820
- "all": false,
1821
- "exit": false,
1822
- "relaunch": false,
1823
- "relaunchDangerousAllowSymlinkMacos": false
1824
- },
1825
- "allOf": [
1826
- {
1827
- "$ref": "#/definitions/ProcessAllowlistConfig"
1828
- }
1683
+ "sidebarImage": {
1684
+ "description": "The path to a bitmap file for the Welcome page and the Finish page.\n\nThe recommended dimensions are 164px x 314px.",
1685
+ "type": [
1686
+ "string",
1687
+ "null"
1829
1688
  ]
1830
1689
  },
1831
- "clipboard": {
1832
- "description": "Clipboard APIs allowlist.",
1833
- "default": {
1834
- "all": false,
1835
- "readText": false,
1836
- "writeText": false
1837
- },
1838
- "allOf": [
1839
- {
1840
- "$ref": "#/definitions/ClipboardAllowlistConfig"
1841
- }
1690
+ "installerIcon": {
1691
+ "description": "The path to an icon file used as the installer icon.",
1692
+ "type": [
1693
+ "string",
1694
+ "null"
1842
1695
  ]
1843
1696
  },
1844
- "app": {
1845
- "description": "App APIs allowlist.",
1846
- "default": {
1847
- "all": false,
1848
- "hide": false,
1849
- "show": false
1850
- },
1851
- "allOf": [
1852
- {
1853
- "$ref": "#/definitions/AppAllowlistConfig"
1854
- }
1855
- ]
1856
- }
1857
- },
1858
- "additionalProperties": false
1859
- },
1860
- "FsAllowlistConfig": {
1861
- "description": "Allowlist for the file system APIs.",
1862
- "type": "object",
1863
- "properties": {
1864
- "scope": {
1865
- "description": "The access scope for the filesystem APIs.",
1866
- "default": [],
1697
+ "installMode": {
1698
+ "description": "Whether the installation will be for all users or just the current user.",
1699
+ "default": "currentUser",
1867
1700
  "allOf": [
1868
1701
  {
1869
- "$ref": "#/definitions/FsAllowlistScope"
1702
+ "$ref": "#/definitions/NSISInstallerMode"
1870
1703
  }
1871
1704
  ]
1872
1705
  },
1873
- "all": {
1874
- "description": "Use this flag to enable all file system API features.",
1875
- "default": false,
1876
- "type": "boolean"
1877
- },
1878
- "readFile": {
1879
- "description": "Read file from local filesystem.",
1880
- "default": false,
1881
- "type": "boolean"
1882
- },
1883
- "writeFile": {
1884
- "description": "Write file to local filesystem.",
1885
- "default": false,
1886
- "type": "boolean"
1887
- },
1888
- "readDir": {
1889
- "description": "Read directory from local filesystem.",
1890
- "default": false,
1891
- "type": "boolean"
1892
- },
1893
- "copyFile": {
1894
- "description": "Copy file from local filesystem.",
1895
- "default": false,
1896
- "type": "boolean"
1897
- },
1898
- "createDir": {
1899
- "description": "Create directory from local filesystem.",
1900
- "default": false,
1901
- "type": "boolean"
1902
- },
1903
- "removeDir": {
1904
- "description": "Remove directory from local filesystem.",
1905
- "default": false,
1906
- "type": "boolean"
1907
- },
1908
- "removeFile": {
1909
- "description": "Remove file from local filesystem.",
1910
- "default": false,
1911
- "type": "boolean"
1912
- },
1913
- "renameFile": {
1914
- "description": "Rename file from local filesystem.",
1915
- "default": false,
1916
- "type": "boolean"
1917
- },
1918
- "exists": {
1919
- "description": "Check if path exists on the local filesystem.",
1920
- "default": false,
1921
- "type": "boolean"
1922
- }
1923
- },
1924
- "additionalProperties": false
1925
- },
1926
- "FsAllowlistScope": {
1927
- "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`.",
1928
- "anyOf": [
1929
- {
1930
- "description": "A list of paths that are allowed by this scope.",
1931
- "type": "array",
1706
+ "languages": {
1707
+ "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.",
1708
+ "type": [
1709
+ "array",
1710
+ "null"
1711
+ ],
1932
1712
  "items": {
1933
1713
  "type": "string"
1934
1714
  }
1935
1715
  },
1936
- {
1937
- "description": "A complete scope configuration.",
1938
- "type": "object",
1939
- "properties": {
1940
- "allow": {
1941
- "description": "A list of paths that are allowed by this scope.",
1942
- "default": [],
1943
- "type": "array",
1944
- "items": {
1945
- "type": "string"
1946
- }
1947
- },
1948
- "deny": {
1949
- "description": "A list of paths that are not allowed by this scope. This gets precedence over the [`Self::Scope::allow`] list.",
1950
- "default": [],
1951
- "type": "array",
1952
- "items": {
1953
- "type": "string"
1954
- }
1955
- }
1956
- }
1957
- }
1958
- ]
1959
- },
1960
- "WindowAllowlistConfig": {
1961
- "description": "Allowlist for the window APIs.",
1962
- "type": "object",
1963
- "properties": {
1964
- "all": {
1965
- "description": "Use this flag to enable all window API features.",
1966
- "default": false,
1967
- "type": "boolean"
1968
- },
1969
- "create": {
1970
- "description": "Allows dynamic window creation.",
1971
- "default": false,
1972
- "type": "boolean"
1973
- },
1974
- "center": {
1975
- "description": "Allows centering the window.",
1976
- "default": false,
1977
- "type": "boolean"
1978
- },
1979
- "requestUserAttention": {
1980
- "description": "Allows requesting user attention on the window.",
1981
- "default": false,
1982
- "type": "boolean"
1983
- },
1984
- "setResizable": {
1985
- "description": "Allows setting the resizable flag of the window.",
1986
- "default": false,
1987
- "type": "boolean"
1988
- },
1989
- "setTitle": {
1990
- "description": "Allows changing the window title.",
1991
- "default": false,
1992
- "type": "boolean"
1993
- },
1994
- "maximize": {
1995
- "description": "Allows maximizing the window.",
1996
- "default": false,
1997
- "type": "boolean"
1998
- },
1999
- "unmaximize": {
2000
- "description": "Allows unmaximizing the window.",
2001
- "default": false,
2002
- "type": "boolean"
2003
- },
2004
- "minimize": {
2005
- "description": "Allows minimizing the window.",
2006
- "default": false,
2007
- "type": "boolean"
2008
- },
2009
- "unminimize": {
2010
- "description": "Allows unminimizing the window.",
2011
- "default": false,
2012
- "type": "boolean"
2013
- },
2014
- "show": {
2015
- "description": "Allows showing the window.",
2016
- "default": false,
2017
- "type": "boolean"
2018
- },
2019
- "hide": {
2020
- "description": "Allows hiding the window.",
2021
- "default": false,
2022
- "type": "boolean"
2023
- },
2024
- "close": {
2025
- "description": "Allows closing the window.",
2026
- "default": false,
2027
- "type": "boolean"
2028
- },
2029
- "setDecorations": {
2030
- "description": "Allows setting the decorations flag of the window.",
2031
- "default": false,
2032
- "type": "boolean"
2033
- },
2034
- "setAlwaysOnTop": {
2035
- "description": "Allows setting the always_on_top flag of the window.",
2036
- "default": false,
2037
- "type": "boolean"
2038
- },
2039
- "setSize": {
2040
- "description": "Allows setting the window size.",
2041
- "default": false,
2042
- "type": "boolean"
2043
- },
2044
- "setMinSize": {
2045
- "description": "Allows setting the window minimum size.",
2046
- "default": false,
2047
- "type": "boolean"
2048
- },
2049
- "setMaxSize": {
2050
- "description": "Allows setting the window maximum size.",
2051
- "default": false,
2052
- "type": "boolean"
2053
- },
2054
- "setPosition": {
2055
- "description": "Allows changing the position of the window.",
2056
- "default": false,
2057
- "type": "boolean"
2058
- },
2059
- "setFullscreen": {
2060
- "description": "Allows setting the fullscreen flag of the window.",
2061
- "default": false,
2062
- "type": "boolean"
2063
- },
2064
- "setFocus": {
2065
- "description": "Allows focusing the window.",
2066
- "default": false,
2067
- "type": "boolean"
2068
- },
2069
- "setIcon": {
2070
- "description": "Allows changing the window icon.",
2071
- "default": false,
2072
- "type": "boolean"
2073
- },
2074
- "setSkipTaskbar": {
2075
- "description": "Allows setting the skip_taskbar flag of the window.",
2076
- "default": false,
2077
- "type": "boolean"
2078
- },
2079
- "setCursorGrab": {
2080
- "description": "Allows grabbing the cursor.",
2081
- "default": false,
2082
- "type": "boolean"
2083
- },
2084
- "setCursorVisible": {
2085
- "description": "Allows setting the cursor visibility.",
2086
- "default": false,
2087
- "type": "boolean"
2088
- },
2089
- "setCursorIcon": {
2090
- "description": "Allows changing the cursor icon.",
2091
- "default": false,
2092
- "type": "boolean"
2093
- },
2094
- "setCursorPosition": {
2095
- "description": "Allows setting the cursor position.",
2096
- "default": false,
2097
- "type": "boolean"
2098
- },
2099
- "setIgnoreCursorEvents": {
2100
- "description": "Allows ignoring cursor events.",
2101
- "default": false,
2102
- "type": "boolean"
2103
- },
2104
- "startDragging": {
2105
- "description": "Allows start dragging on the window.",
2106
- "default": false,
2107
- "type": "boolean"
2108
- },
2109
- "print": {
2110
- "description": "Allows opening the system dialog to print the window content.",
2111
- "default": false,
2112
- "type": "boolean"
2113
- }
2114
- },
2115
- "additionalProperties": false
2116
- },
2117
- "ShellAllowlistConfig": {
2118
- "description": "Allowlist for the shell APIs.",
2119
- "type": "object",
2120
- "properties": {
2121
- "scope": {
2122
- "description": "Access scope for the binary execution APIs. Sidecars are automatically enabled.",
2123
- "default": [],
2124
- "allOf": [
2125
- {
2126
- "$ref": "#/definitions/ShellAllowlistScope"
2127
- }
2128
- ]
2129
- },
2130
- "all": {
2131
- "description": "Use this flag to enable all shell API features.",
2132
- "default": false,
2133
- "type": "boolean"
2134
- },
2135
- "execute": {
2136
- "description": "Enable binary execution.",
2137
- "default": false,
2138
- "type": "boolean"
2139
- },
2140
- "sidecar": {
2141
- "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>.",
2142
- "default": false,
2143
- "type": "boolean"
2144
- },
2145
- "open": {
2146
- "description": "Open URL with the user's default application.",
2147
- "default": false,
2148
- "allOf": [
2149
- {
2150
- "$ref": "#/definitions/ShellAllowlistOpen"
2151
- }
2152
- ]
2153
- }
2154
- },
2155
- "additionalProperties": false
2156
- },
2157
- "ShellAllowlistScope": {
2158
- "description": "Shell scope definition. It is a list of command names and associated CLI arguments that restrict the API access from the webview.",
2159
- "type": "array",
2160
- "items": {
2161
- "$ref": "#/definitions/ShellAllowedCommand"
2162
- }
2163
- },
2164
- "ShellAllowedCommand": {
2165
- "description": "A command allowed to be executed by the webview API.",
2166
- "type": "object",
2167
- "required": [
2168
- "name"
2169
- ],
2170
- "properties": {
2171
- "name": {
2172
- "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.",
2173
- "type": "string"
2174
- },
2175
- "cmd": {
2176
- "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`.",
2177
- "default": "",
2178
- "type": "string"
2179
- },
2180
- "args": {
2181
- "description": "The allowed arguments for the command execution.",
2182
- "default": false,
2183
- "allOf": [
2184
- {
2185
- "$ref": "#/definitions/ShellAllowedArgs"
2186
- }
2187
- ]
2188
- },
2189
- "sidecar": {
2190
- "description": "If this command is a sidecar command.",
2191
- "default": false,
2192
- "type": "boolean"
2193
- }
2194
- }
2195
- },
2196
- "ShellAllowedArgs": {
2197
- "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.",
2198
- "anyOf": [
2199
- {
2200
- "description": "Use a simple boolean to allow all or disable all arguments to this command configuration.",
2201
- "type": "boolean"
2202
- },
2203
- {
2204
- "description": "A specific set of [`ShellAllowedArg`] that are valid to call for the command configuration.",
2205
- "type": "array",
2206
- "items": {
2207
- "$ref": "#/definitions/ShellAllowedArg"
2208
- }
2209
- }
2210
- ]
2211
- },
2212
- "ShellAllowedArg": {
2213
- "description": "A command argument allowed to be executed by the webview API.",
2214
- "anyOf": [
2215
- {
2216
- "description": "A non-configurable argument that is passed to the command in the order it was specified.",
2217
- "type": "string"
2218
- },
2219
- {
2220
- "description": "A variable that is set while calling the command from the webview API.",
2221
- "type": "object",
2222
- "required": [
2223
- "validator"
1716
+ "customLanguageFiles": {
1717
+ "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,",
1718
+ "type": [
1719
+ "object",
1720
+ "null"
2224
1721
  ],
2225
- "properties": {
2226
- "validator": {
2227
- "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",
2228
- "type": "string"
2229
- }
2230
- },
2231
- "additionalProperties": false
2232
- }
2233
- ]
2234
- },
2235
- "ShellAllowlistOpen": {
2236
- "description": "Defines the `shell > open` api scope.",
2237
- "anyOf": [
2238
- {
2239
- "description": "If the shell open API should be enabled.\n\nIf enabled, the default validation regex (`^https?://`) is used.",
2240
- "type": "boolean"
2241
- },
2242
- {
2243
- "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`.",
2244
- "type": "string"
2245
- }
2246
- ]
2247
- },
2248
- "DialogAllowlistConfig": {
2249
- "description": "Allowlist for the dialog APIs.",
2250
- "type": "object",
2251
- "properties": {
2252
- "all": {
2253
- "description": "Use this flag to enable all dialog API features.",
2254
- "default": false,
2255
- "type": "boolean"
2256
- },
2257
- "open": {
2258
- "description": "Allows the API to open a dialog window to pick files.",
2259
- "default": false,
2260
- "type": "boolean"
2261
- },
2262
- "save": {
2263
- "description": "Allows the API to open a dialog window to pick where to save files.",
2264
- "default": false,
2265
- "type": "boolean"
2266
- },
2267
- "message": {
2268
- "description": "Allows the API to show a message dialog window.",
2269
- "default": false,
2270
- "type": "boolean"
2271
- },
2272
- "ask": {
2273
- "description": "Allows the API to show a dialog window with Yes/No buttons.",
2274
- "default": false,
2275
- "type": "boolean"
2276
- },
2277
- "confirm": {
2278
- "description": "Allows the API to show a dialog window with Ok/Cancel buttons.",
2279
- "default": false,
2280
- "type": "boolean"
2281
- }
2282
- },
2283
- "additionalProperties": false
2284
- },
2285
- "HttpAllowlistConfig": {
2286
- "description": "Allowlist for the HTTP APIs.",
2287
- "type": "object",
2288
- "properties": {
2289
- "scope": {
2290
- "description": "The access scope for the HTTP APIs.",
2291
- "default": [],
2292
- "allOf": [
2293
- {
2294
- "$ref": "#/definitions/HttpAllowlistScope"
2295
- }
2296
- ]
2297
- },
2298
- "all": {
2299
- "description": "Use this flag to enable all HTTP API features.",
2300
- "default": false,
2301
- "type": "boolean"
1722
+ "additionalProperties": {
1723
+ "type": "string"
1724
+ }
2302
1725
  },
2303
- "request": {
2304
- "description": "Allows making HTTP requests.",
1726
+ "displayLanguageSelector": {
1727
+ "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.",
2305
1728
  "default": false,
2306
1729
  "type": "boolean"
2307
1730
  }
2308
1731
  },
2309
1732
  "additionalProperties": false
2310
1733
  },
2311
- "HttpAllowlistScope": {
2312
- "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/\"",
2313
- "type": "array",
2314
- "items": {
2315
- "type": "string",
2316
- "format": "uri"
2317
- }
2318
- },
2319
- "NotificationAllowlistConfig": {
2320
- "description": "Allowlist for the notification APIs.",
2321
- "type": "object",
2322
- "properties": {
2323
- "all": {
2324
- "description": "Use this flag to enable all notification API features.",
2325
- "default": false,
2326
- "type": "boolean"
1734
+ "NSISInstallerMode": {
1735
+ "description": "Install Modes for the NSIS installer.",
1736
+ "oneOf": [
1737
+ {
1738
+ "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.",
1739
+ "type": "string",
1740
+ "enum": [
1741
+ "currentUser"
1742
+ ]
1743
+ },
1744
+ {
1745
+ "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.",
1746
+ "type": "string",
1747
+ "enum": [
1748
+ "perMachine"
1749
+ ]
1750
+ },
1751
+ {
1752
+ "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.",
1753
+ "type": "string",
1754
+ "enum": [
1755
+ "both"
1756
+ ]
2327
1757
  }
2328
- },
2329
- "additionalProperties": false
1758
+ ]
2330
1759
  },
2331
- "GlobalShortcutAllowlistConfig": {
2332
- "description": "Allowlist for the global shortcut APIs.",
1760
+ "IosConfig": {
1761
+ "description": "General configuration for the iOS target.",
2333
1762
  "type": "object",
2334
1763
  "properties": {
2335
- "all": {
2336
- "description": "Use this flag to enable all global shortcut API features.",
2337
- "default": false,
2338
- "type": "boolean"
1764
+ "developmentTeam": {
1765
+ "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.",
1766
+ "type": [
1767
+ "string",
1768
+ "null"
1769
+ ]
2339
1770
  }
2340
1771
  },
2341
1772
  "additionalProperties": false
2342
1773
  },
2343
- "OsAllowlistConfig": {
2344
- "description": "Allowlist for the OS APIs.",
1774
+ "AndroidConfig": {
1775
+ "description": "General configuration for the iOS target.",
2345
1776
  "type": "object",
2346
1777
  "properties": {
2347
- "all": {
2348
- "description": "Use this flag to enable all OS API features.",
2349
- "default": false,
2350
- "type": "boolean"
1778
+ "minSdkVersion": {
1779
+ "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.",
1780
+ "default": 24,
1781
+ "type": "integer",
1782
+ "format": "uint32",
1783
+ "minimum": 0.0
2351
1784
  }
2352
1785
  },
2353
1786
  "additionalProperties": false
2354
1787
  },
2355
- "PathAllowlistConfig": {
2356
- "description": "Allowlist for the path APIs.",
1788
+ "UpdaterConfig": {
1789
+ "description": "The Updater configuration object.\n\nSee more: https://tauri.app/v1/api/config#updaterconfig",
2357
1790
  "type": "object",
2358
1791
  "properties": {
2359
- "all": {
2360
- "description": "Use this flag to enable all path API features.",
1792
+ "active": {
1793
+ "description": "Whether the updater is active or not.",
2361
1794
  "default": false,
2362
1795
  "type": "boolean"
2363
- }
2364
- },
2365
- "additionalProperties": false
2366
- },
2367
- "ProtocolAllowlistConfig": {
2368
- "description": "Allowlist for the custom protocols.",
2369
- "type": "object",
2370
- "properties": {
2371
- "assetScope": {
2372
- "description": "The access scope for the asset protocol.",
2373
- "default": [],
1796
+ },
1797
+ "pubkey": {
1798
+ "description": "Signature public key.",
1799
+ "default": "",
1800
+ "type": "string"
1801
+ },
1802
+ "windows": {
1803
+ "description": "The Windows configuration for the updater.",
1804
+ "default": {
1805
+ "installMode": "passive"
1806
+ },
2374
1807
  "allOf": [
2375
1808
  {
2376
- "$ref": "#/definitions/FsAllowlistScope"
1809
+ "$ref": "#/definitions/UpdaterWindowsConfig"
2377
1810
  }
2378
1811
  ]
2379
- },
2380
- "all": {
2381
- "description": "Use this flag to enable all custom protocols.",
2382
- "default": false,
2383
- "type": "boolean"
2384
- },
2385
- "asset": {
2386
- "description": "Enables the asset protocol.",
2387
- "default": false,
2388
- "type": "boolean"
2389
- }
2390
- },
2391
- "additionalProperties": false
2392
- },
2393
- "ProcessAllowlistConfig": {
2394
- "description": "Allowlist for the process APIs.",
2395
- "type": "object",
2396
- "properties": {
2397
- "all": {
2398
- "description": "Use this flag to enable all process APIs.",
2399
- "default": false,
2400
- "type": "boolean"
2401
- },
2402
- "relaunch": {
2403
- "description": "Enables the relaunch API.",
2404
- "default": false,
2405
- "type": "boolean"
2406
- },
2407
- "relaunchDangerousAllowSymlinkMacos": {
2408
- "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.",
2409
- "default": false,
2410
- "type": "boolean"
2411
- },
2412
- "exit": {
2413
- "description": "Enables the exit API.",
2414
- "default": false,
2415
- "type": "boolean"
2416
1812
  }
2417
1813
  },
2418
1814
  "additionalProperties": false
2419
1815
  },
2420
- "ClipboardAllowlistConfig": {
2421
- "description": "Allowlist for the clipboard APIs.",
1816
+ "UpdaterWindowsConfig": {
1817
+ "description": "The updater configuration for Windows.\n\nSee more: https://tauri.app/v1/api/config#updaterwindowsconfig",
2422
1818
  "type": "object",
2423
1819
  "properties": {
2424
- "all": {
2425
- "description": "Use this flag to enable all clipboard APIs.",
2426
- "default": false,
2427
- "type": "boolean"
2428
- },
2429
- "writeText": {
2430
- "description": "Enables the clipboard's `writeText` API.",
2431
- "default": false,
2432
- "type": "boolean"
2433
- },
2434
- "readText": {
2435
- "description": "Enables the clipboard's `readText` API.",
2436
- "default": false,
2437
- "type": "boolean"
1820
+ "installMode": {
1821
+ "description": "The installation mode for the update on Windows. Defaults to `passive`.",
1822
+ "default": "passive",
1823
+ "allOf": [
1824
+ {
1825
+ "$ref": "#/definitions/WindowsUpdateInstallMode"
1826
+ }
1827
+ ]
2438
1828
  }
2439
1829
  },
2440
1830
  "additionalProperties": false
2441
1831
  },
2442
- "AppAllowlistConfig": {
2443
- "description": "Allowlist for the app APIs.",
2444
- "type": "object",
2445
- "properties": {
2446
- "all": {
2447
- "description": "Use this flag to enable all app APIs.",
2448
- "default": false,
2449
- "type": "boolean"
1832
+ "WindowsUpdateInstallMode": {
1833
+ "description": "Install modes for the Windows update.",
1834
+ "oneOf": [
1835
+ {
1836
+ "description": "Specifies there's a basic UI during the installation process, including a final dialog box at the end.",
1837
+ "type": "string",
1838
+ "enum": [
1839
+ "basicUi"
1840
+ ]
2450
1841
  },
2451
- "show": {
2452
- "description": "Enables the app's `show` API.",
2453
- "default": false,
2454
- "type": "boolean"
1842
+ {
1843
+ "description": "The quiet mode means there's no user interaction required. Requires admin privileges if the installer does.",
1844
+ "type": "string",
1845
+ "enum": [
1846
+ "quiet"
1847
+ ]
2455
1848
  },
2456
- "hide": {
2457
- "description": "Enables the app's `hide` API.",
2458
- "default": false,
2459
- "type": "boolean"
1849
+ {
1850
+ "description": "Specifies unattended mode, which means the installation only shows a progress bar.",
1851
+ "type": "string",
1852
+ "enum": [
1853
+ "passive"
1854
+ ]
2460
1855
  }
2461
- },
2462
- "additionalProperties": false
1856
+ ]
2463
1857
  },
2464
1858
  "SecurityConfig": {
2465
- "description": "Security configuration.",
1859
+ "description": "Security configuration.\n\nSee more: https://tauri.app/v1/api/config#securityconfig",
2466
1860
  "type": "object",
2467
1861
  "properties": {
2468
1862
  "csp": {
@@ -2500,6 +1894,26 @@
2500
1894
  "$ref": "#/definitions/DisabledCspModificationKind"
2501
1895
  }
2502
1896
  ]
1897
+ },
1898
+ "dangerousRemoteDomainIpcAccess": {
1899
+ "description": "Allow external domains to send command to Tauri.\n\nBy default, external domains do not have access to `window.__TAURI__`, which means they cannot communicate with the commands defined in Rust. This prevents attacks where an externally loaded malicious or compromised sites could start executing commands on the user's device.\n\nThis configuration allows a set of external domains to have access to the Tauri commands. When you configure a domain to be allowed to access the IPC, all subpaths are allowed. Subdomains are not allowed.\n\n**WARNING:** Only use this option if you either have internal checks against malicious external sites or you can trust the allowed external sites. You application might be vulnerable to dangerous Tauri command related attacks otherwise.",
1900
+ "default": [],
1901
+ "type": "array",
1902
+ "items": {
1903
+ "$ref": "#/definitions/RemoteDomainAccessScope"
1904
+ }
1905
+ },
1906
+ "assetProtocol": {
1907
+ "description": "Custom protocol config.",
1908
+ "default": {
1909
+ "enable": false,
1910
+ "scope": []
1911
+ },
1912
+ "allOf": [
1913
+ {
1914
+ "$ref": "#/definitions/AssetProtocolConfig"
1915
+ }
1916
+ ]
2503
1917
  }
2504
1918
  },
2505
1919
  "additionalProperties": false
@@ -2552,105 +1966,114 @@
2552
1966
  }
2553
1967
  ]
2554
1968
  },
2555
- "UpdaterConfig": {
2556
- "description": "The Updater configuration object.",
1969
+ "RemoteDomainAccessScope": {
1970
+ "description": "External command access definition.",
2557
1971
  "type": "object",
1972
+ "required": [
1973
+ "domain",
1974
+ "windows"
1975
+ ],
2558
1976
  "properties": {
2559
- "active": {
2560
- "description": "Whether the updater is active or not.",
2561
- "default": false,
2562
- "type": "boolean"
2563
- },
2564
- "dialog": {
2565
- "description": "Display built-in dialog or use event system if disabled.",
2566
- "default": true,
2567
- "type": "boolean"
2568
- },
2569
- "endpoints": {
2570
- "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.",
1977
+ "scheme": {
1978
+ "description": "The URL scheme to allow. By default, all schemas are allowed.",
2571
1979
  "type": [
2572
- "array",
1980
+ "string",
2573
1981
  "null"
2574
- ],
2575
- "items": {
2576
- "$ref": "#/definitions/UpdaterEndpoint"
2577
- }
1982
+ ]
2578
1983
  },
2579
- "pubkey": {
2580
- "description": "Signature public key.",
2581
- "default": "",
1984
+ "domain": {
1985
+ "description": "The domain to allow.",
2582
1986
  "type": "string"
2583
1987
  },
2584
1988
  "windows": {
2585
- "description": "The Windows configuration for the updater.",
2586
- "default": {
2587
- "installMode": "passive"
2588
- },
2589
- "allOf": [
2590
- {
2591
- "$ref": "#/definitions/UpdaterWindowsConfig"
2592
- }
2593
- ]
1989
+ "description": "The list of window labels this scope applies to.",
1990
+ "type": "array",
1991
+ "items": {
1992
+ "type": "string"
1993
+ }
1994
+ },
1995
+ "plugins": {
1996
+ "description": "The list of plugins that are allowed in this scope.",
1997
+ "default": [],
1998
+ "type": "array",
1999
+ "items": {
2000
+ "type": "string"
2001
+ }
2594
2002
  }
2595
2003
  },
2596
2004
  "additionalProperties": false
2597
2005
  },
2598
- "UpdaterEndpoint": {
2599
- "description": "A URL to an updater server.\n\nThe URL must use the `https` scheme on production.",
2600
- "type": "string",
2601
- "format": "uri"
2602
- },
2603
- "UpdaterWindowsConfig": {
2604
- "description": "The updater configuration for Windows.",
2006
+ "AssetProtocolConfig": {
2007
+ "description": "Config for the asset custom protocol.\n\nSee more: https://tauri.app/v1/api/config#assetprotocolconfig",
2605
2008
  "type": "object",
2606
2009
  "properties": {
2607
- "installMode": {
2608
- "description": "The installation mode for the update on Windows. Defaults to `passive`.",
2609
- "default": "passive",
2010
+ "scope": {
2011
+ "description": "The access scope for the asset protocol.",
2012
+ "default": [],
2610
2013
  "allOf": [
2611
2014
  {
2612
- "$ref": "#/definitions/WindowsUpdateInstallMode"
2015
+ "$ref": "#/definitions/FsScope"
2613
2016
  }
2614
2017
  ]
2018
+ },
2019
+ "enable": {
2020
+ "description": "Enables the asset protocol.",
2021
+ "default": false,
2022
+ "type": "boolean"
2615
2023
  }
2616
2024
  },
2617
2025
  "additionalProperties": false
2618
2026
  },
2619
- "WindowsUpdateInstallMode": {
2620
- "description": "Install modes for the Windows update.",
2621
- "oneOf": [
2622
- {
2623
- "description": "Specifies there's a basic UI during the installation process, including a final dialog box at the end.",
2624
- "type": "string",
2625
- "enum": [
2626
- "basicUi"
2627
- ]
2628
- },
2027
+ "FsScope": {
2028
+ "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`.",
2029
+ "anyOf": [
2629
2030
  {
2630
- "description": "The quiet mode means there's no user interaction required. Requires admin privileges if the installer does.",
2631
- "type": "string",
2632
- "enum": [
2633
- "quiet"
2634
- ]
2031
+ "description": "A list of paths that are allowed by this scope.",
2032
+ "type": "array",
2033
+ "items": {
2034
+ "type": "string"
2035
+ }
2635
2036
  },
2636
2037
  {
2637
- "description": "Specifies unattended mode, which means the installation only shows a progress bar.",
2638
- "type": "string",
2639
- "enum": [
2640
- "passive"
2641
- ]
2038
+ "description": "A complete scope configuration.",
2039
+ "type": "object",
2040
+ "properties": {
2041
+ "allow": {
2042
+ "description": "A list of paths that are allowed by this scope.",
2043
+ "default": [],
2044
+ "type": "array",
2045
+ "items": {
2046
+ "type": "string"
2047
+ }
2048
+ },
2049
+ "deny": {
2050
+ "description": "A list of paths that are not allowed by this scope. This gets precedence over the [`Self::Scope::allow`] list.",
2051
+ "default": [],
2052
+ "type": "array",
2053
+ "items": {
2054
+ "type": "string"
2055
+ }
2056
+ },
2057
+ "requireLiteralLeadingDot": {
2058
+ "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",
2059
+ "type": [
2060
+ "boolean",
2061
+ "null"
2062
+ ]
2063
+ }
2064
+ }
2642
2065
  }
2643
2066
  ]
2644
2067
  },
2645
- "SystemTrayConfig": {
2646
- "description": "Configuration for application system tray icon.",
2068
+ "TrayIconConfig": {
2069
+ "description": "Configuration for application tray icon.\n\nSee more: https://tauri.app/v1/api/config#trayiconconfig",
2647
2070
  "type": "object",
2648
2071
  "required": [
2649
2072
  "iconPath"
2650
2073
  ],
2651
2074
  "properties": {
2652
2075
  "iconPath": {
2653
- "description": "Path to the default icon to use on the system tray.",
2076
+ "description": "Path to the default icon to use for the tray icon.",
2654
2077
  "type": "string"
2655
2078
  },
2656
2079
  "iconAsTemplate": {
@@ -2669,12 +2092,19 @@
2669
2092
  "string",
2670
2093
  "null"
2671
2094
  ]
2095
+ },
2096
+ "tooltip": {
2097
+ "description": "Tray icon tooltip on Windows and macOS",
2098
+ "type": [
2099
+ "string",
2100
+ "null"
2101
+ ]
2672
2102
  }
2673
2103
  },
2674
2104
  "additionalProperties": false
2675
2105
  },
2676
2106
  "BuildConfig": {
2677
- "description": "The Build configuration object.",
2107
+ "description": "The Build configuration object.\n\nSee more: https://tauri.app/v1/api/config#buildconfig",
2678
2108
  "type": "object",
2679
2109
  "properties": {
2680
2110
  "runner": {
@@ -2837,7 +2267,7 @@
2837
2267
  ]
2838
2268
  },
2839
2269
  "PluginConfig": {
2840
- "description": "The plugin configs holds a HashMap mapping a plugin name to its configuration object.",
2270
+ "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",
2841
2271
  "type": "object",
2842
2272
  "additionalProperties": true
2843
2273
  }