@tauri-apps/cli 2.0.0-beta.2 → 2.0.0-beta.21

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 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,14 +20,14 @@
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
  },
@@ -72,6 +72,7 @@
72
72
  "android": {
73
73
  "minSdkVersion": 24
74
74
  },
75
+ "createUpdaterArtifacts": false,
75
76
  "iOS": {},
76
77
  "icon": [],
77
78
  "linux": {
@@ -104,6 +105,7 @@
104
105
  }
105
106
  },
106
107
  "files": {},
108
+ "hardenedRuntime": true,
107
109
  "minimumSystemVersion": "10.13"
108
110
  },
109
111
  "targets": "all",
@@ -112,6 +114,7 @@
112
114
  "certificateThumbprint": null,
113
115
  "digestAlgorithm": null,
114
116
  "nsis": null,
117
+ "signCommand": null,
115
118
  "timestampUrl": null,
116
119
  "tsp": false,
117
120
  "webviewFixedRuntimePath": null,
@@ -141,7 +144,7 @@
141
144
  "additionalProperties": false,
142
145
  "definitions": {
143
146
  "AppConfig": {
144
- "description": "The App configuration object.\n\nSee more: <https://tauri.app/v1/api/config#appconfig>",
147
+ "description": "The App configuration object.\n\n See more: <https://tauri.app/v1/api/config#appconfig>",
145
148
  "type": "object",
146
149
  "properties": {
147
150
  "windows": {
@@ -197,7 +200,7 @@
197
200
  "additionalProperties": false
198
201
  },
199
202
  "WindowConfig": {
200
- "description": "The window configuration object.\n\nSee more: <https://tauri.app/v1/api/config#windowconfig>",
203
+ "description": "The window configuration object.\n\n See more: <https://tauri.app/v1/api/config#windowconfig>",
201
204
  "type": "object",
202
205
  "properties": {
203
206
  "label": {
@@ -221,8 +224,8 @@
221
224
  "null"
222
225
  ]
223
226
  },
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.",
227
+ "dragDropEnabled": {
228
+ "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
229
  "default": true,
227
230
  "type": "boolean"
228
231
  },
@@ -297,17 +300,17 @@
297
300
  "type": "boolean"
298
301
  },
299
302
  "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.",
303
+ "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
304
  "default": true,
302
305
  "type": "boolean"
303
306
  },
304
307
  "minimizable": {
305
- "description": "Whether the window's native minimize button is enabled or not.\n\n## Platform-specific\n\n- **Linux / iOS / Android:** Unsupported.",
308
+ "description": "Whether the window's native minimize button is enabled or not.\n\n ## Platform-specific\n\n - **Linux / iOS / Android:** Unsupported.",
306
309
  "default": true,
307
310
  "type": "boolean"
308
311
  },
309
312
  "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.",
313
+ "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
314
  "default": true,
312
315
  "type": "boolean"
313
316
  },
@@ -327,7 +330,7 @@
327
330
  "type": "boolean"
328
331
  },
329
332
  "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`.",
333
+ "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
334
  "default": false,
332
335
  "type": "boolean"
333
336
  },
@@ -357,7 +360,7 @@
357
360
  "type": "boolean"
358
361
  },
359
362
  "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.",
363
+ "description": "Whether the window should be visible on all workspaces or virtual desktops.\n\n ## Platform-specific\n\n - **Windows / iOS / Android:** Unsupported.",
361
364
  "default": false,
362
365
  "type": "boolean"
363
366
  },
@@ -402,26 +405,26 @@
402
405
  "type": "boolean"
403
406
  },
404
407
  "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>",
408
+ "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
409
  "type": [
407
410
  "string",
408
411
  "null"
409
412
  ]
410
413
  },
411
414
  "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.",
415
+ "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
416
  "type": [
414
417
  "string",
415
418
  "null"
416
419
  ]
417
420
  },
418
421
  "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.",
422
+ "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
423
  "default": true,
421
424
  "type": "boolean"
422
425
  },
423
426
  "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",
427
+ "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
428
  "anyOf": [
426
429
  {
427
430
  "$ref": "#/definitions/WindowEffectsConfig"
@@ -432,24 +435,29 @@
432
435
  ]
433
436
  },
434
437
  "incognito": {
435
- "description": "Whether or not the webview should be launched in incognito mode.\n\n## Platform-specific:\n\n- **Android**: Unsupported.",
438
+ "description": "Whether or not the webview should be launched in incognito mode.\n\n ## Platform-specific:\n\n - **Android**: Unsupported.",
436
439
  "default": false,
437
440
  "type": "boolean"
438
441
  },
439
442
  "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>",
443
+ "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
444
  "type": [
442
445
  "string",
443
446
  "null"
444
447
  ]
445
448
  },
446
449
  "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+.",
450
+ "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
451
  "type": [
449
452
  "string",
450
453
  "null"
451
454
  ],
452
455
  "format": "uri"
456
+ },
457
+ "zoomHotkeysEnabled": {
458
+ "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.",
459
+ "default": false,
460
+ "type": "boolean"
453
461
  }
454
462
  },
455
463
  "additionalProperties": false
@@ -463,7 +471,7 @@
463
471
  "format": "uri"
464
472
  },
465
473
  {
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.",
474
+ "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
475
  "type": "string"
468
476
  },
469
477
  {
@@ -503,14 +511,14 @@
503
511
  ]
504
512
  },
505
513
  {
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.",
514
+ "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
515
  "type": "string",
508
516
  "enum": [
509
517
  "Transparent"
510
518
  ]
511
519
  },
512
520
  {
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.",
521
+ "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
522
  "type": "string",
515
523
  "enum": [
516
524
  "Overlay"
@@ -526,7 +534,7 @@
526
534
  ],
527
535
  "properties": {
528
536
  "effects": {
529
- "description": "List of Window effects to apply to the Window. Conflicting effects will apply the first one and ignore the rest.",
537
+ "description": "List of Window effects to apply to the Window.\n Conflicting effects will apply the first one and ignore the rest.",
530
538
  "type": "array",
531
539
  "items": {
532
540
  "$ref": "#/definitions/WindowEffect"
@@ -552,7 +560,7 @@
552
560
  "format": "double"
553
561
  },
554
562
  "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.",
563
+ "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
564
  "anyOf": [
557
565
  {
558
566
  "$ref": "#/definitions/Color"
@@ -577,7 +585,7 @@
577
585
  ]
578
586
  },
579
587
  {
580
- "description": "*macOS 10.14-**",
588
+ "description": "**macOS 10.14-**",
581
589
  "deprecated": true,
582
590
  "type": "string",
583
591
  "enum": [
@@ -585,7 +593,7 @@
585
593
  ]
586
594
  },
587
595
  {
588
- "description": "*macOS 10.14-**",
596
+ "description": "**macOS 10.14-**",
589
597
  "deprecated": true,
590
598
  "type": "string",
591
599
  "enum": [
@@ -593,7 +601,7 @@
593
601
  ]
594
602
  },
595
603
  {
596
- "description": "*macOS 10.14-**",
604
+ "description": "**macOS 10.14-**",
597
605
  "deprecated": true,
598
606
  "type": "string",
599
607
  "enum": [
@@ -601,7 +609,7 @@
601
609
  ]
602
610
  },
603
611
  {
604
- "description": "*macOS 10.14-**",
612
+ "description": "**macOS 10.14-**",
605
613
  "deprecated": true,
606
614
  "type": "string",
607
615
  "enum": [
@@ -609,98 +617,98 @@
609
617
  ]
610
618
  },
611
619
  {
612
- "description": "*macOS 10.10+**",
620
+ "description": "**macOS 10.10+**",
613
621
  "type": "string",
614
622
  "enum": [
615
623
  "titlebar"
616
624
  ]
617
625
  },
618
626
  {
619
- "description": "*macOS 10.10+**",
627
+ "description": "**macOS 10.10+**",
620
628
  "type": "string",
621
629
  "enum": [
622
630
  "selection"
623
631
  ]
624
632
  },
625
633
  {
626
- "description": "*macOS 10.11+**",
634
+ "description": "**macOS 10.11+**",
627
635
  "type": "string",
628
636
  "enum": [
629
637
  "menu"
630
638
  ]
631
639
  },
632
640
  {
633
- "description": "*macOS 10.11+**",
641
+ "description": "**macOS 10.11+**",
634
642
  "type": "string",
635
643
  "enum": [
636
644
  "popover"
637
645
  ]
638
646
  },
639
647
  {
640
- "description": "*macOS 10.11+**",
648
+ "description": "**macOS 10.11+**",
641
649
  "type": "string",
642
650
  "enum": [
643
651
  "sidebar"
644
652
  ]
645
653
  },
646
654
  {
647
- "description": "*macOS 10.14+**",
655
+ "description": "**macOS 10.14+**",
648
656
  "type": "string",
649
657
  "enum": [
650
658
  "headerView"
651
659
  ]
652
660
  },
653
661
  {
654
- "description": "*macOS 10.14+**",
662
+ "description": "**macOS 10.14+**",
655
663
  "type": "string",
656
664
  "enum": [
657
665
  "sheet"
658
666
  ]
659
667
  },
660
668
  {
661
- "description": "*macOS 10.14+**",
669
+ "description": "**macOS 10.14+**",
662
670
  "type": "string",
663
671
  "enum": [
664
672
  "windowBackground"
665
673
  ]
666
674
  },
667
675
  {
668
- "description": "*macOS 10.14+**",
676
+ "description": "**macOS 10.14+**",
669
677
  "type": "string",
670
678
  "enum": [
671
679
  "hudWindow"
672
680
  ]
673
681
  },
674
682
  {
675
- "description": "*macOS 10.14+**",
683
+ "description": "**macOS 10.14+**",
676
684
  "type": "string",
677
685
  "enum": [
678
686
  "fullScreenUI"
679
687
  ]
680
688
  },
681
689
  {
682
- "description": "*macOS 10.14+**",
690
+ "description": "**macOS 10.14+**",
683
691
  "type": "string",
684
692
  "enum": [
685
693
  "tooltip"
686
694
  ]
687
695
  },
688
696
  {
689
- "description": "*macOS 10.14+**",
697
+ "description": "**macOS 10.14+**",
690
698
  "type": "string",
691
699
  "enum": [
692
700
  "contentBackground"
693
701
  ]
694
702
  },
695
703
  {
696
- "description": "*macOS 10.14+**",
704
+ "description": "**macOS 10.14+**",
697
705
  "type": "string",
698
706
  "enum": [
699
707
  "underWindowBackground"
700
708
  ]
701
709
  },
702
710
  {
703
- "description": "*macOS 10.14+**",
711
+ "description": "**macOS 10.14+**",
704
712
  "type": "string",
705
713
  "enum": [
706
714
  "underPageBackground"
@@ -749,14 +757,14 @@
749
757
  ]
750
758
  },
751
759
  {
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.",
760
+ "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
761
  "type": "string",
754
762
  "enum": [
755
763
  "blur"
756
764
  ]
757
765
  },
758
766
  {
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.",
767
+ "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
768
  "type": "string",
761
769
  "enum": [
762
770
  "acrylic"
@@ -765,7 +773,7 @@
765
773
  ]
766
774
  },
767
775
  "WindowEffectState": {
768
- "description": "Window effect state **macOS only**\n\n<https://developer.apple.com/documentation/appkit/nsvisualeffectview/state>",
776
+ "description": "Window effect state **macOS only**\n\n <https://developer.apple.com/documentation/appkit/nsvisualeffectview/state>",
769
777
  "oneOf": [
770
778
  {
771
779
  "description": "Make window effect state follow the window's active state",
@@ -819,11 +827,11 @@
819
827
  "minItems": 4
820
828
  },
821
829
  "SecurityConfig": {
822
- "description": "Security configuration.\n\nSee more: <https://tauri.app/v1/api/config#securityconfig>",
830
+ "description": "Security configuration.\n\n See more: <https://tauri.app/v1/api/config#securityconfig>",
823
831
  "type": "object",
824
832
  "properties": {
825
833
  "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>.",
834
+ "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
835
  "anyOf": [
828
836
  {
829
837
  "$ref": "#/definitions/Csp"
@@ -834,7 +842,7 @@
834
842
  ]
835
843
  },
836
844
  "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>.",
845
+ "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
846
  "anyOf": [
839
847
  {
840
848
  "$ref": "#/definitions/Csp"
@@ -850,7 +858,7 @@
850
858
  "type": "boolean"
851
859
  },
852
860
  "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.",
861
+ "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
862
  "default": false,
855
863
  "allOf": [
856
864
  {
@@ -882,7 +890,7 @@
882
890
  ]
883
891
  },
884
892
  "capabilities": {
885
- "description": "List of capabilities that are enabled on the application.\n\nIf the list is empty, all capabilities are included.",
893
+ "description": "List of capabilities that are enabled on the application.\n\n If the list is empty, all capabilities are included.",
886
894
  "default": [],
887
895
  "type": "array",
888
896
  "items": {
@@ -893,7 +901,7 @@
893
901
  "additionalProperties": false
894
902
  },
895
903
  "Csp": {
896
- "description": "A Content-Security-Policy definition. See <https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP>.",
904
+ "description": "A Content-Security-Policy definition.\n See <https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP>.",
897
905
  "anyOf": [
898
906
  {
899
907
  "description": "The entire CSP policy in a single text string.",
@@ -909,7 +917,7 @@
909
917
  ]
910
918
  },
911
919
  "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>.",
920
+ "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
921
  "anyOf": [
914
922
  {
915
923
  "description": "An inline list of CSP sources. Same as [`Self::List`], but concatenated with a space separator.",
@@ -928,7 +936,7 @@
928
936
  "description": "The possible values for the `dangerous_disable_asset_csp_modification` config option.",
929
937
  "anyOf": [
930
938
  {
931
- "description": "If `true`, disables all CSP modification. `false` is the default value and it configures Tauri to control the CSP.",
939
+ "description": "If `true`, disables all CSP modification.\n `false` is the default value and it configures Tauri to control the CSP.",
932
940
  "type": "boolean"
933
941
  },
934
942
  {
@@ -941,7 +949,7 @@
941
949
  ]
942
950
  },
943
951
  "AssetProtocolConfig": {
944
- "description": "Config for the asset custom protocol.\n\nSee more: <https://tauri.app/v1/api/config#assetprotocolconfig>",
952
+ "description": "Config for the asset custom protocol.\n\n See more: <https://tauri.app/v1/api/config#assetprotocolconfig>",
945
953
  "type": "object",
946
954
  "properties": {
947
955
  "scope": {
@@ -962,7 +970,7 @@
962
970
  "additionalProperties": false
963
971
  },
964
972
  "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`.",
973
+ "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
974
  "anyOf": [
967
975
  {
968
976
  "description": "A list of paths that are allowed by this scope.",
@@ -984,7 +992,7 @@
984
992
  }
985
993
  },
986
994
  "deny": {
987
- "description": "A list of paths that are not allowed by this scope. This gets precedence over the [`Self::Scope::allow`] list.",
995
+ "description": "A list of paths that are not allowed by this scope.\n This gets precedence over the [`Self::Scope::allow`] list.",
988
996
  "default": [],
989
997
  "type": "array",
990
998
  "items": {
@@ -992,7 +1000,7 @@
992
1000
  }
993
1001
  },
994
1002
  "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",
1003
+ "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
1004
  "type": [
997
1005
  "boolean",
998
1006
  "null"
@@ -1068,108 +1076,90 @@
1068
1076
  ]
1069
1077
  },
1070
1078
  "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.",
1079
+ "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 \"path: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
1080
  "type": "object",
1073
1081
  "required": [
1074
1082
  "identifier",
1075
- "permissions",
1076
- "windows"
1083
+ "permissions"
1077
1084
  ],
1078
1085
  "properties": {
1079
1086
  "identifier": {
1080
- "description": "Identifier of the capability.",
1087
+ "description": "Identifier of the capability.\n\n ## Example\n\n `main-user-files-write`",
1081
1088
  "type": "string"
1082
1089
  },
1083
1090
  "description": {
1084
- "description": "Description of the capability.",
1091
+ "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.",
1085
1092
  "default": "",
1086
1093
  "type": "string"
1087
1094
  },
1088
- "context": {
1089
- "description": "Execution context of the capability.\n\nAt runtime, Tauri filters the IPC command together with the context to determine whether it is allowed or not and its scope.",
1090
- "default": "local",
1091
- "allOf": [
1095
+ "remote": {
1096
+ "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 ```",
1097
+ "anyOf": [
1098
+ {
1099
+ "$ref": "#/definitions/CapabilityRemote"
1100
+ },
1092
1101
  {
1093
- "$ref": "#/definitions/CapabilityContext"
1102
+ "type": "null"
1094
1103
  }
1095
1104
  ]
1096
1105
  },
1106
+ "local": {
1107
+ "description": "Whether this capability is enabled for local app URLs or not. Defaults to `true`.",
1108
+ "default": true,
1109
+ "type": "boolean"
1110
+ },
1097
1111
  "windows": {
1098
- "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.",
1112
+ "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\"]`",
1099
1113
  "type": "array",
1100
1114
  "items": {
1101
1115
  "type": "string"
1102
1116
  }
1103
1117
  },
1104
1118
  "webviews": {
1105
- "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.",
1119
+ "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\"]`",
1106
1120
  "type": "array",
1107
1121
  "items": {
1108
1122
  "type": "string"
1109
1123
  }
1110
1124
  },
1111
1125
  "permissions": {
1112
- "description": "List of permissions attached to this capability. Must include the plugin name as prefix in the form of `${plugin-name}:${permission-name}`.",
1126
+ "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 \"path:default\",\n \"event:default\",\n \"window:default\",\n \"app:default\",\n \"image:default\",\n \"resources:default\",\n \"menu:default\",\n \"tray:default\",\n \"shell:allow-open\",\n \"dialog:open\",\n {\n \"identifier\": \"fs:allow-write-text-file\",\n \"allow\": [{ \"path\": \"$HOME/test.txt\" }]\n }\n ```",
1113
1127
  "type": "array",
1114
1128
  "items": {
1115
1129
  "$ref": "#/definitions/PermissionEntry"
1116
- }
1130
+ },
1131
+ "uniqueItems": true
1117
1132
  },
1118
1133
  "platforms": {
1119
- "description": "Target platforms this capability applies. By default all platforms applies.",
1120
- "default": [
1121
- "linux",
1122
- "macOS",
1123
- "windows",
1124
- "android",
1125
- "iOS"
1134
+ "description": "Limit which target platforms this capability applies to.\n\n By default all platforms are targeted.\n\n ## Example\n\n `[\"macOS\",\"windows\"]`",
1135
+ "type": [
1136
+ "array",
1137
+ "null"
1126
1138
  ],
1127
- "type": "array",
1128
1139
  "items": {
1129
1140
  "$ref": "#/definitions/Target"
1130
1141
  }
1131
1142
  }
1132
1143
  }
1133
1144
  },
1134
- "CapabilityContext": {
1135
- "description": "Context of the capability.",
1136
- "oneOf": [
1137
- {
1138
- "description": "Capability refers to local URL usage.",
1139
- "type": "string",
1140
- "enum": [
1141
- "local"
1142
- ]
1143
- },
1144
- {
1145
- "description": "Capability refers to remote usage.",
1146
- "type": "object",
1147
- "required": [
1148
- "remote"
1149
- ],
1150
- "properties": {
1151
- "remote": {
1152
- "type": "object",
1153
- "required": [
1154
- "urls"
1155
- ],
1156
- "properties": {
1157
- "urls": {
1158
- "description": "Remote domains this capability refers to. Can use glob patterns.",
1159
- "type": "array",
1160
- "items": {
1161
- "type": "string"
1162
- }
1163
- }
1164
- }
1165
- }
1166
- },
1167
- "additionalProperties": false
1145
+ "CapabilityRemote": {
1146
+ "description": "Configuration for remote URLs that are associated with the capability.",
1147
+ "type": "object",
1148
+ "required": [
1149
+ "urls"
1150
+ ],
1151
+ "properties": {
1152
+ "urls": {
1153
+ "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",
1154
+ "type": "array",
1155
+ "items": {
1156
+ "type": "string"
1157
+ }
1168
1158
  }
1169
- ]
1159
+ }
1170
1160
  },
1171
1161
  "PermissionEntry": {
1172
- "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.",
1162
+ "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.",
1173
1163
  "anyOf": [
1174
1164
  {
1175
1165
  "description": "Reference a permission or permission set by identifier.",
@@ -1205,7 +1195,7 @@
1205
1195
  }
1206
1196
  },
1207
1197
  "deny": {
1208
- "description": "Data that defines what is denied by the scope.",
1198
+ "description": "Data that defines what is denied by the scope. This should be prioritized by validation logic.",
1209
1199
  "type": [
1210
1200
  "array",
1211
1201
  "null"
@@ -1316,7 +1306,7 @@
1316
1306
  ]
1317
1307
  },
1318
1308
  "TrayIconConfig": {
1319
- "description": "Configuration for application tray icon.\n\nSee more: <https://tauri.app/v1/api/config#trayiconconfig>",
1309
+ "description": "Configuration for application tray icon.\n\n See more: <https://tauri.app/v1/api/config#trayiconconfig>",
1320
1310
  "type": "object",
1321
1311
  "required": [
1322
1312
  "iconPath"
@@ -1330,7 +1320,7 @@
1330
1320
  ]
1331
1321
  },
1332
1322
  "iconPath": {
1333
- "description": "Path to the default icon to use for the tray icon.",
1323
+ "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",
1334
1324
  "type": "string"
1335
1325
  },
1336
1326
  "iconAsTemplate": {
@@ -1361,7 +1351,7 @@
1361
1351
  "additionalProperties": false
1362
1352
  },
1363
1353
  "BuildConfig": {
1364
- "description": "The Build configuration object.\n\nSee more: <https://tauri.app/v1/api/config#buildconfig>",
1354
+ "description": "The Build configuration object.\n\n See more: <https://tauri.app/v1/api/config#buildconfig>",
1365
1355
  "type": "object",
1366
1356
  "properties": {
1367
1357
  "runner": {
@@ -1372,7 +1362,7 @@
1372
1362
  ]
1373
1363
  },
1374
1364
  "devUrl": {
1375
- "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.",
1365
+ "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.",
1376
1366
  "type": [
1377
1367
  "string",
1378
1368
  "null"
@@ -1380,7 +1370,7 @@
1380
1370
  "format": "uri"
1381
1371
  },
1382
1372
  "frontendDist": {
1383
- "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.",
1373
+ "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.",
1384
1374
  "anyOf": [
1385
1375
  {
1386
1376
  "$ref": "#/definitions/FrontendDist"
@@ -1391,7 +1381,7 @@
1391
1381
  ]
1392
1382
  },
1393
1383
  "beforeDevCommand": {
1394
- "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.",
1384
+ "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.",
1395
1385
  "anyOf": [
1396
1386
  {
1397
1387
  "$ref": "#/definitions/BeforeDevCommand"
@@ -1402,7 +1392,7 @@
1402
1392
  ]
1403
1393
  },
1404
1394
  "beforeBuildCommand": {
1405
- "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.",
1395
+ "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.",
1406
1396
  "anyOf": [
1407
1397
  {
1408
1398
  "$ref": "#/definitions/HookCommand"
@@ -1413,7 +1403,7 @@
1413
1403
  ]
1414
1404
  },
1415
1405
  "beforeBundleCommand": {
1416
- "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.",
1406
+ "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.",
1417
1407
  "anyOf": [
1418
1408
  {
1419
1409
  "$ref": "#/definitions/HookCommand"
@@ -1521,7 +1511,7 @@
1521
1511
  ]
1522
1512
  },
1523
1513
  "BundleConfig": {
1524
- "description": "Configuration for tauri-bundler.\n\nSee more: <https://tauri.app/v1/api/config#bundleconfig>",
1514
+ "description": "Configuration for tauri-bundler.\n\n See more: <https://tauri.app/v1/api/config#bundleconfig>",
1525
1515
  "type": "object",
1526
1516
  "properties": {
1527
1517
  "active": {
@@ -1530,7 +1520,7 @@
1530
1520
  "type": "boolean"
1531
1521
  },
1532
1522
  "targets": {
1533
- "description": "The bundle targets, currently supports [\"deb\", \"rpm\", \"appimage\", \"nsis\", \"msi\", \"app\", \"dmg\", \"updater\"] or \"all\".",
1523
+ "description": "The bundle targets, currently supports [\"deb\", \"rpm\", \"appimage\", \"nsis\", \"msi\", \"app\", \"dmg\"] or \"all\".",
1534
1524
  "default": "all",
1535
1525
  "allOf": [
1536
1526
  {
@@ -1538,8 +1528,24 @@
1538
1528
  }
1539
1529
  ]
1540
1530
  },
1531
+ "createUpdaterArtifacts": {
1532
+ "description": "Produce updaters and their signatures or not",
1533
+ "default": false,
1534
+ "allOf": [
1535
+ {
1536
+ "$ref": "#/definitions/Updater"
1537
+ }
1538
+ ]
1539
+ },
1541
1540
  "publisher": {
1542
- "description": "The application's publisher. Defaults to the second element in the identifier string. Currently maps to the Manufacturer property of the Windows Installer.",
1541
+ "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.",
1542
+ "type": [
1543
+ "string",
1544
+ "null"
1545
+ ]
1546
+ },
1547
+ "homepage": {
1548
+ "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`.",
1543
1549
  "type": [
1544
1550
  "string",
1545
1551
  "null"
@@ -1554,7 +1560,7 @@
1554
1560
  }
1555
1561
  },
1556
1562
  "resources": {
1557
- "description": "App resources to bundle. Each resource is a path to a file or directory. Glob patterns are supported.",
1563
+ "description": "App resources to bundle.\n Each resource is a path to a file or directory.\n Glob patterns are supported.",
1558
1564
  "anyOf": [
1559
1565
  {
1560
1566
  "$ref": "#/definitions/BundleResources"
@@ -1572,7 +1578,7 @@
1572
1578
  ]
1573
1579
  },
1574
1580
  "license": {
1575
- "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.",
1581
+ "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.",
1576
1582
  "type": [
1577
1583
  "string",
1578
1584
  "null"
@@ -1586,7 +1592,7 @@
1586
1592
  ]
1587
1593
  },
1588
1594
  "category": {
1589
- "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.",
1595
+ "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.",
1590
1596
  "type": [
1591
1597
  "string",
1592
1598
  "null"
@@ -1617,7 +1623,7 @@
1617
1623
  ]
1618
1624
  },
1619
1625
  "externalBin": {
1620
- "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.",
1626
+ "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.",
1621
1627
  "type": [
1622
1628
  "array",
1623
1629
  "null"
@@ -1633,6 +1639,7 @@
1633
1639
  "certificateThumbprint": null,
1634
1640
  "digestAlgorithm": null,
1635
1641
  "nsis": null,
1642
+ "signCommand": null,
1636
1643
  "timestampUrl": null,
1637
1644
  "tsp": false,
1638
1645
  "webviewFixedRuntimePath": null,
@@ -1688,6 +1695,7 @@
1688
1695
  }
1689
1696
  },
1690
1697
  "files": {},
1698
+ "hardenedRuntime": true,
1691
1699
  "minimumSystemVersion": "10.13"
1692
1700
  },
1693
1701
  "allOf": [
@@ -1796,18 +1804,40 @@
1796
1804
  "enum": [
1797
1805
  "dmg"
1798
1806
  ]
1807
+ }
1808
+ ]
1809
+ },
1810
+ "Updater": {
1811
+ "description": "Updater type",
1812
+ "anyOf": [
1813
+ {
1814
+ "description": "Generates lagacy zipped v1 compatible updaters",
1815
+ "allOf": [
1816
+ {
1817
+ "$ref": "#/definitions/V1Compatible"
1818
+ }
1819
+ ]
1799
1820
  },
1800
1821
  {
1801
- "description": "The Tauri updater bundle.",
1822
+ "description": "Produce updaters and their signatures or not",
1823
+ "type": "boolean"
1824
+ }
1825
+ ]
1826
+ },
1827
+ "V1Compatible": {
1828
+ "description": "Generates lagacy zipped v1 compatible updaters",
1829
+ "oneOf": [
1830
+ {
1831
+ "description": "Generates lagacy zipped v1 compatible updaters",
1802
1832
  "type": "string",
1803
1833
  "enum": [
1804
- "updater"
1834
+ "v1Compatible"
1805
1835
  ]
1806
1836
  }
1807
1837
  ]
1808
1838
  },
1809
1839
  "BundleResources": {
1810
- "description": "Definition for bundle resources. Can be either a list of paths to include or a map of source to target paths.",
1840
+ "description": "Definition for bundle resources.\n Can be either a list of paths to include or a map of source to target paths.",
1811
1841
  "anyOf": [
1812
1842
  {
1813
1843
  "description": "A list of paths to include.",
@@ -1873,7 +1903,7 @@
1873
1903
  "additionalProperties": false
1874
1904
  },
1875
1905
  "AssociationExt": {
1876
- "description": "An extension for a [`FileAssociation`].\n\nA leading `.` is automatically stripped.",
1906
+ "description": "An extension for a [`FileAssociation`].\n\n A leading `.` is automatically stripped.",
1877
1907
  "type": "string"
1878
1908
  },
1879
1909
  "BundleTypeRole": {
@@ -1917,11 +1947,11 @@
1917
1947
  ]
1918
1948
  },
1919
1949
  "WindowsConfig": {
1920
- "description": "Windows bundler configuration.\n\nSee more: <https://tauri.app/v1/api/config#windowsconfig>",
1950
+ "description": "Windows bundler configuration.\n\n See more: <https://tauri.app/v1/api/config#windowsconfig>",
1921
1951
  "type": "object",
1922
1952
  "properties": {
1923
1953
  "digestAlgorithm": {
1924
- "description": "Specifies the file digest algorithm to use for creating file signatures. Required for code signing. SHA-256 is recommended.",
1954
+ "description": "Specifies the file digest algorithm to use for creating file signatures.\n Required for code signing. SHA-256 is recommended.",
1925
1955
  "type": [
1926
1956
  "string",
1927
1957
  "null"
@@ -1942,7 +1972,7 @@
1942
1972
  ]
1943
1973
  },
1944
1974
  "tsp": {
1945
- "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.",
1975
+ "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.",
1946
1976
  "default": false,
1947
1977
  "type": "boolean"
1948
1978
  },
@@ -1959,14 +1989,14 @@
1959
1989
  ]
1960
1990
  },
1961
1991
  "webviewFixedRuntimePath": {
1962
- "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.",
1992
+ "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.",
1963
1993
  "type": [
1964
1994
  "string",
1965
1995
  "null"
1966
1996
  ]
1967
1997
  },
1968
1998
  "allowDowngrades": {
1969
- "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`.",
1999
+ "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`.",
1970
2000
  "default": true,
1971
2001
  "type": "boolean"
1972
2002
  },
@@ -1991,12 +2021,19 @@
1991
2021
  "type": "null"
1992
2022
  }
1993
2023
  ]
2024
+ },
2025
+ "signCommand": {
2026
+ "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`.",
2027
+ "type": [
2028
+ "string",
2029
+ "null"
2030
+ ]
1994
2031
  }
1995
2032
  },
1996
2033
  "additionalProperties": false
1997
2034
  },
1998
2035
  "WebviewInstallMode": {
1999
- "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>.",
2036
+ "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>.",
2000
2037
  "oneOf": [
2001
2038
  {
2002
2039
  "description": "Do not install the Webview2 as part of the Windows Installer.",
@@ -2015,7 +2052,7 @@
2015
2052
  "additionalProperties": false
2016
2053
  },
2017
2054
  {
2018
- "description": "Download the bootstrapper and run it. Requires an internet connection. Results in a smaller installer size, but is not recommended on Windows 7.",
2055
+ "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.",
2019
2056
  "type": "object",
2020
2057
  "required": [
2021
2058
  "type"
@@ -2036,7 +2073,7 @@
2036
2073
  "additionalProperties": false
2037
2074
  },
2038
2075
  {
2039
- "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.",
2076
+ "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.",
2040
2077
  "type": "object",
2041
2078
  "required": [
2042
2079
  "type"
@@ -2057,7 +2094,7 @@
2057
2094
  "additionalProperties": false
2058
2095
  },
2059
2096
  {
2060
- "description": "Embed the offline installer and run it. Does not require an internet connection. Increases the installer size by around 127MB.",
2097
+ "description": "Embed the offline installer and run it.\n Does not require an internet connection.\n Increases the installer size by around 127MB.",
2061
2098
  "type": "object",
2062
2099
  "required": [
2063
2100
  "type"
@@ -2078,7 +2115,7 @@
2078
2115
  "additionalProperties": false
2079
2116
  },
2080
2117
  {
2081
- "description": "Embed a fixed webview2 version and use it at runtime. Increases the installer size by around 180MB.",
2118
+ "description": "Embed a fixed webview2 version and use it at runtime.\n Increases the installer size by around 180MB.",
2082
2119
  "type": "object",
2083
2120
  "required": [
2084
2121
  "path",
@@ -2092,7 +2129,7 @@
2092
2129
  ]
2093
2130
  },
2094
2131
  "path": {
2095
- "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.",
2132
+ "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.",
2096
2133
  "type": "string"
2097
2134
  }
2098
2135
  },
@@ -2101,7 +2138,7 @@
2101
2138
  ]
2102
2139
  },
2103
2140
  "WixConfig": {
2104
- "description": "Configuration for the MSI bundle using WiX.\n\nSee more: <https://tauri.app/v1/api/config#wixconfig>",
2141
+ "description": "Configuration for the MSI bundle using WiX.\n\n See more: <https://tauri.app/v1/api/config#wixconfig>",
2105
2142
  "type": "object",
2106
2143
  "properties": {
2107
2144
  "language": {
@@ -2168,25 +2205,20 @@
2168
2205
  "type": "string"
2169
2206
  }
2170
2207
  },
2171
- "skipWebviewInstall": {
2172
- "description": "Disables the Webview2 runtime installation after app install.\n\nWill be removed in v2, prefer the [`WindowsConfig::webview_install_mode`] option.",
2173
- "default": false,
2174
- "type": "boolean"
2175
- },
2176
2208
  "enableElevatedUpdateTask": {
2177
2209
  "description": "Create an elevated update task within Windows Task Scheduler.",
2178
2210
  "default": false,
2179
2211
  "type": "boolean"
2180
2212
  },
2181
2213
  "bannerPath": {
2182
- "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.",
2214
+ "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.",
2183
2215
  "type": [
2184
2216
  "string",
2185
2217
  "null"
2186
2218
  ]
2187
2219
  },
2188
2220
  "dialogImagePath": {
2189
- "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.",
2221
+ "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.",
2190
2222
  "type": [
2191
2223
  "string",
2192
2224
  "null"
@@ -2219,7 +2251,7 @@
2219
2251
  ]
2220
2252
  },
2221
2253
  "WixLanguageConfig": {
2222
- "description": "Configuration for a target language for the WiX build.\n\nSee more: <https://tauri.app/v1/api/config#wixlanguageconfig>",
2254
+ "description": "Configuration for a target language for the WiX build.\n\n See more: <https://tauri.app/v1/api/config#wixlanguageconfig>",
2223
2255
  "type": "object",
2224
2256
  "properties": {
2225
2257
  "localePath": {
@@ -2244,14 +2276,14 @@
2244
2276
  ]
2245
2277
  },
2246
2278
  "headerImage": {
2247
- "description": "The path to a bitmap file to display on the header of installers pages.\n\nThe recommended dimensions are 150px x 57px.",
2279
+ "description": "The path to a bitmap file to display on the header of installers pages.\n\n The recommended dimensions are 150px x 57px.",
2248
2280
  "type": [
2249
2281
  "string",
2250
2282
  "null"
2251
2283
  ]
2252
2284
  },
2253
2285
  "sidebarImage": {
2254
- "description": "The path to a bitmap file for the Welcome page and the Finish page.\n\nThe recommended dimensions are 164px x 314px.",
2286
+ "description": "The path to a bitmap file for the Welcome page and the Finish page.\n\n The recommended dimensions are 164px x 314px.",
2255
2287
  "type": [
2256
2288
  "string",
2257
2289
  "null"
@@ -2274,7 +2306,7 @@
2274
2306
  ]
2275
2307
  },
2276
2308
  "languages": {
2277
- "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.",
2309
+ "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.",
2278
2310
  "type": [
2279
2311
  "array",
2280
2312
  "null"
@@ -2284,7 +2316,7 @@
2284
2316
  }
2285
2317
  },
2286
2318
  "customLanguageFiles": {
2287
- "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,",
2319
+ "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,",
2288
2320
  "type": [
2289
2321
  "object",
2290
2322
  "null"
@@ -2294,20 +2326,32 @@
2294
2326
  }
2295
2327
  },
2296
2328
  "displayLanguageSelector": {
2297
- "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.",
2329
+ "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.",
2298
2330
  "default": false,
2299
2331
  "type": "boolean"
2300
2332
  },
2301
2333
  "compression": {
2302
- "description": "Set the compression algorithm used to compress files in the installer.\n\nSee <https://nsis.sourceforge.io/Reference/SetCompressor>",
2303
- "anyOf": [
2334
+ "description": "Set the compression algorithm used to compress files in the installer.\n\n See <https://nsis.sourceforge.io/Reference/SetCompressor>",
2335
+ "default": "lzma",
2336
+ "allOf": [
2304
2337
  {
2305
2338
  "$ref": "#/definitions/NsisCompression"
2306
- },
2307
- {
2308
- "type": "null"
2309
2339
  }
2310
2340
  ]
2341
+ },
2342
+ "startMenuFolder": {
2343
+ "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`",
2344
+ "type": [
2345
+ "string",
2346
+ "null"
2347
+ ]
2348
+ },
2349
+ "installerHooks": {
2350
+ "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 !define NSIS_HOOK_PREINSTALL \"NSIS_HOOK_PREINSTALL_\"\n !macro NSIS_HOOK_PREINSTALL_\n MessageBox MB_OK \"PreInstall\"\n !macroend\n\n !define NSIS_HOOK_POSTINSTALL \"NSIS_HOOK_POSTINSTALL_\"\n !macro NSIS_HOOK_POSTINSTALL_\n MessageBox MB_OK \"PostInstall\"\n !macroend\n\n !define NSIS_HOOK_PREUNINSTALL \"NSIS_HOOK_PREUNINSTALL_\"\n !macro NSIS_HOOK_PREUNINSTALL_\n MessageBox MB_OK \"PreUnInstall\"\n !macroend\n\n !define NSIS_HOOK_POSTUNINSTALL \"NSIS_HOOK_POSTUNINSTALL_\"\n !macro NSIS_HOOK_POSTUNINSTALL_\n MessageBox MB_OK \"PostUninstall\"\n !macroend\n\n ```",
2351
+ "type": [
2352
+ "string",
2353
+ "null"
2354
+ ]
2311
2355
  }
2312
2356
  },
2313
2357
  "additionalProperties": false
@@ -2316,21 +2360,21 @@
2316
2360
  "description": "Install Modes for the NSIS installer.",
2317
2361
  "oneOf": [
2318
2362
  {
2319
- "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.",
2363
+ "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.",
2320
2364
  "type": "string",
2321
2365
  "enum": [
2322
2366
  "currentUser"
2323
2367
  ]
2324
2368
  },
2325
2369
  {
2326
- "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.",
2370
+ "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.",
2327
2371
  "type": "string",
2328
2372
  "enum": [
2329
2373
  "perMachine"
2330
2374
  ]
2331
2375
  },
2332
2376
  {
2333
- "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.",
2377
+ "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.",
2334
2378
  "type": "string",
2335
2379
  "enum": [
2336
2380
  "both"
@@ -2339,7 +2383,7 @@
2339
2383
  ]
2340
2384
  },
2341
2385
  "NsisCompression": {
2342
- "description": "Compression algorithms used in the NSIS installer.\n\nSee <https://nsis.sourceforge.io/Reference/SetCompressor>",
2386
+ "description": "Compression algorithms used in the NSIS installer.\n\n See <https://nsis.sourceforge.io/Reference/SetCompressor>",
2343
2387
  "oneOf": [
2344
2388
  {
2345
2389
  "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.",
@@ -2361,11 +2405,18 @@
2361
2405
  "enum": [
2362
2406
  "lzma"
2363
2407
  ]
2408
+ },
2409
+ {
2410
+ "description": "Disable compression",
2411
+ "type": "string",
2412
+ "enum": [
2413
+ "none"
2414
+ ]
2364
2415
  }
2365
2416
  ]
2366
2417
  },
2367
2418
  "LinuxConfig": {
2368
- "description": "Configuration for Linux bundles.\n\nSee more: <https://tauri.app/v1/api/config#linuxconfig>",
2419
+ "description": "Configuration for Linux bundles.\n\n See more: <https://tauri.app/v1/api/config#linuxconfig>",
2369
2420
  "type": "object",
2370
2421
  "properties": {
2371
2422
  "appimage": {
@@ -2408,11 +2459,11 @@
2408
2459
  "additionalProperties": false
2409
2460
  },
2410
2461
  "AppImageConfig": {
2411
- "description": "Configuration for AppImage bundles.\n\nSee more: <https://tauri.app/v1/api/config#appimageconfig>",
2462
+ "description": "Configuration for AppImage bundles.\n\n See more: <https://tauri.app/v1/api/config#appimageconfig>",
2412
2463
  "type": "object",
2413
2464
  "properties": {
2414
2465
  "bundleMediaFramework": {
2415
- "description": "Include additional gstreamer dependencies needed for audio and video playback. This increases the bundle size by ~15-35MB depending on your build system.",
2466
+ "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.",
2416
2467
  "default": false,
2417
2468
  "type": "boolean"
2418
2469
  },
@@ -2428,7 +2479,7 @@
2428
2479
  "additionalProperties": false
2429
2480
  },
2430
2481
  "DebConfig": {
2431
- "description": "Configuration for Debian (.deb) bundles.\n\nSee more: <https://tauri.app/v1/api/config#debconfig>",
2482
+ "description": "Configuration for Debian (.deb) bundles.\n\n See more: <https://tauri.app/v1/api/config#debconfig>",
2432
2483
  "type": "object",
2433
2484
  "properties": {
2434
2485
  "depends": {
@@ -2441,6 +2492,36 @@
2441
2492
  "type": "string"
2442
2493
  }
2443
2494
  },
2495
+ "provides": {
2496
+ "description": "The list of dependencies the package provides.",
2497
+ "type": [
2498
+ "array",
2499
+ "null"
2500
+ ],
2501
+ "items": {
2502
+ "type": "string"
2503
+ }
2504
+ },
2505
+ "conflicts": {
2506
+ "description": "The list of package conflicts.",
2507
+ "type": [
2508
+ "array",
2509
+ "null"
2510
+ ],
2511
+ "items": {
2512
+ "type": "string"
2513
+ }
2514
+ },
2515
+ "replaces": {
2516
+ "description": "The list of package replaces.",
2517
+ "type": [
2518
+ "array",
2519
+ "null"
2520
+ ],
2521
+ "items": {
2522
+ "type": "string"
2523
+ }
2524
+ },
2444
2525
  "files": {
2445
2526
  "description": "The files to include on the package.",
2446
2527
  "default": {},
@@ -2449,29 +2530,57 @@
2449
2530
  "type": "string"
2450
2531
  }
2451
2532
  },
2533
+ "section": {
2534
+ "description": "Define the section in Debian Control file. See : https://www.debian.org/doc/debian-policy/ch-archive.html#s-subsections",
2535
+ "type": [
2536
+ "string",
2537
+ "null"
2538
+ ]
2539
+ },
2540
+ "priority": {
2541
+ "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`",
2542
+ "type": [
2543
+ "string",
2544
+ "null"
2545
+ ]
2546
+ },
2547
+ "changelog": {
2548
+ "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",
2549
+ "type": [
2550
+ "string",
2551
+ "null"
2552
+ ]
2553
+ },
2452
2554
  "desktopTemplate": {
2453
- "description": "Path to a custom desktop file Handlebars template.\n\nAvailable variables: `categories`, `comment` (optional), `exec`, `icon` and `name`.",
2555
+ "description": "Path to a custom desktop file Handlebars template.\n\n Available variables: `categories`, `comment` (optional), `exec`, `icon` and `name`.",
2454
2556
  "type": [
2455
2557
  "string",
2456
2558
  "null"
2457
2559
  ]
2458
2560
  },
2459
- "section": {
2460
- "description": "Define the section in Debian Control file. See : https://www.debian.org/doc/debian-policy/ch-archive.html#s-subsections",
2561
+ "preInstallScript": {
2562
+ "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",
2461
2563
  "type": [
2462
2564
  "string",
2463
2565
  "null"
2464
2566
  ]
2465
2567
  },
2466
- "priority": {
2467
- "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`",
2568
+ "postInstallScript": {
2569
+ "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",
2468
2570
  "type": [
2469
2571
  "string",
2470
2572
  "null"
2471
2573
  ]
2472
2574
  },
2473
- "changelog": {
2474
- "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",
2575
+ "preRemoveScript": {
2576
+ "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",
2577
+ "type": [
2578
+ "string",
2579
+ "null"
2580
+ ]
2581
+ },
2582
+ "postRemoveScript": {
2583
+ "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",
2475
2584
  "type": [
2476
2585
  "string",
2477
2586
  "null"
@@ -2494,6 +2603,36 @@
2494
2603
  "type": "string"
2495
2604
  }
2496
2605
  },
2606
+ "provides": {
2607
+ "description": "The list of RPM dependencies your application provides.",
2608
+ "type": [
2609
+ "array",
2610
+ "null"
2611
+ ],
2612
+ "items": {
2613
+ "type": "string"
2614
+ }
2615
+ },
2616
+ "conflicts": {
2617
+ "description": "The list of RPM dependencies your application conflicts with. They must not be present\n in order for the package to be installed.",
2618
+ "type": [
2619
+ "array",
2620
+ "null"
2621
+ ],
2622
+ "items": {
2623
+ "type": "string"
2624
+ }
2625
+ },
2626
+ "obsoletes": {
2627
+ "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).",
2628
+ "type": [
2629
+ "array",
2630
+ "null"
2631
+ ],
2632
+ "items": {
2633
+ "type": "string"
2634
+ }
2635
+ },
2497
2636
  "release": {
2498
2637
  "description": "The RPM release tag.",
2499
2638
  "default": "1",
@@ -2515,7 +2654,35 @@
2515
2654
  }
2516
2655
  },
2517
2656
  "desktopTemplate": {
2518
- "description": "Path to a custom desktop file Handlebars template.\n\nAvailable variables: `categories`, `comment` (optional), `exec`, `icon` and `name`.",
2657
+ "description": "Path to a custom desktop file Handlebars template.\n\n Available variables: `categories`, `comment` (optional), `exec`, `icon` and `name`.",
2658
+ "type": [
2659
+ "string",
2660
+ "null"
2661
+ ]
2662
+ },
2663
+ "preInstallScript": {
2664
+ "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",
2665
+ "type": [
2666
+ "string",
2667
+ "null"
2668
+ ]
2669
+ },
2670
+ "postInstallScript": {
2671
+ "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",
2672
+ "type": [
2673
+ "string",
2674
+ "null"
2675
+ ]
2676
+ },
2677
+ "preRemoveScript": {
2678
+ "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",
2679
+ "type": [
2680
+ "string",
2681
+ "null"
2682
+ ]
2683
+ },
2684
+ "postRemoveScript": {
2685
+ "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",
2519
2686
  "type": [
2520
2687
  "string",
2521
2688
  "null"
@@ -2525,11 +2692,11 @@
2525
2692
  "additionalProperties": false
2526
2693
  },
2527
2694
  "MacConfig": {
2528
- "description": "Configuration for the macOS bundles.\n\nSee more: <https://tauri.app/v1/api/config#macconfig>",
2695
+ "description": "Configuration for the macOS bundles.\n\n See more: <https://tauri.app/v1/api/config#macconfig>",
2529
2696
  "type": "object",
2530
2697
  "properties": {
2531
2698
  "frameworks": {
2532
- "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.",
2699
+ "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.",
2533
2700
  "type": [
2534
2701
  "array",
2535
2702
  "null"
@@ -2547,7 +2714,7 @@
2547
2714
  }
2548
2715
  },
2549
2716
  "minimumSystemVersion": {
2550
- "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.",
2717
+ "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.",
2551
2718
  "default": "10.13",
2552
2719
  "type": [
2553
2720
  "string",
@@ -2555,7 +2722,7 @@
2555
2722
  ]
2556
2723
  },
2557
2724
  "exceptionDomain": {
2558
- "description": "Allows your application to communicate with the outside world. It should be a lowercase, without port and protocol domain name.",
2725
+ "description": "Allows your application to communicate with the outside world.\n It should be a lowercase, without port and protocol domain name.",
2559
2726
  "type": [
2560
2727
  "string",
2561
2728
  "null"
@@ -2568,6 +2735,11 @@
2568
2735
  "null"
2569
2736
  ]
2570
2737
  },
2738
+ "hardenedRuntime": {
2739
+ "description": "Whether the codesign should enable [hardened runtime] (for executables) or not.\n\n [hardened runtime]: <https://developer.apple.com/documentation/security/hardened_runtime>",
2740
+ "default": true,
2741
+ "type": "boolean"
2742
+ },
2571
2743
  "providerShortName": {
2572
2744
  "description": "Provider short name for notarization.",
2573
2745
  "type": [
@@ -2608,7 +2780,7 @@
2608
2780
  "additionalProperties": false
2609
2781
  },
2610
2782
  "DmgConfig": {
2611
- "description": "Configuration for Apple Disk Image (.dmg) bundles.\n\nSee more: <https://tauri.app/v1/api/config#dmgconfig>",
2783
+ "description": "Configuration for Apple Disk Image (.dmg) bundles.\n\n See more: <https://tauri.app/v1/api/config#dmgconfig>",
2612
2784
  "type": "object",
2613
2785
  "properties": {
2614
2786
  "background": {
@@ -2719,7 +2891,7 @@
2719
2891
  "type": "object",
2720
2892
  "properties": {
2721
2893
  "developmentTeam": {
2722
- "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.",
2894
+ "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.",
2723
2895
  "type": [
2724
2896
  "string",
2725
2897
  "null"
@@ -2733,17 +2905,27 @@
2733
2905
  "type": "object",
2734
2906
  "properties": {
2735
2907
  "minSdkVersion": {
2736
- "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.",
2908
+ "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.",
2737
2909
  "default": 24,
2738
2910
  "type": "integer",
2739
2911
  "format": "uint32",
2740
2912
  "minimum": 0.0
2913
+ },
2914
+ "versionCode": {
2915
+ "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",
2916
+ "type": [
2917
+ "integer",
2918
+ "null"
2919
+ ],
2920
+ "format": "uint32",
2921
+ "maximum": 2100000000.0,
2922
+ "minimum": 1.0
2741
2923
  }
2742
2924
  },
2743
2925
  "additionalProperties": false
2744
2926
  },
2745
2927
  "PluginConfig": {
2746
- "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>",
2928
+ "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>",
2747
2929
  "type": "object",
2748
2930
  "additionalProperties": true
2749
2931
  }