From d1573877226e609461761aa538cd0ca4f24d22be Mon Sep 17 00:00:00 2001 From: Bajoca Date: Mon, 29 Jun 2026 11:00:59 +0200 Subject: [PATCH 01/41] fix(single-instance): Yield unix listener in macos (#3466) * Use tokio UnixListener so the task can yield and release the thread * use standard unix listener, convert to non blocking and cast into tokio yielding one * Create fix-yield-single-instance-macos.md * Update .changes/fix-yield-single-instance-macos.md Co-authored-by: Fabian-Lars <30730186+FabianLars@users.noreply.github.com> * use net feature in Tokio dependency * Use tokio UnixListener::bind, inside the tokio task --------- Co-authored-by: Fabian-Lars <30730186+FabianLars@users.noreply.github.com> --- .changes/fix-yield-single-instance-macos.md | 4 ++ Cargo.lock | 1 + plugins/single-instance/Cargo.toml | 1 + .../src/platform_impl/macos.rs | 65 +++++++++---------- 4 files changed, 38 insertions(+), 33 deletions(-) create mode 100644 .changes/fix-yield-single-instance-macos.md diff --git a/.changes/fix-yield-single-instance-macos.md b/.changes/fix-yield-single-instance-macos.md new file mode 100644 index 000000000..d9985957a --- /dev/null +++ b/.changes/fix-yield-single-instance-macos.md @@ -0,0 +1,4 @@ +--- +"single-instance": patch +--- +Fix blocked thread on the single-instance plugin for MacOS: replace standard `UnixListener` with `tokio::net::UnixListener`, so the task can yield. diff --git a/Cargo.lock b/Cargo.lock index f4c95b5fa..86be4d023 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6793,6 +6793,7 @@ dependencies = [ "tauri", "tauri-plugin-deep-link", "thiserror 2.0.12", + "tokio", "tracing", "windows-sys 0.60.2", "zbus", diff --git a/plugins/single-instance/Cargo.toml b/plugins/single-instance/Cargo.toml index 3da9ba7c8..3af5667c8 100644 --- a/plugins/single-instance/Cargo.toml +++ b/plugins/single-instance/Cargo.toml @@ -24,6 +24,7 @@ tracing = { workspace = true } thiserror = { workspace = true } tauri-plugin-deep-link = { path = "../deep-link", version = "2.4.9", optional = true } semver = { version = "1", optional = true } +tokio = { version = "1", features = ["net"] } [target."cfg(target_os = \"windows\")".dependencies.windows-sys] version = "0.60" diff --git a/plugins/single-instance/src/platform_impl/macos.rs b/plugins/single-instance/src/platform_impl/macos.rs index a2df9092e..bd2c74a7e 100644 --- a/plugins/single-instance/src/platform_impl/macos.rs +++ b/plugins/single-instance/src/platform_impl/macos.rs @@ -3,8 +3,8 @@ // SPDX-License-Identifier: MIT use std::{ - io::{BufWriter, Error, ErrorKind, Read, Write}, - os::unix::net::{UnixListener, UnixStream}, + io::{BufWriter, Error, ErrorKind, Write}, + os::unix::net::UnixStream, path::PathBuf, }; @@ -15,6 +15,7 @@ use tauri::{ plugin::{self, TauriPlugin}, AppHandle, Config, Manager, RunEvent, Runtime, }; +use tokio::io::AsyncReadExt; pub fn init(cb: Box>) -> TauriPlugin { plugin::Builder::new("single-instance") @@ -31,7 +32,7 @@ pub fn init(cb: Box>) -> TauriPlugin { ErrorKind::NotFound | ErrorKind::ConnectionRefused => { // This process claims itself as singleton as likely none exists socket_cleanup(&socket); - listen_for_other_instances(&socket, app.clone(), cb); + listen_for_other_instances(socket, app.clone(), cb); } _ => { tracing::debug!( @@ -92,42 +93,40 @@ fn notify_singleton(socket: &PathBuf) -> Result<(), Error> { } fn listen_for_other_instances( - socket: &PathBuf, + socket: PathBuf, app: AppHandle, mut cb: Box>, ) { - match UnixListener::bind(socket) { - Ok(listener) => { - tauri::async_runtime::spawn(async move { - for stream in listener.incoming() { - match stream { - Ok(mut stream) => { - let mut s = String::new(); - match stream.read_to_string(&mut s) { - Ok(_) => { - let (cwd, args) = s.split_once("\0\0").unwrap_or_default(); - let args: Vec = - args.split('\0').map(String::from).collect(); - cb(app.app_handle(), args, cwd.to_string()); - } - Err(e) => { - tracing::debug!("single_instance failed to be notified: {e}") - } + tauri::async_runtime::spawn(async move { + match tokio::net::UnixListener::bind(socket) { + Ok(listener) => loop { + match listener.accept().await { + Ok((mut stream, _addr)) => { + let mut s = String::new(); + match stream.read_to_string(&mut s).await { + Ok(_) => { + let (cwd, args) = s.split_once("\0\0").unwrap_or_default(); + let args: Vec = + args.split('\0').map(String::from).collect(); + cb(app.app_handle(), args, cwd.to_string()); + } + Err(e) => { + tracing::debug!("single_instance failed to be notified: {e}") } } - Err(err) => { - tracing::debug!("single_instance failed to be notified: {}", err); - continue; - } + } + Err(err) => { + tracing::debug!("single_instance failed to be notified: {}", err); + continue; } } - }); + }, + Err(err) => { + tracing::error!( + "single_instance failed to listen to other processes - launching normally: {}", + err + ); + } } - Err(err) => { - tracing::error!( - "single_instance failed to listen to other processes - launching normally: {}", - err - ); - } - } + }); } From b1439be66714e8e421fecb225464379f27ccc1ec Mon Sep 17 00:00:00 2001 From: Tony <68118705+Legend-Master@users.noreply.github.com> Date: Mon, 13 Jul 2026 16:51:50 +0800 Subject: [PATCH 02/41] chore: ignore cargo audit errors (#3481) * chore: ignore cargo audit errors * Bump anyhow --- .cargo/audit.toml | 10 ++++++++++ Cargo.lock | 9 ++++----- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/.cargo/audit.toml b/.cargo/audit.toml index c7ae907cb..9316268d7 100644 --- a/.cargo/audit.toml +++ b/.cargo/audit.toml @@ -1,7 +1,17 @@ [advisories] ignore = [ + # rsa Marvin Attack + "RUSTSEC-2023-0071", # time crate can't be updated in the repo because of MSRV, users are unaffected "RUSTSEC-2026-0009", # libflate crates can't be updated in the repo because of MSRV, users are unaffected "RUSTSEC-2026-0105", + # quick-xml, need an update in plist, can't be updated in the repo because of MSRV, users are unaffected + # Also needs on update in wayland-scanner > arboard > tauri-plugin-clipboard-manager + "RUSTSEC-2026-0194", + # quick-xml, need an update in plist, can't be updated in the repo because of MSRV, users are unaffected + # Also needs on update in wayland-scanner > arboard > tauri-plugin-clipboard-manager + "RUSTSEC-2026-0195", + # quinn-proto, can't be updated in the repo because of MSRV, users are unaffected + "RUSTSEC-2026-0185", ] diff --git a/Cargo.lock b/Cargo.lock index 86be4d023..c0c0d0745 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -201,9 +201,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.98" +version = "1.0.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" +checksum = "2a4385e2e34eb35d6b3efe798b9eb88096925d87726c0798709bf56d9ed84af3" [[package]] name = "api" @@ -7036,11 +7036,10 @@ dependencies = [ [[package]] name = "tauri-winrt-notification" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b1e66e07de489fe43a46678dd0b8df65e0c973909df1b60ba33874e297ba9b9" +checksum = "9ed071c670382e85fc2f48ae706492d8c338f4f89bf72520d32f8abfe880aade" dependencies = [ - "quick-xml 0.37.4", "thiserror 2.0.12", "windows 0.61.1", "windows-version", From 254f222e0e2bc79370f977855b6b39d956d3b568 Mon Sep 17 00:00:00 2001 From: Bajoca Date: Mon, 13 Jul 2026 13:23:56 +0200 Subject: [PATCH 03/41] chore(log): use kv stable feature rather than unstable (#3477) --- .changes/log-kv-stable-feature.md | 6 ++++++ Cargo.lock | 9 --------- Cargo.toml | 2 +- plugins/log/Cargo.toml | 2 +- 4 files changed, 8 insertions(+), 11 deletions(-) create mode 100644 .changes/log-kv-stable-feature.md diff --git a/.changes/log-kv-stable-feature.md b/.changes/log-kv-stable-feature.md new file mode 100644 index 000000000..f53c75843 --- /dev/null +++ b/.changes/log-kv-stable-feature.md @@ -0,0 +1,6 @@ +--- +"log": patch +"log-js": patch +--- + +Migrated from the `log` crate's `kv_unstable` feature flag to the `kv` feature flag stabilized in `0.4.21`. \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index c0c0d0745..9cc719bde 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3463,9 +3463,6 @@ name = "log" version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" -dependencies = [ - "value-bag", -] [[package]] name = "lru-slab" @@ -7744,12 +7741,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "value-bag" -version = "1.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "943ce29a8a743eb10d6082545d861b24f9d1b160b7d741e0f2cdf726bec909c5" - [[package]] name = "vcpkg" version = "0.2.15" diff --git a/Cargo.toml b/Cargo.toml index 87fc448c1..d297e4f71 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,7 @@ resolver = "2" [workspace.dependencies] serde = { version = "1", features = ["derive"] } tracing = "0.1" -log = "0.4" +log = "0.4.21" tauri = { version = "2.10", default-features = false } tauri-build = "2.5" tauri-plugin = "2.5" diff --git a/plugins/log/Cargo.toml b/plugins/log/Cargo.toml index c5c82fd27..7f0fd02b6 100644 --- a/plugins/log/Cargo.toml +++ b/plugins/log/Cargo.toml @@ -25,7 +25,7 @@ serde_json = { workspace = true } tauri = { workspace = true } thiserror = { workspace = true } serde_repr = "0.1" -log = { workspace = true, features = ["kv_unstable"] } +log = { workspace = true, features = ["kv"] } time = { version = "0.3", features = [ "formatting", "local-offset", From cad301fcc1f3ebad1eaef552c886b0bc8580c3fe Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 14 Jul 2026 01:10:29 +0200 Subject: [PATCH 04/41] publish new versions (#3447) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .changes/fix-yield-single-instance-macos.md | 4 ---- .changes/log-file-open-strategy.md | 6 ------ .changes/log-kv-stable-feature.md | 6 ------ .changes/positioner-current-monitor-panic.md | 6 ------ .changes/rmdep.md | 6 ------ Cargo.lock | 8 ++++---- examples/api/CHANGELOG.md | 6 ++++++ examples/api/package.json | 2 +- examples/api/src-tauri/CHANGELOG.md | 6 ++++++ examples/api/src-tauri/Cargo.toml | 4 ++-- plugins/log/CHANGELOG.md | 6 ++++++ plugins/log/Cargo.toml | 2 +- plugins/log/package.json | 2 +- plugins/positioner/CHANGELOG.md | 4 ++++ plugins/positioner/Cargo.toml | 2 +- plugins/positioner/package.json | 2 +- plugins/single-instance/CHANGELOG.md | 4 ++++ plugins/single-instance/Cargo.toml | 2 +- 18 files changed, 38 insertions(+), 40 deletions(-) delete mode 100644 .changes/fix-yield-single-instance-macos.md delete mode 100644 .changes/log-file-open-strategy.md delete mode 100644 .changes/log-kv-stable-feature.md delete mode 100644 .changes/positioner-current-monitor-panic.md delete mode 100644 .changes/rmdep.md diff --git a/.changes/fix-yield-single-instance-macos.md b/.changes/fix-yield-single-instance-macos.md deleted file mode 100644 index d9985957a..000000000 --- a/.changes/fix-yield-single-instance-macos.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -"single-instance": patch ---- -Fix blocked thread on the single-instance plugin for MacOS: replace standard `UnixListener` with `tokio::net::UnixListener`, so the task can yield. diff --git a/.changes/log-file-open-strategy.md b/.changes/log-file-open-strategy.md deleted file mode 100644 index 6a6ba55e4..000000000 --- a/.changes/log-file-open-strategy.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"log": minor:feat -"log-js": minor ---- - -Added the `FileOpenStrategy` for log rotation. It defaults to append into existing file if any (previous behaviour), and brings a new feature to create a new file per session: `FileOpenStrategy::Rotate`. diff --git a/.changes/log-kv-stable-feature.md b/.changes/log-kv-stable-feature.md deleted file mode 100644 index f53c75843..000000000 --- a/.changes/log-kv-stable-feature.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"log": patch -"log-js": patch ---- - -Migrated from the `log` crate's `kv_unstable` feature flag to the `kv` feature flag stabilized in `0.4.21`. \ No newline at end of file diff --git a/.changes/positioner-current-monitor-panic.md b/.changes/positioner-current-monitor-panic.md deleted file mode 100644 index 2f3a3c5d2..000000000 --- a/.changes/positioner-current-monitor-panic.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -positioner: patch -positioner-js: patch ---- - -Replaced a panic in `calculate_position` with an error return when the window has no associated monitor (e.g. during display sleep or monitor reconfiguration). diff --git a/.changes/rmdep.md b/.changes/rmdep.md deleted file mode 100644 index f72fc162f..000000000 --- a/.changes/rmdep.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"log": patch -"log-js": patch ---- - -Removed an unused dependency `byte-unit`. diff --git a/Cargo.lock b/Cargo.lock index 9cc719bde..0b7c91782 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -207,7 +207,7 @@ checksum = "2a4385e2e34eb35d6b3efe798b9eb88096925d87726c0798709bf56d9ed84af3" [[package]] name = "api" -version = "2.0.44" +version = "2.0.45" dependencies = [ "log", "serde", @@ -6640,7 +6640,7 @@ dependencies = [ [[package]] name = "tauri-plugin-log" -version = "2.8.0" +version = "2.9.0" dependencies = [ "android_logger", "fern", @@ -6742,7 +6742,7 @@ dependencies = [ [[package]] name = "tauri-plugin-positioner" -version = "2.3.2" +version = "2.3.3" dependencies = [ "log", "serde", @@ -6782,7 +6782,7 @@ dependencies = [ [[package]] name = "tauri-plugin-single-instance" -version = "2.4.2" +version = "2.4.3" dependencies = [ "semver", "serde", diff --git a/examples/api/CHANGELOG.md b/examples/api/CHANGELOG.md index 7b2776eb5..2f3d2a539 100644 --- a/examples/api/CHANGELOG.md +++ b/examples/api/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## \[2.0.41] + +### Dependencies + +- Upgraded to `log-js@2.9.0` + ## \[2.0.40] ### Dependencies diff --git a/examples/api/package.json b/examples/api/package.json index 2d6703d3b..5a2f5bb8f 100644 --- a/examples/api/package.json +++ b/examples/api/package.json @@ -1,7 +1,7 @@ { "name": "api", "private": true, - "version": "2.0.40", + "version": "2.0.41", "type": "module", "scripts": { "dev": "vite --clearScreen false", diff --git a/examples/api/src-tauri/CHANGELOG.md b/examples/api/src-tauri/CHANGELOG.md index c69a4585b..3b93638e9 100644 --- a/examples/api/src-tauri/CHANGELOG.md +++ b/examples/api/src-tauri/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## \[2.0.45] + +### Dependencies + +- Upgraded to `log@2.9.0` + ## \[2.0.44] ### Dependencies diff --git a/examples/api/src-tauri/Cargo.toml b/examples/api/src-tauri/Cargo.toml index ed1bf0df1..32d130603 100644 --- a/examples/api/src-tauri/Cargo.toml +++ b/examples/api/src-tauri/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "api" publish = false -version = "2.0.44" +version = "2.0.45" description = "An example Tauri Application showcasing the api" edition = "2021" rust-version = { workspace = true } @@ -20,7 +20,7 @@ serde = { workspace = true } tiny_http = "0.12" time = "0.3" log = { workspace = true } -tauri-plugin-log = { path = "../../../plugins/log", version = "2.8.0" } +tauri-plugin-log = { path = "../../../plugins/log", version = "2.9.0" } tauri-plugin-fs = { path = "../../../plugins/fs", version = "2.5.1", features = [ "watch", ] } diff --git a/plugins/log/CHANGELOG.md b/plugins/log/CHANGELOG.md index c26549d39..b9cd0dcc7 100644 --- a/plugins/log/CHANGELOG.md +++ b/plugins/log/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## \[2.9.0] + +- [`f08980f1`](https://github.com/tauri-apps/plugins-workspace/commit/f08980f123f191b9505bd290acd8fff0fdefeed9) ([#3445](https://github.com/tauri-apps/plugins-workspace/pull/3445) by [@bajoca05](https://github.com/tauri-apps/plugins-workspace/../../bajoca05)) Added the `FileOpenStrategy` for log rotation. It defaults to append into existing file if any (previous behaviour), and brings a new feature to create a new file per session: `FileOpenStrategy::Rotate`. +- [`254f222e`](https://github.com/tauri-apps/plugins-workspace/commit/254f222e0e2bc79370f977855b6b39d956d3b568) ([#3477](https://github.com/tauri-apps/plugins-workspace/pull/3477) by [@bajoca05](https://github.com/tauri-apps/plugins-workspace/../../bajoca05)) Migrated from the `log` crate's `kv_unstable` feature flag to the `kv` feature flag stabilized in `0.4.21`. +- [`0c23b8ec`](https://github.com/tauri-apps/plugins-workspace/commit/0c23b8ecfe7c2aca582a81ab7339b11e350b3cac) ([#3446](https://github.com/tauri-apps/plugins-workspace/pull/3446) by [@fee1-dead](https://github.com/tauri-apps/plugins-workspace/../../fee1-dead)) Removed an unused dependency `byte-unit`. + ## \[2.8.0] - [`2a625adf`](https://github.com/tauri-apps/plugins-workspace/commit/2a625adff30238904035b86b6e2db7595597e857) ([#3065](https://github.com/tauri-apps/plugins-workspace/pull/3065) by [@BinaryMuse](https://github.com/tauri-apps/plugins-workspace/../../BinaryMuse)) Allow specifying a log formatter per target using the `format` method on `Target`. diff --git a/plugins/log/Cargo.toml b/plugins/log/Cargo.toml index 7f0fd02b6..2e7daf2e4 100644 --- a/plugins/log/Cargo.toml +++ b/plugins/log/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-log" -version = "2.8.0" +version = "2.9.0" description = "Configurable logging for your Tauri app." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/log/package.json b/plugins/log/package.json index 2185fa9e8..342e12500 100644 --- a/plugins/log/package.json +++ b/plugins/log/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-log", - "version": "2.8.0", + "version": "2.9.0", "description": "Configurable logging for your Tauri app.", "license": "MIT OR Apache-2.0", "authors": [ diff --git a/plugins/positioner/CHANGELOG.md b/plugins/positioner/CHANGELOG.md index 5fd9c3ebd..b427a1c15 100644 --- a/plugins/positioner/CHANGELOG.md +++ b/plugins/positioner/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.3.3] + +- [`4be76900`](https://github.com/tauri-apps/plugins-workspace/commit/4be76900854cae3dc91363dea71b54505896e928) ([#3449](https://github.com/tauri-apps/plugins-workspace/pull/3449) by [@skkap](https://github.com/tauri-apps/plugins-workspace/../../skkap)) Replaced a panic in `calculate_position` with an error return when the window has no associated monitor (e.g. during display sleep or monitor reconfiguration). + ## \[2.3.2] - [`c0d64bf7`](https://github.com/tauri-apps/plugins-workspace/commit/c0d64bf7d9c0f2c8ed1d2614745e15bbb3cde6a7) ([#3420](https://github.com/tauri-apps/plugins-workspace/pull/3420) by [@UrsDeSwardt](https://github.com/tauri-apps/plugins-workspace/../../UrsDeSwardt)) Removed panics and replaced them with error handling. diff --git a/plugins/positioner/Cargo.toml b/plugins/positioner/Cargo.toml index dec0a24e6..4113953ca 100644 --- a/plugins/positioner/Cargo.toml +++ b/plugins/positioner/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-positioner" -version = "2.3.2" +version = "2.3.3" description = "Position your windows at well-known locations." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/positioner/package.json b/plugins/positioner/package.json index e91377dec..94b78f500 100644 --- a/plugins/positioner/package.json +++ b/plugins/positioner/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-positioner", - "version": "2.3.2", + "version": "2.3.3", "description": "Position your windows at well-known locations.", "license": "MIT OR Apache-2.0", "authors": [ diff --git a/plugins/single-instance/CHANGELOG.md b/plugins/single-instance/CHANGELOG.md index 8e6467111..08b77d46f 100644 --- a/plugins/single-instance/CHANGELOG.md +++ b/plugins/single-instance/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.4.3] + +- [`d1573877`](https://github.com/tauri-apps/plugins-workspace/commit/d1573877226e609461761aa538cd0ca4f24d22be) ([#3466](https://github.com/tauri-apps/plugins-workspace/pull/3466) by [@bajoca05](https://github.com/tauri-apps/plugins-workspace/../../bajoca05)) Fix blocked thread on the single-instance plugin for MacOS: replace standard `UnixListener` with `tokio::net::UnixListener`, so the task can yield. + ## \[2.4.2] ### Dependencies diff --git a/plugins/single-instance/Cargo.toml b/plugins/single-instance/Cargo.toml index 3af5667c8..d19b63ab4 100644 --- a/plugins/single-instance/Cargo.toml +++ b/plugins/single-instance/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-single-instance" -version = "2.4.2" +version = "2.4.3" description = "Ensure a single instance of your tauri app is running." authors = { workspace = true } license = { workspace = true } From 13c63af965a249c21b998a95d006aab2b687ca0c Mon Sep 17 00:00:00 2001 From: Tony <68118705+Legend-Master@users.noreply.github.com> Date: Wed, 15 Jul 2026 16:01:07 +0800 Subject: [PATCH 05/41] chore: fix clippy (#3488) --- plugins/persisted-scope/src/lib.rs | 3 +- plugins/shell/src/process/mod.rs | 6 +-- plugins/window-state/src/lib.rs | 72 +++++++++++++++--------------- 3 files changed, 39 insertions(+), 42 deletions(-) diff --git a/plugins/persisted-scope/src/lib.rs b/plugins/persisted-scope/src/lib.rs index 6ced7b247..2eb817f3a 100644 --- a/plugins/persisted-scope/src/lib.rs +++ b/plugins/persisted-scope/src/lib.rs @@ -232,10 +232,9 @@ pub fn init() -> TauriPlugin { let app_dir_ = app_dir.clone(); if let Some(fs_scope) = &fs_scope { - let app_ = app.clone(); fs_scope.listen(move |event| { if let tauri::fs::Event::PathAllowed(_) = event { - save_scopes(&app_.fs_scope(), &app_dir, &fs_scope_state_path); + save_scopes(&app.fs_scope(), &app_dir, &fs_scope_state_path); } }); } diff --git a/plugins/shell/src/process/mod.rs b/plugins/shell/src/process/mod.rs index 3d29162d6..7a1c2db24 100644 --- a/plugins/shell/src/process/mod.rs +++ b/plugins/shell/src/process/mod.rs @@ -479,10 +479,8 @@ fn read_line) -> CommandEvent + Send + Copy + 'static>( let _ = block_on_task(async move { tx_.send(wrapper(buf)).await }); } Err(e) => { - let tx_ = tx.clone(); - let _ = block_on_task( - async move { tx_.send(CommandEvent::Error(e.to_string())).await }, - ); + let _ = + block_on_task(async move { tx.send(CommandEvent::Error(e.to_string())).await }); break; } } diff --git a/plugins/window-state/src/lib.rs b/plugins/window-state/src/lib.rs index 42c0fdf6d..f3e75848a 100644 --- a/plugins/window-state/src/lib.rs +++ b/plugins/window-state/src/lib.rs @@ -452,47 +452,47 @@ impl Builder { } } - WindowEvent::Moved(position) if state_flags.contains(StateFlags::POSITION) => { - if window_clone - .state::() - .0 - .try_lock() - .is_ok() - && !window_clone.is_minimized().unwrap_or_default() - { - let mut c = cache.lock().unwrap(); - if let Some(state) = c.get_mut(&label) { - state.prev_x = state.x; - state.prev_y = state.y; + WindowEvent::Moved(position) + if state_flags.contains(StateFlags::POSITION) + && window_clone + .state::() + .0 + .try_lock() + .is_ok() + && !window_clone.is_minimized().unwrap_or_default() => + { + let mut c = cache.lock().unwrap(); + if let Some(state) = c.get_mut(&label) { + state.prev_x = state.x; + state.prev_y = state.y; - state.x = position.x; - state.y = position.y; - } + state.x = position.x; + state.y = position.y; } } - WindowEvent::Resized(size) if state_flags.contains(StateFlags::SIZE) => { - if window_clone - .state::() - .0 - .try_lock() - .is_ok() + WindowEvent::Resized(size) + if state_flags.contains(StateFlags::SIZE) + && window_clone + .state::() + .0 + .try_lock() + .is_ok() => + { + // TODO: Remove once https://github.com/tauri-apps/tauri/issues/5812 is resolved. + let is_maximized = if cfg!(target_os = "macos") + && (!window_clone.is_decorated().unwrap_or_default() + || !window_clone.is_resizable().unwrap_or_default()) { - // TODO: Remove once https://github.com/tauri-apps/tauri/issues/5812 is resolved. - let is_maximized = if cfg!(target_os = "macos") - && (!window_clone.is_decorated().unwrap_or_default() - || !window_clone.is_resizable().unwrap_or_default()) - { - false - } else { - window_clone.is_maximized().unwrap_or_default() - }; + false + } else { + window_clone.is_maximized().unwrap_or_default() + }; - if !window_clone.is_minimized().unwrap_or_default() && !is_maximized { - let mut c = cache.lock().unwrap(); - if let Some(state) = c.get_mut(&label) { - state.width = size.width; - state.height = size.height; - } + if !window_clone.is_minimized().unwrap_or_default() && !is_maximized { + let mut c = cache.lock().unwrap(); + if let Some(state) = c.get_mut(&label) { + state.width = size.width; + state.height = size.height; } } } From a0d949d93e3200c3d828dc772242cca5e84a0485 Mon Sep 17 00:00:00 2001 From: Tony <68118705+Legend-Master@users.noreply.github.com> Date: Wed, 15 Jul 2026 20:24:01 +0800 Subject: [PATCH 06/41] chore(deps): update pnpm to v11 (#3487) * chore(deps): update pnpm to v11 * Remove all `version: 11` * Bump tsx --- .github/workflows/audit-javascript.yml | 9 ++- .github/workflows/audit-rust.yml | 2 +- .github/workflows/check-change-files.yml | 2 +- .github/workflows/check-generated-files.yml | 11 ++-- .github/workflows/check-license-header.yml | 2 +- .github/workflows/covector-status.yml | 2 +- .../workflows/covector-version-or-publish.yml | 7 +-- .github/workflows/fmt.yml | 13 ++--- .github/workflows/integration-tests.yml | 2 +- .github/workflows/lint-javascript.yml | 9 ++- .github/workflows/lint-rust.yml | 4 +- .github/workflows/sync.yml | 9 ++- .github/workflows/test-rust.yml | 4 +- package.json | 12 +--- pnpm-lock.yaml | 58 +++++++------------ pnpm-workspace.yaml | 3 + 16 files changed, 59 insertions(+), 90 deletions(-) diff --git a/.github/workflows/audit-javascript.yml b/.github/workflows/audit-javascript.yml index f1a3ec3f8..66aff2b7f 100644 --- a/.github/workflows/audit-javascript.yml +++ b/.github/workflows/audit-javascript.yml @@ -33,20 +33,19 @@ jobs: audit-js: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: Cache pnpm modules - uses: actions/cache@v4 + uses: actions/cache@v6 with: path: ~/.pnpm-store key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}- - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v7 with: node-version: 'lts/*' - - uses: pnpm/action-setup@v4 + - uses: pnpm/action-setup@v6 with: - version: 10.x.x run_install: true - name: audit run: pnpm audit diff --git a/.github/workflows/audit-rust.yml b/.github/workflows/audit-rust.yml index 79fcc9e52..e1e4ef1c9 100644 --- a/.github/workflows/audit-rust.yml +++ b/.github/workflows/audit-rust.yml @@ -33,7 +33,7 @@ jobs: audit-rust: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - uses: rustsec/audit-check@v2 with: token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/check-change-files.yml b/.github/workflows/check-change-files.yml index 898f265fa..0a2098089 100644 --- a/.github/workflows/check-change-files.yml +++ b/.github/workflows/check-change-files.yml @@ -17,7 +17,7 @@ jobs: check: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: check change files end with .md run: | diff --git a/.github/workflows/check-generated-files.yml b/.github/workflows/check-generated-files.yml index 6a513b237..9ce88d2a4 100644 --- a/.github/workflows/check-generated-files.yml +++ b/.github/workflows/check-generated-files.yml @@ -21,7 +21,7 @@ jobs: outputs: packages: ${{ steps.filter.outputs.changes }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - uses: dorny/paths-filter@v2 id: filter with: @@ -153,21 +153,20 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: Cache pnpm modules - uses: actions/cache@v4 + uses: actions/cache@v6 with: path: ~/.pnpm-store key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}- - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v7 with: node-version: 'lts/*' - - uses: pnpm/action-setup@v4 + - uses: pnpm/action-setup@v6 with: - version: 10.x.x run_install: true - name: build api diff --git a/.github/workflows/check-license-header.yml b/.github/workflows/check-license-header.yml index 338a00417..a7ac28ea3 100644 --- a/.github/workflows/check-license-header.yml +++ b/.github/workflows/check-license-header.yml @@ -15,7 +15,7 @@ jobs: check: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - uses: dorny/paths-filter@v2 id: filter with: diff --git a/.github/workflows/covector-status.yml b/.github/workflows/covector-status.yml index 7eeda427b..a27720654 100644 --- a/.github/workflows/covector-status.yml +++ b/.github/workflows/covector-status.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 with: fetch-depth: 0 # required for use of git history - name: covector status diff --git a/.github/workflows/covector-version-or-publish.yml b/.github/workflows/covector-version-or-publish.yml index 488f3d365..d42f9aa27 100644 --- a/.github/workflows/covector-version-or-publish.yml +++ b/.github/workflows/covector-version-or-publish.yml @@ -28,18 +28,17 @@ jobs: successfulPublish: ${{ steps.covector.outputs.successfulPublish }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 with: fetch-depth: 0 # required for use of git history - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v7 with: node-version: 'lts/*' registry-url: 'https://registry.npmjs.org' - - uses: pnpm/action-setup@v4 + - uses: pnpm/action-setup@v6 with: - version: 10.x.x run_install: true - name: cargo login diff --git a/.github/workflows/fmt.yml b/.github/workflows/fmt.yml index 087b76744..780928b70 100644 --- a/.github/workflows/fmt.yml +++ b/.github/workflows/fmt.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: install Rust stable and rustfmt uses: dtolnay/rust-toolchain@stable @@ -25,20 +25,19 @@ jobs: prettier: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: Cache pnpm modules - uses: actions/cache@v4 + uses: actions/cache@v6 with: path: ~/.pnpm-store key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}- - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v7 with: node-version: 'lts/*' - - uses: pnpm/action-setup@v4 + - uses: pnpm/action-setup@v6 with: - version: 10.x.x run_install: true - run: pnpm format:check @@ -46,7 +45,7 @@ jobs: name: taplo (.toml files) runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: install Rust stable uses: dtolnay/rust-toolchain@stable diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index a31b7c92b..941e6d883 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -31,7 +31,7 @@ jobs: platform: [ubuntu-22.04, macos-latest, windows-latest] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 with: fetch-depth: 0 diff --git a/.github/workflows/lint-javascript.yml b/.github/workflows/lint-javascript.yml index 4c9db35e5..be7ffaaaa 100644 --- a/.github/workflows/lint-javascript.yml +++ b/.github/workflows/lint-javascript.yml @@ -36,20 +36,19 @@ jobs: eslint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: Cache pnpm modules - uses: actions/cache@v4 + uses: actions/cache@v6 with: path: ~/.pnpm-store key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}- - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v7 with: node-version: 'lts/*' - - uses: pnpm/action-setup@v4 + - uses: pnpm/action-setup@v6 with: - version: 10.x.x run_install: true - name: eslint run: pnpm lint diff --git a/.github/workflows/lint-rust.yml b/.github/workflows/lint-rust.yml index 7b4ad191d..4119fa13a 100644 --- a/.github/workflows/lint-rust.yml +++ b/.github/workflows/lint-rust.yml @@ -36,7 +36,7 @@ jobs: outputs: packages: ${{ steps.filter.outputs.changes }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - uses: dorny/paths-filter@v2 id: filter with: @@ -136,7 +136,7 @@ jobs: package: ${{ fromJSON(needs.changes.outputs.packages) }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: install webkit2gtk run: | diff --git a/.github/workflows/sync.yml b/.github/workflows/sync.yml index 6764cf8a8..50ac5497e 100644 --- a/.github/workflows/sync.yml +++ b/.github/workflows/sync.yml @@ -19,26 +19,25 @@ jobs: sync-to-mirrors: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: Fetch git tags run: git fetch origin 'refs/tags/*:refs/tags/*' - name: Cache pnpm modules - uses: actions/cache@v4 + uses: actions/cache@v6 with: path: ~/.pnpm-store key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}- - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v7 with: node-version: 'lts/*' - - uses: pnpm/action-setup@v4 + - uses: pnpm/action-setup@v6 with: - version: 10.x.x run_install: true - name: Build packages diff --git a/.github/workflows/test-rust.yml b/.github/workflows/test-rust.yml index 76f2e0ecd..f7c005ff2 100644 --- a/.github/workflows/test-rust.yml +++ b/.github/workflows/test-rust.yml @@ -38,7 +38,7 @@ jobs: outputs: packages: ${{ steps.filter.outputs.changes }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - uses: dorny/paths-filter@v2 id: filter with: @@ -225,7 +225,7 @@ jobs: runs-on: ${{ matrix.platform.os }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: install webkit2gtk if: contains(matrix.platform.target, 'unknown-linux') diff --git a/package.json b/package.json index 750ec7822..900997f47 100644 --- a/package.json +++ b/package.json @@ -25,15 +25,5 @@ "typescript-eslint": "8.58.2" }, "minimumReleaseAge": 4320, - "pnpm": { - "overrides": { - "esbuild@<0.25.0": ">=0.25.0" - }, - "onlyBuiltDependencies": [ - "esbuild" - ] - }, - "engines": { - "pnpm": "^10.16.0" - } + "packageManager": "pnpm@11.13.0" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9eec872e2..b45c47fa1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,9 +4,6 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false -overrides: - esbuild@<0.25.0: '>=0.25.0' - importers: .: @@ -122,7 +119,7 @@ importers: version: 1.2.2 '@sveltejs/vite-plugin-svelte': specifier: ^7.0.0 - version: 7.0.0(svelte@5.55.7(@typescript-eslint/types@8.58.2))(vite@8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.19.2)) + version: 7.0.0(svelte@5.55.7(@typescript-eslint/types@8.58.2))(vite@8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.1)) '@tauri-apps/cli': specifier: 2.11.2 version: 2.11.2 @@ -134,10 +131,10 @@ importers: version: 5.55.7(@typescript-eslint/types@8.58.2) unocss: specifier: ^66.6.7 - version: 66.6.7(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(vite@8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.19.2)) + version: 66.6.7(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(vite@8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.1)) vite: specifier: ^8.0.1 - version: 8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.19.2) + version: 8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.1) plugins/autostart: dependencies: @@ -196,7 +193,7 @@ importers: version: 6.0.3 vite: specifier: ^8.0.1 - version: 8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.19.2) + version: 8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.1) plugins/dialog: dependencies: @@ -310,7 +307,7 @@ importers: version: 6.0.3 vite: specifier: ^8.0.1 - version: 8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.19.2) + version: 8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.1) plugins/stronghold: dependencies: @@ -350,7 +347,7 @@ importers: version: 6.0.3 vite: specifier: ^8.0.1 - version: 8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.19.2) + version: 8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.1) plugins/window-state: dependencies: @@ -1499,9 +1496,6 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - get-tsconfig@4.14.0: - resolution: {integrity: sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==} - glob-parent@6.0.2: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} @@ -1767,9 +1761,6 @@ packages: resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} hasBin: true - resolve-pkg-maps@1.0.0: - resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - resolve@1.22.11: resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==} engines: {node: '>= 0.4'} @@ -1858,8 +1849,8 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - tsx@4.19.2: - resolution: {integrity: sha512-pOUl6Vo2LUq/bSa8S5q7b91cgNSjctn9ugq/+Mvow99qW6x/UZYwzxy/3NmqoT66eHYfCVvFvACC58UBPFf28g==} + tsx@4.23.1: + resolution: {integrity: sha512-GQHnkIfxyx1wYCOS/wonik5MVRZU9hi1TEZmzGZSCJB1y9YgoZ8H6itNE/u4suE+yLmOzuE4E5S4TZ/ZX2wcWQ==} engines: {node: '>=18.0.0'} hasBin: true @@ -2420,14 +2411,14 @@ snapshots: dependencies: acorn: 8.16.0 - '@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.7(@typescript-eslint/types@8.58.2))(vite@8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.19.2))': + '@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.7(@typescript-eslint/types@8.58.2))(vite@8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.1))': dependencies: deepmerge: 4.3.1 magic-string: 0.30.21 obug: 2.1.1 svelte: 5.55.7(@typescript-eslint/types@8.58.2) - vite: 8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.19.2) - vitefu: 1.1.2(vite@8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.19.2)) + vite: 8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.1) + vitefu: 1.1.2(vite@8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.1)) '@tauri-apps/api@2.11.0': {} @@ -2707,7 +2698,7 @@ snapshots: dependencies: '@unocss/core': 66.6.7 - '@unocss/vite@66.6.7(vite@8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.19.2))': + '@unocss/vite@66.6.7(vite@8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.1))': dependencies: '@jridgewell/remapping': 2.3.5 '@unocss/config': 66.6.7 @@ -2718,7 +2709,7 @@ snapshots: pathe: 2.0.3 tinyglobby: 0.2.17 unplugin-utils: 0.3.1 - vite: 8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.19.2) + vite: 8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.1) '@zerodevx/svelte-json-view@1.0.11(svelte@5.55.7(@typescript-eslint/types@8.58.2))': dependencies: @@ -2945,11 +2936,6 @@ snapshots: function-bind@1.1.2: {} - get-tsconfig@4.14.0: - dependencies: - resolve-pkg-maps: 1.0.0 - optional: true - glob-parent@6.0.2: dependencies: is-glob: 4.0.3 @@ -3193,9 +3179,6 @@ snapshots: regexp-tree@0.1.27: {} - resolve-pkg-maps@1.0.0: - optional: true - resolve@1.22.11: dependencies: is-core-module: 2.16.1 @@ -3330,10 +3313,9 @@ snapshots: tslib@2.8.1: {} - tsx@4.19.2: + tsx@4.23.1: dependencies: esbuild: 0.28.1 - get-tsconfig: 4.14.0 optionalDependencies: fsevents: 2.3.3 optional: true @@ -3372,7 +3354,7 @@ snapshots: quansync: 1.0.0 unconfig-core: 7.5.0 - unocss@66.6.7(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(vite@8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.19.2)): + unocss@66.6.7(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(vite@8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.1)): dependencies: '@unocss/cli': 66.6.7 '@unocss/core': 66.6.7 @@ -3390,7 +3372,7 @@ snapshots: '@unocss/transformer-compile-class': 66.6.7 '@unocss/transformer-directives': 66.6.7 '@unocss/transformer-variant-group': 66.6.7 - '@unocss/vite': 66.6.7(vite@8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.19.2)) + '@unocss/vite': 66.6.7(vite@8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.1)) transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' @@ -3412,7 +3394,7 @@ snapshots: dependencies: punycode: 2.3.1 - vite@8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.19.2): + vite@8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.1): dependencies: lightningcss: 1.32.0 picomatch: 4.0.4 @@ -3424,11 +3406,11 @@ snapshots: fsevents: 2.3.3 jiti: 2.6.1 terser: 5.46.1 - tsx: 4.19.2 + tsx: 4.23.1 - vitefu@1.1.2(vite@8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.19.2)): + vitefu@1.1.2(vite@8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.1)): optionalDependencies: - vite: 8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.19.2) + vite: 8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.1) webpack-virtual-modules@0.6.2: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 43839b9eb..186e599d6 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -2,3 +2,6 @@ packages: - plugins/* - plugins/*/examples/* - examples/* + +allowBuilds: + esbuild: true From edc52ea056e8e8c6d698a3d043e6b3cbc9d04df0 Mon Sep 17 00:00:00 2001 From: Tony <68118705+Legend-Master@users.noreply.github.com> Date: Wed, 15 Jul 2026 23:49:37 +0800 Subject: [PATCH 07/41] chore(deps): bump create-pull-request to v8 (#3489) --- .github/workflows/covector-version-or-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/covector-version-or-publish.yml b/.github/workflows/covector-version-or-publish.yml index d42f9aa27..ca563b52d 100644 --- a/.github/workflows/covector-version-or-publish.yml +++ b/.github/workflows/covector-version-or-publish.yml @@ -73,7 +73,7 @@ jobs: - name: Create Pull Request With Versions Bumped id: cpr - uses: peter-evans/create-pull-request@dd2324fc52d5d43c699a5636bcf19fceaa70c284 # 7.0.7 + uses: peter-evans/create-pull-request@v8.1.1 if: steps.covector.outputs.commandRan == 'version' with: title: 'Publish New Versions (${{ github.ref_name }})' From 40ae0a7fa0ecc9b0cdbd952297f7a17f37308229 Mon Sep 17 00:00:00 2001 From: Tony <68118705+Legend-Master@users.noreply.github.com> Date: Thu, 16 Jul 2026 17:27:19 +0800 Subject: [PATCH 08/41] enhance(dialog): use `MaterialAlertDialogBuilder` (#3491) * Fix example insets * Add app-region: drag * Use `Theme.Material3.DayNight.NoActionBar` * Re-generate some kotlin files * Use MaterialAlertDialogBuilder * Add change file * Revert back to margin-top: 0.5rem * Re-generate outdated gradle wrapper from #3039 * Move title bar to its own file * Fix cancel message --- .changes/material-dialog.md | 6 + examples/api/src-tauri/capabilities/base.json | 3 +- .../main/java/com/tauri/api/MainActivity.kt | 10 +- .../app/src/main/res/values-night/themes.xml | 2 +- .../app/src/main/res/values/themes.xml | 2 +- .../java/com/tauri/api/kotlin/BuildTask.kt | 18 ++- .../gradle/wrapper/gradle-wrapper.properties | 2 +- examples/api/src/App.svelte | 120 +++--------------- examples/api/src/app.css | 30 +++-- examples/api/src/lib/TitleBar.svelte | 100 +++++++++++++++ examples/api/src/views/Dialog.svelte | 10 +- .../app/src/main/res/values-night/themes.xml | 2 +- .../app/src/main/res/values/themes.xml | 2 +- plugins/dialog/android/build.gradle.kts | 4 +- .../android/src/main/java/DialogPlugin.kt | 7 +- 15 files changed, 185 insertions(+), 133 deletions(-) create mode 100644 .changes/material-dialog.md create mode 100644 examples/api/src/lib/TitleBar.svelte diff --git a/.changes/material-dialog.md b/.changes/material-dialog.md new file mode 100644 index 000000000..30b4418ae --- /dev/null +++ b/.changes/material-dialog.md @@ -0,0 +1,6 @@ +--- +dialog: patch +dialog-js: patch +--- + +Use `com.google.android.material.dialog.MaterialAlertDialogBuilder` instead of `AlertDialog` so the dialog follows the app's theme diff --git a/examples/api/src-tauri/capabilities/base.json b/examples/api/src-tauri/capabilities/base.json index f7fd7dff0..f5286a4ac 100644 --- a/examples/api/src-tauri/capabilities/base.json +++ b/examples/api/src-tauri/capabilities/base.json @@ -17,8 +17,7 @@ "core:default", "fs:default", "core:window:allow-minimize", - "core:window:allow-maximize", - "core:window:allow-unmaximize", + "core:window:allow-toggle-maximize", "core:window:allow-close", "core:window:allow-start-dragging", "notification:default", diff --git a/examples/api/src-tauri/gen/android/app/src/main/java/com/tauri/api/MainActivity.kt b/examples/api/src-tauri/gen/android/app/src/main/java/com/tauri/api/MainActivity.kt index 0a05f42b6..e89f63220 100644 --- a/examples/api/src-tauri/gen/android/app/src/main/java/com/tauri/api/MainActivity.kt +++ b/examples/api/src-tauri/gen/android/app/src/main/java/com/tauri/api/MainActivity.kt @@ -1,3 +1,11 @@ package com.tauri.api -class MainActivity : TauriActivity() \ No newline at end of file +import android.os.Bundle +import androidx.activity.enableEdgeToEdge + +class MainActivity : TauriActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + enableEdgeToEdge() + super.onCreate(savedInstanceState) + } +} diff --git a/examples/api/src-tauri/gen/android/app/src/main/res/values-night/themes.xml b/examples/api/src-tauri/gen/android/app/src/main/res/values-night/themes.xml index f03785271..4042aae02 100644 --- a/examples/api/src-tauri/gen/android/app/src/main/res/values-night/themes.xml +++ b/examples/api/src-tauri/gen/android/app/src/main/res/values-night/themes.xml @@ -1,6 +1,6 @@ - diff --git a/examples/api/src-tauri/gen/android/app/src/main/res/values/themes.xml b/examples/api/src-tauri/gen/android/app/src/main/res/values/themes.xml index f03785271..4042aae02 100644 --- a/examples/api/src-tauri/gen/android/app/src/main/res/values/themes.xml +++ b/examples/api/src-tauri/gen/android/app/src/main/res/values/themes.xml @@ -1,6 +1,6 @@ - diff --git a/examples/api/src-tauri/gen/android/buildSrc/src/main/java/com/tauri/api/kotlin/BuildTask.kt b/examples/api/src-tauri/gen/android/buildSrc/src/main/java/com/tauri/api/kotlin/BuildTask.kt index f98748258..f764e2ad9 100644 --- a/examples/api/src-tauri/gen/android/buildSrc/src/main/java/com/tauri/api/kotlin/BuildTask.kt +++ b/examples/api/src-tauri/gen/android/buildSrc/src/main/java/com/tauri/api/kotlin/BuildTask.kt @@ -21,7 +21,23 @@ open class BuildTask : DefaultTask() { runTauriCli(executable) } catch (e: Exception) { if (Os.isFamily(Os.FAMILY_WINDOWS)) { - runTauriCli("$executable.cmd") + // Try different Windows-specific extensions + val fallbacks = listOf( + "$executable.exe", + "$executable.cmd", + "$executable.bat", + ) + + var lastException: Exception = e + for (fallback in fallbacks) { + try { + runTauriCli(fallback) + return + } catch (fallbackException: Exception) { + lastException = fallbackException + } + } + throw lastException } else { throw e; } diff --git a/examples/api/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties b/examples/api/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties index 0df10d556..c5f9a53c2 100644 --- a/examples/api/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties +++ b/examples/api/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ #Tue May 10 19:22:52 CST 2022 distributionBase=GRADLE_USER_HOME -distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip distributionPath=wrapper/dists zipStorePath=wrapper/dists zipStoreBase=GRADLE_USER_HOME diff --git a/examples/api/src/App.svelte b/examples/api/src/App.svelte index 8e114c4b9..b9b0fb8ea 100644 --- a/examples/api/src/App.svelte +++ b/examples/api/src/App.svelte @@ -1,4 +1,5 @@ + +
+ Tauri API Validation + + + + + + +
diff --git a/examples/api/src/views/Dialog.svelte b/examples/api/src/views/Dialog.svelte index 7e89e36ff..7cad5250e 100644 --- a/examples/api/src/views/Dialog.svelte +++ b/examples/api/src/views/Dialog.svelte @@ -55,7 +55,7 @@ async function openDialog() { try { - var result = await open({ + const result = await open({ title: "My wonderful open dialog", defaultPath, filters: filter @@ -74,9 +74,11 @@ if (Array.isArray(result)) { onMessage(result); + } else if (result === null) { + onMessage('user cancelled the selection') } else { - var pathToRead = result; - var isFile = pathToRead.match(/\S+\.\S+$/g); + const pathToRead = result; + const isFile = pathToRead.match(/\S+\.\S+$/g); await readFile(pathToRead) .then(function (res) { @@ -89,7 +91,7 @@ arrayBufferToBase64( new Uint8Array(res), function (base64) { - var src = "data:image/png;base64," + base64; + const src = "data:image/png;base64," + base64; insecureRenderHtml(''); } ); diff --git a/plugins/deep-link/examples/app/src-tauri/gen/android/app/src/main/res/values-night/themes.xml b/plugins/deep-link/examples/app/src-tauri/gen/android/app/src/main/res/values-night/themes.xml index 3238df1f0..2777e7358 100644 --- a/plugins/deep-link/examples/app/src-tauri/gen/android/app/src/main/res/values-night/themes.xml +++ b/plugins/deep-link/examples/app/src-tauri/gen/android/app/src/main/res/values-night/themes.xml @@ -1,6 +1,6 @@ - diff --git a/plugins/deep-link/examples/app/src-tauri/gen/android/app/src/main/res/values/themes.xml b/plugins/deep-link/examples/app/src-tauri/gen/android/app/src/main/res/values/themes.xml index 3238df1f0..2777e7358 100644 --- a/plugins/deep-link/examples/app/src-tauri/gen/android/app/src/main/res/values/themes.xml +++ b/plugins/deep-link/examples/app/src-tauri/gen/android/app/src/main/res/values/themes.xml @@ -1,6 +1,6 @@ - diff --git a/plugins/dialog/android/build.gradle.kts b/plugins/dialog/android/build.gradle.kts index 248ebf68f..8913dfcf7 100644 --- a/plugins/dialog/android/build.gradle.kts +++ b/plugins/dialog/android/build.gradle.kts @@ -35,8 +35,8 @@ android { dependencies { implementation("androidx.core:core-ktx:1.9.0") - implementation("androidx.appcompat:appcompat:1.6.0") - implementation("com.google.android.material:material:1.7.0") + implementation("androidx.appcompat:appcompat:1.7.1") + implementation("com.google.android.material:material:1.13.0") testImplementation("junit:junit:4.13.2") androidTestImplementation("androidx.test.ext:junit:1.1.5") androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1") diff --git a/plugins/dialog/android/src/main/java/DialogPlugin.kt b/plugins/dialog/android/src/main/java/DialogPlugin.kt index 447a29911..5c58f00dc 100644 --- a/plugins/dialog/android/src/main/java/DialogPlugin.kt +++ b/plugins/dialog/android/src/main/java/DialogPlugin.kt @@ -5,7 +5,6 @@ package app.tauri.dialog import android.app.Activity -import android.app.AlertDialog import android.content.Intent import android.net.Uri import android.os.Handler @@ -21,6 +20,7 @@ import app.tauri.plugin.Invoke import app.tauri.plugin.JSArray import app.tauri.plugin.JSObject import app.tauri.plugin.Plugin +import com.google.android.material.dialog.MaterialAlertDialogBuilder @InvokeArg class Filter { @@ -158,7 +158,7 @@ class DialogPlugin(private val activity: Activity): Plugin(activity) { Handler(Looper.getMainLooper()) .post { - val builder = AlertDialog.Builder(activity) + val builder = MaterialAlertDialogBuilder(activity) if (args.title != null) { builder.setTitle(args.title) @@ -191,8 +191,7 @@ class DialogPlugin(private val activity: Activity): Plugin(activity) { } } - val dialog = builder.create() - dialog.show() + builder.show() } } From d6e0b6bbb1e4c73219a4965ed1772d68003a4a8a Mon Sep 17 00:00:00 2001 From: Tony <68118705+Legend-Master@users.noreply.github.com> Date: Thu, 16 Jul 2026 19:47:52 +0800 Subject: [PATCH 09/41] chore(example): clean up and migrate to ts partially (#3492) * chore(example): clean up and migrate to ts * Add missing permissions * Mirror line-height: 1.5 and remove h-* --- examples/api/src-tauri/capabilities/base.json | 1 + examples/api/src/App.svelte | 215 ++++++++++-------- examples/api/src/app.css | 4 + examples/api/src/lib/TitleBar.svelte | 23 +- examples/api/src/views/Clipboard.svelte | 3 +- examples/api/src/views/Dialog.svelte | 160 ++++++------- examples/api/src/views/FileSystem.svelte | 6 +- 7 files changed, 224 insertions(+), 188 deletions(-) diff --git a/examples/api/src-tauri/capabilities/base.json b/examples/api/src-tauri/capabilities/base.json index f5286a4ac..91b2d6b45 100644 --- a/examples/api/src-tauri/capabilities/base.json +++ b/examples/api/src-tauri/capabilities/base.json @@ -15,6 +15,7 @@ ] }, "core:default", + "core:app:allow-set-app-theme", "fs:default", "core:window:allow-minimize", "core:window:allow-toggle-maximize", diff --git a/examples/api/src/App.svelte b/examples/api/src/App.svelte index b9b0fb8ea..3d9f4987a 100644 --- a/examples/api/src/App.svelte +++ b/examples/api/src/App.svelte @@ -1,8 +1,16 @@ - + + {#if isWindows} - + {/if}
@@ -413,9 +433,10 @@ id="console" class="select-none h-15rem grid grid-rows-[2px_2rem_1fr] gap-1 overflow-hidden" > -
@@ -426,7 +447,7 @@ hover:bg-hoverOverlay dark:hover:bg-darkHoverOverlay active:bg-hoverOverlay/25 dark:active:bg-darkHoverOverlay/25 " - on:click={clear} + onclick={clear} >
@@ -435,8 +456,8 @@ bind:this={consoleTextEl} class="px-2 overflow-y-auto all:font-mono code-block all:text-xs select-text mr-2" > - {#each $messages as r} - {@html r.html} + {#each $messages as messageHtml} + {@html messageHtml} {/each}
diff --git a/examples/api/src/app.css b/examples/api/src/app.css index bbf0fdd9a..20df36aa1 100644 --- a/examples/api/src/app.css +++ b/examples/api/src/app.css @@ -1,3 +1,7 @@ +:root { + line-height: 1.5; +} + *:not(h1, h2, h3, h4, h5, h6) { margin: 0; padding: 0; diff --git a/examples/api/src/lib/TitleBar.svelte b/examples/api/src/lib/TitleBar.svelte index ec927d12b..c1e425316 100644 --- a/examples/api/src/lib/TitleBar.svelte +++ b/examples/api/src/lib/TitleBar.svelte @@ -1,13 +1,14 @@ @@ -173,15 +180,16 @@
- - + - - + - - - + +
diff --git a/examples/api/src/views/FileSystem.svelte b/examples/api/src/views/FileSystem.svelte index fbec86282..bc35547ec 100644 --- a/examples/api/src/views/FileSystem.svelte +++ b/examples/api/src/views/FileSystem.svelte @@ -5,7 +5,7 @@ import { arrayBufferToBase64 } from '../lib/utils' import { onDestroy, onMount } from 'svelte' - const { onMessage, insecureRenderHtml } = $props() + const { onMessage } = $props() let path = $state('') let img @@ -118,12 +118,12 @@ new Uint8Array(response), function (base64) { const src = 'data:image/png;base64,' + base64 - insecureRenderHtml('') + onMessage('') } ) } else { const value = String.fromCharCode.apply(null, response) - insecureRenderHtml( + onMessage( '' ) setTimeout(() => { From cdfd462955f911f19f9dffa92c55c5b6a213ecb9 Mon Sep 17 00:00:00 2001 From: Tony <68118705+Legend-Master@users.noreply.github.com> Date: Thu, 16 Jul 2026 21:31:40 +0800 Subject: [PATCH 10/41] chore(example): set `color-cheme` (#3493) This allows the unstyled user agent elements (like the checkbox) match the selected theme colors --- examples/api/index.html | 5 +++-- examples/api/src/App.svelte | 16 +++++++++------- examples/api/src/app.css | 7 +++++++ 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/examples/api/index.html b/examples/api/index.html index 655165ea0..2cd1bfe5f 100644 --- a/examples/api/index.html +++ b/examples/api/index.html @@ -1,12 +1,13 @@ - + - Svelte + Vite App + + API Example App diff --git a/examples/api/src/App.svelte b/examples/api/src/App.svelte index 3d9f4987a..00b914810 100644 --- a/examples/api/src/App.svelte +++ b/examples/api/src/App.svelte @@ -186,9 +186,13 @@ function applyTheme() { const isDark = theme === 'auto' ? preferDark.current : theme === 'dark' - isDark - ? document.documentElement.classList.add('dark') - : document.documentElement.classList.remove('dark') + if (isDark) { + document.documentElement.classList.add('dark') + document.documentElement.classList.remove('light') + } else { + document.documentElement.classList.remove('dark') + document.documentElement.classList.add('light') + } setTheme(theme === 'auto' ? null : theme) localStorage.setItem('theme', theme) } @@ -331,7 +335,7 @@ id="sidebarToggle" bind:this={sidebarToggle} class="z-2000 hidden lt-sm:flex justify-center absolute items-center w-8 h-8 rd-8 - bg-accent dark:bg-darkAccent active:bg-accentDark dark:active:bg-darkAccentDark" + bg-accent dark:bg-darkAccent active:bg-accentDark dark:active:bg-darkAccentDark text-accentText dark:text-darkAccentText" > {#if isSideBarOpen} @@ -397,9 +401,7 @@

-
+
{#each views as view} Date: Sat, 18 Jul 2026 19:46:31 +0800 Subject: [PATCH 11/41] fix(store): `StoreOptions.defaults` should not be required (#3499) --- .changes/store-optional-defaults.md | 6 ++++++ plugins/store/guest-js/index.ts | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 .changes/store-optional-defaults.md diff --git a/.changes/store-optional-defaults.md b/.changes/store-optional-defaults.md new file mode 100644 index 000000000..6eddb2d65 --- /dev/null +++ b/.changes/store-optional-defaults.md @@ -0,0 +1,6 @@ +--- +store: patch +store-js: patch +--- + +Fix `StoreOptions` requires `defaults` field diff --git a/plugins/store/guest-js/index.ts b/plugins/store/guest-js/index.ts index 776894a1b..ec8f11657 100644 --- a/plugins/store/guest-js/index.ts +++ b/plugins/store/guest-js/index.ts @@ -21,7 +21,7 @@ export type StoreOptions = { /** * Default value of the store */ - defaults: { [key: string]: unknown } + defaults?: { [key: string]: unknown } /** * Auto save on modification with debounce duration in milliseconds, it's 100ms by default, pass in `false` to disable it */ From 57ac98645324c04ab2b4c969538f5d55569bf43d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 18 Jul 2026 22:28:03 +0800 Subject: [PATCH 12/41] chore(deps): update dependency @tauri-apps/cli to v2.11.4 (#3463) * chore(deps): update dependency @tauri-apps/cli to v2.11.4 * Use workspace dependencies in example * Bump tauri * Leftover --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Tony --- Cargo.lock | 50 +++--- examples/api/package.json | 40 ++--- plugins/deep-link/examples/app/package.json | 4 +- plugins/deep-link/package.json | 2 +- .../examples/vanilla/package.json | 2 +- .../examples/AppSettingsManager/package.json | 2 +- .../websocket/examples/tauri-app/package.json | 2 +- pnpm-lock.yaml | 158 +++++++++--------- 8 files changed, 130 insertions(+), 130 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0b7c91782..56aa85999 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -300,7 +300,7 @@ dependencies = [ "objc2-foundation 0.3.0", "parking_lot", "percent-encoding", - "windows-sys 0.52.0", + "windows-sys 0.59.0", "wl-clipboard-rs", "x11rb", ] @@ -1041,7 +1041,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "117725a109d387c937a1533ce01b450cbde6b88abceea8473c4d7a85853cda3c" dependencies = [ "lazy_static", - "windows-sys 0.48.0", + "windows-sys 0.59.0", ] [[package]] @@ -1862,7 +1862,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "976dd42dc7e85965fe702eb8164f21f450704bdde31faefd6471dba214cb594e" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -4717,7 +4717,7 @@ dependencies = [ "once_cell", "socket2", "tracing", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -5167,7 +5167,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys 0.4.15", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -5180,7 +5180,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys 0.11.0", - "windows-sys 0.52.0", + "windows-sys 0.60.2", ] [[package]] @@ -5237,7 +5237,7 @@ dependencies = [ "security-framework 3.5.1", "security-framework-sys", "webpki-root-certs", - "windows-sys 0.52.0", + "windows-sys 0.60.2", ] [[package]] @@ -6309,9 +6309,9 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tauri" -version = "2.11.1" +version = "2.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b93bd86d231f0a8138f11a02a584769fe4b703dc36ae133d783228dbc4801405" +checksum = "667b20e2726d572dea2de7370da16e188eb06008faf9a92fab7cdc46791190b5" dependencies = [ "anyhow", "bytes", @@ -6364,9 +6364,9 @@ dependencies = [ [[package]] name = "tauri-build" -version = "2.6.1" +version = "2.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a318b234cc2dea65f575467bafcfb76286bce228ebc3778e337d61d03213007" +checksum = "bc9ce40b16101cb6ea63d3e221567affd1c3a9205f95d7bc574941a10636b632" dependencies = [ "anyhow", "cargo_toml", @@ -6387,9 +6387,9 @@ dependencies = [ [[package]] name = "tauri-codegen" -version = "2.6.1" +version = "2.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bd11644962add2549a60b7e7c6800f17d7020156e02f516021d8103e80cc528" +checksum = "08279169ff42f8fc45a1dbc9dcae888893ba95288142e5880c59b93a26d2cfc5" dependencies = [ "base64 0.22.1", "ico", @@ -6413,9 +6413,9 @@ dependencies = [ [[package]] name = "tauri-macros" -version = "2.6.1" +version = "2.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fed9d3742a37a355d2e47c9af924e9fbc112abb76f9835d35d4780e318419502" +checksum = "e8b394794f399a421811d06966343e7933fcae92d59f5180b9388d1174497a45" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -6932,9 +6932,9 @@ dependencies = [ [[package]] name = "tauri-runtime" -version = "2.11.1" +version = "2.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fef478ba1d2ac21c2d528740b24d0cb315e1e8b1111aae53fafac34804371fc" +checksum = "b0b4bc95aed361b0019067d189a1174a603d460d0f6c72606512d59fc9c12ec8" dependencies = [ "cookie", "dpi", @@ -6957,9 +6957,9 @@ dependencies = [ [[package]] name = "tauri-runtime-wry" -version = "2.11.1" +version = "2.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3989df2ae1c476404fe0a2e8ffc4cfbde97e51efd613c2bb5355fbc9ab52cf0" +checksum = "4e6fac707727b7a2f48e4ded90976324267371073edbb415ffb73bb0458d203f" dependencies = [ "gtk", "http", @@ -6983,9 +6983,9 @@ dependencies = [ [[package]] name = "tauri-utils" -version = "2.9.1" +version = "2.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d57200389a2f82b4b0a40ae29ca19b6978116e8f4d4e974c3234ce40c0ffbdec" +checksum = "3e176a18e67764923c4f1ce66f25ae4abe5f688384d5eb1a0fa6c77f3d90f887" dependencies = [ "aes-gcm", "anyhow", @@ -7052,7 +7052,7 @@ dependencies = [ "getrandom 0.3.2", "once_cell", "rustix 1.1.3", - "windows-sys 0.52.0", + "windows-sys 0.60.2", ] [[package]] @@ -7467,9 +7467,9 @@ dependencies = [ [[package]] name = "tray-icon" -version = "0.23.1" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15edbb0d80583e85ee8df283410038e17314df5cba30da2087a54a85216c0773" +checksum = "65ba1e5f6b9ef9fd87e21b9c6f351554dbd717960089168fcfdef854686961dc" dependencies = [ "crossbeam-channel", "dirs 6.0.0", @@ -8186,7 +8186,7 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.59.0", ] [[package]] diff --git a/examples/api/package.json b/examples/api/package.json index 5a2f5bb8f..51456eea7 100644 --- a/examples/api/package.json +++ b/examples/api/package.json @@ -11,32 +11,32 @@ }, "dependencies": { "@tauri-apps/api": "^2.11.0", - "@tauri-apps/plugin-barcode-scanner": "^2.4.5", - "@tauri-apps/plugin-biometric": "^2.3.2", - "@tauri-apps/plugin-cli": "^2.4.1", - "@tauri-apps/plugin-clipboard-manager": "^2.3.2", - "@tauri-apps/plugin-dialog": "^2.7.1", - "@tauri-apps/plugin-fs": "^2.5.1", - "@tauri-apps/plugin-geolocation": "^2.3.2", - "@tauri-apps/plugin-global-shortcut": "^2.3.2", - "@tauri-apps/plugin-haptics": "^2.3.2", - "@tauri-apps/plugin-http": "^2.5.9", - "@tauri-apps/plugin-nfc": "^2.3.5", - "@tauri-apps/plugin-notification": "^2.3.3", - "@tauri-apps/plugin-opener": "^2.5.4", - "@tauri-apps/plugin-os": "^2.3.2", - "@tauri-apps/plugin-process": "^2.3.1", - "@tauri-apps/plugin-shell": "^2.3.5", - "@tauri-apps/plugin-store": "^2.4.3", - "@tauri-apps/plugin-updater": "^2.10.1", - "@tauri-apps/plugin-upload": "^2.4.0", + "@tauri-apps/plugin-barcode-scanner": "workspace:*", + "@tauri-apps/plugin-biometric": "workspace:*", + "@tauri-apps/plugin-cli": "workspace:*", + "@tauri-apps/plugin-clipboard-manager": "workspace:*", + "@tauri-apps/plugin-dialog": "workspace:*", + "@tauri-apps/plugin-fs": "workspace:*", + "@tauri-apps/plugin-geolocation": "workspace:*", + "@tauri-apps/plugin-global-shortcut": "workspace:*", + "@tauri-apps/plugin-haptics": "workspace:*", + "@tauri-apps/plugin-http": "workspace:*", + "@tauri-apps/plugin-nfc": "workspace:*", + "@tauri-apps/plugin-notification": "workspace:*", + "@tauri-apps/plugin-opener": "workspace:*", + "@tauri-apps/plugin-os": "workspace:*", + "@tauri-apps/plugin-process": "workspace:*", + "@tauri-apps/plugin-shell": "workspace:*", + "@tauri-apps/plugin-store": "workspace:*", + "@tauri-apps/plugin-updater": "workspace:*", + "@tauri-apps/plugin-upload": "workspace:*", "@zerodevx/svelte-json-view": "1.0.11" }, "devDependencies": { "@iconify-json/codicon": "^1.2.49", "@iconify-json/ph": "^1.2.2", "@sveltejs/vite-plugin-svelte": "^7.0.0", - "@tauri-apps/cli": "2.11.2", + "@tauri-apps/cli": "2.11.4", "@unocss/extractor-svelte": "^66.6.7", "svelte": "^5.54.0", "unocss": "^66.6.7", diff --git a/plugins/deep-link/examples/app/package.json b/plugins/deep-link/examples/app/package.json index 6fa1d575f..654c3a507 100644 --- a/plugins/deep-link/examples/app/package.json +++ b/plugins/deep-link/examples/app/package.json @@ -11,10 +11,10 @@ }, "dependencies": { "@tauri-apps/api": "^2.11.0", - "@tauri-apps/plugin-deep-link": "2.4.9" + "@tauri-apps/plugin-deep-link": "workspace:*" }, "devDependencies": { - "@tauri-apps/cli": "2.11.2", + "@tauri-apps/cli": "2.11.4", "typescript": "^6.0.0", "vite": "^8.0.1" } diff --git a/plugins/deep-link/package.json b/plugins/deep-link/package.json index 64276f7b8..0d3b2a132 100644 --- a/plugins/deep-link/package.json +++ b/plugins/deep-link/package.json @@ -28,6 +28,6 @@ "@tauri-apps/api": "^2.11.0" }, "devDependencies": { - "@tauri-apps/cli": "2.11.2" + "@tauri-apps/cli": "2.11.4" } } diff --git a/plugins/single-instance/examples/vanilla/package.json b/plugins/single-instance/examples/vanilla/package.json index 1d87c437f..d92ff0ddf 100644 --- a/plugins/single-instance/examples/vanilla/package.json +++ b/plugins/single-instance/examples/vanilla/package.json @@ -9,6 +9,6 @@ "author": "", "license": "MIT", "devDependencies": { - "@tauri-apps/cli": "2.11.2" + "@tauri-apps/cli": "2.11.4" } } diff --git a/plugins/store/examples/AppSettingsManager/package.json b/plugins/store/examples/AppSettingsManager/package.json index 473dadc35..281cb1972 100644 --- a/plugins/store/examples/AppSettingsManager/package.json +++ b/plugins/store/examples/AppSettingsManager/package.json @@ -8,7 +8,7 @@ "tauri": "tauri" }, "devDependencies": { - "@tauri-apps/cli": "2.11.2", + "@tauri-apps/cli": "2.11.4", "typescript": "^6.0.0", "vite": "^8.0.1" } diff --git a/plugins/websocket/examples/tauri-app/package.json b/plugins/websocket/examples/tauri-app/package.json index d938135fc..c18f6a564 100644 --- a/plugins/websocket/examples/tauri-app/package.json +++ b/plugins/websocket/examples/tauri-app/package.json @@ -9,7 +9,7 @@ "preview": "vite preview" }, "devDependencies": { - "@tauri-apps/cli": "2.11.2", + "@tauri-apps/cli": "2.11.4", "typescript": "^6.0.0", "vite": "^8.0.1" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b45c47fa1..37ee40e3b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -51,61 +51,61 @@ importers: specifier: ^2.11.0 version: 2.11.0 '@tauri-apps/plugin-barcode-scanner': - specifier: ^2.4.5 + specifier: workspace:* version: link:../../plugins/barcode-scanner '@tauri-apps/plugin-biometric': - specifier: ^2.3.2 + specifier: workspace:* version: link:../../plugins/biometric '@tauri-apps/plugin-cli': - specifier: ^2.4.1 + specifier: workspace:* version: link:../../plugins/cli '@tauri-apps/plugin-clipboard-manager': - specifier: ^2.3.2 + specifier: workspace:* version: link:../../plugins/clipboard-manager '@tauri-apps/plugin-dialog': - specifier: ^2.7.1 + specifier: workspace:* version: link:../../plugins/dialog '@tauri-apps/plugin-fs': - specifier: ^2.5.1 + specifier: workspace:* version: link:../../plugins/fs '@tauri-apps/plugin-geolocation': - specifier: ^2.3.2 + specifier: workspace:* version: link:../../plugins/geolocation '@tauri-apps/plugin-global-shortcut': - specifier: ^2.3.2 + specifier: workspace:* version: link:../../plugins/global-shortcut '@tauri-apps/plugin-haptics': - specifier: ^2.3.2 + specifier: workspace:* version: link:../../plugins/haptics '@tauri-apps/plugin-http': - specifier: ^2.5.9 + specifier: workspace:* version: link:../../plugins/http '@tauri-apps/plugin-nfc': - specifier: ^2.3.5 + specifier: workspace:* version: link:../../plugins/nfc '@tauri-apps/plugin-notification': - specifier: ^2.3.3 + specifier: workspace:* version: link:../../plugins/notification '@tauri-apps/plugin-opener': - specifier: ^2.5.4 + specifier: workspace:* version: link:../../plugins/opener '@tauri-apps/plugin-os': - specifier: ^2.3.2 + specifier: workspace:* version: link:../../plugins/os '@tauri-apps/plugin-process': - specifier: ^2.3.1 + specifier: workspace:* version: link:../../plugins/process '@tauri-apps/plugin-shell': - specifier: ^2.3.5 + specifier: workspace:* version: link:../../plugins/shell '@tauri-apps/plugin-store': - specifier: ^2.4.3 + specifier: workspace:* version: link:../../plugins/store '@tauri-apps/plugin-updater': - specifier: ^2.10.1 + specifier: workspace:* version: link:../../plugins/updater '@tauri-apps/plugin-upload': - specifier: ^2.4.0 + specifier: workspace:* version: link:../../plugins/upload '@zerodevx/svelte-json-view': specifier: 1.0.11 @@ -121,8 +121,8 @@ importers: specifier: ^7.0.0 version: 7.0.0(svelte@5.55.7(@typescript-eslint/types@8.58.2))(vite@8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.1)) '@tauri-apps/cli': - specifier: 2.11.2 - version: 2.11.2 + specifier: 2.11.4 + version: 2.11.4 '@unocss/extractor-svelte': specifier: ^66.6.7 version: 66.6.7 @@ -173,8 +173,8 @@ importers: version: 2.11.0 devDependencies: '@tauri-apps/cli': - specifier: 2.11.2 - version: 2.11.2 + specifier: 2.11.4 + version: 2.11.4 plugins/deep-link/examples/app: dependencies: @@ -182,12 +182,12 @@ importers: specifier: ^2.11.0 version: 2.11.0 '@tauri-apps/plugin-deep-link': - specifier: 2.4.9 + specifier: workspace:* version: link:../.. devDependencies: '@tauri-apps/cli': - specifier: 2.11.2 - version: 2.11.2 + specifier: 2.11.4 + version: 2.11.4 typescript: specifier: ^6.0.0 version: 6.0.3 @@ -282,8 +282,8 @@ importers: plugins/single-instance/examples/vanilla: devDependencies: '@tauri-apps/cli': - specifier: 2.11.2 - version: 2.11.2 + specifier: 2.11.4 + version: 2.11.4 plugins/sql: dependencies: @@ -300,8 +300,8 @@ importers: plugins/store/examples/AppSettingsManager: devDependencies: '@tauri-apps/cli': - specifier: 2.11.2 - version: 2.11.2 + specifier: 2.11.4 + version: 2.11.4 typescript: specifier: ^6.0.0 version: 6.0.3 @@ -340,8 +340,8 @@ importers: version: link:../.. devDependencies: '@tauri-apps/cli': - specifier: 2.11.2 - version: 2.11.2 + specifier: 2.11.4 + version: 2.11.4 typescript: specifier: ^6.0.0 version: 6.0.3 @@ -1047,79 +1047,79 @@ packages: '@tauri-apps/api@2.11.0': resolution: {integrity: sha512-7CinYODhky9lmO23xHnUFv0Xt43fbtWMyxZcLcRBlFkcgXKuEirBvHpmtJ89YMhyeGcq20Wuc47Fa4XjyniywA==} - '@tauri-apps/cli-darwin-arm64@2.11.2': - resolution: {integrity: sha512-+4UZzLt+eOAEQCwgd+TqKgyUJMrvx+BgdXLLaqJYmPqzP+nE6YZr/hY6CWLYGQb8jFn99jEkmC6uA3tNvamA1w==} + '@tauri-apps/cli-darwin-arm64@2.11.4': + resolution: {integrity: sha512-1ryOF3ZhpZ/nemHV5zVwBQBz9jDGKmKPvWPADOhc83ig0P4bMc2iER4NbC6r9sjeIZ6RVQ4g3RZIYvezhcl4TQ==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@tauri-apps/cli-darwin-x64@2.11.2': - resolution: {integrity: sha512-VjYYtZUPqDMLutSfJEyxFE3Bz+DPi7c8wC3imckgvciLDZLq4qwKJxBicg0BXGhXjJsl8vKWgWRFNMPELQ+Xyg==} + '@tauri-apps/cli-darwin-x64@2.11.4': + resolution: {integrity: sha512-uFsGQAAfuyz1k/yGLmkWfkBlgKAqZfxqlHmLWx81QU27RJWfmbNHCIq8T8w1e+VClleIuZUjpHWfoE4E3DLo3A==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@tauri-apps/cli-linux-arm-gnueabihf@2.11.2': - resolution: {integrity: sha512-yMemD6f4i95AQriS8EazyOFzbE34yjnP16i3IOzpHGQvBoy2DjypFMFBq0NtPuITURv/cOGguRtHR5d79/9CSA==} + '@tauri-apps/cli-linux-arm-gnueabihf@2.11.4': + resolution: {integrity: sha512-IaHZn5CdBL21oUmjiVOS1ctw6Ip1O0pjp70FwOWmYz1myWe0SY96ZIj2FYf7pT0m8bI2h/hrs5ZbEXXh44/MkQ==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - '@tauri-apps/cli-linux-arm64-gnu@2.11.2': - resolution: {integrity: sha512-cgI91D2wL8GSgoWwZXDqt+DwnuZCP2/bz03QAE4TrhgAKIsrB4hX26W/H1EONPUUNkqrsgeCD0wU6pcNjV/5kw==} + '@tauri-apps/cli-linux-arm64-gnu@2.11.4': + resolution: {integrity: sha512-N41/ukTRVe6XSuUTESuFdGeOW2i7k62tK+6gHK5Kd5/q5RPvvi19GaWAVPPb9u95HSGmTChSolBfzynUsssFaA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [glibc] - '@tauri-apps/cli-linux-arm64-musl@2.11.2': - resolution: {integrity: sha512-X1rm0BERqAAggtYTESSgXrS3sz4Sb/OiPiz54UqISlXW+GkR3vNIGnsy/lejNmoXGVqri3Q53BCfQiclOIyRPw==} + '@tauri-apps/cli-linux-arm64-musl@2.11.4': + resolution: {integrity: sha512-v277UnT/fB64xAfSroL5N3Km3tLmvATWqJJw/wRI+g6o+HkeD0slyE7gOhNs1MbjE41R7bQOTxMVoL3aomUJmw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [musl] - '@tauri-apps/cli-linux-riscv64-gnu@2.11.2': - resolution: {integrity: sha512-usbMLJbT3KtkOrBMDVeGYNM35aTHXx38SJSzTMSqqjeUIOQ+iVPjb2yAGNAE+KqmBbAx4FOFIyMeKXx2M/JKGQ==} + '@tauri-apps/cli-linux-riscv64-gnu@2.11.4': + resolution: {integrity: sha512-qqgNkQ2u1yZHxjhxsZaxUtRDW8dIqIYm33rx/mzwQv0SfY9x1B+iraj8vWeFiXjjSVVhEMepXSOts1TqPzvXNQ==} engines: {node: '>= 10'} cpu: [riscv64] os: [linux] libc: [glibc] - '@tauri-apps/cli-linux-x64-gnu@2.11.2': - resolution: {integrity: sha512-Ru4gwJKPG0ctVGchRGpRup4Y4lW2SSfFnrbQcyHhCliKy4g8Qz97TrUgCur4CbWyAgKxvGh3SjrkA0LDYzDGiw==} + '@tauri-apps/cli-linux-x64-gnu@2.11.4': + resolution: {integrity: sha512-2VRNWl84FOH0m2giiDkO2h0QXlcMJeX+zJDpI5kDIQAx6s+geF3v48F4DXfJez4GS/FdoDGnPnw1C2iYGbQ7bQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [glibc] - '@tauri-apps/cli-linux-x64-musl@2.11.2': - resolution: {integrity: sha512-eUm7T6clN1MMmNSRQ9gaWsQdyehQx2Gmn5hht/QUlqZQI/qcP2OJK5dnaxqwFzCr2HdsEo9ydxaqcS1oJzMvUw==} + '@tauri-apps/cli-linux-x64-musl@2.11.4': + resolution: {integrity: sha512-o9GyhYor/nc7xarmwDE3ka2szuW3uuZzXjHWh64Q8YX5AtSgxdQkFWzrY4O8KiGtVNvFBI14H3Q49Qj5TOIP/A==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [musl] - '@tauri-apps/cli-win32-arm64-msvc@2.11.2': - resolution: {integrity: sha512-HeeZW80jU+gVTOEX4X/hC6NVSAdDVXajwP5fxIZ/3z9WvUC7qrudX2GMTilYq6Dg0e0sk0XgsAJD1hZ5wPBXUA==} + '@tauri-apps/cli-win32-arm64-msvc@2.11.4': + resolution: {integrity: sha512-ld5Ehb598m0VkYyylRPNeCFsBe/km0jxis6KgMpl3IGY6I/i1RwQXO05I1AsXUXO2WC6AvB/Lw4qTf/asiuEiQ==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@tauri-apps/cli-win32-ia32-msvc@2.11.2': - resolution: {integrity: sha512-YhjQNZcXfbkCLyazSv1nPnJ9iRFE1wm6kc51FDbU10/Dk09io+6PAGMLjkxnX2GdM0qMnDmTjstY8mTDVvtKeA==} + '@tauri-apps/cli-win32-ia32-msvc@2.11.4': + resolution: {integrity: sha512-12Hxi0XX/H5VFxO/bGgHkFWhml9VMgEOu9CidjeCeTNQ1l6fpUlbiGgSP7CLI3PFtW9/FfbeHieZ+kyWK5H7CA==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] - '@tauri-apps/cli-win32-x64-msvc@2.11.2': - resolution: {integrity: sha512-d2JchlFIpZevZVReyqhQOekJmb1UH3rhZ5VX6sH3ty9ETE0TKQavpihvoScUXfKKpW6HZC0MrFGRU0ZtD+w3gA==} + '@tauri-apps/cli-win32-x64-msvc@2.11.4': + resolution: {integrity: sha512-+vDiqBIU5dMISg/wNvX3sF+ZHfgJGJ5T0AcO+EHNXV9GGAG+P5fzodlDXD3QdKCRgZxMoCm5PPvj3BqLNjBthw==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@tauri-apps/cli@2.11.2': - resolution: {integrity: sha512-bk3HemqvGRoy+5D/dVMUQHKMYLglD0jVnMm/0iGMH6ufZ+p8r14m6BpIixwij3PBvZdvORUp1YifTD8QxVZ1Nw==} + '@tauri-apps/cli@2.11.4': + resolution: {integrity: sha512-R8xGtMpwyetawSqm9kYOuMmEqkhUbvcUy8n0aNXIxollKBLESUu5f4Fx+64hgASYm1H+jSWq6jCW6zqTnH6hqQ==} engines: {node: '>= 10'} hasBin: true @@ -2422,52 +2422,52 @@ snapshots: '@tauri-apps/api@2.11.0': {} - '@tauri-apps/cli-darwin-arm64@2.11.2': + '@tauri-apps/cli-darwin-arm64@2.11.4': optional: true - '@tauri-apps/cli-darwin-x64@2.11.2': + '@tauri-apps/cli-darwin-x64@2.11.4': optional: true - '@tauri-apps/cli-linux-arm-gnueabihf@2.11.2': + '@tauri-apps/cli-linux-arm-gnueabihf@2.11.4': optional: true - '@tauri-apps/cli-linux-arm64-gnu@2.11.2': + '@tauri-apps/cli-linux-arm64-gnu@2.11.4': optional: true - '@tauri-apps/cli-linux-arm64-musl@2.11.2': + '@tauri-apps/cli-linux-arm64-musl@2.11.4': optional: true - '@tauri-apps/cli-linux-riscv64-gnu@2.11.2': + '@tauri-apps/cli-linux-riscv64-gnu@2.11.4': optional: true - '@tauri-apps/cli-linux-x64-gnu@2.11.2': + '@tauri-apps/cli-linux-x64-gnu@2.11.4': optional: true - '@tauri-apps/cli-linux-x64-musl@2.11.2': + '@tauri-apps/cli-linux-x64-musl@2.11.4': optional: true - '@tauri-apps/cli-win32-arm64-msvc@2.11.2': + '@tauri-apps/cli-win32-arm64-msvc@2.11.4': optional: true - '@tauri-apps/cli-win32-ia32-msvc@2.11.2': + '@tauri-apps/cli-win32-ia32-msvc@2.11.4': optional: true - '@tauri-apps/cli-win32-x64-msvc@2.11.2': + '@tauri-apps/cli-win32-x64-msvc@2.11.4': optional: true - '@tauri-apps/cli@2.11.2': + '@tauri-apps/cli@2.11.4': optionalDependencies: - '@tauri-apps/cli-darwin-arm64': 2.11.2 - '@tauri-apps/cli-darwin-x64': 2.11.2 - '@tauri-apps/cli-linux-arm-gnueabihf': 2.11.2 - '@tauri-apps/cli-linux-arm64-gnu': 2.11.2 - '@tauri-apps/cli-linux-arm64-musl': 2.11.2 - '@tauri-apps/cli-linux-riscv64-gnu': 2.11.2 - '@tauri-apps/cli-linux-x64-gnu': 2.11.2 - '@tauri-apps/cli-linux-x64-musl': 2.11.2 - '@tauri-apps/cli-win32-arm64-msvc': 2.11.2 - '@tauri-apps/cli-win32-ia32-msvc': 2.11.2 - '@tauri-apps/cli-win32-x64-msvc': 2.11.2 + '@tauri-apps/cli-darwin-arm64': 2.11.4 + '@tauri-apps/cli-darwin-x64': 2.11.4 + '@tauri-apps/cli-linux-arm-gnueabihf': 2.11.4 + '@tauri-apps/cli-linux-arm64-gnu': 2.11.4 + '@tauri-apps/cli-linux-arm64-musl': 2.11.4 + '@tauri-apps/cli-linux-riscv64-gnu': 2.11.4 + '@tauri-apps/cli-linux-x64-gnu': 2.11.4 + '@tauri-apps/cli-linux-x64-musl': 2.11.4 + '@tauri-apps/cli-win32-arm64-msvc': 2.11.4 + '@tauri-apps/cli-win32-ia32-msvc': 2.11.4 + '@tauri-apps/cli-win32-x64-msvc': 2.11.4 '@tybys/wasm-util@0.10.2': dependencies: From 03afae6d7275030a708eaedd39f0e604ccb901f3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 19 Jul 2026 00:40:36 +0800 Subject: [PATCH 13/41] publish new versions (#3500) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .changes/material-dialog.md | 6 ------ .changes/store-optional-defaults.md | 6 ------ Cargo.lock | 6 +++--- examples/api/CHANGELOG.md | 7 +++++++ examples/api/package.json | 6 +++--- examples/api/src-tauri/CHANGELOG.md | 7 +++++++ examples/api/src-tauri/Cargo.toml | 6 +++--- plugins/dialog/CHANGELOG.md | 4 ++++ plugins/dialog/Cargo.toml | 2 +- plugins/dialog/package.json | 2 +- plugins/store/CHANGELOG.md | 4 ++++ plugins/store/Cargo.toml | 2 +- plugins/store/package.json | 2 +- pnpm-lock.yaml | 22 ++++++++++++++++++---- 14 files changed, 53 insertions(+), 29 deletions(-) delete mode 100644 .changes/material-dialog.md delete mode 100644 .changes/store-optional-defaults.md diff --git a/.changes/material-dialog.md b/.changes/material-dialog.md deleted file mode 100644 index 30b4418ae..000000000 --- a/.changes/material-dialog.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -dialog: patch -dialog-js: patch ---- - -Use `com.google.android.material.dialog.MaterialAlertDialogBuilder` instead of `AlertDialog` so the dialog follows the app's theme diff --git a/.changes/store-optional-defaults.md b/.changes/store-optional-defaults.md deleted file mode 100644 index 6eddb2d65..000000000 --- a/.changes/store-optional-defaults.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -store: patch -store-js: patch ---- - -Fix `StoreOptions` requires `defaults` field diff --git a/Cargo.lock b/Cargo.lock index 56aa85999..b73674a00 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -207,7 +207,7 @@ checksum = "2a4385e2e34eb35d6b3efe798b9eb88096925d87726c0798709bf56d9ed84af3" [[package]] name = "api" -version = "2.0.45" +version = "2.0.46" dependencies = [ "log", "serde", @@ -6525,7 +6525,7 @@ dependencies = [ [[package]] name = "tauri-plugin-dialog" -version = "2.7.1" +version = "2.7.2" dependencies = [ "log", "raw-window-handle", @@ -6817,7 +6817,7 @@ dependencies = [ [[package]] name = "tauri-plugin-store" -version = "2.4.3" +version = "2.4.4" dependencies = [ "dunce", "serde", diff --git a/examples/api/CHANGELOG.md b/examples/api/CHANGELOG.md index 2f3d2a539..c08be7ede 100644 --- a/examples/api/CHANGELOG.md +++ b/examples/api/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## \[2.0.42] + +### Dependencies + +- Upgraded to `dialog-js@2.7.2` +- Upgraded to `store-js@2.4.4` + ## \[2.0.41] ### Dependencies diff --git a/examples/api/package.json b/examples/api/package.json index 51456eea7..8a78158e7 100644 --- a/examples/api/package.json +++ b/examples/api/package.json @@ -1,7 +1,7 @@ { "name": "api", "private": true, - "version": "2.0.41", + "version": "2.0.42", "type": "module", "scripts": { "dev": "vite --clearScreen false", @@ -15,7 +15,7 @@ "@tauri-apps/plugin-biometric": "workspace:*", "@tauri-apps/plugin-cli": "workspace:*", "@tauri-apps/plugin-clipboard-manager": "workspace:*", - "@tauri-apps/plugin-dialog": "workspace:*", + "@tauri-apps/plugin-dialog": "2", "@tauri-apps/plugin-fs": "workspace:*", "@tauri-apps/plugin-geolocation": "workspace:*", "@tauri-apps/plugin-global-shortcut": "workspace:*", @@ -27,7 +27,7 @@ "@tauri-apps/plugin-os": "workspace:*", "@tauri-apps/plugin-process": "workspace:*", "@tauri-apps/plugin-shell": "workspace:*", - "@tauri-apps/plugin-store": "workspace:*", + "@tauri-apps/plugin-store": "2", "@tauri-apps/plugin-updater": "workspace:*", "@tauri-apps/plugin-upload": "workspace:*", "@zerodevx/svelte-json-view": "1.0.11" diff --git a/examples/api/src-tauri/CHANGELOG.md b/examples/api/src-tauri/CHANGELOG.md index 3b93638e9..96a2cab40 100644 --- a/examples/api/src-tauri/CHANGELOG.md +++ b/examples/api/src-tauri/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## \[2.0.46] + +### Dependencies + +- Upgraded to `dialog@2.7.2` +- Upgraded to `store@2.4.4` + ## \[2.0.45] ### Dependencies diff --git a/examples/api/src-tauri/Cargo.toml b/examples/api/src-tauri/Cargo.toml index 32d130603..ec8b6c3d4 100644 --- a/examples/api/src-tauri/Cargo.toml +++ b/examples/api/src-tauri/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "api" publish = false -version = "2.0.45" +version = "2.0.46" description = "An example Tauri Application showcasing the api" edition = "2021" rust-version = { workspace = true } @@ -25,7 +25,7 @@ tauri-plugin-fs = { path = "../../../plugins/fs", version = "2.5.1", features = "watch", ] } tauri-plugin-clipboard-manager = { path = "../../../plugins/clipboard-manager", version = "2.3.2" } -tauri-plugin-dialog = { path = "../../../plugins/dialog", version = "2.7.1" } +tauri-plugin-dialog = { path = "../../../plugins/dialog", version = "2.7.2" } tauri-plugin-http = { path = "../../../plugins/http", features = [ "multipart", "cookies", @@ -37,7 +37,7 @@ tauri-plugin-os = { path = "../../../plugins/os", version = "2.3.2" } tauri-plugin-process = { path = "../../../plugins/process", version = "2.3.1" } tauri-plugin-opener = { path = "../../../plugins/opener", version = "2.5.4" } tauri-plugin-shell = { path = "../../../plugins/shell", version = "2.3.5" } -tauri-plugin-store = { path = "../../../plugins/store", version = "2.4.3" } +tauri-plugin-store = { path = "../../../plugins/store", version = "2.4.4" } tauri-plugin-upload = { path = "../../../plugins/upload", version = "2.3.0" } [dependencies.tauri] diff --git a/plugins/dialog/CHANGELOG.md b/plugins/dialog/CHANGELOG.md index f875cf115..3b9f66152 100644 --- a/plugins/dialog/CHANGELOG.md +++ b/plugins/dialog/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.7.2] + +- [`40ae0a7f`](https://github.com/tauri-apps/plugins-workspace/commit/40ae0a7fa0ecc9b0cdbd952297f7a17f37308229) ([#3491](https://github.com/tauri-apps/plugins-workspace/pull/3491) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Use `com.google.android.material.dialog.MaterialAlertDialogBuilder` instead of `AlertDialog` so the dialog follows the app's theme + ## \[2.7.1] ### Dependencies diff --git a/plugins/dialog/Cargo.toml b/plugins/dialog/Cargo.toml index 7044a941a..9435ea484 100644 --- a/plugins/dialog/Cargo.toml +++ b/plugins/dialog/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-dialog" -version = "2.7.1" +version = "2.7.2" description = "Native system dialogs for opening and saving files along with message dialogs on your Tauri application." edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/dialog/package.json b/plugins/dialog/package.json index 0e651988b..451eb1a7f 100644 --- a/plugins/dialog/package.json +++ b/plugins/dialog/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-dialog", - "version": "2.7.1", + "version": "2.7.2", "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" diff --git a/plugins/store/CHANGELOG.md b/plugins/store/CHANGELOG.md index 0d29f5f49..dcc84abe9 100644 --- a/plugins/store/CHANGELOG.md +++ b/plugins/store/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## \[2.4.4] + +- [`2ed6d6c1`](https://github.com/tauri-apps/plugins-workspace/commit/2ed6d6c1de4f5051b87cb6a2c5ac45320c444989) ([#3499](https://github.com/tauri-apps/plugins-workspace/pull/3499) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Fix `StoreOptions` requires `defaults` field + ## \[2.4.3] - [`964e13f1`](https://github.com/tauri-apps/plugins-workspace/commit/964e13f124ad1feeb93c10168b265dc4936f738c) ([#3395](https://github.com/tauri-apps/plugins-workspace/pull/3395) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Fix a deadlock when calling `Store::set` while exiting (on `RunEvent::Exit`) diff --git a/plugins/store/Cargo.toml b/plugins/store/Cargo.toml index a9285eb8d..d7b9072e9 100644 --- a/plugins/store/Cargo.toml +++ b/plugins/store/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-store" -version = "2.4.3" +version = "2.4.4" description = "Simple, persistent key-value store." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/store/package.json b/plugins/store/package.json index 2ffc54afe..8a85ca192 100644 --- a/plugins/store/package.json +++ b/plugins/store/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-store", - "version": "2.4.3", + "version": "2.4.4", "description": "Simple, persistent key-value store.", "license": "MIT OR Apache-2.0", "authors": [ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 37ee40e3b..90ed78a66 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -63,8 +63,8 @@ importers: specifier: workspace:* version: link:../../plugins/clipboard-manager '@tauri-apps/plugin-dialog': - specifier: workspace:* - version: link:../../plugins/dialog + specifier: '2' + version: 2.7.1 '@tauri-apps/plugin-fs': specifier: workspace:* version: link:../../plugins/fs @@ -99,8 +99,8 @@ importers: specifier: workspace:* version: link:../../plugins/shell '@tauri-apps/plugin-store': - specifier: workspace:* - version: link:../../plugins/store + specifier: '2' + version: 2.4.3 '@tauri-apps/plugin-updater': specifier: workspace:* version: link:../../plugins/updater @@ -1123,6 +1123,12 @@ packages: engines: {node: '>= 10'} hasBin: true + '@tauri-apps/plugin-dialog@2.7.1': + resolution: {integrity: sha512-OK1UBXYt+ojcmxMktzzuyonYIFta8CmAASpX+CA+DTGK24KlHjhYI6x2iOJ/TjZF4N7/ACK1oFmEOjIY9IhzOQ==} + + '@tauri-apps/plugin-store@2.4.3': + resolution: {integrity: sha512-9LWPj9yMphRi9czEtUv87XHbl1b6xgd9EXpPrUnq6nG7+nbtoF84d4Kwz9xhAv/Hf30sr58pq7EOlyI936y8qw==} + '@tybys/wasm-util@0.10.2': resolution: {integrity: sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==} @@ -2469,6 +2475,14 @@ snapshots: '@tauri-apps/cli-win32-ia32-msvc': 2.11.4 '@tauri-apps/cli-win32-x64-msvc': 2.11.4 + '@tauri-apps/plugin-dialog@2.7.1': + dependencies: + '@tauri-apps/api': 2.11.0 + + '@tauri-apps/plugin-store@2.4.3': + dependencies: + '@tauri-apps/api': 2.11.0 + '@tybys/wasm-util@0.10.2': dependencies: tslib: 2.8.1 From 526726162f8ddddf9469797436123704a261df87 Mon Sep 17 00:00:00 2001 From: Pascal Auf der Maur Date: Mon, 20 Jul 2026 13:11:20 +0200 Subject: [PATCH 14/41] fix(nfc): adapt backend invoke to frontend (#3419) * fix(nfc): adapt backend invoke to frontend * Revert "fix(nfc): adapt backend invoke to frontend" This reverts commit e34306e083351c51b1953c69dead931678b4a8a6. * fix: enforce nfc function return type * Update .changes/nfc.md Co-authored-by: Fabian-Lars <30730186+FabianLars@users.noreply.github.com> --------- Co-authored-by: Fabian-Lars <30730186+FabianLars@users.noreply.github.com> --- .changes/nfc.md | 6 ++++++ plugins/nfc/src/lib.rs | 1 + 2 files changed, 7 insertions(+) create mode 100644 .changes/nfc.md diff --git a/.changes/nfc.md b/.changes/nfc.md new file mode 100644 index 000000000..6eb7676e1 --- /dev/null +++ b/.changes/nfc.md @@ -0,0 +1,6 @@ +--- +nfc: patch +nfc-js: patch +--- + +Expect a `NFCTag` as input and return a `ScanResponse` in the `scan` function. \ No newline at end of file diff --git a/plugins/nfc/src/lib.rs b/plugins/nfc/src/lib.rs index d8708c1d6..33a47a96a 100644 --- a/plugins/nfc/src/lib.rs +++ b/plugins/nfc/src/lib.rs @@ -47,6 +47,7 @@ impl Nfc { pub fn scan(&self, payload: ScanRequest) -> crate::Result { self.0 .run_mobile_plugin("scan", payload) + .map(|v| ScanResponse { tag: v }) .map_err(Into::into) } From 7e45774610340865dcd7e7ba67e8d73cedd17d1f Mon Sep 17 00:00:00 2001 From: Tony <68118705+Legend-Master@users.noreply.github.com> Date: Tue, 21 Jul 2026 14:42:45 +0800 Subject: [PATCH 15/41] refactor(fs): cfg gate some ios code (#3510) --- plugins/fs/src/commands.rs | 215 ++++++++++++++++++------------------- 1 file changed, 106 insertions(+), 109 deletions(-) diff --git a/plugins/fs/src/commands.rs b/plugins/fs/src/commands.rs index 963e76abb..fcc38f6bb 100644 --- a/plugins/fs/src/commands.rs +++ b/plugins/fs/src/commands.rs @@ -74,7 +74,7 @@ pub type CommandResult = std::result::Result; /// Represents either a plain PathBuf or a PathHandle that manages security-scoped resources. pub enum PathKind { /// A plain path that doesn't manage security-scoped resources. - #[allow(dead_code)] // only used on mobile + #[cfg(mobile)] // only used on mobile Path(PathBuf), /// A path handle that manages security-scoped resources and will clean them up on drop. Handle(PathHandle), @@ -84,6 +84,7 @@ impl PathKind { /// Get a reference to the underlying path. pub fn as_path(&self) -> &Path { match self { + #[cfg(mobile)] PathKind::Path(p) => p.as_ref(), PathKind::Handle(h) => h.as_ref(), } @@ -92,6 +93,7 @@ impl PathKind { /// Get a reference to the underlying PathBuf. pub fn as_path_buf(&self) -> &PathBuf { match self { + #[cfg(mobile)] PathKind::Path(p) => p, PathKind::Handle(h) => h, } @@ -114,27 +116,13 @@ impl AsRef for PathKind { pub struct FileHandle { file: File, path: PathKind, - #[allow(dead_code)] // Used in Drop implementation + #[cfg(target_os = "ios")] path_: SafeFilePath, - #[allow(dead_code)] // Used in Drop implementation + #[cfg(target_os = "ios")] app_handle: tauri::AppHandle, } impl FileHandle { - fn new( - file: File, - path: PathKind, - path_: SafeFilePath, - app_handle: tauri::AppHandle, - ) -> Self { - Self { - file, - path, - path_, - app_handle, - } - } - /// Get the resolved path. pub fn path(&self) -> &Path { self.path.as_path() @@ -155,41 +143,39 @@ impl DerefMut for FileHandle { } } +#[cfg(target_os = "ios")] impl Drop for FileHandle { fn drop(&mut self) { - #[cfg(target_os = "ios")] - { - // Only clean up if we have a plain PathBuf, not a PathHandle - // PathHandle will handle its own cleanup when it's dropped - if let PathKind::Path(_) = &self.path { - use crate::{FilePath, FsExt}; - // Convert SafeFilePath to FilePath - let file_path: FilePath = match &self.path_ { - SafeFilePath::Url(url) => FilePath::Url(url.clone()), - SafeFilePath::Path(safe_path) => FilePath::Path(safe_path.as_ref().to_owned()), - }; + // Only clean up if we have a plain PathBuf, not a PathHandle + // PathHandle will handle its own cleanup when it's dropped + if let PathKind::Path(_) = &self.path { + use crate::{FilePath, FsExt}; + // Convert SafeFilePath to FilePath + let file_path: FilePath = match &self.path_ { + SafeFilePath::Url(url) => FilePath::Url(url.clone()), + SafeFilePath::Path(safe_path) => FilePath::Path(safe_path.as_ref().to_owned()), + }; - // Only clean up if we're tracking this resource - // If start_accessing_security_scoped_resource was used, it won't be in our tracking - // and we shouldn't interfere - if let FilePath::Url(url) = file_path { - if url.scheme() == "file" { - let security_scoped_resources = - self.app_handle.state::(); + // Only clean up if we're tracking this resource + // If start_accessing_security_scoped_resource was used, it won't be in our tracking + // and we shouldn't interfere + if let FilePath::Url(url) = file_path { + if url.scheme() == "file" { + let security_scoped_resources = + self.app_handle.state::(); - // Only clean up if it's not tracked manually - if !security_scoped_resources.is_tracked_manually(url.as_str()) { - log::debug!("Stopping accessing security-scoped resource for URL: {url} on drop"); - let _ = self - .app_handle - .fs() - .stop_accessing_security_scoped_resource(FilePath::Url( - url.clone(), - )); - security_scoped_resources.remove(url.as_str()); - } else { - log::debug!("Not cleaning up security-scoped resource for URL: {url} on drop (manually tracked via start_accessing_security_scoped_resource)"); - } + // Only clean up if it's not tracked manually + if !security_scoped_resources.is_tracked_manually(url.as_str()) { + log::debug!( + "Stopping accessing security-scoped resource for URL: {url} on drop" + ); + let _ = self + .app_handle + .fs() + .stop_accessing_security_scoped_resource(FilePath::Url(url.clone())); + security_scoped_resources.remove(url.as_str()); + } else { + log::debug!("Not cleaning up security-scoped resource for URL: {url} on drop (manually tracked via start_accessing_security_scoped_resource)"); } } } @@ -236,38 +222,36 @@ impl AsRef for PathHandle { } } +#[cfg(target_os = "ios")] impl Drop for PathHandle { fn drop(&mut self) { - #[cfg(target_os = "ios")] - { - use crate::{FilePath, FsExt}; - // Convert SafeFilePath to FilePath - let file_path: FilePath = match &self.path_ { - SafeFilePath::Url(url) => FilePath::Url(url.clone()), - SafeFilePath::Path(safe_path) => FilePath::Path(safe_path.as_ref().to_owned()), - }; + use crate::{FilePath, FsExt}; + // Convert SafeFilePath to FilePath + let file_path: FilePath = match &self.path_ { + SafeFilePath::Url(url) => FilePath::Url(url.clone()), + SafeFilePath::Path(safe_path) => FilePath::Path(safe_path.as_ref().to_owned()), + }; - // Only clean up if we're tracking this resource (i.e., resolve_path started it) - // If start_accessing_security_scoped_resource was used, it won't be in our tracking - // and we shouldn't interfere - if let FilePath::Url(url) = file_path { - if url.scheme() == "file" { - let security_scoped_resources = - self.app_handle.state::(); + // Only clean up if we're tracking this resource (i.e., resolve_path started it) + // If start_accessing_security_scoped_resource was used, it won't be in our tracking + // and we shouldn't interfere + if let FilePath::Url(url) = file_path { + if url.scheme() == "file" { + let security_scoped_resources = + self.app_handle.state::(); - // Only clean up if it's not tracked manually - if !security_scoped_resources.is_tracked_manually(url.as_str()) { - log::debug!( - "Stopping accessing security-scoped resource for URL: {url} on drop" - ); - let _ = self - .app_handle - .fs() - .stop_accessing_security_scoped_resource(FilePath::Url(url.clone())); - security_scoped_resources.remove(url.as_str()); - } else { - log::debug!("Not cleaning up security-scoped resource for URL: {url} on drop (manually tracked via start_accessing_security_scoped_resource)"); - } + // Only clean up if it's not tracked manually + if !security_scoped_resources.is_tracked_manually(url.as_str()) { + log::debug!( + "Stopping accessing security-scoped resource for URL: {url} on drop" + ); + let _ = self + .app_handle + .fs() + .stop_accessing_security_scoped_resource(FilePath::Url(url.clone())); + security_scoped_resources.remove(url.as_str()); + } else { + log::debug!("Not cleaning up security-scoped resource for URL: {url} on drop (manually tracked via start_accessing_security_scoped_resource)"); } } } @@ -288,6 +272,7 @@ pub fn create( path: SafeFilePath, options: Option, ) -> CommandResult { + #[cfg(target_os = "ios")] let path_ = path.clone(); let resolved_path_handle = resolve_path( "create", @@ -303,13 +288,16 @@ pub fn create( resolved_path_handle.display() ) })?; + #[cfg(target_os = "ios")] let app_handle = webview.app_handle().clone(); - let file_handle = FileHandle::new( + let file_handle = FileHandle { file, - PathKind::Handle(resolved_path_handle), + path: PathKind::Handle(resolved_path_handle), + #[cfg(target_os = "ios")] path_, + #[cfg(target_os = "ios")] app_handle, - ); + }; let rid = webview .resources_table() .add(StdFileResource::new(file_handle)); @@ -1417,6 +1405,7 @@ fn resolve_file_in_fs( path: SafeFilePath, open_options: OpenOptions, ) -> CommandResult> { + #[cfg(target_os = "ios")] let path_ = path.clone(); let resolved_path_handle = resolve_path( permission, @@ -1436,13 +1425,16 @@ fn resolve_file_in_fs( ) })?; + #[cfg(target_os = "ios")] let app_handle = webview.app_handle().clone(); - Ok(FileHandle::new( + Ok(FileHandle { file, - PathKind::Handle(resolved_path_handle), + path: PathKind::Handle(resolved_path_handle), + #[cfg(target_os = "ios")] path_, + #[cfg(target_os = "ios")] app_handle, - )) + }) } #[cfg(mobile)] @@ -1456,6 +1448,7 @@ pub fn resolve_file( ) -> CommandResult> { use crate::FsExt; + #[cfg(target_os = "ios")] let path_ = path.clone(); match path { SafeFilePath::Url(url) => { @@ -1463,13 +1456,16 @@ pub fn resolve_file( let file = webview .fs() .open(SafeFilePath::Url(url.clone()), open_options.options)?; + #[cfg(target_os = "ios")] let app_handle = webview.app_handle().clone(); - Ok(FileHandle::new( + Ok(FileHandle { file, - PathKind::Path(resolved_path), + path: PathKind::Path(resolved_path), + #[cfg(target_os = "ios")] path_, + #[cfg(target_os = "ios")] app_handle, - )) + }) } SafeFilePath::Path(path) => resolve_file_in_fs( permission, @@ -1494,36 +1490,37 @@ pub fn resolve_path( // On iOS, start accessing security-scoped resource if the path is a file URL // Only if it hasn't been started already via start_accessing_security_scoped_resource #[cfg(target_os = "ios")] - { - if let SafeFilePath::Url(url) = &path { - if url.scheme() == "file" { - use objc2_foundation::{NSString, NSURL}; + if let SafeFilePath::Url(url) = &path { + if url.scheme() == "file" { + use objc2_foundation::{NSString, NSURL}; - let security_scoped_resources = webview.state::(); + let security_scoped_resources = webview.state::(); - // Check if already active (started via start_accessing_security_scoped_resource) - if !security_scoped_resources.is_tracked_manually(url.as_str()) { - let url_nsstring = NSString::from_str(url.as_str()); - let ns_url = unsafe { NSURL::URLWithString(&url_nsstring) }; - if let Some(ns_url) = ns_url { - // Start accessing the security-scoped resource - // This is required for files outside the app's sandbox (e.g., from file picker) - unsafe { - let success = ns_url.startAccessingSecurityScopedResource(); - if success { - log::debug!("Started accessing security-scoped resource for URL: {} (via resolve_path)", url.as_str()); - // Track it so we know to clean it up - security_scoped_resources.track_manually(url.as_str().to_string()); - } else { - log::warn!("Failed to start accessing security-scoped resource for URL: {}", url.as_str()); - } + // Check if already active (started via start_accessing_security_scoped_resource) + if !security_scoped_resources.is_tracked_manually(url.as_str()) { + let url_nsstring = NSString::from_str(url.as_str()); + let ns_url = unsafe { NSURL::URLWithString(&url_nsstring) }; + if let Some(ns_url) = ns_url { + // Start accessing the security-scoped resource + // This is required for files outside the app's sandbox (e.g., from file picker) + unsafe { + let success = ns_url.startAccessingSecurityScopedResource(); + if success { + log::debug!("Started accessing security-scoped resource for URL: {} (via resolve_path)", url.as_str()); + // Track it so we know to clean it up + security_scoped_resources.track_manually(url.as_str().to_string()); + } else { + log::warn!( + "Failed to start accessing security-scoped resource for URL: {}", + url.as_str() + ); } - } else { - log::debug!("Failed to create NSURL from URL: {}, ignoring security-scoped resource access request", url.as_str()); } } else { - log::debug!("Security-scoped resource already active for URL: {} (started via start_accessing_security_scoped_resource), skipping", url.as_str()); + log::debug!("Failed to create NSURL from URL: {}, ignoring security-scoped resource access request", url.as_str()); } + } else { + log::debug!("Security-scoped resource already active for URL: {} (started via start_accessing_security_scoped_resource), skipping", url.as_str()); } } } From 3fb27bf13a88dd1e5aa2cc933408be02b0eafc91 Mon Sep 17 00:00:00 2001 From: Vitor Ayres Date: Tue, 21 Jul 2026 03:56:52 -0300 Subject: [PATCH 16/41] fix(docs): deep link platform specific and fs scope (#3504) * deep link fix Platform Specific heading * fix fs permission toml * .changes * Update change files Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com> * Update .changes/fs-deny-scope.md * fix eol --------- Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com> --- .changes/deep-link-platform.md | 6 +++++ .changes/fs-deny-scope.md | 6 +++++ plugins/deep-link/guest-js/index.ts | 24 +++++++++++++------ plugins/fs/permissions/deny-webview-data.toml | 4 ++-- 4 files changed, 31 insertions(+), 9 deletions(-) create mode 100644 .changes/deep-link-platform.md create mode 100644 .changes/fs-deny-scope.md diff --git a/.changes/deep-link-platform.md b/.changes/deep-link-platform.md new file mode 100644 index 000000000..0dfb78803 --- /dev/null +++ b/.changes/deep-link-platform.md @@ -0,0 +1,6 @@ +--- +"deep-link": patch +"deep-link-js": patch +--- + +adds proper Platform-specific sections to the docs for `register`, `unregister`, `isRegistered`, and `onOpenUrl` \ No newline at end of file diff --git a/.changes/fs-deny-scope.md b/.changes/fs-deny-scope.md new file mode 100644 index 000000000..ca8974699 --- /dev/null +++ b/.changes/fs-deny-scope.md @@ -0,0 +1,6 @@ +--- +"fs": patch +"fs-js": patch +--- + +Fixed `deny-webview-data` has no effect \ No newline at end of file diff --git a/plugins/deep-link/guest-js/index.ts b/plugins/deep-link/guest-js/index.ts index 461bec8ad..e766a4547 100644 --- a/plugins/deep-link/guest-js/index.ts +++ b/plugins/deep-link/guest-js/index.ts @@ -14,9 +14,11 @@ import { type UnlistenFn, listen } from '@tauri-apps/api/event' * const urls = await getCurrent(); * ``` * - * #### - **Windows / Linux**: This function reads the command line arguments and checks if there's only one value, which must be an URL with scheme matching one of the configured values. - * Note that you must manually check the arguments when registering deep link schemes dynamically with [`Self::register`]. - * Additionally, the deep link might have been provided as a CLI argument so you should check if its format matches what you expect.. + * #### Platform-specific + * + * - **Windows / Linux:** This function reads the command line arguments and checks if there's only one value, which must be an URL with scheme matching one of the configured values. + * Note that you must manually check the arguments when registering deep link schemes dynamically with [`Self::register`]. + * Additionally, the deep link might have been provided as a CLI argument so you should check if its format matches what you expect. * * @since 2.0.0 */ @@ -35,7 +37,9 @@ export async function getCurrent(): Promise { * await register("my-scheme"); * ``` * - * #### - **macOS / Android / iOS**: Unsupported. + * #### Platform-specific + * + * - **macOS / Android / iOS:** Unsupported. * * @since 2.0.0 */ @@ -54,7 +58,9 @@ export async function register(protocol: string): Promise { * await unregister("my-scheme"); * ``` * - * #### - **macOS / Linux / Android / iOS**: Unsupported. + * #### Platform-specific + * + * - **macOS / Linux / Android / iOS:** Unsupported. * * @since 2.0.0 */ @@ -73,7 +79,9 @@ export async function unregister(protocol: string): Promise { * await isRegistered("my-scheme"); * ``` * - * #### - **macOS / Android / iOS**: Unsupported. + * #### Platform-specific + * + * - **macOS / Android / iOS:** Unsupported. * * @since 2.0.0 */ @@ -92,7 +100,9 @@ export async function isRegistered(protocol: string): Promise { * await onOpenUrl((urls) => { console.log(urls) }); * ``` * - * #### - **Windows / Linux**: Unsupported without the single-instance plugin. The OS will spawn a new app instance passing the URL as a CLI argument. + * #### Platform-specific + * + * - **Windows / Linux:** Unsupported without the single-instance plugin. The OS will spawn a new app instance passing the URL as a CLI argument. * * @since 2.0.0 */ diff --git a/plugins/fs/permissions/deny-webview-data.toml b/plugins/fs/permissions/deny-webview-data.toml index 73712d95e..3636ac6d4 100644 --- a/plugins/fs/permissions/deny-webview-data.toml +++ b/plugins/fs/permissions/deny-webview-data.toml @@ -6,7 +6,7 @@ description = """This denies read access to the `$APPLOCALDATA` folder on linux as the webview data and configuration values are stored here. Allowing access can lead to sensitive information disclosure and should be well considered.""" -[[scope.deny]] +[[permission.scope.deny]] path = "$APPLOCALDATA/**" [[permission]] @@ -15,5 +15,5 @@ description = """This denies read access to the `$APPLOCALDATA/EBWebView` folder on windows as the webview data and configuration values are stored here. Allowing access can lead to sensitive information disclosure and should be well considered.""" -[[scope.deny]] +[[permission.scope.deny]] path = "$APPLOCALDATA/EBWebView/**" From ab7489c964977c2cc19cdc303bd8f7142d5f5a2c Mon Sep 17 00:00:00 2001 From: Tony <68118705+Legend-Master@users.noreply.github.com> Date: Tue, 21 Jul 2026 18:25:16 +0800 Subject: [PATCH 17/41] feat(updater): option to not restart after install (#3299) * feat(updater): option to not restart after install * More platform cfg * Add the same function for `UpdaterBuilder` * Fix missing `#[cfg(windows)]` * Mark `current_exe_args` cfg(windows) * Mark `on_before_exit` cfg(windows) * Mark `installer_args` cfg(windows) * Note about `installer_arg` apply to both * Remove current args and restart together * Only build needed bundle on windows as well * Remove `/NS` since it breaks the msi updater * Add launch updater debug log * Add a folder to test updates * Remove unused `#[allow(unused)]` * Format * messed up git stage * Add change file * Clean up * Disable NSIS compression for API example * Bump wry for v1 test to pull in https://github.com/tauri-apps/wry/pull/1703 * format * Make typescript happy * Close new update on destroy --- .changes/updater-install-no-restart.md | 6 + examples/api/src-tauri/tauri.conf.json | 5 + examples/api/src/views/Updater.svelte | 30 +- examples/api/updater-test/.gitignore | 5 + examples/api/updater-test/README.md | 10 + examples/api/updater-test/updater.json | 11 + examples/api/vite.config.js | 2 +- plugins/updater/api-iife.js | 2 +- plugins/updater/guest-js/index.ts | 15 +- plugins/updater/src/commands.rs | 17 +- plugins/updater/src/config.rs | 19 +- plugins/updater/src/lib.rs | 6 +- plugins/updater/src/updater.rs | 360 +++++++++++------- .../updater/tests/app-updater/tauri.conf.json | 3 +- .../updater/tests/app-updater/tests/update.rs | 19 +- .../tests/updater-migration/v1-app/Cargo.lock | 6 +- 16 files changed, 328 insertions(+), 188 deletions(-) create mode 100644 .changes/updater-install-no-restart.md create mode 100644 examples/api/updater-test/.gitignore create mode 100644 examples/api/updater-test/README.md create mode 100644 examples/api/updater-test/updater.json diff --git a/.changes/updater-install-no-restart.md b/.changes/updater-install-no-restart.md new file mode 100644 index 000000000..9a9c1165c --- /dev/null +++ b/.changes/updater-install-no-restart.md @@ -0,0 +1,6 @@ +--- +"updater": minor +"updater-js": minor +--- + +On Windows, add a new option `restartAfterInstall`/`restart_after_install` to install an update without the installer re-launching the app diff --git a/examples/api/src-tauri/tauri.conf.json b/examples/api/src-tauri/tauri.conf.json index 00b095be8..be4918de3 100644 --- a/examples/api/src-tauri/tauri.conf.json +++ b/examples/api/src-tauri/tauri.conf.json @@ -77,7 +77,9 @@ }, "updater": { "pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IDE5QzMxNjYwNTM5OEUwNTgKUldSWTRKaFRZQmJER1h4d1ZMYVA3dnluSjdpN2RmMldJR09hUFFlZDY0SlFqckkvRUJhZDJVZXAK", + "dangerousInsecureTransportProtocol": true, "endpoints": [ + "http://localhost:5173/updater-test/updater.json", "https://tauri-update-server.vercel.app/update/{{target}}/{{current_version}}" ] } @@ -99,6 +101,9 @@ "localePath": "locales/pt-BR.wxl" } } + }, + "nsis": { + "compression": "none" } }, "iOS": { diff --git a/examples/api/src/views/Updater.svelte b/examples/api/src/views/Updater.svelte index 26d074a6b..5fdc77509 100644 --- a/examples/api/src/views/Updater.svelte +++ b/examples/api/src/views/Updater.svelte @@ -1,12 +1,18 @@ -
{#if !isChecking && !newUpdate} - + {:else if !isInstalling && newUpdate} - + {:else}
{progress}% diff --git a/examples/api/updater-test/.gitignore b/examples/api/updater-test/.gitignore new file mode 100644 index 000000000..78bd45a3a --- /dev/null +++ b/examples/api/updater-test/.gitignore @@ -0,0 +1,5 @@ +* + +!.gitignore +!README.md +!updater.json diff --git a/examples/api/updater-test/README.md b/examples/api/updater-test/README.md new file mode 100644 index 000000000..21551301a --- /dev/null +++ b/examples/api/updater-test/README.md @@ -0,0 +1,10 @@ +To test the updater: + +1. Comment out `verify_signature` inside `plugins/updater/src/updater.rs` +2. Run `pnpm tauri build --debug` to build the bundles +3. Copy the bundle you want to test to this folder (`examples/api/updater-test/`) +4. Run `pnpm tauri dev` and open the Updater tab to check + +If the bundle you're testing doesn't exist in the `updater.json` yet, add it manually and welcome to open an PR + +> The `updater.json` and debug bundles will be served by `vite` diff --git a/examples/api/updater-test/updater.json b/examples/api/updater-test/updater.json new file mode 100644 index 000000000..84edf614a --- /dev/null +++ b/examples/api/updater-test/updater.json @@ -0,0 +1,11 @@ +{ + "version": "2.1.0", + "notes": "Test update!", + "pub_date": "2026-03-01T14:04:20+00:00", + "platforms": { + "windows-x86_64": { + "signature": "", + "url": "http://localhost:5173/updater-test/Tauri API_2.0.0_x64_en-US.msi" + } + } +} diff --git a/examples/api/vite.config.js b/examples/api/vite.config.js index f7d87db87..aab72321e 100644 --- a/examples/api/vite.config.js +++ b/examples/api/vite.config.js @@ -27,7 +27,7 @@ export default defineConfig(async () => { port: 5173, strictPort: true, fs: { - allow: ['.', '../../tooling/api/dist'] + allow: ['.'] } } } diff --git a/plugins/updater/api-iife.js b/plugins/updater/api-iife.js index e13f5191a..fcdb28f80 100644 --- a/plugins/updater/api-iife.js +++ b/plugins/updater/api-iife.js @@ -1 +1 @@ -if("__TAURI__"in window){var __TAURI_PLUGIN_UPDATER__=function(t){"use strict";function e(t,e,s,n){if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===s?n:"a"===s?n.call(t):n?n.value:e.get(t)}function s(t,e,s,n,i){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return e.set(t,s),s}var n,i,a,r,o;"function"==typeof SuppressedError&&SuppressedError;const d="__TAURI_TO_IPC_KEY__";class c{constructor(t){n.set(this,void 0),i.set(this,0),a.set(this,[]),r.set(this,void 0),s(this,n,t||(()=>{})),this.id=function(t,e=!1){return window.__TAURI_INTERNALS__.transformCallback(t,e)}(t=>{const o=t.index;if("end"in t)return void(o==e(this,i,"f")?this.cleanupCallback():s(this,r,o));const d=t.message;if(o==e(this,i,"f")){for(e(this,n,"f").call(this,d),s(this,i,e(this,i,"f")+1);e(this,i,"f")in e(this,a,"f");){const t=e(this,a,"f")[e(this,i,"f")];e(this,n,"f").call(this,t),delete e(this,a,"f")[e(this,i,"f")],s(this,i,e(this,i,"f")+1)}e(this,i,"f")===e(this,r,"f")&&this.cleanupCallback()}else e(this,a,"f")[o]=d})}cleanupCallback(){window.__TAURI_INTERNALS__.unregisterCallback(this.id)}set onmessage(t){s(this,n,t)}get onmessage(){return e(this,n,"f")}[(n=new WeakMap,i=new WeakMap,a=new WeakMap,r=new WeakMap,d)](){return`__CHANNEL__:${this.id}`}toJSON(){return this[d]()}}async function l(t,e={},s){return window.__TAURI_INTERNALS__.invoke(t,e,s)}class h{get rid(){return e(this,o,"f")}constructor(t){o.set(this,void 0),s(this,o,t)}async close(){return l("plugin:resources|close",{rid:this.rid})}}o=new WeakMap;class u extends h{constructor(t){super(t.rid),this.available=!0,this.currentVersion=t.currentVersion,this.version=t.version,this.date=t.date,this.body=t.body,this.rawJson=t.rawJson}async download(t,e){_(e);const s=new c;t&&(s.onmessage=t);const n=await l("plugin:updater|download",{onEvent:s,rid:this.rid,...e});this.downloadedBytes=new h(n)}async install(){if(!this.downloadedBytes)throw new Error("Update.install called before Update.download");await l("plugin:updater|install",{updateRid:this.rid,bytesRid:this.downloadedBytes.rid}),this.downloadedBytes=void 0}async downloadAndInstall(t,e){_(e);const s=new c;t&&(s.onmessage=t),await l("plugin:updater|download_and_install",{onEvent:s,rid:this.rid,...e})}async close(){await(this.downloadedBytes?.close()),await super.close()}}function _(t){t?.headers&&(t.headers=Array.from(new Headers(t.headers).entries()))}return t.Update=u,t.check=async function(t){_(t);const e=await l("plugin:updater|check",{...t});return e?new u(e):null},t}({});Object.defineProperty(window.__TAURI__,"updater",{value:__TAURI_PLUGIN_UPDATER__})} +if("__TAURI__"in window){var __TAURI_PLUGIN_UPDATER__=function(t){"use strict";function e(t,e,s,n){if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===s?n:"a"===s?n.call(t):n?n.value:e.get(t)}function s(t,e,s,n,i){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return e.set(t,s),s}var n,i,a,r,o;"function"==typeof SuppressedError&&SuppressedError;const d="__TAURI_TO_IPC_KEY__";class c{constructor(t){n.set(this,void 0),i.set(this,0),a.set(this,[]),r.set(this,void 0),s(this,n,t||(()=>{})),this.id=function(t,e=!1){return window.__TAURI_INTERNALS__.transformCallback(t,e)}(t=>{const o=t.index;if("end"in t)return void(o==e(this,i,"f")?this.cleanupCallback():s(this,r,o));const d=t.message;if(o==e(this,i,"f")){for(e(this,n,"f").call(this,d),s(this,i,e(this,i,"f")+1);e(this,i,"f")in e(this,a,"f");){const t=e(this,a,"f")[e(this,i,"f")];e(this,n,"f").call(this,t),delete e(this,a,"f")[e(this,i,"f")],s(this,i,e(this,i,"f")+1)}e(this,i,"f")===e(this,r,"f")&&this.cleanupCallback()}else e(this,a,"f")[o]=d})}cleanupCallback(){window.__TAURI_INTERNALS__.unregisterCallback(this.id)}set onmessage(t){s(this,n,t)}get onmessage(){return e(this,n,"f")}[(n=new WeakMap,i=new WeakMap,a=new WeakMap,r=new WeakMap,d)](){return`__CHANNEL__:${this.id}`}toJSON(){return this[d]()}}async function l(t,e={},s){return window.__TAURI_INTERNALS__.invoke(t,e,s)}class h{get rid(){return e(this,o,"f")}constructor(t){o.set(this,void 0),s(this,o,t)}async close(){return l("plugin:resources|close",{rid:this.rid})}}o=new WeakMap;class u extends h{constructor(t){super(t.rid),this.available=!0,this.currentVersion=t.currentVersion,this.version=t.version,this.date=t.date,this.body=t.body,this.rawJson=t.rawJson}async download(t,e){_(e);const s=new c;t&&(s.onmessage=t);const n=await l("plugin:updater|download",{onEvent:s,rid:this.rid,...e});this.downloadedBytes=new h(n)}async install(t){if(!this.downloadedBytes)throw new Error("Update.install called before Update.download");await l("plugin:updater|install",{updateRid:this.rid,bytesRid:this.downloadedBytes.rid,...t}),this.downloadedBytes=void 0}async downloadAndInstall(t,e){_(e);const s=new c;t&&(s.onmessage=t),await l("plugin:updater|download_and_install",{onEvent:s,rid:this.rid,...e})}async close(){await(this.downloadedBytes?.close()),await super.close()}}function _(t){t?.headers&&(t.headers=Array.from(new Headers(t.headers).entries()))}return t.Update=u,t.check=async function(t){_(t);const e=await l("plugin:updater|check",{...t});return e?new u(e):null},t}({});Object.defineProperty(window.__TAURI__,"updater",{value:__TAURI_PLUGIN_UPDATER__})} diff --git a/plugins/updater/guest-js/index.ts b/plugins/updater/guest-js/index.ts index b65184367..1a120921a 100644 --- a/plugins/updater/guest-js/index.ts +++ b/plugins/updater/guest-js/index.ts @@ -40,6 +40,14 @@ interface DownloadOptions { timeout?: number } +/** Options used when installing an update */ +interface InstallOptions { + /** + * If the Windows installer should restart the app after installed, default is `true` + */ + restartAfterInstall?: boolean +} + interface UpdateMetadata { rid: number currentVersion: string @@ -95,14 +103,15 @@ class Update extends Resource { } /** Install downloaded updater package */ - async install(): Promise { + async install(options?: InstallOptions): Promise { if (!this.downloadedBytes) { throw new Error('Update.install called before Update.download') } await invoke('plugin:updater|install', { updateRid: this.rid, - bytesRid: this.downloadedBytes.rid + bytesRid: this.downloadedBytes.rid, + ...options }) // Don't need to call close, we did it in rust side already @@ -112,7 +121,7 @@ class Update extends Resource { /** Downloads the updater package and installs it */ async downloadAndInstall( onEvent?: (progress: DownloadEvent) => void, - options?: DownloadOptions + options?: DownloadOptions & InstallOptions ): Promise { convertToRustHeaders(options) const channel = new Channel() diff --git a/plugins/updater/src/commands.rs b/plugins/updater/src/commands.rs index 129c413c2..edc1b88fb 100644 --- a/plugins/updater/src/commands.rs +++ b/plugins/updater/src/commands.rs @@ -142,12 +142,22 @@ pub(crate) async fn install( webview: Webview, update_rid: ResourceId, bytes_rid: ResourceId, + restart_after_install: Option, ) -> Result<()> { let update = webview.resources_table().get::(update_rid)?; let bytes = webview .resources_table() .get::(bytes_rid)?; - update.install(&bytes.0)?; + + if let Some(restart_after_install) = restart_after_install { + let update = (*update).clone(); + update + .restart_after_install(restart_after_install) + .install(&bytes.0)?; + } else { + update.install(&bytes.0)?; + } + let _ = webview.resources_table().close(bytes_rid); Ok(()) } @@ -159,6 +169,7 @@ pub(crate) async fn download_and_install( on_event: Channel, headers: Option>, timeout: Option, + restart_after_install: Option, ) -> Result<()> { let update = webview.resources_table().get::(rid)?; @@ -176,6 +187,10 @@ pub(crate) async fn download_and_install( update.timeout = Some(Duration::from_millis(timeout)); } + if let Some(restart_after_install) = restart_after_install { + update = update.restart_after_install(restart_after_install); + } + let mut first_chunk = true; update diff --git a/plugins/updater/src/config.rs b/plugins/updater/src/config.rs index 8c6e8bc29..411956b9b 100644 --- a/plugins/updater/src/config.rs +++ b/plugins/updater/src/config.rs @@ -32,17 +32,30 @@ impl WindowsUpdateInstallMode { } } + #[cfg(windows)] + pub(crate) fn msi_restart_after_install_args(&self) -> &'static [&'static str] { + &["AUTOLAUNCHAPP=True"] + } + /// Returns the associated nsis arguments. pub fn nsis_args(&self) -> &'static [&'static str] { // `/P`: Passive // `/S`: Silent // `/R`: Restart match self { - Self::Passive => &["/P", "/R"], - Self::Quiet => &["/S", "/R"], + Self::Passive => &["/P"], + Self::Quiet => &["/S"], _ => &[], } } + + #[cfg(windows)] + pub(crate) fn nsis_restart_after_install_args(&self) -> &'static [&'static str] { + match self { + Self::BasicUi => &[], + _ => &["/R"], + } + } } impl Display for WindowsUpdateInstallMode { @@ -63,6 +76,8 @@ impl Display for WindowsUpdateInstallMode { #[serde(rename_all = "camelCase")] pub struct WindowsConfig { /// Additional arguments given to the NSIS or WiX installer. + /// + /// Note: this applies to both WiX and NSIS installers #[serde( default, alias = "installer-args", diff --git a/plugins/updater/src/lib.rs b/plugins/updater/src/lib.rs index 8eba4269d..e4e21e16c 100644 --- a/plugins/updater/src/lib.rs +++ b/plugins/updater/src/lib.rs @@ -83,9 +83,9 @@ impl> UpdaterExt for T { builder = builder.target(target); } - let args = self.env().args_os; - if !args.is_empty() { - builder = builder.current_exe_args(args); + #[cfg(windows)] + { + builder = builder.current_exe_args(self.env().args_os); } builder.version_comparator = version_comparator.clone(); diff --git a/plugins/updater/src/updater.rs b/plugins/updater/src/updater.rs index 142522874..69a7fd0f8 100644 --- a/plugins/updater/src/updater.rs +++ b/plugins/updater/src/updater.rs @@ -129,16 +129,34 @@ impl RemoteRelease { pub type OnBeforeExit = Arc; pub type OnBeforeRequest = Arc ClientBuilder + Send + Sync + 'static>; pub type VersionComparator = Arc bool + Send + Sync>; +#[cfg(target_os = "macos")] type MainThreadClosure = Box; -type RunOnMainThread = - Box std::result::Result<(), tauri::Error> + Send + Sync + 'static>; +#[cfg(target_os = "macos")] +type RunOnMainThread = Arc tauri::Result<()> + Send + Sync + 'static>; + +// TODO: Move more fields to this in v3 if we can mark those fields non `pub` +/// Updater context shared between [`UpdaterBuilder`], [`Updater`] and [`Update`] +#[derive(Clone)] +struct UpdaterContext { + config: Config, + configure_client: Option, + #[cfg(target_os = "macos")] + run_on_main_thread: RunOnMainThread, + /// App name, used for creating named tempfiles + #[cfg(windows)] + app_name: String, + #[cfg(windows)] + installer_args: Vec, + #[cfg(windows)] + current_exe_args: Vec, + #[cfg(windows)] + on_before_exit: Option, + #[cfg(windows)] + restart_after_install: bool, +} pub struct UpdaterBuilder { - #[allow(dead_code)] - run_on_main_thread: RunOnMainThread, - app_name: String, current_version: Version, - config: Config, pub(crate) version_comparator: Option, executable_path: Option, target: Option, @@ -147,27 +165,38 @@ pub struct UpdaterBuilder { timeout: Option, proxy: Option, no_proxy: bool, - installer_args: Vec, - current_exe_args: Vec, - on_before_exit: Option, - configure_client: Option, + context: UpdaterContext, } impl UpdaterBuilder { pub(crate) fn new(app: &AppHandle, config: crate::Config) -> Self { - let app_ = app.clone(); - let run_on_main_thread = move |f| app_.run_on_main_thread(f); + #[cfg(target_os = "macos")] + let run_on_main_thread = { + let app_ = app.clone(); + Arc::new(move |f| app_.run_on_main_thread(f)) + }; Self { - run_on_main_thread: Box::new(run_on_main_thread), - installer_args: config - .windows - .as_ref() - .map(|w| w.installer_args.clone()) - .unwrap_or_default(), - current_exe_args: Vec::new(), - app_name: app.package_info().name.clone(), + context: UpdaterContext { + #[cfg(windows)] + installer_args: config + .windows + .as_ref() + .map(|w| w.installer_args.clone()) + .unwrap_or_default(), + config, + configure_client: None, + #[cfg(target_os = "macos")] + run_on_main_thread, + #[cfg(windows)] + app_name: app.package_info().name.clone(), + #[cfg(windows)] + current_exe_args: Vec::new(), + #[cfg(windows)] + on_before_exit: None, + #[cfg(windows)] + restart_after_install: true, + }, current_version: app.package_info().version.clone(), - config, version_comparator: None, executable_path: None, target: None, @@ -176,8 +205,6 @@ impl UpdaterBuilder { timeout: None, proxy: None, no_proxy: false, - on_before_exit: None, - configure_client: None, } } @@ -197,7 +224,7 @@ impl UpdaterBuilder { pub fn endpoints(mut self, endpoints: Vec) -> Result { crate::config::validate_endpoints( &endpoints, - self.config.dangerous_insecure_transport_protocol, + self.context.config.dangerous_insecure_transport_protocol, )?; self.endpoints.replace(endpoints); @@ -251,26 +278,40 @@ impl UpdaterBuilder { } pub fn pubkey>(mut self, pubkey: S) -> Self { - self.config.pubkey = pubkey.into(); + self.context.config.pubkey = pubkey.into(); self } /// Adds an argument to pass to the Windows installer. + /// + /// Note: this applies to both WiX and NSIS installers + #[cfg_attr(not(windows), allow(unused))] pub fn installer_arg(mut self, arg: S) -> Self where S: Into, { - self.installer_args.push(arg.into()); + #[cfg(windows)] + { + self.context.installer_args.push(arg.into()); + } self } /// Adds multiple arguments to pass to the Windows installer. + /// + /// Note: this applies to both WiX and NSIS installers + #[cfg_attr(not(windows), allow(unused))] pub fn installer_args(mut self, args: I) -> Self where I: IntoIterator, S: Into, { - self.installer_args.extend(args.into_iter().map(Into::into)); + #[cfg(windows)] + { + self.context + .installer_args + .extend(args.into_iter().map(Into::into)); + } self } @@ -280,14 +321,32 @@ impl UpdaterBuilder { /// [`Self::installer_arg`], [`crate::Builder::installer_arg`] /// and the `plugins > updater > windows > installerArgs` config, /// not the ones managed by us (e.g. `/UPDATER` flag passed to the NSIS installer) + #[cfg_attr(not(windows), allow(unused))] pub fn clear_installer_args(mut self) -> Self { - self.installer_args.clear(); + #[cfg(windows)] + { + self.context.installer_args.clear(); + } self } /// Function to run before we run the installer and exit the app through `std::process::exit(0)` on Windows + #[cfg_attr(not(windows), allow(unused))] pub fn on_before_exit(mut self, f: F) -> Self { - self.on_before_exit.replace(Arc::new(f)); + #[cfg(windows)] + { + self.context.on_before_exit.replace(Arc::new(f)); + } + self + } + + /// If the Windows installer should restart the app after installed, default is `true` + #[cfg_attr(not(windows), allow(unused))] + pub fn restart_after_install(mut self, restart_after_install: bool) -> Self { + #[cfg(windows)] + { + self.context.restart_after_install = restart_after_install; + } self } @@ -299,14 +358,14 @@ impl UpdaterBuilder { mut self, f: F, ) -> Self { - self.configure_client.replace(Arc::new(f)); + self.context.configure_client.replace(Arc::new(f)); self } pub fn build(self) -> Result { let endpoints = self .endpoints - .unwrap_or_else(|| self.config.endpoints.clone()); + .unwrap_or_else(|| self.context.config.endpoints.clone()); if endpoints.is_empty() { return Err(Error::EmptyEndpoints); @@ -324,44 +383,36 @@ impl UpdaterBuilder { }; Ok(Updater { - run_on_main_thread: Arc::new(self.run_on_main_thread), - config: self.config, - app_name: self.app_name, current_version: self.current_version, version_comparator: self.version_comparator, timeout: self.timeout, proxy: self.proxy, no_proxy: self.no_proxy, endpoints, - installer_args: self.installer_args, - current_exe_args: self.current_exe_args, arch, target: self.target, headers: self.headers, extract_path, - on_before_exit: self.on_before_exit, - configure_client: self.configure_client, + context: self.context.clone(), }) } } +#[cfg(windows)] impl UpdaterBuilder { pub(crate) fn current_exe_args(mut self, args: I) -> Self where I: IntoIterator, S: Into, { - self.current_exe_args + self.context + .current_exe_args .extend(args.into_iter().map(Into::into)); self } } pub struct Updater { - #[allow(dead_code)] - run_on_main_thread: Arc, - config: Config, - app_name: String, current_version: Version, version_comparator: Option, timeout: Option, @@ -374,12 +425,7 @@ pub struct Updater { target: Option, headers: HeaderMap, extract_path: PathBuf, - on_before_exit: Option, - configure_client: Option, - #[allow(unused)] - installer_args: Vec, - #[allow(unused)] - current_exe_args: Vec, + context: UpdaterContext, } impl Updater { @@ -449,10 +495,10 @@ impl Updater { } let mut request = ClientBuilder::new().user_agent(UPDATER_USER_AGENT); - if self.config.dangerous_accept_invalid_certs { + if self.context.config.dangerous_accept_invalid_certs { request = request.danger_accept_invalid_certs(true); } - if self.config.dangerous_accept_invalid_hostnames { + if self.context.config.dangerous_accept_invalid_hostnames { request = request.danger_accept_invalid_hostnames(true); } if let Some(timeout) = self.timeout { @@ -467,7 +513,7 @@ impl Updater { request = request.proxy(proxy); } - if let Some(ref configure_client) = self.configure_client { + if let Some(ref configure_client) = self.context.configure_client { request = configure_client(request); } @@ -537,10 +583,6 @@ impl Updater { let update = if should_update { Some(Update { - run_on_main_thread: self.run_on_main_thread.clone(), - config: self.config.clone(), - on_before_exit: self.on_before_exit.clone(), - app_name: self.app_name.clone(), current_version: self.current_version.to_string(), target: target.to_owned(), extract_path: self.extract_path.clone(), @@ -554,9 +596,7 @@ impl Updater { proxy: self.proxy.clone(), no_proxy: self.no_proxy, headers: self.headers.clone(), - installer_args: self.installer_args.clone(), - current_exe_args: self.current_exe_args.clone(), - configure_client: self.configure_client.clone(), + context: self.context.clone(), }) } else { None @@ -600,11 +640,6 @@ impl Updater { #[derive(Clone)] pub struct Update { - #[allow(dead_code)] - run_on_main_thread: Arc, - config: Config, - #[allow(unused)] - on_before_exit: Option, /// Update description pub body: Option, /// Version used to check for update @@ -633,14 +668,7 @@ pub struct Update { /// Extract path #[allow(unused)] extract_path: PathBuf, - /// App name, used for creating named tempfiles on Windows - #[allow(unused)] - app_name: String, - #[allow(unused)] - installer_args: Vec, - #[allow(unused)] - current_exe_args: Vec, - configure_client: Option, + context: UpdaterContext, } impl Resource for Update {} @@ -661,10 +689,10 @@ impl Update { } let mut request = ClientBuilder::new().user_agent(UPDATER_USER_AGENT); - if self.config.dangerous_accept_invalid_certs { + if self.context.config.dangerous_accept_invalid_certs { request = request.danger_accept_invalid_certs(true); } - if self.config.dangerous_accept_invalid_hostnames { + if self.context.config.dangerous_accept_invalid_hostnames { request = request.danger_accept_invalid_hostnames(true); } if let Some(timeout) = self.timeout { @@ -676,7 +704,7 @@ impl Update { let proxy = reqwest::Proxy::all(proxy.as_str())?; request = request.proxy(proxy); } - if let Some(ref configure_client) = self.configure_client { + if let Some(ref configure_client) = self.context.configure_client { request = configure_client(request); } let response = request @@ -709,7 +737,7 @@ impl Update { } on_download_finish(); - verify_signature(&buffer, &self.signature, &self.config.pubkey)?; + verify_signature(&buffer, &self.signature, &self.context.config.pubkey)?; Ok(buffer) } @@ -733,6 +761,16 @@ impl Update { fn install_inner(&self, _bytes: &[u8]) -> Result<()> { Ok(()) } + + /// Whether the Windows installer should restart the app after installed, default is `true` + #[cfg_attr(not(windows), allow(unused))] + pub fn restart_after_install(mut self, restart_after_install: bool) -> Self { + #[cfg(windows)] + { + self.context.restart_after_install = restart_after_install; + } + self + } } #[cfg(windows)] @@ -785,7 +823,6 @@ impl Update { /// │ └──[AppName]_[version]_x64-setup.exe # NSIS installer /// └── ... fn install_inner(&self, bytes: &[u8]) -> Result<()> { - use std::iter::once; use windows_sys::{ w, Win32::UI::{Shell::ShellExecuteW, WindowsAndMessaging::SW_SHOW}, @@ -793,48 +830,7 @@ impl Update { let updater_type = self.extract(bytes)?; - let install_mode = self.config.install_mode(); - let current_args = &self.current_exe_args()[1..]; - let msi_args; - let nsis_args; - - let installer_args: Vec<&OsStr> = match &updater_type { - WindowsUpdaterType::Nsis { .. } => { - nsis_args = current_args - .iter() - .map(escape_nsis_current_exe_arg) - .collect::>(); - - install_mode - .nsis_args() - .iter() - .map(OsStr::new) - .chain(once(OsStr::new("/UPDATE"))) - .chain(once(OsStr::new("/ARGS"))) - .chain(nsis_args.iter().map(OsStr::new)) - .chain(self.installer_args()) - .collect() - } - WindowsUpdaterType::Msi { path, .. } => { - let escaped_args = current_args - .iter() - .map(escape_msi_property_arg) - .collect::>() - .join(" "); - msi_args = OsString::from(format!("LAUNCHAPPARGS=\"{escaped_args}\"")); - - [OsStr::new("/i"), path.as_os_str()] - .into_iter() - .chain(install_mode.msiexec_args().iter().map(OsStr::new)) - .chain(once(OsStr::new("/promptrestart"))) - .chain(self.installer_args()) - .chain(once(OsStr::new("AUTOLAUNCHAPP=True"))) - .chain(once(msi_args.as_os_str())) - .collect() - } - }; - - if let Some(on_before_exit) = self.on_before_exit.as_ref() { + if let Some(on_before_exit) = self.context.on_before_exit.as_ref() { log::debug!("running on_before_exit hook"); on_before_exit(); } @@ -846,9 +842,11 @@ impl Update { |p| OsString::from(format!("{p}\\System32\\msiexec.exe")), ), }; - let file = encode_wide(file); + let parameters = self.updater_parameters(&updater_type); - let parameters = installer_args.join(OsStr::new(" ")); + log::debug!("Executing updater {file:?} with parameters: {parameters:?}"); + + let file = encode_wide(file); let parameters = encode_wide(parameters); unsafe { @@ -865,18 +863,72 @@ impl Update { std::process::exit(0); } - fn installer_args(&self) -> Vec<&OsStr> { - self.installer_args - .iter() - .map(OsStr::new) - .collect::>() + fn updater_parameters(&self, updater_type: &WindowsUpdaterType) -> OsString { + let install_mode = self.context.config.install_mode(); + let current_args = &self.context.current_exe_args[1..]; + + match updater_type { + WindowsUpdaterType::Nsis { .. } => { + let mut installer_args: Vec<&OsStr> = Vec::new(); + installer_args.extend(install_mode.nsis_args().iter().map(OsStr::new)); + installer_args.push(OsStr::new("/UPDATE")); + + let nsis_current_exe_arg; + if self.context.restart_after_install { + nsis_current_exe_arg = current_args + .iter() + .map(escape_nsis_current_exe_arg) + .collect::>(); + + installer_args.extend( + install_mode + .nsis_restart_after_install_args() + .iter() + .map(OsStr::new), + ); + installer_args.push(OsStr::new("/ARGS")); + installer_args.extend(nsis_current_exe_arg.iter().map(OsStr::new)); + } + + installer_args.extend(self.installer_args()); + + installer_args.join(OsStr::new(" ")) + } + WindowsUpdaterType::Msi { path, .. } => { + let mut installer_args: Vec<&OsStr> = vec![OsStr::new("/i"), path.as_os_str()]; + installer_args.extend(install_mode.msiexec_args().iter().map(OsStr::new)); + installer_args.push(OsStr::new("/promptrestart")); + installer_args.extend(self.installer_args()); + + let msi_current_exe_arg; + if self.context.restart_after_install { + msi_current_exe_arg = format!( + "LAUNCHAPPARGS=\"{}\"", + current_args + .iter() + .map(escape_msi_property_arg) + .collect::>() + .join(" ") + ); + + installer_args.extend( + install_mode + .msi_restart_after_install_args() + .iter() + .map(OsStr::new), + ); + installer_args.push(OsStr::new(&msi_current_exe_arg)); + } + + installer_args.join(OsStr::new(" ")) + } + } } - fn current_exe_args(&self) -> Vec<&OsStr> { - self.current_exe_args - .iter() - .map(OsStr::new) - .collect::>() + fn installer_args( + &self, + ) -> std::iter::Map, fn(&OsString) -> &OsStr> { + self.context.installer_args.iter().map(OsStr::new) } fn extract(&self, bytes: &[u8]) -> Result { @@ -890,7 +942,10 @@ impl Update { fn make_temp_dir(&self) -> Result { Ok(tempfile::Builder::new() - .prefix(&format!("{}-{}-updater-", self.app_name, self.version)) + .prefix(&format!( + "{}-{}-updater-", + self.context.app_name, self.version + )) .tempdir()? .keep()) } @@ -938,7 +993,10 @@ impl Update { let temp_dir = self.make_temp_dir()?; let mut temp_file = tempfile::Builder::new() - .prefix(&format!("{}-{}-installer", self.app_name, self.version)) + .prefix(&format!( + "{}-{}-installer", + self.context.app_name, self.version + )) .suffix(ext) .rand_bytes(0) .tempfile_in(temp_dir)?; @@ -1277,7 +1335,7 @@ impl Update { ); let (tx, rx) = std::sync::mpsc::channel(); - let res = (self.run_on_main_thread)(Box::new(move || { + let res = (self.context.run_on_main_thread)(Box::new(move || { let mut script = osakit::Script::new_from_source(osakit::Language::AppleScript, &apple_script); script.compile().expect("invalid AppleScript"); @@ -1450,7 +1508,7 @@ where } // Validate signature -fn verify_signature(data: &[u8], release_signature: &str, pub_key: &str) -> Result { +fn verify_signature(data: &[u8], release_signature: &str, pub_key: &str) -> Result<()> { // we need to convert the pub key let pub_key_decoded = base64_to_string(pub_key)?; let public_key = PublicKey::decode(&pub_key_decoded)?; @@ -1459,7 +1517,7 @@ fn verify_signature(data: &[u8], release_signature: &str, pub_key: &str) -> Resu // Validate signature or bail out public_key.verify(data, &signature, true)?; - Ok(true) + Ok(()) } fn base64_to_string(base64_string: &str) -> Result { @@ -1498,25 +1556,31 @@ impl PathExt for PathBuf { // adapted from https://github.com/rust-lang/rust/blob/1c047506f94cd2d05228eb992b0a6bbed1942349/library/std/src/sys/args/windows.rs#L174 #[cfg(windows)] -fn escape_nsis_current_exe_arg(arg: &&OsStr) -> String { - let arg = arg.to_string_lossy(); - let mut cmd: Vec = Vec::new(); +fn escape_nsis_current_exe_arg(arg: impl AsRef) -> OsString { + use std::os::windows::ffi::{OsStrExt, OsStringExt}; + + let arg = arg.as_ref(); + let mut cmd: Vec = Vec::new(); // compared to std we additionally escape `/` so that nsis won't interpret them as a beginning of an nsis argument. - let quote = arg.chars().any(|c| c == ' ' || c == '\t' || c == '/') || arg.is_empty(); + let quote = arg + .as_encoded_bytes() + .iter() + .any(|c| *c == b' ' || *c == b'\t' || *c == b'/') + || arg.is_empty(); let escape = true; if quote { - cmd.push('"'); + cmd.push('"' as u16); } let mut backslashes: usize = 0; - for x in arg.chars() { + for x in arg.encode_wide() { if escape { - if x == '\\' { + if x == '\\' as u16 { backslashes += 1; } else { - if x == '"' { + if x == '"' as u16 { // Add n+1 backslashes to total 2n+1 before internal '"'. - cmd.extend((0..=backslashes).map(|_| '\\')); + cmd.extend((0..=backslashes).map(|_| '\\' as u16)); } backslashes = 0; } @@ -1525,10 +1589,10 @@ fn escape_nsis_current_exe_arg(arg: &&OsStr) -> String { } if quote { // Add n backslashes to total 2n before ending '"'. - cmd.extend((0..backslashes).map(|_| '\\')); - cmd.push('"'); + cmd.extend((0..backslashes).map(|_| '\\' as u16)); + cmd.push('"' as u16); } - cmd.into_iter().collect() + OsString::from_wide(&cmd) } #[cfg(windows)] diff --git a/plugins/updater/tests/app-updater/tauri.conf.json b/plugins/updater/tests/app-updater/tauri.conf.json index fc70993eb..705a73f82 100644 --- a/plugins/updater/tests/app-updater/tauri.conf.json +++ b/plugins/updater/tests/app-updater/tauri.conf.json @@ -6,8 +6,7 @@ "endpoints": ["http://localhost:3007"], "pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IEUwNDRGMjkwRjg2MDhCRDAKUldUUWkyRDRrUEpFNEQ4SmdwcU5PaXl6R2ZRUUNvUnhIaVkwVUltV0NMaEx6VTkrWVhpT0ZqeEEK", "windows": { - "installMode": "quiet", - "installerArgs": ["/NS"] + "installMode": "quiet" } } }, diff --git a/plugins/updater/tests/app-updater/tests/update.rs b/plugins/updater/tests/app-updater/tests/update.rs index f962eff9e..acaee63c8 100644 --- a/plugins/updater/tests/app-updater/tests/update.rs +++ b/plugins/updater/tests/app-updater/tests/update.rs @@ -46,7 +46,7 @@ struct Update { platforms: HashMap, } -fn build_app(cwd: &Path, config: &Config, bundle_updater: bool, target: BundleTarget) { +fn build_app(cwd: &Path, config: &Config, target: Option) { let mut command = Command::new("cargo"); command .args(["tauri", "build", "--verbose"]) @@ -56,17 +56,10 @@ fn build_app(cwd: &Path, config: &Config, bundle_updater: bool, target: BundleTa .env("TAURI_SIGNING_PRIVATE_KEY_PASSWORD", "") .current_dir(cwd); - #[cfg(target_os = "linux")] - command.args(["--bundles", target.name()]); - #[cfg(target_os = "macos")] - command.args(["--bundles", target.name()]); - - if bundle_updater { - #[cfg(windows)] - command.args(["--bundles", "msi", "nsis"]); + if let Some(target) = target { + command.arg("--bundles").arg(target.name()); } else { - #[cfg(windows)] - command.args(["--bundles", target.name()]); + command.arg("--no-bundle"); } let status = command @@ -318,7 +311,7 @@ fn update_app() { { // bundle app update config.version = "1.0.0"; - build_app(&manifest_dir, &config, true, BundleTarget::default()); + build_app(&manifest_dir, &config, Some(bundle_target)); let bundle_updater_ext = if v1_compatible { out_bundle_path @@ -401,7 +394,7 @@ fn update_app() { config.version = "0.1.0"; // bundle initial app version - build_app(&manifest_dir, &config, false, bundle_target); + build_app(&manifest_dir, &config, None); for expected_exit_code in status_checks { let mut binary_cmd = if cfg!(windows) { diff --git a/plugins/updater/tests/updater-migration/v1-app/Cargo.lock b/plugins/updater/tests/updater-migration/v1-app/Cargo.lock index 0d40d7392..57bb1ade5 100644 --- a/plugins/updater/tests/updater-migration/v1-app/Cargo.lock +++ b/plugins/updater/tests/updater-migration/v1-app/Cargo.lock @@ -3794,7 +3794,7 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.48.0", ] [[package]] @@ -4137,9 +4137,9 @@ dependencies = [ [[package]] name = "wry" -version = "0.24.10" +version = "0.24.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00711278ed357350d44c749c286786ecac644e044e4da410d466212152383b45" +checksum = "4a2a144c3ab5e83e04724bc8e67cea552ffae413185fda459fafdae173fd985d" dependencies = [ "base64 0.13.1", "block", From abc903c240ba1b7844404da8affaf5342cd18943 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 27 Jul 2026 13:29:36 +0800 Subject: [PATCH 18/41] chore(deps): update dependency rollup to v4.62.2 (#3423) * chore(deps): update dependency rollup to v4.62.2 * Fix audit --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Tony --- examples/api/package.json | 8 +- package.json | 2 +- plugins/deep-link/examples/app/package.json | 4 +- .../examples/AppSettingsManager/package.json | 4 +- .../websocket/examples/tauri-app/package.json | 4 +- pnpm-lock.yaml | 307 ++++++++---------- 6 files changed, 155 insertions(+), 174 deletions(-) diff --git a/examples/api/package.json b/examples/api/package.json index 8a78158e7..af7a4222f 100644 --- a/examples/api/package.json +++ b/examples/api/package.json @@ -15,7 +15,7 @@ "@tauri-apps/plugin-biometric": "workspace:*", "@tauri-apps/plugin-cli": "workspace:*", "@tauri-apps/plugin-clipboard-manager": "workspace:*", - "@tauri-apps/plugin-dialog": "2", + "@tauri-apps/plugin-dialog": "workspace:*", "@tauri-apps/plugin-fs": "workspace:*", "@tauri-apps/plugin-geolocation": "workspace:*", "@tauri-apps/plugin-global-shortcut": "workspace:*", @@ -27,7 +27,7 @@ "@tauri-apps/plugin-os": "workspace:*", "@tauri-apps/plugin-process": "workspace:*", "@tauri-apps/plugin-shell": "workspace:*", - "@tauri-apps/plugin-store": "2", + "@tauri-apps/plugin-store": "workspace:*", "@tauri-apps/plugin-updater": "workspace:*", "@tauri-apps/plugin-upload": "workspace:*", "@zerodevx/svelte-json-view": "1.0.11" @@ -38,8 +38,8 @@ "@sveltejs/vite-plugin-svelte": "^7.0.0", "@tauri-apps/cli": "2.11.4", "@unocss/extractor-svelte": "^66.6.7", - "svelte": "^5.54.0", + "svelte": "^5.55.7", "unocss": "^66.6.7", - "vite": "^8.0.1" + "vite": "^8.0.16" } } diff --git a/package.json b/package.json index 900997f47..53e098368 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "eslint-config-prettier": "10.1.8", "eslint-plugin-security": "4.0.1", "prettier": "3.8.3", - "rollup": "4.60.3", + "rollup": "4.62.2", "tslib": "2.8.1", "typescript": "6.0.3", "typescript-eslint": "8.58.2" diff --git a/plugins/deep-link/examples/app/package.json b/plugins/deep-link/examples/app/package.json index 654c3a507..6b1211a88 100644 --- a/plugins/deep-link/examples/app/package.json +++ b/plugins/deep-link/examples/app/package.json @@ -15,7 +15,7 @@ }, "devDependencies": { "@tauri-apps/cli": "2.11.4", - "typescript": "^6.0.0", - "vite": "^8.0.1" + "typescript": "^6.0.3", + "vite": "^8.0.16" } } diff --git a/plugins/store/examples/AppSettingsManager/package.json b/plugins/store/examples/AppSettingsManager/package.json index 281cb1972..f3907b4ad 100644 --- a/plugins/store/examples/AppSettingsManager/package.json +++ b/plugins/store/examples/AppSettingsManager/package.json @@ -9,7 +9,7 @@ }, "devDependencies": { "@tauri-apps/cli": "2.11.4", - "typescript": "^6.0.0", - "vite": "^8.0.1" + "typescript": "^6.0.3", + "vite": "^8.0.16" } } diff --git a/plugins/websocket/examples/tauri-app/package.json b/plugins/websocket/examples/tauri-app/package.json index c18f6a564..cc328b800 100644 --- a/plugins/websocket/examples/tauri-app/package.json +++ b/plugins/websocket/examples/tauri-app/package.json @@ -10,8 +10,8 @@ }, "devDependencies": { "@tauri-apps/cli": "2.11.4", - "typescript": "^6.0.0", - "vite": "^8.0.1" + "typescript": "^6.0.3", + "vite": "^8.0.16" }, "dependencies": { "tauri-plugin-websocket-api": "link:..\\.." diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 90ed78a66..82d1f7a27 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,13 +13,13 @@ importers: version: 10.0.1(eslint@10.4.0(jiti@2.6.1)) '@rollup/plugin-node-resolve': specifier: 16.0.3 - version: 16.0.3(rollup@4.60.3) + version: 16.0.3(rollup@4.62.2) '@rollup/plugin-terser': specifier: 1.0.0 - version: 1.0.0(rollup@4.60.3) + version: 1.0.0(rollup@4.62.2) '@rollup/plugin-typescript': specifier: 12.3.0 - version: 12.3.0(rollup@4.60.3)(tslib@2.8.1)(typescript@6.0.3) + version: 12.3.0(rollup@4.62.2)(tslib@2.8.1)(typescript@6.0.3) eslint: specifier: 10.4.0 version: 10.4.0(jiti@2.6.1) @@ -33,8 +33,8 @@ importers: specifier: 3.8.3 version: 3.8.3 rollup: - specifier: 4.60.3 - version: 4.60.3 + specifier: 4.62.2 + version: 4.62.2 tslib: specifier: 2.8.1 version: 2.8.1 @@ -63,8 +63,8 @@ importers: specifier: workspace:* version: link:../../plugins/clipboard-manager '@tauri-apps/plugin-dialog': - specifier: '2' - version: 2.7.1 + specifier: workspace:* + version: link:../../plugins/dialog '@tauri-apps/plugin-fs': specifier: workspace:* version: link:../../plugins/fs @@ -99,8 +99,8 @@ importers: specifier: workspace:* version: link:../../plugins/shell '@tauri-apps/plugin-store': - specifier: '2' - version: 2.4.3 + specifier: workspace:* + version: link:../../plugins/store '@tauri-apps/plugin-updater': specifier: workspace:* version: link:../../plugins/updater @@ -127,13 +127,13 @@ importers: specifier: ^66.6.7 version: 66.6.7 svelte: - specifier: ^5.54.0 + specifier: ^5.55.7 version: 5.55.7(@typescript-eslint/types@8.58.2) unocss: specifier: ^66.6.7 version: 66.6.7(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(vite@8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.1)) vite: - specifier: ^8.0.1 + specifier: ^8.0.16 version: 8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.1) plugins/autostart: @@ -189,10 +189,10 @@ importers: specifier: 2.11.4 version: 2.11.4 typescript: - specifier: ^6.0.0 + specifier: ^6.0.3 version: 6.0.3 vite: - specifier: ^8.0.1 + specifier: ^8.0.16 version: 8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.1) plugins/dialog: @@ -303,10 +303,10 @@ importers: specifier: 2.11.4 version: 2.11.4 typescript: - specifier: ^6.0.0 + specifier: ^6.0.3 version: 6.0.3 vite: - specifier: ^8.0.1 + specifier: ^8.0.16 version: 8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.1) plugins/stronghold: @@ -343,10 +343,10 @@ importers: specifier: 2.11.4 version: 2.11.4 typescript: - specifier: ^6.0.0 + specifier: ^6.0.3 version: 6.0.3 vite: - specifier: ^8.0.1 + specifier: ^8.0.16 version: 8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.1) plugins/window-state: @@ -894,141 +894,141 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.60.3': - resolution: {integrity: sha512-x35CNW/ANXG3hE/EZpRU8MXX1JDN86hBb2wMGAtltkz7pc6cxgjpy1OMMfDosOQ+2hWqIkag/fGok1Yady9nGw==} + '@rollup/rollup-android-arm-eabi@4.62.2': + resolution: {integrity: sha512-6o7ZLZK+BeenkZCFNDXqpbjw9bD6nuWonvS/lwQJp7NoVVxm6p3qE7qQ5jGuBjiFsgvqjD8mZAU5oWxTmbOeOg==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.60.3': - resolution: {integrity: sha512-xw3xtkDApIOGayehp2+Rz4zimfkaX65r4t47iy+ymQB2G4iJCBBfj0ogVg5jpvjpn8UWn/+q9tprxleYeNp3Hw==} + '@rollup/rollup-android-arm64@4.62.2': + resolution: {integrity: sha512-BaH7BllCACHoH1LguOU56UItGfUWjujlO65kS9LAodViaN4bwIKd7oeW/ZHJ/4ljr/7MIiENnNy3HJ0zXv8Zkw==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.60.3': - resolution: {integrity: sha512-vo6Y5Qfpx7/5EaamIwi0WqW2+zfiusVihKatLvtN1VFVy3D13uERk/6gZLU1UiHRL6fDXqj/ELIeVRGnvcTE1g==} + '@rollup/rollup-darwin-arm64@4.62.2': + resolution: {integrity: sha512-v39RCCvj4He82I9sFmk+M1VZ0PLM9sfsLVikjfx2hYBNALhrrOR2D3JjQA6AhlaSOgcR+RzrKY7e1+bT6SUO/A==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.60.3': - resolution: {integrity: sha512-D+0QGcZhBzTN82weOnsSlY7V7+RMmPuF1CkbxyMAGE8+ZHeUjyb76ZiWmBlCu//AQQONvxcqRbwZTajZKqjuOw==} + '@rollup/rollup-darwin-x64@4.62.2': + resolution: {integrity: sha512-yl0y2vq3S3lHeuXhEdss6TWfKW8vkujImO12tn4ZkG/4oghr09LvdYm2RElVjokTQiUvDUGXLGsYeLqUMCKpGA==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.60.3': - resolution: {integrity: sha512-6HnvHCT7fDyj6R0Ph7A6x8dQS/S38MClRWeDLqc0MdfWkxjiu1HSDYrdPhqSILzjTIC/pnXbbJbo+ft+gy/9hQ==} + '@rollup/rollup-freebsd-arm64@4.62.2': + resolution: {integrity: sha512-tT4pvt4qXD+vEoezupCWi+a1F0vvDiksiHc+PxRlYTOH1I6/X4id9jPxTP+Fg+545euaFT1jJVs4CEdHZAU1vw==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.60.3': - resolution: {integrity: sha512-KHLgC3WKlUYW3ShFKnnosZDOJ0xjg9zp7au3sIm2bs/tGBeC2ipmvRh/N7JKi0t9Ue20C0dpEshi8WUubg+cnA==} + '@rollup/rollup-freebsd-x64@4.62.2': + resolution: {integrity: sha512-6nU5F2wCW+qvCBhTn1pdIU3bzsIoF7EUwsCDRxilWGprQR6yd508YnH9+OKFCwpfS8pjZqDUmnCAr7exax0XCg==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.60.3': - resolution: {integrity: sha512-DV6fJoxEYWJOvaZIsok7KrYl0tPvga5OZ2yvKHNNYyk/2roMLqQAbGhr78EQ5YhHpnhLKJD3S1WFusAkmUuV5g==} + '@rollup/rollup-linux-arm-gnueabihf@4.62.2': + resolution: {integrity: sha512-n1GJHPOvpIfhi3TmrCeh6S6URt9BFCt0KQE3qvexyGCTAKpR4Lg+eWvNZEqu7epxwus/8ElT3hacYEucm49SZg==} cpu: [arm] os: [linux] libc: [glibc] - '@rollup/rollup-linux-arm-musleabihf@4.60.3': - resolution: {integrity: sha512-mQKoJAzvuOs6F+TZybQO4GOTSMUu7v0WdxEk24krQ/uUxXoPTtHjuaUuPmFhtBcM4K0ons8nrE3JyhTuCFtT/w==} + '@rollup/rollup-linux-arm-musleabihf@4.62.2': + resolution: {integrity: sha512-JqgflS8wEB+UXV/vS1RpRbifGBeN4D5lz8D8oOFbFZw4vedvdOgCFAjfBmIMdW3yL10XpQQ0Ambepw6MXrhOnA==} cpu: [arm] os: [linux] libc: [musl] - '@rollup/rollup-linux-arm64-gnu@4.60.3': - resolution: {integrity: sha512-Whjj2qoiJ6+OOJMGptTYazaJvjOJm+iKHpXQM1P3LzGjt7Ff++Tp7nH4N8J/BUA7R9IHfDyx4DJIflifwnbmIA==} + '@rollup/rollup-linux-arm64-gnu@4.62.2': + resolution: {integrity: sha512-wnFJkogWvN4jm/hQRF2UBaeUmk20j5+DmHvoyWii2b8HJDyvz1MF2OU/6ynXt2KR63rbZLWkFpoytpdc/yBuSA==} cpu: [arm64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-arm64-musl@4.60.3': - resolution: {integrity: sha512-4YTNHKqGng5+yiZt3mg77nmyuCfmNfX4fPmyUapBcIk+BdwSwmCWGXOUxhXbBEkFHtoN5boLj/5NON+u5QC9tg==} + '@rollup/rollup-linux-arm64-musl@4.62.2': + resolution: {integrity: sha512-HVu2bp0zhvJ8xHEV9+UUs7S90VadmBSY3LcIMvozbPo4AuMGDWlz3ymHLHZPX4hR67TKTt8Qp5PJ5RBg/i+RMQ==} cpu: [arm64] os: [linux] libc: [musl] - '@rollup/rollup-linux-loong64-gnu@4.60.3': - resolution: {integrity: sha512-SU3kNlhkpI4UqlUc2VXPGK9o886ZsSeGfMAX2ba2b8DKmMXq4AL7KUrkSWVbb7koVqx41Yczx6dx5PNargIrEA==} + '@rollup/rollup-linux-loong64-gnu@4.62.2': + resolution: {integrity: sha512-mQqqAV8QaoSgr9I2fKDLY2BAVvmKjWoGiu/cSYQonsLvtqwEn1E4QYfnCOcp5zoEqNhsDYin1s6jx/VJmrxlZg==} cpu: [loong64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-loong64-musl@4.60.3': - resolution: {integrity: sha512-6lDLl5h4TXpB1mTf2rQWnAk/LcXrx9vBfu/DT5TIPhvMhRWaZ5MxkIc8u4lJAmBo6klTe1ywXIUHFjylW505sg==} + '@rollup/rollup-linux-loong64-musl@4.62.2': + resolution: {integrity: sha512-IxKLoxCQ2IWi6bT2akyDUBGsOImDKB+sPp4EsTmwFQ/fMwpCKm8uLSSgP/Kx/QYUgKis6SEZ5/Nlhup0DIA0PQ==} cpu: [loong64] os: [linux] libc: [musl] - '@rollup/rollup-linux-ppc64-gnu@4.60.3': - resolution: {integrity: sha512-BMo8bOw8evlup/8G+cj5xWtPyp93xPdyoSN16Zy90Q2QZ0ZYRhCt6ZJSwbrRzG9HApFabjwj2p25TUPDWrhzqQ==} + '@rollup/rollup-linux-ppc64-gnu@4.62.2': + resolution: {integrity: sha512-Mk5ha2RQSgyFfmYYLkBpPnUk8D8FriBxesO1u9O75X0mHgXL1UQcH5Itl2lurWL2tj0RxV9b9tJgipac0hRY9A==} cpu: [ppc64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-ppc64-musl@4.60.3': - resolution: {integrity: sha512-E0L8X1dZN1/Rph+5VPF6Xj2G7JJvMACVXtamTJIDrVI44Y3K+G8gQaMEAavbqCGTa16InptiVrX6eM6pmJ+7qA==} + '@rollup/rollup-linux-ppc64-musl@4.62.2': + resolution: {integrity: sha512-CjvEnqJL/0/TQ3TXX3OPIJ/kmBellrWd4heXUmHeJlTnmwjKpSJzoehLaL6Xk0ZnMHBu9dZuFADNOrtjF4v+2w==} cpu: [ppc64] os: [linux] libc: [musl] - '@rollup/rollup-linux-riscv64-gnu@4.60.3': - resolution: {integrity: sha512-oZJ/WHaVfHUiRAtmTAeo3DcevNsVvH8mbvodjZy7D5QKvCefO371SiKRpxoDcCxB3PTRTLayWBkvmDQKTcX/sw==} + '@rollup/rollup-linux-riscv64-gnu@4.62.2': + resolution: {integrity: sha512-1SiZbzwdkaDURsew/tSOrooKiYy7EQGT6m8ufavAi9NEyQb/6VuIxFXAL1fqa4iZe3g4NbNk4P7J32z2tw5Mgg==} cpu: [riscv64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-riscv64-musl@4.60.3': - resolution: {integrity: sha512-Dhbyh7j9FybM3YaTgaHmVALwA8AkUwTPccyCQ79TG9AJUsMQqgN1DDEZNr4+QUfwiWvLDumW5vdwzoeUF+TNxQ==} + '@rollup/rollup-linux-riscv64-musl@4.62.2': + resolution: {integrity: sha512-nQts12zJ3NQRoE6uYljOH89v7szzLDvG2JD/vsX+vGXU8w/At1GowTZ5/7qeFQ8m7L55rpR8Okugnuo5bgjy2Q==} cpu: [riscv64] os: [linux] libc: [musl] - '@rollup/rollup-linux-s390x-gnu@4.60.3': - resolution: {integrity: sha512-cJd1X5XhHHlltkaypz1UcWLA8AcoIi1aWhsvaWDskD1oz2eKCypnqvTQ8ykMNI0RSmm7NkTdSqSSD7zM0xa6Ig==} + '@rollup/rollup-linux-s390x-gnu@4.62.2': + resolution: {integrity: sha512-E9/ll019jhPIJgpzfZoIkBGhcz+kKNgVWYRY0zr9srBdPPFVpvOKW8VaJKUbeK+eZXyQF9ltME+Kk6affeaPgg==} cpu: [s390x] os: [linux] libc: [glibc] - '@rollup/rollup-linux-x64-gnu@4.60.3': - resolution: {integrity: sha512-DAZDBHQfG2oQuhY7mc6I3/qB4LU2fQCjRvxbDwd/Jdvb9fypP4IJ4qmtu6lNjes6B531AI8cg1aKC2di97bUxA==} + '@rollup/rollup-linux-x64-gnu@4.62.2': + resolution: {integrity: sha512-5BqxR/pshjey51iliyzTD5Xi3EN0aLmQ2lZ3lvefVV9c82BvrLo2/6OT55iifpWBufs6kdwWbuOKS841DrmK9A==} cpu: [x64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-x64-musl@4.60.3': - resolution: {integrity: sha512-cRxsE8c13mZOh3vP+wLDxpQBRrOHDIGOWyDL93Sy0Ga8y515fBcC2pjUfFwUe5T7tqvTvWbCpg1URM/AXdWIXA==} + '@rollup/rollup-linux-x64-musl@4.62.2': + resolution: {integrity: sha512-uNN83XxQrRAh/w0/pmAfibcwyb6YWt4gP+dpnQKPVJshAloQ785ii8CT8ZCIxkGg9opVsvAlGhFitSm6D1Jjpg==} cpu: [x64] os: [linux] libc: [musl] - '@rollup/rollup-openbsd-x64@4.60.3': - resolution: {integrity: sha512-QaWcIgRxqEdQdhJqW4DJctsH6HCmo5vHxY0krHSX4jMtOqfzC+dqDGuHM87bu4H8JBeibWx7jFz+h6/4C8wA5Q==} + '@rollup/rollup-openbsd-x64@4.62.2': + resolution: {integrity: sha512-srjEIxSH3LRnJN6THczDHWQplqEMFiAJrTab0msUryh9kwNpkICf3Ea6q6MN/2cZwRFUNx5w+h6Hpi4QuHS6Zg==} cpu: [x64] os: [openbsd] - '@rollup/rollup-openharmony-arm64@4.60.3': - resolution: {integrity: sha512-AaXwSvUi3QIPtroAUw1t5yHGIyqKEXwH54WUocFolZhpGDruJcs8c+xPNDRn4XiQsS7MEwnYsHW2l0MBLDMkWg==} + '@rollup/rollup-openharmony-arm64@4.62.2': + resolution: {integrity: sha512-8hOJnxgbyObnCm5AlRA3A931xX19xq80RjVTKgJOvEKWqJruP/Uf12IbAOaDjjEXYRewwHLfmF0YRIdK3OwKWA==} cpu: [arm64] os: [openharmony] - '@rollup/rollup-win32-arm64-msvc@4.60.3': - resolution: {integrity: sha512-65LAKM/bAWDqKNEelHlcHvm2V+Vfb8C6INFxQXRHCvaVN1rJfwr4NvdP4FyzUaLqWfaCGaadf6UbTm8xJeYfEg==} + '@rollup/rollup-win32-arm64-msvc@4.62.2': + resolution: {integrity: sha512-mmF4AY1i0hG/bLWUctUq59gtmgaSIRa3cu/A3JFRp/sCNEme2bgDEiDS22P9FbnJB8NJNF4jPJiSP5RHQpUTDg==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.60.3': - resolution: {integrity: sha512-EEM2gyhBF5MFnI6vMKdX1LAosE627RGBzIoGMdLloPZkXrUN0Ckqgr2Qi8+J3zip/8NVVro3/FjB+tjhZUgUHA==} + '@rollup/rollup-win32-ia32-msvc@4.62.2': + resolution: {integrity: sha512-DZgkknc6jhHrk46V25vbAM0zZkyP0nSDkJB8/dRkLTxv470dOmWDqGoEJl/9A0dFfS7yE3REOwNDxpHwSLSt0Q==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-gnu@4.60.3': - resolution: {integrity: sha512-E5Eb5H/DpxaoXH++Qkv28RcUJboMopmdDUALBczvHMf7hNIxaDZqwY5lK12UK1BHacSmvupoEWGu+n993Z0y1A==} + '@rollup/rollup-win32-x64-gnu@4.62.2': + resolution: {integrity: sha512-T6xr6ucWSFto+VGajA8YH26LdpHRuP4YLHEKAtCWvJDOlnmWcDZVCI2Jmjr+IFHDlt2zRaTAKE4tfjTaWLgJBg==} cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.60.3': - resolution: {integrity: sha512-hPt/bgL5cE+Qp+/TPHBqptcAgPzgj46mPcg/16zNUmbQk0j+mOEQV/+Lqu8QRtDV3Ek95Q6FeFITpuhl6OTsAA==} + '@rollup/rollup-win32-x64-msvc@4.62.2': + resolution: {integrity: sha512-BfzEnDJOt9T8M989/lA37EcJgat01wLRnoi5dQf3QzOH7jzpqTAzdDbVfRljVr5r+jzKqpbHeyOfAaXxAd0PAA==} cpu: [x64] os: [win32] @@ -1123,21 +1123,12 @@ packages: engines: {node: '>= 10'} hasBin: true - '@tauri-apps/plugin-dialog@2.7.1': - resolution: {integrity: sha512-OK1UBXYt+ojcmxMktzzuyonYIFta8CmAASpX+CA+DTGK24KlHjhYI6x2iOJ/TjZF4N7/ACK1oFmEOjIY9IhzOQ==} - - '@tauri-apps/plugin-store@2.4.3': - resolution: {integrity: sha512-9LWPj9yMphRi9czEtUv87XHbl1b6xgd9EXpPrUnq6nG7+nbtoF84d4Kwz9xhAv/Hf30sr58pq7EOlyI936y8qw==} - '@tybys/wasm-util@0.10.2': resolution: {integrity: sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==} '@types/esrecurse@4.3.1': resolution: {integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==} - '@types/estree@1.0.8': - resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} - '@types/estree@1.0.9': resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} @@ -1311,9 +1302,9 @@ packages: resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} engines: {node: 18 || 20 || >=22} - brace-expansion@5.0.6: - resolution: {integrity: sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==} - engines: {node: 18 || 20 || >=22} + brace-expansion@5.0.8: + resolution: {integrity: sha512-JZyDyq3D4AUifKTPOB7DELf6XsB3WdPuNxCtob1vFXPsSXhdAiHBWJ/tJ8HAc9aH84BK+5JFZLNkJKx3G9kzQg==} + engines: {node: 20 || >=22} buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} @@ -1671,8 +1662,8 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - nanoid@3.3.12: - resolution: {integrity: sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==} + nanoid@3.3.16: + resolution: {integrity: sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true @@ -1739,8 +1730,8 @@ packages: pkg-types@1.3.1: resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} - postcss@8.5.15: - resolution: {integrity: sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==} + postcss@8.5.23: + resolution: {integrity: sha512-g50586zr4bZmwFiTlflMu8E0bDTb5I5gertgwAKmsdUlTQIhZtunzUlD1WSzwcVWPoAVpsrA6vlfCD7oXvRwgg==} engines: {node: ^10 || ^12 || >=14} prelude-ls@1.2.1: @@ -1777,8 +1768,8 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} hasBin: true - rollup@4.60.3: - resolution: {integrity: sha512-pAQK9HalE84QSm4Po3EmWIZPd3FnjkShVkiMlz1iligWYkWQ7wHYd1PF/T7QZ5TVSD6uSTon5gBVMSM4JfBV+A==} + rollup@4.62.2: + resolution: {integrity: sha512-RFnrW4lhXA3s3eqHDZvN654g8OTjzRfqpIRJYczCGB6HzphckVAi/Qh4tbPUbRuDi7s1Llv8g/NspLkttY3gTA==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -2303,114 +2294,114 @@ snapshots: '@rolldown/pluginutils@1.0.1': {} - '@rollup/plugin-node-resolve@16.0.3(rollup@4.60.3)': + '@rollup/plugin-node-resolve@16.0.3(rollup@4.62.2)': dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.60.3) + '@rollup/pluginutils': 5.3.0(rollup@4.62.2) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-module: 1.0.0 resolve: 1.22.11 optionalDependencies: - rollup: 4.60.3 + rollup: 4.62.2 - '@rollup/plugin-terser@1.0.0(rollup@4.60.3)': + '@rollup/plugin-terser@1.0.0(rollup@4.62.2)': dependencies: serialize-javascript: 7.0.5 smob: 1.6.1 terser: 5.46.1 optionalDependencies: - rollup: 4.60.3 + rollup: 4.62.2 - '@rollup/plugin-typescript@12.3.0(rollup@4.60.3)(tslib@2.8.1)(typescript@6.0.3)': + '@rollup/plugin-typescript@12.3.0(rollup@4.62.2)(tslib@2.8.1)(typescript@6.0.3)': dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.60.3) + '@rollup/pluginutils': 5.3.0(rollup@4.62.2) resolve: 1.22.11 typescript: 6.0.3 optionalDependencies: - rollup: 4.60.3 + rollup: 4.62.2 tslib: 2.8.1 - '@rollup/pluginutils@5.3.0(rollup@4.60.3)': + '@rollup/pluginutils@5.3.0(rollup@4.62.2)': dependencies: '@types/estree': 1.0.9 estree-walker: 2.0.2 picomatch: 4.0.4 optionalDependencies: - rollup: 4.60.3 + rollup: 4.62.2 - '@rollup/rollup-android-arm-eabi@4.60.3': + '@rollup/rollup-android-arm-eabi@4.62.2': optional: true - '@rollup/rollup-android-arm64@4.60.3': + '@rollup/rollup-android-arm64@4.62.2': optional: true - '@rollup/rollup-darwin-arm64@4.60.3': + '@rollup/rollup-darwin-arm64@4.62.2': optional: true - '@rollup/rollup-darwin-x64@4.60.3': + '@rollup/rollup-darwin-x64@4.62.2': optional: true - '@rollup/rollup-freebsd-arm64@4.60.3': + '@rollup/rollup-freebsd-arm64@4.62.2': optional: true - '@rollup/rollup-freebsd-x64@4.60.3': + '@rollup/rollup-freebsd-x64@4.62.2': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.60.3': + '@rollup/rollup-linux-arm-gnueabihf@4.62.2': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.60.3': + '@rollup/rollup-linux-arm-musleabihf@4.62.2': optional: true - '@rollup/rollup-linux-arm64-gnu@4.60.3': + '@rollup/rollup-linux-arm64-gnu@4.62.2': optional: true - '@rollup/rollup-linux-arm64-musl@4.60.3': + '@rollup/rollup-linux-arm64-musl@4.62.2': optional: true - '@rollup/rollup-linux-loong64-gnu@4.60.3': + '@rollup/rollup-linux-loong64-gnu@4.62.2': optional: true - '@rollup/rollup-linux-loong64-musl@4.60.3': + '@rollup/rollup-linux-loong64-musl@4.62.2': optional: true - '@rollup/rollup-linux-ppc64-gnu@4.60.3': + '@rollup/rollup-linux-ppc64-gnu@4.62.2': optional: true - '@rollup/rollup-linux-ppc64-musl@4.60.3': + '@rollup/rollup-linux-ppc64-musl@4.62.2': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.60.3': + '@rollup/rollup-linux-riscv64-gnu@4.62.2': optional: true - '@rollup/rollup-linux-riscv64-musl@4.60.3': + '@rollup/rollup-linux-riscv64-musl@4.62.2': optional: true - '@rollup/rollup-linux-s390x-gnu@4.60.3': + '@rollup/rollup-linux-s390x-gnu@4.62.2': optional: true - '@rollup/rollup-linux-x64-gnu@4.60.3': + '@rollup/rollup-linux-x64-gnu@4.62.2': optional: true - '@rollup/rollup-linux-x64-musl@4.60.3': + '@rollup/rollup-linux-x64-musl@4.62.2': optional: true - '@rollup/rollup-openbsd-x64@4.60.3': + '@rollup/rollup-openbsd-x64@4.62.2': optional: true - '@rollup/rollup-openharmony-arm64@4.60.3': + '@rollup/rollup-openharmony-arm64@4.62.2': optional: true - '@rollup/rollup-win32-arm64-msvc@4.60.3': + '@rollup/rollup-win32-arm64-msvc@4.62.2': optional: true - '@rollup/rollup-win32-ia32-msvc@4.60.3': + '@rollup/rollup-win32-ia32-msvc@4.62.2': optional: true - '@rollup/rollup-win32-x64-gnu@4.60.3': + '@rollup/rollup-win32-x64-gnu@4.62.2': optional: true - '@rollup/rollup-win32-x64-msvc@4.60.3': + '@rollup/rollup-win32-x64-msvc@4.62.2': optional: true '@sveltejs/acorn-typescript@1.0.9(acorn@8.16.0)': @@ -2475,14 +2466,6 @@ snapshots: '@tauri-apps/cli-win32-ia32-msvc': 2.11.4 '@tauri-apps/cli-win32-x64-msvc': 2.11.4 - '@tauri-apps/plugin-dialog@2.7.1': - dependencies: - '@tauri-apps/api': 2.11.0 - - '@tauri-apps/plugin-store@2.4.3': - dependencies: - '@tauri-apps/api': 2.11.0 - '@tybys/wasm-util@0.10.2': dependencies: tslib: 2.8.1 @@ -2490,8 +2473,6 @@ snapshots: '@types/esrecurse@4.3.1': {} - '@types/estree@1.0.8': {} - '@types/estree@1.0.9': {} '@types/json-schema@7.0.15': {} @@ -2748,7 +2729,7 @@ snapshots: balanced-match@4.0.4: {} - brace-expansion@5.0.6: + brace-expansion@5.0.8: dependencies: balanced-match: 4.0.4 @@ -3076,7 +3057,7 @@ snapshots: minimatch@10.2.4: dependencies: - brace-expansion: 5.0.6 + brace-expansion: 5.0.8 mlly@1.8.2: dependencies: @@ -3089,7 +3070,7 @@ snapshots: ms@2.1.3: {} - nanoid@3.3.12: {} + nanoid@3.3.16: {} natural-compare@1.4.0: {} @@ -3175,9 +3156,9 @@ snapshots: mlly: 1.8.2 pathe: 2.0.3 - postcss@8.5.15: + postcss@8.5.23: dependencies: - nanoid: 3.3.12 + nanoid: 3.3.16 picocolors: 1.1.1 source-map-js: 1.2.1 @@ -3220,35 +3201,35 @@ snapshots: '@rolldown/binding-win32-arm64-msvc': 1.0.3 '@rolldown/binding-win32-x64-msvc': 1.0.3 - rollup@4.60.3: + rollup@4.62.2: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.9 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.60.3 - '@rollup/rollup-android-arm64': 4.60.3 - '@rollup/rollup-darwin-arm64': 4.60.3 - '@rollup/rollup-darwin-x64': 4.60.3 - '@rollup/rollup-freebsd-arm64': 4.60.3 - '@rollup/rollup-freebsd-x64': 4.60.3 - '@rollup/rollup-linux-arm-gnueabihf': 4.60.3 - '@rollup/rollup-linux-arm-musleabihf': 4.60.3 - '@rollup/rollup-linux-arm64-gnu': 4.60.3 - '@rollup/rollup-linux-arm64-musl': 4.60.3 - '@rollup/rollup-linux-loong64-gnu': 4.60.3 - '@rollup/rollup-linux-loong64-musl': 4.60.3 - '@rollup/rollup-linux-ppc64-gnu': 4.60.3 - '@rollup/rollup-linux-ppc64-musl': 4.60.3 - '@rollup/rollup-linux-riscv64-gnu': 4.60.3 - '@rollup/rollup-linux-riscv64-musl': 4.60.3 - '@rollup/rollup-linux-s390x-gnu': 4.60.3 - '@rollup/rollup-linux-x64-gnu': 4.60.3 - '@rollup/rollup-linux-x64-musl': 4.60.3 - '@rollup/rollup-openbsd-x64': 4.60.3 - '@rollup/rollup-openharmony-arm64': 4.60.3 - '@rollup/rollup-win32-arm64-msvc': 4.60.3 - '@rollup/rollup-win32-ia32-msvc': 4.60.3 - '@rollup/rollup-win32-x64-gnu': 4.60.3 - '@rollup/rollup-win32-x64-msvc': 4.60.3 + '@rollup/rollup-android-arm-eabi': 4.62.2 + '@rollup/rollup-android-arm64': 4.62.2 + '@rollup/rollup-darwin-arm64': 4.62.2 + '@rollup/rollup-darwin-x64': 4.62.2 + '@rollup/rollup-freebsd-arm64': 4.62.2 + '@rollup/rollup-freebsd-x64': 4.62.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.62.2 + '@rollup/rollup-linux-arm-musleabihf': 4.62.2 + '@rollup/rollup-linux-arm64-gnu': 4.62.2 + '@rollup/rollup-linux-arm64-musl': 4.62.2 + '@rollup/rollup-linux-loong64-gnu': 4.62.2 + '@rollup/rollup-linux-loong64-musl': 4.62.2 + '@rollup/rollup-linux-ppc64-gnu': 4.62.2 + '@rollup/rollup-linux-ppc64-musl': 4.62.2 + '@rollup/rollup-linux-riscv64-gnu': 4.62.2 + '@rollup/rollup-linux-riscv64-musl': 4.62.2 + '@rollup/rollup-linux-s390x-gnu': 4.62.2 + '@rollup/rollup-linux-x64-gnu': 4.62.2 + '@rollup/rollup-linux-x64-musl': 4.62.2 + '@rollup/rollup-openbsd-x64': 4.62.2 + '@rollup/rollup-openharmony-arm64': 4.62.2 + '@rollup/rollup-win32-arm64-msvc': 4.62.2 + '@rollup/rollup-win32-ia32-msvc': 4.62.2 + '@rollup/rollup-win32-x64-gnu': 4.62.2 + '@rollup/rollup-win32-x64-msvc': 4.62.2 fsevents: 2.3.3 safe-regex@2.1.1: @@ -3412,7 +3393,7 @@ snapshots: dependencies: lightningcss: 1.32.0 picomatch: 4.0.4 - postcss: 8.5.15 + postcss: 8.5.23 rolldown: 1.0.3 tinyglobby: 0.2.17 optionalDependencies: From 622f02bf21858f0cff95419fc042ce02b8c6b18b Mon Sep 17 00:00:00 2001 From: Tony <68118705+Legend-Master@users.noreply.github.com> Date: Mon, 27 Jul 2026 16:38:50 +0800 Subject: [PATCH 19/41] fix(updater): check `ShellExecuteW` results (#3516) * fix(updater): check `ShellExecuteW` results * document the exit on windows --- .../updater-check-shell-execute-result.md | 6 ++++++ plugins/notification/guest-js/index.ts | 3 ++- plugins/updater/README.md | 1 + plugins/updater/guest-js/index.ts | 20 ++++++++++++++++--- plugins/updater/src/updater.rs | 15 +++++++++++++- 5 files changed, 40 insertions(+), 5 deletions(-) create mode 100644 .changes/updater-check-shell-execute-result.md diff --git a/.changes/updater-check-shell-execute-result.md b/.changes/updater-check-shell-execute-result.md new file mode 100644 index 000000000..d875d95fd --- /dev/null +++ b/.changes/updater-check-shell-execute-result.md @@ -0,0 +1,6 @@ +--- +"updater": patch +"updater-js": patch +--- + +On Windows, returns an error if failed to spawn the installer in `install` through `ShellExecuteW` diff --git a/plugins/notification/guest-js/index.ts b/plugins/notification/guest-js/index.ts index 685c60c20..7045ac66e 100644 --- a/plugins/notification/guest-js/index.ts +++ b/plugins/notification/guest-js/index.ts @@ -73,7 +73,8 @@ interface Options { /** * The sound resource name or file path for the notification. * - * Platform specific behavior: + * ## Platform-specific behavior: + * * - On macOS: use system sounds (e.g., "Ping", "Blow") or sound files in the app bundle * - On Linux: use XDG theme sounds (e.g., "message-new-instant") or file paths * - On Windows: use file paths to sound files (.wav format) diff --git a/plugins/updater/README.md b/plugins/updater/README.md index b3afb818a..f122e74f1 100644 --- a/plugins/updater/README.md +++ b/plugins/updater/README.md @@ -69,6 +69,7 @@ import { relaunch } from '@tauri-apps/plugin-process' const update = await check() if (update) { await update.downloadAndInstall() + // Relaunch the app on macOS and Linux to run the newly install version await relaunch() } ``` diff --git a/plugins/updater/guest-js/index.ts b/plugins/updater/guest-js/index.ts index 1a120921a..d53165eb2 100644 --- a/plugins/updater/guest-js/index.ts +++ b/plugins/updater/guest-js/index.ts @@ -84,7 +84,7 @@ class Update extends Resource { this.rawJson = metadata.rawJson } - /** Download the updater package */ + /** Download the updater package. Call {@linkcode install} later to install it */ async download( onEvent?: (progress: DownloadEvent) => void, options?: DownloadOptions @@ -102,7 +102,14 @@ class Update extends Resource { this.downloadedBytes = new Resource(downloadedBytesRid) } - /** Install downloaded updater package */ + /** + * Install downloaded updater package. Must be called after {@linkcode download}. + * + * ## Platform-specific: + * + * - **Windows:** This function exits the app after launching the updater installer successfully + * - **macOS / Linux:** You need to relaunch the app to run the newly install version + */ async install(options?: InstallOptions): Promise { if (!this.downloadedBytes) { throw new Error('Update.install called before Update.download') @@ -118,7 +125,14 @@ class Update extends Resource { this.downloadedBytes = undefined } - /** Downloads the updater package and installs it */ + /** + * Downloads the updater package and installs it + * + * ## Platform-specific: + * + * - **Windows:** This function exits the app after launching the updater installer successfully + * - **macOS / Linux:** You need to relaunch the app to run the newly install version + */ async downloadAndInstall( onEvent?: (progress: DownloadEvent) => void, options?: DownloadOptions & InstallOptions diff --git a/plugins/updater/src/updater.rs b/plugins/updater/src/updater.rs index 69a7fd0f8..e877820a7 100644 --- a/plugins/updater/src/updater.rs +++ b/plugins/updater/src/updater.rs @@ -743,11 +743,21 @@ impl Update { } /// Installs the updater package downloaded by [`Update::download`] + /// + /// ## Platform-specific: + /// + /// - **Windows:** This function exits the app after launching the updater installer successfully + /// - **macOS / Linux:** You need to relaunch the app to run the newly install version pub fn install(&self, bytes: impl AsRef<[u8]>) -> Result<()> { self.install_inner(bytes.as_ref()) } /// Downloads and installs the updater package + /// + /// ## Platform-specific: + /// + /// - **Windows:** This function exits the app after launching the updater installer successfully + /// - **macOS / Linux:** You need to relaunch the app to run the newly install version pub async fn download_and_install), D: FnOnce()>( &self, on_chunk: C, @@ -849,7 +859,7 @@ impl Update { let file = encode_wide(file); let parameters = encode_wide(parameters); - unsafe { + let result = unsafe { ShellExecuteW( std::ptr::null_mut(), w!("open"), @@ -859,6 +869,9 @@ impl Update { SW_SHOW, ) }; + if result as isize <= 32 { + return Err(crate::Error::Io(std::io::Error::last_os_error())); + } std::process::exit(0); } From 304292d740a666d3903ab58329860fc0fdde2818 Mon Sep 17 00:00:00 2001 From: Michael Kadziela <67846890+Innominus@users.noreply.github.com> Date: Mon, 27 Jul 2026 21:03:43 +1000 Subject: [PATCH 20/41] feat(notification): add rust Action/ActionType api. fix action registration in Android (#2805) --- .changes/notification-mobile-actions.md | 7 + .../src/main/java/NotificationStorage.kt | 4 +- plugins/notification/src/models.rs | 178 ++++++++++++++++++ 3 files changed, 187 insertions(+), 2 deletions(-) create mode 100644 .changes/notification-mobile-actions.md diff --git a/.changes/notification-mobile-actions.md b/.changes/notification-mobile-actions.md new file mode 100644 index 000000000..1d43f134c --- /dev/null +++ b/.changes/notification-mobile-actions.md @@ -0,0 +1,7 @@ +--- +notification: minor +notification-js: minor +--- + +- Add Rust builders for mobile notification action types. +- Fix Android action-group entries being stored under the action type ID instead of sequential indices, causing later actions to overwrite earlier ones. diff --git a/plugins/notification/android/src/main/java/NotificationStorage.kt b/plugins/notification/android/src/main/java/NotificationStorage.kt index bceb985db..d4cb96918 100644 --- a/plugins/notification/android/src/main/java/NotificationStorage.kt +++ b/plugins/notification/android/src/main/java/NotificationStorage.kt @@ -80,11 +80,11 @@ class NotificationStorage(private val context: Context, private val jsonMapper: fun writeActionGroup(actions: List) { for (type in actions) { - val i = type.id val editor = getStorage(ACTION_TYPES_ID + type.id).edit() editor.clear() editor.putInt("count", type.actions.size) - for (action in type.actions) { + for (i in 0 until type.actions.size) { + val action = type.actions[i] editor.putString("id$i", action.id) editor.putString("title$i", action.title) editor.putBoolean("input$i", action.input ?: false) diff --git a/plugins/notification/src/models.rs b/plugins/notification/src/models.rs index 02134e4db..e93b1e078 100644 --- a/plugins/notification/src/models.rs +++ b/plugins/notification/src/models.rs @@ -320,6 +320,95 @@ pub struct ActionType { hidden_previews_show_subtitle: bool, } +#[cfg(mobile)] +#[derive(Debug)] +pub struct ActionTypeBuilder(ActionType); + +#[cfg(mobile)] +impl ActionType { + pub fn builder(id: impl Into) -> ActionTypeBuilder { + ActionTypeBuilder(Self { + id: id.into(), + actions: Vec::new(), + hidden_previews_body_placeholder: None, + custom_dismiss_action: false, + allow_in_car_play: false, + hidden_previews_show_title: false, + hidden_previews_show_subtitle: false, + }) + } + + pub fn id(&self) -> &str { + &self.id + } + + pub fn actions(&self) -> &[Action] { + &self.actions + } + + pub fn hidden_previews_body_placeholder(&self) -> Option<&str> { + self.hidden_previews_body_placeholder.as_deref() + } + + pub fn custom_dismiss_action(&self) -> bool { + self.custom_dismiss_action + } + + pub fn allow_in_car_play(&self) -> bool { + self.allow_in_car_play + } + + pub fn hidden_previews_show_title(&self) -> bool { + self.hidden_previews_show_title + } + + pub fn hidden_previews_show_subtitle(&self) -> bool { + self.hidden_previews_show_subtitle + } +} + +#[cfg(mobile)] +impl ActionTypeBuilder { + pub fn actions(mut self, actions: Vec) -> Self { + self.0.actions = actions; + self + } + + pub fn hidden_previews_body_placeholder( + mut self, + hidden_previews_body_placeholder: impl Into, + ) -> Self { + self.0 + .hidden_previews_body_placeholder + .replace(hidden_previews_body_placeholder.into()); + self + } + + pub fn custom_dismiss_action(mut self, custom_dismiss_action: bool) -> Self { + self.0.custom_dismiss_action = custom_dismiss_action; + self + } + + pub fn allow_in_car_play(mut self, allow_in_car_play: bool) -> Self { + self.0.allow_in_car_play = allow_in_car_play; + self + } + + pub fn hidden_previews_show_title(mut self, hidden_previews_show_title: bool) -> Self { + self.0.hidden_previews_show_title = hidden_previews_show_title; + self + } + + pub fn hidden_previews_show_subtitle(mut self, hidden_previews_show_subtitle: bool) -> Self { + self.0.hidden_previews_show_subtitle = hidden_previews_show_subtitle; + self + } + + pub fn build(self) -> ActionType { + self.0 + } +} + #[cfg(mobile)] #[derive(Debug, Serialize)] #[serde(rename_all = "camelCase")] @@ -334,6 +423,95 @@ pub struct Action { input_placeholder: Option, } +#[cfg(mobile)] +#[derive(Debug)] +pub struct ActionBuilder(Action); + +#[cfg(mobile)] +impl Action { + pub fn builder(id: impl Into, title: impl Into) -> ActionBuilder { + ActionBuilder(Self { + id: id.into(), + title: title.into(), + requires_authentication: false, + foreground: false, + destructive: false, + input: false, + input_button_title: None, + input_placeholder: None, + }) + } + + pub fn id(&self) -> &str { + &self.id + } + + pub fn title(&self) -> &str { + &self.title + } + + pub fn requires_authentication(&self) -> bool { + self.requires_authentication + } + + pub fn foreground(&self) -> bool { + self.foreground + } + + pub fn destructive(&self) -> bool { + self.destructive + } + + pub fn input(&self) -> bool { + self.input + } + + pub fn input_button_title(&self) -> Option<&str> { + self.input_button_title.as_deref() + } + + pub fn input_placeholder(&self) -> Option<&str> { + self.input_placeholder.as_deref() + } +} + +#[cfg(mobile)] +impl ActionBuilder { + pub fn requires_authentication(mut self, requires_authentication: bool) -> Self { + self.0.requires_authentication = requires_authentication; + self + } + + pub fn foreground(mut self, foreground: bool) -> Self { + self.0.foreground = foreground; + self + } + + pub fn destructive(mut self, destructive: bool) -> Self { + self.0.destructive = destructive; + self + } + + pub fn input(mut self, input: bool) -> Self { + self.0.input = input; + self + } + + pub fn input_button_title(mut self, input_button_title: impl Into) -> Self { + self.0.input_button_title.replace(input_button_title.into()); + self + } + + pub fn input_placeholder(mut self, input_placeholder: impl Into) -> Self { + self.0.input_placeholder.replace(input_placeholder.into()); + self + } + + pub fn build(self) -> Action { + self.0 + } +} + #[cfg(target_os = "android")] pub use android::*; From dc7f87bc7e9ea2514d06cb9fb13da740afee14a6 Mon Sep 17 00:00:00 2001 From: paul valladares <85648028+dreyfus92@users.noreply.github.com> Date: Wed, 29 Jul 2026 02:35:15 -0500 Subject: [PATCH 21/41] chore: exclude dev-only files from published crates (#3518) * chore: exclude dev-only files from published crates * format --- plugins/autostart/Cargo.toml | 7 +++++++ plugins/barcode-scanner/Cargo.toml | 8 +++++++- plugins/biometric/Cargo.toml | 1 + plugins/cli/Cargo.toml | 7 +++++++ plugins/clipboard-manager/Cargo.toml | 7 +++++++ plugins/deep-link/Cargo.toml | 8 ++++++++ plugins/dialog/Cargo.toml | 8 ++++++++ plugins/fs/Cargo.toml | 7 +++++++ plugins/geolocation/Cargo.toml | 1 + plugins/global-shortcut/Cargo.toml | 7 +++++++ plugins/haptics/Cargo.toml | 1 + plugins/http/Cargo.toml | 7 +++++++ plugins/localhost/Cargo.toml | 1 + plugins/log/Cargo.toml | 7 +++++++ plugins/nfc/Cargo.toml | 1 + plugins/notification/Cargo.toml | 8 ++++++++ plugins/opener/Cargo.toml | 2 ++ plugins/os/Cargo.toml | 7 +++++++ plugins/persisted-scope/Cargo.toml | 1 + plugins/positioner/Cargo.toml | 7 +++++++ plugins/process/Cargo.toml | 7 +++++++ plugins/shell/Cargo.toml | 8 ++++++++ plugins/single-instance/Cargo.toml | 2 +- plugins/sql/Cargo.toml | 7 +++++++ plugins/store/Cargo.toml | 8 ++++++++ plugins/stronghold/Cargo.toml | 7 +++++++ plugins/updater/Cargo.toml | 8 ++++++++ plugins/upload/Cargo.toml | 8 ++++++++ plugins/websocket/Cargo.toml | 9 ++++++++- plugins/window-state/Cargo.toml | 7 +++++++ 30 files changed, 171 insertions(+), 3 deletions(-) diff --git a/plugins/autostart/Cargo.toml b/plugins/autostart/Cargo.toml index a899096da..596566843 100644 --- a/plugins/autostart/Cargo.toml +++ b/plugins/autostart/Cargo.toml @@ -8,6 +8,13 @@ edition = { workspace = true } rust-version = { workspace = true } repository = { workspace = true } links = "tauri-plugin-autostart" +exclude = [ + "/banner.png", + "/guest-js", + "/package.json", + "/rollup.config.js", + "/tsconfig.json", +] [package.metadata.platforms.support] windows = { level = "full", notes = "" } diff --git a/plugins/barcode-scanner/Cargo.toml b/plugins/barcode-scanner/Cargo.toml index 58308c9d5..90f6a8265 100644 --- a/plugins/barcode-scanner/Cargo.toml +++ b/plugins/barcode-scanner/Cargo.toml @@ -8,7 +8,13 @@ license = { workspace = true } rust-version = { workspace = true } repository = { workspace = true } links = "tauri-plugin-barcode-scanner" - +exclude = [ + "/banner.png", + "/guest-js", + "/package.json", + "/rollup.config.js", + "/tsconfig.json", +] [package.metadata.docs.rs] targets = ["x86_64-linux-android"] diff --git a/plugins/biometric/Cargo.toml b/plugins/biometric/Cargo.toml index 42cf22ab9..6df8a8af5 100644 --- a/plugins/biometric/Cargo.toml +++ b/plugins/biometric/Cargo.toml @@ -7,6 +7,7 @@ authors = { workspace = true } license = { workspace = true } repository = { workspace = true } links = "tauri-plugin-biometric" +exclude = ["/guest-js", "/package.json", "/rollup.config.js", "/tsconfig.json"] [package.metadata.docs.rs] targets = ["x86_64-linux-android"] diff --git a/plugins/cli/Cargo.toml b/plugins/cli/Cargo.toml index 4747fc006..5df36b185 100644 --- a/plugins/cli/Cargo.toml +++ b/plugins/cli/Cargo.toml @@ -8,6 +8,13 @@ license = { workspace = true } rust-version = { workspace = true } repository = { workspace = true } links = "tauri-plugin-cli" +exclude = [ + "/banner.png", + "/guest-js", + "/package.json", + "/rollup.config.js", + "/tsconfig.json", +] [package.metadata.platforms.support] windows = { level = "full", notes = "" } diff --git a/plugins/clipboard-manager/Cargo.toml b/plugins/clipboard-manager/Cargo.toml index d95c02c28..6ecb04a90 100644 --- a/plugins/clipboard-manager/Cargo.toml +++ b/plugins/clipboard-manager/Cargo.toml @@ -8,6 +8,13 @@ license = { workspace = true } rust-version = { workspace = true } repository = { workspace = true } links = "tauri-plugin-clipboard-manager" +exclude = [ + "/banner.png", + "/guest-js", + "/package.json", + "/rollup.config.js", + "/tsconfig.json", +] [package.metadata.docs.rs] diff --git a/plugins/deep-link/Cargo.toml b/plugins/deep-link/Cargo.toml index 0e07b5e5c..1c5d6a6ca 100644 --- a/plugins/deep-link/Cargo.toml +++ b/plugins/deep-link/Cargo.toml @@ -8,6 +8,14 @@ edition = { workspace = true } rust-version = { workspace = true } repository = { workspace = true } links = "tauri-plugin-deep-link" +exclude = [ + "/banner.png", + "/examples", + "/guest-js", + "/package.json", + "/rollup.config.js", + "/tsconfig.json", +] [package.metadata.docs.rs] targets = ["x86_64-linux-android"] diff --git a/plugins/dialog/Cargo.toml b/plugins/dialog/Cargo.toml index 9435ea484..eec5af8c2 100644 --- a/plugins/dialog/Cargo.toml +++ b/plugins/dialog/Cargo.toml @@ -8,6 +8,14 @@ license = { workspace = true } rust-version = { workspace = true } repository = { workspace = true } links = "tauri-plugin-dialog" +exclude = [ + "/banner.png", + "/guest-js", + "/package.json", + "/rollup.config.js", + "/test", + "/tsconfig.json", +] [features] default = ["gtk3"] diff --git a/plugins/fs/Cargo.toml b/plugins/fs/Cargo.toml index 298bcce56..f32323652 100644 --- a/plugins/fs/Cargo.toml +++ b/plugins/fs/Cargo.toml @@ -8,6 +8,13 @@ edition = { workspace = true } rust-version = { workspace = true } repository = { workspace = true } links = "tauri-plugin-fs" +exclude = [ + "/banner.png", + "/guest-js", + "/package.json", + "/rollup.config.js", + "/tsconfig.json", +] [package.metadata.platforms.support] windows = { level = "full", notes = "Apps installed via MSI or NSIS in `perMachine` and `both` mode require admin permissions for write access in `$RESOURCES` folder" } diff --git a/plugins/geolocation/Cargo.toml b/plugins/geolocation/Cargo.toml index 765b0e92b..352810315 100644 --- a/plugins/geolocation/Cargo.toml +++ b/plugins/geolocation/Cargo.toml @@ -7,6 +7,7 @@ authors = { workspace = true } license = { workspace = true } repository = { workspace = true } links = "tauri-plugin-geolocation" +exclude = ["/guest-js", "/package.json", "/rollup.config.js", "/tsconfig.json"] [package.metadata.docs.rs] targets = ["x86_64-linux-android"] diff --git a/plugins/global-shortcut/Cargo.toml b/plugins/global-shortcut/Cargo.toml index 6a8be5bcf..6d31703c9 100644 --- a/plugins/global-shortcut/Cargo.toml +++ b/plugins/global-shortcut/Cargo.toml @@ -8,6 +8,13 @@ license = { workspace = true } rust-version = { workspace = true } repository = { workspace = true } links = "tauri-plugin-global-shortcut" +exclude = [ + "/banner.png", + "/guest-js", + "/package.json", + "/rollup.config.js", + "/tsconfig.json", +] [package.metadata.platforms.support] windows = { level = "full", notes = "" } diff --git a/plugins/haptics/Cargo.toml b/plugins/haptics/Cargo.toml index dc0dddbc7..a70cb1d97 100644 --- a/plugins/haptics/Cargo.toml +++ b/plugins/haptics/Cargo.toml @@ -7,6 +7,7 @@ authors = { workspace = true } license = { workspace = true } repository = { workspace = true } links = "tauri-plugin-haptics" +exclude = ["/guest-js", "/package.json", "/rollup.config.js", "/tsconfig.json"] [package.metadata.docs.rs] targets = ["x86_64-linux-android"] diff --git a/plugins/http/Cargo.toml b/plugins/http/Cargo.toml index 19b22293c..82e2a6bfb 100644 --- a/plugins/http/Cargo.toml +++ b/plugins/http/Cargo.toml @@ -8,6 +8,13 @@ license = { workspace = true } rust-version = { workspace = true } repository = { workspace = true } links = "tauri-plugin-http" +exclude = [ + "/banner.png", + "/guest-js", + "/package.json", + "/rollup.config.js", + "/tsconfig.json", +] [package.metadata.platforms.support] windows = { level = "full", notes = "" } diff --git a/plugins/localhost/Cargo.toml b/plugins/localhost/Cargo.toml index ad1af2cef..c37476ab9 100644 --- a/plugins/localhost/Cargo.toml +++ b/plugins/localhost/Cargo.toml @@ -7,6 +7,7 @@ license = { workspace = true } edition = { workspace = true } rust-version = { workspace = true } repository = { workspace = true } +exclude = ["/banner.png"] [package.metadata.platforms.support] windows = { level = "full", notes = "" } diff --git a/plugins/log/Cargo.toml b/plugins/log/Cargo.toml index 2e7daf2e4..4b2ad547f 100644 --- a/plugins/log/Cargo.toml +++ b/plugins/log/Cargo.toml @@ -8,6 +8,13 @@ edition = { workspace = true } rust-version = { workspace = true } repository = { workspace = true } links = "tauri-plugin-log" +exclude = [ + "/banner.png", + "/guest-js", + "/package.json", + "/rollup.config.js", + "/tsconfig.json", +] [package.metadata.platforms.support] windows = { level = "full", notes = "" } diff --git a/plugins/nfc/Cargo.toml b/plugins/nfc/Cargo.toml index e4e7360c8..0b1a4976d 100644 --- a/plugins/nfc/Cargo.toml +++ b/plugins/nfc/Cargo.toml @@ -7,6 +7,7 @@ authors = { workspace = true } license = { workspace = true } repository = { workspace = true } links = "tauri-plugin-nfc" +exclude = ["/guest-js", "/package.json", "/rollup.config.js", "/tsconfig.json"] [package.metadata.docs.rs] targets = ["x86_64-linux-android"] diff --git a/plugins/notification/Cargo.toml b/plugins/notification/Cargo.toml index cd853c448..a352f9665 100644 --- a/plugins/notification/Cargo.toml +++ b/plugins/notification/Cargo.toml @@ -8,6 +8,14 @@ license = { workspace = true } rust-version = { workspace = true } repository = { workspace = true } links = "tauri-plugin-notification" +exclude = [ + "/banner.png", + "/guest-js", + "/package.json", + "/rollup.config.js", + "/test", + "/tsconfig.json", +] [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu", "x86_64-linux-android"] diff --git a/plugins/opener/Cargo.toml b/plugins/opener/Cargo.toml index 7455bc8bd..4b5e3b353 100644 --- a/plugins/opener/Cargo.toml +++ b/plugins/opener/Cargo.toml @@ -11,6 +11,8 @@ links = "tauri-plugin-opener" # Platforms supported by the plugin # Support levels are "full", "partial", "none", "unknown" # Details of the support level are left to plugin maintainer +exclude = ["/guest-js", "/package.json", "/rollup.config.js", "/tsconfig.json"] + [package.metadata.platforms.support] windows = { level = "full", notes = "" } linux = { level = "full", notes = "" } diff --git a/plugins/os/Cargo.toml b/plugins/os/Cargo.toml index 2001395f8..c4b3e5a4c 100644 --- a/plugins/os/Cargo.toml +++ b/plugins/os/Cargo.toml @@ -8,6 +8,13 @@ license = { workspace = true } rust-version = { workspace = true } repository = { workspace = true } links = "tauri-plugin-os" +exclude = [ + "/banner.png", + "/guest-js", + "/package.json", + "/rollup.config.js", + "/tsconfig.json", +] [package.metadata.platforms.support] windows = { level = "full", notes = "" } diff --git a/plugins/persisted-scope/Cargo.toml b/plugins/persisted-scope/Cargo.toml index d3df032eb..b654da99d 100644 --- a/plugins/persisted-scope/Cargo.toml +++ b/plugins/persisted-scope/Cargo.toml @@ -7,6 +7,7 @@ license = { workspace = true } edition = { workspace = true } rust-version = { workspace = true } repository = { workspace = true } +exclude = ["/banner.png"] [package.metadata.platforms.support] windows = { level = "full", notes = "" } diff --git a/plugins/positioner/Cargo.toml b/plugins/positioner/Cargo.toml index 4113953ca..46ddf3357 100644 --- a/plugins/positioner/Cargo.toml +++ b/plugins/positioner/Cargo.toml @@ -8,6 +8,13 @@ edition = { workspace = true } rust-version = { workspace = true } repository = { workspace = true } links = "tauri-plugin-positioner" +exclude = [ + "/banner.png", + "/guest-js", + "/package.json", + "/rollup.config.js", + "/tsconfig.json", +] [package.metadata.platforms.support] windows = { level = "full", notes = "" } diff --git a/plugins/process/Cargo.toml b/plugins/process/Cargo.toml index 91d918c12..c586cb215 100644 --- a/plugins/process/Cargo.toml +++ b/plugins/process/Cargo.toml @@ -8,6 +8,13 @@ license = { workspace = true } rust-version = { workspace = true } repository = { workspace = true } links = "tauri-plugin-process" +exclude = [ + "/banner.png", + "/guest-js", + "/package.json", + "/rollup.config.js", + "/tsconfig.json", +] [package.metadata.platforms.support] windows = { level = "full", notes = "" } diff --git a/plugins/shell/Cargo.toml b/plugins/shell/Cargo.toml index fbbd51f42..62b4d4881 100644 --- a/plugins/shell/Cargo.toml +++ b/plugins/shell/Cargo.toml @@ -8,6 +8,14 @@ license = { workspace = true } rust-version = { workspace = true } repository = { workspace = true } links = "tauri-plugin-shell" +exclude = [ + "/banner.png", + "/guest-js", + "/package.json", + "/rollup.config.js", + "/test", + "/tsconfig.json", +] [package.metadata.platforms.support] windows = { level = "full", notes = "" } diff --git a/plugins/single-instance/Cargo.toml b/plugins/single-instance/Cargo.toml index d19b63ab4..70f918ca6 100644 --- a/plugins/single-instance/Cargo.toml +++ b/plugins/single-instance/Cargo.toml @@ -7,7 +7,7 @@ license = { workspace = true } edition = { workspace = true } rust-version = { workspace = true } repository = { workspace = true } -exclude = ["/examples"] +exclude = ["/banner.png", "/examples"] [package.metadata.platforms.support] windows = { level = "full", notes = "" } diff --git a/plugins/sql/Cargo.toml b/plugins/sql/Cargo.toml index 1608412e3..405965a00 100644 --- a/plugins/sql/Cargo.toml +++ b/plugins/sql/Cargo.toml @@ -8,6 +8,13 @@ edition = { workspace = true } rust-version = { workspace = true } repository = { workspace = true } links = "tauri-plugin-sql" +exclude = [ + "/banner.png", + "/guest-js", + "/package.json", + "/rollup.config.js", + "/tsconfig.json", +] [package.metadata.docs.rs] features = ["sqlite"] diff --git a/plugins/store/Cargo.toml b/plugins/store/Cargo.toml index d7b9072e9..1bbbdcf98 100644 --- a/plugins/store/Cargo.toml +++ b/plugins/store/Cargo.toml @@ -8,6 +8,14 @@ edition = { workspace = true } rust-version = { workspace = true } repository = { workspace = true } links = "tauri-plugin-store" +exclude = [ + "/banner.png", + "/examples", + "/guest-js", + "/package.json", + "/rollup.config.js", + "/tsconfig.json", +] [package.metadata.platforms.support] windows = { level = "full", notes = "" } diff --git a/plugins/stronghold/Cargo.toml b/plugins/stronghold/Cargo.toml index e03287fa4..a8438d670 100644 --- a/plugins/stronghold/Cargo.toml +++ b/plugins/stronghold/Cargo.toml @@ -8,6 +8,13 @@ edition = { workspace = true } rust-version = { workspace = true } repository = { workspace = true } links = "tauri-plugin-stronghold" +exclude = [ + "/banner.png", + "/guest-js", + "/package.json", + "/rollup.config.js", + "/tsconfig.json", +] [package.metadata.platforms.support] windows = { level = "full", notes = "" } diff --git a/plugins/updater/Cargo.toml b/plugins/updater/Cargo.toml index 332482508..5dddf2260 100644 --- a/plugins/updater/Cargo.toml +++ b/plugins/updater/Cargo.toml @@ -8,6 +8,14 @@ license = { workspace = true } rust-version = { workspace = true } repository = { workspace = true } links = "tauri-plugin-updater" +exclude = [ + "/banner.png", + "/guest-js", + "/package.json", + "/rollup.config.js", + "/tests", + "/tsconfig.json", +] [package.metadata.docs.rs] no-default-features = true diff --git a/plugins/upload/Cargo.toml b/plugins/upload/Cargo.toml index ab9a7f729..b50fbc2d7 100644 --- a/plugins/upload/Cargo.toml +++ b/plugins/upload/Cargo.toml @@ -8,6 +8,14 @@ edition = { workspace = true } rust-version = { workspace = true } repository = { workspace = true } links = "tauri-plugin-upload" +exclude = [ + "/banner.png", + "/guest-js", + "/package.json", + "/rollup.config.js", + "/test", + "/tsconfig.json", +] [package.metadata.platforms.support] windows = { level = "full", notes = "" } diff --git a/plugins/websocket/Cargo.toml b/plugins/websocket/Cargo.toml index 3b43dff55..babd109fc 100644 --- a/plugins/websocket/Cargo.toml +++ b/plugins/websocket/Cargo.toml @@ -8,7 +8,14 @@ edition = { workspace = true } rust-version = { workspace = true } repository = { workspace = true } links = "tauri-plugin-websocket" -exclude = ["/examples"] +exclude = [ + "/banner.png", + "/examples", + "/guest-js", + "/package.json", + "/rollup.config.js", + "/tsconfig.json", +] [package.metadata.platforms.support] windows = { level = "full", notes = "" } diff --git a/plugins/window-state/Cargo.toml b/plugins/window-state/Cargo.toml index 0f522688d..6f7592101 100644 --- a/plugins/window-state/Cargo.toml +++ b/plugins/window-state/Cargo.toml @@ -8,6 +8,13 @@ edition = { workspace = true } rust-version = { workspace = true } repository = { workspace = true } links = "tauri-plugin-window-state" +exclude = [ + "/banner.png", + "/guest-js", + "/package.json", + "/rollup.config.js", + "/tsconfig.json", +] [package.metadata.platforms.support] windows = { level = "full", notes = "" } From cc9ec9b4ad2f9ec9bd57c3503ded1bd94d092c48 Mon Sep 17 00:00:00 2001 From: purvsinojiya-inventyv Date: Wed, 29 Jul 2026 20:35:43 +0530 Subject: [PATCH 22/41] fix(dialog): use parsed MIME type for Android save dialog (#3519) --- .changes/dialog-save-fix.md | 6 ++++++ plugins/dialog/android/src/main/java/DialogPlugin.kt | 7 ++++--- 2 files changed, 10 insertions(+), 3 deletions(-) create mode 100644 .changes/dialog-save-fix.md diff --git a/.changes/dialog-save-fix.md b/.changes/dialog-save-fix.md new file mode 100644 index 000000000..6ef01e057 --- /dev/null +++ b/.changes/dialog-save-fix.md @@ -0,0 +1,6 @@ +--- +"dialog": patch +"dialog-js": patch +--- + +Fix Android save dialog MIME type when a single MIME type is provided. diff --git a/plugins/dialog/android/src/main/java/DialogPlugin.kt b/plugins/dialog/android/src/main/java/DialogPlugin.kt index 5c58f00dc..b11c20115 100644 --- a/plugins/dialog/android/src/main/java/DialogPlugin.kt +++ b/plugins/dialog/android/src/main/java/DialogPlugin.kt @@ -204,9 +204,10 @@ class DialogPlugin(private val activity: Activity): Plugin(activity) { val intent = Intent(Intent.ACTION_CREATE_DOCUMENT) intent.addCategory(Intent.CATEGORY_OPENABLE) intent.putExtra(Intent.EXTRA_TITLE, args.fileName ?: "") - intent.type = "*/*" - - if (parsedTypes.isNotEmpty()) { + if (parsedTypes.size == 1) { + intent.type = parsedTypes.first() + } else { + intent.type = "*/*" intent.putExtra(Intent.EXTRA_MIME_TYPES, parsedTypes) } From ba89f32eb059fb7bd97182383e917bbebb3134e3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 4 Aug 2026 10:46:11 +0800 Subject: [PATCH 23/41] chore(deps): update dependency @zerodevx/svelte-json-view to v2 (#3524) * chore(deps): update dependency @zerodevx/svelte-json-view to v2 * update pnpm to 11.20.0? * bump brace-expansion for audit --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Tony --- examples/api/package.json | 2 +- package.json | 2 +- pnpm-lock.yaml | 25 ++++++++++++++----------- 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/examples/api/package.json b/examples/api/package.json index af7a4222f..1fd0ce6f6 100644 --- a/examples/api/package.json +++ b/examples/api/package.json @@ -30,7 +30,7 @@ "@tauri-apps/plugin-store": "workspace:*", "@tauri-apps/plugin-updater": "workspace:*", "@tauri-apps/plugin-upload": "workspace:*", - "@zerodevx/svelte-json-view": "1.0.11" + "@zerodevx/svelte-json-view": "2.0.0" }, "devDependencies": { "@iconify-json/codicon": "^1.2.49", diff --git a/package.json b/package.json index 53e098368..94e114109 100644 --- a/package.json +++ b/package.json @@ -25,5 +25,5 @@ "typescript-eslint": "8.58.2" }, "minimumReleaseAge": 4320, - "packageManager": "pnpm@11.13.0" + "packageManager": "pnpm@11.20.0" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 82d1f7a27..cc7719f2f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -108,8 +108,8 @@ importers: specifier: workspace:* version: link:../../plugins/upload '@zerodevx/svelte-json-view': - specifier: 1.0.11 - version: 1.0.11(svelte@5.55.7(@typescript-eslint/types@8.58.2)) + specifier: 2.0.0 + version: 2.0.0(svelte@5.55.7(@typescript-eslint/types@8.58.2)) devDependencies: '@iconify-json/codicon': specifier: ^1.2.49 @@ -1272,10 +1272,13 @@ packages: peerDependencies: vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 || ^8.0.0-0 - '@zerodevx/svelte-json-view@1.0.11': - resolution: {integrity: sha512-mIjj0H1al/P4FPlbeDoiey93lNEUqBEAe5LIdD5GttZfEYt3awexD2lHwKNfUeY4jHizOJkoWTPN/2iO0GBqpw==} + '@zerodevx/svelte-json-view@2.0.0': + resolution: {integrity: sha512-bzkyssGxz0Z6Utv80vxBBkfkTzW1ZkkJ28cAmURc2+ytMPd6zTH7LRiUJgJf14gIzdeRRYNkD7CZ/MHPlP7LVQ==} peerDependencies: - svelte: ^3.57.0 || ^4.0.0 || ^5.0.0 + svelte: ^5.0.0 + peerDependenciesMeta: + svelte: + optional: true acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} @@ -1302,8 +1305,8 @@ packages: resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} engines: {node: 18 || 20 || >=22} - brace-expansion@5.0.8: - resolution: {integrity: sha512-JZyDyq3D4AUifKTPOB7DELf6XsB3WdPuNxCtob1vFXPsSXhdAiHBWJ/tJ8HAc9aH84BK+5JFZLNkJKx3G9kzQg==} + brace-expansion@5.0.9: + resolution: {integrity: sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==} engines: {node: 20 || >=22} buffer-from@1.1.2: @@ -2706,8 +2709,8 @@ snapshots: unplugin-utils: 0.3.1 vite: 8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.1) - '@zerodevx/svelte-json-view@1.0.11(svelte@5.55.7(@typescript-eslint/types@8.58.2))': - dependencies: + '@zerodevx/svelte-json-view@2.0.0(svelte@5.55.7(@typescript-eslint/types@8.58.2))': + optionalDependencies: svelte: 5.55.7(@typescript-eslint/types@8.58.2) acorn-jsx@5.3.2(acorn@8.16.0): @@ -2729,7 +2732,7 @@ snapshots: balanced-match@4.0.4: {} - brace-expansion@5.0.8: + brace-expansion@5.0.9: dependencies: balanced-match: 4.0.4 @@ -3057,7 +3060,7 @@ snapshots: minimatch@10.2.4: dependencies: - brace-expansion: 5.0.8 + brace-expansion: 5.0.9 mlly@1.8.2: dependencies: From e215ff90d34856971b1401a051fd0f4340cd3d7e Mon Sep 17 00:00:00 2001 From: Tony <68118705+Legend-Master@users.noreply.github.com> Date: Tue, 4 Aug 2026 15:45:25 +0800 Subject: [PATCH 24/41] chore: remove outdated prod features (#3525) --- examples/api/src-tauri/Cargo.toml | 3 --- plugins/deep-link/examples/app/src-tauri/Cargo.toml | 6 ------ .../single-instance/examples/vanilla/src-tauri/Cargo.toml | 3 --- .../store/examples/AppSettingsManager/src-tauri/Cargo.toml | 5 ----- plugins/updater/tests/app-updater/Cargo.toml | 3 --- plugins/websocket/examples/tauri-app/src-tauri/Cargo.toml | 3 --- 6 files changed, 23 deletions(-) diff --git a/examples/api/src-tauri/Cargo.toml b/examples/api/src-tauri/Cargo.toml index ec8b6c3d4..d56ad942a 100644 --- a/examples/api/src-tauri/Cargo.toml +++ b/examples/api/src-tauri/Cargo.toml @@ -66,6 +66,3 @@ tauri-plugin-nfc = { path = "../../../plugins/nfc", version = "2.3.5" } tauri-plugin-biometric = { path = "../../../plugins/biometric/", version = "2.3.2" } tauri-plugin-geolocation = { path = "../../../plugins/geolocation/", version = "2.3.2" } tauri-plugin-haptics = { path = "../../../plugins/haptics/", version = "2.3.2" } - -[features] -prod = ["tauri/custom-protocol"] diff --git a/plugins/deep-link/examples/app/src-tauri/Cargo.toml b/plugins/deep-link/examples/app/src-tauri/Cargo.toml index 130a7fef2..1ebb5ac8b 100644 --- a/plugins/deep-link/examples/app/src-tauri/Cargo.toml +++ b/plugins/deep-link/examples/app/src-tauri/Cargo.toml @@ -26,9 +26,3 @@ tauri-plugin-single-instance = { path = "../../../../single-instance", features "deep-link", ] } log = "0.4" - -[features] -# this feature is used for production builds or when `devUrl` points to the filesystem and the built-in dev server is disabled. -# If you use cargo directly instead of tauri's cli you can use this feature flag to switch between tauri's `dev` and `build` modes. -# DO NOT REMOVE!! -prod = ["tauri/custom-protocol"] diff --git a/plugins/single-instance/examples/vanilla/src-tauri/Cargo.toml b/plugins/single-instance/examples/vanilla/src-tauri/Cargo.toml index dd9c8d8aa..c98659a25 100644 --- a/plugins/single-instance/examples/vanilla/src-tauri/Cargo.toml +++ b/plugins/single-instance/examples/vanilla/src-tauri/Cargo.toml @@ -16,6 +16,3 @@ tauri-plugin-cli = { path = "../../../../cli" } [build-dependencies] tauri-build = { workspace = true } - -[features] -prod = ["tauri/custom-protocol"] diff --git a/plugins/store/examples/AppSettingsManager/src-tauri/Cargo.toml b/plugins/store/examples/AppSettingsManager/src-tauri/Cargo.toml index 9a30f0b16..d005f10ef 100644 --- a/plugins/store/examples/AppSettingsManager/src-tauri/Cargo.toml +++ b/plugins/store/examples/AppSettingsManager/src-tauri/Cargo.toml @@ -17,8 +17,3 @@ tauri = { workspace = true, features = ["wry", "common-controls-v6", "x11"] } serde = { workspace = true } serde_json = { workspace = true } tauri-plugin-store = { path = "../../../" } - -[features] -# this feature is used for production builds or when `devPath` points to the filesystem -# DO NOT REMOVE!! -prod = ["tauri/custom-protocol"] diff --git a/plugins/updater/tests/app-updater/Cargo.toml b/plugins/updater/tests/app-updater/Cargo.toml index 57072824e..6ab6d798d 100644 --- a/plugins/updater/tests/app-updater/Cargo.toml +++ b/plugins/updater/tests/app-updater/Cargo.toml @@ -13,6 +13,3 @@ serde_json = { workspace = true } tauri-plugin-updater = { path = "../.." } tiny_http = "0.12" time = { version = "0.3", features = ["formatting"] } - -[features] -prod = ["tauri/custom-protocol"] diff --git a/plugins/websocket/examples/tauri-app/src-tauri/Cargo.toml b/plugins/websocket/examples/tauri-app/src-tauri/Cargo.toml index 6b7b284a1..7c719eb3b 100644 --- a/plugins/websocket/examples/tauri-app/src-tauri/Cargo.toml +++ b/plugins/websocket/examples/tauri-app/src-tauri/Cargo.toml @@ -15,6 +15,3 @@ tokio-tungstenite = "0.29" [build-dependencies] tauri-build = { workspace = true } - -[features] -prod = ["tauri/custom-protocol"] From 2371be839f9ae46dd2b0529a2d1598f2b6270ab1 Mon Sep 17 00:00:00 2001 From: Tony <68118705+Legend-Master@users.noreply.github.com> Date: Tue, 4 Aug 2026 16:37:00 +0800 Subject: [PATCH 25/41] feat(updater): add `system-proxy` feature (#3526) * feat(updater): add `system-proxy` feature * enable by default --- .changes/updater-system-proxy.md | 6 ++++++ plugins/updater/Cargo.toml | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 .changes/updater-system-proxy.md diff --git a/.changes/updater-system-proxy.md b/.changes/updater-system-proxy.md new file mode 100644 index 000000000..d5dda5657 --- /dev/null +++ b/.changes/updater-system-proxy.md @@ -0,0 +1,6 @@ +--- +"updater": minor +"updater-js": minor +--- + +Added `system-proxy` (enabled by default) feature flag to control `reqwest/system-proxy` feature (Use Windows and macOS system proxy settings automatically) diff --git a/plugins/updater/Cargo.toml b/plugins/updater/Cargo.toml index 5dddf2260..f1cf20bc0 100644 --- a/plugins/updater/Cargo.toml +++ b/plugins/updater/Cargo.toml @@ -75,8 +75,9 @@ flate2 = "1" osakit = { version = "0.3", features = ["full"] } [features] -default = ["rustls-tls", "zip"] +default = ["rustls-tls", "system-proxy", "zip"] zip = ["dep:zip", "dep:tar", "dep:flate2"] native-tls = ["reqwest/native-tls"] native-tls-vendored = ["reqwest/native-tls-vendored"] rustls-tls = ["reqwest/rustls-no-provider", "dep:rustls"] +system-proxy = ["reqwest/system-proxy"] From 19fb3926fd24d95371bc3a7593256861df406436 Mon Sep 17 00:00:00 2001 From: Tony <68118705+Legend-Master@users.noreply.github.com> Date: Tue, 4 Aug 2026 19:51:32 +0800 Subject: [PATCH 26/41] feat(http): add `system-proxy` feature (#3528) * feat(http): add `system-proxy` feature * require reqwest 0.12.16 --- .changes/http-system-proxy.md | 6 ++++++ plugins/http/Cargo.toml | 13 +++++-------- 2 files changed, 11 insertions(+), 8 deletions(-) create mode 100644 .changes/http-system-proxy.md diff --git a/.changes/http-system-proxy.md b/.changes/http-system-proxy.md new file mode 100644 index 000000000..0e428a7fe --- /dev/null +++ b/.changes/http-system-proxy.md @@ -0,0 +1,6 @@ +--- +"http": minor +"http-js": minor +--- + +Added `system-proxy` feature to replace the old `macos-system-configuration` feature flag to match the new reqwest API. diff --git a/plugins/http/Cargo.toml b/plugins/http/Cargo.toml index 82e2a6bfb..497646f4a 100644 --- a/plugins/http/Cargo.toml +++ b/plugins/http/Cargo.toml @@ -41,7 +41,8 @@ tauri-plugin-fs = { path = "../fs", version = "2.5.1" } urlpattern = "0.3" regex = "1" http = "1" -reqwest = { version = "0.12", default-features = false } +# 0.12.16 is when `system-proxy` was added +reqwest = { version = "0.12.16", default-features = false } url = { workspace = true } data-url = "0.3" cookie_store = { version = "0.22", optional = true, features = ["serde"] } @@ -49,13 +50,7 @@ bytes = { version = "1.9", optional = true } tracing = { workspace = true, optional = true } [features] -default = [ - "rustls-tls", - "http2", - "charset", - "macos-system-configuration", - "cookies", -] +default = ["rustls-tls", "http2", "charset", "system-proxy", "cookies"] multipart = ["reqwest/multipart"] json = ["reqwest/json"] stream = ["reqwest/stream"] @@ -76,7 +71,9 @@ trust-dns = ["reqwest/trust-dns"] socks = ["reqwest/socks"] http2 = ["reqwest/http2"] charset = ["reqwest/charset"] +# Deprecated, switch to system-proxy macos-system-configuration = ["reqwest/macos-system-configuration"] +system-proxy = ["reqwest/system-proxy"] unsafe-headers = [] tracing = ["dep:tracing"] dangerous-settings = [] From f8053e659e4ccd85c1f52833411ff8417cbc5e69 Mon Sep 17 00:00:00 2001 From: Tony <68118705+Legend-Master@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:48:11 +0800 Subject: [PATCH 27/41] docs: cargo features (#3527) * dialog * fs * geolocation * haptic * log * single instance * notification * updater * ## * persisted scopes * stronghold * sql * upload * websocket * http (this one was too long that I generated through codex, didn't review yet) * add change file * no persisted-scope-js * add `://` * Merge branch 'v2' into document-cargo-features * update system-proxy docs * finish http docs * notification doesn't need version bumps * clean up docs --- .changes/feature-flags-docs.md | 30 ++++++++++++++++++++++ plugins/autostart/src/lib.rs | 2 +- plugins/dialog/src/lib.rs | 5 ++++ plugins/fs/src/lib.rs | 4 +++ plugins/geolocation/src/lib.rs | 6 +++++ plugins/haptics/src/lib.rs | 6 +++++ plugins/http/Cargo.toml | 1 + plugins/http/src/lib.rs | 40 ++++++++++++++++++++++++++++++ plugins/log/src/lib.rs | 13 +++++++++- plugins/notification/src/lib.rs | 4 +++ plugins/persisted-scope/src/lib.rs | 36 +++++++++++++++------------ plugins/positioner/src/lib.rs | 2 +- plugins/single-instance/src/lib.rs | 5 ++++ plugins/sql/src/lib.rs | 11 +++++++- plugins/stronghold/src/lib.rs | 4 +++ plugins/updater/src/lib.rs | 10 +++++++- plugins/upload/src/lib.rs | 6 +++++ plugins/websocket/src/lib.rs | 9 +++++++ 18 files changed, 173 insertions(+), 21 deletions(-) create mode 100644 .changes/feature-flags-docs.md diff --git a/.changes/feature-flags-docs.md b/.changes/feature-flags-docs.md new file mode 100644 index 000000000..0adba0d48 --- /dev/null +++ b/.changes/feature-flags-docs.md @@ -0,0 +1,30 @@ +--- +"dialog": patch +"dialog-js": patch +"fs": patch +"fs-js": patch +"geolocation": patch +"geolocation-js": patch +"haptics": patch +"haptics-js": patch +"http": patch +"http-js": patch +"log": patch +"log-js": patch +"persisted-scope": patch +"positioner": patch +"positioner-js": patch +"single-instance": patch +"sql": patch +"sql-js": patch +"stronghold": patch +"stronghold-js": patch +"updater": patch +"updater-js": patch +"upload": patch +"upload-js": patch +"websocket": patch +"websocket-js": patch +--- + +Documented Cargo feature flags in each plugin's crate-level documentation. diff --git a/plugins/autostart/src/lib.rs b/plugins/autostart/src/lib.rs index 4b4c7c23a..82fc56fc9 100644 --- a/plugins/autostart/src/lib.rs +++ b/plugins/autostart/src/lib.rs @@ -161,7 +161,7 @@ impl Builder { /// /// ```no_run /// Builder::new() - /// .app_name("My Custom Name")) + /// .app_name("My Custom Name") /// .build(); /// ``` pub fn app_name>(mut self, app_name: S) -> Self { diff --git a/plugins/dialog/src/lib.rs b/plugins/dialog/src/lib.rs index 5d0c40726..cfb344509 100644 --- a/plugins/dialog/src/lib.rs +++ b/plugins/dialog/src/lib.rs @@ -3,6 +3,11 @@ // SPDX-License-Identifier: MIT //! Native system dialogs for opening and saving files along with message dialogs. +//! +//! ## Cargo features +//! +//! - **gtk3** *(enabled by default)*: Uses GTK for dialogs on Linux & BSDs; has no effect on Windows and macOS +//! - **xdg-portal**: Uses XDG Desktop Portal instead of GTK on Linux & BSDs #![doc( html_logo_url = "https://github.com/tauri-apps/tauri/raw/dev/app-icon.png", diff --git a/plugins/fs/src/lib.rs b/plugins/fs/src/lib.rs index 05fe67551..61579bef5 100644 --- a/plugins/fs/src/lib.rs +++ b/plugins/fs/src/lib.rs @@ -3,6 +3,10 @@ // SPDX-License-Identifier: MIT //! Access the file system. +//! +//! ## Cargo features +//! +//! - **watch**: Enables the `watch` command backed by [`notify`](http://crates.io/crates/notify). // TODO(v3): consider redesign the API to implement automatic stopAccessingSecurityScopedResource on iOS // this likely requires returning a handle to a resource so we can impl Drop for it diff --git a/plugins/geolocation/src/lib.rs b/plugins/geolocation/src/lib.rs index 588f96e39..a1e5d2cea 100644 --- a/plugins/geolocation/src/lib.rs +++ b/plugins/geolocation/src/lib.rs @@ -2,6 +2,12 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT +//! Access device geolocation APIs. +//! +//! ## Cargo features +//! +//! - **specta**: Add support for [`specta::specta`](https://docs.rs/specta/2.0.0-rc.25/specta/attr.specta.html) on structs like [`PermissionStatus`], [`PositionOptions`]. + use tauri::{ plugin::{Builder, TauriPlugin}, Manager, Runtime, diff --git a/plugins/haptics/src/lib.rs b/plugins/haptics/src/lib.rs index 317987437..f297a7488 100644 --- a/plugins/haptics/src/lib.rs +++ b/plugins/haptics/src/lib.rs @@ -2,6 +2,12 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT +//! Trigger haptic feedback on supported devices. +//! +//! ## Cargo features +//! +//! - **specta**: Add support for [`specta::specta`](https://docs.rs/specta/2.0.0-rc.25/specta/attr.specta.html) on structs like [`ImpactFeedbackStyle`], [`NotificationFeedbackType`]. + use tauri::{ plugin::{Builder, TauriPlugin}, Manager, Runtime, diff --git a/plugins/http/Cargo.toml b/plugins/http/Cargo.toml index 497646f4a..3ca5b1099 100644 --- a/plugins/http/Cargo.toml +++ b/plugins/http/Cargo.toml @@ -74,6 +74,7 @@ charset = ["reqwest/charset"] # Deprecated, switch to system-proxy macos-system-configuration = ["reqwest/macos-system-configuration"] system-proxy = ["reqwest/system-proxy"] + unsafe-headers = [] tracing = ["dep:tracing"] dangerous-settings = [] diff --git a/plugins/http/src/lib.rs b/plugins/http/src/lib.rs index 364d3bfff..e5f5c2b4e 100644 --- a/plugins/http/src/lib.rs +++ b/plugins/http/src/lib.rs @@ -3,6 +3,46 @@ // SPDX-License-Identifier: MIT //! Access the HTTP client written in Rust. +//! +//! ## Cargo features +//! +//! ### Reqwest feature forwards +//! +//! These features forwards [`reqwest`](https://docs.rs/reqwest/0.12.28/reqwest/index.html) features: +//! +//! - **http2** *(enabled by default)*: Enables HTTP/2 support. +//! - **native-tls**: Enables TLS functionality provided by native-tls. +//! - **native-tls-vendored**: Enables the vendored feature of native-tls. +//! - **native-tls-alpn**: Enables the alpn feature of native-tls. +//! - **rustls-tls** *(enabled by default)*: Enables TLS functionality provided by rustls. Equivalent to +//! rustls-tls-webpki-roots. +//! - **rustls-tls-manual-roots**: Enables TLS functionality provided by rustls, without setting any root +//! certificates. Roots have to be specified manually. +//! - **rustls-tls-webpki-roots**: Enables TLS functionality provided by rustls, while using root certificates +//! from the webpki-roots crate. +//! - **rustls-tls-native-roots**: Enables TLS functionality provided by rustls, while using root certificates +//! from the rustls-native-certs crate. +//! - **blocking**: Provides the [blocking](https://docs.rs/reqwest/0.12.28/reqwest/blocking/index.html) client API. +//! - **charset** *(enabled by default)*: Improved support for decoding text. +//! - **cookies** *(enabled by default)*: Provides cookie session support. +//! - **gzip**: Provides response body gzip decompression. +//! - **brotli**: Provides response body brotli decompression. +//! - **zstd**: Provides response body zstd decompression. +//! - **deflate**: Provides response body deflate decompression. +//! - **json**: Provides serialization and deserialization for JSON bodies. +//! - **multipart**: Provides functionality for multipart forms. +//! - **stream**: Adds support for futures::Stream. +//! - **socks**: Provides SOCKS5 proxy support. +//! - **trust-dns**: Enables a trust-dns/Hickory DNS async resolver instead of the default threadpool using +//! getaddrinfo. +//! - **macos-system-configuration** *(deprecated, use `system-proxy` instead)*: Use Windows and macOS system proxy settings automatically. +//! - **system-proxy** *(enabled by default)*: Use Windows and macOS system proxy settings automatically. +//! +//! ### tauri-plugin-http features +//! +//! - **tracing**: Adds request, response, and cookie-store diagnostics through `tracing`. +//! - **unsafe-headers**: Allows webview requests to send any headers. +//! - **dangerous-settings**: Allows dangerous client settings such as accepting invalid certificates or hostnames. pub use reqwest; use tauri::{ diff --git a/plugins/log/src/lib.rs b/plugins/log/src/lib.rs index 5b1dd4268..9366f8584 100644 --- a/plugins/log/src/lib.rs +++ b/plugins/log/src/lib.rs @@ -3,6 +3,11 @@ // SPDX-License-Identifier: MIT //! Logging for Tauri applications. +//! +//! ## Cargo features +//! +//! - **colored**: Enables [`Builder::with_colors`] `fern`'s `colored` feature for ANSI-colored outputs. +//! - **tracing**: Emit both log and tracing for the JavaScript log commands. #![doc( html_logo_url = "https://github.com/tauri-apps/tauri/raw/dev/app-icon.png", @@ -648,7 +653,13 @@ impl Builder { /// Skip the creation and global registration of a logger /// - /// If you wish to use your own global logger, you must call `skip_logger` so that the plugin does not attempt to set a second global logger. In this configuration, no logger will be created and the plugin's `log` command will rely on the result of `log::logger()`. You will be responsible for configuring the logger yourself and any included targets will be ignored. If ever initializing the plugin multiple times, such as if registering the plugin while testing, call this method to avoid panicking when registering multiple loggers. For interacting with `tracing`, you can leverage the `tracing-log` logger to forward logs to `tracing` or enable the `tracing` feature for this plugin to emit events directly to the tracing system. Both scenarios require calling this method. + /// If you wish to use your own global logger, you must call `skip_logger` so that the plugin does not attempt to set a second global logger. + /// In this configuration, no logger will be created and the plugin's `log` command will rely on the result of `log::logger()`. + /// You will be responsible for configuring the logger yourself and any included targets will be ignored. + /// If ever initializing the plugin multiple times, such as if registering the plugin while testing, call this method to avoid panicking when registering multiple loggers. + /// For interacting with `tracing`, you can leverage the `tracing-log` logger to forward logs to `tracing` or enable the `tracing` feature for this plugin to emit events directly to the tracing system. + /// Both scenarios require calling this method. + /// /// ```rust /// static LOGGER: SimpleLogger = SimpleLogger; /// diff --git a/plugins/notification/src/lib.rs b/plugins/notification/src/lib.rs index 8b79c8730..7a0062bac 100644 --- a/plugins/notification/src/lib.rs +++ b/plugins/notification/src/lib.rs @@ -3,6 +3,10 @@ // SPDX-License-Identifier: MIT //! Send message notifications (brief auto-expiring OS window element) to your user. Can also be used with the Notification Web API. +//! +//! ## Cargo features +//! +//! - **windows7-compat**: Adds support for the legacy Windows 7 notification implementation and Windows-version detection. #![doc( html_logo_url = "https://github.com/tauri-apps/tauri/raw/dev/app-icon.png", diff --git a/plugins/persisted-scope/src/lib.rs b/plugins/persisted-scope/src/lib.rs index 2eb817f3a..602d90864 100644 --- a/plugins/persisted-scope/src/lib.rs +++ b/plugins/persisted-scope/src/lib.rs @@ -3,6 +3,10 @@ // SPDX-License-Identifier: MIT //! Save filesystem and asset scopes and restore them when the app is reopened. +//! +//! ## Cargo features +//! +//! - **protocol-asset**: Enables `tauri`'s `protocol-asset` feature and adds support for persisting `asset://` protocol scopes. #![doc( html_logo_url = "https://github.com/tauri-apps/tauri/raw/dev/app-icon.png", @@ -188,25 +192,25 @@ pub fn init() -> TauriPlugin { if let Some(fs_scope) = &fs_scope { if fs_scope_state_path.exists() { - let scope: Scope = std::fs::read(&fs_scope_state_path) - .map_err(Error::from) - .and_then(|scope| bincode::deserialize(&scope).map_err(Into::into)) - .unwrap_or_default(); + let scope: Scope = std::fs::read(&fs_scope_state_path) + .map_err(Error::from) + .and_then(|scope| bincode::deserialize(&scope).map_err(Into::into)) + .unwrap_or_default(); - for allowed in &scope.allowed_paths { - let allowed = fix_pattern(&ac, allowed); - allow_path(fs_scope, &allowed); - } - for forbidden in &scope.forbidden_patterns { - let forbidden = fix_pattern(&ac, forbidden); - forbid_path(fs_scope, &forbidden); - } + for allowed in &scope.allowed_paths { + let allowed = fix_pattern(&ac, allowed); + allow_path(fs_scope, &allowed); + } + for forbidden in &scope.forbidden_patterns { + let forbidden = fix_pattern(&ac, forbidden); + forbid_path(fs_scope, &forbidden); + } - // Manually save the fixed scopes to disk once. - // This is needed to fix broken .peristed-scope files in case the app doesn't update the scope itself. - save_scopes(fs_scope, &app_dir, &fs_scope_state_path); + // Manually save the fixed scopes to disk once. + // This is needed to fix broken .peristed-scope files in case the app doesn't update the scope itself. + save_scopes(fs_scope, &app_dir, &fs_scope_state_path); + } } - } #[cfg(feature = "protocol-asset")] if asset_scope_state_path.exists() { diff --git a/plugins/positioner/src/lib.rs b/plugins/positioner/src/lib.rs index 59d0c3c13..8d9594028 100644 --- a/plugins/positioner/src/lib.rs +++ b/plugins/positioner/src/lib.rs @@ -5,7 +5,7 @@ //! A plugin for Tauri that helps position your windows at well-known locations. //! -//! # Cargo features +//! ## Cargo features //! //! - **tray-icon**: Enables tray-icon-relative positions. //! diff --git a/plugins/single-instance/src/lib.rs b/plugins/single-instance/src/lib.rs index ad840caed..c41a0fa10 100644 --- a/plugins/single-instance/src/lib.rs +++ b/plugins/single-instance/src/lib.rs @@ -3,6 +3,11 @@ // SPDX-License-Identifier: MIT //! Ensure a single instance of your tauri app is running. +//! +//! ## Cargo features +//! +//! - **semver**: Allows the app with SemVer incompatible versions to run alongside each other. +//! - **deep-link**: Trigger [`tauri-plugin-deep-link`](https://crates.io/crates/tauri-plugin-deep-link) event before invoking the single-instance callback. #![doc( html_logo_url = "https://github.com/tauri-apps/tauri/raw/dev/app-icon.png", diff --git a/plugins/sql/src/lib.rs b/plugins/sql/src/lib.rs index 56b2a3a6b..e9df558a3 100644 --- a/plugins/sql/src/lib.rs +++ b/plugins/sql/src/lib.rs @@ -2,7 +2,16 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT -//! Interface with SQL databases through [sqlx](https://github.com/launchbadge/sqlx). It supports the `sqlite`, `mysql` and `postgres` drivers, enabled by a Cargo feature. +//! Interface with SQL databases through [sqlx](https://github.com/launchbadge/sqlx). +//! +//! ## Cargo features +//! +//! No database driver is enabled by default. Enable at least one driver; +//! multiple drivers may be enabled together. +//! +//! - **sqlite**: Adds support for SQLite. +//! - **mysql**: Adds support for MySQL. +//! - **postgres**: Adds support for PostgreSQL. #![doc( html_logo_url = "https://github.com/tauri-apps/tauri/raw/dev/app-icon.png", diff --git a/plugins/stronghold/src/lib.rs b/plugins/stronghold/src/lib.rs index 23acc3a24..020bcd21b 100644 --- a/plugins/stronghold/src/lib.rs +++ b/plugins/stronghold/src/lib.rs @@ -3,6 +3,10 @@ // SPDX-License-Identifier: MIT //! Store secrets and keys using the [IOTA Stronghold](https://github.com/iotaledger/stronghold.rs) encrypted database and secure runtime. +//! +//! ## Cargo features +//! +//! - **kdf** *(enabled by default)*: Exposes the key-derivation module and provides the default Argon2-based password-to-key derivation. #![doc( html_logo_url = "https://github.com/tauri-apps/tauri/raw/dev/app-icon.png", diff --git a/plugins/updater/src/lib.rs b/plugins/updater/src/lib.rs index e4e21e16c..adb4c01ce 100644 --- a/plugins/updater/src/lib.rs +++ b/plugins/updater/src/lib.rs @@ -4,7 +4,15 @@ //! In-app updates for Tauri applications. //! -//! - Supported platforms: Windows, Linux and macOS.crypted database and secure runtime. +//! Supported platforms: Windows, Linux and macOS. +//! +//! ## Cargo features +//! +//! - **zip** *(enabled by default)*: Adds support for compressed updater bundles from Tauri v1. +//! - **rustls-tls** *(enabled by default)*: Enables TLS functionality provided by `rustls`. +//! - **native-tls**: Enables TLS functionality provided by `native-tls`. +//! - **native-tls-vendored**: Enables the `vendored` feature of `native-tls`. +//! - **system-proxy** *(enabled by default)*: Use Windows and macOS system proxy settings automatically. #![doc( html_logo_url = "https://github.com/tauri-apps/tauri/raw/dev/app-icon.png", diff --git a/plugins/upload/src/lib.rs b/plugins/upload/src/lib.rs index 1f39786f5..33f83288d 100644 --- a/plugins/upload/src/lib.rs +++ b/plugins/upload/src/lib.rs @@ -5,6 +5,12 @@ //! Upload files from disk to a remote server over HTTP. //! //! Download files from a remote HTTP server to disk. +//! +//! ## Cargo features +//! +//! - **rustls-tls** *(enabled by default)*: Enables TLS functionality provided by `rustls`. +//! - **native-tls**: Enables TLS functionality provided by `native-tls`. +//! - **native-tls-vendored**: Enables the `vendored` feature of `native-tls`. #![doc( html_logo_url = "https://github.com/tauri-apps/tauri/raw/dev/app-icon.png", diff --git a/plugins/websocket/src/lib.rs b/plugins/websocket/src/lib.rs index 9743e2cde..135be836c 100644 --- a/plugins/websocket/src/lib.rs +++ b/plugins/websocket/src/lib.rs @@ -3,6 +3,15 @@ // SPDX-License-Identifier: MIT //! Open a WebSocket connection using a Rust client in JS. +//! +//! ## Cargo features +//! +//! - **rustls-tls** *(enabled by default)*: Enables TLS functionality provided by `rustls` with WebPKI roots. +//! - **rustls-tls-native-roots**: Enables TLS functionality provided by `rustls` with the platform's native certificate roots. +//! - **native-tls**: Enables TLS functionality provided by `native-tls`. +//! - **native-tls-vendored**: Enables the `vendored` feature of `native-tls`. +//! +//! At least one TLS feature is required for `wss://`; plain `ws://` works without one. #![doc( html_logo_url = "https://github.com/tauri-apps/tauri/raw/dev/app-icon.png", From 685610ae782b668770d412f42a5d52d2cc9e497e Mon Sep 17 00:00:00 2001 From: Tony <68118705+Legend-Master@users.noreply.github.com> Date: Mon, 10 Aug 2026 15:48:27 +0800 Subject: [PATCH 28/41] fix(fs): default permissions (#3507) * Fix deny-webview-data platfroms and scopes * Fix `create-app-specific-dirs` scopes * Fix read-app-specific-dirs-recursive * Re-generate schema and docs * Remove unused `fs:allow-unwatch` * Add change file * Remove unused permissions * Update linux permissions * Update change file * regenerate doc md and schema --- .changes/fix-fs-scopes.md | 6 +++ .changes/fs-deny-scope.md | 2 +- examples/api/src-tauri/capabilities/base.json | 7 +--- .../api/src-tauri/capabilities/desktop.json | 3 +- .../fs/permissions/autogenerated/reference.md | 23 +++++++++--- .../permissions/create-app-specific-dirs.toml | 4 +- plugins/fs/permissions/default.toml | 4 +- plugins/fs/permissions/deny-webview-data.toml | 37 +++++++++++++++++-- .../read-app-specific-dirs-recursive.toml | 18 ++++----- plugins/fs/permissions/schemas/schema.json | 20 +++++----- 10 files changed, 85 insertions(+), 39 deletions(-) create mode 100644 .changes/fix-fs-scopes.md diff --git a/.changes/fix-fs-scopes.md b/.changes/fix-fs-scopes.md new file mode 100644 index 000000000..a1ea49674 --- /dev/null +++ b/.changes/fix-fs-scopes.md @@ -0,0 +1,6 @@ +--- +"fs": patch +"fs-js": patch +--- + +Fix `fs:default` and `fs:read-app-specific-dirs-recursive` not giving any command scopes diff --git a/.changes/fs-deny-scope.md b/.changes/fs-deny-scope.md index ca8974699..cc1cca600 100644 --- a/.changes/fs-deny-scope.md +++ b/.changes/fs-deny-scope.md @@ -3,4 +3,4 @@ "fs-js": patch --- -Fixed `deny-webview-data` has no effect \ No newline at end of file +Fixed `deny-webview-data` has no effect, and on Linux, only deny access to the webview data paths instead of the entire `$APPLOCALDATA` \ No newline at end of file diff --git a/examples/api/src-tauri/capabilities/base.json b/examples/api/src-tauri/capabilities/base.json index 91b2d6b45..637bfa496 100644 --- a/examples/api/src-tauri/capabilities/base.json +++ b/examples/api/src-tauri/capabilities/base.json @@ -16,7 +16,6 @@ }, "core:default", "core:app:allow-set-app-theme", - "fs:default", "core:window:allow-minimize", "core:window:allow-toggle-maximize", "core:window:allow-close", @@ -58,17 +57,15 @@ "clipboard-manager:allow-write-text", "clipboard-manager:allow-read-image", "clipboard-manager:allow-write-image", + "fs:default", + "fs:read-meta", "fs:allow-open", "fs:allow-write", "fs:allow-read", "fs:allow-rename", "fs:allow-mkdir", "fs:allow-remove", - "fs:allow-stat", - "fs:allow-fstat", - "fs:allow-lstat", "fs:allow-write-text-file", - "fs:read-meta", "fs:scope-download-recursive", "fs:scope-resource-recursive", { diff --git a/examples/api/src-tauri/capabilities/desktop.json b/examples/api/src-tauri/capabilities/desktop.json index 82d8354f5..2c6fcf8ad 100644 --- a/examples/api/src-tauri/capabilities/desktop.json +++ b/examples/api/src-tauri/capabilities/desktop.json @@ -10,7 +10,6 @@ "global-shortcut:allow-unregister", "global-shortcut:allow-register", "global-shortcut:allow-unregister-all", - { "identifier": "fs:allow-watch", "allow": ["*", "**/*"] }, - "fs:allow-unwatch" + { "identifier": "fs:allow-watch", "allow": ["*", "**/*"] } ] } diff --git a/plugins/fs/permissions/autogenerated/reference.md b/plugins/fs/permissions/autogenerated/reference.md index 8aa25d510..49589f094 100644 --- a/plugins/fs/permissions/autogenerated/reference.md +++ b/plugins/fs/permissions/autogenerated/reference.md @@ -22,7 +22,9 @@ the `mkdir` command. This default permission set prevents access to critical components of the Tauri application by default. -On Windows the webview data folder access is denied. + +- On Windows the access to webview data folder `$APPLOCALDATA/EBWebView` is denied. +- On Linux the access to webview data paths inside `$APPLOCALDATA` are denied. #### This default permission set includes the following: @@ -3701,8 +3703,19 @@ This denies access to dangerous Tauri relevant files and folders by default. -This denies read access to the -`$APPLOCALDATA` folder on linux as the webview data and configuration values are stored here. +This denies access to the following paths + +- `$APPLOCALDATA/CacheStorage/**` +- `$APPLOCALDATA/cookies` +- `$APPLOCALDATA/hsts-storage.sqlite` +- `$APPLOCALDATA/serviceworkers/**` +- `$APPLOCALDATA/WebKitCache/**` +- `$APPLOCALDATA/databases/**` +- `$APPLOCALDATA/localstorage/**` +- `$APPLOCALDATA/mediakeys/**` +- `$APPLOCALDATA/storage/**` + +on linux as the webview data and configuration values are stored here. Allowing access can lead to sensitive information disclosure and should be well considered. @@ -3716,7 +3729,7 @@ Allowing access can lead to sensitive information disclosure and should be well -This denies read access to the +This denies access to the `$APPLOCALDATA/EBWebView` folder on windows as the webview data and configuration values are stored here. Allowing access can lead to sensitive information disclosure and should be well considered. @@ -3745,7 +3758,7 @@ This enables all read related commands without any pre-configured accessible pat This permission allows recursive read functionality on the application -specific base directories. +specific base directories. diff --git a/plugins/fs/permissions/create-app-specific-dirs.toml b/plugins/fs/permissions/create-app-specific-dirs.toml index 7785cb13c..3c722937b 100644 --- a/plugins/fs/permissions/create-app-specific-dirs.toml +++ b/plugins/fs/permissions/create-app-specific-dirs.toml @@ -1,8 +1,8 @@ "$schema" = "schemas/schema.json" -[[permission]] +[[set]] identifier = "create-app-specific-dirs" description = """ This permissions allows to create the application specific directories. """ -commands.allow = ["mkdir", "scope-app-index"] +permissions = ["allow-mkdir", "scope-app-index"] diff --git a/plugins/fs/permissions/default.toml b/plugins/fs/permissions/default.toml index 78836df71..2afcc7d0e 100644 --- a/plugins/fs/permissions/default.toml +++ b/plugins/fs/permissions/default.toml @@ -24,7 +24,9 @@ the `mkdir` command. This default permission set prevents access to critical components of the Tauri application by default. -On Windows the webview data folder access is denied. + +- On Windows the access to webview data folder `$APPLOCALDATA/EBWebView` is denied. +- On Linux the access to webview data paths inside `$APPLOCALDATA` are denied. """ permissions = [ "create-app-specific-dirs", diff --git a/plugins/fs/permissions/deny-webview-data.toml b/plugins/fs/permissions/deny-webview-data.toml index 3636ac6d4..eec5991c1 100644 --- a/plugins/fs/permissions/deny-webview-data.toml +++ b/plugins/fs/permissions/deny-webview-data.toml @@ -2,18 +2,47 @@ [[permission]] identifier = "deny-webview-data-linux" -description = """This denies read access to the -`$APPLOCALDATA` folder on linux as the webview data and configuration values are stored here. +description = """This denies access to the following paths + +- `$APPLOCALDATA/CacheStorage/**` +- `$APPLOCALDATA/cookies` +- `$APPLOCALDATA/hsts-storage.sqlite` +- `$APPLOCALDATA/serviceworkers/**` +- `$APPLOCALDATA/WebKitCache/**` +- `$APPLOCALDATA/databases/**` +- `$APPLOCALDATA/localstorage/**` +- `$APPLOCALDATA/mediakeys/**` +- `$APPLOCALDATA/storage/**` + +on linux as the webview data and configuration values are stored here. Allowing access can lead to sensitive information disclosure and should be well considered.""" +platforms = ["linux"] [[permission.scope.deny]] -path = "$APPLOCALDATA/**" +path = "$APPLOCALDATA/CacheStorage/**" +[[permission.scope.deny]] +path = "$APPLOCALDATA/cookies" +[[permission.scope.deny]] +path = "$APPLOCALDATA/hsts-storage.sqlite" +[[permission.scope.deny]] +path = "$APPLOCALDATA/serviceworkers/**" +[[permission.scope.deny]] +path = "$APPLOCALDATA/WebKitCache/**" +[[permission.scope.deny]] +path = "$APPLOCALDATA/databases/**" +[[permission.scope.deny]] +path = "$APPLOCALDATA/localstorage/**" +[[permission.scope.deny]] +path = "$APPLOCALDATA/mediakeys/**" +[[permission.scope.deny]] +path = "$APPLOCALDATA/storage/**" [[permission]] identifier = "deny-webview-data-windows" -description = """This denies read access to the +description = """This denies access to the `$APPLOCALDATA/EBWebView` folder on windows as the webview data and configuration values are stored here. Allowing access can lead to sensitive information disclosure and should be well considered.""" +platforms = ["windows"] [[permission.scope.deny]] path = "$APPLOCALDATA/EBWebView/**" diff --git a/plugins/fs/permissions/read-app-specific-dirs-recursive.toml b/plugins/fs/permissions/read-app-specific-dirs-recursive.toml index 5342dbc0b..8da8c1d4a 100644 --- a/plugins/fs/permissions/read-app-specific-dirs-recursive.toml +++ b/plugins/fs/permissions/read-app-specific-dirs-recursive.toml @@ -1,17 +1,17 @@ "$schema" = "schemas/schema.json" -[[permission]] +[[set]] identifier = "read-app-specific-dirs-recursive" description = """ This permission allows recursive read functionality on the application -specific base directories. +specific base directories. """ -commands.allow = [ - "read_dir", - "read_file", - "read_text_file", - "read_text_file_lines", - "read_text_file_lines_next", - "exists", +permissions = [ + "allow-read-dir", + "allow-read-file", + "allow-read-text-file", + "allow-read-text-file-lines", + "allow-read-text-file-lines-next", + "allow-exists", "scope-app-recursive", ] diff --git a/plugins/fs/permissions/schemas/schema.json b/plugins/fs/permissions/schemas/schema.json index 39db5e9c8..c274b7c99 100644 --- a/plugins/fs/permissions/schemas/schema.json +++ b/plugins/fs/permissions/schemas/schema.json @@ -1969,16 +1969,16 @@ "markdownDescription": "Denies the write_text_file command without any pre-configured scope." }, { - "description": "This permissions allows to create the application specific directories.\n", + "description": "This permissions allows to create the application specific directories.\n\n#### This permission set includes:\n\n- `allow-mkdir`\n- `scope-app-index`", "type": "string", "const": "create-app-specific-dirs", - "markdownDescription": "This permissions allows to create the application specific directories.\n" + "markdownDescription": "This permissions allows to create the application specific directories.\n\n#### This permission set includes:\n\n- `allow-mkdir`\n- `scope-app-index`" }, { - "description": "This set of permissions describes the what kind of\nfile system access the `fs` plugin has enabled or denied by default.\n\n#### Granted Permissions\n\nThis default permission set enables read access to the\napplication specific directories (AppConfig, AppData, AppLocalData, AppCache,\nAppLog) and all files and sub directories created in it.\nThe location of these directories depends on the operating system,\nwhere the application is run.\n\nIn general these directories need to be manually created\nby the application at runtime, before accessing files or folders\nin it is possible.\n\nTherefore, it is also allowed to create all of these folders via\nthe `mkdir` command.\n\n#### Denied Permissions\n\nThis default permission set prevents access to critical components\nof the Tauri application by default.\nOn Windows the webview data folder access is denied.\n\n#### This default permission set includes:\n\n- `create-app-specific-dirs`\n- `read-app-specific-dirs-recursive`\n- `deny-default`", + "description": "This set of permissions describes the what kind of\nfile system access the `fs` plugin has enabled or denied by default.\n\n#### Granted Permissions\n\nThis default permission set enables read access to the\napplication specific directories (AppConfig, AppData, AppLocalData, AppCache,\nAppLog) and all files and sub directories created in it.\nThe location of these directories depends on the operating system,\nwhere the application is run.\n\nIn general these directories need to be manually created\nby the application at runtime, before accessing files or folders\nin it is possible.\n\nTherefore, it is also allowed to create all of these folders via\nthe `mkdir` command.\n\n#### Denied Permissions\n\nThis default permission set prevents access to critical components\nof the Tauri application by default.\n\n- On Windows the access to webview data folder `$APPLOCALDATA/EBWebView` is denied.\n- On Linux the access to webview data paths inside `$APPLOCALDATA` are denied.\n\n#### This default permission set includes:\n\n- `create-app-specific-dirs`\n- `read-app-specific-dirs-recursive`\n- `deny-default`", "type": "string", "const": "default", - "markdownDescription": "This set of permissions describes the what kind of\nfile system access the `fs` plugin has enabled or denied by default.\n\n#### Granted Permissions\n\nThis default permission set enables read access to the\napplication specific directories (AppConfig, AppData, AppLocalData, AppCache,\nAppLog) and all files and sub directories created in it.\nThe location of these directories depends on the operating system,\nwhere the application is run.\n\nIn general these directories need to be manually created\nby the application at runtime, before accessing files or folders\nin it is possible.\n\nTherefore, it is also allowed to create all of these folders via\nthe `mkdir` command.\n\n#### Denied Permissions\n\nThis default permission set prevents access to critical components\nof the Tauri application by default.\nOn Windows the webview data folder access is denied.\n\n#### This default permission set includes:\n\n- `create-app-specific-dirs`\n- `read-app-specific-dirs-recursive`\n- `deny-default`" + "markdownDescription": "This set of permissions describes the what kind of\nfile system access the `fs` plugin has enabled or denied by default.\n\n#### Granted Permissions\n\nThis default permission set enables read access to the\napplication specific directories (AppConfig, AppData, AppLocalData, AppCache,\nAppLog) and all files and sub directories created in it.\nThe location of these directories depends on the operating system,\nwhere the application is run.\n\nIn general these directories need to be manually created\nby the application at runtime, before accessing files or folders\nin it is possible.\n\nTherefore, it is also allowed to create all of these folders via\nthe `mkdir` command.\n\n#### Denied Permissions\n\nThis default permission set prevents access to critical components\nof the Tauri application by default.\n\n- On Windows the access to webview data folder `$APPLOCALDATA/EBWebView` is denied.\n- On Linux the access to webview data paths inside `$APPLOCALDATA` are denied.\n\n#### This default permission set includes:\n\n- `create-app-specific-dirs`\n- `read-app-specific-dirs-recursive`\n- `deny-default`" }, { "description": "This denies access to dangerous Tauri relevant files and folders by default.\n#### This permission set includes:\n\n- `deny-webview-data-linux`\n- `deny-webview-data-windows`", @@ -1987,16 +1987,16 @@ "markdownDescription": "This denies access to dangerous Tauri relevant files and folders by default.\n#### This permission set includes:\n\n- `deny-webview-data-linux`\n- `deny-webview-data-windows`" }, { - "description": "This denies read access to the\n`$APPLOCALDATA` folder on linux as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.", + "description": "This denies access to the following paths\n\n- `$APPLOCALDATA/CacheStorage/**`\n- `$APPLOCALDATA/cookies`\n- `$APPLOCALDATA/hsts-storage.sqlite`\n- `$APPLOCALDATA/serviceworkers/**`\n- `$APPLOCALDATA/WebKitCache/**`\n- `$APPLOCALDATA/databases/**`\n- `$APPLOCALDATA/localstorage/**`\n- `$APPLOCALDATA/mediakeys/**`\n- `$APPLOCALDATA/storage/**`\n\non linux as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.", "type": "string", "const": "deny-webview-data-linux", - "markdownDescription": "This denies read access to the\n`$APPLOCALDATA` folder on linux as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered." + "markdownDescription": "This denies access to the following paths\n\n- `$APPLOCALDATA/CacheStorage/**`\n- `$APPLOCALDATA/cookies`\n- `$APPLOCALDATA/hsts-storage.sqlite`\n- `$APPLOCALDATA/serviceworkers/**`\n- `$APPLOCALDATA/WebKitCache/**`\n- `$APPLOCALDATA/databases/**`\n- `$APPLOCALDATA/localstorage/**`\n- `$APPLOCALDATA/mediakeys/**`\n- `$APPLOCALDATA/storage/**`\n\non linux as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered." }, { - "description": "This denies read access to the\n`$APPLOCALDATA/EBWebView` folder on windows as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.", + "description": "This denies access to the\n`$APPLOCALDATA/EBWebView` folder on windows as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered.", "type": "string", "const": "deny-webview-data-windows", - "markdownDescription": "This denies read access to the\n`$APPLOCALDATA/EBWebView` folder on windows as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered." + "markdownDescription": "This denies access to the\n`$APPLOCALDATA/EBWebView` folder on windows as the webview data and configuration values are stored here.\nAllowing access can lead to sensitive information disclosure and should be well considered." }, { "description": "This enables all read related commands without any pre-configured accessible paths.", @@ -2005,10 +2005,10 @@ "markdownDescription": "This enables all read related commands without any pre-configured accessible paths." }, { - "description": "This permission allows recursive read functionality on the application\nspecific base directories. \n", + "description": "This permission allows recursive read functionality on the application\nspecific base directories.\n\n#### This permission set includes:\n\n- `allow-read-dir`\n- `allow-read-file`\n- `allow-read-text-file`\n- `allow-read-text-file-lines`\n- `allow-read-text-file-lines-next`\n- `allow-exists`\n- `scope-app-recursive`", "type": "string", "const": "read-app-specific-dirs-recursive", - "markdownDescription": "This permission allows recursive read functionality on the application\nspecific base directories. \n" + "markdownDescription": "This permission allows recursive read functionality on the application\nspecific base directories.\n\n#### This permission set includes:\n\n- `allow-read-dir`\n- `allow-read-file`\n- `allow-read-text-file`\n- `allow-read-text-file-lines`\n- `allow-read-text-file-lines-next`\n- `allow-exists`\n- `scope-app-recursive`" }, { "description": "This enables directory read and file metadata related commands without any pre-configured accessible paths.", From 9c9343772b8feb8d63c84cd6e0d36164b33415c3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 10 Aug 2026 16:15:04 +0800 Subject: [PATCH 29/41] chore(deps): update dependency typescript-eslint to v8.66.0 (#3391) * chore(deps): update dependency typescript-eslint to v8.66.0 * bump nanoid for audit --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Tony --- package.json | 2 +- pnpm-lock.yaml | 158 ++++++++++++++++++++++++------------------------- 2 files changed, 80 insertions(+), 80 deletions(-) diff --git a/package.json b/package.json index 94e114109..5b12a6cfd 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "rollup": "4.62.2", "tslib": "2.8.1", "typescript": "6.0.3", - "typescript-eslint": "8.58.2" + "typescript-eslint": "8.66.0" }, "minimumReleaseAge": 4320, "packageManager": "pnpm@11.20.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cc7719f2f..30d39c0e5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -42,8 +42,8 @@ importers: specifier: 6.0.3 version: 6.0.3 typescript-eslint: - specifier: 8.58.2 - version: 8.58.2(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3) + specifier: 8.66.0 + version: 8.66.0(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3) examples/api: dependencies: @@ -109,7 +109,7 @@ importers: version: link:../../plugins/upload '@zerodevx/svelte-json-view': specifier: 2.0.0 - version: 2.0.0(svelte@5.55.7(@typescript-eslint/types@8.58.2)) + version: 2.0.0(svelte@5.55.7(@typescript-eslint/types@8.66.0)) devDependencies: '@iconify-json/codicon': specifier: ^1.2.49 @@ -119,7 +119,7 @@ importers: version: 1.2.2 '@sveltejs/vite-plugin-svelte': specifier: ^7.0.0 - version: 7.0.0(svelte@5.55.7(@typescript-eslint/types@8.58.2))(vite@8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.1)) + version: 7.0.0(svelte@5.55.7(@typescript-eslint/types@8.66.0))(vite@8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.1)) '@tauri-apps/cli': specifier: 2.11.4 version: 2.11.4 @@ -128,7 +128,7 @@ importers: version: 66.6.7 svelte: specifier: ^5.55.7 - version: 5.55.7(@typescript-eslint/types@8.58.2) + version: 5.55.7(@typescript-eslint/types@8.66.0) unocss: specifier: ^66.6.7 version: 66.6.7(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(vite@8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.1)) @@ -1141,63 +1141,63 @@ packages: '@types/trusted-types@2.0.7': resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} - '@typescript-eslint/eslint-plugin@8.58.2': - resolution: {integrity: sha512-aC2qc5thQahutKjP+cl8cgN9DWe3ZUqVko30CMSZHnFEHyhOYoZSzkGtAI2mcwZ38xeImDucI4dnqsHiOYuuCw==} + '@typescript-eslint/eslint-plugin@8.66.0': + resolution: {integrity: sha512-p088eaGrzYz1s+7cov0aMOCkNGTJlVxF4jgubf28c8L0Cv9Rloj8YBHnv4hXLq6IIEE1AsjNWavO+k+8kP2Y0A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.58.2 + '@typescript-eslint/parser': ^8.66.0 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/parser@8.58.2': - resolution: {integrity: sha512-/Zb/xaIDfxeJnvishjGdcR4jmr7S+bda8PKNhRGdljDM+elXhlvN0FyPSsMnLmJUrVG9aPO6dof80wjMawsASg==} + '@typescript-eslint/parser@8.66.0': + resolution: {integrity: sha512-X6ypGChaWYk6PBtUg2BwuTZEFFcHJAtGTVJ9/lCTOufhZ4i9fNolQNnktq+kkMCwMj7V8Svsq7+TxSDslmhE0g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/project-service@8.58.2': - resolution: {integrity: sha512-Cq6UfpZZk15+r87BkIh5rDpi38W4b+Sjnb8wQCPPDDweS/LRCFjCyViEbzHk5Ck3f2QDfgmlxqSa7S7clDtlfg==} + '@typescript-eslint/project-service@8.66.0': + resolution: {integrity: sha512-7MthGPTt4BP69lSryqpqq8HQqxuzynssckL/jyDyk3+TNMQ3y2jFWkptCrktWvBrP+EH787Nl5N5Qpw7WZg+5g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/scope-manager@8.58.2': - resolution: {integrity: sha512-SgmyvDPexWETQek+qzZnrG6844IaO02UVyOLhI4wpo82dpZJY9+6YZCKAMFzXb7qhx37mFK1QcPQ18tud+vo6Q==} + '@typescript-eslint/scope-manager@8.66.0': + resolution: {integrity: sha512-8TGcH25j9zqJ/IULB/ppyhRvxA8QYfFEZ7nfbg6/BN9spDgb8fPWQXlE5l8TWBL50EtUx007uZ1o9VOwrq2/9g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.58.2': - resolution: {integrity: sha512-3SR+RukipDvkkKp/d0jP0dyzuls3DbGmwDpVEc5wqk5f38KFThakqAAO0XMirWAE+kT00oTauTbzMFGPoAzB0A==} + '@typescript-eslint/tsconfig-utils@8.66.0': + resolution: {integrity: sha512-9D5gLYZG4rOjcoag8MQ/fWI8WqA9wcPDyOGyWtWFhvM1lHRbliqUSPIY5J3zqCU1tvSwzXxnnjhQhz5Ne7mJ4g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/type-utils@8.58.2': - resolution: {integrity: sha512-Z7EloNR/B389FvabdGeTo2XMs4W9TjtPiO9DAsmT0yom0bwlPyRjkJ1uCdW1DvrrrYP50AJZ9Xc3sByZA9+dcg==} + '@typescript-eslint/type-utils@8.66.0': + resolution: {integrity: sha512-LG2dWfjZQQp0ADtAu/EWJVayefGL2UEZ3CDeI44D9v3rXB/WYUqE/jpO28KrEKul5AySrmI+Zh1v6v+xW2U9+g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/types@8.58.2': - resolution: {integrity: sha512-9TukXyATBQf/Jq9AMQXfvurk+G5R2MwfqQGDR2GzGz28HvY/lXNKGhkY+6IOubwcquikWk5cjlgPvD2uAA7htQ==} + '@typescript-eslint/types@8.66.0': + resolution: {integrity: sha512-H6gcYaSDOyvL3AD/jHUtUFo2jqGgn/F6nuyuZSu0QTesxL+cP4dQoIMrODRofuJC09g64+WgZ6tE19Y1N2YIFQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.58.2': - resolution: {integrity: sha512-ELGuoofuhhoCvNbQjFFiobFcGgcDCEm0ThWdmO4Z0UzLqPXS3KFvnEZ+SHewwOYHjM09tkzOWXNTv9u6Gqtyuw==} + '@typescript-eslint/typescript-estree@8.66.0': + resolution: {integrity: sha512-8/x4INiiQb10jGgXYD7116/zQ+OL84ZIFn0za68wwFHCanT/VLbBEroWht8RV8fn0/ZCAoazHLQgwUC0UQcDfg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/utils@8.58.2': - resolution: {integrity: sha512-QZfjHNEzPY8+l0+fIXMvuQ2sJlplB4zgDZvA+NmvZsZv3EQwOcc1DuIU1VJUTWZ/RKouBMhDyNaBMx4sWvrzRA==} + '@typescript-eslint/utils@8.66.0': + resolution: {integrity: sha512-jasearZPolBw5NJNYGMwxzHMF83niVWmMU1VdHzG1CyfI2VS7f7nZltnKtHcg20hW+7Uo5GfK4MeDPoU3qI8EA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/visitor-keys@8.58.2': - resolution: {integrity: sha512-f1WO2Lx8a9t8DARmcWAUPJbu0G20bJlj8L4z72K00TMeJAoyLr/tHhI/pzYBLrR4dXWkcxO1cWYZEOX8DKHTqA==} + '@typescript-eslint/visitor-keys@8.66.0': + resolution: {integrity: sha512-dkKR8q+lKciskj1Y3vthHktl+3cMLWGyVUP23bRiPZ5O9BRT++4EqDDV+TVeIKBL1VXVEqrJlz8MYbcnvJcAlg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@unocss/cli@66.6.7': @@ -1665,8 +1665,8 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - nanoid@3.3.16: - resolution: {integrity: sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==} + nanoid@3.3.18: + resolution: {integrity: sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true @@ -1861,8 +1861,8 @@ packages: type-level-regexp@0.1.17: resolution: {integrity: sha512-wTk4DH3cxwk196uGLK/E9pE45aLfeKJacKmcEgEOA/q5dnPGNxXt0cfYdFxb57L+sEpf1oJH4Dnx/pnRcku9jg==} - typescript-eslint@8.58.2: - resolution: {integrity: sha512-V8iSng9mRbdZjl54VJ9NKr6ZB+dW0J3TzRXRGcSbLIej9jV86ZRtlYeTKDR/QLxXykocJ5icNzbsl2+5TzIvcQ==} + typescript-eslint@8.66.0: + resolution: {integrity: sha512-QlEbBPz/RuJ1XUHj29nm3t0F/O/cSlEnntozqPOYHnnTGAXFamnMBu5i9Vn6vhUPHGAjR+Vl+5J8vPN/BMUrJw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -2411,12 +2411,12 @@ snapshots: dependencies: acorn: 8.16.0 - '@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.7(@typescript-eslint/types@8.58.2))(vite@8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.1))': + '@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.7(@typescript-eslint/types@8.66.0))(vite@8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.1))': dependencies: deepmerge: 4.3.1 magic-string: 0.30.21 obug: 2.1.1 - svelte: 5.55.7(@typescript-eslint/types@8.58.2) + svelte: 5.55.7(@typescript-eslint/types@8.66.0) vite: 8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.1) vitefu: 1.1.2(vite@8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.1)) @@ -2484,14 +2484,14 @@ snapshots: '@types/trusted-types@2.0.7': {} - '@typescript-eslint/eslint-plugin@8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3))(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3)': + '@typescript-eslint/eslint-plugin@8.66.0(@typescript-eslint/parser@8.66.0(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3))(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.58.2(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3) - '@typescript-eslint/scope-manager': 8.58.2 - '@typescript-eslint/type-utils': 8.58.2(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3) - '@typescript-eslint/utils': 8.58.2(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3) - '@typescript-eslint/visitor-keys': 8.58.2 + '@typescript-eslint/parser': 8.66.0(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3) + '@typescript-eslint/scope-manager': 8.66.0 + '@typescript-eslint/type-utils': 8.66.0(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3) + '@typescript-eslint/utils': 8.66.0(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3) + '@typescript-eslint/visitor-keys': 8.66.0 eslint: 10.4.0(jiti@2.6.1) ignore: 7.0.5 natural-compare: 1.4.0 @@ -2500,41 +2500,41 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.58.2(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3)': + '@typescript-eslint/parser@8.66.0(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3)': dependencies: - '@typescript-eslint/scope-manager': 8.58.2 - '@typescript-eslint/types': 8.58.2 - '@typescript-eslint/typescript-estree': 8.58.2(typescript@6.0.3) - '@typescript-eslint/visitor-keys': 8.58.2 + '@typescript-eslint/scope-manager': 8.66.0 + '@typescript-eslint/types': 8.66.0 + '@typescript-eslint/typescript-estree': 8.66.0(typescript@6.0.3) + '@typescript-eslint/visitor-keys': 8.66.0 debug: 4.4.3 eslint: 10.4.0(jiti@2.6.1) typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.58.2(typescript@6.0.3)': + '@typescript-eslint/project-service@8.66.0(typescript@6.0.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.58.2(typescript@6.0.3) - '@typescript-eslint/types': 8.58.2 + '@typescript-eslint/tsconfig-utils': 8.66.0(typescript@6.0.3) + '@typescript-eslint/types': 8.66.0 debug: 4.4.3 typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.58.2': + '@typescript-eslint/scope-manager@8.66.0': dependencies: - '@typescript-eslint/types': 8.58.2 - '@typescript-eslint/visitor-keys': 8.58.2 + '@typescript-eslint/types': 8.66.0 + '@typescript-eslint/visitor-keys': 8.66.0 - '@typescript-eslint/tsconfig-utils@8.58.2(typescript@6.0.3)': + '@typescript-eslint/tsconfig-utils@8.66.0(typescript@6.0.3)': dependencies: typescript: 6.0.3 - '@typescript-eslint/type-utils@8.58.2(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3)': + '@typescript-eslint/type-utils@8.66.0(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3)': dependencies: - '@typescript-eslint/types': 8.58.2 - '@typescript-eslint/typescript-estree': 8.58.2(typescript@6.0.3) - '@typescript-eslint/utils': 8.58.2(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3) + '@typescript-eslint/types': 8.66.0 + '@typescript-eslint/typescript-estree': 8.66.0(typescript@6.0.3) + '@typescript-eslint/utils': 8.66.0(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3) debug: 4.4.3 eslint: 10.4.0(jiti@2.6.1) ts-api-utils: 2.5.0(typescript@6.0.3) @@ -2542,14 +2542,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.58.2': {} + '@typescript-eslint/types@8.66.0': {} - '@typescript-eslint/typescript-estree@8.58.2(typescript@6.0.3)': + '@typescript-eslint/typescript-estree@8.66.0(typescript@6.0.3)': dependencies: - '@typescript-eslint/project-service': 8.58.2(typescript@6.0.3) - '@typescript-eslint/tsconfig-utils': 8.58.2(typescript@6.0.3) - '@typescript-eslint/types': 8.58.2 - '@typescript-eslint/visitor-keys': 8.58.2 + '@typescript-eslint/project-service': 8.66.0(typescript@6.0.3) + '@typescript-eslint/tsconfig-utils': 8.66.0(typescript@6.0.3) + '@typescript-eslint/types': 8.66.0 + '@typescript-eslint/visitor-keys': 8.66.0 debug: 4.4.3 minimatch: 10.2.4 semver: 7.7.4 @@ -2559,20 +2559,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.58.2(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3)': + '@typescript-eslint/utils@8.66.0(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.0(jiti@2.6.1)) - '@typescript-eslint/scope-manager': 8.58.2 - '@typescript-eslint/types': 8.58.2 - '@typescript-eslint/typescript-estree': 8.58.2(typescript@6.0.3) + '@typescript-eslint/scope-manager': 8.66.0 + '@typescript-eslint/types': 8.66.0 + '@typescript-eslint/typescript-estree': 8.66.0(typescript@6.0.3) eslint: 10.4.0(jiti@2.6.1) typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.58.2': + '@typescript-eslint/visitor-keys@8.66.0': dependencies: - '@typescript-eslint/types': 8.58.2 + '@typescript-eslint/types': 8.66.0 eslint-visitor-keys: 5.0.1 '@unocss/cli@66.6.7': @@ -2709,9 +2709,9 @@ snapshots: unplugin-utils: 0.3.1 vite: 8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.1) - '@zerodevx/svelte-json-view@2.0.0(svelte@5.55.7(@typescript-eslint/types@8.58.2))': + '@zerodevx/svelte-json-view@2.0.0(svelte@5.55.7(@typescript-eslint/types@8.66.0))': optionalDependencies: - svelte: 5.55.7(@typescript-eslint/types@8.58.2) + svelte: 5.55.7(@typescript-eslint/types@8.66.0) acorn-jsx@5.3.2(acorn@8.16.0): dependencies: @@ -2883,11 +2883,11 @@ snapshots: dependencies: estraverse: 5.3.0 - esrap@2.2.8(@typescript-eslint/types@8.58.2): + esrap@2.2.8(@typescript-eslint/types@8.66.0): dependencies: '@jridgewell/sourcemap-codec': 1.5.5 optionalDependencies: - '@typescript-eslint/types': 8.58.2 + '@typescript-eslint/types': 8.66.0 esrecurse@4.3.0: dependencies: @@ -3073,7 +3073,7 @@ snapshots: ms@2.1.3: {} - nanoid@3.3.16: {} + nanoid@3.3.18: {} natural-compare@1.4.0: {} @@ -3161,7 +3161,7 @@ snapshots: postcss@8.5.23: dependencies: - nanoid: 3.3.16 + nanoid: 3.3.18 picocolors: 1.1.1 source-map-js: 1.2.1 @@ -3268,7 +3268,7 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte@5.55.7(@typescript-eslint/types@8.58.2): + svelte@5.55.7(@typescript-eslint/types@8.66.0): dependencies: '@jridgewell/remapping': 2.3.5 '@jridgewell/sourcemap-codec': 1.5.5 @@ -3281,7 +3281,7 @@ snapshots: clsx: 2.1.1 devalue: 5.8.1 esm-env: 1.2.2 - esrap: 2.2.8(@typescript-eslint/types@8.58.2) + esrap: 2.2.8(@typescript-eslint/types@8.66.0) is-reference: 3.0.3 locate-character: 3.0.0 magic-string: 0.30.21 @@ -3324,12 +3324,12 @@ snapshots: type-level-regexp@0.1.17: {} - typescript-eslint@8.58.2(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3): + typescript-eslint@8.66.0(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3))(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3) - '@typescript-eslint/parser': 8.58.2(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3) - '@typescript-eslint/typescript-estree': 8.58.2(typescript@6.0.3) - '@typescript-eslint/utils': 8.58.2(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3) + '@typescript-eslint/eslint-plugin': 8.66.0(@typescript-eslint/parser@8.66.0(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3))(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3) + '@typescript-eslint/parser': 8.66.0(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 8.66.0(typescript@6.0.3) + '@typescript-eslint/utils': 8.66.0(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3) eslint: 10.4.0(jiti@2.6.1) typescript: 6.0.3 transitivePeerDependencies: From db9c5998feff9384f9cbbefcbe0d45937c00a1fc Mon Sep 17 00:00:00 2001 From: Tony <68118705+Legend-Master@users.noreply.github.com> Date: Thu, 13 Aug 2026 17:44:29 +0800 Subject: [PATCH 30/41] fix(android): missing `consumer-rules.pro` (#3531) * fix(android): missing `consumer-rules.pro` * setup android test * copy right too new * build api first * we're still on gradle 8 right now... * restore the right host on mac --- .changes/android-consumer-rules.md | 28 +++++++ .github/workflows/test-android.yml | 76 +++++++++++++++++++ .../barcode-scanner/android/build.gradle.kts | 9 --- ...{proguard-rules.pro => consumer-rules.pro} | 0 plugins/biometric/android/build.gradle.kts | 9 --- ...{proguard-rules.pro => consumer-rules.pro} | 0 .../android/build.gradle.kts | 9 --- ...{proguard-rules.pro => consumer-rules.pro} | 0 plugins/deep-link/android/build.gradle.kts | 9 --- ...{proguard-rules.pro => consumer-rules.pro} | 0 plugins/dialog/android/build.gradle.kts | 9 --- ...{proguard-rules.pro => consumer-rules.pro} | 0 plugins/fs/android/build.gradle.kts | 10 +-- ...{proguard-rules.pro => consumer-rules.pro} | 0 plugins/geolocation/android/build.gradle.kts | 9 --- ...{proguard-rules.pro => consumer-rules.pro} | 0 plugins/haptics/android/build.gradle.kts | 9 --- ...{proguard-rules.pro => consumer-rules.pro} | 0 plugins/nfc/android/build.gradle.kts | 9 --- ...{proguard-rules.pro => consumer-rules.pro} | 0 plugins/notification/android/build.gradle.kts | 9 --- ...{proguard-rules.pro => consumer-rules.pro} | 0 plugins/opener/android/build.gradle.kts | 9 --- ...{proguard-rules.pro => consumer-rules.pro} | 0 plugins/shell/android/build.gradle.kts | 9 --- ...{proguard-rules.pro => consumer-rules.pro} | 0 shared/template/android/build.gradle.kts | 9 --- ...{proguard-rules.pro => consumer-rules.pro} | 0 28 files changed, 105 insertions(+), 117 deletions(-) create mode 100644 .changes/android-consumer-rules.md create mode 100644 .github/workflows/test-android.yml rename plugins/barcode-scanner/android/{proguard-rules.pro => consumer-rules.pro} (100%) rename plugins/biometric/android/{proguard-rules.pro => consumer-rules.pro} (100%) rename plugins/clipboard-manager/android/{proguard-rules.pro => consumer-rules.pro} (100%) rename plugins/deep-link/android/{proguard-rules.pro => consumer-rules.pro} (100%) rename plugins/dialog/android/{proguard-rules.pro => consumer-rules.pro} (100%) rename plugins/fs/android/{proguard-rules.pro => consumer-rules.pro} (100%) rename plugins/geolocation/android/{proguard-rules.pro => consumer-rules.pro} (100%) rename plugins/haptics/android/{proguard-rules.pro => consumer-rules.pro} (100%) rename plugins/nfc/android/{proguard-rules.pro => consumer-rules.pro} (100%) rename plugins/notification/android/{proguard-rules.pro => consumer-rules.pro} (100%) rename plugins/opener/android/{proguard-rules.pro => consumer-rules.pro} (100%) rename plugins/shell/android/{proguard-rules.pro => consumer-rules.pro} (100%) rename shared/template/android/{proguard-rules.pro => consumer-rules.pro} (100%) diff --git a/.changes/android-consumer-rules.md b/.changes/android-consumer-rules.md new file mode 100644 index 000000000..1c4361b79 --- /dev/null +++ b/.changes/android-consumer-rules.md @@ -0,0 +1,28 @@ +--- +"barcode-scanner": patch +"barcode-scanner-js": patch +"biometric": patch +"biometric-js": patch +"clipboard-manager": patch +"clipboard-manager-js": patch +"deep-link": patch +"deep-link-js": patch +"dialog": patch +"dialog-js": patch +"fs": patch +"fs-js": patch +"geolocation": patch +"geolocation-js": patch +"haptics": patch +"haptics-js": patch +"nfc": patch +"nfc-js": patch +"notification": patch +"notification-js": patch +"opener": patch +"opener-js": patch +"shell": patch +"shell-js": patch +--- + +Fix missing `consumer-rules.pro` on Gradle v9. diff --git a/.github/workflows/test-android.yml b/.github/workflows/test-android.yml new file mode 100644 index 000000000..2c0f3f4f0 --- /dev/null +++ b/.github/workflows/test-android.yml @@ -0,0 +1,76 @@ +# Copyright 2019-2023 Tauri Programme within The Commons Conservancy +# SPDX-License-Identifier: Apache-2.0 +# SPDX-License-Identifier: MIT + +name: test android + +on: + pull_request: + paths: + - '.github/workflows/test-android.yml' + - '**/android/**' + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + test: + runs-on: ${{ matrix.platform }} + + strategy: + fail-fast: false + matrix: + platform: [ubuntu-latest, macos-latest, windows-latest] + + steps: + - uses: actions/checkout@v7 + + - uses: dtolnay/rust-toolchain@1.77.2 + + - uses: actions/setup-node@v7 + with: + node-version: 'lts/*' + + - uses: pnpm/action-setup@v6 + with: + run_install: true + + - uses: actions/setup-java@v5 + with: + distribution: temurin + java-version: 21 + cache: gradle + + - name: Setup NDK + uses: nttld/setup-ndk@v1 + id: setup-ndk + with: + ndk-version: r25 + local-cache: true + + # TODO check after https://github.com/nttld/setup-ndk/issues/518 is fixed + - name: Restore Android Symlinks + if: matrix.platform == 'ubuntu-latest' || matrix.platform == 'macos-latest' + env: + NDK_HOST: ${{ matrix.platform == 'ubuntu-latest' && 'linux-x86_64' || 'darwin-x86_64' }} + run: | + directory="${{ steps.setup-ndk.outputs.ndk-path }}/toolchains/llvm/prebuilt/$NDK_HOST/bin" + find "$directory" -type l | while read link; do + current_target=$(readlink "$link") + new_target="$directory/$(basename "$current_target")" + ln -sf "$new_target" "$link" + echo "Changed $(basename "$link") from $current_target to $new_target" + done + + - uses: Swatinem/rust-cache@v2 + + - name: build API + run: pnpm build + + - name: build APK + working-directory: ./examples/api + run: pnpm tauri android build + env: + NDK_HOME: ${{ steps.setup-ndk.outputs.ndk-path }} diff --git a/plugins/barcode-scanner/android/build.gradle.kts b/plugins/barcode-scanner/android/build.gradle.kts index 5526a7b78..b3f32c0c6 100644 --- a/plugins/barcode-scanner/android/build.gradle.kts +++ b/plugins/barcode-scanner/android/build.gradle.kts @@ -14,15 +14,6 @@ android { consumerProguardFiles("consumer-rules.pro") } - buildTypes { - release { - isMinifyEnabled = false - proguardFiles( - getDefaultProguardFile("proguard-android-optimize.txt"), - "proguard-rules.pro" - ) - } - } compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 diff --git a/plugins/barcode-scanner/android/proguard-rules.pro b/plugins/barcode-scanner/android/consumer-rules.pro similarity index 100% rename from plugins/barcode-scanner/android/proguard-rules.pro rename to plugins/barcode-scanner/android/consumer-rules.pro diff --git a/plugins/biometric/android/build.gradle.kts b/plugins/biometric/android/build.gradle.kts index 7f78b4a94..86ecccfff 100644 --- a/plugins/biometric/android/build.gradle.kts +++ b/plugins/biometric/android/build.gradle.kts @@ -14,15 +14,6 @@ android { consumerProguardFiles("consumer-rules.pro") } - buildTypes { - release { - isMinifyEnabled = false - proguardFiles( - getDefaultProguardFile("proguard-android-optimize.txt"), - "proguard-rules.pro" - ) - } - } compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 diff --git a/plugins/biometric/android/proguard-rules.pro b/plugins/biometric/android/consumer-rules.pro similarity index 100% rename from plugins/biometric/android/proguard-rules.pro rename to plugins/biometric/android/consumer-rules.pro diff --git a/plugins/clipboard-manager/android/build.gradle.kts b/plugins/clipboard-manager/android/build.gradle.kts index cb47a9d38..e3640d3f9 100644 --- a/plugins/clipboard-manager/android/build.gradle.kts +++ b/plugins/clipboard-manager/android/build.gradle.kts @@ -14,15 +14,6 @@ android { consumerProguardFiles("consumer-rules.pro") } - buildTypes { - release { - isMinifyEnabled = false - proguardFiles( - getDefaultProguardFile("proguard-android-optimize.txt"), - "proguard-rules.pro" - ) - } - } compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 diff --git a/plugins/clipboard-manager/android/proguard-rules.pro b/plugins/clipboard-manager/android/consumer-rules.pro similarity index 100% rename from plugins/clipboard-manager/android/proguard-rules.pro rename to plugins/clipboard-manager/android/consumer-rules.pro diff --git a/plugins/deep-link/android/build.gradle.kts b/plugins/deep-link/android/build.gradle.kts index 11021bfd6..e3d7a455f 100644 --- a/plugins/deep-link/android/build.gradle.kts +++ b/plugins/deep-link/android/build.gradle.kts @@ -14,15 +14,6 @@ android { consumerProguardFiles("consumer-rules.pro") } - buildTypes { - release { - isMinifyEnabled = false - proguardFiles( - getDefaultProguardFile("proguard-android-optimize.txt"), - "proguard-rules.pro" - ) - } - } compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 diff --git a/plugins/deep-link/android/proguard-rules.pro b/plugins/deep-link/android/consumer-rules.pro similarity index 100% rename from plugins/deep-link/android/proguard-rules.pro rename to plugins/deep-link/android/consumer-rules.pro diff --git a/plugins/dialog/android/build.gradle.kts b/plugins/dialog/android/build.gradle.kts index 8913dfcf7..96abbf572 100644 --- a/plugins/dialog/android/build.gradle.kts +++ b/plugins/dialog/android/build.gradle.kts @@ -14,15 +14,6 @@ android { consumerProguardFiles("consumer-rules.pro") } - buildTypes { - release { - isMinifyEnabled = false - proguardFiles( - getDefaultProguardFile("proguard-android-optimize.txt"), - "proguard-rules.pro" - ) - } - } compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 diff --git a/plugins/dialog/android/proguard-rules.pro b/plugins/dialog/android/consumer-rules.pro similarity index 100% rename from plugins/dialog/android/proguard-rules.pro rename to plugins/dialog/android/consumer-rules.pro diff --git a/plugins/fs/android/build.gradle.kts b/plugins/fs/android/build.gradle.kts index 374ac0f64..b1b6af15d 100644 --- a/plugins/fs/android/build.gradle.kts +++ b/plugins/fs/android/build.gradle.kts @@ -14,15 +14,7 @@ android { consumerProguardFiles("consumer-rules.pro") } - buildTypes { - release { - isMinifyEnabled = false - proguardFiles( - getDefaultProguardFile("proguard-android-optimize.txt"), - "proguard-rules.pro" - ) - } - } + compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 diff --git a/plugins/fs/android/proguard-rules.pro b/plugins/fs/android/consumer-rules.pro similarity index 100% rename from plugins/fs/android/proguard-rules.pro rename to plugins/fs/android/consumer-rules.pro diff --git a/plugins/geolocation/android/build.gradle.kts b/plugins/geolocation/android/build.gradle.kts index 5bc7b3824..022f11d7b 100644 --- a/plugins/geolocation/android/build.gradle.kts +++ b/plugins/geolocation/android/build.gradle.kts @@ -14,15 +14,6 @@ android { consumerProguardFiles("consumer-rules.pro") } - buildTypes { - release { - isMinifyEnabled = false - proguardFiles( - getDefaultProguardFile("proguard-android-optimize.txt"), - "proguard-rules.pro" - ) - } - } compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 diff --git a/plugins/geolocation/android/proguard-rules.pro b/plugins/geolocation/android/consumer-rules.pro similarity index 100% rename from plugins/geolocation/android/proguard-rules.pro rename to plugins/geolocation/android/consumer-rules.pro diff --git a/plugins/haptics/android/build.gradle.kts b/plugins/haptics/android/build.gradle.kts index 88c2f82b9..a178826ae 100644 --- a/plugins/haptics/android/build.gradle.kts +++ b/plugins/haptics/android/build.gradle.kts @@ -14,15 +14,6 @@ android { consumerProguardFiles("consumer-rules.pro") } - buildTypes { - release { - isMinifyEnabled = false - proguardFiles( - getDefaultProguardFile("proguard-android-optimize.txt"), - "proguard-rules.pro" - ) - } - } compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 diff --git a/plugins/haptics/android/proguard-rules.pro b/plugins/haptics/android/consumer-rules.pro similarity index 100% rename from plugins/haptics/android/proguard-rules.pro rename to plugins/haptics/android/consumer-rules.pro diff --git a/plugins/nfc/android/build.gradle.kts b/plugins/nfc/android/build.gradle.kts index f5a5c2cac..bf691ef3d 100644 --- a/plugins/nfc/android/build.gradle.kts +++ b/plugins/nfc/android/build.gradle.kts @@ -14,15 +14,6 @@ android { consumerProguardFiles("consumer-rules.pro") } - buildTypes { - release { - isMinifyEnabled = false - proguardFiles( - getDefaultProguardFile("proguard-android-optimize.txt"), - "proguard-rules.pro" - ) - } - } compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 diff --git a/plugins/nfc/android/proguard-rules.pro b/plugins/nfc/android/consumer-rules.pro similarity index 100% rename from plugins/nfc/android/proguard-rules.pro rename to plugins/nfc/android/consumer-rules.pro diff --git a/plugins/notification/android/build.gradle.kts b/plugins/notification/android/build.gradle.kts index 31b654e34..f2b4cf679 100644 --- a/plugins/notification/android/build.gradle.kts +++ b/plugins/notification/android/build.gradle.kts @@ -14,15 +14,6 @@ android { consumerProguardFiles("consumer-rules.pro") } - buildTypes { - release { - isMinifyEnabled = false - proguardFiles( - getDefaultProguardFile("proguard-android-optimize.txt"), - "proguard-rules.pro" - ) - } - } compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 diff --git a/plugins/notification/android/proguard-rules.pro b/plugins/notification/android/consumer-rules.pro similarity index 100% rename from plugins/notification/android/proguard-rules.pro rename to plugins/notification/android/consumer-rules.pro diff --git a/plugins/opener/android/build.gradle.kts b/plugins/opener/android/build.gradle.kts index b6ea1bef2..9ed0957f1 100644 --- a/plugins/opener/android/build.gradle.kts +++ b/plugins/opener/android/build.gradle.kts @@ -14,15 +14,6 @@ android { consumerProguardFiles("consumer-rules.pro") } - buildTypes { - release { - isMinifyEnabled = false - proguardFiles( - getDefaultProguardFile("proguard-android-optimize.txt"), - "proguard-rules.pro" - ) - } - } compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 diff --git a/plugins/opener/android/proguard-rules.pro b/plugins/opener/android/consumer-rules.pro similarity index 100% rename from plugins/opener/android/proguard-rules.pro rename to plugins/opener/android/consumer-rules.pro diff --git a/plugins/shell/android/build.gradle.kts b/plugins/shell/android/build.gradle.kts index b8c6a2c9c..3f3ca0ea2 100644 --- a/plugins/shell/android/build.gradle.kts +++ b/plugins/shell/android/build.gradle.kts @@ -14,15 +14,6 @@ android { consumerProguardFiles("consumer-rules.pro") } - buildTypes { - release { - isMinifyEnabled = false - proguardFiles( - getDefaultProguardFile("proguard-android-optimize.txt"), - "proguard-rules.pro" - ) - } - } compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 diff --git a/plugins/shell/android/proguard-rules.pro b/plugins/shell/android/consumer-rules.pro similarity index 100% rename from plugins/shell/android/proguard-rules.pro rename to plugins/shell/android/consumer-rules.pro diff --git a/shared/template/android/build.gradle.kts b/shared/template/android/build.gradle.kts index dfa24588f..fd2f5e107 100644 --- a/shared/template/android/build.gradle.kts +++ b/shared/template/android/build.gradle.kts @@ -14,15 +14,6 @@ android { consumerProguardFiles("consumer-rules.pro") } - buildTypes { - release { - isMinifyEnabled = false - proguardFiles( - getDefaultProguardFile("proguard-android-optimize.txt"), - "proguard-rules.pro" - ) - } - } compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 diff --git a/shared/template/android/proguard-rules.pro b/shared/template/android/consumer-rules.pro similarity index 100% rename from shared/template/android/proguard-rules.pro rename to shared/template/android/consumer-rules.pro From c546de061656f37a6c2192f82eea0060c84460d0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 27 Aug 2026 14:04:52 +0200 Subject: [PATCH 31/41] chore(deps): update dependency rollup to v4.62.5 (#3520) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 247 ++++++++++++++++++++++++++----------------------- 2 files changed, 130 insertions(+), 119 deletions(-) diff --git a/package.json b/package.json index 5b12a6cfd..d962ef48b 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "eslint-config-prettier": "10.1.8", "eslint-plugin-security": "4.0.1", "prettier": "3.8.3", - "rollup": "4.62.2", + "rollup": "4.62.5", "tslib": "2.8.1", "typescript": "6.0.3", "typescript-eslint": "8.66.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 30d39c0e5..949320e10 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,13 +13,13 @@ importers: version: 10.0.1(eslint@10.4.0(jiti@2.6.1)) '@rollup/plugin-node-resolve': specifier: 16.0.3 - version: 16.0.3(rollup@4.62.2) + version: 16.0.3(rollup@4.62.5) '@rollup/plugin-terser': specifier: 1.0.0 - version: 1.0.0(rollup@4.62.2) + version: 1.0.0(rollup@4.62.5) '@rollup/plugin-typescript': specifier: 12.3.0 - version: 12.3.0(rollup@4.62.2)(tslib@2.8.1)(typescript@6.0.3) + version: 12.3.0(rollup@4.62.5)(tslib@2.8.1)(typescript@6.0.3) eslint: specifier: 10.4.0 version: 10.4.0(jiti@2.6.1) @@ -33,8 +33,8 @@ importers: specifier: 3.8.3 version: 3.8.3 rollup: - specifier: 4.62.2 - version: 4.62.2 + specifier: 4.62.5 + version: 4.62.5 tslib: specifier: 2.8.1 version: 2.8.1 @@ -611,6 +611,13 @@ packages: '@jridgewell/trace-mapping@0.3.31': resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + '@napi-rs/lzma-linux-x64-gnu@1.5.1': + resolution: {integrity: sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ==} + engines: {node: ^22.20 || ^24.12 || >=25} + cpu: [x64] + os: [linux] + libc: [glibc] + '@napi-rs/wasm-runtime@1.1.5': resolution: {integrity: sha512-AWPoBRJ9tsnVhor4sjO7rkni+7p+2IAEFj6cx06UgP10jkQHqay/36uRV/bFkgrh18D9vb4cr8Q0Pthskgzy+Q==} peerDependencies: @@ -894,141 +901,141 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.62.2': - resolution: {integrity: sha512-6o7ZLZK+BeenkZCFNDXqpbjw9bD6nuWonvS/lwQJp7NoVVxm6p3qE7qQ5jGuBjiFsgvqjD8mZAU5oWxTmbOeOg==} + '@rollup/rollup-android-arm-eabi@4.62.5': + resolution: {integrity: sha512-jfkGfTwhQpsiSckPF8r9bU3pn3vyd72NlWaO+TgEO6WPSDnUhXzrNYCHBMOYj0ACaUgjm6eERLF+XV9a6RstoA==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.62.2': - resolution: {integrity: sha512-BaH7BllCACHoH1LguOU56UItGfUWjujlO65kS9LAodViaN4bwIKd7oeW/ZHJ/4ljr/7MIiENnNy3HJ0zXv8Zkw==} + '@rollup/rollup-android-arm64@4.62.5': + resolution: {integrity: sha512-oGVqyQlxnrz9/ty89oHpU857VUHEl5/Xu4R2lS+aivCTrNnSsbiENzTnNaBsjxH0CNWGPhzHArOLFwo+oKXveA==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.62.2': - resolution: {integrity: sha512-v39RCCvj4He82I9sFmk+M1VZ0PLM9sfsLVikjfx2hYBNALhrrOR2D3JjQA6AhlaSOgcR+RzrKY7e1+bT6SUO/A==} + '@rollup/rollup-darwin-arm64@4.62.5': + resolution: {integrity: sha512-bW7B8xMEq8n99Q3ieEcPRGuphurdZAaFzQc9Efyyw3FL6DZO6pMy9xhdN+kBoD7Sy05xNXSr4OyPPnpkYriS/A==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.62.2': - resolution: {integrity: sha512-yl0y2vq3S3lHeuXhEdss6TWfKW8vkujImO12tn4ZkG/4oghr09LvdYm2RElVjokTQiUvDUGXLGsYeLqUMCKpGA==} + '@rollup/rollup-darwin-x64@4.62.5': + resolution: {integrity: sha512-YSwBS86QeHOGlrxJ1PSOIZSkzRL/JmKeunhc+lV6M1a6En8QuVCD/T/qIA0J4Gd2Y86RIOBYrLcOUtqGh9+/1w==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.62.2': - resolution: {integrity: sha512-tT4pvt4qXD+vEoezupCWi+a1F0vvDiksiHc+PxRlYTOH1I6/X4id9jPxTP+Fg+545euaFT1jJVs4CEdHZAU1vw==} + '@rollup/rollup-freebsd-arm64@4.62.5': + resolution: {integrity: sha512-2fST8lILgl7cKbme/1KDdPCmbXbG+gqoV3bHp19L0ypX/3akYMBVdOunPleRCwonoLnXOZ/0F+Mt/v8POFmfcQ==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.62.2': - resolution: {integrity: sha512-6nU5F2wCW+qvCBhTn1pdIU3bzsIoF7EUwsCDRxilWGprQR6yd508YnH9+OKFCwpfS8pjZqDUmnCAr7exax0XCg==} + '@rollup/rollup-freebsd-x64@4.62.5': + resolution: {integrity: sha512-cpIxQCP9J+EVad0a6LO1kY3ZGODlk80VlI+2I96B8xMcdHZ4pLVhfQ49JFpYqjPF91FFkQWftf57YlDcTiw9yQ==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.62.2': - resolution: {integrity: sha512-n1GJHPOvpIfhi3TmrCeh6S6URt9BFCt0KQE3qvexyGCTAKpR4Lg+eWvNZEqu7epxwus/8ElT3hacYEucm49SZg==} + '@rollup/rollup-linux-arm-gnueabihf@4.62.5': + resolution: {integrity: sha512-r9fGh3eFs3e/udWh5ZjXQtxiYK/xoFxQaYR/cELxac/Udkl5Th+IsFm0CX3Kl9hmUH/we7EoMpjJgeQNnE0+IA==} cpu: [arm] os: [linux] libc: [glibc] - '@rollup/rollup-linux-arm-musleabihf@4.62.2': - resolution: {integrity: sha512-JqgflS8wEB+UXV/vS1RpRbifGBeN4D5lz8D8oOFbFZw4vedvdOgCFAjfBmIMdW3yL10XpQQ0Ambepw6MXrhOnA==} + '@rollup/rollup-linux-arm-musleabihf@4.62.5': + resolution: {integrity: sha512-xdvFdp7OM6KLJviJT2g/YuRSUjnZgGHk4RNgwIbN7X6cPugOucV60DdHXWzsBVCUdrGb6qSXnJQrrAKMmQuj3Q==} cpu: [arm] os: [linux] libc: [musl] - '@rollup/rollup-linux-arm64-gnu@4.62.2': - resolution: {integrity: sha512-wnFJkogWvN4jm/hQRF2UBaeUmk20j5+DmHvoyWii2b8HJDyvz1MF2OU/6ynXt2KR63rbZLWkFpoytpdc/yBuSA==} + '@rollup/rollup-linux-arm64-gnu@4.62.5': + resolution: {integrity: sha512-rRqILAndyzHzP7T9NFQrq+4HFWNhqkqkKur7eiBpfLmz01PO0JKx5Vchu3YllE4YXI/Ftgq/szrDWg5GJ0mI8g==} cpu: [arm64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-arm64-musl@4.62.2': - resolution: {integrity: sha512-HVu2bp0zhvJ8xHEV9+UUs7S90VadmBSY3LcIMvozbPo4AuMGDWlz3ymHLHZPX4hR67TKTt8Qp5PJ5RBg/i+RMQ==} + '@rollup/rollup-linux-arm64-musl@4.62.5': + resolution: {integrity: sha512-Gf4X3qVMucayUvux6aXXPgXovocSFUC0rrffDuPI/S2nHhNMhjcZxsrAFYCOF350PRreW1XwzFj3CT/3bKsWCw==} cpu: [arm64] os: [linux] libc: [musl] - '@rollup/rollup-linux-loong64-gnu@4.62.2': - resolution: {integrity: sha512-mQqqAV8QaoSgr9I2fKDLY2BAVvmKjWoGiu/cSYQonsLvtqwEn1E4QYfnCOcp5zoEqNhsDYin1s6jx/VJmrxlZg==} + '@rollup/rollup-linux-loong64-gnu@4.62.5': + resolution: {integrity: sha512-+s5qA0TNM0qm8PK/a5gt/1Hpx+NV08uSuCncvhziIlQzT6AEV2fnUQo7eBtFTFO0nA9scauvoR2HusfXmQnO4w==} cpu: [loong64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-loong64-musl@4.62.2': - resolution: {integrity: sha512-IxKLoxCQ2IWi6bT2akyDUBGsOImDKB+sPp4EsTmwFQ/fMwpCKm8uLSSgP/Kx/QYUgKis6SEZ5/Nlhup0DIA0PQ==} + '@rollup/rollup-linux-loong64-musl@4.62.5': + resolution: {integrity: sha512-ybb6QvWwWJCbBWqERpc8K3pYVGIrXlG8MEQ8IIuJY6Y9KdHQxoFoNyfkAOtKn1VHu3KuLidXvwrvGR1mEjeWCw==} cpu: [loong64] os: [linux] libc: [musl] - '@rollup/rollup-linux-ppc64-gnu@4.62.2': - resolution: {integrity: sha512-Mk5ha2RQSgyFfmYYLkBpPnUk8D8FriBxesO1u9O75X0mHgXL1UQcH5Itl2lurWL2tj0RxV9b9tJgipac0hRY9A==} + '@rollup/rollup-linux-ppc64-gnu@4.62.5': + resolution: {integrity: sha512-nZb1DtnOyhCmYvsC8A2CwOkopVg+IS1+fPUa7rMOAXtNw5+lLCLLPqd6XAiNrGtoQKsbvIBOwsHnBH/3wnb4HQ==} cpu: [ppc64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-ppc64-musl@4.62.2': - resolution: {integrity: sha512-CjvEnqJL/0/TQ3TXX3OPIJ/kmBellrWd4heXUmHeJlTnmwjKpSJzoehLaL6Xk0ZnMHBu9dZuFADNOrtjF4v+2w==} + '@rollup/rollup-linux-ppc64-musl@4.62.5': + resolution: {integrity: sha512-yMbj63Sp89ryrXLWyz+sy+fYD2HpOnMCLGbe4Oa1smclFSUukdtD/BgdiHaAetJNb74URD8U4hM+qG5KVzMEkg==} cpu: [ppc64] os: [linux] libc: [musl] - '@rollup/rollup-linux-riscv64-gnu@4.62.2': - resolution: {integrity: sha512-1SiZbzwdkaDURsew/tSOrooKiYy7EQGT6m8ufavAi9NEyQb/6VuIxFXAL1fqa4iZe3g4NbNk4P7J32z2tw5Mgg==} + '@rollup/rollup-linux-riscv64-gnu@4.62.5': + resolution: {integrity: sha512-mhoan3OJw2kYV/e1jtIdmvUZgyBFeA6zGWsOswmR0Tg19TQbowZuR+JMLID6spbbBN7Zee2ejrgmy3+FxGrIdA==} cpu: [riscv64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-riscv64-musl@4.62.2': - resolution: {integrity: sha512-nQts12zJ3NQRoE6uYljOH89v7szzLDvG2JD/vsX+vGXU8w/At1GowTZ5/7qeFQ8m7L55rpR8Okugnuo5bgjy2Q==} + '@rollup/rollup-linux-riscv64-musl@4.62.5': + resolution: {integrity: sha512-5ZTLmjWbb1VZdjuyhe83K/8QO0/h11midQCBP+X5OYn32ra7eOBoM0ZqtaY4nkgNsYgmdVhMYPoyVPTjUpHf3w==} cpu: [riscv64] os: [linux] libc: [musl] - '@rollup/rollup-linux-s390x-gnu@4.62.2': - resolution: {integrity: sha512-E9/ll019jhPIJgpzfZoIkBGhcz+kKNgVWYRY0zr9srBdPPFVpvOKW8VaJKUbeK+eZXyQF9ltME+Kk6affeaPgg==} + '@rollup/rollup-linux-s390x-gnu@4.62.5': + resolution: {integrity: sha512-m53kG+br6PGxOTmgBEM2DHSDs9RVjsyEbUwjJPJGTFm1grWOG8EKJggDCTb60unD4Tjby8fi7/m9XfkEWasVWg==} cpu: [s390x] os: [linux] libc: [glibc] - '@rollup/rollup-linux-x64-gnu@4.62.2': - resolution: {integrity: sha512-5BqxR/pshjey51iliyzTD5Xi3EN0aLmQ2lZ3lvefVV9c82BvrLo2/6OT55iifpWBufs6kdwWbuOKS841DrmK9A==} + '@rollup/rollup-linux-x64-gnu@4.62.5': + resolution: {integrity: sha512-6RHPJR1g/uvdYU8uXBnfq3nlqyZCP82Fr6NHgfGoaIeSh0YEqnX/x6uA9MmJJbnSH7swqX4F+CkGdUF+6doiQA==} cpu: [x64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-x64-musl@4.62.2': - resolution: {integrity: sha512-uNN83XxQrRAh/w0/pmAfibcwyb6YWt4gP+dpnQKPVJshAloQ785ii8CT8ZCIxkGg9opVsvAlGhFitSm6D1Jjpg==} + '@rollup/rollup-linux-x64-musl@4.62.5': + resolution: {integrity: sha512-xs+OXQtEXgpXT0DmA5+U3qnRZHdCST/5HRQxS8wSPZTUZN/EMWeHuSIod32LQklTBZBV9DyfncKBQ8n5V3eFdw==} cpu: [x64] os: [linux] libc: [musl] - '@rollup/rollup-openbsd-x64@4.62.2': - resolution: {integrity: sha512-srjEIxSH3LRnJN6THczDHWQplqEMFiAJrTab0msUryh9kwNpkICf3Ea6q6MN/2cZwRFUNx5w+h6Hpi4QuHS6Zg==} + '@rollup/rollup-openbsd-x64@4.62.5': + resolution: {integrity: sha512-e7hD+sl3s+mcLQDZ8pbudBVsdG6r5yN4w3LqG2TJ8sQHDpblWj5lrJs/3m01Cvlxbt4x13zu5thLjgypgtkYzw==} cpu: [x64] os: [openbsd] - '@rollup/rollup-openharmony-arm64@4.62.2': - resolution: {integrity: sha512-8hOJnxgbyObnCm5AlRA3A931xX19xq80RjVTKgJOvEKWqJruP/Uf12IbAOaDjjEXYRewwHLfmF0YRIdK3OwKWA==} + '@rollup/rollup-openharmony-arm64@4.62.5': + resolution: {integrity: sha512-GiyJaCf+WpMub/17aPcKk27QMl5W6f+KhdPTjlFOn5akH5Wa/DCM9Stdx5cDfmasyKB08MqpVQ1uJE2RkkpbXg==} cpu: [arm64] os: [openharmony] - '@rollup/rollup-win32-arm64-msvc@4.62.2': - resolution: {integrity: sha512-mmF4AY1i0hG/bLWUctUq59gtmgaSIRa3cu/A3JFRp/sCNEme2bgDEiDS22P9FbnJB8NJNF4jPJiSP5RHQpUTDg==} + '@rollup/rollup-win32-arm64-msvc@4.62.5': + resolution: {integrity: sha512-+OQ8U2DdoEfXl8T4Fb18AjmEwbXMerKDKCL8yCPAYhKCEEKoul7rkbeGCBFCbAlaGaa7pmtRTpkAJM2LE/i5FA==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.62.2': - resolution: {integrity: sha512-DZgkknc6jhHrk46V25vbAM0zZkyP0nSDkJB8/dRkLTxv470dOmWDqGoEJl/9A0dFfS7yE3REOwNDxpHwSLSt0Q==} + '@rollup/rollup-win32-ia32-msvc@4.62.5': + resolution: {integrity: sha512-KanvAZrPKbDBFwrgiU9yEVpQoox9QPV1WZOXX7HudJQY+eSlu82CtWxDU8WtuRRvtN5EGkLczkd6Y6DTcvm9wA==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-gnu@4.62.2': - resolution: {integrity: sha512-T6xr6ucWSFto+VGajA8YH26LdpHRuP4YLHEKAtCWvJDOlnmWcDZVCI2Jmjr+IFHDlt2zRaTAKE4tfjTaWLgJBg==} + '@rollup/rollup-win32-x64-gnu@4.62.5': + resolution: {integrity: sha512-1aC3UEWTtRl3RK3VpDJ/Tqk1XI4SLTmXIthAq6wRWo8XiSXJNd+VprJM4/1P4+i6HIaFEFlVi9sTTziniD2tOQ==} cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.62.2': - resolution: {integrity: sha512-BfzEnDJOt9T8M989/lA37EcJgat01wLRnoi5dQf3QzOH7jzpqTAzdDbVfRljVr5r+jzKqpbHeyOfAaXxAd0PAA==} + '@rollup/rollup-win32-x64-msvc@4.62.5': + resolution: {integrity: sha512-/gDJaRs4gl0NPIwqCz+6PkpmhhjRAD2j6P4rSNHBzUkO3naEx2mIU0pRle1vUNRQ7mE/+8OOeXLTv/J56FKiQg==} cpu: [x64] os: [win32] @@ -1771,8 +1778,8 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} hasBin: true - rollup@4.62.2: - resolution: {integrity: sha512-RFnrW4lhXA3s3eqHDZvN654g8OTjzRfqpIRJYczCGB6HzphckVAi/Qh4tbPUbRuDi7s1Llv8g/NspLkttY3gTA==} + rollup@4.62.5: + resolution: {integrity: sha512-/tqMfgP7GPA3PHhCmuiS4vIjrSVhHLgY++i+dhbG462euyAj7FpM4D9uq1X3BgjlqRdpcOrYhcQtfiQLNc8tqw==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -2164,6 +2171,9 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 + '@napi-rs/lzma-linux-x64-gnu@1.5.1': + optional: true + '@napi-rs/wasm-runtime@1.1.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': dependencies: '@emnapi/core': 1.10.0 @@ -2297,114 +2307,114 @@ snapshots: '@rolldown/pluginutils@1.0.1': {} - '@rollup/plugin-node-resolve@16.0.3(rollup@4.62.2)': + '@rollup/plugin-node-resolve@16.0.3(rollup@4.62.5)': dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.62.2) + '@rollup/pluginutils': 5.3.0(rollup@4.62.5) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-module: 1.0.0 resolve: 1.22.11 optionalDependencies: - rollup: 4.62.2 + rollup: 4.62.5 - '@rollup/plugin-terser@1.0.0(rollup@4.62.2)': + '@rollup/plugin-terser@1.0.0(rollup@4.62.5)': dependencies: serialize-javascript: 7.0.5 smob: 1.6.1 terser: 5.46.1 optionalDependencies: - rollup: 4.62.2 + rollup: 4.62.5 - '@rollup/plugin-typescript@12.3.0(rollup@4.62.2)(tslib@2.8.1)(typescript@6.0.3)': + '@rollup/plugin-typescript@12.3.0(rollup@4.62.5)(tslib@2.8.1)(typescript@6.0.3)': dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.62.2) + '@rollup/pluginutils': 5.3.0(rollup@4.62.5) resolve: 1.22.11 typescript: 6.0.3 optionalDependencies: - rollup: 4.62.2 + rollup: 4.62.5 tslib: 2.8.1 - '@rollup/pluginutils@5.3.0(rollup@4.62.2)': + '@rollup/pluginutils@5.3.0(rollup@4.62.5)': dependencies: '@types/estree': 1.0.9 estree-walker: 2.0.2 picomatch: 4.0.4 optionalDependencies: - rollup: 4.62.2 + rollup: 4.62.5 - '@rollup/rollup-android-arm-eabi@4.62.2': + '@rollup/rollup-android-arm-eabi@4.62.5': optional: true - '@rollup/rollup-android-arm64@4.62.2': + '@rollup/rollup-android-arm64@4.62.5': optional: true - '@rollup/rollup-darwin-arm64@4.62.2': + '@rollup/rollup-darwin-arm64@4.62.5': optional: true - '@rollup/rollup-darwin-x64@4.62.2': + '@rollup/rollup-darwin-x64@4.62.5': optional: true - '@rollup/rollup-freebsd-arm64@4.62.2': + '@rollup/rollup-freebsd-arm64@4.62.5': optional: true - '@rollup/rollup-freebsd-x64@4.62.2': + '@rollup/rollup-freebsd-x64@4.62.5': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.62.2': + '@rollup/rollup-linux-arm-gnueabihf@4.62.5': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.62.2': + '@rollup/rollup-linux-arm-musleabihf@4.62.5': optional: true - '@rollup/rollup-linux-arm64-gnu@4.62.2': + '@rollup/rollup-linux-arm64-gnu@4.62.5': optional: true - '@rollup/rollup-linux-arm64-musl@4.62.2': + '@rollup/rollup-linux-arm64-musl@4.62.5': optional: true - '@rollup/rollup-linux-loong64-gnu@4.62.2': + '@rollup/rollup-linux-loong64-gnu@4.62.5': optional: true - '@rollup/rollup-linux-loong64-musl@4.62.2': + '@rollup/rollup-linux-loong64-musl@4.62.5': optional: true - '@rollup/rollup-linux-ppc64-gnu@4.62.2': + '@rollup/rollup-linux-ppc64-gnu@4.62.5': optional: true - '@rollup/rollup-linux-ppc64-musl@4.62.2': + '@rollup/rollup-linux-ppc64-musl@4.62.5': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.62.2': + '@rollup/rollup-linux-riscv64-gnu@4.62.5': optional: true - '@rollup/rollup-linux-riscv64-musl@4.62.2': + '@rollup/rollup-linux-riscv64-musl@4.62.5': optional: true - '@rollup/rollup-linux-s390x-gnu@4.62.2': + '@rollup/rollup-linux-s390x-gnu@4.62.5': optional: true - '@rollup/rollup-linux-x64-gnu@4.62.2': + '@rollup/rollup-linux-x64-gnu@4.62.5': optional: true - '@rollup/rollup-linux-x64-musl@4.62.2': + '@rollup/rollup-linux-x64-musl@4.62.5': optional: true - '@rollup/rollup-openbsd-x64@4.62.2': + '@rollup/rollup-openbsd-x64@4.62.5': optional: true - '@rollup/rollup-openharmony-arm64@4.62.2': + '@rollup/rollup-openharmony-arm64@4.62.5': optional: true - '@rollup/rollup-win32-arm64-msvc@4.62.2': + '@rollup/rollup-win32-arm64-msvc@4.62.5': optional: true - '@rollup/rollup-win32-ia32-msvc@4.62.2': + '@rollup/rollup-win32-ia32-msvc@4.62.5': optional: true - '@rollup/rollup-win32-x64-gnu@4.62.2': + '@rollup/rollup-win32-x64-gnu@4.62.5': optional: true - '@rollup/rollup-win32-x64-msvc@4.62.2': + '@rollup/rollup-win32-x64-msvc@4.62.5': optional: true '@sveltejs/acorn-typescript@1.0.9(acorn@8.16.0)': @@ -3204,35 +3214,36 @@ snapshots: '@rolldown/binding-win32-arm64-msvc': 1.0.3 '@rolldown/binding-win32-x64-msvc': 1.0.3 - rollup@4.62.2: + rollup@4.62.5: dependencies: '@types/estree': 1.0.9 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.62.2 - '@rollup/rollup-android-arm64': 4.62.2 - '@rollup/rollup-darwin-arm64': 4.62.2 - '@rollup/rollup-darwin-x64': 4.62.2 - '@rollup/rollup-freebsd-arm64': 4.62.2 - '@rollup/rollup-freebsd-x64': 4.62.2 - '@rollup/rollup-linux-arm-gnueabihf': 4.62.2 - '@rollup/rollup-linux-arm-musleabihf': 4.62.2 - '@rollup/rollup-linux-arm64-gnu': 4.62.2 - '@rollup/rollup-linux-arm64-musl': 4.62.2 - '@rollup/rollup-linux-loong64-gnu': 4.62.2 - '@rollup/rollup-linux-loong64-musl': 4.62.2 - '@rollup/rollup-linux-ppc64-gnu': 4.62.2 - '@rollup/rollup-linux-ppc64-musl': 4.62.2 - '@rollup/rollup-linux-riscv64-gnu': 4.62.2 - '@rollup/rollup-linux-riscv64-musl': 4.62.2 - '@rollup/rollup-linux-s390x-gnu': 4.62.2 - '@rollup/rollup-linux-x64-gnu': 4.62.2 - '@rollup/rollup-linux-x64-musl': 4.62.2 - '@rollup/rollup-openbsd-x64': 4.62.2 - '@rollup/rollup-openharmony-arm64': 4.62.2 - '@rollup/rollup-win32-arm64-msvc': 4.62.2 - '@rollup/rollup-win32-ia32-msvc': 4.62.2 - '@rollup/rollup-win32-x64-gnu': 4.62.2 - '@rollup/rollup-win32-x64-msvc': 4.62.2 + '@napi-rs/lzma-linux-x64-gnu': 1.5.1 + '@rollup/rollup-android-arm-eabi': 4.62.5 + '@rollup/rollup-android-arm64': 4.62.5 + '@rollup/rollup-darwin-arm64': 4.62.5 + '@rollup/rollup-darwin-x64': 4.62.5 + '@rollup/rollup-freebsd-arm64': 4.62.5 + '@rollup/rollup-freebsd-x64': 4.62.5 + '@rollup/rollup-linux-arm-gnueabihf': 4.62.5 + '@rollup/rollup-linux-arm-musleabihf': 4.62.5 + '@rollup/rollup-linux-arm64-gnu': 4.62.5 + '@rollup/rollup-linux-arm64-musl': 4.62.5 + '@rollup/rollup-linux-loong64-gnu': 4.62.5 + '@rollup/rollup-linux-loong64-musl': 4.62.5 + '@rollup/rollup-linux-ppc64-gnu': 4.62.5 + '@rollup/rollup-linux-ppc64-musl': 4.62.5 + '@rollup/rollup-linux-riscv64-gnu': 4.62.5 + '@rollup/rollup-linux-riscv64-musl': 4.62.5 + '@rollup/rollup-linux-s390x-gnu': 4.62.5 + '@rollup/rollup-linux-x64-gnu': 4.62.5 + '@rollup/rollup-linux-x64-musl': 4.62.5 + '@rollup/rollup-openbsd-x64': 4.62.5 + '@rollup/rollup-openharmony-arm64': 4.62.5 + '@rollup/rollup-win32-arm64-msvc': 4.62.5 + '@rollup/rollup-win32-ia32-msvc': 4.62.5 + '@rollup/rollup-win32-x64-gnu': 4.62.5 + '@rollup/rollup-win32-x64-msvc': 4.62.5 fsevents: 2.3.3 safe-regex@2.1.1: From 2f4c85c99a1799212e3550ba8b4bc597bc9d26ae Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 27 Aug 2026 14:23:25 +0200 Subject: [PATCH 32/41] chore(deps): bump serde_with (#3490) Bumps [serde_with](https://github.com/jonasbb/serde_with) from 3.9.0 to 3.22.0. - [Release notes](https://github.com/jonasbb/serde_with/releases) - [Commits](https://github.com/jonasbb/serde_with/compare/v3.9.0...v3.22.0) --- updated-dependencies: - dependency-name: serde_with dependency-version: 3.21.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../tests/updater-migration/v1-app/Cargo.lock | 159 ++++++++++++++++-- 1 file changed, 141 insertions(+), 18 deletions(-) diff --git a/plugins/updater/tests/updater-migration/v1-app/Cargo.lock b/plugins/updater/tests/updater-migration/v1-app/Cargo.lock index 57bb1ade5..54604dda9 100644 --- a/plugins/updater/tests/updater-migration/v1-app/Cargo.lock +++ b/plugins/updater/tests/updater-migration/v1-app/Cargo.lock @@ -190,6 +190,15 @@ dependencies = [ "alloc-stdlib", ] +[[package]] +name = "bs58" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "tinyvec", +] + [[package]] name = "bstr" version = "1.10.0" @@ -521,9 +530,9 @@ dependencies = [ [[package]] name = "darling" -version = "0.20.10" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" +checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" dependencies = [ "darling_core", "darling_macro", @@ -531,11 +540,10 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.20.10" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" +checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" dependencies = [ - "fnv", "ident_case", "proc-macro2", "quote", @@ -545,9 +553,9 @@ dependencies = [ [[package]] name = "darling_macro" -version = "0.20.10" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" +checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" dependencies = [ "darling_core", "quote", @@ -635,6 +643,12 @@ version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" +[[package]] +name = "dyn-clone" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" + [[package]] name = "embed-resource" version = "2.4.3" @@ -1458,6 +1472,35 @@ dependencies = [ "system-deps 5.0.0", ] +[[package]] +name = "jiff" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3590fea8e9e22d449600c9bbd481a8163bef223e4ff938e5f55899f8cf1adb93" +dependencies = [ + "jiff-tzdb-platform", + "log", + "portable-atomic", + "portable-atomic-util", + "serde", + "windows-sys 0.52.0", +] + +[[package]] +name = "jiff-tzdb" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "142bd39932ad231f10513df9ab62661fead8719872150b7ad02a2df79f4e141e" + +[[package]] +name = "jiff-tzdb-platform" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "875a5a69ac2bab1a891711cf5eccbec1ce0341ea805560dcd90b7a2e925132e8" +dependencies = [ + "jiff-tzdb", +] + [[package]] name = "jni" version = "0.20.0" @@ -2101,6 +2144,21 @@ dependencies = [ "miniz_oxide", ] +[[package]] +name = "portable-atomic" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05c8b63e8d9609db387f0324918f81d68fe27748f084ef092fb35954d0539a85" + +[[package]] +name = "portable-atomic-util" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2a106d1259c23fac8e543272398ae0e3c0b8d33c88ed73d0cc71b0f1d902618" +dependencies = [ + "portable-atomic", +] + [[package]] name = "powerfmt" version = "0.2.0" @@ -2164,9 +2222,9 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" [[package]] name = "proc-macro2" -version = "1.0.86" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" dependencies = [ "unicode-ident", ] @@ -2305,6 +2363,26 @@ dependencies = [ "thiserror", ] +[[package]] +name = "ref-cast" +version = "1.0.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e440fb4e4b4147295338efb76001ab9e4efc0e5839df2c47fc5ac2381d365c3" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92ecd8964f8453721699a1ed72037b0db49ce2f5a5138486ee89bed6f67cdf3a" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.4", +] + [[package]] name = "regex" version = "1.10.6" @@ -2482,6 +2560,30 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "schemars" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] + +[[package]] +name = "schemars" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "687274d293b6cdc6e73e0fee520bf2049650090d7164f87672d212a3c530cf4a" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] + [[package]] name = "scoped-tls" version = "1.0.1" @@ -2578,15 +2680,16 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.122" +version = "1.0.151" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784b6203951c57ff748476b126ccb5e8e2959a5c19e5c617ab1956be3dbc68da" +checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14" dependencies = [ "indexmap 2.3.0", "itoa 1.0.11", "memchr", - "ryu", "serde", + "serde_core", + "zmij", ] [[package]] @@ -2623,17 +2726,20 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.9.0" +version = "3.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cecfa94848272156ea67b2b1a53f20fc7bc638c4a46d2f8abde08f05f4b857" +checksum = "ee78f1fbe43ac4a0e47aadb3dbd357b69eb0d3793e948624cd03dd2750ab1c0a" dependencies = [ "base64 0.22.1", + "bs58", "chrono", "hex", "indexmap 1.9.3", "indexmap 2.3.0", - "serde", - "serde_derive", + "jiff", + "schemars 0.9.0", + "schemars 1.2.2", + "serde_core", "serde_json", "serde_with_macros", "time", @@ -2641,9 +2747,9 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.9.0" +version = "3.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8fee4991ef4f274617a51ad4af30519438dacb2f56ac773b08a1922ff743350" +checksum = "8705578779c2b6bd90d84d66eb2e206b708b1a4d7b9f17641b293545bf1c7e46" dependencies = [ "darling", "proc-macro2", @@ -2837,6 +2943,17 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "syn" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6275cddf4610d1775e6d1fe9469b2e77d0f39fd98fb7450901b821e0c53649f" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + [[package]] name = "sync_wrapper" version = "0.1.2" @@ -4236,3 +4353,9 @@ dependencies = [ "crc32fast", "crossbeam-utils", ] + +[[package]] +name = "zmij" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" From 1a7b12c10256567aca763f4d47cc4da886f73c63 Mon Sep 17 00:00:00 2001 From: Fabian-Lars <30730186+FabianLars@users.noreply.github.com> Date: Thu, 27 Aug 2026 14:30:26 +0200 Subject: [PATCH 33/41] ci: add explicit token permissions --- .github/workflows/audit-javascript.yml | 3 +++ .github/workflows/audit-rust.yml | 3 +++ .github/workflows/check-change-files.yml | 3 +++ .github/workflows/check-generated-files.yml | 3 +++ .github/workflows/check-license-header.yml | 3 +++ .github/workflows/covector-status.yml | 3 +++ .github/workflows/fmt.yml | 3 +++ .github/workflows/integration-tests.yml | 3 +++ .github/workflows/lint-javascript.yml | 3 +++ .github/workflows/lint-rust.yml | 3 +++ .github/workflows/sync.yml | 3 +++ .github/workflows/test-android.yml | 3 +++ .github/workflows/test-rust.yml | 3 +++ 13 files changed, 39 insertions(+) diff --git a/.github/workflows/audit-javascript.yml b/.github/workflows/audit-javascript.yml index 66aff2b7f..9411e329c 100644 --- a/.github/workflows/audit-javascript.yml +++ b/.github/workflows/audit-javascript.yml @@ -29,6 +29,9 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true +permisisons: + contents: read + jobs: audit-js: runs-on: ubuntu-latest diff --git a/.github/workflows/audit-rust.yml b/.github/workflows/audit-rust.yml index e1e4ef1c9..cc7e79990 100644 --- a/.github/workflows/audit-rust.yml +++ b/.github/workflows/audit-rust.yml @@ -29,6 +29,9 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true +permisisons: + contents: read + jobs: audit-rust: runs-on: ubuntu-latest diff --git a/.github/workflows/check-change-files.yml b/.github/workflows/check-change-files.yml index 0a2098089..1392d093b 100644 --- a/.github/workflows/check-change-files.yml +++ b/.github/workflows/check-change-files.yml @@ -13,6 +13,9 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true +permisisons: + contents: read + jobs: check: runs-on: ubuntu-latest diff --git a/.github/workflows/check-generated-files.yml b/.github/workflows/check-generated-files.yml index 9ce88d2a4..480311f89 100644 --- a/.github/workflows/check-generated-files.yml +++ b/.github/workflows/check-generated-files.yml @@ -15,6 +15,9 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true +permisisons: + contents: read + jobs: changes: runs-on: ubuntu-latest diff --git a/.github/workflows/check-license-header.yml b/.github/workflows/check-license-header.yml index a7ac28ea3..efe95bea7 100644 --- a/.github/workflows/check-license-header.yml +++ b/.github/workflows/check-license-header.yml @@ -11,6 +11,9 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true +permisisons: + contents: read + jobs: check: runs-on: ubuntu-latest diff --git a/.github/workflows/covector-status.yml b/.github/workflows/covector-status.yml index a27720654..d8b44acea 100644 --- a/.github/workflows/covector-status.yml +++ b/.github/workflows/covector-status.yml @@ -5,6 +5,9 @@ name: covector status on: [pull_request] +permisisons: + contents: read + jobs: covector: runs-on: ubuntu-latest diff --git a/.github/workflows/fmt.yml b/.github/workflows/fmt.yml index 780928b70..4f09cdf91 100644 --- a/.github/workflows/fmt.yml +++ b/.github/workflows/fmt.yml @@ -7,6 +7,9 @@ name: check formatting on: pull_request: +permisisons: + contents: read + jobs: rustfmt: runs-on: ubuntu-latest diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index 941e6d883..d9e14b527 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -21,6 +21,9 @@ on: - '.github/workflows/integration-tests.yml' - 'plugins/updater/src/**' +permisisons: + contents: read + jobs: run-integration-tests: runs-on: ${{ matrix.platform }} diff --git a/.github/workflows/lint-javascript.yml b/.github/workflows/lint-javascript.yml index be7ffaaaa..1e3f2309f 100644 --- a/.github/workflows/lint-javascript.yml +++ b/.github/workflows/lint-javascript.yml @@ -32,6 +32,9 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true +permisisons: + contents: read + jobs: eslint: runs-on: ubuntu-latest diff --git a/.github/workflows/lint-rust.yml b/.github/workflows/lint-rust.yml index 4119fa13a..55c24e094 100644 --- a/.github/workflows/lint-rust.yml +++ b/.github/workflows/lint-rust.yml @@ -28,6 +28,9 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true +permisisons: + contents: read + jobs: changes: runs-on: ubuntu-latest diff --git a/.github/workflows/sync.yml b/.github/workflows/sync.yml index 50ac5497e..46c49d43f 100644 --- a/.github/workflows/sync.yml +++ b/.github/workflows/sync.yml @@ -15,6 +15,9 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true +permisisons: + contents: read + jobs: sync-to-mirrors: runs-on: ubuntu-latest diff --git a/.github/workflows/test-android.yml b/.github/workflows/test-android.yml index 2c0f3f4f0..a9973a4b4 100644 --- a/.github/workflows/test-android.yml +++ b/.github/workflows/test-android.yml @@ -15,6 +15,9 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true +permisisons: + contents: read + jobs: test: runs-on: ${{ matrix.platform }} diff --git a/.github/workflows/test-rust.yml b/.github/workflows/test-rust.yml index f7c005ff2..7724a7d2b 100644 --- a/.github/workflows/test-rust.yml +++ b/.github/workflows/test-rust.yml @@ -30,6 +30,9 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true +permisisons: + contents: read + jobs: changes: runs-on: ubuntu-latest From 98f8787de428ee2353567057891112cd5e854f48 Mon Sep 17 00:00:00 2001 From: Fabian-Lars <30730186+FabianLars@users.noreply.github.com> Date: Thu, 27 Aug 2026 14:35:49 +0200 Subject: [PATCH 34/41] ci: fix typo in workflow permissions --- .github/workflows/audit-javascript.yml | 2 +- .github/workflows/audit-rust.yml | 2 +- .github/workflows/check-change-files.yml | 2 +- .github/workflows/check-generated-files.yml | 2 +- .github/workflows/check-license-header.yml | 2 +- .github/workflows/covector-status.yml | 2 +- .github/workflows/fmt.yml | 2 +- .github/workflows/integration-tests.yml | 2 +- .github/workflows/lint-javascript.yml | 2 +- .github/workflows/lint-rust.yml | 2 +- .github/workflows/sync.yml | 2 +- .github/workflows/test-android.yml | 2 +- .github/workflows/test-rust.yml | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/workflows/audit-javascript.yml b/.github/workflows/audit-javascript.yml index 9411e329c..fa472f158 100644 --- a/.github/workflows/audit-javascript.yml +++ b/.github/workflows/audit-javascript.yml @@ -29,7 +29,7 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true -permisisons: +permissions: contents: read jobs: diff --git a/.github/workflows/audit-rust.yml b/.github/workflows/audit-rust.yml index cc7e79990..5d0cda57d 100644 --- a/.github/workflows/audit-rust.yml +++ b/.github/workflows/audit-rust.yml @@ -29,7 +29,7 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true -permisisons: +permissions: contents: read jobs: diff --git a/.github/workflows/check-change-files.yml b/.github/workflows/check-change-files.yml index 1392d093b..e6f4db1e9 100644 --- a/.github/workflows/check-change-files.yml +++ b/.github/workflows/check-change-files.yml @@ -13,7 +13,7 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true -permisisons: +permissions: contents: read jobs: diff --git a/.github/workflows/check-generated-files.yml b/.github/workflows/check-generated-files.yml index 480311f89..0ea70c49b 100644 --- a/.github/workflows/check-generated-files.yml +++ b/.github/workflows/check-generated-files.yml @@ -15,7 +15,7 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true -permisisons: +permissions: contents: read jobs: diff --git a/.github/workflows/check-license-header.yml b/.github/workflows/check-license-header.yml index efe95bea7..0100d13f9 100644 --- a/.github/workflows/check-license-header.yml +++ b/.github/workflows/check-license-header.yml @@ -11,7 +11,7 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true -permisisons: +permissions: contents: read jobs: diff --git a/.github/workflows/covector-status.yml b/.github/workflows/covector-status.yml index d8b44acea..0eced3a3b 100644 --- a/.github/workflows/covector-status.yml +++ b/.github/workflows/covector-status.yml @@ -5,7 +5,7 @@ name: covector status on: [pull_request] -permisisons: +permissions: contents: read jobs: diff --git a/.github/workflows/fmt.yml b/.github/workflows/fmt.yml index 4f09cdf91..b6023261f 100644 --- a/.github/workflows/fmt.yml +++ b/.github/workflows/fmt.yml @@ -7,7 +7,7 @@ name: check formatting on: pull_request: -permisisons: +permissions: contents: read jobs: diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index d9e14b527..ff1373220 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -21,7 +21,7 @@ on: - '.github/workflows/integration-tests.yml' - 'plugins/updater/src/**' -permisisons: +permissions: contents: read jobs: diff --git a/.github/workflows/lint-javascript.yml b/.github/workflows/lint-javascript.yml index 1e3f2309f..b5f05298f 100644 --- a/.github/workflows/lint-javascript.yml +++ b/.github/workflows/lint-javascript.yml @@ -32,7 +32,7 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true -permisisons: +permissions: contents: read jobs: diff --git a/.github/workflows/lint-rust.yml b/.github/workflows/lint-rust.yml index 55c24e094..26dacde74 100644 --- a/.github/workflows/lint-rust.yml +++ b/.github/workflows/lint-rust.yml @@ -28,7 +28,7 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true -permisisons: +permissions: contents: read jobs: diff --git a/.github/workflows/sync.yml b/.github/workflows/sync.yml index 46c49d43f..1b9e98413 100644 --- a/.github/workflows/sync.yml +++ b/.github/workflows/sync.yml @@ -15,7 +15,7 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true -permisisons: +permissions: contents: read jobs: diff --git a/.github/workflows/test-android.yml b/.github/workflows/test-android.yml index a9973a4b4..85cbd9a45 100644 --- a/.github/workflows/test-android.yml +++ b/.github/workflows/test-android.yml @@ -15,7 +15,7 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true -permisisons: +permissions: contents: read jobs: diff --git a/.github/workflows/test-rust.yml b/.github/workflows/test-rust.yml index 7724a7d2b..a9e5ae26b 100644 --- a/.github/workflows/test-rust.yml +++ b/.github/workflows/test-rust.yml @@ -30,7 +30,7 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true -permisisons: +permissions: contents: read jobs: From 9d6d03269a3dea3e9dbf4635fe0fd68f23f750fa Mon Sep 17 00:00:00 2001 From: Fabian-Lars <30730186+FabianLars@users.noreply.github.com> Date: Thu, 27 Aug 2026 16:02:57 +0200 Subject: [PATCH 35/41] chore(deps): update h2 to 0.4.19 (#3556) --- .github/workflows/audit-javascript.yml | 1 + .github/workflows/audit-rust.yml | 1 + Cargo.lock | 4 ++-- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/audit-javascript.yml b/.github/workflows/audit-javascript.yml index fa472f158..83c388777 100644 --- a/.github/workflows/audit-javascript.yml +++ b/.github/workflows/audit-javascript.yml @@ -31,6 +31,7 @@ concurrency: permissions: contents: read + checks: write jobs: audit-js: diff --git a/.github/workflows/audit-rust.yml b/.github/workflows/audit-rust.yml index 5d0cda57d..cba74aef8 100644 --- a/.github/workflows/audit-rust.yml +++ b/.github/workflows/audit-rust.yml @@ -31,6 +31,7 @@ concurrency: permissions: contents: read + checks: write jobs: audit-rust: diff --git a/Cargo.lock b/Cargo.lock index b73674a00..9e8955f84 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2551,9 +2551,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.9" +version = "0.4.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75249d144030531f8dee69fe9cea04d3edf809a017ae445e2abdff6629e86633" +checksum = "ef8e5e5a340588f4452631496976cf8636d4a7ecf600239fdc27615d2530bc16" dependencies = [ "atomic-waker", "bytes", From 6aa2854f314481a459be1189b02c65a2450789ab Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 31 Aug 2026 19:17:31 +0800 Subject: [PATCH 36/41] publish new versions (#3509) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .changes/android-consumer-rules.md | 28 ----------- .changes/deep-link-platform.md | 6 --- .changes/dialog-save-fix.md | 6 --- .changes/feature-flags-docs.md | 30 ------------ .changes/fix-fs-scopes.md | 6 --- .changes/fs-deny-scope.md | 6 --- .changes/http-system-proxy.md | 6 --- .changes/nfc.md | 6 --- .changes/notification-mobile-actions.md | 7 --- .../updater-check-shell-execute-result.md | 6 --- .changes/updater-install-no-restart.md | 6 --- .changes/updater-system-proxy.md | 6 --- Cargo.lock | 46 +++++++++---------- examples/api/CHANGELOG.md | 17 +++++++ examples/api/package.json | 2 +- examples/api/src-tauri/CHANGELOG.md | 19 ++++++++ examples/api/src-tauri/Cargo.toml | 30 ++++++------ plugins/barcode-scanner/CHANGELOG.md | 4 ++ plugins/barcode-scanner/Cargo.toml | 2 +- plugins/barcode-scanner/package.json | 2 +- plugins/biometric/CHANGELOG.md | 4 ++ plugins/biometric/Cargo.toml | 2 +- plugins/biometric/package.json | 2 +- plugins/clipboard-manager/CHANGELOG.md | 4 ++ plugins/clipboard-manager/Cargo.toml | 2 +- plugins/clipboard-manager/package.json | 2 +- plugins/deep-link/CHANGELOG.md | 5 ++ plugins/deep-link/Cargo.toml | 2 +- plugins/deep-link/examples/app/CHANGELOG.md | 6 +++ plugins/deep-link/examples/app/package.json | 2 +- plugins/deep-link/package.json | 2 +- plugins/dialog/CHANGELOG.md | 11 +++++ plugins/dialog/Cargo.toml | 4 +- plugins/dialog/package.json | 2 +- plugins/fs/CHANGELOG.md | 7 +++ plugins/fs/Cargo.toml | 2 +- plugins/fs/package.json | 2 +- plugins/geolocation/CHANGELOG.md | 5 ++ plugins/geolocation/Cargo.toml | 2 +- plugins/geolocation/package.json | 2 +- plugins/haptics/CHANGELOG.md | 5 ++ plugins/haptics/Cargo.toml | 2 +- plugins/haptics/package.json | 2 +- plugins/http/CHANGELOG.md | 9 ++++ plugins/http/Cargo.toml | 4 +- plugins/http/package.json | 2 +- plugins/log/CHANGELOG.md | 4 ++ plugins/log/Cargo.toml | 2 +- plugins/log/package.json | 2 +- plugins/nfc/CHANGELOG.md | 5 ++ plugins/nfc/Cargo.toml | 2 +- plugins/nfc/package.json | 2 +- plugins/notification/CHANGELOG.md | 6 +++ plugins/notification/Cargo.toml | 2 +- plugins/notification/package.json | 2 +- plugins/opener/CHANGELOG.md | 4 ++ plugins/opener/Cargo.toml | 2 +- plugins/opener/package.json | 2 +- plugins/persisted-scope/CHANGELOG.md | 8 ++++ plugins/persisted-scope/Cargo.toml | 4 +- plugins/positioner/CHANGELOG.md | 4 ++ plugins/positioner/Cargo.toml | 2 +- plugins/positioner/package.json | 2 +- plugins/shell/CHANGELOG.md | 4 ++ plugins/shell/Cargo.toml | 2 +- plugins/shell/package.json | 2 +- plugins/single-instance/CHANGELOG.md | 8 ++++ plugins/single-instance/Cargo.toml | 4 +- plugins/sql/CHANGELOG.md | 4 ++ plugins/sql/Cargo.toml | 2 +- plugins/sql/package.json | 2 +- plugins/stronghold/CHANGELOG.md | 4 ++ plugins/stronghold/Cargo.toml | 2 +- plugins/stronghold/package.json | 2 +- plugins/updater/CHANGELOG.md | 7 +++ plugins/updater/Cargo.toml | 2 +- plugins/updater/package.json | 2 +- plugins/upload/CHANGELOG.md | 4 ++ plugins/upload/Cargo.toml | 2 +- plugins/upload/package.json | 2 +- plugins/websocket/CHANGELOG.md | 4 ++ plugins/websocket/Cargo.toml | 2 +- plugins/websocket/package.json | 2 +- 83 files changed, 248 insertions(+), 205 deletions(-) delete mode 100644 .changes/android-consumer-rules.md delete mode 100644 .changes/deep-link-platform.md delete mode 100644 .changes/dialog-save-fix.md delete mode 100644 .changes/feature-flags-docs.md delete mode 100644 .changes/fix-fs-scopes.md delete mode 100644 .changes/fs-deny-scope.md delete mode 100644 .changes/http-system-proxy.md delete mode 100644 .changes/nfc.md delete mode 100644 .changes/notification-mobile-actions.md delete mode 100644 .changes/updater-check-shell-execute-result.md delete mode 100644 .changes/updater-install-no-restart.md delete mode 100644 .changes/updater-system-proxy.md diff --git a/.changes/android-consumer-rules.md b/.changes/android-consumer-rules.md deleted file mode 100644 index 1c4361b79..000000000 --- a/.changes/android-consumer-rules.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -"barcode-scanner": patch -"barcode-scanner-js": patch -"biometric": patch -"biometric-js": patch -"clipboard-manager": patch -"clipboard-manager-js": patch -"deep-link": patch -"deep-link-js": patch -"dialog": patch -"dialog-js": patch -"fs": patch -"fs-js": patch -"geolocation": patch -"geolocation-js": patch -"haptics": patch -"haptics-js": patch -"nfc": patch -"nfc-js": patch -"notification": patch -"notification-js": patch -"opener": patch -"opener-js": patch -"shell": patch -"shell-js": patch ---- - -Fix missing `consumer-rules.pro` on Gradle v9. diff --git a/.changes/deep-link-platform.md b/.changes/deep-link-platform.md deleted file mode 100644 index 0dfb78803..000000000 --- a/.changes/deep-link-platform.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"deep-link": patch -"deep-link-js": patch ---- - -adds proper Platform-specific sections to the docs for `register`, `unregister`, `isRegistered`, and `onOpenUrl` \ No newline at end of file diff --git a/.changes/dialog-save-fix.md b/.changes/dialog-save-fix.md deleted file mode 100644 index 6ef01e057..000000000 --- a/.changes/dialog-save-fix.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"dialog": patch -"dialog-js": patch ---- - -Fix Android save dialog MIME type when a single MIME type is provided. diff --git a/.changes/feature-flags-docs.md b/.changes/feature-flags-docs.md deleted file mode 100644 index 0adba0d48..000000000 --- a/.changes/feature-flags-docs.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -"dialog": patch -"dialog-js": patch -"fs": patch -"fs-js": patch -"geolocation": patch -"geolocation-js": patch -"haptics": patch -"haptics-js": patch -"http": patch -"http-js": patch -"log": patch -"log-js": patch -"persisted-scope": patch -"positioner": patch -"positioner-js": patch -"single-instance": patch -"sql": patch -"sql-js": patch -"stronghold": patch -"stronghold-js": patch -"updater": patch -"updater-js": patch -"upload": patch -"upload-js": patch -"websocket": patch -"websocket-js": patch ---- - -Documented Cargo feature flags in each plugin's crate-level documentation. diff --git a/.changes/fix-fs-scopes.md b/.changes/fix-fs-scopes.md deleted file mode 100644 index a1ea49674..000000000 --- a/.changes/fix-fs-scopes.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"fs": patch -"fs-js": patch ---- - -Fix `fs:default` and `fs:read-app-specific-dirs-recursive` not giving any command scopes diff --git a/.changes/fs-deny-scope.md b/.changes/fs-deny-scope.md deleted file mode 100644 index cc1cca600..000000000 --- a/.changes/fs-deny-scope.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"fs": patch -"fs-js": patch ---- - -Fixed `deny-webview-data` has no effect, and on Linux, only deny access to the webview data paths instead of the entire `$APPLOCALDATA` \ No newline at end of file diff --git a/.changes/http-system-proxy.md b/.changes/http-system-proxy.md deleted file mode 100644 index 0e428a7fe..000000000 --- a/.changes/http-system-proxy.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"http": minor -"http-js": minor ---- - -Added `system-proxy` feature to replace the old `macos-system-configuration` feature flag to match the new reqwest API. diff --git a/.changes/nfc.md b/.changes/nfc.md deleted file mode 100644 index 6eb7676e1..000000000 --- a/.changes/nfc.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -nfc: patch -nfc-js: patch ---- - -Expect a `NFCTag` as input and return a `ScanResponse` in the `scan` function. \ No newline at end of file diff --git a/.changes/notification-mobile-actions.md b/.changes/notification-mobile-actions.md deleted file mode 100644 index 1d43f134c..000000000 --- a/.changes/notification-mobile-actions.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -notification: minor -notification-js: minor ---- - -- Add Rust builders for mobile notification action types. -- Fix Android action-group entries being stored under the action type ID instead of sequential indices, causing later actions to overwrite earlier ones. diff --git a/.changes/updater-check-shell-execute-result.md b/.changes/updater-check-shell-execute-result.md deleted file mode 100644 index d875d95fd..000000000 --- a/.changes/updater-check-shell-execute-result.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"updater": patch -"updater-js": patch ---- - -On Windows, returns an error if failed to spawn the installer in `install` through `ShellExecuteW` diff --git a/.changes/updater-install-no-restart.md b/.changes/updater-install-no-restart.md deleted file mode 100644 index 9a9c1165c..000000000 --- a/.changes/updater-install-no-restart.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"updater": minor -"updater-js": minor ---- - -On Windows, add a new option `restartAfterInstall`/`restart_after_install` to install an update without the installer re-launching the app diff --git a/.changes/updater-system-proxy.md b/.changes/updater-system-proxy.md deleted file mode 100644 index d5dda5657..000000000 --- a/.changes/updater-system-proxy.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"updater": minor -"updater-js": minor ---- - -Added `system-proxy` (enabled by default) feature flag to control `reqwest/system-proxy` feature (Use Windows and macOS system proxy settings automatically) diff --git a/Cargo.lock b/Cargo.lock index 9e8955f84..f6a8926b8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -207,7 +207,7 @@ checksum = "2a4385e2e34eb35d6b3efe798b9eb88096925d87726c0798709bf56d9ed84af3" [[package]] name = "api" -version = "2.0.46" +version = "2.0.47" dependencies = [ "log", "serde", @@ -6455,7 +6455,7 @@ dependencies = [ [[package]] name = "tauri-plugin-barcode-scanner" -version = "2.4.5" +version = "2.4.6" dependencies = [ "log", "serde", @@ -6467,7 +6467,7 @@ dependencies = [ [[package]] name = "tauri-plugin-biometric" -version = "2.3.2" +version = "2.3.3" dependencies = [ "log", "serde", @@ -6493,7 +6493,7 @@ dependencies = [ [[package]] name = "tauri-plugin-clipboard-manager" -version = "2.3.2" +version = "2.3.3" dependencies = [ "arboard", "log", @@ -6506,7 +6506,7 @@ dependencies = [ [[package]] name = "tauri-plugin-deep-link" -version = "2.4.9" +version = "2.4.10" dependencies = [ "dunce", "plist", @@ -6525,7 +6525,7 @@ dependencies = [ [[package]] name = "tauri-plugin-dialog" -version = "2.7.2" +version = "2.7.3" dependencies = [ "log", "raw-window-handle", @@ -6541,7 +6541,7 @@ dependencies = [ [[package]] name = "tauri-plugin-fs" -version = "2.5.1" +version = "2.5.2" dependencies = [ "anyhow", "dunce", @@ -6565,7 +6565,7 @@ dependencies = [ [[package]] name = "tauri-plugin-geolocation" -version = "2.3.2" +version = "2.3.3" dependencies = [ "log", "serde", @@ -6591,7 +6591,7 @@ dependencies = [ [[package]] name = "tauri-plugin-haptics" -version = "2.3.2" +version = "2.3.3" dependencies = [ "log", "serde", @@ -6604,7 +6604,7 @@ dependencies = [ [[package]] name = "tauri-plugin-http" -version = "2.5.9" +version = "2.6.0" dependencies = [ "bytes", "cookie_store", @@ -6640,7 +6640,7 @@ dependencies = [ [[package]] name = "tauri-plugin-log" -version = "2.9.0" +version = "2.9.1" dependencies = [ "android_logger", "fern", @@ -6660,7 +6660,7 @@ dependencies = [ [[package]] name = "tauri-plugin-nfc" -version = "2.3.5" +version = "2.3.6" dependencies = [ "log", "serde", @@ -6673,7 +6673,7 @@ dependencies = [ [[package]] name = "tauri-plugin-notification" -version = "2.3.3" +version = "2.4.0" dependencies = [ "log", "notify-rust", @@ -6692,7 +6692,7 @@ dependencies = [ [[package]] name = "tauri-plugin-opener" -version = "2.5.4" +version = "2.5.5" dependencies = [ "dunce", "glob", @@ -6728,7 +6728,7 @@ dependencies = [ [[package]] name = "tauri-plugin-persisted-scope" -version = "2.3.7" +version = "2.3.8" dependencies = [ "aho-corasick", "bincode", @@ -6742,7 +6742,7 @@ dependencies = [ [[package]] name = "tauri-plugin-positioner" -version = "2.3.3" +version = "2.3.4" dependencies = [ "log", "serde", @@ -6763,7 +6763,7 @@ dependencies = [ [[package]] name = "tauri-plugin-shell" -version = "2.3.5" +version = "2.3.6" dependencies = [ "encoding_rs", "log", @@ -6782,7 +6782,7 @@ dependencies = [ [[package]] name = "tauri-plugin-single-instance" -version = "2.4.3" +version = "2.4.4" dependencies = [ "semver", "serde", @@ -6798,7 +6798,7 @@ dependencies = [ [[package]] name = "tauri-plugin-sql" -version = "2.4.0" +version = "2.4.1" dependencies = [ "futures-core", "indexmap 2.11.4", @@ -6831,7 +6831,7 @@ dependencies = [ [[package]] name = "tauri-plugin-stronghold" -version = "2.3.1" +version = "2.3.2" dependencies = [ "hex", "iota-crypto", @@ -6852,7 +6852,7 @@ dependencies = [ [[package]] name = "tauri-plugin-updater" -version = "2.10.1" +version = "2.11.0" dependencies = [ "base64 0.22.1", "dirs 6.0.0", @@ -6883,7 +6883,7 @@ dependencies = [ [[package]] name = "tauri-plugin-upload" -version = "2.4.0" +version = "2.4.1" dependencies = [ "futures-util", "log", @@ -6901,7 +6901,7 @@ dependencies = [ [[package]] name = "tauri-plugin-websocket" -version = "2.4.2" +version = "2.4.3" dependencies = [ "futures-util", "http", diff --git a/examples/api/CHANGELOG.md b/examples/api/CHANGELOG.md index c08be7ede..59e03e9ad 100644 --- a/examples/api/CHANGELOG.md +++ b/examples/api/CHANGELOG.md @@ -1,5 +1,22 @@ # Changelog +## [2.0.43] + +### Dependencies + +- Upgraded to `barcode-scanner-js@2.4.6` +- Upgraded to `biometric-js@2.3.3` +- Upgraded to `clipboard-manager-js@2.3.3` +- Upgraded to `dialog-js@2.7.3` +- Upgraded to `fs-js@2.5.2` +- Upgraded to `nfc-js@2.3.6` +- Upgraded to `notification-js@2.4.0` +- Upgraded to `opener-js@2.5.5` +- Upgraded to `shell-js@2.3.6` +- Upgraded to `http-js@2.6.0` +- Upgraded to `log-js@2.9.1` +- Upgraded to `updater-js@2.11.0` + ## \[2.0.42] ### Dependencies diff --git a/examples/api/package.json b/examples/api/package.json index 1fd0ce6f6..77f3bc189 100644 --- a/examples/api/package.json +++ b/examples/api/package.json @@ -1,7 +1,7 @@ { "name": "api", "private": true, - "version": "2.0.42", + "version": "2.0.43", "type": "module", "scripts": { "dev": "vite --clearScreen false", diff --git a/examples/api/src-tauri/CHANGELOG.md b/examples/api/src-tauri/CHANGELOG.md index 96a2cab40..b45209f3e 100644 --- a/examples/api/src-tauri/CHANGELOG.md +++ b/examples/api/src-tauri/CHANGELOG.md @@ -1,5 +1,24 @@ # Changelog +## [2.0.47] + +### Dependencies + +- Upgraded to `barcode-scanner@2.4.6` +- Upgraded to `biometric@2.3.3` +- Upgraded to `clipboard-manager@2.3.3` +- Upgraded to `dialog@2.7.3` +- Upgraded to `fs@2.5.2` +- Upgraded to `geolocation@2.3.3` +- Upgraded to `haptics@2.3.3` +- Upgraded to `nfc@2.3.6` +- Upgraded to `notification@2.4.0` +- Upgraded to `opener@2.5.5` +- Upgraded to `shell@2.3.6` +- Upgraded to `http@2.6.0` +- Upgraded to `log@2.9.1` +- Upgraded to `updater@2.11.0` + ## \[2.0.46] ### Dependencies diff --git a/examples/api/src-tauri/Cargo.toml b/examples/api/src-tauri/Cargo.toml index d56ad942a..29f0234aa 100644 --- a/examples/api/src-tauri/Cargo.toml +++ b/examples/api/src-tauri/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "api" publish = false -version = "2.0.46" +version = "2.0.47" description = "An example Tauri Application showcasing the api" edition = "2021" rust-version = { workspace = true } @@ -20,23 +20,23 @@ serde = { workspace = true } tiny_http = "0.12" time = "0.3" log = { workspace = true } -tauri-plugin-log = { path = "../../../plugins/log", version = "2.9.0" } -tauri-plugin-fs = { path = "../../../plugins/fs", version = "2.5.1", features = [ +tauri-plugin-log = { path = "../../../plugins/log", version = "2.9.1" } +tauri-plugin-fs = { path = "../../../plugins/fs", version = "2.5.2", features = [ "watch", ] } -tauri-plugin-clipboard-manager = { path = "../../../plugins/clipboard-manager", version = "2.3.2" } -tauri-plugin-dialog = { path = "../../../plugins/dialog", version = "2.7.2" } +tauri-plugin-clipboard-manager = { path = "../../../plugins/clipboard-manager", version = "2.3.3" } +tauri-plugin-dialog = { path = "../../../plugins/dialog", version = "2.7.3" } tauri-plugin-http = { path = "../../../plugins/http", features = [ "multipart", "cookies", -], version = "2.5.9" } -tauri-plugin-notification = { path = "../../../plugins/notification", version = "2.3.3", features = [ +], version = "2.6.0" } +tauri-plugin-notification = { path = "../../../plugins/notification", version = "2.4.0", features = [ "windows7-compat", ] } tauri-plugin-os = { path = "../../../plugins/os", version = "2.3.2" } tauri-plugin-process = { path = "../../../plugins/process", version = "2.3.1" } -tauri-plugin-opener = { path = "../../../plugins/opener", version = "2.5.4" } -tauri-plugin-shell = { path = "../../../plugins/shell", version = "2.3.5" } +tauri-plugin-opener = { path = "../../../plugins/opener", version = "2.5.5" } +tauri-plugin-shell = { path = "../../../plugins/shell", version = "2.3.6" } tauri-plugin-store = { path = "../../../plugins/store", version = "2.4.4" } tauri-plugin-upload = { path = "../../../plugins/upload", version = "2.3.0" } @@ -57,12 +57,12 @@ features = [ [target."cfg(any(target_os = \"macos\", windows, target_os = \"linux\", target_os = \"dragonfly\", target_os = \"freebsd\", target_os = \"openbsd\", target_os = \"netbsd\"))".dependencies] tauri-plugin-cli = { path = "../../../plugins/cli", version = "2.4.1" } tauri-plugin-global-shortcut = { path = "../../../plugins/global-shortcut", version = "2.3.2" } -tauri-plugin-updater = { path = "../../../plugins/updater", version = "2.10.1" } +tauri-plugin-updater = { path = "../../../plugins/updater", version = "2.11.0" } tauri-plugin-window-state = { path = "../../../plugins/window-state", version = "2.2.0" } [target."cfg(any(target_os = \"android\", target_os = \"ios\"))".dependencies] -tauri-plugin-barcode-scanner = { path = "../../../plugins/barcode-scanner/", version = "2.4.5" } -tauri-plugin-nfc = { path = "../../../plugins/nfc", version = "2.3.5" } -tauri-plugin-biometric = { path = "../../../plugins/biometric/", version = "2.3.2" } -tauri-plugin-geolocation = { path = "../../../plugins/geolocation/", version = "2.3.2" } -tauri-plugin-haptics = { path = "../../../plugins/haptics/", version = "2.3.2" } +tauri-plugin-barcode-scanner = { path = "../../../plugins/barcode-scanner/", version = "2.4.6" } +tauri-plugin-nfc = { path = "../../../plugins/nfc", version = "2.3.6" } +tauri-plugin-biometric = { path = "../../../plugins/biometric/", version = "2.3.3" } +tauri-plugin-geolocation = { path = "../../../plugins/geolocation/", version = "2.3.3" } +tauri-plugin-haptics = { path = "../../../plugins/haptics/", version = "2.3.3" } diff --git a/plugins/barcode-scanner/CHANGELOG.md b/plugins/barcode-scanner/CHANGELOG.md index b08305557..02c6345ef 100644 --- a/plugins/barcode-scanner/CHANGELOG.md +++ b/plugins/barcode-scanner/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## [2.4.6] + +- [`db9c5998`](https://github.com/tauri-apps/plugins-workspace/commit/db9c5998feff9384f9cbbefcbe0d45937c00a1fc) ([#3531](https://github.com/tauri-apps/plugins-workspace/pull/3531) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Fix missing `consumer-rules.pro` on Gradle v9. + ## \[2.4.5] - [`d8645ab3`](https://github.com/tauri-apps/plugins-workspace/commit/d8645ab3e5b508456681eb53275c0837db25aeee) ([#3393](https://github.com/tauri-apps/plugins-workspace/pull/3393) by [@AlexisZankowitch](https://github.com/tauri-apps/plugins-workspace/../../AlexisZankowitch)) Fixed a crash on iOS when `cancel()` is invoked by running the cancel handler on the main thread. diff --git a/plugins/barcode-scanner/Cargo.toml b/plugins/barcode-scanner/Cargo.toml index 90f6a8265..0ff34010c 100644 --- a/plugins/barcode-scanner/Cargo.toml +++ b/plugins/barcode-scanner/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-barcode-scanner" -version = "2.4.5" +version = "2.4.6" description = "Scan QR codes, EAN-13 and other kinds of barcodes on Android and iOS" edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/barcode-scanner/package.json b/plugins/barcode-scanner/package.json index adbae4646..cc04f5583 100644 --- a/plugins/barcode-scanner/package.json +++ b/plugins/barcode-scanner/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-barcode-scanner", - "version": "2.4.5", + "version": "2.4.6", "description": "Scan QR codes, EAN-13 and other kinds of barcodes on Android and iOS", "license": "MIT OR Apache-2.0", "authors": [ diff --git a/plugins/biometric/CHANGELOG.md b/plugins/biometric/CHANGELOG.md index 214093f3b..527ba3dcb 100644 --- a/plugins/biometric/CHANGELOG.md +++ b/plugins/biometric/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## [2.3.3] + +- [`db9c5998`](https://github.com/tauri-apps/plugins-workspace/commit/db9c5998feff9384f9cbbefcbe0d45937c00a1fc) ([#3531](https://github.com/tauri-apps/plugins-workspace/pull/3531) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Fix missing `consumer-rules.pro` on Gradle v9. + ## \[2.3.2] - [`93426f85`](https://github.com/tauri-apps/plugins-workspace/commit/93426f85120f49beb9f40222bff45185a32d54a9) Fixed an issue that caused docs.rs builds to fail. No user facing changes. diff --git a/plugins/biometric/Cargo.toml b/plugins/biometric/Cargo.toml index 6df8a8af5..2ac895301 100644 --- a/plugins/biometric/Cargo.toml +++ b/plugins/biometric/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-biometric" -version = "2.3.2" +version = "2.3.3" description = "Prompt the user for biometric authentication on Android and iOS." edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/biometric/package.json b/plugins/biometric/package.json index 3c6cfa5b1..d8743f53c 100644 --- a/plugins/biometric/package.json +++ b/plugins/biometric/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-biometric", - "version": "2.3.2", + "version": "2.3.3", "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" diff --git a/plugins/clipboard-manager/CHANGELOG.md b/plugins/clipboard-manager/CHANGELOG.md index 529cf4399..5c6a54a6a 100644 --- a/plugins/clipboard-manager/CHANGELOG.md +++ b/plugins/clipboard-manager/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## [2.3.3] + +- [`db9c5998`](https://github.com/tauri-apps/plugins-workspace/commit/db9c5998feff9384f9cbbefcbe0d45937c00a1fc) ([#3531](https://github.com/tauri-apps/plugins-workspace/pull/3531) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Fix missing `consumer-rules.pro` on Gradle v9. + ## \[2.3.2] - [`93426f85`](https://github.com/tauri-apps/plugins-workspace/commit/93426f85120f49beb9f40222bff45185a32d54a9) Fixed an issue that caused docs.rs builds to fail. No user facing changes. diff --git a/plugins/clipboard-manager/Cargo.toml b/plugins/clipboard-manager/Cargo.toml index 6ecb04a90..478cba484 100644 --- a/plugins/clipboard-manager/Cargo.toml +++ b/plugins/clipboard-manager/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-clipboard-manager" -version = "2.3.2" +version = "2.3.3" description = "Read and write to the system clipboard." edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/clipboard-manager/package.json b/plugins/clipboard-manager/package.json index fcc3660a1..8261ee6cc 100644 --- a/plugins/clipboard-manager/package.json +++ b/plugins/clipboard-manager/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-clipboard-manager", - "version": "2.3.2", + "version": "2.3.3", "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" diff --git a/plugins/deep-link/CHANGELOG.md b/plugins/deep-link/CHANGELOG.md index 58b52daaf..d0f5e5301 100644 --- a/plugins/deep-link/CHANGELOG.md +++ b/plugins/deep-link/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## [2.4.10] + +- [`db9c5998`](https://github.com/tauri-apps/plugins-workspace/commit/db9c5998feff9384f9cbbefcbe0d45937c00a1fc) ([#3531](https://github.com/tauri-apps/plugins-workspace/pull/3531) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Fix missing `consumer-rules.pro` on Gradle v9. +- [`3fb27bf1`](https://github.com/tauri-apps/plugins-workspace/commit/3fb27bf13a88dd1e5aa2cc933408be02b0eafc91) ([#3504](https://github.com/tauri-apps/plugins-workspace/pull/3504) by [@vasfvitor](https://github.com/tauri-apps/plugins-workspace/../../vasfvitor)) adds proper Platform-specific sections to the docs for `register`, `unregister`, `isRegistered`, and `onOpenUrl` + ## \[2.4.9] - [`e6cdc9f5`](https://github.com/tauri-apps/plugins-workspace/commit/e6cdc9f52e2cd975b11b8e4c12879d597f1f76c3) ([#3396](https://github.com/tauri-apps/plugins-workspace/pull/3396) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Fix broken iOS custom URL schemes diff --git a/plugins/deep-link/Cargo.toml b/plugins/deep-link/Cargo.toml index 1c5d6a6ca..ce07db300 100644 --- a/plugins/deep-link/Cargo.toml +++ b/plugins/deep-link/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-deep-link" -version = "2.4.9" +version = "2.4.10" description = "Set your Tauri application as the default handler for an URL" authors = { workspace = true } license = { workspace = true } diff --git a/plugins/deep-link/examples/app/CHANGELOG.md b/plugins/deep-link/examples/app/CHANGELOG.md index c417f06bc..e7471efdb 100644 --- a/plugins/deep-link/examples/app/CHANGELOG.md +++ b/plugins/deep-link/examples/app/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## [2.2.13] + +### Dependencies + +- Upgraded to `deep-link-js@2.4.10` + ## \[2.2.12] ### Dependencies diff --git a/plugins/deep-link/examples/app/package.json b/plugins/deep-link/examples/app/package.json index 6b1211a88..595af974a 100644 --- a/plugins/deep-link/examples/app/package.json +++ b/plugins/deep-link/examples/app/package.json @@ -1,7 +1,7 @@ { "name": "deep-link-example", "private": true, - "version": "2.2.12", + "version": "2.2.13", "type": "module", "scripts": { "dev": "vite", diff --git a/plugins/deep-link/package.json b/plugins/deep-link/package.json index 0d3b2a132..3d21b7e00 100644 --- a/plugins/deep-link/package.json +++ b/plugins/deep-link/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-deep-link", - "version": "2.4.9", + "version": "2.4.10", "description": "Set your Tauri application as the default handler for an URL", "license": "MIT OR Apache-2.0", "authors": [ diff --git a/plugins/dialog/CHANGELOG.md b/plugins/dialog/CHANGELOG.md index 3b9f66152..4af3e7d38 100644 --- a/plugins/dialog/CHANGELOG.md +++ b/plugins/dialog/CHANGELOG.md @@ -1,5 +1,15 @@ # Changelog +## [2.7.3] + +- [`db9c5998`](https://github.com/tauri-apps/plugins-workspace/commit/db9c5998feff9384f9cbbefcbe0d45937c00a1fc) ([#3531](https://github.com/tauri-apps/plugins-workspace/pull/3531) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Fix missing `consumer-rules.pro` on Gradle v9. +- [`cc9ec9b4`](https://github.com/tauri-apps/plugins-workspace/commit/cc9ec9b4ad2f9ec9bd57c3503ded1bd94d092c48) ([#3519](https://github.com/tauri-apps/plugins-workspace/pull/3519) by [@purvsinojiya-inventyv](https://github.com/tauri-apps/plugins-workspace/../../purvsinojiya-inventyv)) Fix Android save dialog MIME type when a single MIME type is provided. +- [`f8053e65`](https://github.com/tauri-apps/plugins-workspace/commit/f8053e659e4ccd85c1f52833411ff8417cbc5e69) ([#3527](https://github.com/tauri-apps/plugins-workspace/pull/3527) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Documented Cargo feature flags in each plugin's crate-level documentation. + +### Dependencies + +- Upgraded to `fs@2.5.2` + ## \[2.7.2] - [`40ae0a7f`](https://github.com/tauri-apps/plugins-workspace/commit/40ae0a7fa0ecc9b0cdbd952297f7a17f37308229) ([#3491](https://github.com/tauri-apps/plugins-workspace/pull/3491) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Use `com.google.android.material.dialog.MaterialAlertDialogBuilder` instead of `AlertDialog` so the dialog follows the app's theme @@ -328,3 +338,4 @@ - [`717ae67`](https://github.com/tauri-apps/plugins-workspace/commit/717ae670978feb4492fac1f295998b93f2b9347f)([#371](https://github.com/tauri-apps/plugins-workspace/pull/371)) First v2 alpha release! d6e80b)([#545](https://github.com/tauri-apps/plugins-workspace/pull/545)) Fixes docs.rs build by enabling the `tauri/dox` feature flag. +g. diff --git a/plugins/dialog/Cargo.toml b/plugins/dialog/Cargo.toml index eec5af8c2..3064b1efa 100644 --- a/plugins/dialog/Cargo.toml +++ b/plugins/dialog/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-dialog" -version = "2.7.2" +version = "2.7.3" description = "Native system dialogs for opening and saving files along with message dialogs on your Tauri application." edition = { workspace = true } authors = { workspace = true } @@ -45,7 +45,7 @@ tauri = { workspace = true } log = { workspace = true } thiserror = { workspace = true } url = { workspace = true } -tauri-plugin-fs = { path = "../fs", version = "2.5.1" } +tauri-plugin-fs = { path = "../fs", version = "2.5.2" } [target.'cfg(target_os = "ios")'.dependencies] tauri = { workspace = true, features = ["wry"] } diff --git a/plugins/dialog/package.json b/plugins/dialog/package.json index 451eb1a7f..c7b8d5907 100644 --- a/plugins/dialog/package.json +++ b/plugins/dialog/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-dialog", - "version": "2.7.2", + "version": "2.7.3", "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" diff --git a/plugins/fs/CHANGELOG.md b/plugins/fs/CHANGELOG.md index 21927c65e..2622d1359 100644 --- a/plugins/fs/CHANGELOG.md +++ b/plugins/fs/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [2.5.2] + +- [`db9c5998`](https://github.com/tauri-apps/plugins-workspace/commit/db9c5998feff9384f9cbbefcbe0d45937c00a1fc) ([#3531](https://github.com/tauri-apps/plugins-workspace/pull/3531) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Fix missing `consumer-rules.pro` on Gradle v9. +- [`f8053e65`](https://github.com/tauri-apps/plugins-workspace/commit/f8053e659e4ccd85c1f52833411ff8417cbc5e69) ([#3527](https://github.com/tauri-apps/plugins-workspace/pull/3527) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Documented Cargo feature flags in each plugin's crate-level documentation. +- [`685610ae`](https://github.com/tauri-apps/plugins-workspace/commit/685610ae782b668770d412f42a5d52d2cc9e497e) ([#3507](https://github.com/tauri-apps/plugins-workspace/pull/3507) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Fix `fs:default` and `fs:read-app-specific-dirs-recursive` not giving any command scopes +- [`3fb27bf1`](https://github.com/tauri-apps/plugins-workspace/commit/3fb27bf13a88dd1e5aa2cc933408be02b0eafc91) ([#3504](https://github.com/tauri-apps/plugins-workspace/pull/3504) by [@vasfvitor](https://github.com/tauri-apps/plugins-workspace/../../vasfvitor)) Fixed `deny-webview-data` has no effect, and on Linux, only deny access to the webview data paths instead of the entire `$APPLOCALDATA` + ## \[2.5.1] - [`ec054013`](https://github.com/tauri-apps/plugins-workspace/commit/ec0540138bece081e9a87982091947360e61987a) ([#3323](https://github.com/tauri-apps/plugins-workspace/pull/3323) by [@renovate](https://github.com/tauri-apps/plugins-workspace/../../renovate)) Updated dependency `toml` from 0.9 to 1 diff --git a/plugins/fs/Cargo.toml b/plugins/fs/Cargo.toml index f32323652..0fb01028d 100644 --- a/plugins/fs/Cargo.toml +++ b/plugins/fs/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-fs" -version = "2.5.1" +version = "2.5.2" description = "Access the file system." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/fs/package.json b/plugins/fs/package.json index 7dfd96693..7fb9b3e8f 100644 --- a/plugins/fs/package.json +++ b/plugins/fs/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-fs", - "version": "2.5.1", + "version": "2.5.2", "description": "Access the file system.", "license": "MIT OR Apache-2.0", "authors": [ diff --git a/plugins/geolocation/CHANGELOG.md b/plugins/geolocation/CHANGELOG.md index 775f5d3d3..cbb3cef79 100644 --- a/plugins/geolocation/CHANGELOG.md +++ b/plugins/geolocation/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## [2.3.3] + +- [`db9c5998`](https://github.com/tauri-apps/plugins-workspace/commit/db9c5998feff9384f9cbbefcbe0d45937c00a1fc) ([#3531](https://github.com/tauri-apps/plugins-workspace/pull/3531) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Fix missing `consumer-rules.pro` on Gradle v9. +- [`f8053e65`](https://github.com/tauri-apps/plugins-workspace/commit/f8053e659e4ccd85c1f52833411ff8417cbc5e69) ([#3527](https://github.com/tauri-apps/plugins-workspace/pull/3527) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Documented Cargo feature flags in each plugin's crate-level documentation. + ## \[2.3.2] - [`93426f85`](https://github.com/tauri-apps/plugins-workspace/commit/93426f85120f49beb9f40222bff45185a32d54a9) Fixed an issue that caused docs.rs builds to fail. No user facing changes. diff --git a/plugins/geolocation/Cargo.toml b/plugins/geolocation/Cargo.toml index 352810315..3c2a50830 100644 --- a/plugins/geolocation/Cargo.toml +++ b/plugins/geolocation/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "tauri-plugin-geolocation" description = "Get and track the device's current position" -version = "2.3.2" +version = "2.3.3" edition = { workspace = true } authors = { workspace = true } license = { workspace = true } diff --git a/plugins/geolocation/package.json b/plugins/geolocation/package.json index 5fa7bc105..32bbb0e13 100644 --- a/plugins/geolocation/package.json +++ b/plugins/geolocation/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-geolocation", - "version": "2.3.2", + "version": "2.3.3", "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" diff --git a/plugins/haptics/CHANGELOG.md b/plugins/haptics/CHANGELOG.md index f72db2aed..e83e3efc8 100644 --- a/plugins/haptics/CHANGELOG.md +++ b/plugins/haptics/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## [2.3.3] + +- [`db9c5998`](https://github.com/tauri-apps/plugins-workspace/commit/db9c5998feff9384f9cbbefcbe0d45937c00a1fc) ([#3531](https://github.com/tauri-apps/plugins-workspace/pull/3531) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Fix missing `consumer-rules.pro` on Gradle v9. +- [`f8053e65`](https://github.com/tauri-apps/plugins-workspace/commit/f8053e659e4ccd85c1f52833411ff8417cbc5e69) ([#3527](https://github.com/tauri-apps/plugins-workspace/pull/3527) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Documented Cargo feature flags in each plugin's crate-level documentation. + ## \[2.3.2] - [`93426f85`](https://github.com/tauri-apps/plugins-workspace/commit/93426f85120f49beb9f40222bff45185a32d54a9) Fixed an issue that caused docs.rs builds to fail. No user facing changes. diff --git a/plugins/haptics/Cargo.toml b/plugins/haptics/Cargo.toml index a70cb1d97..524a4464f 100644 --- a/plugins/haptics/Cargo.toml +++ b/plugins/haptics/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "tauri-plugin-haptics" description = "Haptic feedback and vibrations on Android and iOS" -version = "2.3.2" +version = "2.3.3" edition = { workspace = true } authors = { workspace = true } license = { workspace = true } diff --git a/plugins/haptics/package.json b/plugins/haptics/package.json index 79ba0a24a..0a848b5a7 100644 --- a/plugins/haptics/package.json +++ b/plugins/haptics/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-haptics", - "version": "2.3.2", + "version": "2.3.3", "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" diff --git a/plugins/http/CHANGELOG.md b/plugins/http/CHANGELOG.md index 12deccbe0..604050dba 100644 --- a/plugins/http/CHANGELOG.md +++ b/plugins/http/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +## [2.6.0] + +- [`f8053e65`](https://github.com/tauri-apps/plugins-workspace/commit/f8053e659e4ccd85c1f52833411ff8417cbc5e69) ([#3527](https://github.com/tauri-apps/plugins-workspace/pull/3527) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Documented Cargo feature flags in each plugin's crate-level documentation. +- [`19fb3926`](https://github.com/tauri-apps/plugins-workspace/commit/19fb3926fd24d95371bc3a7593256861df406436) ([#3528](https://github.com/tauri-apps/plugins-workspace/pull/3528) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Added `system-proxy` feature to replace the old `macos-system-configuration` feature flag to match the new reqwest API. + +### Dependencies + +- Upgraded to `fs-js@2.5.2` + ## \[2.5.9] ### Dependencies diff --git a/plugins/http/Cargo.toml b/plugins/http/Cargo.toml index 3ca5b1099..16f67bcbf 100644 --- a/plugins/http/Cargo.toml +++ b/plugins/http/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-http" -version = "2.5.9" +version = "2.6.0" description = "Access an HTTP client written in Rust." edition = { workspace = true } authors = { workspace = true } @@ -37,7 +37,7 @@ serde_json = { workspace = true } tauri = { workspace = true } thiserror = { workspace = true } tokio = { version = "1", features = ["sync", "macros"] } -tauri-plugin-fs = { path = "../fs", version = "2.5.1" } +tauri-plugin-fs = { path = "../fs", version = "2.5.2" } urlpattern = "0.3" regex = "1" http = "1" diff --git a/plugins/http/package.json b/plugins/http/package.json index 0f87e658d..bc93fda91 100644 --- a/plugins/http/package.json +++ b/plugins/http/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-http", - "version": "2.5.9", + "version": "2.6.0", "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" diff --git a/plugins/log/CHANGELOG.md b/plugins/log/CHANGELOG.md index b9cd0dcc7..abf71431e 100644 --- a/plugins/log/CHANGELOG.md +++ b/plugins/log/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## [2.9.1] + +- [`f8053e65`](https://github.com/tauri-apps/plugins-workspace/commit/f8053e659e4ccd85c1f52833411ff8417cbc5e69) ([#3527](https://github.com/tauri-apps/plugins-workspace/pull/3527) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Documented Cargo feature flags in each plugin's crate-level documentation. + ## \[2.9.0] - [`f08980f1`](https://github.com/tauri-apps/plugins-workspace/commit/f08980f123f191b9505bd290acd8fff0fdefeed9) ([#3445](https://github.com/tauri-apps/plugins-workspace/pull/3445) by [@bajoca05](https://github.com/tauri-apps/plugins-workspace/../../bajoca05)) Added the `FileOpenStrategy` for log rotation. It defaults to append into existing file if any (previous behaviour), and brings a new feature to create a new file per session: `FileOpenStrategy::Rotate`. diff --git a/plugins/log/Cargo.toml b/plugins/log/Cargo.toml index 4b2ad547f..bd655a0ae 100644 --- a/plugins/log/Cargo.toml +++ b/plugins/log/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-log" -version = "2.9.0" +version = "2.9.1" description = "Configurable logging for your Tauri app." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/log/package.json b/plugins/log/package.json index 342e12500..bb2db12e8 100644 --- a/plugins/log/package.json +++ b/plugins/log/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-log", - "version": "2.9.0", + "version": "2.9.1", "description": "Configurable logging for your Tauri app.", "license": "MIT OR Apache-2.0", "authors": [ diff --git a/plugins/nfc/CHANGELOG.md b/plugins/nfc/CHANGELOG.md index 2dd0bc614..723981e96 100644 --- a/plugins/nfc/CHANGELOG.md +++ b/plugins/nfc/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## [2.3.6] + +- [`db9c5998`](https://github.com/tauri-apps/plugins-workspace/commit/db9c5998feff9384f9cbbefcbe0d45937c00a1fc) ([#3531](https://github.com/tauri-apps/plugins-workspace/pull/3531) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Fix missing `consumer-rules.pro` on Gradle v9. +- [`52672616`](https://github.com/tauri-apps/plugins-workspace/commit/526726162f8ddddf9469797436123704a261df87) ([#3419](https://github.com/tauri-apps/plugins-workspace/pull/3419) by [@pascalauroboa](https://github.com/tauri-apps/plugins-workspace/../../pascalauroboa)) Expect a `NFCTag` as input and return a `ScanResponse` in the `scan` function. + ## \[2.3.5] - [`ab037b70`](https://github.com/tauri-apps/plugins-workspace/commit/ab037b70d6fb54f1ad07d5fe21c41bd1997b34dd) ([#3339](https://github.com/tauri-apps/plugins-workspace/pull/3339) by [@crazy-genius](https://github.com/tauri-apps/plugins-workspace/../../crazy-genius)) Fixed syntax error in kotlin files potentially causing issues when trying to write to tags when no prior session existed. diff --git a/plugins/nfc/Cargo.toml b/plugins/nfc/Cargo.toml index 0b1a4976d..c0e7ed0a1 100644 --- a/plugins/nfc/Cargo.toml +++ b/plugins/nfc/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-nfc" -version = "2.3.5" +version = "2.3.6" description = "Read and write NFC tags on Android and iOS." edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/nfc/package.json b/plugins/nfc/package.json index 010b34a33..366bf1c43 100644 --- a/plugins/nfc/package.json +++ b/plugins/nfc/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-nfc", - "version": "2.3.5", + "version": "2.3.6", "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" diff --git a/plugins/notification/CHANGELOG.md b/plugins/notification/CHANGELOG.md index cc649e166..48c2f4acc 100644 --- a/plugins/notification/CHANGELOG.md +++ b/plugins/notification/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## [2.4.0] + +- [`db9c5998`](https://github.com/tauri-apps/plugins-workspace/commit/db9c5998feff9384f9cbbefcbe0d45937c00a1fc) ([#3531](https://github.com/tauri-apps/plugins-workspace/pull/3531) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Fix missing `consumer-rules.pro` on Gradle v9. +- [`304292d7`](https://github.com/tauri-apps/plugins-workspace/commit/304292d740a666d3903ab58329860fc0fdde2818) ([#2805](https://github.com/tauri-apps/plugins-workspace/pull/2805) by [@Innominus](https://github.com/tauri-apps/plugins-workspace/../../Innominus)) - Add Rust builders for mobile notification action types. + - Fix Android action-group entries being stored under the action type ID instead of sequential indices, causing later actions to overwrite earlier ones. + ## \[2.3.3] - [`93426f85`](https://github.com/tauri-apps/plugins-workspace/commit/93426f85120f49beb9f40222bff45185a32d54a9) Fixed an issue that caused docs.rs builds to fail. No user facing changes. diff --git a/plugins/notification/Cargo.toml b/plugins/notification/Cargo.toml index a352f9665..1034932fa 100644 --- a/plugins/notification/Cargo.toml +++ b/plugins/notification/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-notification" -version = "2.3.3" +version = "2.4.0" description = "Send desktop and mobile notifications on your Tauri application." edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/notification/package.json b/plugins/notification/package.json index 3f6fc0ad8..58d64a037 100644 --- a/plugins/notification/package.json +++ b/plugins/notification/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-notification", - "version": "2.3.3", + "version": "2.4.0", "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" diff --git a/plugins/opener/CHANGELOG.md b/plugins/opener/CHANGELOG.md index 9676fefc9..e11e047ba 100644 --- a/plugins/opener/CHANGELOG.md +++ b/plugins/opener/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## [2.5.5] + +- [`db9c5998`](https://github.com/tauri-apps/plugins-workspace/commit/db9c5998feff9384f9cbbefcbe0d45937c00a1fc) ([#3531](https://github.com/tauri-apps/plugins-workspace/pull/3531) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Fix missing `consumer-rules.pro` on Gradle v9. + ## \[2.5.4] - [`c1fd33b3`](https://github.com/tauri-apps/plugins-workspace/commit/c1fd33b3a2735f2e25c1d026dc524af932db3315) ([#3343](https://github.com/tauri-apps/plugins-workspace/pull/3343) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Fix `revealItemInDir`/`reveal_items_in_dir` can't reveal network paths like `\\wsl.localhost\Ubuntu\etc` on Windows diff --git a/plugins/opener/Cargo.toml b/plugins/opener/Cargo.toml index 4b5e3b353..553da64d1 100644 --- a/plugins/opener/Cargo.toml +++ b/plugins/opener/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-opener" -version = "2.5.4" +version = "2.5.5" description = "Open files and URLs using their default application." edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/opener/package.json b/plugins/opener/package.json index f5bae176c..f51f27a1f 100644 --- a/plugins/opener/package.json +++ b/plugins/opener/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-opener", - "version": "2.5.4", + "version": "2.5.5", "description": "Open files and URLs using their default application.", "license": "MIT OR Apache-2.0", "authors": [ diff --git a/plugins/persisted-scope/CHANGELOG.md b/plugins/persisted-scope/CHANGELOG.md index 6d979d203..3dccf26b1 100644 --- a/plugins/persisted-scope/CHANGELOG.md +++ b/plugins/persisted-scope/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## [2.3.8] + +- [`f8053e65`](https://github.com/tauri-apps/plugins-workspace/commit/f8053e659e4ccd85c1f52833411ff8417cbc5e69) ([#3527](https://github.com/tauri-apps/plugins-workspace/pull/3527) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Documented Cargo feature flags in each plugin's crate-level documentation. + +### Dependencies + +- Upgraded to `fs@2.5.2` + ## \[2.3.7] ### Dependencies diff --git a/plugins/persisted-scope/Cargo.toml b/plugins/persisted-scope/Cargo.toml index b654da99d..507b5ca28 100644 --- a/plugins/persisted-scope/Cargo.toml +++ b/plugins/persisted-scope/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-persisted-scope" -version = "2.3.7" +version = "2.3.8" description = "Save filesystem and asset scopes and restore them when the app is reopened." authors = { workspace = true } license = { workspace = true } @@ -24,7 +24,7 @@ log = { workspace = true } thiserror = { workspace = true } aho-corasick = "1" bincode = "1" -tauri-plugin-fs = { path = "../fs", version = "2.5.1" } +tauri-plugin-fs = { path = "../fs", version = "2.5.2" } [features] protocol-asset = ["tauri/protocol-asset"] diff --git a/plugins/positioner/CHANGELOG.md b/plugins/positioner/CHANGELOG.md index b427a1c15..f4710bb91 100644 --- a/plugins/positioner/CHANGELOG.md +++ b/plugins/positioner/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## [2.3.4] + +- [`f8053e65`](https://github.com/tauri-apps/plugins-workspace/commit/f8053e659e4ccd85c1f52833411ff8417cbc5e69) ([#3527](https://github.com/tauri-apps/plugins-workspace/pull/3527) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Documented Cargo feature flags in each plugin's crate-level documentation. + ## \[2.3.3] - [`4be76900`](https://github.com/tauri-apps/plugins-workspace/commit/4be76900854cae3dc91363dea71b54505896e928) ([#3449](https://github.com/tauri-apps/plugins-workspace/pull/3449) by [@skkap](https://github.com/tauri-apps/plugins-workspace/../../skkap)) Replaced a panic in `calculate_position` with an error return when the window has no associated monitor (e.g. during display sleep or monitor reconfiguration). diff --git a/plugins/positioner/Cargo.toml b/plugins/positioner/Cargo.toml index 46ddf3357..634eaa046 100644 --- a/plugins/positioner/Cargo.toml +++ b/plugins/positioner/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-positioner" -version = "2.3.3" +version = "2.3.4" description = "Position your windows at well-known locations." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/positioner/package.json b/plugins/positioner/package.json index 94b78f500..bd27bbaa9 100644 --- a/plugins/positioner/package.json +++ b/plugins/positioner/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-positioner", - "version": "2.3.3", + "version": "2.3.4", "description": "Position your windows at well-known locations.", "license": "MIT OR Apache-2.0", "authors": [ diff --git a/plugins/shell/CHANGELOG.md b/plugins/shell/CHANGELOG.md index d93aee7ff..e8657a19d 100644 --- a/plugins/shell/CHANGELOG.md +++ b/plugins/shell/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## [2.3.6] + +- [`db9c5998`](https://github.com/tauri-apps/plugins-workspace/commit/db9c5998feff9384f9cbbefcbe0d45937c00a1fc) ([#3531](https://github.com/tauri-apps/plugins-workspace/pull/3531) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Fix missing `consumer-rules.pro` on Gradle v9. + ## \[2.3.5] ### bug diff --git a/plugins/shell/Cargo.toml b/plugins/shell/Cargo.toml index 62b4d4881..5b51d64a2 100644 --- a/plugins/shell/Cargo.toml +++ b/plugins/shell/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-shell" -version = "2.3.5" +version = "2.3.6" description = "Access the system shell. Allows you to spawn child processes and manage files and URLs using their default application." edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/shell/package.json b/plugins/shell/package.json index 9e4df1d4a..cf5ef5c2f 100644 --- a/plugins/shell/package.json +++ b/plugins/shell/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-shell", - "version": "2.3.5", + "version": "2.3.6", "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" diff --git a/plugins/single-instance/CHANGELOG.md b/plugins/single-instance/CHANGELOG.md index 08b77d46f..c2bb43881 100644 --- a/plugins/single-instance/CHANGELOG.md +++ b/plugins/single-instance/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## [2.4.4] + +- [`f8053e65`](https://github.com/tauri-apps/plugins-workspace/commit/f8053e659e4ccd85c1f52833411ff8417cbc5e69) ([#3527](https://github.com/tauri-apps/plugins-workspace/pull/3527) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Documented Cargo feature flags in each plugin's crate-level documentation. + +### Dependencies + +- Upgraded to `deep-link@2.4.10` + ## \[2.4.3] - [`d1573877`](https://github.com/tauri-apps/plugins-workspace/commit/d1573877226e609461761aa538cd0ca4f24d22be) ([#3466](https://github.com/tauri-apps/plugins-workspace/pull/3466) by [@bajoca05](https://github.com/tauri-apps/plugins-workspace/../../bajoca05)) Fix blocked thread on the single-instance plugin for MacOS: replace standard `UnixListener` with `tokio::net::UnixListener`, so the task can yield. diff --git a/plugins/single-instance/Cargo.toml b/plugins/single-instance/Cargo.toml index 70f918ca6..9e3404743 100644 --- a/plugins/single-instance/Cargo.toml +++ b/plugins/single-instance/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-single-instance" -version = "2.4.3" +version = "2.4.4" description = "Ensure a single instance of your tauri app is running." authors = { workspace = true } license = { workspace = true } @@ -22,7 +22,7 @@ serde_json = { workspace = true } tauri = { workspace = true } tracing = { workspace = true } thiserror = { workspace = true } -tauri-plugin-deep-link = { path = "../deep-link", version = "2.4.9", optional = true } +tauri-plugin-deep-link = { path = "../deep-link", version = "2.4.10", optional = true } semver = { version = "1", optional = true } tokio = { version = "1", features = ["net"] } diff --git a/plugins/sql/CHANGELOG.md b/plugins/sql/CHANGELOG.md index 034c43fb4..35c93c58b 100644 --- a/plugins/sql/CHANGELOG.md +++ b/plugins/sql/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## [2.4.1] + +- [`f8053e65`](https://github.com/tauri-apps/plugins-workspace/commit/f8053e659e4ccd85c1f52833411ff8417cbc5e69) ([#3527](https://github.com/tauri-apps/plugins-workspace/pull/3527) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Documented Cargo feature flags in each plugin's crate-level documentation. + ## \[2.4.0] - [`1dc36128`](https://github.com/tauri-apps/plugins-workspace/commit/1dc36128624f6954e09ea1574f68615e34e83f63) ([#3275](https://github.com/tauri-apps/plugins-workspace/pull/3275) by [@mikenikles](https://github.com/tauri-apps/plugins-workspace/../../mikenikles)) Add support for Postgres `NUMERIC` and custom data types. diff --git a/plugins/sql/Cargo.toml b/plugins/sql/Cargo.toml index 405965a00..4cb324af8 100644 --- a/plugins/sql/Cargo.toml +++ b/plugins/sql/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-sql" -version = "2.4.0" +version = "2.4.1" description = "Interface with SQL databases." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/sql/package.json b/plugins/sql/package.json index eb3617294..b6eb93fbb 100644 --- a/plugins/sql/package.json +++ b/plugins/sql/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-sql", - "version": "2.4.0", + "version": "2.4.1", "description": "Interface with SQL databases", "license": "MIT OR Apache-2.0", "authors": [ diff --git a/plugins/stronghold/CHANGELOG.md b/plugins/stronghold/CHANGELOG.md index 0bea66eff..600f2eb12 100644 --- a/plugins/stronghold/CHANGELOG.md +++ b/plugins/stronghold/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## [2.3.2] + +- [`f8053e65`](https://github.com/tauri-apps/plugins-workspace/commit/f8053e659e4ccd85c1f52833411ff8417cbc5e69) ([#3527](https://github.com/tauri-apps/plugins-workspace/pull/3527) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Documented Cargo feature flags in each plugin's crate-level documentation. + ## \[2.3.1] - [`93426f85`](https://github.com/tauri-apps/plugins-workspace/commit/93426f85120f49beb9f40222bff45185a32d54a9) Fixed an issue that caused docs.rs builds to fail. No user facing changes. diff --git a/plugins/stronghold/Cargo.toml b/plugins/stronghold/Cargo.toml index a8438d670..e6038a007 100644 --- a/plugins/stronghold/Cargo.toml +++ b/plugins/stronghold/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-stronghold" -version = "2.3.1" +version = "2.3.2" description = "Store secrets and keys using the IOTA Stronghold secret management engine." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/stronghold/package.json b/plugins/stronghold/package.json index 22b47c0a4..446254b81 100644 --- a/plugins/stronghold/package.json +++ b/plugins/stronghold/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-stronghold", - "version": "2.3.1", + "version": "2.3.2", "description": "Store secrets and keys using the IOTA Stronghold encrypted database.", "license": "MIT OR Apache-2.0", "authors": [ diff --git a/plugins/updater/CHANGELOG.md b/plugins/updater/CHANGELOG.md index 8e84961f1..9527f65d3 100644 --- a/plugins/updater/CHANGELOG.md +++ b/plugins/updater/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [2.11.0] + +- [`f8053e65`](https://github.com/tauri-apps/plugins-workspace/commit/f8053e659e4ccd85c1f52833411ff8417cbc5e69) ([#3527](https://github.com/tauri-apps/plugins-workspace/pull/3527) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Documented Cargo feature flags in each plugin's crate-level documentation. +- [`622f02bf`](https://github.com/tauri-apps/plugins-workspace/commit/622f02bf21858f0cff95419fc042ce02b8c6b18b) ([#3516](https://github.com/tauri-apps/plugins-workspace/pull/3516) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) On Windows, returns an error if failed to spawn the installer in `install` through `ShellExecuteW` +- [`ab7489c9`](https://github.com/tauri-apps/plugins-workspace/commit/ab7489c964977c2cc19cdc303bd8f7142d5f5a2c) ([#3299](https://github.com/tauri-apps/plugins-workspace/pull/3299) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) On Windows, add a new option `restartAfterInstall`/`restart_after_install` to install an update without the installer re-launching the app +- [`2371be83`](https://github.com/tauri-apps/plugins-workspace/commit/2371be839f9ae46dd2b0529a2d1598f2b6270ab1) ([#3526](https://github.com/tauri-apps/plugins-workspace/pull/3526) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Added `system-proxy` (enabled by default) feature flag to control `reqwest/system-proxy` feature (Use Windows and macOS system proxy settings automatically) + ## \[2.10.1] - [`31ab6f8d`](https://github.com/tauri-apps/plugins-workspace/commit/31ab6f8d2466d86c80b1d70510c0400ce2cdcb0a) ([#3285](https://github.com/tauri-apps/plugins-workspace/pull/3285) by [@hrzlgnm](https://github.com/tauri-apps/plugins-workspace/../../hrzlgnm)) fix: preserve file extension of updater package, otherwise users may get confused when presented with a sudo dialog suggesting to install a file with the extension `.rpm` using `dpkg -i` diff --git a/plugins/updater/Cargo.toml b/plugins/updater/Cargo.toml index f1cf20bc0..4ca645e92 100644 --- a/plugins/updater/Cargo.toml +++ b/plugins/updater/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-updater" -version = "2.10.1" +version = "2.11.0" description = "In-app updates for Tauri applications." edition = { workspace = true } authors = { workspace = true } diff --git a/plugins/updater/package.json b/plugins/updater/package.json index c9eae9dd6..44547c299 100644 --- a/plugins/updater/package.json +++ b/plugins/updater/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-updater", - "version": "2.10.1", + "version": "2.11.0", "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" diff --git a/plugins/upload/CHANGELOG.md b/plugins/upload/CHANGELOG.md index 49b3ecc17..ccd5dc3b0 100644 --- a/plugins/upload/CHANGELOG.md +++ b/plugins/upload/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## [2.4.1] + +- [`f8053e65`](https://github.com/tauri-apps/plugins-workspace/commit/f8053e659e4ccd85c1f52833411ff8417cbc5e69) ([#3527](https://github.com/tauri-apps/plugins-workspace/pull/3527) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Documented Cargo feature flags in each plugin's crate-level documentation. + ## \[2.4.0] - [`ad910b11`](https://github.com/tauri-apps/plugins-workspace/commit/ad910b1135d5cb57a67ca022ae6beb0dca460f9c) ([#2991](https://github.com/tauri-apps/plugins-workspace/pull/2991) by [@velocitysystems](https://github.com/tauri-apps/plugins-workspace/../../velocitysystems)) Upload plugin now supports specifying an HTTP method i.e. POST, PUT etc. diff --git a/plugins/upload/Cargo.toml b/plugins/upload/Cargo.toml index b50fbc2d7..c46c6d2aa 100644 --- a/plugins/upload/Cargo.toml +++ b/plugins/upload/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-upload" -version = "2.4.0" +version = "2.4.1" description = "Upload files from disk to a remote server over HTTP." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/upload/package.json b/plugins/upload/package.json index ba53a8f8e..b9b78d496 100644 --- a/plugins/upload/package.json +++ b/plugins/upload/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-upload", - "version": "2.4.0", + "version": "2.4.1", "description": "Upload files from disk to a remote server over HTTP.", "license": "MIT OR Apache-2.0", "authors": [ diff --git a/plugins/websocket/CHANGELOG.md b/plugins/websocket/CHANGELOG.md index 31cacc0e2..bfb94e1b9 100644 --- a/plugins/websocket/CHANGELOG.md +++ b/plugins/websocket/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## [2.4.3] + +- [`f8053e65`](https://github.com/tauri-apps/plugins-workspace/commit/f8053e659e4ccd85c1f52833411ff8417cbc5e69) ([#3527](https://github.com/tauri-apps/plugins-workspace/pull/3527) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Documented Cargo feature flags in each plugin's crate-level documentation. + ## \[2.4.2] ### bug diff --git a/plugins/websocket/Cargo.toml b/plugins/websocket/Cargo.toml index babd109fc..1e256d272 100644 --- a/plugins/websocket/Cargo.toml +++ b/plugins/websocket/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-plugin-websocket" -version = "2.4.2" +version = "2.4.3" description = "Expose a WebSocket server to your Tauri frontend." authors = { workspace = true } license = { workspace = true } diff --git a/plugins/websocket/package.json b/plugins/websocket/package.json index e10fc47e3..c5fd867d0 100644 --- a/plugins/websocket/package.json +++ b/plugins/websocket/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/plugin-websocket", - "version": "2.4.2", + "version": "2.4.3", "license": "MIT OR Apache-2.0", "authors": [ "Tauri Programme within The Commons Conservancy" From 845d8989cbd2fb1913ea0d62618591298a181495 Mon Sep 17 00:00:00 2001 From: Tony <68118705+Legend-Master@users.noreply.github.com> Date: Tue, 1 Sep 2026 17:38:21 +0800 Subject: [PATCH 37/41] fix: ignore and fix audits (#3564) * fix: ignore and fix audits * openssl-sys 0.9.114 --- .cargo/audit.toml | 3 +++ Cargo.lock | 16 +++++++++------- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/.cargo/audit.toml b/.cargo/audit.toml index 9316268d7..de84e84c5 100644 --- a/.cargo/audit.toml +++ b/.cargo/audit.toml @@ -14,4 +14,7 @@ ignore = [ "RUSTSEC-2026-0195", # quinn-proto, can't be updated in the repo because of MSRV, users are unaffected "RUSTSEC-2026-0185", + # rkyv is not used, it's brought in by `rust_decimal`'s `rkyv` feature to the lockfile, + # but that feature is not enabled by anything + "RUSTSEC-2026-0235", ] diff --git a/Cargo.lock b/Cargo.lock index f6a8926b8..22fbc476f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3826,7 +3826,7 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ - "proc-macro-crate 3.3.0", + "proc-macro-crate 1.3.1", "proc-macro2", "quote", "syn 2.0.100", @@ -4123,9 +4123,9 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.72" +version = "0.10.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fedfea7d58a1f73118430a55da6a286e7b044961736ce96a16a17068ea25e5da" +checksum = "f38c4372413cdaaf3cc79dd92d29d7d9f5ab09b51b10dded508fb90bb70b9222" dependencies = [ "bitflags 2.9.0", "cfg-if", @@ -4164,9 +4164,9 @@ dependencies = [ [[package]] name = "openssl-sys" -version = "0.9.107" +version = "0.9.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8288979acd84749c744a9014b4382d42b8f7b2592847b5afb2ed29e5d16ede07" +checksum = "13ce1245cd07fcc4cfdb438f7507b0c7e4f3849a69fd84d52374c66d83741bb6" dependencies = [ "cc", "libc", @@ -5122,9 +5122,9 @@ dependencies = [ [[package]] name = "rust_decimal" -version = "1.37.1" +version = "1.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faa7de2ba56ac291bd90c6b9bece784a52ae1411f9506544b3eae36dd2356d50" +checksum = "be2a24f50780bc85f09cc6ac299bdf1424302742d77221106859c9d8b102126a" dependencies = [ "arrayvec", "borsh", @@ -5134,6 +5134,7 @@ dependencies = [ "rkyv", "serde", "serde_json", + "wasm-bindgen", ] [[package]] @@ -7837,6 +7838,7 @@ dependencies = [ "cfg-if", "once_cell", "rustversion", + "serde", "wasm-bindgen-macro", ] From a21555ddd2eaadfed23848912fe2802c2ba7579e Mon Sep 17 00:00:00 2001 From: Den Ilin Date: Fri, 4 Sep 2026 01:00:34 +0700 Subject: [PATCH 38/41] fix(http): stop unhandled rejections from the fetch cleanup path (#3566) * fix(http): stop unhandled rejections from the fetch cleanup path The request/body cleanup commands are fired as floating promises, and the Rust side releases a resource only once: fetch_cancel_body is resources_table.close(rid)?, and fetch_read_body also closes the rid at end-of-body. So every release after the first rejects with BadResourceId into a promise nobody is listening to. Make dropBody idempotent and let both cleanup calls handle their own rejection. * chore: add changefile * chore(http): rebuild api-iife.js --- .changes/http-floating-cleanup-rejections.md | 6 ++++++ plugins/http/api-iife.js | 2 +- plugins/http/guest-js/index.ts | 15 ++++++++++----- 3 files changed, 17 insertions(+), 6 deletions(-) create mode 100644 .changes/http-floating-cleanup-rejections.md diff --git a/.changes/http-floating-cleanup-rejections.md b/.changes/http-floating-cleanup-rejections.md new file mode 100644 index 000000000..17da05d7b --- /dev/null +++ b/.changes/http-floating-cleanup-rejections.md @@ -0,0 +1,6 @@ +--- +"http": patch +"http-js": patch +--- + +Fix unhandled promise rejections on every `fetch` teardown: the request/body cleanup commands were fired as floating promises, and releasing an already-released resource rejects with `The resource id N is invalid.`. `dropBody` is now idempotent and both cleanup calls handle their own rejection. diff --git a/plugins/http/api-iife.js b/plugins/http/api-iife.js index f6e2bc929..250598a49 100644 --- a/plugins/http/api-iife.js +++ b/plugins/http/api-iife.js @@ -1 +1 @@ -if("__TAURI__"in window){var __TAURI_PLUGIN_HTTP__=function(e){"use strict";async function t(e,t={},r){return window.__TAURI_INTERNALS__.invoke(e,t,r)}"function"==typeof SuppressedError&&SuppressedError;const r="Request cancelled";return e.fetch=async function(e,n){const a=n?.signal;if(a?.aborted)throw new Error(r);const o=n?.maxRedirections,i=n?.connectTimeout,s=n?.proxy,d=n?.danger;n&&(delete n.maxRedirections,delete n.connectTimeout,delete n.proxy,delete n.danger);const c=n?.headers?n.headers instanceof Headers?n.headers:new Headers(n.headers):new Headers,l=new Request(e,n),u=await l.arrayBuffer(),f=0!==u.byteLength?Array.from(new Uint8Array(u)):null;for(const[e,t]of l.headers)c.get(e)||c.set(e,t);const _=(c instanceof Headers?Array.from(c.entries()):Array.isArray(c)?c:Object.entries(c)).map(([e,t])=>[e,"string"==typeof t?t:t.toString()]);if(a?.aborted)throw new Error(r);const h=await t("plugin:http|fetch",{clientConfig:{method:l.method,url:l.url,headers:_,data:f,maxRedirections:o,connectTimeout:i,proxy:s,danger:d}}),p=()=>t("plugin:http|fetch_cancel",{rid:h});if(a?.aborted)throw p(),new Error(r);a?.addEventListener("abort",()=>{p()});const{status:w,statusText:y,url:b,headers:g,rid:T}=await t("plugin:http|fetch_send",{rid:h}),R=()=>t("plugin:http|fetch_cancel_body",{rid:T}),m=[101,103,204,205,304].includes(w)?null:new ReadableStream({start:e=>{a?.addEventListener("abort",()=>{e.error(r),R()})},pull:e=>(async e=>{let r;try{r=await t("plugin:http|fetch_read_body",{rid:T})}catch(t){return e.error(t),void R()}const n=new Uint8Array(r),a=n[n.byteLength-1],o=n.slice(0,n.byteLength-1);1!==a?e.enqueue(o):e.close()})(e),cancel:()=>{R()}}),A=new Response(m,{status:w,statusText:y});Object.defineProperty(A,"url",{value:b,writable:!1}),Object.defineProperty(A,"headers",{value:new Headers(g),writable:!1});const v=A.clone.bind(A);return Object.defineProperty(A,"clone",{value:()=>{const e=v();return Object.defineProperty(e,"url",{value:b,writable:!1}),Object.defineProperty(e,"headers",{value:new Headers(g),writable:!1}),e}}),A},e}({});Object.defineProperty(window.__TAURI__,"http",{value:__TAURI_PLUGIN_HTTP__})} +if("__TAURI__"in window){var __TAURI_PLUGIN_HTTP__=function(e){"use strict";async function t(e,t={},r){return window.__TAURI_INTERNALS__.invoke(e,t,r)}"function"==typeof SuppressedError&&SuppressedError;const r="Request cancelled";return e.fetch=async function(e,n){const a=n?.signal;if(a?.aborted)throw new Error(r);const o=n?.maxRedirections,s=n?.connectTimeout,i=n?.proxy,c=n?.danger;n&&(delete n.maxRedirections,delete n.connectTimeout,delete n.proxy,delete n.danger);const d=n?.headers?n.headers instanceof Headers?n.headers:new Headers(n.headers):new Headers,l=new Request(e,n),u=await l.arrayBuffer(),h=0!==u.byteLength?Array.from(new Uint8Array(u)):null;for(const[e,t]of l.headers)d.get(e)||d.set(e,t);const f=(d instanceof Headers?Array.from(d.entries()):Array.isArray(d)?d:Object.entries(d)).map(([e,t])=>[e,"string"==typeof t?t:t.toString()]);if(a?.aborted)throw new Error(r);const _=await t("plugin:http|fetch",{clientConfig:{method:l.method,url:l.url,headers:f,data:h,maxRedirections:o,connectTimeout:s,proxy:i,danger:c}}),p=()=>t("plugin:http|fetch_cancel",{rid:_}).catch(()=>{});if(a?.aborted)throw p(),new Error(r);a?.addEventListener("abort",()=>{p()});const{status:w,statusText:y,url:b,headers:g,rid:T}=await t("plugin:http|fetch_send",{rid:_});let m=!1;const R=()=>m?Promise.resolve():(m=!0,t("plugin:http|fetch_cancel_body",{rid:T}).catch(()=>{})),v=[101,103,204,205,304].includes(w)?null:new ReadableStream({start:e=>{a?.addEventListener("abort",()=>{e.error(r),R()})},pull:e=>(async e=>{let r;try{r=await t("plugin:http|fetch_read_body",{rid:T})}catch(t){return e.error(t),void R()}const n=new Uint8Array(r),a=n[n.byteLength-1],o=n.slice(0,n.byteLength-1);1!==a?e.enqueue(o):e.close()})(e),cancel:()=>{R()}}),A=new Response(v,{status:w,statusText:y});Object.defineProperty(A,"url",{value:b,writable:!1}),Object.defineProperty(A,"headers",{value:new Headers(g),writable:!1});const P=A.clone.bind(A);return Object.defineProperty(A,"clone",{value:()=>{const e=P();return Object.defineProperty(e,"url",{value:b,writable:!1}),Object.defineProperty(e,"headers",{value:new Headers(g),writable:!1}),e}}),A},e}({});Object.defineProperty(window.__TAURI__,"http",{value:__TAURI_PLUGIN_HTTP__})} diff --git a/plugins/http/guest-js/index.ts b/plugins/http/guest-js/index.ts index 57e81978f..9426e35fe 100644 --- a/plugins/http/guest-js/index.ts +++ b/plugins/http/guest-js/index.ts @@ -199,14 +199,14 @@ export async function fetch( } }) - const abort = () => invoke('plugin:http|fetch_cancel', { rid }) + const abort = () => + invoke('plugin:http|fetch_cancel', { rid }).catch(() => {}) // Optimistically check for abort signal // and avoid doing any work after doing intial work on the Rust side if (signal?.aborted) { - // we don't care about the result of this proimse - // eslint-disable-next-line @typescript-eslint/no-floating-promises - abort() + // we don't care about the result of this promise + void abort() throw new Error(ERROR_REQUEST_CANCELLED) } @@ -230,8 +230,13 @@ export async function fetch( rid }) + let bodyDropped = false const dropBody = () => { - return invoke('plugin:http|fetch_cancel_body', { rid: responseRid }) + if (bodyDropped) return Promise.resolve() + bodyDropped = true + return invoke('plugin:http|fetch_cancel_body', { rid: responseRid }).catch( + () => {} + ) } const readChunk = async ( From b48d52cf6eb59b12fd5ad5e4b7cde864c03ebd5b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 9 Sep 2026 12:43:07 +0800 Subject: [PATCH 39/41] chore(deps): update dependency rollup to v4.63.1 (#3558) * chore(deps): update dependency rollup to v4.63.1 * fix audit --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Tony --- package.json | 2 +- pnpm-lock.yaml | 263 +++++++++++++++++++++++++------------------------ 2 files changed, 137 insertions(+), 128 deletions(-) diff --git a/package.json b/package.json index d962ef48b..d987ba7ea 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "eslint-config-prettier": "10.1.8", "eslint-plugin-security": "4.0.1", "prettier": "3.8.3", - "rollup": "4.62.5", + "rollup": "4.63.1", "tslib": "2.8.1", "typescript": "6.0.3", "typescript-eslint": "8.66.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 949320e10..56e0156e5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,13 +13,13 @@ importers: version: 10.0.1(eslint@10.4.0(jiti@2.6.1)) '@rollup/plugin-node-resolve': specifier: 16.0.3 - version: 16.0.3(rollup@4.62.5) + version: 16.0.3(rollup@4.63.1) '@rollup/plugin-terser': specifier: 1.0.0 - version: 1.0.0(rollup@4.62.5) + version: 1.0.0(rollup@4.63.1) '@rollup/plugin-typescript': specifier: 12.3.0 - version: 12.3.0(rollup@4.62.5)(tslib@2.8.1)(typescript@6.0.3) + version: 12.3.0(rollup@4.63.1)(tslib@2.8.1)(typescript@6.0.3) eslint: specifier: 10.4.0 version: 10.4.0(jiti@2.6.1) @@ -33,8 +33,8 @@ importers: specifier: 3.8.3 version: 3.8.3 rollup: - specifier: 4.62.5 - version: 4.62.5 + specifier: 4.63.1 + version: 4.63.1 tslib: specifier: 2.8.1 version: 2.8.1 @@ -564,12 +564,16 @@ packages: resolution: {integrity: sha512-rZAP3aVgB9ds9KOeUSL+zZ21hPmo8dh6fnIFwRQj5EAZl9gzR7wxYbYXYysAM8CTqGmUGyp2S4kUdV17MnGuWQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@humanfs/core@0.19.1': - resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} + '@humanfs/core@0.19.2': + resolution: {integrity: sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==} engines: {node: '>=18.18.0'} - '@humanfs/node@0.16.7': - resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==} + '@humanfs/node@0.16.8': + resolution: {integrity: sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==} + engines: {node: '>=18.18.0'} + + '@humanfs/types@0.15.0': + resolution: {integrity: sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==} engines: {node: '>=18.18.0'} '@humanwhocodes/module-importer@1.0.1': @@ -901,141 +905,141 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.62.5': - resolution: {integrity: sha512-jfkGfTwhQpsiSckPF8r9bU3pn3vyd72NlWaO+TgEO6WPSDnUhXzrNYCHBMOYj0ACaUgjm6eERLF+XV9a6RstoA==} + '@rollup/rollup-android-arm-eabi@4.63.1': + resolution: {integrity: sha512-UZ8sUxPTiHWYX9QNdJedb1kDZSpS1t/VPWBWGSgqHNi9w3Cu6IXvu2mzbhiTiPvtrqgTQJ+zqiAq2iPIPilpaQ==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.62.5': - resolution: {integrity: sha512-oGVqyQlxnrz9/ty89oHpU857VUHEl5/Xu4R2lS+aivCTrNnSsbiENzTnNaBsjxH0CNWGPhzHArOLFwo+oKXveA==} + '@rollup/rollup-android-arm64@4.63.1': + resolution: {integrity: sha512-cQ4nFQABN5cDvDpbvJ7bMStCpnaVxynZrRMfUJYgxcIk9Sh54FIO1vtfkg0B69REjER77ioZ/ov+eAApx/KmLQ==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.62.5': - resolution: {integrity: sha512-bW7B8xMEq8n99Q3ieEcPRGuphurdZAaFzQc9Efyyw3FL6DZO6pMy9xhdN+kBoD7Sy05xNXSr4OyPPnpkYriS/A==} + '@rollup/rollup-darwin-arm64@4.63.1': + resolution: {integrity: sha512-FQNqd1lRy/0QhDk3xeRIkSBiCpXCiDnZO3YLVdcDKN1UBiKToNftCzcXYNLshmPDUMlu2TdeS8tGcsU6f3YF1Q==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.62.5': - resolution: {integrity: sha512-YSwBS86QeHOGlrxJ1PSOIZSkzRL/JmKeunhc+lV6M1a6En8QuVCD/T/qIA0J4Gd2Y86RIOBYrLcOUtqGh9+/1w==} + '@rollup/rollup-darwin-x64@4.63.1': + resolution: {integrity: sha512-pvD16V939D3CloK0+qikpGaxiPrDUXTe7Y5cWOMkMSy7m1cawa8EGy/kXYi/G/cKAC4HDAbSnzCIk1WmsoOKXg==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.62.5': - resolution: {integrity: sha512-2fST8lILgl7cKbme/1KDdPCmbXbG+gqoV3bHp19L0ypX/3akYMBVdOunPleRCwonoLnXOZ/0F+Mt/v8POFmfcQ==} + '@rollup/rollup-freebsd-arm64@4.63.1': + resolution: {integrity: sha512-pcFGeL2345VwdTnJhA6zLbew+YgWB0qBG2+dMtXjCicf6+rm6kO6cOoh5VnTe0ZMrMRgRyuHmCJxZWrIdzYuOw==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.62.5': - resolution: {integrity: sha512-cpIxQCP9J+EVad0a6LO1kY3ZGODlk80VlI+2I96B8xMcdHZ4pLVhfQ49JFpYqjPF91FFkQWftf57YlDcTiw9yQ==} + '@rollup/rollup-freebsd-x64@4.63.1': + resolution: {integrity: sha512-mRJlqSRulVzcKq/LKA6ICSIc3K/l4fzlVn/gePn2nXIHy8seRi5z/eeRE0d/XMBxcMldiXtQTSpRj0tkkC3g8Q==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.62.5': - resolution: {integrity: sha512-r9fGh3eFs3e/udWh5ZjXQtxiYK/xoFxQaYR/cELxac/Udkl5Th+IsFm0CX3Kl9hmUH/we7EoMpjJgeQNnE0+IA==} + '@rollup/rollup-linux-arm-gnueabihf@4.63.1': + resolution: {integrity: sha512-YDUNvVM85TI3g/1OpnqKP1h4NeW/j64DfWMf+G3M809xNk1bJSnpFp4sh83NpmVE5DXnkh8ULor4LTVZKoYLHw==} cpu: [arm] os: [linux] libc: [glibc] - '@rollup/rollup-linux-arm-musleabihf@4.62.5': - resolution: {integrity: sha512-xdvFdp7OM6KLJviJT2g/YuRSUjnZgGHk4RNgwIbN7X6cPugOucV60DdHXWzsBVCUdrGb6qSXnJQrrAKMmQuj3Q==} + '@rollup/rollup-linux-arm-musleabihf@4.63.1': + resolution: {integrity: sha512-7Mcn71p9ZuQFAj+h+dhQXy/yeLePRS2yKRnmW1DijA9thKO5qap0GNOIQK4yQ6iP3SU0Mrb/yWo8h8vgRba8lw==} cpu: [arm] os: [linux] libc: [musl] - '@rollup/rollup-linux-arm64-gnu@4.62.5': - resolution: {integrity: sha512-rRqILAndyzHzP7T9NFQrq+4HFWNhqkqkKur7eiBpfLmz01PO0JKx5Vchu3YllE4YXI/Ftgq/szrDWg5GJ0mI8g==} + '@rollup/rollup-linux-arm64-gnu@4.63.1': + resolution: {integrity: sha512-4YiLQTX6U4CSl0L9cluep9A9W6UmTfqBDc2/CH6wlu54pl4E7Jn3cOD8oxzvBDEGk/JMKgJ47C8g+radF7mwvg==} cpu: [arm64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-arm64-musl@4.62.5': - resolution: {integrity: sha512-Gf4X3qVMucayUvux6aXXPgXovocSFUC0rrffDuPI/S2nHhNMhjcZxsrAFYCOF350PRreW1XwzFj3CT/3bKsWCw==} + '@rollup/rollup-linux-arm64-musl@4.63.1': + resolution: {integrity: sha512-2ra8F7w8OquwZN9z2/fKFnli69wa8PLwaVzRMIPGb13ByMJwC28Fbp8YcVGoUhlYMTt7j5j9bNgpysrN2UM+vw==} cpu: [arm64] os: [linux] libc: [musl] - '@rollup/rollup-linux-loong64-gnu@4.62.5': - resolution: {integrity: sha512-+s5qA0TNM0qm8PK/a5gt/1Hpx+NV08uSuCncvhziIlQzT6AEV2fnUQo7eBtFTFO0nA9scauvoR2HusfXmQnO4w==} + '@rollup/rollup-linux-loong64-gnu@4.63.1': + resolution: {integrity: sha512-Sy20ncyhjmBP0Ml+UvQbimjlk6VFgjW5uNP+qqwHB00mTE8Bl2C1TuHTlRwK2YoXeZbee5lP2XevBWVkAQAtSQ==} cpu: [loong64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-loong64-musl@4.62.5': - resolution: {integrity: sha512-ybb6QvWwWJCbBWqERpc8K3pYVGIrXlG8MEQ8IIuJY6Y9KdHQxoFoNyfkAOtKn1VHu3KuLidXvwrvGR1mEjeWCw==} + '@rollup/rollup-linux-loong64-musl@4.63.1': + resolution: {integrity: sha512-noITLp8oNjYliPnGWmLyelIHwULGqbHloQHGw1rtxbWhTuWooRpnZarZQJ1y9EUC4szuCusCc+HEpUtxpIwYvA==} cpu: [loong64] os: [linux] libc: [musl] - '@rollup/rollup-linux-ppc64-gnu@4.62.5': - resolution: {integrity: sha512-nZb1DtnOyhCmYvsC8A2CwOkopVg+IS1+fPUa7rMOAXtNw5+lLCLLPqd6XAiNrGtoQKsbvIBOwsHnBH/3wnb4HQ==} + '@rollup/rollup-linux-ppc64-gnu@4.63.1': + resolution: {integrity: sha512-hlxxXd+F1mWiAcaFR7Sv9ZQT6m6UfI8+Vy/kFJzztq2pDMU/0wZ9sish0iszNZvsQDo8Gc0i5yuFEOz5dDf6fA==} cpu: [ppc64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-ppc64-musl@4.62.5': - resolution: {integrity: sha512-yMbj63Sp89ryrXLWyz+sy+fYD2HpOnMCLGbe4Oa1smclFSUukdtD/BgdiHaAetJNb74URD8U4hM+qG5KVzMEkg==} + '@rollup/rollup-linux-ppc64-musl@4.63.1': + resolution: {integrity: sha512-EF7OpqQTQ/BvGqLzUi4rEHuagCV9MugAUXSHemwPW5vxZ75RR+jxO/2j95Ph2dalMpFHSVECjRoioHZgA9zOYA==} cpu: [ppc64] os: [linux] libc: [musl] - '@rollup/rollup-linux-riscv64-gnu@4.62.5': - resolution: {integrity: sha512-mhoan3OJw2kYV/e1jtIdmvUZgyBFeA6zGWsOswmR0Tg19TQbowZuR+JMLID6spbbBN7Zee2ejrgmy3+FxGrIdA==} + '@rollup/rollup-linux-riscv64-gnu@4.63.1': + resolution: {integrity: sha512-wQO3JesW9PRkwlabQ27y7sPfVOOTLRG73I4F2UYHG5PXun3J9U3y+b7ezVKSYbsvSKGQ1k1cq8Qlun4C9kLt3w==} cpu: [riscv64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-riscv64-musl@4.62.5': - resolution: {integrity: sha512-5ZTLmjWbb1VZdjuyhe83K/8QO0/h11midQCBP+X5OYn32ra7eOBoM0ZqtaY4nkgNsYgmdVhMYPoyVPTjUpHf3w==} + '@rollup/rollup-linux-riscv64-musl@4.63.1': + resolution: {integrity: sha512-ouAGwhO6wHRXdnOVCOsB0tRFkA7nhNB2Nwax6oECXN0YiN8EYUTBAOudADOB1PI+yDL61TeNx/u7MVCzksNbkQ==} cpu: [riscv64] os: [linux] libc: [musl] - '@rollup/rollup-linux-s390x-gnu@4.62.5': - resolution: {integrity: sha512-m53kG+br6PGxOTmgBEM2DHSDs9RVjsyEbUwjJPJGTFm1grWOG8EKJggDCTb60unD4Tjby8fi7/m9XfkEWasVWg==} + '@rollup/rollup-linux-s390x-gnu@4.63.1': + resolution: {integrity: sha512-q2R38Sn+1J8RxhfJ+T54wSWmyKXWec+9jgDfqO2AtArEqHO5R2aeayp5H5OYLr5UYDVGsVaZPEFUooMhYCdz5A==} cpu: [s390x] os: [linux] libc: [glibc] - '@rollup/rollup-linux-x64-gnu@4.62.5': - resolution: {integrity: sha512-6RHPJR1g/uvdYU8uXBnfq3nlqyZCP82Fr6NHgfGoaIeSh0YEqnX/x6uA9MmJJbnSH7swqX4F+CkGdUF+6doiQA==} + '@rollup/rollup-linux-x64-gnu@4.63.1': + resolution: {integrity: sha512-gfI5T24WLLuFfSKw7Go/zDXjAAV0fny0swTaDv+WjK7vqcw4cRhFfdsyKL1n+ukI+ooBxn3bVQnyrn06WpI50w==} cpu: [x64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-x64-musl@4.62.5': - resolution: {integrity: sha512-xs+OXQtEXgpXT0DmA5+U3qnRZHdCST/5HRQxS8wSPZTUZN/EMWeHuSIod32LQklTBZBV9DyfncKBQ8n5V3eFdw==} + '@rollup/rollup-linux-x64-musl@4.63.1': + resolution: {integrity: sha512-4h6XqthmB4Hspji84wvgk+ElodTsGj+dbZqHJHHtKxj4mYq0ANSEEPX9ys3moJueqsRjwpaJYH7874Itwnj2ow==} cpu: [x64] os: [linux] libc: [musl] - '@rollup/rollup-openbsd-x64@4.62.5': - resolution: {integrity: sha512-e7hD+sl3s+mcLQDZ8pbudBVsdG6r5yN4w3LqG2TJ8sQHDpblWj5lrJs/3m01Cvlxbt4x13zu5thLjgypgtkYzw==} + '@rollup/rollup-openbsd-x64@4.63.1': + resolution: {integrity: sha512-dlfCOa87o1VAYegLQ9EKilx2JCeRofiyPGhTCmqnuXZ6bMPiycO1rq1+sKoulAp7pGLIsTIw+1x5R+zgh5LhhA==} cpu: [x64] os: [openbsd] - '@rollup/rollup-openharmony-arm64@4.62.5': - resolution: {integrity: sha512-GiyJaCf+WpMub/17aPcKk27QMl5W6f+KhdPTjlFOn5akH5Wa/DCM9Stdx5cDfmasyKB08MqpVQ1uJE2RkkpbXg==} + '@rollup/rollup-openharmony-arm64@4.63.1': + resolution: {integrity: sha512-cjkLbOlfcm3QGhMM1J5zaZjsw1GggbN6rw9UTSSRrPrR1KkcXnN7Uq9rPw34xImQ9VOY9GN+6u2Zj80B9ptkcw==} cpu: [arm64] os: [openharmony] - '@rollup/rollup-win32-arm64-msvc@4.62.5': - resolution: {integrity: sha512-+OQ8U2DdoEfXl8T4Fb18AjmEwbXMerKDKCL8yCPAYhKCEEKoul7rkbeGCBFCbAlaGaa7pmtRTpkAJM2LE/i5FA==} + '@rollup/rollup-win32-arm64-msvc@4.63.1': + resolution: {integrity: sha512-Li1KdUnWGE4N3e1F/B4RTB1ms+nG4WBgjByO46pkeBVX/2UBsY53xf5vK9WygVmnH3RwncIST7lkSdLSY6P9lg==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.62.5': - resolution: {integrity: sha512-KanvAZrPKbDBFwrgiU9yEVpQoox9QPV1WZOXX7HudJQY+eSlu82CtWxDU8WtuRRvtN5EGkLczkd6Y6DTcvm9wA==} + '@rollup/rollup-win32-ia32-msvc@4.63.1': + resolution: {integrity: sha512-t4ZYOSoLTgwhuFMrmTMLx/+i1DQVK7HYqMc6kY46EApwi8X0nIVphzdNoThU3xt6n+N5urG1/gxBdCaKDLavfg==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-gnu@4.62.5': - resolution: {integrity: sha512-1aC3UEWTtRl3RK3VpDJ/Tqk1XI4SLTmXIthAq6wRWo8XiSXJNd+VprJM4/1P4+i6HIaFEFlVi9sTTziniD2tOQ==} + '@rollup/rollup-win32-x64-gnu@4.63.1': + resolution: {integrity: sha512-RgroPfMmKlD1RzSDxvwgcPiy2HNQKoYV7OmwIXDsk73uKW5t6B/V8KIy27SMv/FNXFo/oSBtWc9J0X7t91ezZg==} cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.62.5': - resolution: {integrity: sha512-/gDJaRs4gl0NPIwqCz+6PkpmhhjRAD2j6P4rSNHBzUkO3naEx2mIU0pRle1vUNRQ7mE/+8OOeXLTv/J56FKiQg==} + '@rollup/rollup-win32-x64-msvc@4.63.1': + resolution: {integrity: sha512-at8QVep6S3h5Y6gSbdGU06bRY5WJkf6WUduM9YtvYMbYhB1MOFfUgc6kehitQXzOtMSaT70q7f9ydPhpqu821w==} cpu: [x64] os: [win32] @@ -1778,8 +1782,8 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} hasBin: true - rollup@4.62.5: - resolution: {integrity: sha512-/tqMfgP7GPA3PHhCmuiS4vIjrSVhHLgY++i+dhbG462euyAj7FpM4D9uq1X3BgjlqRdpcOrYhcQtfiQLNc8tqw==} + rollup@4.63.1: + resolution: {integrity: sha512-3Df9jsstwhccuEfmAMi9l8XUh/GOkVObmFTU7CCVBysEbcOZLl84jCtaAZMcPiMz2EGKsATzQcU+Xr3n/wU6cg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -2120,13 +2124,18 @@ snapshots: '@eslint/core': 1.2.1 levn: 0.4.1 - '@humanfs/core@0.19.1': {} - - '@humanfs/node@0.16.7': + '@humanfs/core@0.19.2': dependencies: - '@humanfs/core': 0.19.1 + '@humanfs/types': 0.15.0 + + '@humanfs/node@0.16.8': + dependencies: + '@humanfs/core': 0.19.2 + '@humanfs/types': 0.15.0 '@humanwhocodes/retry': 0.4.3 + '@humanfs/types@0.15.0': {} + '@humanwhocodes/module-importer@1.0.1': {} '@humanwhocodes/retry@0.4.3': {} @@ -2307,114 +2316,114 @@ snapshots: '@rolldown/pluginutils@1.0.1': {} - '@rollup/plugin-node-resolve@16.0.3(rollup@4.62.5)': + '@rollup/plugin-node-resolve@16.0.3(rollup@4.63.1)': dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.62.5) + '@rollup/pluginutils': 5.3.0(rollup@4.63.1) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-module: 1.0.0 resolve: 1.22.11 optionalDependencies: - rollup: 4.62.5 + rollup: 4.63.1 - '@rollup/plugin-terser@1.0.0(rollup@4.62.5)': + '@rollup/plugin-terser@1.0.0(rollup@4.63.1)': dependencies: serialize-javascript: 7.0.5 smob: 1.6.1 terser: 5.46.1 optionalDependencies: - rollup: 4.62.5 + rollup: 4.63.1 - '@rollup/plugin-typescript@12.3.0(rollup@4.62.5)(tslib@2.8.1)(typescript@6.0.3)': + '@rollup/plugin-typescript@12.3.0(rollup@4.63.1)(tslib@2.8.1)(typescript@6.0.3)': dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.62.5) + '@rollup/pluginutils': 5.3.0(rollup@4.63.1) resolve: 1.22.11 typescript: 6.0.3 optionalDependencies: - rollup: 4.62.5 + rollup: 4.63.1 tslib: 2.8.1 - '@rollup/pluginutils@5.3.0(rollup@4.62.5)': + '@rollup/pluginutils@5.3.0(rollup@4.63.1)': dependencies: '@types/estree': 1.0.9 estree-walker: 2.0.2 picomatch: 4.0.4 optionalDependencies: - rollup: 4.62.5 + rollup: 4.63.1 - '@rollup/rollup-android-arm-eabi@4.62.5': + '@rollup/rollup-android-arm-eabi@4.63.1': optional: true - '@rollup/rollup-android-arm64@4.62.5': + '@rollup/rollup-android-arm64@4.63.1': optional: true - '@rollup/rollup-darwin-arm64@4.62.5': + '@rollup/rollup-darwin-arm64@4.63.1': optional: true - '@rollup/rollup-darwin-x64@4.62.5': + '@rollup/rollup-darwin-x64@4.63.1': optional: true - '@rollup/rollup-freebsd-arm64@4.62.5': + '@rollup/rollup-freebsd-arm64@4.63.1': optional: true - '@rollup/rollup-freebsd-x64@4.62.5': + '@rollup/rollup-freebsd-x64@4.63.1': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.62.5': + '@rollup/rollup-linux-arm-gnueabihf@4.63.1': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.62.5': + '@rollup/rollup-linux-arm-musleabihf@4.63.1': optional: true - '@rollup/rollup-linux-arm64-gnu@4.62.5': + '@rollup/rollup-linux-arm64-gnu@4.63.1': optional: true - '@rollup/rollup-linux-arm64-musl@4.62.5': + '@rollup/rollup-linux-arm64-musl@4.63.1': optional: true - '@rollup/rollup-linux-loong64-gnu@4.62.5': + '@rollup/rollup-linux-loong64-gnu@4.63.1': optional: true - '@rollup/rollup-linux-loong64-musl@4.62.5': + '@rollup/rollup-linux-loong64-musl@4.63.1': optional: true - '@rollup/rollup-linux-ppc64-gnu@4.62.5': + '@rollup/rollup-linux-ppc64-gnu@4.63.1': optional: true - '@rollup/rollup-linux-ppc64-musl@4.62.5': + '@rollup/rollup-linux-ppc64-musl@4.63.1': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.62.5': + '@rollup/rollup-linux-riscv64-gnu@4.63.1': optional: true - '@rollup/rollup-linux-riscv64-musl@4.62.5': + '@rollup/rollup-linux-riscv64-musl@4.63.1': optional: true - '@rollup/rollup-linux-s390x-gnu@4.62.5': + '@rollup/rollup-linux-s390x-gnu@4.63.1': optional: true - '@rollup/rollup-linux-x64-gnu@4.62.5': + '@rollup/rollup-linux-x64-gnu@4.63.1': optional: true - '@rollup/rollup-linux-x64-musl@4.62.5': + '@rollup/rollup-linux-x64-musl@4.63.1': optional: true - '@rollup/rollup-openbsd-x64@4.62.5': + '@rollup/rollup-openbsd-x64@4.63.1': optional: true - '@rollup/rollup-openharmony-arm64@4.62.5': + '@rollup/rollup-openharmony-arm64@4.63.1': optional: true - '@rollup/rollup-win32-arm64-msvc@4.62.5': + '@rollup/rollup-win32-arm64-msvc@4.63.1': optional: true - '@rollup/rollup-win32-ia32-msvc@4.62.5': + '@rollup/rollup-win32-ia32-msvc@4.63.1': optional: true - '@rollup/rollup-win32-x64-gnu@4.62.5': + '@rollup/rollup-win32-x64-gnu@4.63.1': optional: true - '@rollup/rollup-win32-x64-msvc@4.62.5': + '@rollup/rollup-win32-x64-msvc@4.63.1': optional: true '@sveltejs/acorn-typescript@1.0.9(acorn@8.16.0)': @@ -2852,7 +2861,7 @@ snapshots: '@eslint/config-helpers': 0.6.0 '@eslint/core': 1.2.1 '@eslint/plugin-kit': 0.7.1 - '@humanfs/node': 0.16.7 + '@humanfs/node': 0.16.8 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 '@types/estree': 1.0.9 @@ -3214,36 +3223,36 @@ snapshots: '@rolldown/binding-win32-arm64-msvc': 1.0.3 '@rolldown/binding-win32-x64-msvc': 1.0.3 - rollup@4.62.5: + rollup@4.63.1: dependencies: '@types/estree': 1.0.9 optionalDependencies: '@napi-rs/lzma-linux-x64-gnu': 1.5.1 - '@rollup/rollup-android-arm-eabi': 4.62.5 - '@rollup/rollup-android-arm64': 4.62.5 - '@rollup/rollup-darwin-arm64': 4.62.5 - '@rollup/rollup-darwin-x64': 4.62.5 - '@rollup/rollup-freebsd-arm64': 4.62.5 - '@rollup/rollup-freebsd-x64': 4.62.5 - '@rollup/rollup-linux-arm-gnueabihf': 4.62.5 - '@rollup/rollup-linux-arm-musleabihf': 4.62.5 - '@rollup/rollup-linux-arm64-gnu': 4.62.5 - '@rollup/rollup-linux-arm64-musl': 4.62.5 - '@rollup/rollup-linux-loong64-gnu': 4.62.5 - '@rollup/rollup-linux-loong64-musl': 4.62.5 - '@rollup/rollup-linux-ppc64-gnu': 4.62.5 - '@rollup/rollup-linux-ppc64-musl': 4.62.5 - '@rollup/rollup-linux-riscv64-gnu': 4.62.5 - '@rollup/rollup-linux-riscv64-musl': 4.62.5 - '@rollup/rollup-linux-s390x-gnu': 4.62.5 - '@rollup/rollup-linux-x64-gnu': 4.62.5 - '@rollup/rollup-linux-x64-musl': 4.62.5 - '@rollup/rollup-openbsd-x64': 4.62.5 - '@rollup/rollup-openharmony-arm64': 4.62.5 - '@rollup/rollup-win32-arm64-msvc': 4.62.5 - '@rollup/rollup-win32-ia32-msvc': 4.62.5 - '@rollup/rollup-win32-x64-gnu': 4.62.5 - '@rollup/rollup-win32-x64-msvc': 4.62.5 + '@rollup/rollup-android-arm-eabi': 4.63.1 + '@rollup/rollup-android-arm64': 4.63.1 + '@rollup/rollup-darwin-arm64': 4.63.1 + '@rollup/rollup-darwin-x64': 4.63.1 + '@rollup/rollup-freebsd-arm64': 4.63.1 + '@rollup/rollup-freebsd-x64': 4.63.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.63.1 + '@rollup/rollup-linux-arm-musleabihf': 4.63.1 + '@rollup/rollup-linux-arm64-gnu': 4.63.1 + '@rollup/rollup-linux-arm64-musl': 4.63.1 + '@rollup/rollup-linux-loong64-gnu': 4.63.1 + '@rollup/rollup-linux-loong64-musl': 4.63.1 + '@rollup/rollup-linux-ppc64-gnu': 4.63.1 + '@rollup/rollup-linux-ppc64-musl': 4.63.1 + '@rollup/rollup-linux-riscv64-gnu': 4.63.1 + '@rollup/rollup-linux-riscv64-musl': 4.63.1 + '@rollup/rollup-linux-s390x-gnu': 4.63.1 + '@rollup/rollup-linux-x64-gnu': 4.63.1 + '@rollup/rollup-linux-x64-musl': 4.63.1 + '@rollup/rollup-openbsd-x64': 4.63.1 + '@rollup/rollup-openharmony-arm64': 4.63.1 + '@rollup/rollup-win32-arm64-msvc': 4.63.1 + '@rollup/rollup-win32-ia32-msvc': 4.63.1 + '@rollup/rollup-win32-x64-gnu': 4.63.1 + '@rollup/rollup-win32-x64-msvc': 4.63.1 fsevents: 2.3.3 safe-regex@2.1.1: From 2a5783397eccd4927742dd95508938b7c7f20fb2 Mon Sep 17 00:00:00 2001 From: Tony <68118705+Legend-Master@users.noreply.github.com> Date: Wed, 9 Sep 2026 19:31:52 +0800 Subject: [PATCH 40/41] refactor(example): use tsconfig and change entries to ts (#3575) --- examples/api/index.html | 2 +- examples/api/src/{main.js => main.ts} | 2 +- examples/api/{jsconfig.json => tsconfig.json} | 6 ++++-- examples/api/{vite.config.js => vite.config.ts} | 0 4 files changed, 6 insertions(+), 4 deletions(-) rename examples/api/src/{main.js => main.ts} (87%) rename examples/api/{jsconfig.json => tsconfig.json} (84%) rename examples/api/{vite.config.js => vite.config.ts} (100%) diff --git a/examples/api/index.html b/examples/api/index.html index 2cd1bfe5f..acd46f195 100644 --- a/examples/api/index.html +++ b/examples/api/index.html @@ -12,6 +12,6 @@
- + diff --git a/examples/api/src/main.js b/examples/api/src/main.ts similarity index 87% rename from examples/api/src/main.js rename to examples/api/src/main.ts index 5b7473f64..c0e0e5f1d 100644 --- a/examples/api/src/main.js +++ b/examples/api/src/main.ts @@ -8,7 +8,7 @@ import App from './App.svelte' import { mount } from 'svelte' const app = mount(App, { - target: document.querySelector('#app') + target: document.querySelector('#app')! }) export default app diff --git a/examples/api/jsconfig.json b/examples/api/tsconfig.json similarity index 84% rename from examples/api/jsconfig.json rename to examples/api/tsconfig.json index 5696a2de7..c315e05d3 100644 --- a/examples/api/jsconfig.json +++ b/examples/api/tsconfig.json @@ -3,6 +3,7 @@ "moduleResolution": "bundler", "target": "ESNext", "module": "ESNext", + "noEmit": true, /** * svelte-preprocess cannot figure out whether you have * a value or a type, so tell TypeScript to enforce using @@ -22,11 +23,12 @@ * Typecheck JS in `.svelte` and `.js` files by default. * Disable this if you'd like to use dynamic types. */ - "checkJs": true + "checkJs": true, + "types": ["vite/client", "svelte"] }, /** * Use global.d.ts instead of compilerOptions.types * to avoid limiting type declarations. */ - "include": ["src/**/*.d.ts", "src/**/*.js", "src/**/*.svelte"] + "include": ["src/**/*.d.ts", "src/**/*.js", "src/**/*.ts", "src/**/*.svelte"] } diff --git a/examples/api/vite.config.js b/examples/api/vite.config.ts similarity index 100% rename from examples/api/vite.config.js rename to examples/api/vite.config.ts From 0850317b5c85092cbf4ea9caf4ef3a9c771fcf27 Mon Sep 17 00:00:00 2001 From: Tony <68118705+Legend-Master@users.noreply.github.com> Date: Thu, 10 Sep 2026 10:36:25 +0800 Subject: [PATCH 41/41] chore(deps): update pnpm to v12 (#3576) --- package.json | 2 +- pnpm-lock.yaml | 101 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 102 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index d987ba7ea..f4aac3d8e 100644 --- a/package.json +++ b/package.json @@ -25,5 +25,5 @@ "typescript-eslint": "8.66.0" }, "minimumReleaseAge": 4320, - "packageManager": "pnpm@11.20.0" + "packageManager": "pnpm@12.3.4" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 56e0156e5..7d530f329 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,3 +1,104 @@ +--- +lockfileVersion: '9.0' + +importers: + + .: + configDependencies: {} + packageManagerDependencies: + pnpm: + specifier: 12.3.4 + version: 12.3.4 + +packages: + + '@pnpm/exe.darwin-arm64@12.3.4': + resolution: {integrity: sha512-PAyUol8T1+/+ViOiXAt51ECA+QnfXCqz6foL4bW+LsoX0NcVd5XVEM2mRQu+LV4oc7uRz9zf9U0P+XFfuQeDAw==} + cpu: [arm64] + os: [darwin] + + '@pnpm/exe.darwin-x64@12.3.4': + resolution: {integrity: sha512-fxP9JCk0Cdye+ePuj+GJJLMUMTqHGWRdb1dtv4How876uQ2ehxvenpgiYAir/ceO9PsYUZkFTtyZdx+rRu5QOA==} + cpu: [x64] + os: [darwin] + + '@pnpm/exe.linux-arm64-musl@12.3.4': + resolution: {integrity: sha512-FBOt0/7ye6O6q4AllVV5QMviB6qE6fqkeczV/+MDWQsmo+QJrlfsh6X7CpH/tClVpBZEyIbjpUoT8bNhCYBxEg==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@pnpm/exe.linux-arm64@12.3.4': + resolution: {integrity: sha512-t71AVA7LRqiKTyZ5xMYaZc2n5DfdpMbfokZuiIOXHBOM03ECnF0t4iYwaBDqJgVjlKYUOwaF/bRQajGNA4cJ4w==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@pnpm/exe.linux-x64-musl@12.3.4': + resolution: {integrity: sha512-RPmk7Jb/aYaFvL2iyDN/AtMY+hUEsue732WmXpcuQ9tBpMnGyA5py7Z3+e+qmQaJ0zY/4ni9jJiyPBQHujmv6w==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@pnpm/exe.linux-x64@12.3.4': + resolution: {integrity: sha512-2ZqOlSPkfwX1h5cR+FPiWf8+F+2hZT/3TvhUK5sigHqwaQCIiq8R7CGxhndKs63JtcLi2a1Qpo+wX/EoyfjyJQ==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@pnpm/exe.win32-arm64@12.3.4': + resolution: {integrity: sha512-ANyrHqyqco6SXBysUTRF74itDyyraea7IbFsKFdNXTjcFnfycTDx37EwuhdpPYFNSIh2JhUG4fByclsRfiHX7w==} + cpu: [arm64] + os: [win32] + + '@pnpm/exe.win32-x64@12.3.4': + resolution: {integrity: sha512-WH/KqBPY/hq2Tb7SgQltEZytimcjgKRaCRL/aM9CI0c67iKc5TVmHUhIiL3Ux9FB4bWn36i6XewUcScQI+zG8w==} + cpu: [x64] + os: [win32] + + pnpm@12.3.4: + resolution: {integrity: sha512-lhqkH7B32joEpEHZ+OFevAyW2o73ELLrZ7+e58sGEOq9SPH9hfUc/+c4RnhfoPh8VqOocqHYk/hEZ0G1zORUVw==} + engines: {node: '>=18.*'} + hasBin: true + +snapshots: + + '@pnpm/exe.darwin-arm64@12.3.4': + optional: true + + '@pnpm/exe.darwin-x64@12.3.4': + optional: true + + '@pnpm/exe.linux-arm64-musl@12.3.4': + optional: true + + '@pnpm/exe.linux-arm64@12.3.4': + optional: true + + '@pnpm/exe.linux-x64-musl@12.3.4': + optional: true + + '@pnpm/exe.linux-x64@12.3.4': + optional: true + + '@pnpm/exe.win32-arm64@12.3.4': + optional: true + + '@pnpm/exe.win32-x64@12.3.4': + optional: true + + pnpm@12.3.4: + optionalDependencies: + '@pnpm/exe.darwin-arm64': 12.3.4 + '@pnpm/exe.darwin-x64': 12.3.4 + '@pnpm/exe.linux-arm64': 12.3.4 + '@pnpm/exe.linux-arm64-musl': 12.3.4 + '@pnpm/exe.linux-x64': 12.3.4 + '@pnpm/exe.linux-x64-musl': 12.3.4 + '@pnpm/exe.win32-arm64': 12.3.4 + '@pnpm/exe.win32-x64': 12.3.4 + +--- lockfileVersion: '9.0' settings: