@tauri-apps/cli 2.0.0-beta.9 → 2.0.0-rc.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.
Files changed (3) hide show
  1. package/CHANGELOG.md +237 -0
  2. package/package.json +14 -14
  3. package/schema.json +359 -142
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 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- [`app`](#appconfig): The Tauri configuration - [`build`](#buildconfig): The build configuration - [`bundle`](#bundleconfig): The bundle configurations - [`plugins`](#pluginconfig): The plugins configuration\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\": {}, \"plugins\": {} } ```",
4
+ "description": "The Tauri configuration object.\n It is read from a file where you can define your frontend assets,\n configure the bundler and define a tray icon.\n\n The configuration file is generated by the\n [`tauri init`](https://tauri.app/v1/api/cli#init) command that lives in\n your Tauri application source directory (src-tauri).\n\n Once generated, you may modify it at will to customize your Tauri application.\n\n ## File Formats\n\n By default, the configuration is defined as a JSON file named `tauri.conf.json`.\n\n Tauri also supports JSON5 and TOML files via the `config-json5` and `config-toml` Cargo features, respectively.\n The JSON5 file name must be either `tauri.conf.json` or `tauri.conf.json5`.\n The TOML file name is `Tauri.toml`.\n\n ## Platform-Specific Configuration\n\n In addition to the default configuration file, Tauri can\n read a platform-specific configuration from `tauri.linux.conf.json`,\n `tauri.windows.conf.json`, `tauri.macos.conf.json`, `tauri.android.conf.json` and `tauri.ios.conf.json`\n (or `Tauri.linux.toml`, `Tauri.windows.toml`, `Tauri.macos.toml`, `Tauri.android.toml` and `Tauri.ios.toml` if the `Tauri.toml` format is used),\n which gets merged with the main configuration object.\n\n ## Configuration Structure\n\n The configuration is composed of the following objects:\n\n - [`app`](#appconfig): The Tauri configuration\n - [`build`](#buildconfig): The build configuration\n - [`bundle`](#bundleconfig): The bundle configurations\n - [`plugins`](#pluginconfig): The plugins configuration\n\n ```json title=\"Example tauri.config.json file\"\n {\n \"productName\": \"tauri-app\",\n \"version\": \"0.1.0\",\n \"build\": {\n \"beforeBuildCommand\": \"\",\n \"beforeDevCommand\": \"\",\n \"devUrl\": \"../dist\",\n \"frontendDist\": \"../dist\"\n },\n \"app\": {\n \"security\": {\n \"csp\": null\n },\n \"windows\": [\n {\n \"fullscreen\": false,\n \"height\": 600,\n \"resizable\": true,\n \"title\": \"Tauri App\",\n \"width\": 800\n }\n ]\n },\n \"bundle\": {},\n \"plugins\": {}\n }\n ```",
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "$schema": {
@@ -20,20 +20,21 @@
20
20
  "pattern": "^[^/\\:*?\"<>|]+$"
21
21
  },
22
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.",
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.\n\n By default version 1.0 is used on Android.",
24
24
  "type": [
25
25
  "string",
26
26
  "null"
27
27
  ]
28
28
  },
29
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 (.).",
30
+ "description": "The application identifier in reverse domain name notation (e.g. `com.tauri.example`).\n This string must be unique across applications since it is used in system configurations like\n the bundle ID and path to the webview data directory.\n This string must contain only alphanumeric characters (A–Z, a–z, and 0–9), hyphens (-),\n and periods (.).",
31
31
  "default": "",
32
32
  "type": "string"
33
33
  },
34
34
  "app": {
35
35
  "description": "The App configuration.",
36
36
  "default": {
37
+ "enableGTKAppId": false,
37
38
  "macOSPrivateApi": false,
38
39
  "security": {
39
40
  "assetProtocol": {
@@ -72,6 +73,7 @@
72
73
  "android": {
73
74
  "minSdkVersion": 24
74
75
  },
76
+ "createUpdaterArtifacts": false,
75
77
  "iOS": {},
76
78
  "icon": [],
77
79
  "linux": {
@@ -104,6 +106,7 @@
104
106
  }
105
107
  },
106
108
  "files": {},
109
+ "hardenedRuntime": true,
107
110
  "minimumSystemVersion": "10.13"
108
111
  },
109
112
  "targets": "all",
@@ -112,6 +115,7 @@
112
115
  "certificateThumbprint": null,
113
116
  "digestAlgorithm": null,
114
117
  "nsis": null,
118
+ "signCommand": null,
115
119
  "timestampUrl": null,
116
120
  "tsp": false,
117
121
  "webviewFixedRuntimePath": null,
@@ -141,7 +145,7 @@
141
145
  "additionalProperties": false,
142
146
  "definitions": {
143
147
  "AppConfig": {
144
- "description": "The App configuration object.\n\nSee more: <https://tauri.app/v1/api/config#appconfig>",
148
+ "description": "The App configuration object.\n\n See more: <https://tauri.app/v1/api/config#appconfig>",
145
149
  "type": "object",
146
150
  "properties": {
147
151
  "windows": {
@@ -192,12 +196,17 @@
192
196
  "description": "Whether we should inject the Tauri API on `window.__TAURI__` or not.",
193
197
  "default": false,
194
198
  "type": "boolean"
199
+ },
200
+ "enableGTKAppId": {
201
+ "description": "If set to true \"identifier\" will be set as GTK app ID (on systems that use GTK).",
202
+ "default": false,
203
+ "type": "boolean"
195
204
  }
196
205
  },
197
206
  "additionalProperties": false
198
207
  },
199
208
  "WindowConfig": {
200
- "description": "The window configuration object.\n\nSee more: <https://tauri.app/v1/api/config#windowconfig>",
209
+ "description": "The window configuration object.\n\n See more: <https://tauri.app/v1/api/config#windowconfig>",
201
210
  "type": "object",
202
211
  "properties": {
203
212
  "label": {
@@ -221,8 +230,8 @@
221
230
  "null"
222
231
  ]
223
232
  },
224
- "fileDropEnabled": {
225
- "description": "Whether the file drop is enabled or not on the webview. By default it is enabled.\n\nDisabling it is required to use drag and drop on the frontend on Windows.",
233
+ "dragDropEnabled": {
234
+ "description": "Whether the drag and drop is enabled or not on the webview. By default it is enabled.\n\n Disabling it is required to use HTML5 drag and drop on the frontend on Windows.",
226
235
  "default": true,
227
236
  "type": "boolean"
228
237
  },
@@ -297,17 +306,17 @@
297
306
  "type": "boolean"
298
307
  },
299
308
  "maximizable": {
300
- "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.",
309
+ "description": "Whether the window's native maximize button is enabled or not.\n 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.\n - **Linux / iOS / Android:** Unsupported.",
301
310
  "default": true,
302
311
  "type": "boolean"
303
312
  },
304
313
  "minimizable": {
305
- "description": "Whether the window's native minimize button is enabled or not.\n\n## Platform-specific\n\n- **Linux / iOS / Android:** Unsupported.",
314
+ "description": "Whether the window's native minimize button is enabled or not.\n\n ## Platform-specific\n\n - **Linux / iOS / Android:** Unsupported.",
306
315
  "default": true,
307
316
  "type": "boolean"
308
317
  },
309
318
  "closable": {
310
- "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.",
319
+ "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.\n Depending on the system, this function may not have any effect when called on a window that is already visible\"\n - **iOS / Android:** Unsupported.",
311
320
  "default": true,
312
321
  "type": "boolean"
313
322
  },
@@ -327,7 +336,7 @@
327
336
  "type": "boolean"
328
337
  },
329
338
  "transparent": {
330
- "description": "Whether the window is transparent or not.\n\nNote that on `macOS` this requires the `macos-private-api` feature flag, enabled under `tauri > macOSPrivateApi`. WARNING: Using private APIs on `macOS` prevents your application from being accepted to the `App Store`.",
339
+ "description": "Whether the window is transparent or not.\n\n Note that on `macOS` this requires the `macos-private-api` feature flag, enabled under `tauri > macOSPrivateApi`.\n WARNING: Using private APIs on `macOS` prevents your application from being accepted to the `App Store`.",
331
340
  "default": false,
332
341
  "type": "boolean"
333
342
  },
@@ -357,7 +366,7 @@
357
366
  "type": "boolean"
358
367
  },
359
368
  "visibleOnAllWorkspaces": {
360
- "description": "Whether the window should be visible on all workspaces or virtual desktops.\n\n## Platform-specific\n\n- **Windows / iOS / Android:** Unsupported.",
369
+ "description": "Whether the window should be visible on all workspaces or virtual desktops.\n\n ## Platform-specific\n\n - **Windows / iOS / Android:** Unsupported.",
361
370
  "default": false,
362
371
  "type": "boolean"
363
372
  },
@@ -402,26 +411,26 @@
402
411
  "type": "boolean"
403
412
  },
404
413
  "tabbingIdentifier": {
405
- "description": "Defines the window [tabbing identifier] for macOS.\n\nWindows with matching tabbing identifiers will be grouped together. If the tabbing identifier is not set, automatic tabbing will be disabled.\n\n[tabbing identifier]: <https://developer.apple.com/documentation/appkit/nswindow/1644704-tabbingidentifier>",
414
+ "description": "Defines the window [tabbing identifier] for macOS.\n\n Windows with matching tabbing identifiers will be grouped together.\n If the tabbing identifier is not set, automatic tabbing will be disabled.\n\n [tabbing identifier]: <https://developer.apple.com/documentation/appkit/nswindow/1644704-tabbingidentifier>",
406
415
  "type": [
407
416
  "string",
408
417
  "null"
409
418
  ]
410
419
  },
411
420
  "additionalBrowserArgs": {
412
- "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.",
421
+ "description": "Defines additional browser arguments on Windows. By default wry passes `--disable-features=msWebOOUI,msPdfOOUI,msSmartScreenProtection`\n so if you use this method, you also need to disable these components by yourself if you want.",
413
422
  "type": [
414
423
  "string",
415
424
  "null"
416
425
  ]
417
426
  },
418
427
  "shadow": {
419
- "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.",
428
+ "description": "Whether or not the window has shadow.\n\n ## Platform-specific\n\n - **Windows:**\n - `false` has no effect on decorated window, shadow are always ON.\n - `true` will make ndecorated window have a 1px white border,\n and on Windows 11, it will have a rounded corners.\n - **Linux:** Unsupported.",
420
429
  "default": true,
421
430
  "type": "boolean"
422
431
  },
423
432
  "windowEffects": {
424
- "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",
433
+ "description": "Window effects.\n\n Requires 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>\n - **Linux**: Unsupported",
425
434
  "anyOf": [
426
435
  {
427
436
  "$ref": "#/definitions/WindowEffectsConfig"
@@ -432,24 +441,29 @@
432
441
  ]
433
442
  },
434
443
  "incognito": {
435
- "description": "Whether or not the webview should be launched in incognito mode.\n\n## Platform-specific:\n\n- **Android**: Unsupported.",
444
+ "description": "Whether or not the webview should be launched in incognito mode.\n\n ## Platform-specific:\n\n - **Android**: Unsupported.",
436
445
  "default": false,
437
446
  "type": "boolean"
438
447
  },
439
448
  "parent": {
440
- "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>",
449
+ "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.\n From [MSDN owned windows docs](https://docs.microsoft.com/en-us/windows/win32/winmsg/window-features#owned-windows):\n - An owned window is always above its owner in the z-order.\n - The system automatically destroys an owned window when its owner is destroyed.\n - An owned window is hidden when its owner is minimized.\n - **Linux**: This makes the new window transient for parent, see <https://docs.gtk.org/gtk3/method.Window.set_transient_for.html>\n - **macOS**: This adds the window as a child of parent, see <https://developer.apple.com/documentation/appkit/nswindow/1419152-addchildwindow?language=objc>",
441
450
  "type": [
442
451
  "string",
443
452
  "null"
444
453
  ]
445
454
  },
446
455
  "proxyUrl": {
447
- "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+.",
456
+ "description": "The proxy URL for the WebView for all network requests.\n\n Must 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+.",
448
457
  "type": [
449
458
  "string",
450
459
  "null"
451
460
  ],
452
461
  "format": "uri"
462
+ },
463
+ "zoomHotkeysEnabled": {
464
+ "description": "Whether page zooming by hotkeys is enabled\n\n ## Platform-specific:\n\n - **Windows**: Controls WebView2's [`IsZoomControlEnabled`](https://learn.microsoft.com/en-us/microsoft-edge/webview2/reference/winrt/microsoft_web_webview2_core/corewebview2settings?view=webview2-winrt-1.0.2420.47#iszoomcontrolenabled) setting.\n - **MacOS / Linux**: Injects a polyfill that zooms in and out with `ctrl/command` + `-/=`,\n 20% in each step, ranging from 20% to 1000%. Requires `webview:allow-set-webview-zoom` permission\n\n - **Android / iOS**: Unsupported.",
465
+ "default": false,
466
+ "type": "boolean"
453
467
  }
454
468
  },
455
469
  "additionalProperties": false
@@ -463,7 +477,7 @@
463
477
  "format": "uri"
464
478
  },
