@tauri-apps/cli 2.0.3 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,39 @@
1
1
  # Changelog
2
2
 
3
+ ## \[2.1.0]
4
+
5
+ ### New Features
6
+
7
+ - [`6bf917941`](https://www.github.com/tauri-apps/tauri/commit/6bf917941ff0fcc49e86b3ba427340b75f3ce49c) ([#11322](https://www.github.com/tauri-apps/tauri/pull/11322) by [@ShaunSHamilton](https://www.github.com/tauri-apps/tauri/../../ShaunSHamilton)) Add `tauri remove` to remove plugins from projects.
8
+ - [`058c0db72`](https://www.github.com/tauri-apps/tauri/commit/058c0db72f43fbe1574d0db654560e693755cd7e) ([#11584](https://www.github.com/tauri-apps/tauri/pull/11584) by [@amrbashir](https://www.github.com/tauri-apps/tauri/../../amrbashir)) Add `bundle > linux > rpm > compression` config option to control RPM bundle compression type and level.
9
+
10
+ ### Enhancements
11
+
12
+ - [`1f311832a`](https://www.github.com/tauri-apps/tauri/commit/1f311832ab5b2d62a533dfcf9b1d78bddf249ae8) ([#11405](https://www.github.com/tauri-apps/tauri/pull/11405) by [@amrbashir](https://www.github.com/tauri-apps/tauri/../../amrbashir)) Add more context for errors when decoding secret and public keys for signing updater artifacts.
13
+ - [`e0d1307d3`](https://www.github.com/tauri-apps/tauri/commit/e0d1307d3f78987d0059921a5ab01ea4b26e0ef1) ([#11414](https://www.github.com/tauri-apps/tauri/pull/11414) by [@Czxck001](https://www.github.com/tauri-apps/tauri/../../Czxck001)) Migrate the `$schema` Tauri configuration to the v2 format.
14
+ - [`c43d5df15`](https://www.github.com/tauri-apps/tauri/commit/c43d5df15828ecffa606482ea2b60350c488c981) ([#11512](https://www.github.com/tauri-apps/tauri/pull/11512) by [@lucasfernog](https://www.github.com/tauri-apps/tauri/../../lucasfernog)) Associate a newly created capability file with the `main` window on the `tauri add` and `tauri permission add` commands.
15
+
16
+ ### Bug Fixes
17
+
18
+ - [`7af01ff2c`](https://www.github.com/tauri-apps/tauri/commit/7af01ff2ce623d727cd13a4c8a549c1c80031882) ([#11523](https://www.github.com/tauri-apps/tauri/pull/11523) by [@amrbashir](https://www.github.com/tauri-apps/tauri/../../amrbashir)) Fix `tauri migrate` failing to install NPM depenencies when running from Deno.
19
+ - [`100a4455a`](https://www.github.com/tauri-apps/tauri/commit/100a4455aa48df508510bbc08273215bdf70c012) ([#11529](https://www.github.com/tauri-apps/tauri/pull/11529) by [@amrbashir](https://www.github.com/tauri-apps/tauri/../../amrbashir)) Fix detecting yarn berry (v2 and higher) in various tauri cli commands.
20
+ - [`60e86d5f6`](https://www.github.com/tauri-apps/tauri/commit/60e86d5f6e0f0c769d34ef368cd8801a918d796d) ([#11624](https://www.github.com/tauri-apps/tauri/pull/11624) by [@lucasfernog](https://www.github.com/tauri-apps/tauri/../../lucasfernog)) Use the public network IP address on `android dev` by default on Windows.
21
+
22
+ ### Dependencies
23
+
24
+ - Upgraded to `tauri-cli@2.1.0`
25
+
26
+ ## \[2.0.4]
27
+
28
+ ### Enhancements
29
+
30
+ - [`e4c9268b1`](https://www.github.com/tauri-apps/tauri/commit/e4c9268b19c614dc9ebb0895448fd16de7efee80) ([#11258](https://www.github.com/tauri-apps/tauri/pull/11258) by [@regexident](https://www.github.com/tauri-apps/tauri/../../regexident)) Support custom project directory structure where the Tauri app folder is not a subfolder of the frontend project.
31
+ The frontend and Tauri app project paths can be set with the `TAURI_FRONTEND_PATH` and the `TAURI_APP_PATH` environment variables respectively.
32
+
33
+ ### Dependencies
34
+
35
+ - Upgraded to `tauri-cli@2.0.4`
36
+
3
37
  ## \[2.0.3]
4
38
 
5
39
  ### New Features
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "http://json-schema.org/draft-07/schema#",
3
- "$id": "https://schema.tauri.app/config/2.0.3",
3
+ "$id": "https://schema.tauri.app/config/2.1.0",
4
4
  "title": "Config",
5
5
  "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://v2.tauri.app/reference/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 Example tauri.config.json file:\n\n ```json\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 ```",
6
6
  "type": "object",
@@ -397,6 +397,13 @@
397
397
  "default": false,
398
398
  "type": "boolean"
399
399
  },
400
+ "windowClassname": {
401
+ "description": "The name of the window class created on Windows to create the window. **Windows only**.",
402
+ "type": [
403
+ "string",
404
+ "null"
405
+ ]
406
+ },
400
407
  "theme": {
401
408
  "description": "The initial window theme. Defaults to the system theme. Only implemented on Windows and macOS 10.14+.",
402
409
  "anyOf": [
@@ -486,6 +493,29 @@
486
493
  "description": "Whether browser extensions can be installed for the webview process\n\n ## Platform-specific:\n\n - **Windows**: Enables the WebView2 environment's [`AreBrowserExtensionsEnabled`](https://learn.microsoft.com/en-us/microsoft-edge/webview2/reference/winrt/microsoft_web_webview2_core/corewebview2environmentoptions?view=webview2-winrt-1.0.2739.15#arebrowserextensionsenabled)\n - **MacOS / Linux / iOS / Android** - Unsupported.",
487
494
  "default": false,
488
495
  "type": "boolean"
496
+ },
497
+ "useHttpsScheme": {
498
+ "description": "Sets whether the custom protocols should use `https://<scheme>.localhost` instead of the default `http://<scheme>.localhost` on Windows and Android. Defaults to `false`.\n\n ## Note\n\n Using a `https` scheme will NOT allow mixed content when trying to fetch `http` endpoints and therefore will not match the behavior of the `<scheme>://localhost` protocols used on macOS and Linux.\n\n ## Warning\n\n Changing this value between releases will change the IndexedDB, cookies and localstorage location and your app will not be able to access the old data.",
499
+ "default": false,
500
+ "type": "boolean"
501
+ },
502
+ "devtools": {
503
+ "description": "Enable web inspector which is usually called browser devtools. Enabled by default.\n\n This API works in **debug** builds, but requires `devtools` feature flag to enable it in **release** builds.\n\n ## Platform-specific\n\n - macOS: This will call private functions on **macOS**.\n - Android: Open `chrome://inspect/#devices` in Chrome to get the devtools window. Wry's `WebView` devtools API isn't supported on Android.\n - iOS: Open Safari > Develop > [Your Device Name] > [Your WebView] to get the devtools window.",
504
+ "type": [
505
+ "boolean",
506
+ "null"
507
+ ]
508
+ },
509
+ "backgroundColor": {
510
+ "description": "Set the window and webview background color.\n\n ## Platform-specific:\n\n - **Windows**: alpha channel is ignored for the window layer.\n - **Windows**: On Windows 7, alpha channel is ignored for the webview layer.\n - **Windows**: On Windows 8 and newer, if alpha channel is not `0`, it will be ignored for the webview layer.",
511
+ "anyOf": [
512
+ {
513
+ "$ref": "#/definitions/Color"
514
+ },
515
+ {
516
+ "type": "null"
517
+ }
518
+ ]
489
519
  }
490
520
  },
491
521
  "additionalProperties": false
@@ -827,32 +857,96 @@
827
857
  ]
828
858
  },
829
859
  "Color": {
830
- "description": "a tuple struct of RGBA colors. Each value has minimum of 0 and maximum of 255.",
831
- "type": "array",
832
- "items": [
860
+ "anyOf": [
833
861
  {
834
- "type": "integer",
835
- "format": "uint8",
836
- "minimum": 0.0
862
+ "description": "Color hex string, for example: #fff, #ffffff, or #ffffffff.",
863
+ "type": "string",
864
+ "pattern": "^#?([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{8})$"
837
865
  },
838
866
  {
839
- "type": "integer",
840
- "format": "uint8",
841
- "minimum": 0.0
867
+ "description": "Array of RGB colors. Each value has minimum of 0 and maximum of 255.",
868
+ "type": "array",
869
+ "items": [
870
+ {
871
+ "type": "integer",
872
+ "format": "uint8",
873
+ "minimum": 0.0
874
+ },
875
+ {
876
+ "type": "integer",
877
+ "format": "uint8",
878
+ "minimum": 0.0
879
+ },
880
+ {
881
+ "type": "integer",
882
+ "format": "uint8",
883
+ "minimum": 0.0
884
+ }
885
+ ],
886
+ "maxItems": 3,
887
+ "minItems": 3
842
888
  },
843
889
  {
844
- "type": "integer",
845
- "format": "uint8",
846
- "minimum": 0.0
890
+ "description": "Array of RGBA colors. Each value has minimum of 0 and maximum of 255.",
891
+ "type": "array",
892
+ "items": [
893
+ {
894
+ "type": "integer",
895
+ "format": "uint8",
896
+ "minimum": 0.0
897
+ },
898
+ {
899
+ "type": "integer",
900
+ "format": "uint8",
901
+ "minimum": 0.0
902
+ },
903
+ {
904
+ "type": "integer",
905
+ "format": "uint8",
906
+ "minimum": 0.0
907
+ },
908
+ {
909
+ "type": "integer",
910
+ "format": "uint8",
911
+ "minimum": 0.0
912
+ }
913
+ ],
914
+ "maxItems": 4,
915
+ "minItems": 4
847
916
  },
848
917
  {
849
- "type": "integer",
850
- "format": "uint8",
851
- "minimum": 0.0
918
+ "description": "Object of red, green, blue, alpha color values. Each value has minimum of 0 and maximum of 255.",
919
+ "type": "object",
920
+ "required": [
921
+ "blue",
922
+ "green",
923
+ "red"
924
+ ],
925
+ "properties": {
926
+ "red": {
927
+ "type": "integer",
928
+ "format": "uint8",
929
+ "minimum": 0.0
930
+ },
931
+ "green": {
932
+ "type": "integer",
933
+ "format": "uint8",
934
+ "minimum": 0.0
935
+ },
936
+ "blue": {
937
+ "type": "integer",
938
+ "format": "uint8",
939
+ "minimum": 0.0
940
+ },
941
+ "alpha": {
942
+ "default": 255,
943
+ "type": "integer",
944
+ "format": "uint8",
945
+ "minimum": 0.0
946
+ }
947
+ }
852
948
  }
853
- ],
854
- "maxItems": 4,
855
- "minItems": 4
949
+ ]
856
950
  },
857
951
  "SecurityConfig": {
858
952
  "description": "Security configuration.\n\n See more: <https://v2.tauri.app/reference/config/#securityconfig>",
@@ -924,6 +1018,17 @@
924
1018
  "items": {
925
1019
  "$ref": "#/definitions/CapabilityEntry"
926
1020
  }
1021
+ },
1022
+ "headers": {
1023
+ "description": "The headers, which are added to every http response from tauri to the web view\n This doesn't include IPC Messages and error responses",
1024
+ "anyOf": [
1025
+ {
1026
+ "$ref": "#/definitions/HeaderConfig"
1027
+ },
1028
+ {
1029
+ "type": "null"
1030
+ }
1031
+ ]
927
1032
  }
928
1033
  },
929
1034
  "additionalProperties": false
@@ -1104,7 +1209,7 @@
1104
1209
  ]
1105
1210
  },
1106
1211
  "Capability": {
1107
- "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 ```",
1212
+ "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 ],\n \"platforms\": [\"macOS\",\"windows\"]\n }\n ```",
1108
1213
  "type": "object",
1109
1214
  "required": [
1110
1215
  "identifier",
@@ -1151,7 +1256,7 @@
1151
1256
  }
1152
1257
  },
1153
1258
  "permissions": {
1154
- "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 ```",
1259
+ "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 ]\n ```",
1155
1260
  "type": "array",
1156
1261
  "items": {
1157
1262
  "$ref": "#/definitions/PermissionEntry"
@@ -1333,6 +1438,168 @@
1333
1438
  }
1334
1439
  ]
1335
1440
  },
1441
+ "HeaderConfig": {
1442
+ "description": "A struct, where the keys are some specific http header names.\n If the values to those keys are defined, then they will be send as part of a response message.\n This does not include error messages and ipc messages\n\n ## Example configuration\n ```javascript\n {\n //..\n app:{\n //..\n security: {\n headers: {\n \"Cross-Origin-Opener-Policy\": \"same-origin\",\n \"Cross-Origin-Embedder-Policy\": \"require-corp\",\n \"Timing-Allow-Origin\": [\n \"https://developer.mozilla.org\",\n \"https://example.com\",\n ],\n \"Access-Control-Expose-Headers\": \"Tauri-Custom-Header\",\n \"Tauri-Custom-Header\": {\n \"key1\": \"'value1' 'value2'\",\n \"key2\": \"'value3'\"\n }\n },\n csp: \"default-src 'self'; connect-src ipc: http://ipc.localhost\",\n }\n //..\n }\n //..\n }\n ```\n In this example `Cross-Origin-Opener-Policy` and `Cross-Origin-Embedder-Policy` are set to allow for the use of [`SharedArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer).\n The result is, that those headers are then set on every response sent via the `get_response` function in crates/tauri/src/protocol/tauri.rs.\n The Content-Security-Policy header is defined separately, because it is also handled separately.\n\n For the helloworld example, this config translates into those response headers:\n ```http\n access-control-allow-origin: http://tauri.localhost\n access-control-expose-headers: Tauri-Custom-Header\n content-security-policy: default-src 'self'; connect-src ipc: http://ipc.localhost; script-src 'self' 'sha256-Wjjrs6qinmnr+tOry8x8PPwI77eGpUFR3EEGZktjJNs='\n content-type: text/html\n cross-origin-embedder-policy: require-corp\n cross-origin-opener-policy: same-origin\n tauri-custom-header: key1 'value1' 'value2'; key2 'value3'\n timing-allow-origin: https://developer.mozilla.org, https://example.com\n ```\n Since the resulting header values are always 'string-like'. So depending on the what data type the HeaderSource is, they need to be converted.\n - `String`(JS/Rust): stay the same for the resulting header value\n - `Array`(JS)/`Vec\\<String\\>`(Rust): Item are joined by \", \" for the resulting header value\n - `Object`(JS)/ `Hashmap\\<String,String\\>`(Rust): Items are composed from: key + space + value. Item are then joined by \"; \" for the resulting header value",
1443
+ "type": "object",
1444
+ "properties": {
1445
+ "Access-Control-Allow-Credentials": {
1446
+ "description": "The Access-Control-Allow-Credentials response header tells browsers whether the\n server allows cross-origin HTTP requests to include credentials.\n\n See <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials>",
1447
+ "anyOf": [
1448
+ {
1449
+ "$ref": "#/definitions/HeaderSource"
1450
+ },
1451
+ {
1452
+ "type": "null"
1453
+ }
1454
+ ]
1455
+ },
1456
+ "Access-Control-Allow-Headers": {
1457
+ "description": "The Access-Control-Allow-Headers response header is used in response\n to a preflight request which includes the Access-Control-Request-Headers\n to indicate which HTTP headers can be used during the actual request.\n\n This header is required if the request has an Access-Control-Request-Headers header.\n\n See <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Headers>",
1458
+ "anyOf": [
1459
+ {
1460
+ "$ref": "#/definitions/HeaderSource"
1461
+ },
1462
+ {
1463
+ "type": "null"
1464
+ }
1465
+ ]
1466
+ },
1467
+ "Access-Control-Allow-Methods": {
1468
+ "description": "The Access-Control-Allow-Methods response header specifies one or more methods\n allowed when accessing a resource in response to a preflight request.\n\n See <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Methods>",
1469
+ "anyOf": [
1470
+ {
1471
+ "$ref": "#/definitions/HeaderSource"
1472
+ },
1473
+ {
1474
+ "type": "null"
1475
+ }
1476
+ ]
1477
+ },
1478
+ "Access-Control-Expose-Headers": {
1479
+ "description": "The Access-Control-Expose-Headers response header allows a server to indicate\n which response headers should be made available to scripts running in the browser,\n in response to a cross-origin request.\n\n See <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Expose-Headers>",
1480
+ "anyOf": [
1481
+ {
1482
+ "$ref": "#/definitions/HeaderSource"
1483
+ },
1484
+ {
1485
+ "type": "null"
1486
+ }
1487
+ ]
1488
+ },
1489
+ "Access-Control-Max-Age": {
1490
+ "description": "The Access-Control-Max-Age response header indicates how long the results of a\n preflight request (that is the information contained in the\n Access-Control-Allow-Methods and Access-Control-Allow-Headers headers) can\n be cached.\n\n See <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Max-Age>",
1491
+ "anyOf": [
1492
+ {
1493
+ "$ref": "#/definitions/HeaderSource"
1494
+ },
1495
+ {
1496
+ "type": "null"
1497
+ }
1498
+ ]
1499
+ },
1500
+ "Cross-Origin-Embedder-Policy": {
1501
+ "description": "The HTTP Cross-Origin-Embedder-Policy (COEP) response header configures embedding\n cross-origin resources into the document.\n\n See <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cross-Origin-Embedder-Policy>",
1502
+ "anyOf": [
1503
+ {
1504
+ "$ref": "#/definitions/HeaderSource"
1505
+ },
1506
+ {
1507
+ "type": "null"
1508
+ }
1509
+ ]
1510
+ },
1511
+ "Cross-Origin-Opener-Policy": {
1512
+ "description": "The HTTP Cross-Origin-Opener-Policy (COOP) response header allows you to ensure a\n top-level document does not share a browsing context group with cross-origin documents.\n COOP will process-isolate your document and potential attackers can't access your global\n object if they were to open it in a popup, preventing a set of cross-origin attacks dubbed XS-Leaks.\n\n See <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cross-Origin-Opener-Policy>",
1513
+ "anyOf": [
1514
+ {
1515
+ "$ref": "#/definitions/HeaderSource"
1516
+ },
1517
+ {
1518
+ "type": "null"
1519
+ }
1520
+ ]
1521
+ },
1522
+ "Cross-Origin-Resource-Policy": {
1523
+ "description": "The HTTP Cross-Origin-Resource-Policy response header conveys a desire that the\n browser blocks no-cors cross-origin/cross-site requests to the given resource.\n\n See <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cross-Origin-Resource-Policy>",
1524
+ "anyOf": [
1525
+ {
1526
+ "$ref": "#/definitions/HeaderSource"
1527
+ },
1528
+ {
1529
+ "type": "null"
1530
+ }
1531
+ ]
1532
+ },
1533
+ "Permissions-Policy": {
1534
+ "description": "The HTTP Permissions-Policy header provides a mechanism to allow and deny the\n use of browser features in a document or within any \\<iframe\\> elements in the document.\n\n See <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy>",
1535
+ "anyOf": [
1536
+ {
1537
+ "$ref": "#/definitions/HeaderSource"
1538
+ },
1539
+ {
1540
+ "type": "null"
1541
+ }
1542
+ ]
1543
+ },
1544
+ "Timing-Allow-Origin": {
1545
+ "description": "The Timing-Allow-Origin response header specifies origins that are allowed to see values\n of attributes retrieved via features of the Resource Timing API, which would otherwise be\n reported as zero due to cross-origin restrictions.\n\n See <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Timing-Allow-Origin>",
1546
+ "anyOf": [
1547
+ {
1548
+ "$ref": "#/definitions/HeaderSource"
1549
+ },
1550
+ {
1551
+ "type": "null"
1552
+ }
1553
+ ]
1554
+ },
1555
+ "X-Content-Type-Options": {
1556
+ "description": "The X-Content-Type-Options response HTTP header is a marker used by the server to indicate\n that the MIME types advertised in the Content-Type headers should be followed and not be\n changed. The header allows you to avoid MIME type sniffing by saying that the MIME types\n are deliberately configured.\n\n See <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options>",
1557
+ "anyOf": [
1558
+ {
1559
+ "$ref": "#/definitions/HeaderSource"
1560
+ },
1561
+ {
1562
+ "type": "null"
1563
+ }
1564
+ ]
1565
+ },
1566
+ "Tauri-Custom-Header": {
1567
+ "description": "A custom header field Tauri-Custom-Header, don't use it.\n Remember to set Access-Control-Expose-Headers accordingly\n\n **NOT INTENDED FOR PRODUCTION USE**",
1568
+ "anyOf": [
1569
+ {
1570
+ "$ref": "#/definitions/HeaderSource"
1571
+ },
1572
+ {
1573
+ "type": "null"
1574
+ }
1575
+ ]
1576
+ }
1577
+ },
1578
+ "additionalProperties": false
1579
+ },
1580
+ "HeaderSource": {
1581
+ "description": "definition of a header source\n\n The header value to a header name",
1582
+ "anyOf": [
1583
+ {
1584
+ "description": "string version of the header Value",
1585
+ "type": "string"
1586
+ },
1587
+ {
1588
+ "description": "list version of the header value. Item are joined by \",\" for the real header value",
1589
+ "type": "array",
1590
+ "items": {
1591
+ "type": "string"
1592
+ }
1593
+ },
1594
+ {
1595
+ "description": "(Rust struct | Json | JavaScript Object) equivalent of the header value. Items are composed from: key + space + value. Item are then joined by \";\" for the real header value",
1596
+ "type": "object",
1597
+ "additionalProperties": {
1598
+ "type": "string"
1599
+ }
1600
+ }
1601
+ ]
1602
+ },
1336
1603
  "TrayIconConfig": {
1337
1604
  "description": "Configuration for application tray icon.\n\n See more: <https://v2.tauri.app/reference/config/#trayiconconfig>",
1338
1605
  "type": "object",
@@ -2170,6 +2437,13 @@
2170
2437
  "description": "Configuration for the MSI bundle using WiX.\n\n See more: <https://v2.tauri.app/reference/config/#wixconfig>",
2171
2438
  "type": "object",
2172
2439
  "properties": {
2440
+ "version": {
2441
+ "description": "MSI installer version in the format `major.minor.patch.build` (build is optional).\n\n Because a valid version is required for MSI installer, it will be derived from [`Config::version`] if this field is not set.\n\n The first field is the major version and has a maximum value of 255. The second field is the minor version and has a maximum value of 255.\n The third and foruth fields have a maximum value of 65,535.\n\n See <https://learn.microsoft.com/en-us/windows/win32/msi/productversion> for more info.",
2442
+ "type": [
2443
+ "string",
2444
+ "null"
2445
+ ]
2446
+ },
2173
2447
  "upgradeCode": {
2174
2448
  "description": "A GUID upgrade code for MSI installer. This code **_must stay the same across all of your updates_**,\n otherwise, Windows will treat your update as a different app and your users will have duplicate versions of your app.\n\n By default, tauri generates this code by generating a Uuid v5 using the string `<productName>.exe.app.x64` in the DNS namespace.\n You can use Tauri's CLI to generate and print this code for you, run `tauri inspect wix-upgrade-code`.\n\n It is recommended that you set this value in your tauri config file to avoid accidental changes in your upgrade code\n whenever you want to change your product name.",
2175
2449
  "type": [
@@ -2567,6 +2841,16 @@
2567
2841
  "type": "string"
2568
2842
  }
2569
2843
  },
2844
+ "recommends": {
2845
+ "description": "The list of deb dependencies your application recommends.",
2846
+ "type": [
2847
+ "array",
2848
+ "null"
2849
+ ],
2850
+ "items": {
2851
+ "type": "string"
2852
+ }
2853
+ },
2570
2854
  "provides": {
2571
2855
  "description": "The list of dependencies the package provides.",
2572
2856
  "type": [
@@ -2678,6 +2962,16 @@
2678
2962
  "type": "string"
2679
2963
  }
2680
2964
  },
2965
+ "recommends": {
2966
+ "description": "The list of RPM dependencies your application recommends.",
2967
+ "type": [
2968
+ "array",
2969
+ "null"
2970
+ ],
2971
+ "items": {
2972
+ "type": "string"
2973
+ }
2974
+ },
2681
2975
  "provides": {
2682
2976
  "description": "The list of RPM dependencies your application provides.",
2683
2977
  "type": [
@@ -2762,10 +3056,133 @@
2762
3056
  "string",
2763
3057
  "null"
2764
3058
  ]
3059
+ },
3060
+ "compression": {
3061
+ "description": "Compression algorithm and level. Defaults to `Gzip` with level 6.",
3062
+ "anyOf": [
3063
+ {
3064
+ "$ref": "#/definitions/RpmCompression"
3065
+ },
3066
+ {
3067
+ "type": "null"
3068
+ }
3069
+ ]
2765
3070
  }
2766
3071
  },
2767
3072
  "additionalProperties": false
2768
3073
  },
3074
+ "RpmCompression": {
3075
+ "description": "Compression algorithms used when bundling RPM packages.",
3076
+ "oneOf": [
3077
+ {
3078
+ "description": "Gzip compression",
3079
+ "type": "object",
3080
+ "required": [
3081
+ "level",
3082
+ "type"
3083
+ ],
3084
+ "properties": {
3085
+ "type": {
3086
+ "type": "string",
3087
+ "enum": [
3088
+ "gzip"
3089
+ ]
3090
+ },
3091
+ "level": {
3092
+ "description": "Gzip compression level",
3093
+ "type": "integer",
3094
+ "format": "uint32",
3095
+ "minimum": 0.0
3096
+ }
3097
+ },
3098
+ "additionalProperties": false
3099
+ },
3100
+ {
3101
+ "description": "Zstd compression",
3102
+ "type": "object",
3103
+ "required": [
3104
+ "level",
3105
+ "type"
3106
+ ],
3107
+ "properties": {
3108
+ "type": {
3109
+ "type": "string",
3110
+ "enum": [
3111
+ "zstd"
3112
+ ]
3113
+ },
3114
+ "level": {
3115
+ "description": "Zstd compression level",
3116
+ "type": "integer",
3117
+ "format": "int32"
3118
+ }
3119
+ },
3120
+ "additionalProperties": false
3121
+ },
3122
+ {
3123
+ "description": "Xz compression",
3124
+ "type": "object",
3125
+ "required": [
3126
+ "level",
3127
+ "type"
3128
+ ],
3129
+ "properties": {
3130
+ "type": {
3131
+ "type": "string",
3132
+ "enum": [
3133
+ "xz"
3134
+ ]
3135
+ },
3136
+ "level": {
3137
+ "description": "Xz compression level",
3138
+ "type": "integer",
3139
+ "format": "uint32",
3140
+ "minimum": 0.0
3141
+ }
3142
+ },
3143
+ "additionalProperties": false
3144
+ },
3145
+ {
3146
+ "description": "Bzip2 compression",
3147
+ "type": "object",
3148
+ "required": [
3149
+ "level",
3150
+ "type"
3151
+ ],
3152
+ "properties": {
3153
+ "type": {
3154
+ "type": "string",
3155
+ "enum": [
3156
+ "bzip2"
3157
+ ]
3158
+ },
3159
+ "level": {
3160
+ "description": "Bzip2 compression level",
3161
+ "type": "integer",
3162
+ "format": "uint32",
3163
+ "minimum": 0.0
3164
+ }
3165
+ },
3166
+ "additionalProperties": false
3167
+ },
3168
+ {
3169
+ "description": "Disable compression",
3170
+ "type": "object",
3171
+ "required": [
3172
+ "type"
3173
+ ],
3174
+ "properties": {
3175
+ "type": {
3176
+ "type": "string",
3177
+ "enum": [
3178
+ "none"
3179
+ ]
3180
+ }
3181
+ },
3182
+ "additionalProperties": false
3183
+ }
3184
+ ]
3185
+ },
2769
3186
  "MacConfig": {
2770
3187
  "description": "Configuration for the macOS bundles.\n\n See more: <https://v2.tauri.app/reference/config/#macconfig>",
2771
3188
  "type": "object",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tauri-apps/cli",
3
- "version": "2.0.3",
3
+ "version": "2.1.0",
4
4
  "description": "Command line interface for building Tauri apps",
5
5
  "funding": {
6
6
  "type": "opencollective",
@@ -62,15 +62,15 @@
62
62
  "tauri": "node ./tauri.js"
63
63
  },
64
64
  "optionalDependencies": {
65
- "@tauri-apps/cli-win32-x64-msvc": "2.0.3",
66
- "@tauri-apps/cli-darwin-x64": "2.0.3",
67
- "@tauri-apps/cli-linux-x64-gnu": "2.0.3",
68
- "@tauri-apps/cli-darwin-arm64": "2.0.3",
69
- "@tauri-apps/cli-linux-arm64-gnu": "2.0.3",
70
- "@tauri-apps/cli-linux-arm64-musl": "2.0.3",
71
- "@tauri-apps/cli-linux-arm-gnueabihf": "2.0.3",
72
- "@tauri-apps/cli-linux-x64-musl": "2.0.3",
73
- "@tauri-apps/cli-win32-ia32-msvc": "2.0.3",
74
- "@tauri-apps/cli-win32-arm64-msvc": "2.0.3"
65
+ "@tauri-apps/cli-win32-x64-msvc": "2.1.0",
66
+ "@tauri-apps/cli-darwin-x64": "2.1.0",
67
+ "@tauri-apps/cli-linux-x64-gnu": "2.1.0",
68
+ "@tauri-apps/cli-darwin-arm64": "2.1.0",
69
+ "@tauri-apps/cli-linux-arm64-gnu": "2.1.0",
70
+ "@tauri-apps/cli-linux-arm64-musl": "2.1.0",
71
+ "@tauri-apps/cli-linux-arm-gnueabihf": "2.1.0",
72
+ "@tauri-apps/cli-linux-x64-musl": "2.1.0",
73
+ "@tauri-apps/cli-win32-ia32-msvc": "2.1.0",
74
+ "@tauri-apps/cli-win32-arm64-msvc": "2.1.0"
75
75
  }
76
76
  }