@tauri-apps/cli 2.11.5 → 2.12.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 +100 -4
- package/config.schema.json +158 -26
- package/package.json +14 -14
- package/tauri.js +1 -1
- /package/{LICENSE_APACHE-2.0 → LICENSE-APACHE-2.0} +0 -0
- /package/{LICENSE_MIT → LICENSE-MIT} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,18 +1,114 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## [2.
|
|
3
|
+
## [2.12.0]
|
|
4
4
|
|
|
5
|
-
###
|
|
5
|
+
### New Features
|
|
6
6
|
|
|
7
|
-
- [`
|
|
7
|
+
- [`f6c1eb253`](https://www.github.com/tauri-apps/tauri/commit/f6c1eb2533a0445e081c334931d67fee3e354c6f) ([#15401](https://www.github.com/tauri-apps/tauri/pull/15401)) Added `bundle.windows.bundleVCRuntime` to copy the Visual C++ runtime DLLs into Windows MSI and NSIS installers. The bundler locates the runtime through `VCTOOLS_REDIST_DIR` or the bundled `vswhere.exe`.
|
|
8
|
+
- [`f76b1d3ae`](https://www.github.com/tauri-apps/tauri/commit/f76b1d3ae70d0ba0f0eba80b94b867593aa5ca8b) ([#15644](https://www.github.com/tauri-apps/tauri/pull/15644)) The bundler now prints the size of each generated bundle next to its path in the `Finished N bundles at:` output (directories such as macOS `.app` bundles are measured recursively).
|
|
9
|
+
- [`af465eae1`](https://www.github.com/tauri-apps/tauri/commit/af465eae1ad99d7b16b8fdbf9aa96bf76d6b9a76) ([#15619](https://www.github.com/tauri-apps/tauri/pull/15619)) Add a `--no-binary-patching` flag to `tauri build` and `tauri bundle`. When set, the bundler skips patching the main executable with bundle type information (and the subsequent re-signing), leaving an already-signed binary untouched. Patching is only required when shipping multiple bundle types per platform that should each update with their own installer format.
|
|
10
|
+
- [`0646cc162`](https://www.github.com/tauri-apps/tauri/commit/0646cc1623608dfdaec8d1adbc08d0159b9c2369) ([#15620](https://www.github.com/tauri-apps/tauri/pull/15620)) Add a `--fit` option to `tauri icon` to accept non-square source images. `--fit cover` center-crops the source to a square (clipping the longer side) and `--fit contain` pads the shorter side with transparency. Non-square sources without `--fit` keep erroring, now with a hint pointing to the flag.
|
|
11
|
+
- [`f6c1eb253`](https://www.github.com/tauri-apps/tauri/commit/f6c1eb2533a0445e081c334931d67fee3e354c6f) ([#15401](https://www.github.com/tauri-apps/tauri/pull/15401)) Added `build.windows.staticVCRuntime` to control MSVC static runtime linking. The `STATIC_VCRUNTIME` environment variable is now deprecated and emits a migration warning when used.
|
|
12
|
+
- [`f45ec0dcf`](https://www.github.com/tauri-apps/tauri/commit/f45ec0dcf83c139c8fdde5e61923a0e82836f756) Record the app version in the trusted comment of updater signatures, so a signed artifact is bound to the version it was released as.
|
|
8
13
|
|
|
9
14
|
An update endpoint response is not signed, and the signature only covers the downloaded artifact, so the announced `version` on its own does not prove which release the `url` and `signature` point at. minisign covers the trusted comment with its global signature, which lets the updater plugin compare the two and reject a response that pairs a version number with a different release. Enable `requireSignedVersion` in the updater plugin configuration to enforce this.
|
|
10
15
|
|
|
11
16
|
`tauri build` fills the version in automatically, and `tauri plugin add updater` now enables `requireSignedVersion` for the project it is adding the plugin to. `tauri signer sign` gains an `--app-version` flag for signing updater artifacts by hand, and warns when it is omitted.
|
|
12
17
|
|
|
18
|
+
### Enhancements
|
|
19
|
+
|
|
20
|
+
- [`e19121427`](https://www.github.com/tauri-apps/tauri/commit/e19121427332c8a14165999251cce415707a62fc) ([#15993](https://www.github.com/tauri-apps/tauri/pull/15993)) Don't always rewrite `Cargo.toml` file from CRLF line endings to LF
|
|
21
|
+
- [`aebf38c84`](https://www.github.com/tauri-apps/tauri/commit/aebf38c845b57bc5653eca677e2e2e044528ea73) ([#15694](https://www.github.com/tauri-apps/tauri/pull/15694)) Migrate the Android Gradle scripts from the deprecated `kotlinOptions` DSL to `compilerOptions`, which is accepted by both Kotlin Gradle Plugin 1.9.x and 2.x. This lets projects move to Kotlin 2.x without hitting the hard error that 2.3+ raises on the old DSL.
|
|
22
|
+
|
|
23
|
+
This increased the minimum supported Gradle version to 8.13, if your `gradle` is on an earlier version, delete `src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties` and re-run `tauri android init` to update it.
|
|
24
|
+
- [`d89d8fa62`](https://www.github.com/tauri-apps/tauri/commit/d89d8fa62302bd3553b66fd47ecfa046b2fc84ef) ([#15780](https://www.github.com/tauri-apps/tauri/pull/15780)) Warn during Android commands (`init`/`dev`/`build`) when the active Java version is too new for the Gradle version the project uses (e.g. Java 27 against the Gradle 9.6.1 the template ships, or Java 25 against a project still on Gradle 8.14), instead of letting the build fail later with a cryptic error. The warning points to the Gradle/Java compatibility matrix and suggests a supported JDK.
|
|
25
|
+
- [`c3d21bd60`](https://www.github.com/tauri-apps/tauri/commit/c3d21bd60c3355b284b23dee1a181c3423231182) ([#15730](https://www.github.com/tauri-apps/tauri/pull/15730)) Use `Theme.Material3.DayNight.NoActionBar` instead of `Theme.MaterialComponents.DayNight.NoActionBar` when running `tauri android init`
|
|
26
|
+
- [`f654f470c`](https://www.github.com/tauri-apps/tauri/commit/f654f470c122e925e425424cea733f13d3306412) ([#15862](https://www.github.com/tauri-apps/tauri/pull/15862)) Update template to use `targetSdk = 37`
|
|
27
|
+
- [`cdaf7eab6`](https://www.github.com/tauri-apps/tauri/commit/cdaf7eab6c5fccc2a4812af18f58fd3530f3eedd) ([#15765](https://www.github.com/tauri-apps/tauri/pull/15765)) Clarify that the `tauri init` frontend commands run before `tauri dev` and `tauri build`, and can be left empty when they are not needed.
|
|
28
|
+
- [`d0f38df06`](https://www.github.com/tauri-apps/tauri/commit/d0f38df06a2f4406b388a336694aa18b3c6bf1a9) ([#15997](https://www.github.com/tauri-apps/tauri/pull/15997)) When stdin is not a terminal, `tauri init` now automatically skips prompts, avoiding IO errors in CI and scripts. This eliminates the need to pass `--ci` explicitly in non-interactive environments.
|
|
29
|
+
- [`ca160ad48`](https://www.github.com/tauri-apps/tauri/commit/ca160ad4808f477380cb0865a08a8ae781e37f85) ([#15895](https://www.github.com/tauri-apps/tauri/pull/15895)) `tauri build` now warns when `productName` is still set to the default `tauri-app`, since it names the generated bundles and is written into install paths and metadata that are expected to be unique to your application. The config documentation for `productName` now lists what the field controls on each platform, and `identifier`'s documentation notes that the default value is rejected.
|
|
30
|
+
- [`010f06bae`](https://www.github.com/tauri-apps/tauri/commit/010f06baecd499c41321da3130e20147c50025f7) ([#15737](https://www.github.com/tauri-apps/tauri/pull/15737)) Document the `TAURI_SIGNING_PRIVATE_KEY_PATH` environment variable and clarify that `TAURI_SIGNING_PRIVATE_KEY` accepts a string or a path for the `build` and `bundle` command but must be the literal key string for the `signer sign` command, both in `ENVIRONMENT_VARIABLES.md` and in the `signer generate` command output.
|
|
31
|
+
|
|
32
|
+
### Bug Fixes
|
|
33
|
+
|
|
34
|
+
- [`9bad06b9f`](https://www.github.com/tauri-apps/tauri/commit/9bad06b9f61996faed1c33709f1b8dd196602793) ([#16096](https://www.github.com/tauri-apps/tauri/pull/16096)) `tauri capability new` and `tauri permission new` now accept an `--out` path to a file that does not exist yet, trim comma-separated prompt answers (so `fs:default, core:default` works), report invalid permissions as errors instead of panicking, and reject identifiers that are not valid file names (such as `../../x`), which previously let them write outside of the capabilities or permissions directory.
|
|
35
|
+
- [`9642b3087`](https://www.github.com/tauri-apps/tauri/commit/9642b30879eda8bde35fa3c7606718ca0d364f2e) ([#16117](https://www.github.com/tauri-apps/tauri/pull/16117)) `tauri add` now honors `--tag`, `--rev` and `--branch` for official plugins instead of silently installing the registry version, and rejects passing more than one of them. With npm, the JS package requirement is now `~<version>` like the other package managers, instead of `>=<version>` which allowed a later major version.
|
|
36
|
+
- [`cada1cd4f`](https://www.github.com/tauri-apps/tauri/commit/cada1cd4f3e59efb48b2c7a176d240846f55ad0d) ([#16105](https://www.github.com/tauri-apps/tauri/pull/16105)) Fix Android dev server port forwarding: `adb reverse --list` is now matched on the exact port (so `tcp:80` no longer matches `tcp:8080`), stale forwards on other connected devices are actually removed, and the forward verification gives up with a warning after a few attempts instead of retrying forever.
|
|
37
|
+
- [`d5bd04658`](https://www.github.com/tauri-apps/tauri/commit/d5bd046583d066024ba073840007f4476e52a5fb) ([#16111](https://www.github.com/tauri-apps/tauri/pull/16111)) Fix `bundle > android > debugApplicationIdSuffix` being written to the `signingConfigs` debug block instead of the `buildTypes` one, and keep the existing content of single-line debug blocks such as `getByName("debug") { isDebuggable = true }` instead of dropping it.
|
|
38
|
+
- [`ba17da2e5`](https://www.github.com/tauri-apps/tauri/commit/ba17da2e55184fe74990db64496b0d02e79cce09) ([#16101](https://www.github.com/tauri-apps/tauri/pull/16101)) `tauri icon` now generates 72x72 Android `hdpi` launcher icons (previously 49x49) and writes the Android launcher background color in `#RRGGBB`/`#AARRGGBB` notation instead of the raw CSS color string, which Android rejected or misread. Invalid SVG sources and `--png 0` now return an error instead of panicking.
|
|
39
|
+
- [`272842a57`](https://www.github.com/tauri-apps/tauri/commit/272842a571a56401649db7aaa93ea400561a1661) ([#16128](https://www.github.com/tauri-apps/tauri/pull/16128)) Fix error messages that printed placeholders such as `{t}` literally instead of the value, e.g. "Could not find an Android device matching {t}".
|
|
40
|
+
- [`10ad4e54e`](https://www.github.com/tauri-apps/tauri/commit/10ad4e54e2f1272ee7bb08418dc386058532a5e8) ([#16127](https://www.github.com/tauri-apps/tauri/pull/16127)) The Bash completions generated by `tauri completions` no longer replace the completions of `cargo`, `npm`, `pnpm`, `yarn`, `bun` and `deno`. They now define a `_tauri_cli` function registered only for the `tauri` and `cargo-tauri` commands. Generating completions when running the `cargo-tauri` binary directly no longer panics.
|
|
41
|
+
- [`0e4ded72a`](https://www.github.com/tauri-apps/tauri/commit/0e4ded72a6a617fa16dff196e7fbd3716997e66f) ([#16107](https://www.github.com/tauri-apps/tauri/pull/16107)) Fix binaries in `src/bin` and `src/main.rs` being left out of bundles when `Cargo.toml` declares a `[[bin]]` target without a `path`.
|
|
42
|
+
- [`8e0fa2e2f`](https://www.github.com/tauri-apps/tauri/commit/8e0fa2e2f8859cdd38dc07cfc24a1b012ef29fc3) ([#16097](https://www.github.com/tauri-apps/tauri/pull/16097)) Fix the bundler using the host target triple when `--target` is not passed but `build.target` is set in `.cargo/config.toml`. The CLI now also accepts `build.target` as an array and honors the `CARGO_BUILD_TARGET` environment variable.
|
|
43
|
+
- [`7bb0a5421`](https://www.github.com/tauri-apps/tauri/commit/7bb0a542179bd4ccb17e0baf0dca2c3b2f3f7721) ([#16120](https://www.github.com/tauri-apps/tauri/pull/16120)) Fix the Cargo.toml feature rewrite corrupting a string dependency version that has a trailing comment or uses single quotes (e.g. `tauri = "2" # pin` became `"2#pin"`). The version value is now kept as-is and the comment is preserved.
|
|
44
|
+
- [`e4630258e`](https://www.github.com/tauri-apps/tauri/commit/e4630258e3184fceb60e6c548a7ec61fb81f885d) ([#16114](https://www.github.com/tauri-apps/tauri/pull/16114)) Fix the CLI's working directory being left changed to the config directory when the Tauri configuration fails to parse, for example when `tauri dev` reloads an invalid config.
|
|
45
|
+
- [`1b91b7b7b`](https://www.github.com/tauri-apps/tauri/commit/1b91b7b7b3dad8b77bcaeadc6653250e04f0cb7b) ([#16102](https://www.github.com/tauri-apps/tauri/pull/16102)) `tauri info` now logs a warning when it cannot check the latest crate version on crates.io instead of silently ignoring the failure, and no longer panics if crates.io returns a version it cannot parse.
|
|
46
|
+
- [`1b91b7b7b`](https://www.github.com/tauri-apps/tauri/commit/1b91b7b7b3dad8b77bcaeadc6653250e04f0cb7b) ([#16102](https://www.github.com/tauri-apps/tauri/pull/16102)) `tauri info` now lists every locked version of a Rust crate when `Cargo.lock` contains more than one, and no longer panics when the crates.io response cannot be parsed.
|
|
47
|
+
- [`6507d0b8b`](https://www.github.com/tauri-apps/tauri/commit/6507d0b8b360a41615139619eb39680e60df7732) ([#16124](https://www.github.com/tauri-apps/tauri/pull/16124)) `tauri dev` now reports an error instead of panicking when the `beforeDevCommand` cannot be spawned or the `devUrl` host cannot be resolved, and no longer risks stopping the `beforeDevCommand` process tree twice when Ctrl+C and the app exit race.
|
|
48
|
+
- [`c1ea96ad6`](https://www.github.com/tauri-apps/tauri/commit/c1ea96ad6b433524c5cb570f55bbbe1fd72cca1e) ([#16110](https://www.github.com/tauri-apps/tauri/pull/16110)) Fix `tauri dev` not reacting to the app exiting when a process spawned by the app kept its stderr open, and stop keeping the whole app stderr output in memory. Also fix command output capture that could return empty output when the command finished before its output was read.
|
|
49
|
+
- [`d61fbdc3e`](https://www.github.com/tauri-apps/tauri/commit/d61fbdc3e825749261c76b7a37454dd3c4483619) ([#16109](https://www.github.com/tauri-apps/tauri/pull/16109)) Fix Cargo.toml feature injection and the v1 migration only updating either `[dependencies]` or `[target.'cfg(..)'.dependencies]`, whichever came first in the file. Both the main and all target-specific dependency tables are now updated.
|
|
50
|
+
- [`5d995ed35`](https://www.github.com/tauri-apps/tauri/commit/5d995ed35b029cecd780fdbe614dc6023a89b81b) ([#16017](https://www.github.com/tauri-apps/tauri/pull/16017)) Normalize `gen/android/gradlew` CRLF line endings to LF on all host platforms, not only Unix. A `gradlew` checked out with CRLF broke `sh ./gradlew` on Windows hosts using Git Bash. The rewrite only runs when a CRLF is actually present. A failure to rewrite aborts on Unix, where the script is executed directly; on Windows the CLI invokes `gradlew.bat`, so failures there only warn.
|
|
51
|
+
- [`6d943c420`](https://www.github.com/tauri-apps/tauri/commit/6d943c420454e75636af968b435efb9167818d22) ([#16065](https://www.github.com/tauri-apps/tauri/pull/16065)) Fix the `tauri capability new` command description, which said "Create a new permission file", and the `--skip-stapling` help text on `tauri build` and `tauri bundle`, whose first line described the opposite of what the flag does.
|
|
52
|
+
- [`b8be924d3`](https://www.github.com/tauri-apps/tauri/commit/b8be924d39c87eaecb9ba6f893e1a7be94d7bd68) ([#16106](https://www.github.com/tauri-apps/tauri/pull/16106)) `tauri init` no longer panics when the app name, window title, frontend dist, dev URL or before dev/build commands contain quotes or backslashes (e.g. `-D ..\dist` or `vite --host "0.0.0.0"`); the values are now JSON-escaped in the generated `tauri.conf.json`.
|
|
53
|
+
- [`b9b32a259`](https://www.github.com/tauri-apps/tauri/commit/b9b32a259fb00524808e84b4da0f7904a51be06c) ([#16108](https://www.github.com/tauri-apps/tauri/pull/16108)) Fix `PRODUCT_BUNDLE_IDENTIFIER` in the iOS Xcode project being set to the raw `identifier` (with underscores) instead of the sanitized iOS bundle identifier used by the Xcode project template and the export options provisioning profiles.
|
|
54
|
+
- [`4f51a2f06`](https://www.github.com/tauri-apps/tauri/commit/4f51a2f06248f231fc6a9160c95c026634356ba5) ([#16115](https://www.github.com/tauri-apps/tauri/pull/16115)) Fix `tauri ios run --features` being ignored, and `tauri ios dev --release` still building the app in debug mode.
|
|
55
|
+
- [`59e077457`](https://www.github.com/tauri-apps/tauri/commit/59e077457ac87ffd43db4c557ca2987d2fa6d37e) ([#16075](https://www.github.com/tauri-apps/tauri/pull/16075)) `tauri ios build` for a simulator target no longer fails with "failed to rename app: Directory not empty" when the output `.app` from a previous build exists.
|
|
56
|
+
- [`fe1aa30d2`](https://www.github.com/tauri-apps/tauri/commit/fe1aa30d2b1743325cdd882fe36604daf62c2440) ([#16113](https://www.github.com/tauri-apps/tauri/pull/16113)) Quote the Tauri CLI path and the Xcode variables in the iOS "Build Rust Code" build phase, fixing builds when Xcode or the CLI is installed in a path containing spaces (requires regenerating the Xcode project with `tauri ios init`). Also fixes `CXXFLAGS` not being set for iOS targets in `tauri ios xcode-script`.
|
|
57
|
+
- [`aa0a801c3`](https://www.github.com/tauri-apps/tauri/commit/aa0a801c3acb6cc1f9d0afbae6cbfa144a5ea7fb) ([#16116](https://www.github.com/tauri-apps/tauri/pull/16116)) Fix Java version detection for the Android Java/Gradle compatibility warning when `JAVA_HOME` is not set: the `java` binary on `PATH` is now resolved through symlinks (e.g. Linux alternatives and Homebrew), and on macOS the `/usr/bin/java` stub falls back to `/usr/libexec/java_home`.
|
|
58
|
+
- [`1aafaa4e3`](https://www.github.com/tauri-apps/tauri/commit/1aafaa4e3cafc779d4d825c95c3604a7da661092) ([#16103](https://www.github.com/tauri-apps/tauri/pull/16103)) When rewriting a localhost `devUrl` to the network address for mobile development, the query string and fragment are now preserved, and the IPv6 loopback (`[::1]`) and unspecified (`[::]`) addresses are now treated as localhost.
|
|
59
|
+
- [`022932dd5`](https://www.github.com/tauri-apps/tauri/commit/022932dd596e38d27a0bafebf26ea9df2ec2cff3) ([#16123](https://www.github.com/tauri-apps/tauri/pull/16123)) Fix iOS Xcode project synchronization corrupting `project.pbxproj` when several build settings were added to the same configuration, when an added setting was changed again, or when a multi-line setting was overwritten. Product names, signing identities and other values written to the project are now properly escaped.
|
|
60
|
+
- [`a4099d819`](https://www.github.com/tauri-apps/tauri/commit/a4099d819bdc33385adcc11b7830fc5fdda410d2) ([#16098](https://www.github.com/tauri-apps/tauri/pull/16098)) `tauri permission add` (and `tauri add`) no longer overwrites an existing `capabilities/desktop.json` or `capabilities/mobile.json` when adding a desktop-only or mobile-only plugin permission and no platform-restricted capability exists; the new capability now gets an unused file name and identifier (e.g. `desktop-2.json`). An explicitly passed capability is now used even if its platforms do not match the plugin, with a warning, instead of being silently ignored.
|
|
61
|
+
- [`e49d1b474`](https://www.github.com/tauri-apps/tauri/commit/e49d1b47429acaf34de9e9edc251f71163990783) ([#16100](https://www.github.com/tauri-apps/tauri/pull/16100)) `tauri permission rm <plugin>:*` and `tauri remove` no longer strip unrelated permissions whose identifier merely contains the plugin name (e.g. `tauri remove os` removing `positioner:default`). Local permission files are now looked up in the Tauri directory, like `tauri permission new`, and an unparsable permission file is skipped with a warning instead of aborting the command.
|
|
62
|
+
- [`efa82f5ed`](https://www.github.com/tauri-apps/tauri/commit/efa82f5ed989f84b076b6ee6d2f0e1e6dd0aadbf) ([#16125](https://www.github.com/tauri-apps/tauri/pull/16125)) Fix plugin scaffolding for names like `my-plugin`: the default Android package ID now uses a snake_case segment (`com.plugin.my_plugin`) and user-provided IDs are validated, iOS Xcode folders use the same kebab-case name as the project file, and the `plugin ios init`/`plugin android init` code snippets now match the generated bindings and the `setup(|app, api| ..)` API. `plugin init` into a non-empty directory no longer creates a `permissions` folder after skipping the template.
|
|
63
|
+
- [`db6804d80`](https://www.github.com/tauri-apps/tauri/commit/db6804d80223aabc6b338e94d192a5ad6dd6220b) ([#16126](https://www.github.com/tauri-apps/tauri/pull/16126)) Fix `--release` being added to the cargo command when a custom profile is passed as `--profile=<name>`, which made cargo reject the build.
|
|
64
|
+
- [`8310461f6`](https://www.github.com/tauri-apps/tauri/commit/8310461f6453ce478d2092a4744d42e3468e0bb0) ([#16104](https://www.github.com/tauri-apps/tauri/pull/16104)) Fix `tauri init` and `tauri info` detecting SvelteKit projects as plain Svelte; `tauri init` suggested the wrong dev server URL and frontend dist directory.
|
|
65
|
+
- [`eaf96690d`](https://www.github.com/tauri-apps/tauri/commit/eaf96690db2439445fe16da24031bf3294ada605) ([#15804](https://www.github.com/tauri-apps/tauri/pull/15804)) On Linux, do not bundle xdg-open and xdg-utils in the AppImage anymore. This rarely worked and usually requires host system support anyway.
|
|
66
|
+
- [`2b7c1f8b6`](https://www.github.com/tauri-apps/tauri/commit/2b7c1f8b63619c6f4c16380d0c4a3358e694fb11) ([#16003](https://www.github.com/tauri-apps/tauri/pull/16003)) Fix `tauri add` / `tauri remove` installing npm plugin packages into `src-tauri` instead of the frontend directory.
|
|
67
|
+
- [`c735ba32b`](https://www.github.com/tauri-apps/tauri/commit/c735ba32b36d505cbf9eabfb4a33005ca31edbdd) ([#15241](https://www.github.com/tauri-apps/tauri/pull/15241)) Fix broken child window icons in Task Manager, you'll need to re-run `tauri icon` to generate the fixed icons
|
|
68
|
+
- [`adf5acf6f`](https://www.github.com/tauri-apps/tauri/commit/adf5acf6fbc0ef26de6b1eb30c47bb701c256954) ([#15651](https://www.github.com/tauri-apps/tauri/pull/15651)) Fix MSI bundling when an external binary filename starts with a digit.
|
|
69
|
+
- [`11012a13f`](https://www.github.com/tauri-apps/tauri/commit/11012a13f55ab55ec5ed12ca3ac95338ae1731c3) ([#15681](https://www.github.com/tauri-apps/tauri/pull/15681)) Fix WiX bundler doesn't respect the resource's target file name.
|
|
70
|
+
- [`59e077457`](https://www.github.com/tauri-apps/tauri/commit/59e077457ac87ffd43db4c557ca2987d2fa6d37e) ([#16075](https://www.github.com/tauri-apps/tauri/pull/16075)) Detect pnpm from `npm_config_user_agent` when generating the mobile projects. pnpm's native binary (pnpm 11+) runs package scripts without setting `PNPM_PACKAGE_NAME`, and when installed through corepack the binary is named `pnpm-native`, so `tauri android init` recorded `pnpm-native` as the command for Gradle to run and the Android build failed with "A problem occurred starting process 'command 'pnpm-native''".
|
|
71
|
+
- [`6a298ee12`](https://www.github.com/tauri-apps/tauri/commit/6a298ee12e7ffde115175d43ac63a2fdcba51c3e) ([#15713](https://www.github.com/tauri-apps/tauri/pull/15713)) Fix `tauri info` reporting the Rust-only plugins (`localhost`, `persisted-scope` and `single-instance`) as missing their `@tauri-apps/plugin-*` JavaScript package, which is never published for those plugins.
|
|
72
|
+
- [`33b3ea582`](https://www.github.com/tauri-apps/tauri/commit/33b3ea582340ce8fe799929472595789319d0826) The bundled `vswhere.exe` is now written to a new, uniquely named temporary file on each use and removed afterwards, instead of running any existing `%TEMP%\vswhere.exe`.
|
|
73
|
+
|
|
74
|
+
### What's Changed
|
|
75
|
+
|
|
76
|
+
- [`2e6e33c85`](https://www.github.com/tauri-apps/tauri/commit/2e6e33c8501c66c9a49aad861048d39345cfb26f) ([#16029](https://www.github.com/tauri-apps/tauri/pull/16029)) Moved to edition 2024 for the `tauri init`/`tauri plugin init` templates
|
|
77
|
+
- [`ce3f13b91`](https://www.github.com/tauri-apps/tauri/commit/ce3f13b91a75cb723f229f56a3e82eb5f2d3f644) ([#15887](https://www.github.com/tauri-apps/tauri/pull/15887)) Lock unstable tauri crates to minor versions.
|
|
78
|
+
|
|
79
|
+
### Security fixes
|
|
80
|
+
|
|
81
|
+
- [`98918df64`](https://www.github.com/tauri-apps/tauri/commit/98918df6416f7ac6849962141a41bbd210131067) ([#16112](https://www.github.com/tauri-apps/tauri/pull/16112)) `tauri add` no longer installs the npm package `tauri-plugin-<name>-api` for community plugins. npm and crates.io are separate namespaces, so that package may be unowned or squatted; the CLI now asks you to install the plugin's JavaScript bindings yourself. `tauri remove` only removes the plugin's JS package when `package.json` lists it, and a failure there no longer skips the capability cleanup.
|
|
82
|
+
- [`cc9d522c6`](https://www.github.com/tauri-apps/tauri/commit/cc9d522c64329b8dab84ecbd38c76928ad31cb43) ([#16095](https://www.github.com/tauri-apps/tauri/pull/16095)) The built-in dev server now rejects requests whose `Host` header is not the address it serves on, which blocks DNS rebinding attacks, and rejects cross-site `Origin`s on its reload WebSocket. The `index.html` fallback now goes through the same path scope check as other files, and the reload WebSocket no longer closes when the client sends a message.
|
|
83
|
+
- [`dacddfe9f`](https://www.github.com/tauri-apps/tauri/commit/dacddfe9ff1f28b53e2c0324498e3a666a8041fa) ([#16094](https://www.github.com/tauri-apps/tauri/pull/16094)) The CLI no longer writes its default ignore rules to shared files in the system temporary directory (`.gitignore` and `.tauri/.gitignore`) and reads them back, which let other local users change which files the project lookup and the dev watcher skip. The rules are now applied in memory. `TAURI_CLI_WATCHER_IGNORE_FILENAME` is now consistently treated as an ignore file name looked up in each directory, as documented.
|
|
84
|
+
- [`fdd56da19`](https://www.github.com/tauri-apps/tauri/commit/fdd56da19e40962cb2db613a0b87a38a21f571e4) ([#16099](https://www.github.com/tauri-apps/tauri/pull/16099)) Secure the local server that `tauri android|ios dev|build` uses to pass options to the Android Studio and Xcode build scripts: requests now need a random per-session token, WebSocket connections from web pages (with an `Origin` header) are rejected, and variables whose name contains `TOKEN`, `PASSWORD`, `SECRET` or `CREDENTIAL` are no longer sent. The connection details are now written with owner-only permissions to `gen/<android|apple>/.tauri/cli-options-server.json` (instead of the shared temp directory) and removed when the command exits. The IDE build scripts now report a clear error when the Tauri CLI command is not running.
|
|
85
|
+
- [`ff7cd8d86`](https://www.github.com/tauri-apps/tauri/commit/ff7cd8d863061aaa1c5932062b071db6b17af36e) ([#16118](https://www.github.com/tauri-apps/tauri/pull/16118)) `tauri signer generate --write-keys` now creates the private key with owner-only permissions (0600) on Unix and refuses to overwrite either the private or the public key file without `--force`. Updater signing now rejects file names containing tabs or newlines (which would corrupt the signature's trusted comment) and assumes an empty password instead of prompting when no password is given and stdin is not a terminal. `tauri signer` reports errors instead of panicking.
|
|
86
|
+
- [`51aa20388`](https://www.github.com/tauri-apps/tauri/commit/51aa20388e01c9d03f33992647b14dcf7800c540) ([#16119](https://www.github.com/tauri-apps/tauri/pull/16119)) On Windows, package manager commands (`npm`, `pnpm`, `yarn`, `bun`, `deno`, `node`) are now executed directly instead of through `cmd /c`, so arguments such as `@tauri-apps/plugin-fs@>=2` are escaped properly and can no longer be interpreted as shell redirections or command separators.
|
|
87
|
+
|
|
13
88
|
### Dependencies
|
|
14
89
|
|
|
15
|
-
- Upgraded to `tauri-cli@2.
|
|
90
|
+
- Upgraded to `tauri-cli@2.12.0`
|
|
91
|
+
- [`e2e585ad1`](https://www.github.com/tauri-apps/tauri/commit/e2e585ad1196c9572f86ef39aae01ef4c3b1a762) ([#15828](https://www.github.com/tauri-apps/tauri/pull/15828)) On Android, fix missing `consumer-rules.pro` file in the template.
|
|
92
|
+
|
|
93
|
+
**IMPORTANT**: For plugin authors, update your `build.gradle.kts` file to remove the
|
|
94
|
+
|
|
95
|
+
```kotlin
|
|
96
|
+
buildTypes {
|
|
97
|
+
release {
|
|
98
|
+
isMinifyEnabled = false
|
|
99
|
+
proguardFiles(
|
|
100
|
+
getDefaultProguardFile("proguard-android-optimize.txt"),
|
|
101
|
+
"proguard-rules.pro"
|
|
102
|
+
)
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
section and rename your `proguard-rules.pro` to `consumer-rules.pro` to match the `consumerProguardFiles("consumer-rules.pro")` in the template.
|
|
108
|
+
- [`e2e585ad1`](https://www.github.com/tauri-apps/tauri/commit/e2e585ad1196c9572f86ef39aae01ef4c3b1a762) ([#15828](https://www.github.com/tauri-apps/tauri/pull/15828)) On Android, updated the template to use Gradle v9.6.1 (`com.android.tools.build:gradle` v9.3.1) and Kotlin v2.2. Use `tauri android init` to apply the change.
|
|
109
|
+
- [`9e9a54dea`](https://www.github.com/tauri-apps/tauri/commit/9e9a54dea26ae66de63800cabbccf980902a1cd3) ([#15890](https://www.github.com/tauri-apps/tauri/pull/15890)) Update the generated iOS Xcode project to build with Xcode 27. The scenes lifecycle is **not** enabled by default: to opt in, add the `UIApplicationSceneManifest` key to your `src-tauri/Info.ios.plist`.
|
|
110
|
+
- [`b6660a041`](https://www.github.com/tauri-apps/tauri/commit/b6660a041db44729893dae7991a9be61cf8c2ed5) ([#15954](https://www.github.com/tauri-apps/tauri/pull/15954)) Update typescript to v7 in `tauri plugin init` template. Also fixes the default `rootDir` in the template `tsconfig.json`
|
|
111
|
+
- [`9e9a54dea`](https://www.github.com/tauri-apps/tauri/commit/9e9a54dea26ae66de63800cabbccf980902a1cd3) ([#15890](https://www.github.com/tauri-apps/tauri/pull/15890)) Update cargo-mobile2 and change the default minimum iOS version to 15.0 to support Xcode 27.
|
|
16
112
|
|
|
17
113
|
## \[2.11.4]
|
|
18
114
|
|
package/config.schema.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"$id": "https://schema.tauri.app/config/2.
|
|
3
|
+
"$id": "https://schema.tauri.app/config/2.12.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\": \"http://localhost:3000\",\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",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
]
|
|
17
17
|
},
|
|
18
18
|
"productName": {
|
|
19
|
-
"description": "App name.",
|
|
19
|
+
"description": "App name.\n\n This is the name your app is known by on the user's system, so it must be changed from the\n default before publishing. Besides naming the generated bundles, it is written into platform\n metadata and install paths that are expected to be unique to your application.\n\n ## Platform-specific\n\n - **macOS**: Names the `.app` bundle and the `.dmg`, and sets the bundle's\n `CFBundleDisplayName` and `CFBundleName` properties. `CFBundleName` can be overridden with\n [`bundle > macOS > bundleName`](MacConfig::bundle_name).\n - **Linux**: Kebab-cased for the Debian and RPM package names, used as the `Name` entry of\n the desktop file and as the resource directory name under `/usr/lib`.\n - **Windows**: Names the installers, the installation directory, the Start Menu folder and\n the `HKCU\\Software\\<publisher>\\<product name>` registry key. It also derives the default\n WiX upgrade code, which must be unique across applications and can be set explicitly with\n [`bundle > windows > wix > upgradeCode`](WixConfig::upgrade_code).",
|
|
20
20
|
"type": [
|
|
21
21
|
"string",
|
|
22
22
|
"null"
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
]
|
|
39
39
|
},
|
|
40
40
|
"identifier": {
|
|
41
|
-
"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 (.).",
|
|
41
|
+
"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 (.).\n The default value `com.tauri.dev` is rejected by `tauri build` and must be changed before\n building your application.",
|
|
42
42
|
"type": "string"
|
|
43
43
|
},
|
|
44
44
|
"app": {
|
|
@@ -71,7 +71,10 @@
|
|
|
71
71
|
"description": "The build configuration.",
|
|
72
72
|
"default": {
|
|
73
73
|
"additionalWatchFolders": [],
|
|
74
|
-
"removeUnusedCommands": false
|
|
74
|
+
"removeUnusedCommands": false,
|
|
75
|
+
"windows": {
|
|
76
|
+
"staticVCRuntime": true
|
|
77
|
+
}
|
|
75
78
|
},
|
|
76
79
|
"allOf": [
|
|
77
80
|
{
|
|
@@ -89,7 +92,7 @@
|
|
|
89
92
|
},
|
|
90
93
|
"createUpdaterArtifacts": false,
|
|
91
94
|
"iOS": {
|
|
92
|
-
"minimumSystemVersion": "
|
|
95
|
+
"minimumSystemVersion": "15.0"
|
|
93
96
|
},
|
|
94
97
|
"icon": [],
|
|
95
98
|
"linux": {
|
|
@@ -129,6 +132,7 @@
|
|
|
129
132
|
"useLocalToolsDir": false,
|
|
130
133
|
"windows": {
|
|
131
134
|
"allowDowngrades": true,
|
|
135
|
+
"bundleVCRuntime": false,
|
|
132
136
|
"certificateThumbprint": null,
|
|
133
137
|
"digestAlgorithm": null,
|
|
134
138
|
"minimumWebview2Version": null,
|
|
@@ -215,9 +219,20 @@
|
|
|
215
219
|
"type": "boolean"
|
|
216
220
|
},
|
|
217
221
|
"enableGTKAppId": {
|
|
218
|
-
"description": "
|
|
222
|
+
"description": "Whether the application `identifier` is used as the GTK application ID on systems that use GTK.\n\n Setting the GTK application ID lets the desktop environment associate the app's windows with\n its `.desktop` entry of the same name, which is what makes Wayland compositors and GNOME show\n the correct icon and application name, and group the windows in the dock or taskbar.\n\n Defaults to `false`, because registering an application ID also makes GTK register the\n application on the session bus under that ID, which prevents running more than one instance\n of the app at the same time.\n\n ## Platform-specific\n\n - **Linux / FreeBSD / DragonFly / NetBSD / OpenBSD**: The identifier must be a valid GTK\n application ID.\n - **Windows / macOS / Android / iOS**: Unsupported.",
|
|
219
223
|
"default": false,
|
|
220
224
|
"type": "boolean"
|
|
225
|
+
},
|
|
226
|
+
"appDirectoriesOverride": {
|
|
227
|
+
"description": "Overrides the directories returned by the `app_*_dir` path APIs (`app_config_dir`, `app_data_dir`,\n `app_local_data_dir`, `app_cache_dir` and `app_log_dir`) and the matching `$APPCONFIG`, `$APPDATA`,\n `$APPLOCALDATA`, `$APPCACHE` and `$APPLOG` base directory variables.\n\n This is useful for portable apps that keep all of their data next to the executable,\n and for apps that want their app directories in a location they choose, such as `$DOCUMENT/my-app`.\n Everything that resolves paths through these APIs follows the override, including Tauri itself\n (the default webview data directory on Windows and Linux) and plugins,\n so the storage locations do not need to be configured one by one.\n The only exception is a window's `dataDirectory` config, which is not affected.\n\n It can also isolate the data of a development build from an installed version of the app,\n though a distinct `identifier` for development builds achieves that while keeping the production directory layout.\n\n The value is either a single path used as the root of every app directory\n (config, data and local data resolve to the root itself, cache to `<root>/caches` and log to `<root>/logs`),\n or an object that overrides individual directories (`config`, `data`, `localData`, `cache` and `log`),\n each resolving to exactly the configured path. Directories that are not listed in the object keep their default location.\n\n Each path is resolved as follows:\n\n - A path starting with a base directory variable is resolved relative to that directory.\n The supported variables are `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`,\n `$DOWNLOAD`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$TEMP` and `$VIDEO`.\n `..` components are kept, so `$DATA/../my-app` refers to a sibling of the data directory.\n - An absolute path is used as is.\n - Any other path is resolved relative to the directory containing the executable,\n which must be writable, see the platform-specific notes below.\n\n ## Examples\n\n Keep all data in an `app-data` folder next to the executable, for a portable build:\n\n ```json\n {\n \"app\": {\n \"appDirectoriesOverride\": \"./app-data\"\n }\n }\n ```\n\n Only move the logs and the cache:\n\n ```json\n {\n \"app\": {\n \"appDirectoriesOverride\": {\n \"log\": \"$DATA/my-app/logs\",\n \"cache\": \"$CACHE/my-app\"\n }\n }\n }\n ```\n\n Set the override at runtime, for instance from an environment variable, a command line flag\n or a directory picked by the user, by modifying the config returned by `tauri::generate_context!()`\n before building the app:\n\n ```rust\n use tauri::utils::config::AppDirectoriesOverride;\n\n fn main() {\n let mut context = tauri::generate_context!();\n\n if let Ok(data_dir) = std::env::var(\"MY_APP_DATA_DIR\") {\n context.config_mut().app.app_directories_override =\n Some(AppDirectoriesOverride::Root(data_dir.into()));\n }\n\n tauri::Builder::default()\n .run(context)\n .expect(\"error while running tauri application\");\n }\n ```\n\n ## Security\n\n Scopes and permissions that use the `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE` and `$APPLOG`\n variables follow the override, so the configured paths must be directories dedicated to the app.\n A single root is used as is for the config, data and local data directories, so a root that is not dedicated\n to the app, such as `\"./\"` or `\"$DOCUMENT\"`, extends those scopes to everything it contains.\n With `\"./\"`, `fs:default` (which allows reading the app directories recursively) lets the webview read\n every file next to the executable, including anything else in the folder the app was run from,\n such as the downloads folder. If the app also grants write access to an app directory, a compromised webview\n (e.g. through XSS) can replace files next to the executable, such as dropping a DLL that Windows loads\n from the executable's directory on the next launch, leading to code execution.\n Always point the override to a subfolder owned by the app, such as `\"./app-data\"` or `\"$DOCUMENT/my-app\"`.\n\n ## Platform-specific\n\n A path relative to the executable only works where the executable's directory is writable:\n portable builds, `tauri dev` builds in the `target` directory and the cases listed below.\n Everywhere else every write to an app directory fails at runtime, so installed apps should use\n a base directory variable or an absolute path instead. Unless every distribution of the app is portable,\n keep relative paths out of the shared configuration and apply them to the portable build flavor only,\n for instance with the CLI's `--config` flag, which accepts a JSON file or an inline JSON string:\n\n ```sh\n tauri build --config '{ \"app\": { \"appDirectoriesOverride\": \"./app-data\" } }'\n ```\n\n - **Linux**: Relative paths only work for AppImages, where they are resolved relative to the AppImage file,\n as long as it is kept in a writable directory. `.deb` and `.rpm` packages install the executable to `/usr/bin`.\n - **macOS**: Relative paths are resolved next to the `.app` bundle. This does not work for installed apps,\n since `/Applications` is not writable for standard users, nor for bundles downloaded from the internet,\n which run from a random read-only location (App Translocation) until the user moves them out of the quarantined folder.\n - **Windows**: Relative paths also work for per-user NSIS installers,\n but not for per-machine installers in `Program Files`.\n - **Android / iOS**: Relative paths are not supported, since there is no writable directory next to the executable.\n Use a base directory variable or an absolute path instead. `$DESKTOP` is not available on Android.",
|
|
228
|
+
"anyOf": [
|
|
229
|
+
{
|
|
230
|
+
"$ref": "#/definitions/AppDirectoriesOverride"
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
"type": "null"
|
|
234
|
+
}
|
|
235
|
+
]
|
|
221
236
|
}
|
|
222
237
|
},
|
|
223
238
|
"additionalProperties": false
|
|
@@ -253,7 +268,7 @@
|
|
|
253
268
|
]
|
|
254
269
|
},
|
|
255
270
|
"dragDropEnabled": {
|
|
256
|
-
"description": "Whether the drag and drop
|
|
271
|
+
"description": "Whether the drag and drop handlers used internally to generate [`DragDropEvent`]s are enabled 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 since we replace the drag drop handler of WebView2.\n\n Note: this setting maps to [`WebviewBuilder::disable_drag_drop_handler`], not [`WindowBuilder::drag_and_drop`].\n\n [`DragDropEvent`]: https://docs.rs/tauri/latest/tauri/enum.DragDropEvent.html\n [`WebviewBuilder::disable_drag_drop_handler`]: https://docs.rs/tauri/latest/tauri/webview/struct.WebviewBuilder.html#method.disable_drag_drop_handler\n [`WindowBuilder::drag_and_drop`]: https://docs.rs/tauri/latest/x86_64-pc-windows-msvc/tauri/window/struct.WindowBuilder.html#method.drag_and_drop",
|
|
257
272
|
"default": true,
|
|
258
273
|
"type": "boolean"
|
|
259
274
|
},
|
|
@@ -374,7 +389,7 @@
|
|
|
374
389
|
"type": "boolean"
|
|
375
390
|
},
|
|
376
391
|
"transparent": {
|
|
377
|
-
"description": "Whether the window is transparent or not.\n\n
|
|
392
|
+
"description": "Whether the window is transparent or not.\n\n ## Platform-specific\n\n - **macOS**: Requires the `macos-private-api` Cargo feature, which is enabled by setting\n `app > macOSPrivateApi` to `true` in the configuration file.\n **WARNING:** Using private APIs on macOS prevents your application from being accepted to the App Store.\n If you only need a translucent background, use `windowEffects` instead, which relies on public APIs.\n - **Windows**: Using `noRedirectionBitmap` can help avoid a white flash when creating a transparent window.",
|
|
378
393
|
"default": false,
|
|
379
394
|
"type": "boolean"
|
|
380
395
|
},
|
|
@@ -425,6 +440,11 @@
|
|
|
425
440
|
"null"
|
|
426
441
|
]
|
|
427
442
|
},
|
|
443
|
+
"noRedirectionBitmap": {
|
|
444
|
+
"description": "This sets `WS_EX_NOREDIRECTIONBITMAP`.\n\n This can avoid the white flash that may appear before the webview content is rendered\n when using a transparent window. **Windows only**.",
|
|
445
|
+
"default": false,
|
|
446
|
+
"type": "boolean"
|
|
447
|
+
},
|
|
428
448
|
"theme": {
|
|
429
449
|
"description": "The initial window theme. Defaults to the system theme. Only implemented on Windows and macOS 10.14+.",
|
|
430
450
|
"anyOf": [
|
|
@@ -474,7 +494,7 @@
|
|
|
474
494
|
]
|
|
475
495
|
},
|
|
476
496
|
"additionalBrowserArgs": {
|
|
477
|
-
"description": "Defines additional browser arguments on Windows
|
|
497
|
+
"description": "Defines additional browser arguments on Windows.\n\n ## Warning\n\n Webview instances with different browser arguments must also have different [data directories](Self::data_directory).\n\n By default wry passes `--disable-features=msWebOOUI,msPdfOOUI,msSmartScreenProtection`\n so if you set this, you also need to disable these components by yourself if you want.",
|
|
478
498
|
"type": [
|
|
479
499
|
"string",
|
|
480
500
|
"null"
|
|
@@ -576,14 +596,14 @@
|
|
|
576
596
|
"type": "boolean"
|
|
577
597
|
},
|
|
578
598
|
"dataDirectory": {
|
|
579
|
-
"description": "Set a custom path for the webview's data directory (localStorage, cache, etc.) **relative to
|
|
599
|
+
"description": "Set a custom path for the webview's data directory (localStorage, cache, etc.),\n **relative to the local data directory (`localDataDir()`), followed by the window label**.\n\n To set absolute paths, use [`WebviewWindowBuilder::data_directory`](https://docs.rs/tauri/2/tauri/webview/struct.WebviewWindowBuilder.html#method.data_directory)\n\n This path is not affected by the `app > appDirectoriesOverride` config.\n To keep the webview data in an overridden directory, leave this unset (the webview then uses the app local data directory)\n or resolve a path from `app.path().app_local_data_dir()` and set it with `WebviewWindowBuilder::data_directory`.\n\n #### Platform-specific:\n\n - **Windows**: WebViews with different values for settings like `additionalBrowserArgs`, `browserExtensionsEnabled` or `scrollBarStyle` must have different data directories.\n - **macOS / iOS**: Unsupported, use `dataStoreIdentifier` instead.\n - **Android**: Unsupported.",
|
|
580
600
|
"type": [
|
|
581
601
|
"string",
|
|
582
602
|
"null"
|
|
583
603
|
]
|
|
584
604
|
},
|
|
585
605
|
"dataStoreIdentifier": {
|
|
586
|
-
"description": "Initialize the WebView with a custom data store identifier. This can be seen as a replacement for `dataDirectory` which is unavailable in WKWebView.\n See https://developer.apple.com/documentation/webkit/wkwebsitedatastore/init(foridentifier:)?language=objc
|
|
606
|
+
"description": "Initialize the WebView with a custom data store identifier. This can be seen as a replacement for `dataDirectory` which is unavailable in WKWebView.\n\n See <https://developer.apple.com/documentation/webkit/wkwebsitedatastore/init(foridentifier:)?language=objc>\n\n The array must contain 16 u8 numbers.\n\n #### Platform-specific:\n\n - **iOS**: Supported since version 17.0+.\n - **macOS**: Supported since version 14.0+.\n - **Windows / Linux / Android**: Unsupported.",
|
|
587
607
|
"type": [
|
|
588
608
|
"array",
|
|
589
609
|
"null"
|
|
@@ -605,6 +625,11 @@
|
|
|
605
625
|
}
|
|
606
626
|
]
|
|
607
627
|
},
|
|
628
|
+
"limitNavigationsToAppBoundDomains": {
|
|
629
|
+
"description": "Whether to limit navigations to App-Bound Domains.\n\n This is required to enable Service Workers in WKWebView, which are otherwise\n unavailable. Defaults to `false`.\n\n When this is set to `true`, the webview can only navigate to the domains listed in the\n `WKAppBoundDomains` array of `src-tauri/Info.ios.plist`. Add `localhost` and every\n [registrable domain](https://developer.mozilla.org/en-US/docs/Glossary/Registrable_domain)\n this webview loads to that array:\n\n ```xml\n <plist>\n <dict>\n <key>WKAppBoundDomains</key>\n <array>\n <string>localhost</string>\n <string>aregistrabledomain.example</string>\n </array>\n </dict>\n </plist>\n ```\n\n `localhost` must be listed if any webview with this option enabled opens a local webpage,\n makes any localhost call, or uses the isolation pattern, because Tauri serves the\n application webpage, the IPC protocol and the isolation pattern iframe from the\n `localhost` domain.\n\n Requests served through custom URI schemes are allowed as long as they use a registrable\n domain listed in the `WKAppBoundDomains` array, including requests to the `localhost`\n domain.\n\n An entire URI scheme can be listed by adding the protocol name followed by a colon, for\n example `stream:` for a custom `stream` scheme (see the\n [streaming example](https://github.com/tauri-apps/tauri/blob/dev/examples/streaming/main.rs)).\n This is not covered by Apple's\n [App-Bound Domains announcement](https://webkit.org/blog/10882/app-bound-domains/),\n so it may not be accepted during App Store review.\n\n See <https://webkit.org/blog/10882/app-bound-domains/> and\n <https://developer.apple.com/documentation/webkit/wkwebviewconfiguration/limitsnavigationstoappbounddomains>\n for the official documentation on App-Bound Domains.\n\n ## Platform-specific\n\n - **iOS**: Supported since version 14.0+.\n - **Linux / Windows / Android / macOS:** Unsupported.",
|
|
630
|
+
"default": false,
|
|
631
|
+
"type": "boolean"
|
|
632
|
+
},
|
|
608
633
|
"activityName": {
|
|
609
634
|
"description": "The name of the Android activity to create for this window.",
|
|
610
635
|
"type": [
|
|
@@ -767,14 +792,14 @@
|
|
|
767
792
|
],
|
|
768
793
|
"properties": {
|
|
769
794
|
"effects": {
|
|
770
|
-
"description": "List of Window effects to apply to the Window.\n
|
|
795
|
+
"description": "List of Window effects to apply to the Window.\n\n Generally, conflicting effects will apply the first one and ignore the rest but\n on macOS you can specify one Liquid Glass style and one Visual Effect material at the same time\n to make Tauri fallback to the latter on macOS 15 and below.",
|
|
771
796
|
"type": "array",
|
|
772
797
|
"items": {
|
|
773
798
|
"$ref": "#/definitions/WindowEffect"
|
|
774
799
|
}
|
|
775
800
|
},
|
|
776
801
|
"state": {
|
|
777
|
-
"description": "Window effect state **macOS Only
|
|
802
|
+
"description": "Window effect state **macOS Only**. Ignored for Liquid Glass Effects.",
|
|
778
803
|
"anyOf": [
|
|
779
804
|
{
|
|
780
805
|
"$ref": "#/definitions/WindowEffectState"
|
|
@@ -793,7 +818,7 @@
|
|
|
793
818
|
"format": "double"
|
|
794
819
|
},
|
|
795
820
|
"color": {
|
|
796
|
-
"description": "Window effect color
|
|
821
|
+
"description": "Window effect color.\n\n ## Platform-specific\n\n - **Windows**: Affects [`WindowEffect::Blur`] and [`WindowEffect::Acrylic`] only\n on Windows 10 v1903+. Doesn't have any effect on Windows 7 or Windows 11.\n - **macOS**: Only affects Liquid Glass effects.",
|
|
797
822
|
"anyOf": [
|
|
798
823
|
{
|
|
799
824
|
"$ref": "#/definitions/Color"
|
|
@@ -802,6 +827,11 @@
|
|
|
802
827
|
"type": "null"
|
|
803
828
|
}
|
|
804
829
|
]
|
|
830
|
+
},
|
|
831
|
+
"interactive": {
|
|
832
|
+
"description": "Enables interactive glass behavior, which adds a visual response to user interactions.\n\n **macOS 27.0+**. Only affects Liquid Glass effects.",
|
|
833
|
+
"default": false,
|
|
834
|
+
"type": "boolean"
|
|
805
835
|
}
|
|
806
836
|
},
|
|
807
837
|
"additionalProperties": false
|
|
@@ -947,6 +977,20 @@
|
|
|
947
977
|
"underPageBackground"
|
|
948
978
|
]
|
|
949
979
|
},
|
|
980
|
+
{
|
|
981
|
+
"description": "**macOS 26.0+**",
|
|
982
|
+
"type": "string",
|
|
983
|
+
"enum": [
|
|
984
|
+
"liquidGlassRegular"
|
|
985
|
+
]
|
|
986
|
+
},
|
|
987
|
+
{
|
|
988
|
+
"description": "**macOS 26.0+**",
|
|
989
|
+
"type": "string",
|
|
990
|
+
"enum": [
|
|
991
|
+
"liquidGlassClear"
|
|
992
|
+
]
|
|
993
|
+
},
|
|
950
994
|
{
|
|
951
995
|
"description": "Mica effect that matches the system dark preference **Windows 11 Only**",
|
|
952
996
|
"type": "string",
|
|
@@ -1153,7 +1197,7 @@
|
|
|
1153
1197
|
"description": "The scrollbar style to use in the webview.\n\n ## Platform-specific\n\n - **Windows**: This option must be given the same value for all webviews that target the same data directory.",
|
|
1154
1198
|
"oneOf": [
|
|
1155
1199
|
{
|
|
1156
|
-
"description": "The scrollbar
|
|
1200
|
+
"description": "The platform's native scrollbar, as rendered by the webview by default.\n\n This is the only supported value outside of Windows.",
|
|
1157
1201
|
"type": "string",
|
|
1158
1202
|
"enum": [
|
|
1159
1203
|
"default"
|
|
@@ -1173,7 +1217,7 @@
|
|
|
1173
1217
|
"type": "object",
|
|
1174
1218
|
"properties": {
|
|
1175
1219
|
"csp": {
|
|
1176
|
-
"description": "The Content Security Policy that will be injected on all HTML files on the built application.\n If
|
|
1220
|
+
"description": "The Content Security Policy that will be injected on all HTML files on the built application.\n If `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>.",
|
|
1177
1221
|
"anyOf": [
|
|
1178
1222
|
{
|
|
1179
1223
|
"$ref": "#/definitions/Csp"
|
|
@@ -1195,7 +1239,7 @@
|
|
|
1195
1239
|
]
|
|
1196
1240
|
},
|
|
1197
1241
|
"freezePrototype": {
|
|
1198
|
-
"description": "
|
|
1242
|
+
"description": "Whether `Object.freeze(Object.prototype)` is run as an initialization script on every webview.\n\n This hardens the frontend against prototype pollution: once the prototype is frozen,\n a script cannot add or replace properties on `Object.prototype` and thus cannot tamper\n with objects it does not own, including the ones used by the Tauri API.\n\n The script runs before any of your frontend code, on every webview, regardless of whether\n the content is served by the custom protocol or by a development server.\n\n Defaults to `false`. Note that frontend libraries that extend built-in prototypes\n (polyfills, some older frameworks) stop working when this is enabled, so test your\n application with it on before shipping.",
|
|
1199
1243
|
"default": false,
|
|
1200
1244
|
"type": "boolean"
|
|
1201
1245
|
},
|
|
@@ -1221,7 +1265,7 @@
|
|
|
1221
1265
|
]
|
|
1222
1266
|
},
|
|
1223
1267
|
"pattern": {
|
|
1224
|
-
"description": "The pattern to
|
|
1268
|
+
"description": "The application pattern, which defines how the frontend communicates with the Rust core.\n\n - `brownfield` (default): the frontend talks to the core directly. Use it unless you need\n the extra isolation layer.\n - `isolation`: every IPC message is routed through a secure JavaScript application you own,\n hosted in a sandboxed `<iframe>`, so it can validate or reject messages before they reach\n the Rust core. This protects the core from an untrusted or compromised frontend\n (for example one that loads third-party scripts), at the cost of an extra build step:\n the `dir` value must point at a directory containing the isolation application's `index.html`.\n\n See <https://tauri.app/concept/inter-process-communication/isolation/>.",
|
|
1225
1269
|
"default": {
|
|
1226
1270
|
"use": "brownfield"
|
|
1227
1271
|
},
|
|
@@ -1232,7 +1276,7 @@
|
|
|
1232
1276
|
]
|
|
1233
1277
|
},
|
|
1234
1278
|
"capabilities": {
|
|
1235
|
-
"description": "List of capabilities that are enabled on the application.\n\n By default (not set or empty list), all capability files from `./capabilities/` are included,\n by setting values in this entry, you have fine grained control over which capabilities are included\n\n You can either reference a capability file defined in `./capabilities/` with its identifier or inline a [`Capability`]\n\n ### Example\n\n ```json\n {\n \"app\": {\n \"capabilities\": [\n
|
|
1279
|
+
"description": "List of capabilities that are enabled on the application.\n\n By default (not set or empty list), all capability files from `./capabilities/` are included,\n by setting values in this entry, you have fine grained control over which capabilities are included\n\n You can either reference a capability file defined in `./capabilities/` with its identifier or inline a [`Capability`]\n\n ### Example\n\n ```json\n {\n \"app\": {\n \"security\": {\n \"capabilities\": [\n \"main-window\",\n {\n \"identifier\": \"drag-window\",\n \"permissions\": [\"core:window:allow-start-dragging\"]\n }\n ]\n }\n }\n }\n ```",
|
|
1236
1280
|
"default": [],
|
|
1237
1281
|
"type": "array",
|
|
1238
1282
|
"items": {
|
|
@@ -1855,7 +1899,7 @@
|
|
|
1855
1899
|
"type": "boolean"
|
|
1856
1900
|
},
|
|
1857
1901
|
"menuOnLeftClick": {
|
|
1858
|
-
"description": "A Boolean value that determines whether the menu should appear when the tray icon receives a left click.\n\n ## Platform-specific:\n\n - **Linux**: Unsupported.",
|
|
1902
|
+
"description": "**No longer works since v2.2, use [`Self::show_menu_on_left_click`] instead**\n\n A Boolean value that determines whether the menu should appear when the tray icon receives a left click.\n\n ## Platform-specific:\n\n - **Linux**: Unsupported.",
|
|
1859
1903
|
"default": true,
|
|
1860
1904
|
"deprecated": true,
|
|
1861
1905
|
"type": "boolean"
|
|
@@ -1882,6 +1926,65 @@
|
|
|
1882
1926
|
},
|
|
1883
1927
|
"additionalProperties": false
|
|
1884
1928
|
},
|
|
1929
|
+
"AppDirectoriesOverride": {
|
|
1930
|
+
"description": "Overrides the directories returned by the `app_*_dir` path APIs.\n\n See the `app > appDirectoriesOverride` config for how each path is resolved.",
|
|
1931
|
+
"anyOf": [
|
|
1932
|
+
{
|
|
1933
|
+
"description": "A single directory that holds all app directories.\n\n The config, data and local data directories resolve to this path,\n the cache directory resolves to `<path>/caches` and the log directory to `<path>/logs`.",
|
|
1934
|
+
"type": "string"
|
|
1935
|
+
},
|
|
1936
|
+
{
|
|
1937
|
+
"description": "Overrides for individual app directories.\n\n Directories that are not listed keep their default location.",
|
|
1938
|
+
"allOf": [
|
|
1939
|
+
{
|
|
1940
|
+
"$ref": "#/definitions/AppDirectoryOverrides"
|
|
1941
|
+
}
|
|
1942
|
+
]
|
|
1943
|
+
}
|
|
1944
|
+
]
|
|
1945
|
+
},
|
|
1946
|
+
"AppDirectoryOverrides": {
|
|
1947
|
+
"description": "Overrides for individual app directories.",
|
|
1948
|
+
"type": "object",
|
|
1949
|
+
"properties": {
|
|
1950
|
+
"config": {
|
|
1951
|
+
"description": "Overrides the app config directory (`app_config_dir`, `$APPCONFIG`).",
|
|
1952
|
+
"type": [
|
|
1953
|
+
"string",
|
|
1954
|
+
"null"
|
|
1955
|
+
]
|
|
1956
|
+
},
|
|
1957
|
+
"data": {
|
|
1958
|
+
"description": "Overrides the app data directory (`app_data_dir`, `$APPDATA`).",
|
|
1959
|
+
"type": [
|
|
1960
|
+
"string",
|
|
1961
|
+
"null"
|
|
1962
|
+
]
|
|
1963
|
+
},
|
|
1964
|
+
"localData": {
|
|
1965
|
+
"description": "Overrides the app local data directory (`app_local_data_dir`, `$APPLOCALDATA`).\n\n On Windows and Linux this is also the default data directory of the webviews.",
|
|
1966
|
+
"type": [
|
|
1967
|
+
"string",
|
|
1968
|
+
"null"
|
|
1969
|
+
]
|
|
1970
|
+
},
|
|
1971
|
+
"cache": {
|
|
1972
|
+
"description": "Overrides the app cache directory (`app_cache_dir`, `$APPCACHE`).",
|
|
1973
|
+
"type": [
|
|
1974
|
+
"string",
|
|
1975
|
+
"null"
|
|
1976
|
+
]
|
|
1977
|
+
},
|
|
1978
|
+
"log": {
|
|
1979
|
+
"description": "Overrides the app log directory (`app_log_dir`, `$APPLOG`).",
|
|
1980
|
+
"type": [
|
|
1981
|
+
"string",
|
|
1982
|
+
"null"
|
|
1983
|
+
]
|
|
1984
|
+
}
|
|
1985
|
+
},
|
|
1986
|
+
"additionalProperties": false
|
|
1987
|
+
},
|
|
1885
1988
|
"BuildConfig": {
|
|
1886
1989
|
"description": "The Build configuration object.\n\n See more: <https://v2.tauri.app/reference/config/#buildconfig>",
|
|
1887
1990
|
"type": "object",
|
|
@@ -1917,7 +2020,7 @@
|
|
|
1917
2020
|
]
|
|
1918
2021
|
},
|
|
1919
2022
|
"beforeDevCommand": {
|
|
1920
|
-
"description": "A shell command to run before `tauri dev` kicks in.\n\n The TAURI_ENV_PLATFORM
|
|
2023
|
+
"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`\n and `TAURI_ENV_TARGET_TRIPLE` environment variables are set for the command, so it can\n adapt its output to the target that is being built.\n `TAURI_ENV_DEBUG` is set to `true` for debug builds and is not set otherwise.",
|
|
1921
2024
|
"anyOf": [
|
|
1922
2025
|
{
|
|
1923
2026
|
"$ref": "#/definitions/BeforeDevCommand"
|
|
@@ -1928,7 +2031,7 @@
|
|
|
1928
2031
|
]
|
|
1929
2032
|
},
|
|
1930
2033
|
"beforeBuildCommand": {
|
|
1931
|
-
"description": "A shell command to run before `tauri build` kicks in.\n\n The TAURI_ENV_PLATFORM
|
|
2034
|
+
"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`\n and `TAURI_ENV_TARGET_TRIPLE` environment variables are set for the command, so it can\n adapt its output to the target that is being built.\n `TAURI_ENV_DEBUG` is set to `true` for debug builds and is not set otherwise.",
|
|
1932
2035
|
"anyOf": [
|
|
1933
2036
|
{
|
|
1934
2037
|
"$ref": "#/definitions/HookCommand"
|
|
@@ -1939,7 +2042,7 @@
|
|
|
1939
2042
|
]
|
|
1940
2043
|
},
|
|
1941
2044
|
"beforeBundleCommand": {
|
|
1942
|
-
"description": "A shell command to run before the bundling phase in `tauri build` kicks in.\n\n The TAURI_ENV_PLATFORM
|
|
2045
|
+
"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`\n and `TAURI_ENV_TARGET_TRIPLE` environment variables are set for the command, so it can\n adapt its output to the target that is being built.\n `TAURI_ENV_DEBUG` is set to `true` for debug builds and is not set otherwise.",
|
|
1943
2046
|
"anyOf": [
|
|
1944
2047
|
{
|
|
1945
2048
|
"$ref": "#/definitions/HookCommand"
|
|
@@ -1971,6 +2074,17 @@
|
|
|
1971
2074
|
"items": {
|
|
1972
2075
|
"type": "string"
|
|
1973
2076
|
}
|
|
2077
|
+
},
|
|
2078
|
+
"windows": {
|
|
2079
|
+
"description": "Windows-specific build configuration.",
|
|
2080
|
+
"default": {
|
|
2081
|
+
"staticVCRuntime": true
|
|
2082
|
+
},
|
|
2083
|
+
"allOf": [
|
|
2084
|
+
{
|
|
2085
|
+
"$ref": "#/definitions/WindowsBuildConfig"
|
|
2086
|
+
}
|
|
2087
|
+
]
|
|
1974
2088
|
}
|
|
1975
2089
|
},
|
|
1976
2090
|
"additionalProperties": false
|
|
@@ -2098,6 +2212,18 @@
|
|
|
2098
2212
|
}
|
|
2099
2213
|
]
|
|
2100
2214
|
},
|
|
2215
|
+
"WindowsBuildConfig": {
|
|
2216
|
+
"description": "Windows-specific build configuration.",
|
|
2217
|
+
"type": "object",
|
|
2218
|
+
"properties": {
|
|
2219
|
+
"staticVCRuntime": {
|
|
2220
|
+
"description": "Whether to statically link the Visual C++ runtime into the application binary on Windows MSVC targets.",
|
|
2221
|
+
"default": true,
|
|
2222
|
+
"type": "boolean"
|
|
2223
|
+
}
|
|
2224
|
+
},
|
|
2225
|
+
"additionalProperties": false
|
|
2226
|
+
},
|
|
2101
2227
|
"BundleConfig": {
|
|
2102
2228
|
"description": "Configuration for tauri-bundler.\n\n See more: <https://v2.tauri.app/reference/config/#bundleconfig>",
|
|
2103
2229
|
"type": "object",
|
|
@@ -2229,6 +2355,7 @@
|
|
|
2229
2355
|
"description": "Configuration for the Windows bundles.",
|
|
2230
2356
|
"default": {
|
|
2231
2357
|
"allowDowngrades": true,
|
|
2358
|
+
"bundleVCRuntime": false,
|
|
2232
2359
|
"certificateThumbprint": null,
|
|
2233
2360
|
"digestAlgorithm": null,
|
|
2234
2361
|
"minimumWebview2Version": null,
|
|
@@ -2300,7 +2427,7 @@
|
|
|
2300
2427
|
"iOS": {
|
|
2301
2428
|
"description": "iOS configuration.",
|
|
2302
2429
|
"default": {
|
|
2303
|
-
"minimumSystemVersion": "
|
|
2430
|
+
"minimumSystemVersion": "15.0"
|
|
2304
2431
|
},
|
|
2305
2432
|
"allOf": [
|
|
2306
2433
|
{
|
|
@@ -2749,6 +2876,11 @@
|
|
|
2749
2876
|
"type": "null"
|
|
2750
2877
|
}
|
|
2751
2878
|
]
|
|
2879
|
+
},
|
|
2880
|
+
"bundleVCRuntime": {
|
|
2881
|
+
"description": "Whether to bundle the Visual C++ runtime DLLs alongside the application.\n\n This can be particularly useful when your application includes sidecars or DLLs that do\n not statically link the Visual C++ runtime and require the runtime DLLs at runtime, and\n you do not want to require users to install the Visual C++ Redistributable. This can also\n be useful when `build > windows > staticVCRuntime` is set to `false`.",
|
|
2882
|
+
"default": false,
|
|
2883
|
+
"type": "boolean"
|
|
2752
2884
|
}
|
|
2753
2885
|
},
|
|
2754
2886
|
"additionalProperties": false
|
|
@@ -3880,8 +4012,8 @@
|
|
|
3880
4012
|
]
|
|
3881
4013
|
},
|
|
3882
4014
|
"minimumSystemVersion": {
|
|
3883
|
-
"description": "A version string indicating the minimum iOS version that the bundled application supports. Defaults to `
|
|
3884
|
-
"default": "
|
|
4015
|
+
"description": "A version string indicating the minimum iOS version that the bundled application supports. Defaults to `15.0`.\n\n Maps to the IPHONEOS_DEPLOYMENT_TARGET value.",
|
|
4016
|
+
"default": "15.0",
|
|
3885
4017
|
"type": "string"
|
|
3886
4018
|
},
|
|
3887
4019
|
"infoPlist": {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tauri-apps/cli",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.12.0",
|
|
4
4
|
"description": "Command line interface for building Tauri apps",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"funding": {
|
|
@@ -41,10 +41,10 @@
|
|
|
41
41
|
]
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
|
-
"@napi-rs/cli": "3.
|
|
44
|
+
"@napi-rs/cli": "3.9.0",
|
|
45
45
|
"@types/node": "^24.11.0",
|
|
46
46
|
"cross-env": "10.1.0",
|
|
47
|
-
"vitest": "^
|
|
47
|
+
"vitest": "^5.0.0"
|
|
48
48
|
},
|
|
49
49
|
"engines": {
|
|
50
50
|
"node": ">= 10"
|
|
@@ -65,16 +65,16 @@
|
|
|
65
65
|
"tauri": "node ./tauri.js"
|
|
66
66
|
},
|
|
67
67
|
"optionalDependencies": {
|
|
68
|
-
"@tauri-apps/cli-linux-x64-gnu": "2.
|
|
69
|
-
"@tauri-apps/cli-win32-x64-msvc": "2.
|
|
70
|
-
"@tauri-apps/cli-darwin-x64": "2.
|
|
71
|
-
"@tauri-apps/cli-darwin-arm64": "2.
|
|
72
|
-
"@tauri-apps/cli-linux-arm64-gnu": "2.
|
|
73
|
-
"@tauri-apps/cli-linux-arm64-musl": "2.
|
|
74
|
-
"@tauri-apps/cli-linux-arm-gnueabihf": "2.
|
|
75
|
-
"@tauri-apps/cli-linux-x64-musl": "2.
|
|
76
|
-
"@tauri-apps/cli-linux-riscv64-gnu": "2.
|
|
77
|
-
"@tauri-apps/cli-win32-ia32-msvc": "2.
|
|
78
|
-
"@tauri-apps/cli-win32-arm64-msvc": "2.
|
|
68
|
+
"@tauri-apps/cli-linux-x64-gnu": "2.12.0",
|
|
69
|
+
"@tauri-apps/cli-win32-x64-msvc": "2.12.0",
|
|
70
|
+
"@tauri-apps/cli-darwin-x64": "2.12.0",
|
|
71
|
+
"@tauri-apps/cli-darwin-arm64": "2.12.0",
|
|
72
|
+
"@tauri-apps/cli-linux-arm64-gnu": "2.12.0",
|
|
73
|
+
"@tauri-apps/cli-linux-arm64-musl": "2.12.0",
|
|
74
|
+
"@tauri-apps/cli-linux-arm-gnueabihf": "2.12.0",
|
|
75
|
+
"@tauri-apps/cli-linux-x64-musl": "2.12.0",
|
|
76
|
+
"@tauri-apps/cli-linux-riscv64-gnu": "2.12.0",
|
|
77
|
+
"@tauri-apps/cli-win32-ia32-msvc": "2.12.0",
|
|
78
|
+
"@tauri-apps/cli-win32-arm64-msvc": "2.12.0"
|
|
79
79
|
}
|
|
80
80
|
}
|
package/tauri.js
CHANGED
|
@@ -20,7 +20,7 @@ if (globalThis.navigator?.userAgent?.includes('Deno')) {
|
|
|
20
20
|
}
|
|
21
21
|
// Even if started by a package manager, the binary will be NodeJS.
|
|
22
22
|
// Some distribution still use "nodejs" as the binary name.
|
|
23
|
-
else if (
|
|
23
|
+
else if (/(nodejs|node|bun|electron)-?[0-9]*$/.test(binStem)) {
|
|
24
24
|
const managerStem = process.env.npm_execpath
|
|
25
25
|
? path.parse(process.env.npm_execpath).name.toLowerCase()
|
|
26
26
|
: null
|
|
File without changes
|
|
File without changes
|