465
479
  {
466
- "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.",
480
+ "description": "The path portion of an app URL.\n For instance, to load `tauri://localhost/users/john`,\n you can simply provide `users/john` in this configuration.",
467
481
  "type": "string"
468
482
  },
469
483
  {
@@ -503,14 +517,14 @@
503
517
  ]
504
518
  },
505
519
  {
506
- "description": "Makes the title bar transparent, so the window background color is shown instead.\n\nUseful if you don't need to have actual HTML under the title bar. This lets you avoid the caveats of using `TitleBarStyle::Overlay`. Will be more useful when Tauri lets you set a custom window background color.",
520
+ "description": "Makes the title bar transparent, so the window background color is shown instead.\n\n Useful if you don't need to have actual HTML under the title bar. This lets you avoid the caveats of using `TitleBarStyle::Overlay`. Will be more useful when Tauri lets you set a custom window background color.",
507
521
  "type": "string",
508
522
  "enum": [
509
523
  "Transparent"
510
524
  ]
511
525
  },
512
526
  {
513
- "description": "Shows the title bar as a transparent overlay over the window's content.\n\nKeep in mind: - The height of the title bar is different on different OS versions, which can lead to window the controls and title not being where you don't expect. - You need to define a custom drag region to make your window draggable, however due to a limitation you can't drag the window when it's not in focus <https://github.com/tauri-apps/tauri/issues/4316>. - The color of the window title depends on the system theme.",
527
+ "description": "Shows the title bar as a transparent overlay over the window's content.\n\n Keep in mind:\n - The height of the title bar is different on different OS versions, which can lead to window the controls and title not being where you don't expect.\n - You need to define a custom drag region to make your window draggable, however due to a limitation you can't drag the window when it's not in focus <https://github.com/tauri-apps/tauri/issues/4316>.\n - The color of the window title depends on the system theme.",
514
528
  "type": "string",
515
529
  "enum": [
516
530
  "Overlay"
@@ -526,7 +540,7 @@
526
540
  ],
527
541
  "properties": {
528
542
  "effects": {
529
- "description": "List of Window effects to apply to the Window. Conflicting effects will apply the first one and ignore the rest.",
543
+ "description": "List of Window effects to apply to the Window.\n Conflicting effects will apply the first one and ignore the rest.",
530
544
  "type": "array",
531
545
  "items": {
532
546
  "$ref": "#/definitions/WindowEffect"
@@ -552,7 +566,7 @@
552
566
  "format": "double"
553
567
  },
554
568
  "color": {
555
- "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.",
569
+ "description": "Window effect color. Affects [`WindowEffect::Blur`] and [`WindowEffect::Acrylic`] only\n on Windows 10 v1903+. Doesn't have any effect on Windows 7 or Windows 11.",
556
570
  "anyOf": [
557
571
  {
558
572
  "$ref": "#/definitions/Color"
@@ -577,7 +591,7 @@
577
591
  ]
578
592
  },
579
593
  {
580
- "description": "*macOS 10.14-**",
594
+ "description": "**macOS 10.14-**",
581
595
  "deprecated": true,
582
596
  "type": "string",
583
597
  "enum": [
@@ -585,7 +599,7 @@
585
599
  ]
586
600
  },
587
601
  {
588
- "description": "*macOS 10.14-**",
602
+ "description": "**macOS 10.14-**",
589
603
  "deprecated": true,
590
604
  "type": "string",
591
605
  "enum": [
@@ -593,7 +607,7 @@
593
607
  ]
594
608
  },
595
609
  {
596
- "description": "*macOS 10.14-**",
610
+ "description": "**macOS 10.14-**",
597
611
  "deprecated": true,
598
612
  "type": "string",
599
613
  "enum": [
@@ -601,7 +615,7 @@
601
615
  ]
602
616
  },
603
617
  {
604
- "description": "*macOS 10.14-**",
618
+ "description": "**macOS 10.14-**",
605
619
  "deprecated": true,
606
620
  "type": "string",
607
621
  "enum": [
@@ -609,98 +623,98 @@
609
623
  ]
610
624
  },
611
625
  {
612
- "description": "*macOS 10.10+**",
626
+ "description": "**macOS 10.10+**",
613
627
  "type": "string",
614
628
  "enum": [
615
629
  "titlebar"
616
630
  ]
617
631
  },
618
632
  {
619
- "description": "*macOS 10.10+**",
633
+ "description": "**macOS 10.10+**",
620
634
  "type": "string",
621
635
  "enum": [
622
636
  "selection"
623
637
  ]
624
638
  },
625
639
  {
626
- "description": "*macOS 10.11+**",
640
+ "description": "**macOS 10.11+**",
627
641
  "type": "string",
628
642
  "enum": [
629
643
  "menu"
630
644
  ]
631
645
  },
632
646
  {
633
- "description": "*macOS 10.11+**",
647
+ "description": "**macOS 10.11+**",
634
648
  "type": "string",
635
649
  "enum": [
636
650
  "popover"
637
651
  ]
638
652
  },
639
653
  {
640
- "description": "*macOS 10.11+**",
654
+ "description": "**macOS 10.11+**",
641
655
  "type": "string",
642
656
  "enum": [
643
657
  "sidebar"
644
658
  ]
645
659
  },
646
660
  {
647
- "description": "*macOS 10.14+**",
661
+ "description": "**macOS 10.14+**",
648
662
  "type": "string",
649
663
  "enum": [
650
664
  "headerView"
651
665
  ]
652
666
  },
653
667
  {
654
- "description": "*macOS 10.14+**",
668
+ "description": "**macOS 10.14+**",
655
669
  "type": "string",
656
670
  "enum": [
657
671
  "sheet"
658
672
  ]
659
673
  },
660
674
  {
661
- "description": "*macOS 10.14+**",
675
+ "description": "**macOS 10.14+**",
662
676
  "type": "string",
663
677
  "enum": [
664
678
  "windowBackground"
665
679
  ]
666
680
  },
667
681
  {
668
- "description": "*macOS 10.14+**",
682
+ "description": "**macOS 10.14+**",
669
683
  "type": "string",
670
684
  "enum": [
671
685
  "hudWindow"
672
686
  ]
673
687
  },
674
688
  {
675
- "description": "*macOS 10.14+**",
689
+ "description": "**macOS 10.14+**",
676
690
  "type": "string",
677
691
  "enum": [
678
692
  "fullScreenUI"
679
693
  ]
680
694
  },
681
695
  {
682
- "description": "*macOS 10.14+**",
696
+ "description": "**macOS 10.14+**",
683
697
  "type": "string",
684
698
  "enum": [
685
699
  "tooltip"
686
700
  ]
687
701
  },
688
702
  {
689
- "description": "*macOS 10.14+**",
703
+ "description": "**macOS 10.14+**",
690
704
  "type": "string",
691
705
  "enum": [
692
706
  "contentBackground"
693
707
  ]
694
708
  },
695
709
  {
696
- "description": "*macOS 10.14+**",
710
+ "description": "**macOS 10.14+**",
697
711
  "type": "string",
698
712
  "enum": [
699
713
  "underWindowBackground"
700
714
  ]
701
715
  },
702
716
  {
703
- "description": "*macOS 10.14+**",
717
+ "description": "**macOS 10.14+**",
704
718
  "type": "string",
705
719
  "enum": [
706
720
  "underPageBackground"
@@ -749,14 +763,14 @@
749
763
  ]
750
764
  },
751
765
  {
752
- "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.",
766
+ "description": "**Windows 7/10/11(22H1) Only**\n\n ## Notes\n\n This effect has bad performance when resizing/dragging the window on Windows 11 build 22621.",
753
767
  "type": "string",
754
768
  "enum": [
755
769
  "blur"
756
770
  ]
757
771
  },
758
772
  {
759
- "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.",
773
+ "description": "**Windows 10/11 Only**\n\n ## Notes\n\n This effect has bad performance when resizing/dragging the window on Windows 10 v1903+ and Windows 11 build 22000.",
760
774
  "type": "string",
761
775
  "enum": [
762
776
  "acrylic"
@@ -765,7 +779,7 @@
765
779
  ]
766
780
  },
767
781
  "WindowEffectState": {
768
- "description": "Window effect state **macOS only**\n\n<https://developer.apple.com/documentation/appkit/nsvisualeffectview/state>",
782
+ "description": "Window effect state **macOS only**\n\n <https://developer.apple.com/documentation/appkit/nsvisualeffectview/state>",
769
783
  "oneOf": [
770
784
  {
771
785
  "description": "Make window effect state follow the window's active state",
@@ -819,11 +833,11 @@
819
833
  "minItems": 4
820
834
  },
821
835
  "SecurityConfig": {
822
- "description": "Security configuration.\n\nSee more: <https://tauri.app/v1/api/config#securityconfig>",
836
+ "description": "Security configuration.\n\n See more: <https://tauri.app/v1/api/config#securityconfig>",
823
837
  "type": "object",
824
838
  "properties": {
825
839
  "csp": {
826
- "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>.",
840
+ "description": "The Content Security Policy that will be injected on all HTML files on the built application.\n If [`dev_csp`](#SecurityConfig.devCsp) is not specified, this value is also injected on dev.\n\n This is a really important part of the configuration since it helps you ensure your WebView is secured.\n See <https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP>.",
827
841
  "anyOf": [
828
842
  {
829
843
  "$ref": "#/definitions/Csp"
@@ -834,7 +848,7 @@
834
848
  ]
835
849
  },
836
850
  "devCsp": {
837
- "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>.",
851
+ "description": "The Content Security Policy that will be injected on all HTML files on development.\n\n This is a really important part of the configuration since it helps you ensure your WebView is secured.\n See <https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP>.",
838
852
  "anyOf": [
839
853
  {
840
854
  "$ref": "#/definitions/Csp"
@@ -850,7 +864,7 @@
850
864
  "type": "boolean"
851
865
  },
852
866
  "dangerousDisableAssetCspModification": {
853
- "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.",
867
+ "description": "Disables the Tauri-injected CSP sources.\n\n At compile time, Tauri parses all the frontend assets and changes the Content-Security-Policy\n to only allow loading of your own scripts and styles by injecting nonce and hash sources.\n This stricts your CSP, which may introduce issues when using along with other flexing sources.\n\n This configuration option allows both a boolean and a list of strings as value.\n A boolean instructs Tauri to disable the injection for all CSP injections,\n 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.\n Your application might be vulnerable to XSS attacks without this Tauri protection.",
854
868
  "default": false,
855
869
  "allOf": [
856
870
  {
@@ -882,7 +896,7 @@
882
896
  ]
883
897
  },
884
898
  "capabilities": {
885
- "description": "List of capabilities that are enabled on the application.\n\nIf the list is empty, all capabilities are included.",
899
+ "description": "List of capabilities that are enabled on the application.\n\n If the list is empty, all capabilities are included.",
886
900
  "default": [],
887
901
  "type": "array",
888
902
  "items": {
@@ -893,7 +907,7 @@
893
907
  "additionalProperties": false
894
908
  },
895
909
  "Csp": {
896
- "description": "A Content-Security-Policy definition. See <https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP>.",
910
+ "description": "A Content-Security-Policy definition.\n See <https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP>.",
897
911
  "anyOf": [
898
912
  {
899
913
  "description": "The entire CSP policy in a single text string.",
@@ -909,7 +923,7 @@
909
923
  ]
910
924
  },
911
925
  "CspDirectiveSources": {
912
- "description": "A Content-Security-Policy directive source list. See <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/Sources#sources>.",
926
+ "description": "A Content-Security-Policy directive source list.\n See <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/Sources#sources>.",
913
927
  "anyOf": [
914
928
  {
915
929
  "description": "An inline list of CSP sources. Same as [`Self::List`], but concatenated with a space separator.",
@@ -928,7 +942,7 @@
928
942
  "description": "The possible values for the `dangerous_disable_asset_csp_modification` config option.",
929
943
  "anyOf": [
930
944
  {
931
- "description": "If `true`, disables all CSP modification. `false` is the default value and it configures Tauri to control the CSP.",
945
+ "description": "If `true`, disables all CSP modification.\n `false` is the default value and it configures Tauri to control the CSP.",
932
946
  "type": "boolean"
933
947
  },
934
948
  {
@@ -941,7 +955,7 @@
941
955
  ]
942
956
  },
943
957
  "AssetProtocolConfig": {
944
- "description": "Config for the asset custom protocol.\n\nSee more: <https://tauri.app/v1/api/config#assetprotocolconfig>",
958
+ "description": "Config for the asset custom protocol.\n\n See more: <https://tauri.app/v1/api/config#assetprotocolconfig>",
945
959
  "type": "object",
946
960
  "properties": {
947
961
  "scope": {
@@ -962,7 +976,7 @@
962
976
  "additionalProperties": false
963
977
  },
964
978
  "FsScope": {
965
- "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`.",
979
+ "description": "Protocol scope definition.\n It is a list of glob patterns that restrict the API access from the webview.\n\n Each pattern can start with a variable that resolves to a system base directory.\n The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`,\n `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`,\n `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`,\n `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.",
966
980
  "anyOf": [
967
981
  {
968
982
  "description": "A list of paths that are allowed by this scope.",
@@ -984,7 +998,7 @@
984
998
  }
985
999
  },
986
1000
  "deny": {
987
- "description": "A list of paths that are not allowed by this scope. This gets precedence over the [`Self::Scope::allow`] list.",
1001
+ "description": "A list of paths that are not allowed by this scope.\n This gets precedence over the [`Self::Scope::allow`] list.",
988
1002
  "default": [],
989
1003
  "type": "array",
990
1004
  "items": {
@@ -992,7 +1006,7 @@
992
1006
  }
993
1007
  },
994
1008
  "requireLiteralLeadingDot": {
995
- "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",
1009
+ "description": "Whether or not paths that contain components that start with a `.`\n will require that `.` appears literally in the pattern; `*`, `?`, `**`,\n or `[...]` will not match. This is useful because such files are\n conventionally considered hidden on Unix systems and it might be\n desirable to skip them when listing files.\n\n Defaults to `true` on Unix systems and `false` on Windows",
996
1010
  "type": [
997
1011
  "boolean",
998
1012
  "null"
@@ -1068,7 +1082,7 @@
1068
1082
  ]
1069
1083
  },
1070
1084
  "Capability": {
1071
- "description": "a grouping and boundary mechanism developers can use to separate windows or plugins functionality from each other at runtime.\n\nIf a window is not matching any capability then it has no access to the IPC layer at all.\n\nThis can be done to create trust groups and reduce impact of vulnerabilities in certain plugins or windows. Windows can be added to a capability by exact name or glob patterns like *, admin-* or main-window.",
1085
+ "description": "A grouping and boundary mechanism developers can use to isolate access to the IPC layer.\n\n It controls application windows fine grained access to the Tauri core, application, or plugin commands.\n If a window is not matching any capability then it has no access to the IPC layer at all.\n\n This can be done to create groups of windows, based on their required system access, which can reduce\n impact of frontend vulnerabilities in less privileged windows.\n Windows can be added to a capability by exact name (e.g. `main-window`) or glob patterns like `*` or `admin-*`.\n A Window can have none, one, or multiple associated capabilities.\n\n ## Example\n\n ```json\n {\n \"identifier\": \"main-user-files-write\",\n \"description\": \"This capability allows the `main` window on macOS and Windows access to `filesystem` write related commands and `dialog` commands to enable programatic access to files selected by the user.\",\n \"windows\": [\n \"main\"\n ],\n \"permissions\": [\n \"core:default\",\n \"dialog:open\",\n {\n \"identifier\": \"fs:allow-write-text-file\",\n \"allow\": [{ \"path\": \"$HOME/test.txt\" }]\n },\n \"platforms\": [\"macOS\",\"windows\"]\n }\n ```",
1072
1086
  "type": "object",
1073
1087
  "required": [
1074
1088
  "identifier",
@@ -1076,16 +1090,16 @@
1076
1090
  ],
1077
1091
  "properties": {
1078
1092
  "identifier": {
1079
- "description": "Identifier of the capability.",
1093
+ "description": "Identifier of the capability.\n\n ## Example\n\n `main-user-files-write`",
1080
1094
  "type": "string"
1081
1095
  },
1082
1096
  "description": {
1083
- "description": "Description of the capability.",
1097
+ "description": "Description of what the capability is intended to allow on associated windows.\n\n It should contain a description of what the grouped permissions should allow.\n\n ## Example\n\n This capability allows the `main` window access to `filesystem` write related\n commands and `dialog` commands to enable programatic access to files selected by the user.",
1084
1098
  "default": "",
1085
1099
  "type": "string"
1086
1100
  },
1087
1101
  "remote": {
1088
- "description": "Configure remote URLs that can use the capability permissions.",
1102
+ "description": "Configure remote URLs that can use the capability permissions.\n\n This setting is optional and defaults to not being set, as our\n default use case is that the content is served from our local application.\n\n :::caution\n Make sure you understand the security implications of providing remote\n sources with local system access.\n :::\n\n ## Example\n\n ```json\n {\n \"urls\": [\"https://*.mydomain.dev\"]\n }\n ```",
1089
1103
  "anyOf": [
1090
1104
  {
1091
1105
  "$ref": "#/definitions/CapabilityRemote"
@@ -1101,28 +1115,29 @@
1101
1115
  "type": "boolean"
1102
1116
  },
1103
1117
  "windows": {
1104
- "description": "List of windows that uses this capability. Can be a glob pattern.\n\nOn multiwebview windows, prefer [`Self::webviews`] for a fine grained access control.",
1118
+ "description": "List of windows that are affected by this capability. Can be a glob pattern.\n\n On multiwebview windows, prefer [`Self::webviews`] for a fine grained access control.\n\n ## Example\n\n `[\"main\"]`",
1105
1119
  "type": "array",
1106
1120
  "items": {
1107
1121
  "type": "string"
1108
1122
  }
1109
1123
  },
1110
1124
  "webviews": {
1111
- "description": "List of webviews that uses this capability. Can be a glob pattern.\n\nThis is only required when using on multiwebview contexts, by default all child webviews of a window that matches [`Self::windows`] are linked.",
1125
+ "description": "List of webviews that are affected by this capability. Can be a glob pattern.\n\n This is only required when using on multiwebview contexts, by default\n all child webviews of a window that matches [`Self::windows`] are linked.\n\n ## Example\n\n `[\"sub-webview-one\", \"sub-webview-two\"]`",
1112
1126
  "type": "array",
1113
1127
  "items": {
1114
1128
  "type": "string"
1115
1129
  }
1116
1130
  },
1117
1131
  "permissions": {
1118
- "description": "List of permissions attached to this capability. Must include the plugin name as prefix in the form of `${plugin-name}:${permission-name}`.",
1132
+ "description": "List of permissions attached to this capability.\n\n Must include the plugin name as prefix in the form of `${plugin-name}:${permission-name}`.\n For commands directly implemented in the application itself only `${permission-name}`\n is required.\n\n ## Example\n\n ```json\n [\n \"core:default\",\n \"shell:allow-open\",\n \"dialog:open\",\n {\n \"identifier\": \"fs:allow-write-text-file\",\n \"allow\": [{ \"path\": \"$HOME/test.txt\" }]\n }\n ```",
1119
1133
  "type": "array",
1120
1134
  "items": {
1121
1135
  "$ref": "#/definitions/PermissionEntry"
1122
- }
1136
+ },
1137
+ "uniqueItems": true
1123
1138
  },
1124
1139
  "platforms": {
1125
- "description": "Target platforms this capability applies. By default all platforms are affected by this capability.",
1140
+ "description": "Limit which target platforms this capability applies to.\n\n By default all platforms are targeted.\n\n ## Example\n\n `[\"macOS\",\"windows\"]`",
1126
1141
  "type": [
1127
1142
  "array",
1128
1143
  "null"
@@ -1141,7 +1156,7 @@
1141
1156
  ],
1142
1157
  "properties": {
1143
1158
  "urls": {
1144
- "description": "Remote domains this capability refers to using the [URLPattern standard](https://urlpattern.spec.whatwg.org/).\n\n# Examples\n\n- \"https://*.mydomain.dev\": allows subdomains of mydomain.dev - \"https://mydomain.dev/api/*\": allows any subpath of mydomain.dev/api",
1159
+ "description": "Remote domains this capability refers to using the [URLPattern standard](https://urlpattern.spec.whatwg.org/).\n\n ## Examples\n\n - \"https://*.mydomain.dev\": allows subdomains of mydomain.dev\n - \"https://mydomain.dev/api/*\": allows any subpath of mydomain.dev/api",
1145
1160
  "type": "array",
1146
1161
  "items": {
1147
1162
  "type": "string"
@@ -1150,7 +1165,7 @@
1150
1165
  }
1151
1166
  },
1152
1167
  "PermissionEntry": {
1153
- "description": "An entry for a permission value in a [`Capability`] can be either a raw permission [`Identifier`] or an object that references a permission and extends its scope.",
1168
+ "description": "An entry for a permission value in a [`Capability`] can be either a raw permission [`Identifier`]\n or an object that references a permission and extends its scope.",
1154
1169
  "anyOf": [
1155
1170
  {
1156
1171
  "description": "Reference a permission or permission set by identifier.",
@@ -1186,7 +1201,7 @@
1186
1201
  }
1187
1202
  },
1188
1203
  "deny": {
1189
- "description": "Data that defines what is denied by the scope.",
1204
+ "description": "Data that defines what is denied by the scope. This should be prioritized by validation logic.",
1190
1205
  "type": [
1191
1206
  "array",
1192
1207
  "null"
@@ -1297,7 +1312,7 @@
1297
1312
  ]
1298
1313
  },
1299
1314
  "TrayIconConfig": {
1300
- "description": "Configuration for application tray icon.\n\nSee more: <https://tauri.app/v1/api/config#trayiconconfig>",
1315
+ "description": "Configuration for application tray icon.\n\n See more: <https://tauri.app/v1/api/config#trayiconconfig>",
1301
1316
  "type": "object",
1302
1317
  "required": [
1303
1318
  "iconPath"
@@ -1311,7 +1326,7 @@
1311
1326
  ]
1312
1327
  },
1313
1328
  "iconPath": {
1314
- "description": "Path to the default icon to use for the tray icon.",
1329
+ "description": "Path to the default icon to use for the tray icon.\n\n Note: this stores the image in raw pixels to the final binary,\n so keep the icon size (width and height) small\n or else it's going to bloat your final executable",
1315
1330
  "type": "string"
1316
1331
  },
1317
1332
  "iconAsTemplate": {
@@ -1342,7 +1357,7 @@
1342
1357
  "additionalProperties": false
1343
1358
  },
1344
1359
  "BuildConfig": {
1345
- "description": "The Build configuration object.\n\nSee more: <https://tauri.app/v1/api/config#buildconfig>",
1360
+ "description": "The Build configuration object.\n\n See more: <https://tauri.app/v1/api/config#buildconfig>",
1346
1361
  "type": "object",
1347
1362
  "properties": {
1348
1363
  "runner": {
@@ -1353,7 +1368,7 @@
1353
1368
  ]
1354
1369
  },
1355
1370
  "devUrl": {
1356
- "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.",
1371
+ "description": "The URL to load in development.\n\n This is usually an URL to a dev server, which serves your application assets with hot-reload and HMR.\n Most modern JavaScript bundlers like [vite](https://vitejs.dev/guide/) provides a way to start a dev server by default.\n\n If you don't have a dev server or don't want to use one, ignore this option and use [`frontendDist`](BuildConfig::frontend_dist)\n and point to a web assets directory, and Tauri CLI will run its built-in dev server and provide a simple hot-reload experience.",
1357
1372
  "type": [
1358
1373
  "string",
1359
1374
  "null"
@@ -1361,7 +1376,7 @@
1361
1376
  "format": "uri"
1362
1377
  },
1363
1378
  "frontendDist": {
1364
- "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.",
1379
+ "description": "The path to the application assets (usually the `dist` folder of your javascript bundler)\n or a URL that could be either a custom protocol registered in the tauri app (for example: `myprotocol://`)\n or a remote URL (for example: `https://site.com/app`).\n\n When a path relative to the configuration file is provided,\n it is read recursively and all files are embedded in the application binary.\n Tauri then looks for an `index.html` and serves it as the default entry point for your application.\n\n You can also provide a list of paths to be embedded, which allows granular control over what files are added to the binary.\n In this case, all files are added to the root and you must reference it that way in your HTML files.\n\n When a URL is provided, the application won't have bundled assets\n and the application will load that URL by default.",
1365
1380
  "anyOf": [
1366
1381
  {
1367
1382
  "$ref": "#/definitions/FrontendDist"
@@ -1372,7 +1387,7 @@
1372
1387
  ]
1373
1388
  },
1374
1389
  "beforeDevCommand": {
1375
- "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.",
1390
+ "description": "A shell command to run before `tauri dev` kicks in.\n\n The 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.",
1376
1391
  "anyOf": [
1377
1392
  {
1378
1393
  "$ref": "#/definitions/BeforeDevCommand"
@@ -1383,7 +1398,7 @@
1383
1398
  ]
1384
1399
  },
1385
1400
  "beforeBuildCommand": {
1386
- "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.",
1401
+ "description": "A shell command to run before `tauri build` kicks in.\n\n The 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.",
1387
1402
  "anyOf": [
1388
1403
  {
1389
1404
  "$ref": "#/definitions/HookCommand"
@@ -1394,7 +1409,7 @@
1394
1409
  ]
1395
1410
  },
1396
1411
  "beforeBundleCommand": {
1397
- "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.",
1412
+ "description": "A shell command to run before the bundling phase in `tauri build` kicks in.\n\n The 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.",
1398
1413
  "anyOf": [
1399
1414
  {
1400
1415
  "$ref": "#/definitions/HookCommand"
@@ -1502,7 +1517,7 @@
1502
1517
  ]
1503
1518
  },
1504
1519
  "BundleConfig": {
1505
- "description": "Configuration for tauri-bundler.\n\nSee more: <https://tauri.app/v1/api/config#bundleconfig>",
1520
+ "description": "Configuration for tauri-bundler.\n\n See more: <https://tauri.app/v1/api/config#bundleconfig>",
1506
1521
  "type": "object",
1507
1522
  "properties": {
1508
1523
  "active": {
@@ -1511,7 +1526,7 @@
1511
1526
  "type": "boolean"
1512
1527
  },
1513
1528
  "targets": {
1514
- "description": "The bundle targets, currently supports [\"deb\", \"rpm\", \"appimage\", \"nsis\", \"msi\", \"app\", \"dmg\", \"updater\"] or \"all\".",
1529
+ "description": "The bundle targets, currently supports [\"deb\", \"rpm\", \"appimage\", \"nsis\", \"msi\", \"app\", \"dmg\"] or \"all\".",
1515
1530
  "default": "all",
1516
1531
  "allOf": [
1517
1532
  {
@@ -1519,8 +1534,24 @@
1519
1534
  }
1520
1535
  ]
1521
1536
  },
1537
+ "createUpdaterArtifacts": {
1538
+ "description": "Produce updaters and their signatures or not",
1539
+ "default": false,
1540
+ "allOf": [
1541
+ {
1542
+ "$ref": "#/definitions/Updater"
1543
+ }
1544
+ ]
1545
+ },
1522
1546
  "publisher": {
1523
- "description": "The application's publisher. Defaults to the second element in the identifier string. Currently maps to the Manufacturer property of the Windows Installer.",
1547
+ "description": "The application's publisher. Defaults to the second element in the identifier string.\n Currently maps to the Manufacturer property of the Windows Installer.",
1548
+ "type": [
1549
+ "string",
1550
+ "null"
1551
+ ]
1552
+ },
1553
+ "homepage": {
1554
+ "description": "A url to the home page of your application. If unset, will\n fallback to `homepage` defined in `Cargo.toml`.\n\n Supported bundle targets: `deb`, `rpm`, `nsis` and `msi`.",
1524
1555
  "type": [
1525
1556
  "string",
1526
1557
  "null"
@@ -1535,7 +1566,7 @@
1535
1566
  }
1536
1567
  },
1537
1568
  "resources": {
1538
- "description": "App resources to bundle. Each resource is a path to a file or directory. Glob patterns are supported.",
1569
+ "description": "App resources to bundle.\n Each resource is a path to a file or directory.\n Glob patterns are supported.",
1539
1570
  "anyOf": [
1540
1571
  {
1541
1572
  "$ref": "#/definitions/BundleResources"
@@ -1553,7 +1584,7 @@
1553
1584
  ]
1554
1585
  },
1555
1586
  "license": {
1556
- "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.",
1587
+ "description": "The package's license identifier to be included in the appropriate bundles.\n If not set, defaults to the license from the Cargo.toml file.",
1557
1588
  "type": [
1558
1589
  "string",
1559
1590
  "null"
@@ -1567,7 +1598,7 @@
1567
1598
  ]
1568
1599
  },
1569
1600
  "category": {
1570
- "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.",
1601
+ "description": "The application kind.\n\n Should be one of the following:\n 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.",
1571
1602
  "type": [
1572
1603
  "string",
1573
1604
  "null"
@@ -1598,7 +1629,7 @@
1598
1629
  ]
1599
1630
  },
1600
1631
  "externalBin": {
1601
- "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.",
1632
+ "description": "A list of—either absolute or relative—paths to binaries to embed with your application.\n\n Note that Tauri will look for system-specific binaries following the pattern \"binary-name{-target-triple}{.system-extension}\".\n\n E.g. for the external binary \"my-binary\", Tauri looks for:\n\n - \"my-binary-x86_64-pc-windows-msvc.exe\" for Windows\n - \"my-binary-x86_64-apple-darwin\" for macOS\n - \"my-binary-x86_64-unknown-linux-gnu\" for Linux\n\n so don't forget to provide binaries for all targeted platforms.",
1602
1633
  "type": [
1603
1634
  "array",
1604
1635
  "null"
@@ -1614,6 +1645,7 @@
1614
1645
  "certificateThumbprint": null,
1615
1646
  "digestAlgorithm": null,
1616
1647
  "nsis": null,
1648
+ "signCommand": null,
1617
1649
  "timestampUrl": null,
1618
1650
  "tsp": false,
1619
1651
  "webviewFixedRuntimePath": null,
@@ -1669,6 +1701,7 @@
1669
1701
  }
1670
1702
  },
1671
1703
  "files": {},
1704
+ "hardenedRuntime": true,
1672
1705
  "minimumSystemVersion": "10.13"
1673
1706
  },
1674
1707
  "allOf": [
@@ -1777,18 +1810,40 @@
1777
1810
  "enum": [
1778
1811
  "dmg"
1779
1812
  ]
1813
+ }
1814
+ ]
1815
+ },
1816
+ "Updater": {
1817
+ "description": "Updater type",
1818
+ "anyOf": [
1819
+ {
1820
+ "description": "Generates lagacy zipped v1 compatible updaters",
1821
+ "allOf": [
1822
+ {
1823
+ "$ref": "#/definitions/V1Compatible"
1824
+ }
1825
+ ]
1780
1826
  },
1781
1827
  {
1782
- "description": "The Tauri updater bundle.",
1828
+ "description": "Produce updaters and their signatures or not",
1829
+ "type": "boolean"
1830
+ }
1831
+ ]
1832
+ },
1833
+ "V1Compatible": {
1834
+ "description": "Generates lagacy zipped v1 compatible updaters",
1835
+ "oneOf": [
1836
+ {
1837
+ "description": "Generates lagacy zipped v1 compatible updaters",
1783
1838
  "type": "string",
1784
1839
  "enum": [
1785
- "updater"
1840
+ "v1Compatible"
1786
1841
  ]
1787
1842
  }
1788
1843
  ]
1789
1844
  },
1790
1845
  "BundleResources": {
1791
- "description": "Definition for bundle resources. Can be either a list of paths to include or a map of source to target paths.",
1846
+ "description": "Definition for bundle resources.\n Can be either a list of paths to include or a map of source to target paths.",
1792
1847
  "anyOf": [
1793
1848
  {
1794
1849
  "description": "A list of paths to include.",
@@ -1854,7 +1909,7 @@
1854
1909
  "additionalProperties": false
1855
1910
  },
1856
1911
  "AssociationExt": {
1857
- "description": "An extension for a [`FileAssociation`].\n\nA leading `.` is automatically stripped.",
1912
+ "description": "An extension for a [`FileAssociation`].\n\n A leading `.` is automatically stripped.",
1858
1913
  "type": "string"
1859
1914
  },
1860
1915
  "BundleTypeRole": {
@@ -1898,11 +1953,11 @@
1898
1953
  ]
1899
1954
  },
1900
1955
  "WindowsConfig": {
1901
- "description": "Windows bundler configuration.\n\nSee more: <https://tauri.app/v1/api/config#windowsconfig>",
1956
+ "description": "Windows bundler configuration.\n\n See more: <https://tauri.app/v1/api/config#windowsconfig>",
1902
1957
  "type": "object",
1903
1958
  "properties": {
1904
1959
  "digestAlgorithm": {
1905
- "description": "Specifies the file digest algorithm to use for creating file signatures. Required for code signing. SHA-256 is recommended.",
1960
+ "description": "Specifies the file digest algorithm to use for creating file signatures.\n Required for code signing. SHA-256 is recommended.",
1906
1961
  "type": [
1907
1962
  "string",
1908
1963
  "null"
@@ -1923,7 +1978,7 @@
1923
1978
  ]
1924
1979
  },
1925
1980
  "tsp": {
1926
- "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.",
1981
+ "description": "Whether to use Time-Stamp Protocol (TSP, a.k.a. RFC 3161) for the timestamp server. Your code signing provider may\n use a TSP timestamp server, like e.g. SSL.com does. If so, enable TSP by setting to true.",
1927
1982
  "default": false,
1928
1983
  "type": "boolean"
1929
1984
  },
@@ -1940,14 +1995,14 @@
1940
1995
  ]
1941
1996
  },
1942
1997
  "webviewFixedRuntimePath": {
1943
- "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.",
1998
+ "description": "Path to the webview fixed runtime to use. Overwrites [`Self::webview_install_mode`] if set.\n\n Will be removed in v2, prefer the [`Self::webview_install_mode`] option.\n\n The fixed version can be downloaded [on the official website](https://developer.microsoft.com/en-us/microsoft-edge/webview2/#download-section).\n The `.cab` file must be extracted to a folder and this folder path must be defined on this field.",
1944
1999
  "type": [
1945
2000
  "string",
1946
2001
  "null"
1947
2002
  ]
1948
2003
  },
1949
2004
  "allowDowngrades": {
1950
- "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`.",
2005
+ "description": "Validates a second app installation, blocking the user from installing an older version if set to `false`.\n\n For 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\n The default value of this flag is `true`.",
1951
2006
  "default": true,
1952
2007
  "type": "boolean"
1953
2008
  },
@@ -1972,12 +2027,19 @@
1972
2027
  "type": "null"
1973
2028
  }
1974
2029
  ]
2030
+ },
2031
+ "signCommand": {
2032
+ "description": "Specify a custom command to sign the binaries.\n This command needs to have a `%1` in it which is just a placeholder for the binary path,\n which we will detect and replace before calling the command.\n\n Example:\n ```text\n sign-cli --arg1 --arg2 %1\n ```\n\n By Default we use `signtool.exe` which can be found only on Windows so\n if you are on another platform and want to cross-compile and sign you will\n need to use another tool like `osslsigncode`.",
2033
+ "type": [
2034
+ "string",
2035
+ "null"
2036
+ ]
1975
2037
  }
1976
2038
  },
1977
2039
  "additionalProperties": false
1978
2040
  },
1979
2041
  "WebviewInstallMode": {
1980
- "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>.",
2042
+ "description": "Install modes for the Webview2 runtime.\n Note that for the updater bundle [`Self::DownloadBootstrapper`] is used.\n\n For more information see <https://tauri.app/v1/guides/building/windows>.",
1981
2043
  "oneOf": [
1982
2044
  {
1983
2045
  "description": "Do not install the Webview2 as part of the Windows Installer.",
@@ -1996,7 +2058,7 @@
1996
2058
  "additionalProperties": false
1997
2059
  },
1998
2060
  {
1999
- "description": "Download the bootstrapper and run it. Requires an internet connection. Results in a smaller installer size, but is not recommended on Windows 7.",
2061
+ "description": "Download the bootstrapper and run it.\n Requires an internet connection.\n Results in a smaller installer size, but is not recommended on Windows 7.",
2000
2062
  "type": "object",
2001
2063
  "required": [
2002
2064
  "type"
@@ -2017,7 +2079,7 @@
2017
2079
  "additionalProperties": false
2018
2080
  },
2019
2081
  {
2020
- "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.",
2082
+ "description": "Embed the bootstrapper and run it.\n Requires an internet connection.\n Increases the installer size by around 1.8MB, but offers better support on Windows 7.",
2021
2083
  "type": "object",
2022
2084
  "required": [
2023
2085
  "type"
@@ -2038,7 +2100,7 @@
2038
2100
  "additionalProperties": false
2039
2101
  },
2040
2102
  {
2041
- "description": "Embed the offline installer and run it. Does not require an internet connection. Increases the installer size by around 127MB.",
2103
+ "description": "Embed the offline installer and run it.\n Does not require an internet connection.\n Increases the installer size by around 127MB.",
2042
2104
  "type": "object",
2043
2105
  "required": [
2044
2106
  "type"
@@ -2059,7 +2121,7 @@
2059
2121
  "additionalProperties": false
2060
2122
  },
2061
2123
  {
2062
- "description": "Embed a fixed webview2 version and use it at runtime. Increases the installer size by around 180MB.",
2124
+ "description": "Embed a fixed webview2 version and use it at runtime.\n Increases the installer size by around 180MB.",
2063
2125
  "type": "object",
2064
2126
  "required": [
2065
2127
  "path",
@@ -2073,7 +2135,7 @@
2073
2135
  ]
2074
2136
  },
2075
2137
  "path": {
2076
- "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.",
2138
+ "description": "The path to the fixed runtime to use.\n\n The fixed version can be downloaded [on the official website](https://developer.microsoft.com/en-us/microsoft-edge/webview2/#download-section).\n The `.cab` file must be extracted to a folder and this folder path must be defined on this field.",
2077
2139
  "type": "string"
2078
2140
  }
2079
2141
  },
@@ -2082,7 +2144,7 @@
2082
2144
  ]
2083
2145
  },
2084
2146
  "WixConfig": {
2085
- "description": "Configuration for the MSI bundle using WiX.\n\nSee more: <https://tauri.app/v1/api/config#wixconfig>",
2147
+ "description": "Configuration for the MSI bundle using WiX.\n\n See more: <https://tauri.app/v1/api/config#wixconfig>",
2086
2148
  "type": "object",
2087
2149
  "properties": {
2088
2150
  "language": {
@@ -2149,25 +2211,20 @@
2149
2211
  "type": "string"
2150
2212
  }
2151
2213
  },
2152
- "skipWebviewInstall": {
2153
- "description": "Disables the Webview2 runtime installation after app install.\n\nWill be removed in v2, prefer the [`WindowsConfig::webview_install_mode`] option.",
2154
- "default": false,
2155
- "type": "boolean"
2156
- },
2157
2214
  "enableElevatedUpdateTask": {
2158
2215
  "description": "Create an elevated update task within Windows Task Scheduler.",
2159
2216
  "default": false,
2160
2217
  "type": "boolean"
2161
2218
  },
2162
2219
  "bannerPath": {
2163
- "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.",
2220
+ "description": "Path to a bitmap file to use as the installation user interface banner.\n This bitmap will appear at the top of all but the first page of the installer.\n\n The required dimensions are 493px × 58px.",
2164
2221
  "type": [
2165
2222
  "string",
2166
2223
  "null"
2167
2224
  ]
2168
2225
  },
2169
2226
  "dialogImagePath": {
2170
- "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.",
2227
+ "description": "Path to a bitmap file to use on the installation user interface dialogs.\n It is used on the welcome and completion dialogs.\n The required dimensions are 493px × 312px.",
2171
2228
  "type": [
2172
2229
  "string",
2173
2230
  "null"
@@ -2200,7 +2257,7 @@
2200
2257
  ]
2201
2258
  },
2202
2259
  "WixLanguageConfig": {
2203
- "description": "Configuration for a target language for the WiX build.\n\nSee more: <https://tauri.app/v1/api/config#wixlanguageconfig>",
2260
+ "description": "Configuration for a target language for the WiX build.\n\n See more: <https://tauri.app/v1/api/config#wixlanguageconfig>",
2204
2261
  "type": "object",
2205
2262
  "properties": {
2206
2263
  "localePath": {
@@ -2225,14 +2282,14 @@
2225
2282
  ]
2226
2283
  },
2227
2284
  "headerImage": {
2228
- "description": "The path to a bitmap file to display on the header of installers pages.\n\nThe recommended dimensions are 150px x 57px.",
2285
+ "description": "The path to a bitmap file to display on the header of installers pages.\n\n The recommended dimensions are 150px x 57px.",
2229
2286
  "type": [
2230
2287
  "string",
2231
2288
  "null"
2232
2289
  ]
2233
2290
  },
2234
2291
  "sidebarImage": {
2235
- "description": "The path to a bitmap file for the Welcome page and the Finish page.\n\nThe recommended dimensions are 164px x 314px.",
2292
+ "description": "The path to a bitmap file for the Welcome page and the Finish page.\n\n The recommended dimensions are 164px x 314px.",
2236
2293
  "type": [
2237
2294
  "string",
2238
2295
  "null"
@@ -2255,7 +2312,7 @@
2255
2312
  ]
2256
2313
  },
2257
2314
  "languages": {
2258
- "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.",
2315
+ "description": "A list of installer languages.\n By default the OS language is used. If the OS language is not in the list of languages, the first language will be used.\n To allow the user to select the language, set `display_language_selector` to `true`.\n\n See <https://github.com/kichik/nsis/tree/9465c08046f00ccb6eda985abbdbf52c275c6c4d/Contrib/Language%20files> for the complete list of languages.",
2259
2316
  "type": [
2260
2317
  "array",
2261
2318
  "null"
@@ -2265,7 +2322,7 @@
2265
2322
  }
2266
2323
  },
2267
2324
  "customLanguageFiles": {
2268
- "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,",
2325
+ "description": "A key-value pair where the key is the language and the\n value is the path to a custom `.nsh` file that holds the translated text for tauri's custom messages.\n\n See <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,",
2269
2326
  "type": [
2270
2327
  "object",
2271
2328
  "null"
@@ -2275,20 +2332,32 @@
2275
2332
  }
2276
2333
  },
2277
2334
  "displayLanguageSelector": {
2278
- "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.",
2335
+ "description": "Whether to display a language selector dialog before the installer and uninstaller windows are rendered or not.\n By default the OS language is selected, with a fallback to the first language in the `languages` array.",
2279
2336
  "default": false,
2280
2337
  "type": "boolean"
2281
2338
  },
2282
2339
  "compression": {
2283
- "description": "Set the compression algorithm used to compress files in the installer.\n\nSee <https://nsis.sourceforge.io/Reference/SetCompressor>",
2284
- "anyOf": [
2340
+ "description": "Set the compression algorithm used to compress files in the installer.\n\n See <https://nsis.sourceforge.io/Reference/SetCompressor>",
2341
+ "default": "lzma",
2342
+ "allOf": [
2285
2343
  {
2286
2344
  "$ref": "#/definitions/NsisCompression"
2287
- },
2288
- {
2289
- "type": "null"
2290
2345
  }
2291
2346
  ]
2347
+ },
2348
+ "startMenuFolder": {
2349
+ "description": "Set the folder name for the start menu shortcut.\n\n Use this option if you have multiple apps and wish to group their shortcuts under one folder\n or if you generally prefer to set your shortcut inside a folder.\n\n Examples:\n - `AwesomePublisher`, shortcut will be placed in `%AppData%\\Microsoft\\Windows\\Start Menu\\Programs\\AwesomePublisher\\<your-app>.lnk`\n - If unset, shortcut will be placed in `%AppData%\\Microsoft\\Windows\\Start Menu\\Programs\\<your-app>.lnk`",
2350
+ "type": [
2351
+ "string",
2352
+ "null"
2353
+ ]
2354
+ },
2355
+ "installerHooks": {
2356
+ "description": "A path to a `.nsh` file that contains special NSIS macros to be hooked into the\n main installer.nsi script.\n\n Supported hooks are:\n - `NSIS_HOOK_PREINSTALL`: This hook runs before copying files, setting registry key values and creating shortcuts.\n - `NSIS_HOOK_POSTINSTALL`: This hook runs after the installer has finished copying all files, setting the registry keys and created shortcuts.\n - `NSIS_HOOK_PREUNINSTALL`: This hook runs before removing any files, registry keys and shortcuts.\n - `NSIS_HOOK_POSTUNINSTALL`: This hook runs after files, registry keys and shortcuts have been removed.\n\n\n ### Example\n\n ```nsh\n !macro NSIS_HOOK_PREINSTALL\n MessageBox MB_OK \"PreInstall\"\n !macroend\n\n !macro NSIS_HOOK_POSTINSTALL\n MessageBox MB_OK \"PostInstall\"\n !macroend\n\n !macro NSIS_HOOK_PREUNINSTALL\n MessageBox MB_OK \"PreUnInstall\"\n !macroend\n\n !macro NSIS_HOOK_POSTUNINSTALL\n MessageBox MB_OK \"PostUninstall\"\n !macroend\n\n ```",
2357
+ "type": [
2358
+ "string",
2359
+ "null"
2360
+ ]
2292
2361
  }
2293
2362
  },
2294
2363
  "additionalProperties": false
@@ -2297,21 +2366,21 @@
2297
2366
  "description": "Install Modes for the NSIS installer.",
2298
2367
  "oneOf": [
2299
2368
  {
2300
- "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.",
2369
+ "description": "Default mode for the installer.\n\n Install the app by default in a directory that doesn't require Administrator access.\n\n Installer metadata will be saved under the `HKCU` registry path.",
2301
2370
  "type": "string",
2302
2371
  "enum": [
2303
2372
  "currentUser"
2304
2373
  ]
2305
2374
  },
2306
2375
  {
2307
- "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.",
2376
+ "description": "Install the app by default in the `Program Files` folder directory requires Administrator\n access for the installation.\n\n Installer metadata will be saved under the `HKLM` registry path.",
2308
2377
  "type": "string",
2309
2378
  "enum": [
2310
2379
  "perMachine"
2311
2380
  ]
2312
2381
  },
2313
2382
  {
2314
- "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.",
2383
+ "description": "Combines both modes and allows the user to choose at install time\n whether to install for the current user or per machine. Note that this mode\n will require Administrator access even if the user wants to install it for the current user only.\n\n Installer metadata will be saved under the `HKLM` or `HKCU` registry path based on the user's choice.",
2315
2384
  "type": "string",
2316
2385
  "enum": [
2317
2386
  "both"
@@ -2320,7 +2389,7 @@
2320
2389
  ]
2321
2390
  },
2322
2391
  "NsisCompression": {
2323
- "description": "Compression algorithms used in the NSIS installer.\n\nSee <https://nsis.sourceforge.io/Reference/SetCompressor>",
2392
+ "description": "Compression algorithms used in the NSIS installer.\n\n See <https://nsis.sourceforge.io/Reference/SetCompressor>",
2324
2393
  "oneOf": [
2325
2394
  {
2326
2395
  "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.",
@@ -2342,11 +2411,18 @@
2342
2411
  "enum": [
2343
2412
  "lzma"
2344
2413
  ]
2414
+ },
2415
+ {
2416
+ "description": "Disable compression",
2417
+ "type": "string",
2418
+ "enum": [
2419
+ "none"
2420
+ ]
2345
2421
  }
2346
2422
  ]
2347
2423
  },
2348
2424
  "LinuxConfig": {
2349
- "description": "Configuration for Linux bundles.\n\nSee more: <https://tauri.app/v1/api/config#linuxconfig>",
2425
+ "description": "Configuration for Linux bundles.\n\n See more: <https://tauri.app/v1/api/config#linuxconfig>",
2350
2426
  "type": "object",
2351
2427
  "properties": {
2352
2428
  "appimage": {
@@ -2389,11 +2465,11 @@
2389
2465
  "additionalProperties": false
2390
2466
  },
2391
2467
  "AppImageConfig": {
2392
- "description": "Configuration for AppImage bundles.\n\nSee more: <https://tauri.app/v1/api/config#appimageconfig>",
2468
+ "description": "Configuration for AppImage bundles.\n\n See more: <https://tauri.app/v1/api/config#appimageconfig>",
2393
2469
  "type": "object",
2394
2470
  "properties": {
2395
2471
  "bundleMediaFramework": {
2396
- "description": "Include additional gstreamer dependencies needed for audio and video playback. This increases the bundle size by ~15-35MB depending on your build system.",
2472
+ "description": "Include additional gstreamer dependencies needed for audio and video playback.\n This increases the bundle size by ~15-35MB depending on your build system.",
2397
2473
  "default": false,
2398
2474
  "type": "boolean"
2399
2475
  },
@@ -2409,7 +2485,7 @@
2409
2485
  "additionalProperties": false
2410
2486
  },
2411
2487
  "DebConfig": {
2412
- "description": "Configuration for Debian (.deb) bundles.\n\nSee more: <https://tauri.app/v1/api/config#debconfig>",
2488
+ "description": "Configuration for Debian (.deb) bundles.\n\n See more: <https://tauri.app/v1/api/config#debconfig>",
2413
2489
  "type": "object",
2414
2490
  "properties": {
2415
2491
  "depends": {
@@ -2422,6 +2498,36 @@
2422
2498
  "type": "string"
2423
2499
  }
2424
2500
  },
2501
+ "provides": {
2502
+ "description": "The list of dependencies the package provides.",
2503
+ "type": [
2504
+ "array",
2505
+ "null"
2506
+ ],
2507
+ "items": {
2508
+ "type": "string"
2509
+ }
2510
+ },
2511
+ "conflicts": {
2512
+ "description": "The list of package conflicts.",
2513
+ "type": [
2514
+ "array",
2515
+ "null"
2516
+ ],
2517
+ "items": {
2518
+ "type": "string"
2519
+ }
2520
+ },
2521
+ "replaces": {
2522
+ "description": "The list of package replaces.",
2523
+ "type": [
2524
+ "array",
2525
+ "null"
2526
+ ],
2527
+ "items": {
2528
+ "type": "string"
2529
+ }
2530
+ },
2425
2531
  "files": {
2426
2532
  "description": "The files to include on the package.",
2427
2533
  "default": {},
@@ -2430,29 +2536,57 @@
2430
2536
  "type": "string"
2431
2537
  }
2432
2538
  },
2539
+ "section": {
2540
+ "description": "Define the section in Debian Control file. See : https://www.debian.org/doc/debian-policy/ch-archive.html#s-subsections",
2541
+ "type": [
2542
+ "string",
2543
+ "null"
2544
+ ]
2545
+ },
2546
+ "priority": {
2547
+ "description": "Change the priority of the Debian Package. By default, it is set to `optional`.\n Recognized Priorities as of now are : `required`, `important`, `standard`, `optional`, `extra`",
2548
+ "type": [
2549
+ "string",
2550
+ "null"
2551
+ ]
2552
+ },
2553
+ "changelog": {
2554
+ "description": "Path of the uncompressed Changelog file, to be stored at /usr/share/doc/package-name/changelog.gz. See\n <https://www.debian.org/doc/debian-policy/ch-docs.html#changelog-files-and-release-notes>",
2555
+ "type": [
2556
+ "string",
2557
+ "null"
2558
+ ]
2559
+ },
2433
2560
  "desktopTemplate": {
2434
- "description": "Path to a custom desktop file Handlebars template.\n\nAvailable variables: `categories`, `comment` (optional), `exec`, `icon` and `name`.",
2561
+ "description": "Path to a custom desktop file Handlebars template.\n\n Available variables: `categories`, `comment` (optional), `exec`, `icon` and `name`.",
2435
2562
  "type": [
2436
2563
  "string",
2437
2564
  "null"
2438
2565
  ]
2439
2566
  },
2440
- "section": {
2441
- "description": "Define the section in Debian Control file. See : https://www.debian.org/doc/debian-policy/ch-archive.html#s-subsections",
2567
+ "preInstallScript": {
2568
+ "description": "Path to script that will be executed before the package is unpacked. See\n <https://www.debian.org/doc/debian-policy/ch-maintainerscripts.html>",
2442
2569
  "type": [
2443
2570
  "string",
2444
2571
  "null"
2445
2572
  ]
2446
2573
  },
2447
- "priority": {
2448
- "description": "Change the priority of the Debian Package. By default, it is set to `optional`. Recognized Priorities as of now are : `required`, `important`, `standard`, `optional`, `extra`",
2574
+ "postInstallScript": {
2575
+ "description": "Path to script that will be executed after the package is unpacked. See\n <https://www.debian.org/doc/debian-policy/ch-maintainerscripts.html>",
2449
2576
  "type": [
2450
2577
  "string",
2451
2578
  "null"
2452
2579
  ]
2453
2580
  },
2454
- "changelog": {
2455
- "description": "Path of the uncompressed Changelog file, to be stored at /usr/share/doc/package-name/changelog.gz. See https://www.debian.org/doc/debian-policy/ch-docs.html#changelog-files-and-release-notes",
2581
+ "preRemoveScript": {
2582
+ "description": "Path to script that will be executed before the package is removed. See\n <https://www.debian.org/doc/debian-policy/ch-maintainerscripts.html>",
2583
+ "type": [
2584
+ "string",
2585
+ "null"
2586
+ ]
2587
+ },
2588
+ "postRemoveScript": {
2589
+ "description": "Path to script that will be executed after the package is removed. See\n <https://www.debian.org/doc/debian-policy/ch-maintainerscripts.html>",
2456
2590
  "type": [
2457
2591
  "string",
2458
2592
  "null"
@@ -2475,6 +2609,36 @@
2475
2609
  "type": "string"
2476
2610
  }
2477
2611
  },
2612
+ "provides": {
2613
+ "description": "The list of RPM dependencies your application provides.",
2614
+ "type": [
2615
+ "array",
2616
+ "null"
2617
+ ],
2618
+ "items": {
2619
+ "type": "string"
2620
+ }
2621
+ },
2622
+ "conflicts": {
2623
+ "description": "The list of RPM dependencies your application conflicts with. They must not be present\n in order for the package to be installed.",
2624
+ "type": [
2625
+ "array",
2626
+ "null"
2627
+ ],
2628
+ "items": {
2629
+ "type": "string"
2630
+ }
2631
+ },
2632
+ "obsoletes": {
2633
+ "description": "The list of RPM dependencies your application supersedes - if this package is installed,\n packages listed as “obsoletes” will be automatically removed (if they are present).",
2634
+ "type": [
2635
+ "array",
2636
+ "null"
2637
+ ],
2638
+ "items": {
2639
+ "type": "string"
2640
+ }
2641
+ },
2478
2642
  "release": {
2479
2643
  "description": "The RPM release tag.",
2480
2644
  "default": "1",
@@ -2496,7 +2660,35 @@
2496
2660
  }
2497
2661
  },
2498
2662
  "desktopTemplate": {
2499
- "description": "Path to a custom desktop file Handlebars template.\n\nAvailable variables: `categories`, `comment` (optional), `exec`, `icon` and `name`.",
2663
+ "description": "Path to a custom desktop file Handlebars template.\n\n Available variables: `categories`, `comment` (optional), `exec`, `icon` and `name`.",
2664
+ "type": [
2665
+ "string",
2666
+ "null"
2667
+ ]
2668
+ },
2669
+ "preInstallScript": {
2670
+ "description": "Path to script that will be executed before the package is unpacked. See\n <http://ftp.rpm.org/max-rpm/s1-rpm-inside-scripts.html>",
2671
+ "type": [
2672
+ "string",
2673
+ "null"
2674
+ ]
2675
+ },
2676
+ "postInstallScript": {
2677
+ "description": "Path to script that will be executed after the package is unpacked. See\n <http://ftp.rpm.org/max-rpm/s1-rpm-inside-scripts.html>",
2678
+ "type": [
2679
+ "string",
2680
+ "null"
2681
+ ]
2682
+ },
2683
+ "preRemoveScript": {
2684
+ "description": "Path to script that will be executed before the package is removed. See\n <http://ftp.rpm.org/max-rpm/s1-rpm-inside-scripts.html>",
2685
+ "type": [
2686
+ "string",
2687
+ "null"
2688
+ ]
2689
+ },
2690
+ "postRemoveScript": {
2691
+ "description": "Path to script that will be executed after the package is removed. See\n <http://ftp.rpm.org/max-rpm/s1-rpm-inside-scripts.html>",
2500
2692
  "type": [
2501
2693
  "string",
2502
2694
  "null"
@@ -2506,11 +2698,11 @@
2506
2698
  "additionalProperties": false
2507
2699
  },
2508
2700
  "MacConfig": {
2509
- "description": "Configuration for the macOS bundles.\n\nSee more: <https://tauri.app/v1/api/config#macconfig>",
2701
+ "description": "Configuration for the macOS bundles.\n\n See more: <https://tauri.app/v1/api/config#macconfig>",
2510
2702
  "type": "object",
2511
2703
  "properties": {
2512
2704
  "frameworks": {
2513
- "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.",
2705
+ "description": "A list of strings indicating any macOS X frameworks that need to be bundled with the application.\n\n If 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.",
2514
2706
  "type": [
2515
2707
  "array",
2516
2708
  "null"
@@ -2528,7 +2720,7 @@
2528
2720
  }
2529
2721
  },
2530
2722
  "minimumSystemVersion": {
2531
- "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.",
2723
+ "description": "A version string indicating the minimum macOS X version that the bundled application supports. Defaults to `10.13`.\n\n Setting it to `null` completely removes the `LSMinimumSystemVersion` field on the bundle's `Info.plist`\n and the `MACOSX_DEPLOYMENT_TARGET` environment variable.\n\n An empty string is considered an invalid value so the default value is used.",
2532
2724
  "default": "10.13",
2533
2725
  "type": [
2534
2726
  "string",
@@ -2536,7 +2728,7 @@
2536
2728
  ]
2537
2729
  },
2538
2730
  "exceptionDomain": {
2539
- "description": "Allows your application to communicate with the outside world. It should be a lowercase, without port and protocol domain name.",
2731
+ "description": "Allows your application to communicate with the outside world.\n It should be a lowercase, without port and protocol domain name.",
2540
2732
  "type": [
2541
2733
  "string",
2542
2734
  "null"
@@ -2549,6 +2741,11 @@
2549
2741
  "null"
2550
2742
  ]
2551
2743
  },
2744
+ "hardenedRuntime": {
2745
+ "description": "Whether the codesign should enable [hardened runtime] (for executables) or not.\n\n [hardened runtime]: <https://developer.apple.com/documentation/security/hardened_runtime>",
2746
+ "default": true,
2747
+ "type": "boolean"
2748
+ },
2552
2749
  "providerShortName": {
2553
2750
  "description": "Provider short name for notarization.",
2554
2751
  "type": [
@@ -2589,7 +2786,7 @@
2589
2786
  "additionalProperties": false
2590
2787
  },
2591
2788
  "DmgConfig": {
2592
- "description": "Configuration for Apple Disk Image (.dmg) bundles.\n\nSee more: <https://tauri.app/v1/api/config#dmgconfig>",
2789
+ "description": "Configuration for Apple Disk Image (.dmg) bundles.\n\n See more: <https://tauri.app/v1/api/config#dmgconfig>",
2593
2790
  "type": "object",
2594
2791
  "properties": {
2595
2792
  "background": {
@@ -2699,8 +2896,18 @@
2699
2896
  "description": "General configuration for the iOS target.",
2700
2897
  "type": "object",
2701
2898
  "properties": {
2899
+ "frameworks": {
2900
+ "description": "A list of strings indicating any iOS frameworks that need to be bundled with the application.\n\n Note that you need to recreate the iOS project for the changes to be applied.",
2901
+ "type": [
2902
+ "array",
2903
+ "null"
2904
+ ],
2905
+ "items": {
2906
+ "type": "string"
2907
+ }
2908
+ },
2702
2909
  "developmentTeam": {
2703
- "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.",
2910
+ "description": "The development team. This value is required for iOS development because code signing is enforced.\n The `APPLE_DEVELOPMENT_TEAM` environment variable can be set to overwrite it.",
2704
2911
  "type": [
2705
2912
  "string",
2706
2913
  "null"
@@ -2714,17 +2921,27 @@
2714
2921
  "type": "object",
2715
2922
  "properties": {
2716
2923
  "minSdkVersion": {
2717
- "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.",
2924
+ "description": "The minimum API level required for the application to run.\n The Android system will prevent the user from installing the application if the system's API level is lower than the value specified.",
2718
2925
  "default": 24,
2719
2926
  "type": "integer",
2720
2927
  "format": "uint32",
2721
2928
  "minimum": 0.0
2929
+ },
2930
+ "versionCode": {
2931
+ "description": "The version code of the application.\n It is limited to 2,100,000,000 as per Google Play Store requirements.\n\n By default we use your configured version and perform the following math:\n versionCode = version.major * 1000000 + version.minor * 1000 + version.patch",
2932
+ "type": [
2933
+ "integer",
2934
+ "null"
2935
+ ],
2936
+ "format": "uint32",
2937
+ "maximum": 2100000000.0,
2938
+ "minimum": 1.0
2722
2939
  }
2723
2940
  },
2724
2941
  "additionalProperties": false
2725
2942
  },
2726
2943
  "PluginConfig": {
2727
- "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>",
2944
+ "description": "The plugin configs holds a HashMap mapping a plugin name to its configuration object.\n\n See more: <https://tauri.app/v1/api/config#pluginconfig>",
2728
2945
  "type": "object",
2729
2946
  "additionalProperties": true
2730
2947
  }