diff --git a/.changes/add-plugin-listener-error-handling.md b/.changes/add-plugin-listener-error-handling.md deleted file mode 100644 index 38474f02a..000000000 --- a/.changes/add-plugin-listener-error-handling.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@tauri-apps/api": patch:bug ---- - -Fix `addPluginListener` fallback added in https://github.com/tauri-apps/tauri/pull/14132 didn't work properly diff --git a/.changes/appimage-32bit.md b/.changes/appimage-32bit.md deleted file mode 100644 index 9c4437f29..000000000 --- a/.changes/appimage-32bit.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -tauri-bundler: patch:bug ---- - -Fixed an issue that caused the AppImage bundler to fail with 404 errors for 32-bit builds. diff --git a/.changes/change-pr-14632.md b/.changes/change-pr-14632.md new file mode 100644 index 000000000..068994f0d --- /dev/null +++ b/.changes/change-pr-14632.md @@ -0,0 +1,7 @@ +--- +"tauri-utils": patch:enhance +"tauri-build": patch:enhance +"tauri-cli": patch:enhance +--- + +Small code refactors for improved code readability. No user facing changes. diff --git a/.changes/fix-needles-collect.md b/.changes/fix-needles-collect.md deleted file mode 100644 index f7ffa30f9..000000000 --- a/.changes/fix-needles-collect.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -"tauri": patch:perf -"tauri-cli": patch:perf -"tauri-bundler": patch:perf -"@tauri-apps/cli": patch:perf ---- - -refactor: remove needless collect. No user facing changes. diff --git a/.changes/fix-no-sign-option.md b/.changes/fix-no-sign-option.md deleted file mode 100644 index 71352c5ee..000000000 --- a/.changes/fix-no-sign-option.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -tauri-cli: patch:bug ---- - -Fixed an issue that caused the cli to error out with missing private key, in case the option `--no-sign` was requested and the `tauri.config` has signing key set and the plugin `tauri-plugin-updater` is used. - diff --git a/.changes/nsis-3.11.md b/.changes/nsis-3.11.md deleted file mode 100644 index 5d56bae0f..000000000 --- a/.changes/nsis-3.11.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"tauri-bundler": patch:deps ---- - -Updated NSIS from 3.8 to 3.11 diff --git a/.changes/perf-remove-needless-clone.md b/.changes/perf-remove-needless-clone.md deleted file mode 100644 index 3e23288c4..000000000 --- a/.changes/perf-remove-needless-clone.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -"tauri-bundler": patch:perf -"tauri-cli": patch:perf -"tauri-macos-sign": patch:perf -"tauri": patch:perf ---- - -perf: remove needless clones in various files for improved performance. No user facing changes. diff --git a/.changes/pnpm-package-version-check.md b/.changes/pnpm-package-version-check.md deleted file mode 100644 index 090e64995..000000000 --- a/.changes/pnpm-package-version-check.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"tauri-cli": patch:bug -"@tauri-apps/cli": patch:bug ---- - -Fixed the mismatched tauri package versions check didn't work for pnpm diff --git a/.changes/schema-carriage-return.md b/.changes/schema-carriage-return.md deleted file mode 100644 index 44bbf97d2..000000000 --- a/.changes/schema-carriage-return.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -tauri-utils: patch:bug ---- - -Fixed an issue that caused schema files to have `\r` characters on Windows. diff --git a/.changes/version-req-error.md b/.changes/version-req-error.md deleted file mode 100644 index 523d6f1c8..000000000 --- a/.changes/version-req-error.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -tauri-cli: patch:bug ---- - -Fixed an issue that caused the cli to print errors like `Error Failed to parse version 2 for crate tauri` when there was no `Cargo.lock` file present yet. This will still be logged in `--verbose` mode. diff --git a/.changes/window-config-focus-default-true.md b/.changes/window-config-focus-default-true.md new file mode 100644 index 000000000..38d24aebc --- /dev/null +++ b/.changes/window-config-focus-default-true.md @@ -0,0 +1,5 @@ +--- +tauri: patch:bug +--- + +`WindowConfig::focus` is set to `false` in `WindowConfig::default()` diff --git a/Cargo.lock b/Cargo.lock index 85b84ee01..9dae76c32 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1319,7 +1319,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]] @@ -3467,9 +3467,9 @@ dependencies = [ [[package]] name = "ico" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc50b891e4acf8fe0e71ef88ec43ad82ee07b3810ad09de10f1d01f072ed4b98" +checksum = "3e795dff5605e0f04bff85ca41b51a96b83e80b281e96231bcaaf1ac35103371" dependencies = [ "byteorder", "png", @@ -3968,9 +3968,9 @@ checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0" [[package]] name = "js-sys" -version = "0.3.77" +version = "0.3.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +checksum = "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8" dependencies = [ "once_cell", "wasm-bindgen", @@ -4319,7 +4319,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" dependencies = [ "cfg-if", - "windows-targets 0.48.5", + "windows-targets 0.52.6", ] [[package]] @@ -4897,11 +4897,10 @@ dependencies = [ [[package]] name = "num-bigint-dig" -version = "0.8.4" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" +checksum = "e661dda6640fad38e827a6d4a310ff4763082116fe217f279885c97f511bb0b7" dependencies = [ - "byteorder", "lazy_static", "libm", "num-integer", @@ -8494,7 +8493,7 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tauri" -version = "2.9.3" +version = "2.9.5" dependencies = [ "anyhow", "bytes", @@ -8554,7 +8553,7 @@ dependencies = [ [[package]] name = "tauri-build" -version = "2.5.2" +version = "2.5.3" dependencies = [ "anyhow", "cargo_toml", @@ -8576,7 +8575,7 @@ dependencies = [ [[package]] name = "tauri-bundler" -version = "2.7.3" +version = "2.7.5" dependencies = [ "anyhow", "ar", @@ -8622,7 +8621,7 @@ dependencies = [ [[package]] name = "tauri-cli" -version = "2.9.4" +version = "2.9.6" dependencies = [ "ar", "axum", @@ -8716,7 +8715,7 @@ dependencies = [ [[package]] name = "tauri-codegen" -version = "2.5.1" +version = "2.5.2" dependencies = [ "base64 0.22.1", "brotli", @@ -8782,7 +8781,7 @@ dependencies = [ [[package]] name = "tauri-macos-sign" -version = "2.3.0" +version = "2.3.2" dependencies = [ "apple-codesign", "chrono", @@ -8802,7 +8801,7 @@ dependencies = [ [[package]] name = "tauri-macros" -version = "2.5.1" +version = "2.5.2" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -8814,7 +8813,7 @@ dependencies = [ [[package]] name = "tauri-plugin" -version = "2.5.1" +version = "2.5.2" dependencies = [ "anyhow", "glob", @@ -8862,7 +8861,7 @@ dependencies = [ [[package]] name = "tauri-runtime" -version = "2.9.1" +version = "2.9.2" dependencies = [ "cookie", "dpi", @@ -8885,7 +8884,7 @@ dependencies = [ [[package]] name = "tauri-runtime-wry" -version = "2.9.1" +version = "2.9.3" dependencies = [ "gtk", "http 1.3.1", @@ -8936,7 +8935,7 @@ dependencies = [ [[package]] name = "tauri-utils" -version = "2.8.0" +version = "2.8.1" dependencies = [ "aes-gcm", "anyhow", @@ -10063,35 +10062,22 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.100" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +checksum = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd" dependencies = [ "cfg-if", "once_cell", "rustversion", "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn 2.0.95", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.50" +version = "0.4.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" +checksum = "836d9622d604feee9e5de25ac10e3ea5f2d65b41eac0d9ce72eb5deae707ce7c" dependencies = [ "cfg-if", "js-sys", @@ -10102,9 +10088,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.100" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +checksum = "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -10112,22 +10098,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.100" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +checksum = "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40" dependencies = [ + "bumpalo", "proc-macro2", "quote", "syn 2.0.95", - "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.100" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +checksum = "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4" dependencies = [ "unicode-ident", ] @@ -10147,9 +10133,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.77" +version = "0.3.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" +checksum = "9b32828d774c412041098d182a8b38b16ea816958e07cf40eec2bc080ae137ac" dependencies = [ "js-sys", "wasm-bindgen", @@ -10324,7 +10310,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]] @@ -10869,9 +10855,9 @@ dependencies = [ [[package]] name = "worker" -version = "0.6.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f6ac1566a3005b790b974f0621d77431e2a47e5f481276485f5ac0485775de2" +checksum = "42c76c5889873a2c309365ad4503810c007d3c25fbb4e9fa9e4e23c4ceb3c7f2" dependencies = [ "async-trait", "axum", @@ -10894,31 +10880,15 @@ dependencies = [ "wasm-bindgen-futures", "wasm-streams", "web-sys", - "worker-kv", "worker-macros", "worker-sys", ] -[[package]] -name = "worker-kv" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0d30eb90e8db0657414129624c0d12c6cb480574bc2ddd584822db196cb9a52" -dependencies = [ - "js-sys", - "serde", - "serde-wasm-bindgen", - "serde_json", - "thiserror 2.0.12", - "wasm-bindgen", - "wasm-bindgen-futures", -] - [[package]] name = "worker-macros" -version = "0.6.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ba7478759843ae3d56dc7ba2445e7a514a5d043eaa98cebac2789f7ab5221ee" +checksum = "62c62584d037bad33789a6a5d605b3fccea1c52de9251d06f9d44054170dc612" dependencies = [ "async-trait", "proc-macro2", @@ -10932,9 +10902,9 @@ dependencies = [ [[package]] name = "worker-sys" -version = "0.6.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb4d7a3273dd584b9526aec77bbcf815c51d1a0e17407b1a390cf5a39b6d4fbd" +checksum = "72ddd412fd62c6eeffc1dd85e6ae5960a33b534f44a733df75b6e7519972bc74" dependencies = [ "cfg-if", "js-sys", diff --git a/crates/tauri-build/CHANGELOG.md b/crates/tauri-build/CHANGELOG.md index 8568ec929..4e5c9c97a 100644 --- a/crates/tauri-build/CHANGELOG.md +++ b/crates/tauri-build/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## \[2.5.3] + +### Dependencies + +- Upgraded to `tauri-utils@2.8.1` +- Upgraded to `tauri-codegen@2.5.2` + ## \[2.5.2] ### Dependencies diff --git a/crates/tauri-build/Cargo.toml b/crates/tauri-build/Cargo.toml index b8e3c6434..da35d963b 100644 --- a/crates/tauri-build/Cargo.toml +++ b/crates/tauri-build/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-build" -version = "2.5.2" +version = "2.5.3" description = "build time code to pair with https://crates.io/crates/tauri" exclude = ["CHANGELOG.md", "/target"] readme = "README.md" @@ -26,8 +26,8 @@ targets = [ [dependencies] anyhow = "1" quote = { version = "1", optional = true } -tauri-codegen = { version = "2.5.1", path = "../tauri-codegen", optional = true } -tauri-utils = { version = "2.8.0", path = "../tauri-utils", features = [ +tauri-codegen = { version = "2.5.2", path = "../tauri-codegen", optional = true } +tauri-utils = { version = "2.8.1", path = "../tauri-utils", features = [ "build", "resources", ] } diff --git a/crates/tauri-build/src/lib.rs b/crates/tauri-build/src/lib.rs index cd9724252..42c9275b4 100644 --- a/crates/tauri-build/src/lib.rs +++ b/crates/tauri-build/src/lib.rs @@ -165,21 +165,21 @@ fn copy_frameworks(dest_dir: &Path, frameworks: &[String]) -> Result<()> { .with_context(|| format!("Failed to create frameworks output directory at {dest_dir:?}"))?; for framework in frameworks.iter() { if framework.ends_with(".framework") { - let src_path = PathBuf::from(framework); + let src_path = Path::new(framework); let src_name = src_path .file_name() .expect("Couldn't get framework filename"); let dest_path = dest_dir.join(src_name); - copy_dir(&src_path, &dest_path)?; + copy_dir(src_path, &dest_path)?; continue; } else if framework.ends_with(".dylib") { - let src_path = PathBuf::from(framework); + let src_path = Path::new(framework); if !src_path.exists() { return Err(anyhow::anyhow!("Library not found: {}", framework)); } let src_name = src_path.file_name().expect("Couldn't get library filename"); let dest_path = dest_dir.join(src_name); - copy_file(&src_path, &dest_path)?; + copy_file(src_path, &dest_path)?; continue; } else if framework.contains('/') { return Err(anyhow::anyhow!( @@ -192,12 +192,8 @@ fn copy_frameworks(dest_dir: &Path, frameworks: &[String]) -> Result<()> { continue; } } - if copy_framework_from(&PathBuf::from("/Library/Frameworks/"), framework, dest_dir)? - || copy_framework_from( - &PathBuf::from("/Network/Library/Frameworks/"), - framework, - dest_dir, - )? + if copy_framework_from("/Library/Frameworks/".as_ref(), framework, dest_dir)? + || copy_framework_from("/Network/Library/Frameworks/".as_ref(), framework, dest_dir)? { continue; } diff --git a/crates/tauri-bundler/CHANGELOG.md b/crates/tauri-bundler/CHANGELOG.md index feb621512..c8e880524 100644 --- a/crates/tauri-bundler/CHANGELOG.md +++ b/crates/tauri-bundler/CHANGELOG.md @@ -1,5 +1,37 @@ # Changelog +## \[2.7.5] + +### Enhancements + +- [`4176f93ae`](https://www.github.com/tauri-apps/tauri/commit/4176f93ae43ef66714c4934feb3df19df3a3e28a) ([#14570](https://www.github.com/tauri-apps/tauri/pull/14570) by [@chfaft](https://www.github.com/tauri-apps/tauri/../../chfaft)) Consider extensions that are defined in the wxs template. + +### Bug Fixes + +- [`018b4db22`](https://www.github.com/tauri-apps/tauri/commit/018b4db22e167fa67b37b0933e192a0f3556d3e5) ([#14625](https://www.github.com/tauri-apps/tauri/pull/14625) by [@Legend-Master](https://www.github.com/tauri-apps/tauri/../../Legend-Master)) Skip signing for NSIS uninstaller when using `--no-sign` flag +- [`91becd9e4`](https://www.github.com/tauri-apps/tauri/commit/91becd9e4fa2db089ddc6b21dadc06133e939e08) ([#14627](https://www.github.com/tauri-apps/tauri/pull/14627) by [@Legend-Master](https://www.github.com/tauri-apps/tauri/../../Legend-Master)) Fix NSIS plugins not being signed due to wrong path handlings + +### Dependencies + +- Upgraded to `tauri-macos-sign@2.3.2` + +## \[2.7.4] + +### Bug Fixes + +- [`1496145f8`](https://www.github.com/tauri-apps/tauri/commit/1496145f8222649efeff22b819a96208670bbea1) ([#14585](https://www.github.com/tauri-apps/tauri/pull/14585) by [@FabianLars](https://www.github.com/tauri-apps/tauri/../../FabianLars)) Fixed an issue that caused the AppImage bundler to fail with 404 errors for 32-bit builds. + +### Performance Improvements + +- [`ce98d87ce`](https://www.github.com/tauri-apps/tauri/commit/ce98d87ce0aaa907285852eb80691197424e03c3) ([#14474](https://www.github.com/tauri-apps/tauri/pull/14474) by [@Tunglies](https://www.github.com/tauri-apps/tauri/../../Tunglies)) refactor: remove needless collect. No user facing changes. +- [`ee3cc4a91`](https://www.github.com/tauri-apps/tauri/commit/ee3cc4a91bf1315ecaefe90f423ffd55ef6c40db) ([#14475](https://www.github.com/tauri-apps/tauri/pull/14475) by [@Tunglies](https://www.github.com/tauri-apps/tauri/../../Tunglies)) perf: remove needless clones in various files for improved performance. No user facing changes. + +### Dependencies + +- Upgraded to `tauri-macos-sign@2.3.1` +- Upgraded to `tauri-utils@2.8.1` +- [`b5ef603d8`](https://www.github.com/tauri-apps/tauri/commit/b5ef603d84bd8044625e50dcfdabb099b2e9fdd9) ([#14478](https://www.github.com/tauri-apps/tauri/pull/14478) by [@Legend-Master](https://www.github.com/tauri-apps/tauri/../../Legend-Master)) Updated NSIS from 3.8 to 3.11 + ## \[2.7.3] ### Enhancements diff --git a/crates/tauri-bundler/Cargo.toml b/crates/tauri-bundler/Cargo.toml index 5750480b7..cb88cb9a9 100644 --- a/crates/tauri-bundler/Cargo.toml +++ b/crates/tauri-bundler/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-bundler" -version = "2.7.3" +version = "2.7.5" authors = [ "George Burton ", "Tauri Programme within The Commons Conservancy", @@ -15,7 +15,7 @@ rust-version = "1.77.2" exclude = ["CHANGELOG.md", "/target", "rustfmt.toml"] [dependencies] -tauri-utils = { version = "2.8.0", path = "../tauri-utils", features = [ +tauri-utils = { version = "2.8.1", path = "../tauri-utils", features = [ "resources", ] } image = "0.25" @@ -59,7 +59,7 @@ features = ["Win32_System_SystemInformation", "Win32_System_Diagnostics_Debug"] [target."cfg(target_os = \"macos\")".dependencies] icns = { package = "tauri-icns", version = "0.1" } time = { version = "0.3", features = ["formatting"] } -tauri-macos-sign = { version = "2.3.0", path = "../tauri-macos-sign" } +tauri-macos-sign = { version = "2.3.2", path = "../tauri-macos-sign" } [target."cfg(target_os = \"linux\")".dependencies] heck = "0.5" diff --git a/crates/tauri-bundler/src/bundle.rs b/crates/tauri-bundler/src/bundle.rs index 654ad5647..bac77c041 100644 --- a/crates/tauri-bundler/src/bundle.rs +++ b/crates/tauri-bundler/src/bundle.rs @@ -273,7 +273,7 @@ fn sign_binaries_if_needed(settings: &Settings, target_os: &TargetPlatform) -> c if matches!(target_os, TargetPlatform::Windows) { if settings.windows().can_sign() { if settings.no_sign() { - log::info!("Skipping binary signing due to --no-sign flag."); + log::warn!("Skipping binary signing due to --no-sign flag."); return Ok(()); } diff --git a/crates/tauri-bundler/src/bundle/linux/debian.rs b/crates/tauri-bundler/src/bundle/linux/debian.rs index a99409728..3fedef4b7 100644 --- a/crates/tauri-bundler/src/bundle/linux/debian.rs +++ b/crates/tauri-bundler/src/bundle/linux/debian.rs @@ -119,8 +119,9 @@ pub fn generate_data( for bin in settings.binaries() { let bin_path = settings.binary_path(bin); - fs_utils::copy_file(&bin_path, &bin_dir.join(bin.name())) - .with_context(|| format!("Failed to copy binary from {bin_path:?}"))?; + let trgt = bin_dir.join(bin.name()); + fs_utils::copy_file(&bin_path, &trgt) + .with_context(|| format!("Failed to copy binary from {bin_path:?} to {trgt:?}"))?; } copy_resource_files(settings, &data_dir).with_context(|| "Failed to copy resource files")?; diff --git a/crates/tauri-bundler/src/bundle/windows/msi/mod.rs b/crates/tauri-bundler/src/bundle/windows/msi/mod.rs index cc5f83883..4c00d8f33 100644 --- a/crates/tauri-bundler/src/bundle/windows/msi/mod.rs +++ b/crates/tauri-bundler/src/bundle/windows/msi/mod.rs @@ -753,26 +753,28 @@ pub fn build_wix_app_installer( } let main_wxs_path = output_path.join("main.wxs"); - fs::write(main_wxs_path, handlebars.render("main.wxs", &data)?)?; + fs::write(&main_wxs_path, handlebars.render("main.wxs", &data)?)?; - let mut candle_inputs = vec![("main.wxs".into(), Vec::new())]; + let mut candle_inputs = vec![]; let current_dir = std::env::current_dir()?; let extension_regex = Regex::new("\"http://schemas.microsoft.com/wix/(\\w+)\"")?; - for fragment_path in fragment_paths { - let fragment_path = current_dir.join(fragment_path); - let fragment_content = fs::read_to_string(&fragment_path)?; - let fragment_handlebars = Handlebars::new(); - let fragment = fragment_handlebars.render_template(&fragment_content, &data)?; + let input_paths = + std::iter::once(main_wxs_path).chain(fragment_paths.iter().map(|p| current_dir.join(p))); + + for input_path in input_paths { + let input_content = fs::read_to_string(&input_path)?; + let input_handlebars = Handlebars::new(); + let input = input_handlebars.render_template(&input_content, &data)?; let mut extensions = Vec::new(); - for cap in extension_regex.captures_iter(&fragment) { + for cap in extension_regex.captures_iter(&input) { let path = wix_toolset_path.join(format!("Wix{}.dll", &cap[1])); if settings.windows().can_sign() { try_sign(&path, settings)?; } extensions.push(path); } - candle_inputs.push((fragment_path, extensions)); + candle_inputs.push((input_path, extensions)); } let mut fragment_extensions = HashSet::new(); diff --git a/crates/tauri-bundler/src/bundle/windows/nsis/mod.rs b/crates/tauri-bundler/src/bundle/windows/nsis/mod.rs index 8b2bc4eef..d4d8f2cac 100644 --- a/crates/tauri-bundler/src/bundle/windows/nsis/mod.rs +++ b/crates/tauri-bundler/src/bundle/windows/nsis/mod.rs @@ -298,8 +298,12 @@ fn build_nsis_app_installer( data.insert("copyright", to_json(settings.copyright_string())); if settings.windows().can_sign() { - let sign_cmd = format!("{:?}", sign_command("%1", &settings.sign_params())?); - data.insert("uninstaller_sign_cmd", to_json(sign_cmd)); + if settings.no_sign() { + log::warn!("Skipping signing for NSIS uninstaller due to --no-sign flag."); + } else { + let sign_cmd = format!("{:?}", sign_command("%1", &settings.sign_params())?); + data.insert("uninstaller_sign_cmd", to_json(sign_cmd)); + } } let version = settings.version_string(); @@ -617,13 +621,16 @@ fn build_nsis_app_installer( fs::create_dir_all(nsis_installer_path.parent().unwrap())?; if settings.windows().can_sign() { - log::info!("Signing NSIS plugins"); - for dll in NSIS_PLUGIN_FILES { - let path = additional_plugins_path.join(dll); - if path.exists() { - try_sign(&path, settings)?; - } else { - log::warn!("Could not find {}, skipping signing", path.display()); + if let Some(plugin_copy_path) = &maybe_plugin_copy_path { + let plugin_copy_path = plugin_copy_path.join("x86-unicode"); + log::info!("Signing NSIS plugins"); + for dll in NSIS_PLUGIN_FILES { + let path = plugin_copy_path.join(dll); + if path.exists() { + try_sign(&path, settings)?; + } else { + log::warn!("Could not find {}, skipping signing", path.display()); + } } } } diff --git a/crates/tauri-bundler/src/bundle/windows/sign.rs b/crates/tauri-bundler/src/bundle/windows/sign.rs index 04e5a2da5..f7c7ad1e2 100644 --- a/crates/tauri-bundler/src/bundle/windows/sign.rs +++ b/crates/tauri-bundler/src/bundle/windows/sign.rs @@ -266,8 +266,7 @@ pub fn try_sign>(file_path: P, settings: &Settings) -> crate::Res pub fn should_sign(file_path: &Path) -> crate::Result { let is_binary = file_path .extension() - .and_then(|extension| extension.to_str()) - .is_some_and(|extension| matches!(extension, "exe" | "dll")); + .is_some_and(|ext| ext == "exe" || ext == "dll"); if !is_binary { return Ok(false); } diff --git a/crates/tauri-cli/CHANGELOG.md b/crates/tauri-cli/CHANGELOG.md index 841035738..cb3bc6716 100644 --- a/crates/tauri-cli/CHANGELOG.md +++ b/crates/tauri-cli/CHANGELOG.md @@ -1,5 +1,35 @@ # Changelog +## \[2.9.6] + +### What's Changed + +- [`7b1b3514d`](https://www.github.com/tauri-apps/tauri/commit/7b1b3514df771e6e9859b9f54fa4df332433948e) ([#14621](https://www.github.com/tauri-apps/tauri/pull/14621) by [@Legend-Master](https://www.github.com/tauri-apps/tauri/../../Legend-Master)) Errors like `Error Failed to parse version 2 for for NPM package tauri` when there was no `package-lock.json` file present yet or when using ones like `link:./tauri` are now only logged in `--verbose` mode. + +### Dependencies + +- Upgraded to `tauri-macos-sign@2.3.2` +- Upgraded to `tauri-bundler@2.7.5` + +## \[2.9.5] + +### Bug Fixes + +- [`f022b2d1a`](https://www.github.com/tauri-apps/tauri/commit/f022b2d1ae57612e39c75782926f2f341d9034a8) ([#14582](https://www.github.com/tauri-apps/tauri/pull/14582) by [@hrzlgnm](https://www.github.com/tauri-apps/tauri/../../hrzlgnm)) Fixed an issue that caused the cli to error out with missing private key, in case the option `--no-sign` was requested and the `tauri.config` has signing key set and the plugin `tauri-plugin-updater` is used. +- [`f855caf8a`](https://www.github.com/tauri-apps/tauri/commit/f855caf8a3830aa5dd6d0b039312866a5d9c3606) ([#14481](https://www.github.com/tauri-apps/tauri/pull/14481) by [@Legend-Master](https://www.github.com/tauri-apps/tauri/../../Legend-Master)) Fixed the mismatched tauri package versions check didn't work for pnpm +- [`79a7d9ec0`](https://www.github.com/tauri-apps/tauri/commit/79a7d9ec01be1a371b8e923848140fea75e9caed) ([#14468](https://www.github.com/tauri-apps/tauri/pull/14468) by [@FabianLars](https://www.github.com/tauri-apps/tauri/../../FabianLars)) Fixed an issue that caused the cli to print errors like `Error Failed to parse version 2 for crate tauri` when there was no `Cargo.lock` file present yet. This will still be logged in `--verbose` mode. + +### Performance Improvements + +- [`ce98d87ce`](https://www.github.com/tauri-apps/tauri/commit/ce98d87ce0aaa907285852eb80691197424e03c3) ([#14474](https://www.github.com/tauri-apps/tauri/pull/14474) by [@Tunglies](https://www.github.com/tauri-apps/tauri/../../Tunglies)) refactor: remove needless collect. No user facing changes. +- [`ee3cc4a91`](https://www.github.com/tauri-apps/tauri/commit/ee3cc4a91bf1315ecaefe90f423ffd55ef6c40db) ([#14475](https://www.github.com/tauri-apps/tauri/pull/14475) by [@Tunglies](https://www.github.com/tauri-apps/tauri/../../Tunglies)) perf: remove needless clones in various files for improved performance. No user facing changes. + +### Dependencies + +- Upgraded to `tauri-bundler@2.7.4` +- Upgraded to `tauri-macos-sign@2.3.1` +- Upgraded to `tauri-utils@2.8.1` + ## \[2.9.4] ### Bug Fixes diff --git a/crates/tauri-cli/Cargo.toml b/crates/tauri-cli/Cargo.toml index 625db14b7..cbd4bebf6 100644 --- a/crates/tauri-cli/Cargo.toml +++ b/crates/tauri-cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-cli" -version = "2.9.4" +version = "2.9.6" authors = ["Tauri Programme within The Commons Conservancy"] edition = "2021" rust-version = "1.77.2" @@ -47,7 +47,7 @@ sublime_fuzzy = "0.7" clap_complete = "4" clap = { version = "4", features = ["derive", "env"] } thiserror = "2" -tauri-bundler = { version = "2.7.3", default-features = false, path = "../tauri-bundler" } +tauri-bundler = { version = "2.7.5", default-features = false, path = "../tauri-bundler" } colored = "2" serde = { version = "1", features = ["derive"] } serde_json = { version = "1", features = ["preserve_order"] } @@ -58,7 +58,7 @@ shared_child = "1" duct = "1.0" toml_edit = { version = "0.23", features = ["serde"] } json-patch = "3" -tauri-utils = { version = "2.8.0", path = "../tauri-utils", features = [ +tauri-utils = { version = "2.8.1", path = "../tauri-utils", features = [ "isolation", "schema", "config-json5", @@ -133,7 +133,7 @@ libc = "0.2" [target."cfg(target_os = \"macos\")".dependencies] plist = "1" -tauri-macos-sign = { version = "2.3.0", path = "../tauri-macos-sign" } +tauri-macos-sign = { version = "2.3.2", path = "../tauri-macos-sign" } object = { version = "0.36", default-features = false, features = [ "macho", "read_core", diff --git a/crates/tauri-cli/config.schema.json b/crates/tauri-cli/config.schema.json index b9cdcae1d..148379e83 100644 --- a/crates/tauri-cli/config.schema.json +++ b/crates/tauri-cli/config.schema.json @@ -1,6 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "https://schema.tauri.app/config/2.9.3", + "$id": "https://schema.tauri.app/config/2.9.5", "title": "Config", "description": "The Tauri configuration object.\n It is read from a file where you can define your frontend assets,\n configure the bundler and define a tray icon.\n\n The configuration file is generated by the\n [`tauri init`](https://v2.tauri.app/reference/cli/#init) command that lives in\n your Tauri application source directory (src-tauri).\n\n Once generated, you may modify it at will to customize your Tauri application.\n\n ## File Formats\n\n By default, the configuration is defined as a JSON file named `tauri.conf.json`.\n\n Tauri also supports JSON5 and TOML files via the `config-json5` and `config-toml` Cargo features, respectively.\n The JSON5 file name must be either `tauri.conf.json` or `tauri.conf.json5`.\n The TOML file name is `Tauri.toml`.\n\n ## Platform-Specific Configuration\n\n In addition to the default configuration file, Tauri can\n read a platform-specific configuration from `tauri.linux.conf.json`,\n `tauri.windows.conf.json`, `tauri.macos.conf.json`, `tauri.android.conf.json` and `tauri.ios.conf.json`\n (or `Tauri.linux.toml`, `Tauri.windows.toml`, `Tauri.macos.toml`, `Tauri.android.toml` and `Tauri.ios.toml` if the `Tauri.toml` format is used),\n which gets merged with the main configuration object.\n\n ## Configuration Structure\n\n The configuration is composed of the following objects:\n\n - [`app`](#appconfig): The Tauri configuration\n - [`build`](#buildconfig): The build configuration\n - [`bundle`](#bundleconfig): The bundle configurations\n - [`plugins`](#pluginconfig): The plugins configuration\n\n Example tauri.config.json file:\n\n ```json\n {\n \"productName\": \"tauri-app\",\n \"version\": \"0.1.0\",\n \"build\": {\n \"beforeBuildCommand\": \"\",\n \"beforeDevCommand\": \"\",\n \"devUrl\": \"http://localhost:3000\",\n \"frontendDist\": \"../dist\"\n },\n \"app\": {\n \"security\": {\n \"csp\": null\n },\n \"windows\": [\n {\n \"fullscreen\": false,\n \"height\": 600,\n \"resizable\": true,\n \"title\": \"Tauri App\",\n \"width\": 800\n }\n ]\n },\n \"bundle\": {},\n \"plugins\": {}\n }\n ```", "type": "object", @@ -231,7 +231,7 @@ "type": "string" }, "create": { - "description": "Whether Tauri should create this window at app startup or not.\n\n When this is set to `false` you must manually grab the config object via `app.config().app.windows`\n and create it with [`WebviewWindowBuilder::from_config`](https://docs.rs/tauri/2/tauri/webview/struct.WebviewWindowBuilder.html#method.from_config).\n\n ## Example:\n\n ```rust\n tauri::Builder::default()\n .setup(|app| {\n tauri::WebviewWindowBuilder::from_config(app.handle(), app.config().app.windows[0])?.build()?;\n Ok(())\n });\n ```", + "description": "Whether Tauri should create this window at app startup or not.\n\n When this is set to `false` you must manually grab the config object via `app.config().app.windows`\n and create it with [`WebviewWindowBuilder::from_config`](https://docs.rs/tauri/2/tauri/webview/struct.WebviewWindowBuilder.html#method.from_config).\n\n ## Example:\n\n ```rust\n tauri::Builder::default()\n .setup(|app| {\n tauri::WebviewWindowBuilder::from_config(app.handle(), &app.config().app.windows[0])?.build()?;\n Ok(())\n });\n ```", "default": true, "type": "boolean" }, @@ -1296,7 +1296,7 @@ "additionalProperties": false }, "FsScope": { - "description": "Protocol scope definition.\n It is a list of glob patterns that restrict the API access from the webview.\n\n Each pattern can start with a variable that resolves to a system base directory.\n The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`,\n `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`,\n `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`,\n `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.", + "description": "Protocol scope definition.\n It is a list of glob patterns that restrict the API access from the webview.\n\n Each pattern can start with a variable that resolves to a system base directory.\n The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`,\n `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`,\n `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$TEMP`,\n `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.", "anyOf": [ { "description": "A list of paths that are allowed by this scope.", diff --git a/crates/tauri-cli/metadata-v2.json b/crates/tauri-cli/metadata-v2.json index a3ad3dc81..510949b94 100644 --- a/crates/tauri-cli/metadata-v2.json +++ b/crates/tauri-cli/metadata-v2.json @@ -1,9 +1,9 @@ { "cli.js": { - "version": "2.9.4", + "version": "2.9.6", "node": ">= 10.0.0" }, - "tauri": "2.9.3", - "tauri-build": "2.5.2", - "tauri-plugin": "2.5.1" + "tauri": "2.9.5", + "tauri-build": "2.5.3", + "tauri-plugin": "2.5.2" } diff --git a/crates/tauri-cli/src/build.rs b/crates/tauri-cli/src/build.rs index 12accb16f..ac8c5552a 100644 --- a/crates/tauri-cli/src/build.rs +++ b/crates/tauri-cli/src/build.rs @@ -8,7 +8,7 @@ use crate::{ helpers::{ self, app_paths::{frontend_dir, tauri_dir}, - config::{get as get_config, ConfigHandle, FrontendDist}, + config::{get as get_config, ConfigMetadata, FrontendDist}, }, info::plugins::check_mismatched_packages, interface::{rust::get_cargo_target_dir, AppInterface, Interface}, @@ -106,11 +106,11 @@ pub fn command(mut options: Options, verbosity: u8) -> Result<()> { options.target.clone(), )?; - setup(&interface, &mut options, config.clone(), false)?; - let config_guard = config.lock().unwrap(); let config_ = config_guard.as_ref().unwrap(); + setup(&interface, &mut options, config_, false)?; + if let Some(minimum_system_version) = &config_.bundle.macos.minimum_system_version { std::env::set_var("MACOSX_DEPLOYMENT_TARGET", minimum_system_version); } @@ -132,7 +132,7 @@ pub fn command(mut options: Options, verbosity: u8) -> Result<()> { verbosity, ci, &interface, - &app_settings, + &*app_settings, config_, &out_dir, )?; @@ -144,7 +144,7 @@ pub fn command(mut options: Options, verbosity: u8) -> Result<()> { pub fn setup( interface: &AppInterface, options: &mut Options, - config: ConfigHandle, + config: &ConfigMetadata, mobile: bool, ) -> Result<()> { let tauri_path = tauri_dir(); @@ -162,44 +162,39 @@ pub fn setup( set_current_dir(tauri_path).context("failed to set current directory")?; - let config_guard = config.lock().unwrap(); - let config_ = config_guard.as_ref().unwrap(); - - let bundle_identifier_source = config_ + let bundle_identifier_source = config .find_bundle_identifier_overwriter() .unwrap_or_else(|| "tauri.conf.json".into()); - if config_.identifier == "com.tauri.dev" { + if config.identifier == "com.tauri.dev" { crate::error::bail!( "You must change the bundle identifier in `{bundle_identifier_source} identifier`. The default value `com.tauri.dev` is not allowed as it must be unique across applications.", ); } - if config_ + if config .identifier .chars() .any(|ch| !(ch.is_alphanumeric() || ch == '-' || ch == '.')) { crate::error::bail!( - "The bundle identifier \"{}\" set in `{} identifier`. The bundle identifier string must contain only alphanumeric characters (A-Z, a-z, and 0-9), hyphens (-), and periods (.).", - config_.identifier, - bundle_identifier_source + "The bundle identifier \"{}\" set in `{bundle_identifier_source:?} identifier`. The bundle identifier string must contain only alphanumeric characters (A-Z, a-z, and 0-9), hyphens (-), and periods (.).", + config.identifier, ); } - if config_.identifier.ends_with(".app") { + if config.identifier.ends_with(".app") { log::warn!( - "The bundle identifier \"{}\" set in `{} identifier` ends with `.app`. This is not recommended because it conflicts with the application bundle extension on macOS.", - config_.identifier, - bundle_identifier_source + "The bundle identifier \"{}\" set in `{bundle_identifier_source:?} identifier` ends with `.app`. This is not recommended because it conflicts with the application bundle extension on macOS.", + config.identifier, ); } - if let Some(before_build) = config_.build.before_build_command.clone() { + if let Some(before_build) = config.build.before_build_command.clone() { helpers::run_hook("beforeBuildCommand", before_build, interface, options.debug)?; } - if let Some(FrontendDist::Directory(web_asset_path)) = &config_.build.frontend_dist { + if let Some(FrontendDist::Directory(web_asset_path)) = &config.build.frontend_dist { if !web_asset_path.exists() { let absolute_path = web_asset_path .parent() @@ -252,13 +247,13 @@ pub fn setup( } if options.runner.is_none() { - options.runner = config_.build.runner.clone(); + options.runner = config.build.runner.clone(); } options .features .get_or_insert(Vec::new()) - .extend(config_.build.features.clone().unwrap_or_default()); + .extend(config.build.features.clone().unwrap_or_default()); interface.build_options(&mut options.args, &mut options.features, mobile); Ok(()) diff --git a/crates/tauri-cli/src/bundle.rs b/crates/tauri-cli/src/bundle.rs index 890386cd7..646f44ddb 100644 --- a/crates/tauri-cli/src/bundle.rs +++ b/crates/tauri-cli/src/bundle.rs @@ -158,7 +158,7 @@ pub fn command(options: Options, verbosity: u8) -> crate::Result<()> { verbosity, ci, &interface, - &app_settings, + &*app_settings, config_, &out_dir, ) @@ -170,7 +170,7 @@ pub fn bundle( verbosity: u8, ci: bool, interface: &AppInterface, - app_settings: &std::sync::Arc, + app_settings: &A, config: &ConfigMetadata, out_dir: &Path, ) -> crate::Result<()> { diff --git a/crates/tauri-cli/src/dev.rs b/crates/tauri-cli/src/dev.rs index 9179e9cfd..7ebabb458 100644 --- a/crates/tauri-cli/src/dev.rs +++ b/crates/tauri-cli/src/dev.rs @@ -34,7 +34,7 @@ use std::{ mod builtin_dev_server; static BEFORE_DEV: OnceLock>> = OnceLock::new(); -static KILL_BEFORE_DEV_FLAG: OnceLock = OnceLock::new(); +static KILL_BEFORE_DEV_FLAG: AtomicBool = AtomicBool::new(false); #[cfg(unix)] const KILL_CHILDREN_SCRIPT: &[u8] = include_bytes!("../scripts/kill-children.sh"); @@ -218,14 +218,13 @@ pub fn setup(interface: &AppInterface, options: &mut Options, config: ConfigHand let status = child_ .wait() .expect("failed to wait on \"beforeDevCommand\""); - if !(status.success() || KILL_BEFORE_DEV_FLAG.get().unwrap().load(Ordering::Relaxed)) { + if !(status.success() || KILL_BEFORE_DEV_FLAG.load(Ordering::Relaxed)) { log::error!("The \"beforeDevCommand\" terminated with a non-zero status code."); exit(status.code().unwrap_or(1)); } }); BEFORE_DEV.set(Mutex::new(child)).unwrap(); - KILL_BEFORE_DEV_FLAG.set(AtomicBool::default()).unwrap(); let _ = ctrlc::set_handler(move || { kill_before_dev_process(); @@ -304,12 +303,10 @@ pub fn setup(interface: &AppInterface, options: &mut Options, config: ConfigHand if !options.no_dev_server_wait { if let Some(url) = dev_url { - let host = url - .host() - .unwrap_or_else(|| panic!("No host name in the URL")); + let host = url.host().expect("No host name in the URL"); let port = url .port_or_known_default() - .unwrap_or_else(|| panic!("No port number in the URL")); + .expect("No port number in the URL"); let addrs; let addr; let addrs = match host { @@ -380,11 +377,10 @@ pub fn on_app_exit(code: Option, reason: ExitReason, exit_on_panic: bool, n pub fn kill_before_dev_process() { if let Some(child) = BEFORE_DEV.get() { let child = child.lock().unwrap(); - let kill_before_dev_flag = KILL_BEFORE_DEV_FLAG.get().unwrap(); - if kill_before_dev_flag.load(Ordering::Relaxed) { + if KILL_BEFORE_DEV_FLAG.load(Ordering::Relaxed) { return; } - kill_before_dev_flag.store(true, Ordering::Relaxed); + KILL_BEFORE_DEV_FLAG.store(true, Ordering::Relaxed); #[cfg(windows)] { let powershell_path = std::env::var("SYSTEMROOT").map_or_else( diff --git a/crates/tauri-cli/src/helpers/app_paths.rs b/crates/tauri-cli/src/helpers/app_paths.rs index 1bf1ef9b5..3c728f5ba 100644 --- a/crates/tauri-cli/src/helpers/app_paths.rs +++ b/crates/tauri-cli/src/helpers/app_paths.rs @@ -75,21 +75,13 @@ fn lookup bool>(dir: &Path, checker: F) -> Option { } fn env_tauri_app_path() -> Option { - std::env::var(ENV_TAURI_APP_PATH) - .map(PathBuf::from) - .ok()? - .canonicalize() - .ok() - .map(|p| dunce::simplified(&p).to_path_buf()) + let p = PathBuf::from(std::env::var_os(ENV_TAURI_APP_PATH)?); + dunce::canonicalize(p).ok() } fn env_tauri_frontend_path() -> Option { - std::env::var(ENV_TAURI_FRONTEND_PATH) - .map(PathBuf::from) - .ok()? - .canonicalize() - .ok() - .map(|p| dunce::simplified(&p).to_path_buf()) + let p = PathBuf::from(std::env::var_os(ENV_TAURI_FRONTEND_PATH)?); + dunce::canonicalize(p).ok() } pub fn resolve_tauri_dir() -> Option { diff --git a/crates/tauri-cli/src/helpers/config.rs b/crates/tauri-cli/src/helpers/config.rs index f21ce4a4b..d25c29d4f 100644 --- a/crates/tauri-cli/src/helpers/config.rs +++ b/crates/tauri-cli/src/helpers/config.rs @@ -12,9 +12,9 @@ pub use tauri_utils::{config::*, platform::Target}; use std::{ collections::HashMap, env::{current_dir, set_current_dir, set_var}, - ffi::OsStr, + ffi::{OsStr, OsString}, process::exit, - sync::{Arc, Mutex, OnceLock}, + sync::Mutex, }; use crate::error::Context; @@ -30,7 +30,7 @@ pub struct ConfigMetadata { inner: Config, /// The config extensions (platform-specific config files or the config CLI argument). /// Maps the extension name to its value. - extensions: HashMap, + extensions: HashMap, } impl std::ops::Deref for ConfigMetadata { @@ -50,7 +50,7 @@ impl ConfigMetadata { } /// Checks which config is overwriting the bundle identifier. - pub fn find_bundle_identifier_overwriter(&self) -> Option { + pub fn find_bundle_identifier_overwriter(&self) -> Option { for (ext, config) in &self.extensions { if let Some(identifier) = config .as_object() @@ -66,7 +66,7 @@ impl ConfigMetadata { } } -pub type ConfigHandle = Arc>>; +pub type ConfigHandle = &'static Mutex>; pub fn wix_settings(config: WixConfig) -> tauri_bundler::WixSettings { tauri_bundler::WixSettings { @@ -141,9 +141,9 @@ pub fn custom_sign_settings( } } -fn config_handle() -> &'static ConfigHandle { - static CONFIG_HANDLE: OnceLock = OnceLock::new(); - CONFIG_HANDLE.get_or_init(Default::default) +fn config_handle() -> ConfigHandle { + static CONFIG_HANDLE: Mutex> = Mutex::new(None); + &CONFIG_HANDLE } /// Gets the static parsed config from `tauri.conf.json`. @@ -153,14 +153,14 @@ fn get_internal( target: Target, ) -> crate::Result { if !reload && config_handle().lock().unwrap().is_some() { - return Ok(config_handle().clone()); + return Ok(config_handle()); } let tauri_dir = super::app_paths::tauri_dir(); let (mut config, config_path) = tauri_utils::config::parse::parse_value(target, tauri_dir.join("tauri.conf.json")) .context("failed to parse config")?; - let config_file_name = config_path.file_name().unwrap().to_string_lossy(); + let config_file_name = config_path.file_name().unwrap(); let mut extensions = HashMap::new(); let original_identifier = config @@ -174,10 +174,7 @@ fn get_internal( .context("failed to parse platform config")? { merge(&mut config, &platform_config); - extensions.insert( - config_path.file_name().unwrap().to_str().unwrap().into(), - platform_config, - ); + extensions.insert(config_path.file_name().unwrap().into(), platform_config); } if !merge_configs.is_empty() { @@ -203,9 +200,9 @@ fn get_internal( for error in errors { let path = error.instance_path.into_iter().join(" > "); if path.is_empty() { - log::error!("`{}` error: {}", config_file_name, error); + log::error!("`{config_file_name:?}` error: {}", error); } else { - log::error!("`{}` error on `{}`: {}", config_file_name, path, error); + log::error!("`{config_file_name:?}` error on `{}`: {}", path, error); } } if !reload { @@ -243,7 +240,7 @@ fn get_internal( extensions, }); - Ok(config_handle().clone()) + Ok(config_handle()) } pub fn get(target: Target, merge_configs: &[&serde_json::Value]) -> crate::Result { @@ -268,7 +265,7 @@ pub fn merge_with(merge_configs: &[&serde_json::Value]) -> crate::Result crate::Result Result PhysicalRect { let rect = self.gdk_monitor().workarea(); + let scale_factor = self.scale_factor(); PhysicalRect { - size: PhysicalSize::new(rect.width() as u32, rect.height() as u32), - position: PhysicalPosition::new(rect.x(), rect.y()), + size: LogicalSize::new(rect.width() as u32, rect.height() as u32).to_physical(scale_factor), + position: LogicalPosition::new(rect.x(), rect.y()).to_physical(scale_factor), } } } diff --git a/crates/tauri-runtime/CHANGELOG.md b/crates/tauri-runtime/CHANGELOG.md index edf7e1a03..c4ae73bec 100644 --- a/crates/tauri-runtime/CHANGELOG.md +++ b/crates/tauri-runtime/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## \[2.9.2] + +### Dependencies + +- Upgraded to `tauri-utils@2.8.1` + ## \[2.9.1] ### Bug Fixes diff --git a/crates/tauri-runtime/Cargo.toml b/crates/tauri-runtime/Cargo.toml index b269b8d32..53db45873 100644 --- a/crates/tauri-runtime/Cargo.toml +++ b/crates/tauri-runtime/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-runtime" -version = "2.9.1" +version = "2.9.2" description = "Runtime for Tauri applications" exclude = ["CHANGELOG.md", "/target"] readme = "README.md" @@ -27,7 +27,7 @@ targets = [ serde = { version = "1", features = ["derive"] } serde_json = "1" thiserror = "2" -tauri-utils = { version = "2.8.0", path = "../tauri-utils" } +tauri-utils = { version = "2.8.1", path = "../tauri-utils" } http = "1" raw-window-handle = "0.6" url = { version = "2" } diff --git a/crates/tauri-schema-generator/schemas/config.schema.json b/crates/tauri-schema-generator/schemas/config.schema.json index b9cdcae1d..148379e83 100644 --- a/crates/tauri-schema-generator/schemas/config.schema.json +++ b/crates/tauri-schema-generator/schemas/config.schema.json @@ -1,6 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "https://schema.tauri.app/config/2.9.3", + "$id": "https://schema.tauri.app/config/2.9.5", "title": "Config", "description": "The Tauri configuration object.\n It is read from a file where you can define your frontend assets,\n configure the bundler and define a tray icon.\n\n The configuration file is generated by the\n [`tauri init`](https://v2.tauri.app/reference/cli/#init) command that lives in\n your Tauri application source directory (src-tauri).\n\n Once generated, you may modify it at will to customize your Tauri application.\n\n ## File Formats\n\n By default, the configuration is defined as a JSON file named `tauri.conf.json`.\n\n Tauri also supports JSON5 and TOML files via the `config-json5` and `config-toml` Cargo features, respectively.\n The JSON5 file name must be either `tauri.conf.json` or `tauri.conf.json5`.\n The TOML file name is `Tauri.toml`.\n\n ## Platform-Specific Configuration\n\n In addition to the default configuration file, Tauri can\n read a platform-specific configuration from `tauri.linux.conf.json`,\n `tauri.windows.conf.json`, `tauri.macos.conf.json`, `tauri.android.conf.json` and `tauri.ios.conf.json`\n (or `Tauri.linux.toml`, `Tauri.windows.toml`, `Tauri.macos.toml`, `Tauri.android.toml` and `Tauri.ios.toml` if the `Tauri.toml` format is used),\n which gets merged with the main configuration object.\n\n ## Configuration Structure\n\n The configuration is composed of the following objects:\n\n - [`app`](#appconfig): The Tauri configuration\n - [`build`](#buildconfig): The build configuration\n - [`bundle`](#bundleconfig): The bundle configurations\n - [`plugins`](#pluginconfig): The plugins configuration\n\n Example tauri.config.json file:\n\n ```json\n {\n \"productName\": \"tauri-app\",\n \"version\": \"0.1.0\",\n \"build\": {\n \"beforeBuildCommand\": \"\",\n \"beforeDevCommand\": \"\",\n \"devUrl\": \"http://localhost:3000\",\n \"frontendDist\": \"../dist\"\n },\n \"app\": {\n \"security\": {\n \"csp\": null\n },\n \"windows\": [\n {\n \"fullscreen\": false,\n \"height\": 600,\n \"resizable\": true,\n \"title\": \"Tauri App\",\n \"width\": 800\n }\n ]\n },\n \"bundle\": {},\n \"plugins\": {}\n }\n ```", "type": "object", @@ -231,7 +231,7 @@ "type": "string" }, "create": { - "description": "Whether Tauri should create this window at app startup or not.\n\n When this is set to `false` you must manually grab the config object via `app.config().app.windows`\n and create it with [`WebviewWindowBuilder::from_config`](https://docs.rs/tauri/2/tauri/webview/struct.WebviewWindowBuilder.html#method.from_config).\n\n ## Example:\n\n ```rust\n tauri::Builder::default()\n .setup(|app| {\n tauri::WebviewWindowBuilder::from_config(app.handle(), app.config().app.windows[0])?.build()?;\n Ok(())\n });\n ```", + "description": "Whether Tauri should create this window at app startup or not.\n\n When this is set to `false` you must manually grab the config object via `app.config().app.windows`\n and create it with [`WebviewWindowBuilder::from_config`](https://docs.rs/tauri/2/tauri/webview/struct.WebviewWindowBuilder.html#method.from_config).\n\n ## Example:\n\n ```rust\n tauri::Builder::default()\n .setup(|app| {\n tauri::WebviewWindowBuilder::from_config(app.handle(), &app.config().app.windows[0])?.build()?;\n Ok(())\n });\n ```", "default": true, "type": "boolean" }, @@ -1296,7 +1296,7 @@ "additionalProperties": false }, "FsScope": { - "description": "Protocol scope definition.\n It is a list of glob patterns that restrict the API access from the webview.\n\n Each pattern can start with a variable that resolves to a system base directory.\n The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`,\n `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`,\n `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`,\n `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.", + "description": "Protocol scope definition.\n It is a list of glob patterns that restrict the API access from the webview.\n\n Each pattern can start with a variable that resolves to a system base directory.\n The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`,\n `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`,\n `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$TEMP`,\n `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.", "anyOf": [ { "description": "A list of paths that are allowed by this scope.", diff --git a/crates/tauri-schema-worker/Cargo.toml b/crates/tauri-schema-worker/Cargo.toml index 70462e5f9..34da45cc7 100644 --- a/crates/tauri-schema-worker/Cargo.toml +++ b/crates/tauri-schema-worker/Cargo.toml @@ -8,8 +8,8 @@ publish = false crate-type = ["cdylib"] [dependencies] -worker = { version = "0.6", features = ['http', 'axum'] } -worker-macros = { version = "0.6", features = ['http'] } +worker = { version = "0.7", features = ['http', 'axum'] } +worker-macros = { version = "0.7", features = ['http'] } console_error_panic_hook = { version = "0.1" } axum = { version = "0.8", default-features = false } tower-service = "0.3" diff --git a/crates/tauri-schema-worker/wrangler.toml b/crates/tauri-schema-worker/wrangler.toml index c7b811908..661b6059a 100644 --- a/crates/tauri-schema-worker/wrangler.toml +++ b/crates/tauri-schema-worker/wrangler.toml @@ -7,8 +7,9 @@ main = "build/worker/shim.mjs" compatibility_date = "2023-08-23" send_metrics = false +# The minor version of worker-build must match worker/worker-macros in Cargo.toml! [build] -command = "cargo install -q worker-build && worker-build --release" +command = "cargo install -q worker-build@^0.7 && worker-build --release" [observability] enabled = true diff --git a/crates/tauri-utils/CHANGELOG.md b/crates/tauri-utils/CHANGELOG.md index 538887203..a63e5103b 100644 --- a/crates/tauri-utils/CHANGELOG.md +++ b/crates/tauri-utils/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## \[2.8.1] + +### Bug Fixes + +- [`1573c7240`](https://www.github.com/tauri-apps/tauri/commit/1573c72402352949d1fd3ca5c6fdbee46fe69fbb) ([#14561](https://www.github.com/tauri-apps/tauri/pull/14561) by [@FabianLars](https://www.github.com/tauri-apps/tauri/../../FabianLars)) Fixed an issue that caused schema files to have `\r` characters on Windows. + ## \[2.8.0] ### New Features diff --git a/crates/tauri-utils/Cargo.toml b/crates/tauri-utils/Cargo.toml index 7cc6f5c78..25debb2db 100644 --- a/crates/tauri-utils/Cargo.toml +++ b/crates/tauri-utils/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri-utils" -version = "2.8.0" +version = "2.8.1" description = "Utilities for Tauri" exclude = ["CHANGELOG.md", "/target"] readme = "README.md" diff --git a/crates/tauri-utils/src/config.rs b/crates/tauri-utils/src/config.rs index 37c77abff..24b111830 100644 --- a/crates/tauri-utils/src/config.rs +++ b/crates/tauri-utils/src/config.rs @@ -1653,7 +1653,7 @@ pub struct WindowConfig { /// ```rust /// tauri::Builder::default() /// .setup(|app| { - /// tauri::WebviewWindowBuilder::from_config(app.handle(), app.config().app.windows[0])?.build()?; + /// tauri::WebviewWindowBuilder::from_config(app.handle(), &app.config().app.windows[0])?.build()?; /// Ok(()) /// }); /// ``` @@ -2006,7 +2006,7 @@ impl Default for WindowConfig { closable: true, title: default_title(), fullscreen: false, - focus: false, + focus: true, focusable: true, transparent: false, maximized: false, @@ -2211,8 +2211,8 @@ impl Default for DisabledCspModificationKind { /// Each pattern can start with a variable that resolves to a system base directory. /// The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, /// `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, -/// `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$APP`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, -/// `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`. +/// `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$TEMP`, +/// `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`. #[derive(Debug, PartialEq, Eq, Clone, Deserialize, Serialize)] #[serde(untagged)] #[cfg_attr(feature = "schema", derive(JsonSchema))] @@ -4384,4 +4384,12 @@ mod test { assert!(object_json.contains("\"cwd\":null") || !object_json.contains("cwd")); assert!(object_json.contains("\"args\":null") || !object_json.contains("args")); } + + #[test] + fn window_config_default_same_as_deserialize() { + let config_from_deserialization: WindowConfig = serde_json::from_str("{}").unwrap(); + let config_from_default: WindowConfig = WindowConfig::default(); + + assert_eq!(config_from_deserialization, config_from_default); + } } diff --git a/crates/tauri-utils/src/config/parse.rs b/crates/tauri-utils/src/config/parse.rs index f904d5f25..df79a32c9 100644 --- a/crates/tauri-utils/src/config/parse.rs +++ b/crates/tauri-utils/src/config/parse.rs @@ -209,7 +209,7 @@ pub fn read_platform( /// JSON with `.json`. pub fn does_supported_file_name_exist(target: Target, path: impl Into) -> bool { let path = path.into(); - let source_file_name = path.file_name().unwrap().to_str().unwrap(); + let source_file_name = path.file_name().unwrap(); let lookup_platform_config = ENABLED_FORMATS .iter() .any(|format| source_file_name == format.into_platform_file_name(target)); diff --git a/crates/tauri-utils/src/platform.rs b/crates/tauri-utils/src/platform.rs index 542cea53c..2ace45790 100644 --- a/crates/tauri-utils/src/platform.rs +++ b/crates/tauri-utils/src/platform.rs @@ -238,16 +238,12 @@ const CARGO_OUTPUT_DIRECTORIES: &[&str] = &["debug", "release", "custom-profile" #[cfg(test)] fn is_cargo_output_directory(path: &std::path::Path) -> bool { - let last_component = path - .components() - .next_back() - .unwrap() - .as_os_str() - .to_str() - .unwrap(); + let Some(last_component) = path.components().next_back() else { + return false; + }; CARGO_OUTPUT_DIRECTORIES .iter() - .any(|dirname| &last_component == dirname) + .any(|dirname| &last_component.as_os_str() == dirname) } /// Computes the resource directory of the current environment. diff --git a/crates/tauri-utils/src/resources.rs b/crates/tauri-utils/src/resources.rs index 58a07d265..dfba0746c 100644 --- a/crates/tauri-utils/src/resources.rs +++ b/crates/tauri-utils/src/resources.rs @@ -97,9 +97,7 @@ impl<'a> ResourcePaths<'a> { iter: ResourcePathsIter { pattern_iter: PatternIter::Slice(patterns.iter()), allow_walk, - current_path: None, current_pattern: None, - current_dest: None, walk_iter: None, glob_iter: None, }, @@ -112,9 +110,7 @@ impl<'a> ResourcePaths<'a> { iter: ResourcePathsIter { pattern_iter: PatternIter::Map(patterns.iter()), allow_walk, - current_path: None, current_pattern: None, - current_dest: None, walk_iter: None, glob_iter: None, }, @@ -136,13 +132,9 @@ pub struct ResourcePathsIter<'a> { /// whether the resource paths allows directories or not. allow_walk: bool, - current_path: Option, - /// The key of map when `pattern_iter` is a [`PatternIter::Map`], + /// The (key, value) of map when `pattern_iter` is a [`PatternIter::Map`], /// used for determining [`Resource::target`] - current_pattern: Option, - /// The value of the map when `pattern_iter` is a [`PatternIter::Map`], - /// used for determining [`Resource::target`] - current_dest: Option, + current_pattern: Option<(String, PathBuf)>, walk_iter: Option, glob_iter: Option, @@ -157,8 +149,7 @@ impl ResourcePathsIter<'_> { Err(err) => return Some(Err(err.into())), }; - self.current_path = Some(normalize(&entry)); - self.next_current_path() + self.next_current_path(normalize(&entry)) } fn next_walk_iter(&mut self) -> Option> { @@ -169,8 +160,7 @@ impl ResourcePathsIter<'_> { Err(err) => return Some(Err(err.into())), }; - self.current_path = Some(normalize(entry.path())); - self.next_current_path() + self.next_current_path(normalize(entry.path())) } fn resource_from_path(&mut self, path: &Path) -> crate::Result { @@ -180,12 +170,11 @@ impl ResourcePathsIter<'_> { Ok(Resource { path: path.to_path_buf(), - target: if let Some(current_dest) = &self.current_dest { + target: if let Some((pattern, dest)) = &self.current_pattern { // if processing a directory, preserve directory structure under current_dest if self.walk_iter.is_some() { - let current_pattern = self.current_pattern.as_ref().unwrap(); - current_dest.join(path.strip_prefix(current_pattern).unwrap_or(path)) - } else if current_dest.components().count() == 0 { + dest.join(path.strip_prefix(pattern).unwrap_or(path)) + } else if dest.components().count() == 0 { // if current_dest is empty while processing a file pattern or glob // we preserve the file name as it is PathBuf::from(path.file_name().unwrap()) @@ -193,9 +182,9 @@ impl ResourcePathsIter<'_> { // if processing a glob and current_dest is not empty // we put all globbed paths under current_dest // preserving the file name as it is - current_dest.join(path.file_name().unwrap()) + dest.join(path.file_name().unwrap()) } else { - current_dest.clone() + dest.clone() } } else { // If `pattern_iter` is a [`PatternIter::Slice`] @@ -204,11 +193,7 @@ impl ResourcePathsIter<'_> { }) } - fn next_current_path(&mut self) -> Option> { - // should be safe to unwrap since every call to `self.next_current_path()` - // is preceded with assignment to `self.current_path` - let path = self.current_path.take().unwrap(); - + fn next_current_path(&mut self, path: PathBuf) -> Option> { let is_dir = path.is_dir(); if is_dir { @@ -238,15 +223,12 @@ impl ResourcePathsIter<'_> { fn next_pattern(&mut self) -> Option> { self.current_pattern = None; - self.current_dest = None; - self.current_path = None; let pattern = match &mut self.pattern_iter { PatternIter::Slice(iter) => iter.next()?, PatternIter::Map(iter) => { let (pattern, dest) = iter.next()?; - self.current_pattern = Some(pattern.clone()); - self.current_dest = Some(resource_relpath(Path::new(dest))); + self.current_pattern = Some((pattern.clone(), resource_relpath(Path::new(dest)))); pattern } }; @@ -265,8 +247,7 @@ impl ResourcePathsIter<'_> { } } - self.current_path = Some(normalize(Path::new(pattern))); - self.next_current_path() + self.next_current_path(normalize(Path::new(pattern))) } } @@ -282,10 +263,6 @@ impl Iterator for ResourcePathsIter<'_> { type Item = crate::Result; fn next(&mut self) -> Option> { - if self.current_path.is_some() { - return self.next_current_path(); - } - if self.walk_iter.is_some() { match self.next_walk_iter() { Some(r) => return Some(r), diff --git a/crates/tauri/CHANGELOG.md b/crates/tauri/CHANGELOG.md index e1332ea34..ea3c1568c 100644 --- a/crates/tauri/CHANGELOG.md +++ b/crates/tauri/CHANGELOG.md @@ -1,5 +1,30 @@ # Changelog +## \[2.9.5] + +### Bug Fixes + +- [`251203b89`](https://www.github.com/tauri-apps/tauri/commit/251203b8963419cb3b40741767393e8f3c909ef9) ([#14637](https://www.github.com/tauri-apps/tauri/pull/14637) by [@Legend-Master](https://www.github.com/tauri-apps/tauri/../../Legend-Master)) Fix `Monitor::work_area` returns logical position and size inside the `PhysicalRect` on Linux + +### Dependencies + +- Upgraded to `tauri-runtime-wry@2.9.3` + +## \[2.9.4] + +### Performance Improvements + +- [`ce98d87ce`](https://www.github.com/tauri-apps/tauri/commit/ce98d87ce0aaa907285852eb80691197424e03c3) ([#14474](https://www.github.com/tauri-apps/tauri/pull/14474) by [@Tunglies](https://www.github.com/tauri-apps/tauri/../../Tunglies)) refactor: remove needless collect. No user facing changes. +- [`ee3cc4a91`](https://www.github.com/tauri-apps/tauri/commit/ee3cc4a91bf1315ecaefe90f423ffd55ef6c40db) ([#14475](https://www.github.com/tauri-apps/tauri/pull/14475) by [@Tunglies](https://www.github.com/tauri-apps/tauri/../../Tunglies)) perf: remove needless clones in various files for improved performance. No user facing changes. + +### Dependencies + +- Upgraded to `tauri-utils@2.8.1` +- Upgraded to `tauri-runtime@2.9.2` +- Upgraded to `tauri-runtime-wry@2.9.2` +- Upgraded to `tauri-macros@2.5.2` +- Upgraded to `tauri-build@2.5.3` + ## \[2.9.3] ### Bug Fixes diff --git a/crates/tauri/Cargo.toml b/crates/tauri/Cargo.toml index dda4f4124..4da7736cd 100644 --- a/crates/tauri/Cargo.toml +++ b/crates/tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tauri" -version = "2.9.3" +version = "2.9.5" description = "Make tiny, secure apps for all desktop platforms with Tauri" exclude = ["/test", "/.scripts", "CHANGELOG.md", "/target"] readme = "README.md" @@ -55,12 +55,12 @@ uuid = { version = "1", features = ["v4"], optional = true } url = "2" anyhow = "1" thiserror = "2" -tauri-runtime = { version = "2.9.1", path = "../tauri-runtime" } -tauri-macros = { version = "2.5.1", path = "../tauri-macros" } -tauri-utils = { version = "2.8.0", features = [ +tauri-runtime = { version = "2.9.2", path = "../tauri-runtime" } +tauri-macros = { version = "2.5.2", path = "../tauri-macros" } +tauri-utils = { version = "2.8.1", features = [ "resources", ], path = "../tauri-utils" } -tauri-runtime-wry = { version = "2.9.1", path = "../tauri-runtime-wry", default-features = false, optional = true } +tauri-runtime-wry = { version = "2.9.3", path = "../tauri-runtime-wry", default-features = false, optional = true } getrandom = "0.3" serde_repr = "0.1" http = "1" @@ -162,8 +162,8 @@ objc2-ui-kit = { version = "0.3.0", default-features = false, features = [ [build-dependencies] glob = "0.3" heck = "0.5" -tauri-build = { path = "../tauri-build/", default-features = false, version = "2.5.2" } -tauri-utils = { path = "../tauri-utils/", version = "2.8.0", features = [ +tauri-build = { path = "../tauri-build/", default-features = false, version = "2.5.3" } +tauri-utils = { path = "../tauri-utils/", version = "2.8.1", features = [ "build", ] } diff --git a/crates/tests/acl/fixtures/capabilities/scope-extended/cap.json b/crates/tests/acl/fixtures/capabilities/scope-extended/cap.json index 26355eed5..78ec36d96 100644 --- a/crates/tests/acl/fixtures/capabilities/scope-extended/cap.json +++ b/crates/tests/acl/fixtures/capabilities/scope-extended/cap.json @@ -25,12 +25,12 @@ "identifier": "fs:allow-app", "allow": [ { - "path": "$APP/**" + "path": "$APPDATA/**" } ], "deny": [ { - "path": "$APP/*.db" + "path": "$APPDATA/*.db" } ] }, diff --git a/crates/tests/acl/fixtures/plugins/fs/scope.toml b/crates/tests/acl/fixtures/plugins/fs/scope.toml index 6d8a29a3f..efe82a96c 100644 --- a/crates/tests/acl/fixtures/plugins/fs/scope.toml +++ b/crates/tests/acl/fixtures/plugins/fs/scope.toml @@ -1,8 +1,8 @@ [[permission]] identifier = "allow-app" -description = "Allows accessing the $APP path." +description = "Allows accessing the $APPDATA path." [[permission.scope.allow]] -path = "$APP" +path = "$APPDATA" [[permission]] identifier = "allow-download-dir" diff --git a/crates/tests/acl/fixtures/plugins/os/windows.toml b/crates/tests/acl/fixtures/plugins/os/windows.toml index 577b0c967..1f84a6d99 100644 --- a/crates/tests/acl/fixtures/plugins/os/windows.toml +++ b/crates/tests/acl/fixtures/plugins/os/windows.toml @@ -3,4 +3,4 @@ identifier = "deny-webview-folder-windows" platforms = ["windows"] description = "Denies access to the webview folder on Windows" [[permission.scope.deny]] -path = "$APP/EBWebView/**" +path = "$APPLOCALDATA/EBWebView/**" diff --git a/crates/tests/acl/fixtures/snapshots/acl_tests__tests__file-explorer-remote.snap b/crates/tests/acl/fixtures/snapshots/acl_tests__tests__file-explorer-remote.snap index dd9b05093..50029e7bd 100644 --- a/crates/tests/acl/fixtures/snapshots/acl_tests__tests__file-explorer-remote.snap +++ b/crates/tests/acl/fixtures/snapshots/acl_tests__tests__file-explorer-remote.snap @@ -398,7 +398,7 @@ Resolved { Map( { "path": String( - "$APP", + "$APPDATA", ), }, ), diff --git a/crates/tests/acl/fixtures/snapshots/acl_tests__tests__file-explorer.snap b/crates/tests/acl/fixtures/snapshots/acl_tests__tests__file-explorer.snap index a3e4cd8b3..03f795b43 100644 --- a/crates/tests/acl/fixtures/snapshots/acl_tests__tests__file-explorer.snap +++ b/crates/tests/acl/fixtures/snapshots/acl_tests__tests__file-explorer.snap @@ -68,7 +68,7 @@ Resolved { Map( { "path": String( - "$APP", + "$APPDATA", ), }, ), diff --git a/crates/tests/acl/fixtures/snapshots/acl_tests__tests__multiwindow.snap b/crates/tests/acl/fixtures/snapshots/acl_tests__tests__multiwindow.snap index f80ef7566..95ba3490d 100644 --- a/crates/tests/acl/fixtures/snapshots/acl_tests__tests__multiwindow.snap +++ b/crates/tests/acl/fixtures/snapshots/acl_tests__tests__multiwindow.snap @@ -310,7 +310,7 @@ Resolved { Map( { "path": String( - "$APP", + "$APPDATA", ), }, ), diff --git a/crates/tests/acl/fixtures/snapshots/acl_tests__tests__scope-extended.snap b/crates/tests/acl/fixtures/snapshots/acl_tests__tests__scope-extended.snap index 41d2d99d7..7f1606fae 100644 --- a/crates/tests/acl/fixtures/snapshots/acl_tests__tests__scope-extended.snap +++ b/crates/tests/acl/fixtures/snapshots/acl_tests__tests__scope-extended.snap @@ -244,14 +244,14 @@ Resolved { Map( { "path": String( - "$APP/**", + "$APPDATA/**", ), }, ), Map( { "path": String( - "$APP", + "$APPDATA", ), }, ), @@ -281,7 +281,7 @@ Resolved { Map( { "path": String( - "$APP/*.db", + "$APPDATA/*.db", ), }, ), diff --git a/crates/tests/acl/fixtures/snapshots/acl_tests__tests__scope.snap b/crates/tests/acl/fixtures/snapshots/acl_tests__tests__scope.snap index e98810961..b74d04381 100644 --- a/crates/tests/acl/fixtures/snapshots/acl_tests__tests__scope.snap +++ b/crates/tests/acl/fixtures/snapshots/acl_tests__tests__scope.snap @@ -208,7 +208,7 @@ Resolved { Map( { "path": String( - "$APP", + "$APPDATA", ), }, ), diff --git a/crates/tests/acl/fixtures/snapshots/windows/acl_tests__tests__platform-specific-permissions.snap b/crates/tests/acl/fixtures/snapshots/windows/acl_tests__tests__platform-specific-permissions.snap index 618dcd1a7..17498f928 100644 --- a/crates/tests/acl/fixtures/snapshots/windows/acl_tests__tests__platform-specific-permissions.snap +++ b/crates/tests/acl/fixtures/snapshots/windows/acl_tests__tests__platform-specific-permissions.snap @@ -56,7 +56,7 @@ Resolved { Map( { "path": String( - "$APP/EBWebView/**", + "$APPLOCALDATA/EBWebView/**", ), }, ), diff --git a/packages/api/CHANGELOG.md b/packages/api/CHANGELOG.md index be0325b77..f9cce7cdf 100644 --- a/packages/api/CHANGELOG.md +++ b/packages/api/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## \[2.9.1] + +### Bug Fixes + +- [`ad1dec2e2`](https://www.github.com/tauri-apps/tauri/commit/ad1dec2e2488fe5c0a004b69f1bd290dfc593bf8) ([#14464](https://www.github.com/tauri-apps/tauri/pull/14464) by [@funnydino](https://www.github.com/tauri-apps/tauri/../../funnydino)) Fix `addPluginListener` fallback added in https://github.com/tauri-apps/tauri/pull/14132 didn't work properly + ## \[2.9.0] ### New Features diff --git a/packages/api/package.json b/packages/api/package.json index 57628957b..930142eb2 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/api", - "version": "2.9.0", + "version": "2.9.1", "description": "Tauri API definitions", "funding": { "type": "opencollective", @@ -55,7 +55,7 @@ "eslint-plugin-security": "3.0.1", "fast-glob": "3.3.3", "globals": "^16.2.0", - "rollup": "4.53.3", + "rollup": "4.53.4", "tslib": "^2.8.1", "typescript": "^5.8.3", "typescript-eslint": "^8.34.1" diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index b242fd9ca..305a65a38 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,25 @@ # Changelog +## \[2.9.6] + +### Dependencies + +- Upgraded to `tauri-cli@2.9.6` + +## \[2.9.5] + +### Bug Fixes + +- [`f855caf8a`](https://www.github.com/tauri-apps/tauri/commit/f855caf8a3830aa5dd6d0b039312866a5d9c3606) ([#14481](https://www.github.com/tauri-apps/tauri/pull/14481) by [@Legend-Master](https://www.github.com/tauri-apps/tauri/../../Legend-Master)) Fixed the mismatched tauri package versions check didn't work for pnpm + +### Performance Improvements + +- [`ce98d87ce`](https://www.github.com/tauri-apps/tauri/commit/ce98d87ce0aaa907285852eb80691197424e03c3) ([#14474](https://www.github.com/tauri-apps/tauri/pull/14474) by [@Tunglies](https://www.github.com/tauri-apps/tauri/../../Tunglies)) refactor: remove needless collect. No user facing changes. + +### Dependencies + +- Upgraded to `tauri-cli@2.9.5` + ## \[2.9.4] ### Bug Fixes diff --git a/packages/cli/package.json b/packages/cli/package.json index cf9a13172..f6dce72a9 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@tauri-apps/cli", - "version": "2.9.4", + "version": "2.9.6", "description": "Command line interface for building Tauri apps", "type": "commonjs", "funding": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c0f85ced8..e273bc3dd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -63,10 +63,10 @@ importers: version: 9.29.0 '@rollup/plugin-terser': specifier: 0.4.4 - version: 0.4.4(rollup@4.53.3) + version: 0.4.4(rollup@4.53.4) '@rollup/plugin-typescript': specifier: 12.3.0 - version: 12.3.0(rollup@4.53.3)(tslib@2.8.1)(typescript@5.8.3) + version: 12.3.0(rollup@4.53.4)(tslib@2.8.1)(typescript@5.8.3) '@types/eslint': specifier: ^9.6.1 version: 9.6.1 @@ -89,8 +89,8 @@ importers: specifier: ^16.2.0 version: 16.2.0 rollup: - specifier: 4.53.3 - version: 4.53.3 + specifier: 4.53.4 + version: 4.53.4 tslib: specifier: ^2.8.1 version: 2.8.1 @@ -1125,113 +1125,113 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.53.3': - resolution: {integrity: sha512-mRSi+4cBjrRLoaal2PnqH82Wqyb+d3HsPUN/W+WslCXsZsyHa9ZeQQX/pQsZaVIWDkPcpV6jJ+3KLbTbgnwv8w==} + '@rollup/rollup-android-arm-eabi@4.53.4': + resolution: {integrity: sha512-PWU3Y92H4DD0bOqorEPp1Y0tbzwAurFmIYpjcObv5axGVOtcTlB0b2UKMd2echo08MgN7jO8WQZSSysvfisFSQ==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.53.3': - resolution: {integrity: sha512-CbDGaMpdE9sh7sCmTrTUyllhrg65t6SwhjlMJsLr+J8YjFuPmCEjbBSx4Z/e4SmDyH3aB5hGaJUP2ltV/vcs4w==} + '@rollup/rollup-android-arm64@4.53.4': + resolution: {integrity: sha512-Gw0/DuVm3rGsqhMGYkSOXXIx20cC3kTlivZeuaGt4gEgILivykNyBWxeUV5Cf2tDA2nPLah26vq3emlRrWVbng==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.53.3': - resolution: {integrity: sha512-Nr7SlQeqIBpOV6BHHGZgYBuSdanCXuw09hon14MGOLGmXAFYjx1wNvquVPmpZnl0tLjg25dEdr4IQ6GgyToCUA==} + '@rollup/rollup-darwin-arm64@4.53.4': + resolution: {integrity: sha512-+w06QvXsgzKwdVg5qRLZpTHh1bigHZIqoIUPtiqh05ZiJVUQ6ymOxaPkXTvRPRLH88575ZCRSRM3PwIoNma01Q==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.53.3': - resolution: {integrity: sha512-DZ8N4CSNfl965CmPktJ8oBnfYr3F8dTTNBQkRlffnUarJ2ohudQD17sZBa097J8xhQ26AwhHJ5mvUyQW8ddTsQ==} + '@rollup/rollup-darwin-x64@4.53.4': + resolution: {integrity: sha512-EB4Na9G2GsrRNRNFPuxfwvDRDUwQEzJPpiK1vo2zMVhEeufZ1k7J1bKnT0JYDfnPC7RNZ2H5YNQhW6/p2QKATw==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.53.3': - resolution: {integrity: sha512-yMTrCrK92aGyi7GuDNtGn2sNW+Gdb4vErx4t3Gv/Tr+1zRb8ax4z8GWVRfr3Jw8zJWvpGHNpss3vVlbF58DZ4w==} + '@rollup/rollup-freebsd-arm64@4.53.4': + resolution: {integrity: sha512-bldA8XEqPcs6OYdknoTMaGhjytnwQ0NClSPpWpmufOuGPN5dDmvIa32FygC2gneKK4A1oSx86V1l55hyUWUYFQ==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.53.3': - resolution: {integrity: sha512-lMfF8X7QhdQzseM6XaX0vbno2m3hlyZFhwcndRMw8fbAGUGL3WFMBdK0hbUBIUYcEcMhVLr1SIamDeuLBnXS+Q==} + '@rollup/rollup-freebsd-x64@4.53.4': + resolution: {integrity: sha512-3T8GPjH6mixCd0YPn0bXtcuSXi1Lj+15Ujw2CEb7dd24j9thcKscCf88IV7n76WaAdorOzAgSSbuVRg4C8V8Qw==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.53.3': - resolution: {integrity: sha512-k9oD15soC/Ln6d2Wv/JOFPzZXIAIFLp6B+i14KhxAfnq76ajt0EhYc5YPeX6W1xJkAdItcVT+JhKl1QZh44/qw==} + '@rollup/rollup-linux-arm-gnueabihf@4.53.4': + resolution: {integrity: sha512-UPMMNeC4LXW7ZSHxeP3Edv09aLsFUMaD1TSVW6n1CWMECnUIJMFFB7+XC2lZTdPtvB36tYC0cJWc86mzSsaviw==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.53.3': - resolution: {integrity: sha512-vTNlKq+N6CK/8UktsrFuc+/7NlEYVxgaEgRXVUVK258Z5ymho29skzW1sutgYjqNnquGwVUObAaxae8rZ6YMhg==} + '@rollup/rollup-linux-arm-musleabihf@4.53.4': + resolution: {integrity: sha512-H8uwlV0otHs5Q7WAMSoyvjV9DJPiy5nJ/xnHolY0QptLPjaSsuX7tw+SPIfiYH6cnVx3fe4EWFafo6gH6ekZKA==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.53.3': - resolution: {integrity: sha512-RGrFLWgMhSxRs/EWJMIFM1O5Mzuz3Xy3/mnxJp/5cVhZ2XoCAxJnmNsEyeMJtpK+wu0FJFWz+QF4mjCA7AUQ3w==} + '@rollup/rollup-linux-arm64-gnu@4.53.4': + resolution: {integrity: sha512-BLRwSRwICXz0TXkbIbqJ1ibK+/dSBpTJqDClF61GWIrxTXZWQE78ROeIhgl5MjVs4B4gSLPCFeD4xML9vbzvCQ==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.53.3': - resolution: {integrity: sha512-kASyvfBEWYPEwe0Qv4nfu6pNkITLTb32p4yTgzFCocHnJLAHs+9LjUu9ONIhvfT/5lv4YS5muBHyuV84epBo/A==} + '@rollup/rollup-linux-arm64-musl@4.53.4': + resolution: {integrity: sha512-6bySEjOTbmVcPJAywjpGLckK793A0TJWSbIa0sVwtVGfe/Nz6gOWHOwkshUIAp9j7wg2WKcA4Snu7Y1nUZyQew==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loong64-gnu@4.53.3': - resolution: {integrity: sha512-JiuKcp2teLJwQ7vkJ95EwESWkNRFJD7TQgYmCnrPtlu50b4XvT5MOmurWNrCj3IFdyjBQ5p9vnrX4JM6I8OE7g==} + '@rollup/rollup-linux-loong64-gnu@4.53.4': + resolution: {integrity: sha512-U0ow3bXYJZ5MIbchVusxEycBw7bO6C2u5UvD31i5IMTrnt2p4Fh4ZbHSdc/31TScIJQYHwxbj05BpevB3201ug==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-ppc64-gnu@4.53.3': - resolution: {integrity: sha512-EoGSa8nd6d3T7zLuqdojxC20oBfNT8nexBbB/rkxgKj5T5vhpAQKKnD+h3UkoMuTyXkP5jTjK/ccNRmQrPNDuw==} + '@rollup/rollup-linux-ppc64-gnu@4.53.4': + resolution: {integrity: sha512-iujDk07ZNwGLVn0YIWM80SFN039bHZHCdCCuX9nyx3Jsa2d9V/0Y32F+YadzwbvDxhSeVo9zefkoPnXEImnM5w==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.53.3': - resolution: {integrity: sha512-4s+Wped2IHXHPnAEbIB0YWBv7SDohqxobiiPA1FIWZpX+w9o2i4LezzH/NkFUl8LRci/8udci6cLq+jJQlh+0g==} + '@rollup/rollup-linux-riscv64-gnu@4.53.4': + resolution: {integrity: sha512-MUtAktiOUSu+AXBpx1fkuG/Bi5rhlorGs3lw5QeJ2X3ziEGAq7vFNdWVde6XGaVqi0LGSvugwjoxSNJfHFTC0g==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-musl@4.53.3': - resolution: {integrity: sha512-68k2g7+0vs2u9CxDt5ktXTngsxOQkSEV/xBbwlqYcUrAVh6P9EgMZvFsnHy4SEiUl46Xf0IObWVbMvPrr2gw8A==} + '@rollup/rollup-linux-riscv64-musl@4.53.4': + resolution: {integrity: sha512-btm35eAbDfPtcFEgaXCI5l3c2WXyzwiE8pArhd66SDtoLWmgK5/M7CUxmUglkwtniPzwvWioBKKl6IXLbPf2sQ==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.53.3': - resolution: {integrity: sha512-VYsFMpULAz87ZW6BVYw3I6sWesGpsP9OPcyKe8ofdg9LHxSbRMd7zrVrr5xi/3kMZtpWL/wC+UIJWJYVX5uTKg==} + '@rollup/rollup-linux-s390x-gnu@4.53.4': + resolution: {integrity: sha512-uJlhKE9ccUTCUlK+HUz/80cVtx2RayadC5ldDrrDUFaJK0SNb8/cCmC9RhBhIWuZ71Nqj4Uoa9+xljKWRogdhA==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.53.3': - resolution: {integrity: sha512-3EhFi1FU6YL8HTUJZ51imGJWEX//ajQPfqWLI3BQq4TlvHy4X0MOr5q3D2Zof/ka0d5FNdPwZXm3Yyib/UEd+w==} + '@rollup/rollup-linux-x64-gnu@4.53.4': + resolution: {integrity: sha512-jjEMkzvASQBbzzlzf4os7nzSBd/cvPrpqXCUOqoeCh1dQ4BP3RZCJk8XBeik4MUln3m+8LeTJcY54C/u8wb3DQ==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.53.3': - resolution: {integrity: sha512-eoROhjcc6HbZCJr+tvVT8X4fW3/5g/WkGvvmwz/88sDtSJzO7r/blvoBDgISDiCjDRZmHpwud7h+6Q9JxFwq1Q==} + '@rollup/rollup-linux-x64-musl@4.53.4': + resolution: {integrity: sha512-lu90KG06NNH19shC5rBPkrh6mrTpq5kviFylPBXQVpdEu0yzb0mDgyxLr6XdcGdBIQTH/UAhDJnL+APZTBu1aQ==} cpu: [x64] os: [linux] - '@rollup/rollup-openharmony-arm64@4.53.3': - resolution: {integrity: sha512-OueLAWgrNSPGAdUdIjSWXw+u/02BRTcnfw9PN41D2vq/JSEPnJnVuBgw18VkN8wcd4fjUs+jFHVM4t9+kBSNLw==} + '@rollup/rollup-openharmony-arm64@4.53.4': + resolution: {integrity: sha512-dFDcmLwsUzhAm/dn0+dMOQZoONVYBtgik0VuY/d5IJUUb787L3Ko/ibvTvddqhb3RaB7vFEozYevHN4ox22R/w==} cpu: [arm64] os: [openharmony] - '@rollup/rollup-win32-arm64-msvc@4.53.3': - resolution: {integrity: sha512-GOFuKpsxR/whszbF/bzydebLiXIHSgsEUp6M0JI8dWvi+fFa1TD6YQa4aSZHtpmh2/uAlj/Dy+nmby3TJ3pkTw==} + '@rollup/rollup-win32-arm64-msvc@4.53.4': + resolution: {integrity: sha512-WvUpUAWmUxZKtRnQWpRKnLW2DEO8HB/l8z6oFFMNuHndMzFTJEXzaYJ5ZAmzNw0L21QQJZsUQFt2oPf3ykAD/w==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.53.3': - resolution: {integrity: sha512-iah+THLcBJdpfZ1TstDFbKNznlzoxa8fmnFYK4V67HvmuNYkVdAywJSoteUszvBQ9/HqN2+9AZghbajMsFT+oA==} + '@rollup/rollup-win32-ia32-msvc@4.53.4': + resolution: {integrity: sha512-JGbeF2/FDU0x2OLySw/jgvkwWUo05BSiJK0dtuI4LyuXbz3wKiC1xHhLB1Tqm5VU6ZZDmAorj45r/IgWNWku5g==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-gnu@4.53.3': - resolution: {integrity: sha512-J9QDiOIZlZLdcot5NXEepDkstocktoVjkaKUtqzgzpt2yWjGlbYiKyp05rWwk4nypbYUNoFAztEgixoLaSETkg==} + '@rollup/rollup-win32-x64-gnu@4.53.4': + resolution: {integrity: sha512-zuuC7AyxLWLubP+mlUwEyR8M1ixW1ERNPHJfXm8x7eQNP4Pzkd7hS3qBuKBR70VRiQ04Kw8FNfRMF5TNxuZq2g==} cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.53.3': - resolution: {integrity: sha512-UhTd8u31dXadv0MopwGgNOBpUVROFKWVQgAg5N1ESyCz8AuBcMqm4AuTjrwgQKGDfoFuz02EuMRHQIw/frmYKQ==} + '@rollup/rollup-win32-x64-msvc@4.53.4': + resolution: {integrity: sha512-Sbx45u/Lbb5RyptSbX7/3deP+/lzEmZ0BTSHxwxN/IMOZDZf8S0AGo0hJD5n/LQssxb5Z3B4og4P2X6Dd8acCA==} cpu: [x64] os: [win32] @@ -2151,8 +2151,8 @@ packages: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rollup@4.53.3: - resolution: {integrity: sha512-w8GmOxZfBmKknvdXU1sdM9NHcoQejwF/4mNgj2JuEEdRaHwwF12K7e9eXn1nLZ07ad+du76mkVsyeb2rKGllsA==} + rollup@4.53.4: + resolution: {integrity: sha512-YpXaaArg0MvrnJpvduEDYIp7uGOqKXbH9NsHGQ6SxKCOsNAjZF018MmxefFUulVP2KLtiGw1UvZbr+/ekjvlDg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -3290,95 +3290,95 @@ snapshots: dependencies: quansync: 0.2.10 - '@rollup/plugin-terser@0.4.4(rollup@4.53.3)': + '@rollup/plugin-terser@0.4.4(rollup@4.53.4)': dependencies: serialize-javascript: 6.0.2 smob: 1.5.0 terser: 5.43.1 optionalDependencies: - rollup: 4.53.3 + rollup: 4.53.4 - '@rollup/plugin-typescript@12.3.0(rollup@4.53.3)(tslib@2.8.1)(typescript@5.8.3)': + '@rollup/plugin-typescript@12.3.0(rollup@4.53.4)(tslib@2.8.1)(typescript@5.8.3)': dependencies: - '@rollup/pluginutils': 5.2.0(rollup@4.53.3) + '@rollup/pluginutils': 5.2.0(rollup@4.53.4) resolve: 1.22.10 typescript: 5.8.3 optionalDependencies: - rollup: 4.53.3 + rollup: 4.53.4 tslib: 2.8.1 - '@rollup/pluginutils@5.2.0(rollup@4.53.3)': + '@rollup/pluginutils@5.2.0(rollup@4.53.4)': dependencies: '@types/estree': 1.0.8 estree-walker: 2.0.2 picomatch: 4.0.3 optionalDependencies: - rollup: 4.53.3 + rollup: 4.53.4 - '@rollup/rollup-android-arm-eabi@4.53.3': + '@rollup/rollup-android-arm-eabi@4.53.4': optional: true - '@rollup/rollup-android-arm64@4.53.3': + '@rollup/rollup-android-arm64@4.53.4': optional: true - '@rollup/rollup-darwin-arm64@4.53.3': + '@rollup/rollup-darwin-arm64@4.53.4': optional: true - '@rollup/rollup-darwin-x64@4.53.3': + '@rollup/rollup-darwin-x64@4.53.4': optional: true - '@rollup/rollup-freebsd-arm64@4.53.3': + '@rollup/rollup-freebsd-arm64@4.53.4': optional: true - '@rollup/rollup-freebsd-x64@4.53.3': + '@rollup/rollup-freebsd-x64@4.53.4': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.53.3': + '@rollup/rollup-linux-arm-gnueabihf@4.53.4': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.53.3': + '@rollup/rollup-linux-arm-musleabihf@4.53.4': optional: true - '@rollup/rollup-linux-arm64-gnu@4.53.3': + '@rollup/rollup-linux-arm64-gnu@4.53.4': optional: true - '@rollup/rollup-linux-arm64-musl@4.53.3': + '@rollup/rollup-linux-arm64-musl@4.53.4': optional: true - '@rollup/rollup-linux-loong64-gnu@4.53.3': + '@rollup/rollup-linux-loong64-gnu@4.53.4': optional: true - '@rollup/rollup-linux-ppc64-gnu@4.53.3': + '@rollup/rollup-linux-ppc64-gnu@4.53.4': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.53.3': + '@rollup/rollup-linux-riscv64-gnu@4.53.4': optional: true - '@rollup/rollup-linux-riscv64-musl@4.53.3': + '@rollup/rollup-linux-riscv64-musl@4.53.4': optional: true - '@rollup/rollup-linux-s390x-gnu@4.53.3': + '@rollup/rollup-linux-s390x-gnu@4.53.4': optional: true - '@rollup/rollup-linux-x64-gnu@4.53.3': + '@rollup/rollup-linux-x64-gnu@4.53.4': optional: true - '@rollup/rollup-linux-x64-musl@4.53.3': + '@rollup/rollup-linux-x64-musl@4.53.4': optional: true - '@rollup/rollup-openharmony-arm64@4.53.3': + '@rollup/rollup-openharmony-arm64@4.53.4': optional: true - '@rollup/rollup-win32-arm64-msvc@4.53.3': + '@rollup/rollup-win32-arm64-msvc@4.53.4': optional: true - '@rollup/rollup-win32-ia32-msvc@4.53.3': + '@rollup/rollup-win32-ia32-msvc@4.53.4': optional: true - '@rollup/rollup-win32-x64-gnu@4.53.3': + '@rollup/rollup-win32-x64-gnu@4.53.4': optional: true - '@rollup/rollup-win32-x64-msvc@4.53.3': + '@rollup/rollup-win32-x64-msvc@4.53.4': optional: true '@standard-schema/spec@1.0.0': {} @@ -4385,32 +4385,32 @@ snapshots: reusify@1.1.0: {} - rollup@4.53.3: + rollup@4.53.4: dependencies: '@types/estree': 1.0.8 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.53.3 - '@rollup/rollup-android-arm64': 4.53.3 - '@rollup/rollup-darwin-arm64': 4.53.3 - '@rollup/rollup-darwin-x64': 4.53.3 - '@rollup/rollup-freebsd-arm64': 4.53.3 - '@rollup/rollup-freebsd-x64': 4.53.3 - '@rollup/rollup-linux-arm-gnueabihf': 4.53.3 - '@rollup/rollup-linux-arm-musleabihf': 4.53.3 - '@rollup/rollup-linux-arm64-gnu': 4.53.3 - '@rollup/rollup-linux-arm64-musl': 4.53.3 - '@rollup/rollup-linux-loong64-gnu': 4.53.3 - '@rollup/rollup-linux-ppc64-gnu': 4.53.3 - '@rollup/rollup-linux-riscv64-gnu': 4.53.3 - '@rollup/rollup-linux-riscv64-musl': 4.53.3 - '@rollup/rollup-linux-s390x-gnu': 4.53.3 - '@rollup/rollup-linux-x64-gnu': 4.53.3 - '@rollup/rollup-linux-x64-musl': 4.53.3 - '@rollup/rollup-openharmony-arm64': 4.53.3 - '@rollup/rollup-win32-arm64-msvc': 4.53.3 - '@rollup/rollup-win32-ia32-msvc': 4.53.3 - '@rollup/rollup-win32-x64-gnu': 4.53.3 - '@rollup/rollup-win32-x64-msvc': 4.53.3 + '@rollup/rollup-android-arm-eabi': 4.53.4 + '@rollup/rollup-android-arm64': 4.53.4 + '@rollup/rollup-darwin-arm64': 4.53.4 + '@rollup/rollup-darwin-x64': 4.53.4 + '@rollup/rollup-freebsd-arm64': 4.53.4 + '@rollup/rollup-freebsd-x64': 4.53.4 + '@rollup/rollup-linux-arm-gnueabihf': 4.53.4 + '@rollup/rollup-linux-arm-musleabihf': 4.53.4 + '@rollup/rollup-linux-arm64-gnu': 4.53.4 + '@rollup/rollup-linux-arm64-musl': 4.53.4 + '@rollup/rollup-linux-loong64-gnu': 4.53.4 + '@rollup/rollup-linux-ppc64-gnu': 4.53.4 + '@rollup/rollup-linux-riscv64-gnu': 4.53.4 + '@rollup/rollup-linux-riscv64-musl': 4.53.4 + '@rollup/rollup-linux-s390x-gnu': 4.53.4 + '@rollup/rollup-linux-x64-gnu': 4.53.4 + '@rollup/rollup-linux-x64-musl': 4.53.4 + '@rollup/rollup-openharmony-arm64': 4.53.4 + '@rollup/rollup-win32-arm64-msvc': 4.53.4 + '@rollup/rollup-win32-ia32-msvc': 4.53.4 + '@rollup/rollup-win32-x64-gnu': 4.53.4 + '@rollup/rollup-win32-x64-msvc': 4.53.4 fsevents: 2.3.3 run-parallel@1.2.0: @@ -4652,7 +4652,7 @@ snapshots: fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 postcss: 8.5.6 - rollup: 4.53.3 + rollup: 4.53.4 tinyglobby: 0.2.15 optionalDependencies: '@types/node': 24.10.0 diff --git a/renovate.json b/renovate.json index 016c0c807..3f55df977 100644 --- a/renovate.json +++ b/renovate.json @@ -29,6 +29,11 @@ "https://github.com/microsoft/windows-rs", "https://github.com/wravery/webview2-rs" ] + }, + { + "description": "Group worker-rs crates", + "groupName": "worker-rs crates", + "matchSourceUrls": ["https://github.com/cloudflare/workers-rs"] } ], "postUpdateOptions": ["pnpmDedupe"]