Compare commits

..

11 Commits

Author SHA1 Message Date
github-actions[bot] 80804adc68 publish new versions (#2380)
Co-authored-by: Legend-Master <Legend-Master@users.noreply.github.com>
2025-02-04 07:27:53 -03:00
renovate[bot] 93edbd1434 chore(deps): update dependency typescript-eslint to v8.23.0 (#2390)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-04 08:45:25 +08:00
dependabot[bot] 3ebec74983 chore(deps): bump openssl from 0.10.66 to 0.10.70 in /plugins/updater/tests/updater-migration/v1-app (#2392)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-03 21:31:13 +01:00
renovate[bot] 51f5aff58a chore(deps): update dependency rollup to v4.34.1 (#2388)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-03 21:35:03 +08:00
jLynx 5369898db7 fix(macOS): Tauri V2 Update Permission Denied Error (#2067)
* WIP

* Fixed linting

* WIP

* Fixed linting

* use osakit to show actual app name on dialog

* sync versions

* lint

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-02-02 17:54:09 -03:00
renovate[bot] a7497b0aeb chore(deps): update rust crate gethostname to v1 (v2) (#2382)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-01 11:47:53 +01:00
renovate[bot] aaa88fa45f chore(deps): update dependency rollup to v4.34.0 (v2) (#2381)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-01 11:47:09 +01:00
Fabian-Lars ca7395a5ce fix(upload): Enable reqwest's rustls-tls feature by default (#2378) 2025-02-01 11:17:22 +01:00
renovate[bot] 6ae853c2e6 chore(deps): update dependency rollup to v4.32.1 (v2) (#2373)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-28 13:42:36 +01:00
renovate[bot] d5fb5337a0 chore(deps): update rust crate dirs to v6 (v2) (#2311)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: FabianLars <github@fabianlars.de>
2025-01-27 22:16:22 +01:00
renovate[bot] 512a188c7a chore(deps): update dependency typescript-eslint to v8.22.0 (v2) (#2363)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-27 20:09:10 +01:00
17 changed files with 404 additions and 242 deletions
Generated
+114 -26
View File
@@ -206,7 +206,7 @@ checksum = "4c95c10ba0b00a02636238b814946408b1322d5ac4760326e6fb8ec956d85775"
[[package]]
name = "api"
version = "2.0.16"
version = "2.0.17"
dependencies = [
"log",
"serde",
@@ -685,6 +685,25 @@ dependencies = [
"generic-array",
]
[[package]]
name = "block-sys"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ae85a0696e7ea3b835a453750bf002770776609115e6d25c6d2ff28a8200f7e7"
dependencies = [
"objc-sys",
]
[[package]]
name = "block2"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e58aa60e59d8dbfcc36138f5f18be5f24394d33b38b24f7fd0b1caa33095f22f"
dependencies = [
"block-sys",
"objc2",
]
[[package]]
name = "block2"
version = "0.5.1"
@@ -1554,6 +1573,15 @@ dependencies = [
"dirs-sys 0.4.1",
]
[[package]]
name = "dirs"
version = "6.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e"
dependencies = [
"dirs-sys 0.5.0",
]
[[package]]
name = "dirs-next"
version = "2.0.0"
@@ -1571,7 +1599,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6"
dependencies = [
"libc",
"redox_users",
"redox_users 0.4.6",
"winapi",
]
@@ -1583,10 +1611,22 @@ checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c"
dependencies = [
"libc",
"option-ext",
"redox_users",
"redox_users 0.4.6",
"windows-sys 0.48.0",
]
[[package]]
name = "dirs-sys"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab"
dependencies = [
"libc",
"option-ext",
"redox_users 0.5.0",
"windows-sys 0.59.0",
]
[[package]]
name = "dirs-sys-next"
version = "0.1.2"
@@ -1594,7 +1634,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d"
dependencies = [
"libc",
"redox_users",
"redox_users 0.4.6",
"winapi",
]
@@ -2328,9 +2368,9 @@ dependencies = [
[[package]]
name = "gethostname"
version = "0.5.0"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dc3655aa6818d65bc620d6911f05aa7b6aeb596291e1e9f79e52df85583d1e30"
checksum = "4fd4b8790c0792e3b11895efdf5f289ebe8b59107a6624f1cce68f24ff8c7035"
dependencies = [
"rustix",
"windows-targets 0.52.6",
@@ -2830,6 +2870,16 @@ dependencies = [
"png",
]
[[package]]
name = "icrate"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3fb69199826926eb864697bddd27f73d9fddcffc004f5733131e15b465e30642"
dependencies = [
"block2 0.4.0",
"objc2",
]
[[package]]
name = "icu_collections"
version = "1.5.0"
@@ -3920,7 +3970,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff"
dependencies = [
"bitflags 2.7.0",
"block2",
"block2 0.5.1",
"libc",
"objc2",
"objc2-core-data",
@@ -3936,7 +3986,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009"
dependencies = [
"bitflags 2.7.0",
"block2",
"block2 0.5.1",
"objc2",
"objc2-core-location",
"objc2-foundation",
@@ -3948,7 +3998,7 @@ version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a5ff520e9c33812fd374d8deecef01d4a840e7b41862d849513de77e44aa4889"
dependencies = [
"block2",
"block2 0.5.1",
"objc2",
"objc2-foundation",
]
@@ -3960,7 +4010,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef"
dependencies = [
"bitflags 2.7.0",
"block2",
"block2 0.5.1",
"objc2",
"objc2-foundation",
]
@@ -3971,7 +4021,7 @@ version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80"
dependencies = [
"block2",
"block2 0.5.1",
"objc2",
"objc2-foundation",
"objc2-metal",
@@ -3983,7 +4033,7 @@ version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "000cfee34e683244f284252ee206a27953279d370e309649dc3ee317b37e5781"
dependencies = [
"block2",
"block2 0.5.1",
"objc2",
"objc2-contacts",
"objc2-foundation",
@@ -4002,7 +4052,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8"
dependencies = [
"bitflags 2.7.0",
"block2",
"block2 0.5.1",
"dispatch",
"libc",
"objc2",
@@ -4014,7 +4064,7 @@ version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1a1ae721c5e35be65f01a03b6d2ac13a54cb4fa70d8a5da293d7b0020261398"
dependencies = [
"block2",
"block2 0.5.1",
"objc2",
"objc2-app-kit",
"objc2-foundation",
@@ -4027,11 +4077,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6"
dependencies = [
"bitflags 2.7.0",
"block2",
"block2 0.5.1",
"objc2",
"objc2-foundation",
]
[[package]]
name = "objc2-osa-kit"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6788b04a18ea31e3dc3ab256b8546639e5bbae07c1a0dc4ea8615252bc6aee9a"
dependencies = [
"bitflags 2.7.0",
"objc2",
"objc2-app-kit",
"objc2-foundation",
]
[[package]]
name = "objc2-quartz-core"
version = "0.2.2"
@@ -4039,7 +4101,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a"
dependencies = [
"bitflags 2.7.0",
"block2",
"block2 0.5.1",
"objc2",
"objc2-foundation",
"objc2-metal",
@@ -4062,7 +4124,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f"
dependencies = [
"bitflags 2.7.0",
"block2",
"block2 0.5.1",
"objc2",
"objc2-cloud-kit",
"objc2-core-data",
@@ -4082,7 +4144,7 @@ version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "44fa5f9748dbfe1ca6c0b79ad20725a11eca7c2218bceb4b005cb1be26273bfe"
dependencies = [
"block2",
"block2 0.5.1",
"objc2",
"objc2-foundation",
]
@@ -4094,7 +4156,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3"
dependencies = [
"bitflags 2.7.0",
"block2",
"block2 0.5.1",
"objc2",
"objc2-core-location",
"objc2-foundation",
@@ -4107,7 +4169,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "68bc69301064cebefc6c4c90ce9cba69225239e4b8ff99d445a2b5563797da65"
dependencies = [
"bitflags 2.7.0",
"block2",
"block2 0.5.1",
"objc2",
"objc2-app-kit",
"objc2-foundation",
@@ -4255,6 +4317,20 @@ dependencies = [
"windows-sys 0.59.0",
]
[[package]]
name = "osakit"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "35366a452fce3f8947eb2f33226a133aaf0cacedef2af67ade348d58be7f85d0"
dependencies = [
"icrate",
"objc2-foundation",
"objc2-osa-kit",
"serde",
"serde_json",
"thiserror 1.0.69",
]
[[package]]
name = "pango"
version = "0.18.3"
@@ -4936,6 +5012,17 @@ dependencies = [
"thiserror 1.0.69",
]
[[package]]
name = "redox_users"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b"
dependencies = [
"getrandom 0.2.15",
"libredox",
"thiserror 2.0.9",
]
[[package]]
name = "regex"
version = "1.11.1"
@@ -5048,7 +5135,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "46f6f80a9b882647d9014673ca9925d30ffc9750f2eed2b4490e189eaebd01e8"
dependencies = [
"ashpd",
"block2",
"block2 0.5.1",
"glib-sys",
"gobject-sys",
"gtk-sys",
@@ -6718,7 +6805,7 @@ dependencies = [
name = "tauri-plugin-os"
version = "2.2.0"
dependencies = [
"gethostname 0.5.0",
"gethostname 1.0.0",
"log",
"os_info",
"serde",
@@ -6853,15 +6940,16 @@ dependencies = [
[[package]]
name = "tauri-plugin-updater"
version = "2.4.0"
version = "2.5.0"
dependencies = [
"base64 0.22.1",
"dirs 5.0.1",
"dirs 6.0.0",
"flate2",
"futures-util",
"http",
"infer",
"minisign-verify",
"osakit",
"percent-encoding",
"reqwest",
"semver",
@@ -6881,7 +6969,7 @@ dependencies = [
[[package]]
name = "tauri-plugin-upload"
version = "2.2.0"
version = "2.2.1"
dependencies = [
"futures-util",
"log",
@@ -8661,7 +8749,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e644bf458e27b11b0ecafc9e5633d1304fdae82baca1d42185669752fe6ca4f"
dependencies = [
"base64 0.22.1",
"block2",
"block2 0.5.1",
"cookie",
"crossbeam-channel",
"dpi",
+6
View File
@@ -1,5 +1,11 @@
# Changelog
## \[2.0.13]
### Dependencies
- Upgraded to `updater-js@2.5.0`
## \[2.0.12]
### Dependencies
+2 -2
View File
@@ -1,7 +1,7 @@
{
"name": "api",
"private": true,
"version": "2.0.12",
"version": "2.0.13",
"type": "module",
"scripts": {
"dev": "vite --clearScreen false",
@@ -28,7 +28,7 @@
"@tauri-apps/plugin-process": "^2.2.0",
"@tauri-apps/plugin-shell": "^2.2.0",
"@tauri-apps/plugin-store": "^2.2.0",
"@tauri-apps/plugin-updater": "^2.4.0",
"@tauri-apps/plugin-updater": "^2.5.0",
"@zerodevx/svelte-json-view": "1.0.11"
},
"devDependencies": {
+6
View File
@@ -1,5 +1,11 @@
# Changelog
## \[2.0.17]
### Dependencies
- Upgraded to `updater@2.5.0`
## \[2.0.16]
### Dependencies
+2 -2
View File
@@ -1,7 +1,7 @@
[package]
name = "api"
publish = false
version = "2.0.16"
version = "2.0.17"
description = "An example Tauri Application showcasing the api"
edition = "2021"
rust-version = { workspace = true }
@@ -53,7 +53,7 @@ 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.2.0" }
tauri-plugin-global-shortcut = { path = "../../../plugins/global-shortcut", version = "2.2.0" }
tauri-plugin-updater = { path = "../../../plugins/updater", version = "2.4.0" }
tauri-plugin-updater = { path = "../../../plugins/updater", version = "2.5.0" }
tauri-plugin-window-state = { path = "../../../plugins/window-state", version = "2.2.0" }
[target."cfg(any(target_os = \"android\", target_os = \"ios\"))".dependencies]
+2 -2
View File
@@ -21,10 +21,10 @@
"eslint-config-prettier": "10.0.1",
"eslint-plugin-security": "3.0.1",
"prettier": "3.4.2",
"rollup": "4.32.0",
"rollup": "4.34.1",
"tslib": "2.8.1",
"typescript": "5.7.3",
"typescript-eslint": "8.21.0"
"typescript-eslint": "8.23.0"
},
"resolutions": {
"semver": ">=7.5.2",
+1 -1
View File
@@ -31,5 +31,5 @@ log = { workspace = true }
thiserror = { workspace = true }
os_info = "3"
sys-locale = "0.3"
gethostname = "0.5"
gethostname = "1.0"
serialize-to-javascript = "=0.1.1"
+5
View File
@@ -1,5 +1,10 @@
# Changelog
## \[2.5.0]
- [`5369898d`](https://github.com/tauri-apps/plugins-workspace/commit/5369898db7a6098e3e2f43436100ea556d405628) ([#2067](https://github.com/tauri-apps/plugins-workspace/pull/2067) by [@jLynx](https://github.com/tauri-apps/plugins-workspace/../../jLynx)) Fix update installation on macOS when using an user without admin privileges.
- [`5369898d`](https://github.com/tauri-apps/plugins-workspace/commit/5369898db7a6098e3e2f43436100ea556d405628) ([#2067](https://github.com/tauri-apps/plugins-workspace/pull/2067) by [@jLynx](https://github.com/tauri-apps/plugins-workspace/../../jLynx)) Remove the `UpdaterBuilder::new` function, use `UpdaterExt::updater_builder` instead.
## \[2.4.0]
- [`0afc9b6b`](https://github.com/tauri-apps/plugins-workspace/commit/0afc9b6be07bee1077f05a86285d977e57810ed9) ([#2325](https://github.com/tauri-apps/plugins-workspace/pull/2325) by [@FabianLars](https://github.com/tauri-apps/plugins-workspace/../../FabianLars)) The `Update` struct/object will now contain a `raw_json`/`rawJson` property to be able to read parts of server's json response that are not handled by the plugin.
+3 -2
View File
@@ -1,6 +1,6 @@
[package]
name = "tauri-plugin-updater"
version = "2.4.0"
version = "2.5.0"
description = "In-app updates for Tauri applications."
edition = { workspace = true }
authors = { workspace = true }
@@ -55,13 +55,14 @@ windows-sys = { version = "0.59.0", features = [
] }
[target."cfg(target_os = \"linux\")".dependencies]
dirs = "5"
dirs = "6"
tar = { version = "0.4", optional = true }
flate2 = { version = "1", optional = true }
[target."cfg(target_os = \"macos\")".dependencies]
tar = "0.4"
flate2 = "1"
osakit = { version = "0.3", features = ["full"] }
[features]
default = ["rustls-tls", "zip"]
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@tauri-apps/plugin-updater",
"version": "2.4.0",
"version": "2.5.0",
"license": "MIT OR Apache-2.0",
"authors": [
"Tauri Programme within The Commons Conservancy"
+1 -7
View File
@@ -70,7 +70,6 @@ pub trait UpdaterExt<R: Runtime> {
impl<R: Runtime, T: Manager<R>> UpdaterExt<R> for T {
fn updater_builder(&self) -> UpdaterBuilder {
let app = self.app_handle();
let package_info = app.package_info();
let UpdaterState {
config,
target,
@@ -78,12 +77,7 @@ impl<R: Runtime, T: Manager<R>> UpdaterExt<R> for T {
headers,
} = self.state::<UpdaterState>().inner();
let mut builder = UpdaterBuilder::new(
package_info.name.clone(),
package_info.version.clone(),
config.clone(),
)
.headers(headers.clone());
let mut builder = UpdaterBuilder::new(app, config.clone()).headers(headers.clone());
if let Some(target) = target {
builder = builder.target(target);
+85 -29
View File
@@ -23,7 +23,7 @@ use reqwest::{
};
use semver::Version;
use serde::{de::Error as DeError, Deserialize, Deserializer, Serialize};
use tauri::{utils::platform::current_exe, Resource};
use tauri::{utils::platform::current_exe, AppHandle, Resource, Runtime};
use time::OffsetDateTime;
use url::Url;
@@ -94,8 +94,13 @@ impl RemoteRelease {
pub type OnBeforeExit = Arc<dyn Fn() + Send + Sync + 'static>;
pub type VersionComparator = Arc<dyn Fn(Version, RemoteRelease) -> bool + Send + Sync>;
type MainThreadClosure = Box<dyn FnOnce() + Send + Sync + 'static>;
type RunOnMainThread =
Box<dyn Fn(MainThreadClosure) -> std::result::Result<(), tauri::Error> + Send + Sync + 'static>;
pub struct UpdaterBuilder {
#[allow(dead_code)]
run_on_main_thread: RunOnMainThread,
app_name: String,
current_version: Version,
config: Config,
@@ -112,18 +117,20 @@ pub struct UpdaterBuilder {
}
impl UpdaterBuilder {
/// It's prefered to use [`crate::UpdaterExt::updater_builder`] instead of
/// constructing a [`UpdaterBuilder`] with this function yourself
pub fn new(app_name: String, current_version: Version, config: crate::Config) -> Self {
pub(crate) fn new<R: Runtime>(app: &AppHandle<R>, config: crate::Config) -> Self {
let app_ = app.clone();
let run_on_main_thread =
move |f: Box<dyn FnOnce() + Send + Sync + 'static>| 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,
current_version,
app_name: app.package_info().name.clone(),
current_version: app.package_info().version.clone(),
config,
version_comparator: None,
executable_path: None,
@@ -259,6 +266,7 @@ 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,
@@ -291,6 +299,8 @@ impl UpdaterBuilder {
}
pub struct Updater {
#[allow(dead_code)]
run_on_main_thread: Arc<RunOnMainThread>,
config: Config,
app_name: String,
current_version: Version,
@@ -412,6 +422,7 @@ 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(),
@@ -440,6 +451,8 @@ impl Updater {
#[derive(Clone)]
pub struct Update {
#[allow(dead_code)]
run_on_main_thread: Arc<RunOnMainThread>,
config: Config,
#[allow(unused)]
on_before_exit: Option<OnBeforeExit>,
@@ -1031,42 +1044,85 @@ impl Update {
let cursor = Cursor::new(bytes);
let mut extracted_files: Vec<PathBuf> = Vec::new();
// the first file in the tar.gz will always be
// <app_name>/Contents
let tmp_dir = tempfile::Builder::new()
// Create temp directories for backup and extraction
let tmp_backup_dir = tempfile::Builder::new()
.prefix("tauri_current_app")
.tempdir()?;
// create backup of our current app
std::fs::rename(&self.extract_path, tmp_dir.path())?;
let tmp_extract_dir = tempfile::Builder::new()
.prefix("tauri_updated_app")
.tempdir()?;
let decoder = GzDecoder::new(cursor);
let mut archive = tar::Archive::new(decoder);
std::fs::create_dir(&self.extract_path)?;
// Extract files to temporary directory
for entry in archive.entries()? {
let mut entry = entry?;
// skip the first folder (should be the app name)
let collected_path: PathBuf = entry.path()?.iter().skip(1).collect();
let extraction_path = &self.extract_path.join(collected_path);
let extraction_path = tmp_extract_dir.path().join(&collected_path);
// if something went wrong during the extraction, we should restore previous app
if let Err(err) = entry.unpack(extraction_path) {
for file in extracted_files.iter().rev() {
// delete all the files we extracted
if file.is_dir() {
std::fs::remove_dir(file)?;
} else {
std::fs::remove_file(file)?;
}
}
std::fs::rename(tmp_dir.path(), &self.extract_path)?;
return Err(err.into());
// Ensure parent directories exist
if let Some(parent) = extraction_path.parent() {
std::fs::create_dir_all(parent)?;
}
extracted_files.push(extraction_path.to_path_buf());
if let Err(err) = entry.unpack(&extraction_path) {
// Cleanup on error
std::fs::remove_dir_all(tmp_extract_dir.path()).ok();
return Err(err.into());
}
extracted_files.push(extraction_path);
}
// Try to move the current app to backup
let move_result = std::fs::rename(
&self.extract_path,
tmp_backup_dir.path().join("current_app"),
);
let need_authorization = if let Err(err) = move_result {
if err.kind() == std::io::ErrorKind::PermissionDenied {
true
} else {
std::fs::remove_dir_all(tmp_extract_dir.path()).ok();
return Err(err.into());
}
} else {
false
};
if need_authorization {
// Use AppleScript to perform moves with admin privileges
let apple_script = format!(
"do shell script \"rm -rf '{src}' && mv -f '{new}' '{src}'\" with administrator privileges",
src = self.extract_path.display(),
new = tmp_extract_dir.path().display()
);
let (tx, rx) = std::sync::mpsc::channel();
let res = (self.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");
let r = script.execute();
tx.send(r).unwrap();
}));
let result = rx.recv().unwrap();
if res.is_err() || result.is_err() {
std::fs::remove_dir_all(tmp_extract_dir.path()).ok();
return Err(Error::Io(std::io::Error::new(
std::io::ErrorKind::PermissionDenied,
"Failed to move the new app into place",
)));
}
} else {
// Remove existing directory if it exists
if self.extract_path.exists() {
std::fs::remove_dir_all(&self.extract_path)?;
}
// Move the new app to the target path
std::fs::rename(tmp_extract_dir.path(), &self.extract_path)?;
}
let _ = std::process::Command::new("touch")
+4 -4
View File
@@ -1822,9 +1822,9 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
[[package]]
name = "openssl"
version = "0.10.66"
version = "0.10.70"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1"
checksum = "61cfb4e166a8bb8c9b55c500bc2308550148ece889be90f609377e58140f42c6"
dependencies = [
"bitflags 2.6.0",
"cfg-if",
@@ -1854,9 +1854,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
[[package]]
name = "openssl-sys"
version = "0.9.103"
version = "0.9.105"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6"
checksum = "8b22d5b84be05a8d6947c7cb71f7c849aa0f112acd4bf51c2a7c1c988ac0a9dc"
dependencies = [
"cc",
"libc",
+4
View File
@@ -2,6 +2,10 @@
## \[2.2.1]
- [`ca7395a5`](https://github.com/tauri-apps/plugins-workspace/commit/ca7395a5ce971cbac25fb54285056edf3dd84e1f) ([#2378](https://github.com/tauri-apps/plugins-workspace/pull/2378) by [@FabianLars](https://github.com/tauri-apps/plugins-workspace/../../FabianLars)) the `rustls-tls` feature is now enabled by default
## \[2.2.1]
- [`05c62d73`](https://github.com/tauri-apps/plugins-workspace/commit/05c62d731fa48fd06b8cb3694a962d8cb0db8619) ([#1523](https://github.com/tauri-apps/plugins-workspace/pull/1523) by [@enri90](https://github.com/tauri-apps/plugins-workspace/../../enri90)) Added post request on download function
## \[2.2.0]
+3 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "tauri-plugin-upload"
version = "2.2.0"
version = "2.2.1"
description = "Upload files from disk to a remote server over HTTP."
authors = { workspace = true }
license = { workspace = true }
@@ -32,6 +32,7 @@ thiserror = { workspace = true }
tokio = { version = "1", features = ["fs"] }
tokio-util = { version = "0.7", features = ["codec"] }
reqwest = { version = "0.12", default-features = false, features = [
"macos-system-configuration",
"json",
"stream",
] }
@@ -39,6 +40,7 @@ futures-util = "0.3"
read-progress-stream = "1.0.0"
[features]
default = ["rustls-tls"]
native-tls = ["reqwest/native-tls"]
native-tls-vendored = ["reqwest/native-tls-vendored"]
rustls-tls = ["reqwest/rustls-tls"]
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@tauri-apps/plugin-upload",
"version": "2.2.0",
"version": "2.2.1",
"description": "Upload files from disk to a remote server over HTTP.",
"license": "MIT OR Apache-2.0",
"authors": [
+164 -164
View File
@@ -17,13 +17,13 @@ importers:
version: 9.19.0
'@rollup/plugin-node-resolve':
specifier: 16.0.0
version: 16.0.0(rollup@4.32.0)
version: 16.0.0(rollup@4.34.1)
'@rollup/plugin-terser':
specifier: 0.4.4
version: 0.4.4(rollup@4.32.0)
version: 0.4.4(rollup@4.34.1)
'@rollup/plugin-typescript':
specifier: 11.1.6
version: 11.1.6(rollup@4.32.0)(tslib@2.8.1)(typescript@5.7.3)
version: 11.1.6(rollup@4.34.1)(tslib@2.8.1)(typescript@5.7.3)
'@types/eslint__js':
specifier: 8.42.3
version: 8.42.3
@@ -43,8 +43,8 @@ importers:
specifier: 3.4.2
version: 3.4.2
rollup:
specifier: 4.32.0
version: 4.32.0
specifier: 4.34.1
version: 4.34.1
tslib:
specifier: 2.8.1
version: 2.8.1
@@ -52,8 +52,8 @@ importers:
specifier: 5.7.3
version: 5.7.3
typescript-eslint:
specifier: 8.21.0
version: 8.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)
specifier: 8.23.0
version: 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)
examples/api:
dependencies:
@@ -112,7 +112,7 @@ importers:
specifier: ^2.2.0
version: link:../../plugins/store
'@tauri-apps/plugin-updater':
specifier: ^2.4.0
specifier: ^2.5.0
version: link:../../plugins/updater
'@zerodevx/svelte-json-view':
specifier: 1.0.11
@@ -138,7 +138,7 @@ importers:
version: 5.10.0
unocss:
specifier: ^65.0.0
version: 65.4.0(postcss@8.5.1)(rollup@4.32.0)(vite@6.0.9(jiti@2.4.2)(terser@5.36.0)(tsx@4.19.2))(vue@3.5.13(typescript@5.7.3))
version: 65.4.0(postcss@8.5.1)(rollup@4.34.1)(vite@6.0.9(jiti@2.4.2)(terser@5.36.0)(tsx@4.19.2))(vue@3.5.13(typescript@5.7.3))
vite:
specifier: ^6.0.3
version: 6.0.9(jiti@2.4.2)(terser@5.36.0)(tsx@4.19.2)
@@ -883,98 +883,98 @@ packages:
rollup:
optional: true
'@rollup/rollup-android-arm-eabi@4.32.0':
resolution: {integrity: sha512-G2fUQQANtBPsNwiVFg4zKiPQyjVKZCUdQUol53R8E71J7AsheRMV/Yv/nB8giOcOVqP7//eB5xPqieBYZe9bGg==}
'@rollup/rollup-android-arm-eabi@4.34.1':
resolution: {integrity: sha512-kwctwVlswSEsr4ljpmxKrRKp1eG1v2NAhlzFzDf1x1OdYaMjBYjDCbHkzWm57ZXzTwqn8stMXgROrnMw8dJK3w==}
cpu: [arm]
os: [android]
'@rollup/rollup-android-arm64@4.32.0':
resolution: {integrity: sha512-qhFwQ+ljoymC+j5lXRv8DlaJYY/+8vyvYmVx074zrLsu5ZGWYsJNLjPPVJJjhZQpyAKUGPydOq9hRLLNvh1s3A==}
'@rollup/rollup-android-arm64@4.34.1':
resolution: {integrity: sha512-4H5ZtZitBPlbPsTv6HBB8zh1g5d0T8TzCmpndQdqq20Ugle/nroOyDMf9p7f88Gsu8vBLU78/cuh8FYHZqdXxw==}
cpu: [arm64]
os: [android]
'@rollup/rollup-darwin-arm64@4.32.0':
resolution: {integrity: sha512-44n/X3lAlWsEY6vF8CzgCx+LQaoqWGN7TzUfbJDiTIOjJm4+L2Yq+r5a8ytQRGyPqgJDs3Rgyo8eVL7n9iW6AQ==}
'@rollup/rollup-darwin-arm64@4.34.1':
resolution: {integrity: sha512-f2AJ7Qwx9z25hikXvg+asco8Sfuc5NCLg8rmqQBIOUoWys5sb/ZX9RkMZDPdnnDevXAMJA5AWLnRBmgdXGEUiA==}
cpu: [arm64]
os: [darwin]
'@rollup/rollup-darwin-x64@4.32.0':
resolution: {integrity: sha512-F9ct0+ZX5Np6+ZDztxiGCIvlCaW87HBdHcozUfsHnj1WCUTBUubAoanhHUfnUHZABlElyRikI0mgcw/qdEm2VQ==}
'@rollup/rollup-darwin-x64@4.34.1':
resolution: {integrity: sha512-+/2JBrRfISCsWE4aEFXxd+7k9nWGXA8+wh7ZUHn/u8UDXOU9LN+QYKKhd57sIn6WRcorOnlqPMYFIwie/OHXWw==}
cpu: [x64]
os: [darwin]
'@rollup/rollup-freebsd-arm64@4.32.0':
resolution: {integrity: sha512-JpsGxLBB2EFXBsTLHfkZDsXSpSmKD3VxXCgBQtlPcuAqB8TlqtLcbeMhxXQkCDv1avgwNjF8uEIbq5p+Cee0PA==}
'@rollup/rollup-freebsd-arm64@4.34.1':
resolution: {integrity: sha512-SUeB0pYjIXwT2vfAMQ7E4ERPq9VGRrPR7Z+S4AMssah5EHIilYqjWQoTn5dkDtuIJUSTs8H+C9dwoEcg3b0sCA==}
cpu: [arm64]
os: [freebsd]
'@rollup/rollup-freebsd-x64@4.32.0':
resolution: {integrity: sha512-wegiyBT6rawdpvnD9lmbOpx5Sph+yVZKHbhnSP9MqUEDX08G4UzMU+D87jrazGE7lRSyTRs6NEYHtzfkJ3FjjQ==}
'@rollup/rollup-freebsd-x64@4.34.1':
resolution: {integrity: sha512-L3T66wAZiB/ooiPbxz0s6JEX6Sr2+HfgPSK+LMuZkaGZFAFCQAHiP3dbyqovYdNaiUXcl9TlgnIbcsIicAnOZg==}
cpu: [x64]
os: [freebsd]
'@rollup/rollup-linux-arm-gnueabihf@4.32.0':
resolution: {integrity: sha512-3pA7xecItbgOs1A5H58dDvOUEboG5UfpTq3WzAdF54acBbUM+olDJAPkgj1GRJ4ZqE12DZ9/hNS2QZk166v92A==}
'@rollup/rollup-linux-arm-gnueabihf@4.34.1':
resolution: {integrity: sha512-UBXdQ4+ATARuFgsFrQ+tAsKvBi/Hly99aSVdeCUiHV9dRTTpMU7OrM3WXGys1l40wKVNiOl0QYY6cZQJ2xhKlQ==}
cpu: [arm]
os: [linux]
'@rollup/rollup-linux-arm-musleabihf@4.32.0':
resolution: {integrity: sha512-Y7XUZEVISGyge51QbYyYAEHwpGgmRrAxQXO3siyYo2kmaj72USSG8LtlQQgAtlGfxYiOwu+2BdbPjzEpcOpRmQ==}
'@rollup/rollup-linux-arm-musleabihf@4.34.1':
resolution: {integrity: sha512-m/yfZ25HGdcCSwmopEJm00GP7xAUyVcBPjttGLRAqZ60X/bB4Qn6gP7XTwCIU6bITeKmIhhwZ4AMh2XLro+4+w==}
cpu: [arm]
os: [linux]
'@rollup/rollup-linux-arm64-gnu@4.32.0':
resolution: {integrity: sha512-r7/OTF5MqeBrZo5omPXcTnjvv1GsrdH8a8RerARvDFiDwFpDVDnJyByYM/nX+mvks8XXsgPUxkwe/ltaX2VH7w==}
'@rollup/rollup-linux-arm64-gnu@4.34.1':
resolution: {integrity: sha512-Wy+cUmFuvziNL9qWRRzboNprqSQ/n38orbjRvd6byYWridp5TJ3CD+0+HUsbcWVSNz9bxkDUkyASGP0zS7GAvg==}
cpu: [arm64]
os: [linux]
'@rollup/rollup-linux-arm64-musl@4.32.0':
resolution: {integrity: sha512-HJbifC9vex9NqnlodV2BHVFNuzKL5OnsV2dvTw6e1dpZKkNjPG6WUq+nhEYV6Hv2Bv++BXkwcyoGlXnPrjAKXw==}
'@rollup/rollup-linux-arm64-musl@4.34.1':
resolution: {integrity: sha512-CQ3MAGgiFmQW5XJX5W3wnxOBxKwFlUAgSXFA2SwgVRjrIiVt5LHfcQLeNSHKq5OEZwv+VCBwlD1+YKCjDG8cpg==}
cpu: [arm64]
os: [linux]
'@rollup/rollup-linux-loongarch64-gnu@4.32.0':
resolution: {integrity: sha512-VAEzZTD63YglFlWwRj3taofmkV1V3xhebDXffon7msNz4b14xKsz7utO6F8F4cqt8K/ktTl9rm88yryvDpsfOw==}
'@rollup/rollup-linux-loongarch64-gnu@4.34.1':
resolution: {integrity: sha512-rSzb1TsY4lSwH811cYC3OC2O2mzNMhM13vcnA7/0T6Mtreqr3/qs6WMDriMRs8yvHDI54qxHgOk8EV5YRAHFbw==}
cpu: [loong64]
os: [linux]
'@rollup/rollup-linux-powerpc64le-gnu@4.32.0':
resolution: {integrity: sha512-Sts5DST1jXAc9YH/iik1C9QRsLcCoOScf3dfbY5i4kH9RJpKxiTBXqm7qU5O6zTXBTEZry69bGszr3SMgYmMcQ==}
'@rollup/rollup-linux-powerpc64le-gnu@4.34.1':
resolution: {integrity: sha512-fwr0n6NS0pG3QxxlqVYpfiY64Fd1Dqd8Cecje4ILAV01ROMp4aEdCj5ssHjRY3UwU7RJmeWd5fi89DBqMaTawg==}
cpu: [ppc64]
os: [linux]
'@rollup/rollup-linux-riscv64-gnu@4.32.0':
resolution: {integrity: sha512-qhlXeV9AqxIyY9/R1h1hBD6eMvQCO34ZmdYvry/K+/MBs6d1nRFLm6BOiITLVI+nFAAB9kUB6sdJRKyVHXnqZw==}
'@rollup/rollup-linux-riscv64-gnu@4.34.1':
resolution: {integrity: sha512-4uJb9qz7+Z/yUp5RPxDGGGUcoh0PnKF33QyWgEZ3X/GocpWb6Mb+skDh59FEt5d8+Skxqs9mng6Swa6B2AmQZg==}
cpu: [riscv64]
os: [linux]
'@rollup/rollup-linux-s390x-gnu@4.32.0':
resolution: {integrity: sha512-8ZGN7ExnV0qjXa155Rsfi6H8M4iBBwNLBM9lcVS+4NcSzOFaNqmt7djlox8pN1lWrRPMRRQ8NeDlozIGx3Omsw==}
'@rollup/rollup-linux-s390x-gnu@4.34.1':
resolution: {integrity: sha512-QlIo8ndocWBEnfmkYqj8vVtIUpIqJjfqKggjy7IdUncnt8BGixte1wDON7NJEvLg3Kzvqxtbo8tk+U1acYEBlw==}
cpu: [s390x]
os: [linux]
'@rollup/rollup-linux-x64-gnu@4.32.0':
resolution: {integrity: sha512-VDzNHtLLI5s7xd/VubyS10mq6TxvZBp+4NRWoW+Hi3tgV05RtVm4qK99+dClwTN1McA6PHwob6DEJ6PlXbY83A==}
'@rollup/rollup-linux-x64-gnu@4.34.1':
resolution: {integrity: sha512-hzpleiKtq14GWjz3ahWvJXgU1DQC9DteiwcsY4HgqUJUGxZThlL66MotdUEK9zEo0PK/2ADeZGM9LIondE302A==}
cpu: [x64]
os: [linux]
'@rollup/rollup-linux-x64-musl@4.32.0':
resolution: {integrity: sha512-qcb9qYDlkxz9DxJo7SDhWxTWV1gFuwznjbTiov289pASxlfGbaOD54mgbs9+z94VwrXtKTu+2RqwlSTbiOqxGg==}
'@rollup/rollup-linux-x64-musl@4.34.1':
resolution: {integrity: sha512-jqtKrO715hDlvUcEsPn55tZt2TEiBvBtCMkUuU0R6fO/WPT7lO9AONjPbd8II7/asSiNVQHCMn4OLGigSuxVQA==}
cpu: [x64]
os: [linux]
'@rollup/rollup-win32-arm64-msvc@4.32.0':
resolution: {integrity: sha512-pFDdotFDMXW2AXVbfdUEfidPAk/OtwE/Hd4eYMTNVVaCQ6Yl8et0meDaKNL63L44Haxv4UExpv9ydSf3aSayDg==}
'@rollup/rollup-win32-arm64-msvc@4.34.1':
resolution: {integrity: sha512-RnHy7yFf2Wz8Jj1+h8klB93N0NHNHXFhNwAmiy9zJdpY7DE01VbEVtPdrK1kkILeIbHGRJjvfBDBhnxBr8kD4g==}
cpu: [arm64]
os: [win32]
'@rollup/rollup-win32-ia32-msvc@4.32.0':
resolution: {integrity: sha512-/TG7WfrCAjeRNDvI4+0AAMoHxea/USWhAzf9PVDFHbcqrQ7hMMKp4jZIy4VEjk72AAfN5k4TiSMRXRKf/0akSw==}
'@rollup/rollup-win32-ia32-msvc@4.34.1':
resolution: {integrity: sha512-i7aT5HdiZIcd7quhzvwQ2oAuX7zPYrYfkrd1QFfs28Po/i0q6kas/oRrzGlDhAEyug+1UfUtkWdmoVlLJj5x9Q==}
cpu: [ia32]
os: [win32]
'@rollup/rollup-win32-x64-msvc@4.32.0':
resolution: {integrity: sha512-5hqO5S3PTEO2E5VjCePxv40gIgyS2KvO7E7/vvC/NbIW4SIRamkMr1hqj+5Y67fbBWv/bQLB6KelBQmXlyCjWA==}
'@rollup/rollup-win32-x64-msvc@4.34.1':
resolution: {integrity: sha512-k3MVFD9Oq+laHkw2N2v7ILgoa9017ZMF/inTtHzyTVZjYs9cSH18sdyAf6spBAJIGwJ5UaC7et2ZH1WCdlhkMw==}
cpu: [x64]
os: [win32]
@@ -1082,51 +1082,51 @@ packages:
'@types/unist@2.0.11':
resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==}
'@typescript-eslint/eslint-plugin@8.21.0':
resolution: {integrity: sha512-eTH+UOR4I7WbdQnG4Z48ebIA6Bgi7WO8HvFEneeYBxG8qCOYgTOFPSg6ek9ITIDvGjDQzWHcoWHCDO2biByNzA==}
'@typescript-eslint/eslint-plugin@8.23.0':
resolution: {integrity: sha512-vBz65tJgRrA1Q5gWlRfvoH+w943dq9K1p1yDBY2pc+a1nbBLZp7fB9+Hk8DaALUbzjqlMfgaqlVPT1REJdkt/w==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
'@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <5.8.0'
'@typescript-eslint/parser@8.21.0':
resolution: {integrity: sha512-Wy+/sdEH9kI3w9civgACwabHbKl+qIOu0uFZ9IMKzX3Jpv9og0ZBJrZExGrPpFAY7rWsXuxs5e7CPPP17A4eYA==}
'@typescript-eslint/parser@8.23.0':
resolution: {integrity: sha512-h2lUByouOXFAlMec2mILeELUbME5SZRN/7R9Cw2RD2lRQQY08MWMM+PmVVKKJNK1aIwqTo9t/0CvOxwPbRIE2Q==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <5.8.0'
'@typescript-eslint/scope-manager@8.21.0':
resolution: {integrity: sha512-G3IBKz0/0IPfdeGRMbp+4rbjfSSdnGkXsM/pFZA8zM9t9klXDnB/YnKOBQ0GoPmoROa4bCq2NeHgJa5ydsQ4mA==}
'@typescript-eslint/scope-manager@8.23.0':
resolution: {integrity: sha512-OGqo7+dXHqI7Hfm+WqkZjKjsiRtFUQHPdGMXzk5mYXhJUedO7e/Y7i8AK3MyLMgZR93TX4bIzYrfyVjLC+0VSw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@typescript-eslint/type-utils@8.21.0':
resolution: {integrity: sha512-95OsL6J2BtzoBxHicoXHxgk3z+9P3BEcQTpBKriqiYzLKnM2DeSqs+sndMKdamU8FosiadQFT3D+BSL9EKnAJQ==}
'@typescript-eslint/type-utils@8.23.0':
resolution: {integrity: sha512-iIuLdYpQWZKbiH+RkCGc6iu+VwscP5rCtQ1lyQ7TYuKLrcZoeJVpcLiG8DliXVkUxirW/PWlmS+d6yD51L9jvA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <5.8.0'
'@typescript-eslint/types@8.21.0':
resolution: {integrity: sha512-PAL6LUuQwotLW2a8VsySDBwYMm129vFm4tMVlylzdoTybTHaAi0oBp7Ac6LhSrHHOdLM3efH+nAR6hAWoMF89A==}
'@typescript-eslint/types@8.23.0':
resolution: {integrity: sha512-1sK4ILJbCmZOTt9k4vkoulT6/y5CHJ1qUYxqpF1K/DBAd8+ZUL4LlSCxOssuH5m4rUaaN0uS0HlVPvd45zjduQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@typescript-eslint/typescript-estree@8.21.0':
resolution: {integrity: sha512-x+aeKh/AjAArSauz0GiQZsjT8ciadNMHdkUSwBB9Z6PrKc/4knM4g3UfHml6oDJmKC88a6//cdxnO/+P2LkMcg==}
'@typescript-eslint/typescript-estree@8.23.0':
resolution: {integrity: sha512-LcqzfipsB8RTvH8FX24W4UUFk1bl+0yTOf9ZA08XngFwMg4Kj8A+9hwz8Cr/ZS4KwHrmo9PJiLZkOt49vPnuvQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <5.8.0'
'@typescript-eslint/utils@8.21.0':
resolution: {integrity: sha512-xcXBfcq0Kaxgj7dwejMbFyq7IOHgpNMtVuDveK7w3ZGwG9owKzhALVwKpTF2yrZmEwl9SWdetf3fxNzJQaVuxw==}
'@typescript-eslint/utils@8.23.0':
resolution: {integrity: sha512-uB/+PSo6Exu02b5ZEiVtmY6RVYO7YU5xqgzTIVZwTHvvK3HsL8tZZHFaTLFtRG3CsV4A5mhOv+NZx5BlhXPyIA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <5.8.0'
'@typescript-eslint/visitor-keys@8.21.0':
resolution: {integrity: sha512-BkLMNpdV6prozk8LlyK/SOoWLmUFi+ZD+pcqti9ILCbVvHGk1ui1g4jJOc2WDLaeExz2qWwojxlPce5PljcT3w==}
'@typescript-eslint/visitor-keys@8.23.0':
resolution: {integrity: sha512-oWWhcWDLwDfu++BGTZcmXWqpwtkwb5o7fxUIGksMQQDSdPW9prsSnfIOZMlsj4vBOSrcnjIUZMiIjODgGosFhQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@unocss/astro@65.4.0':
@@ -2063,8 +2063,8 @@ packages:
resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
rollup@4.32.0:
resolution: {integrity: sha512-JmrhfQR31Q4AuNBjjAX4s+a/Pu/Q8Q9iwjWBsjRH1q52SPFE2NqRMK6fUZKKnvKO6id+h7JIRf0oYsph53eATg==}
rollup@4.34.1:
resolution: {integrity: sha512-iYZ/+PcdLYSGfH3S+dGahlW/RWmsqDhLgj1BT9DH/xXJ0ggZN7xkdP9wipPNjjNLczI+fmMLmTB9pye+d2r4GQ==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
@@ -2196,8 +2196,8 @@ packages:
trough@1.0.5:
resolution: {integrity: sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==}
ts-api-utils@2.0.0:
resolution: {integrity: sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==}
ts-api-utils@2.0.1:
resolution: {integrity: sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==}
engines: {node: '>=18.12'}
peerDependencies:
typescript: '>=4.8.4'
@@ -2218,8 +2218,8 @@ packages:
resolution: {integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==}
engines: {node: '>=8'}
typescript-eslint@8.21.0:
resolution: {integrity: sha512-txEKYY4XMKwPXxNkN8+AxAdX6iIJAPiJbHE/FpQccs/sxw8Lf26kqwC3cn0xkHlW8kEbLhkhCsjWuMveaY9Rxw==}
typescript-eslint@8.23.0:
resolution: {integrity: sha512-/LBRo3HrXr5LxmrdYSOCvoAMm7p2jNizNfbIpCgvG4HMsnoprRUOce/+8VJ9BDYWW68rqIENE/haVLWPeFZBVQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
@@ -2804,96 +2804,96 @@ snapshots:
'@polka/url@1.0.0-next.28': {}
'@rollup/plugin-node-resolve@16.0.0(rollup@4.32.0)':
'@rollup/plugin-node-resolve@16.0.0(rollup@4.34.1)':
dependencies:
'@rollup/pluginutils': 5.1.4(rollup@4.32.0)
'@rollup/pluginutils': 5.1.4(rollup@4.34.1)
'@types/resolve': 1.20.2
deepmerge: 4.3.1
is-module: 1.0.0
resolve: 1.22.8
optionalDependencies:
rollup: 4.32.0
rollup: 4.34.1
'@rollup/plugin-terser@0.4.4(rollup@4.32.0)':
'@rollup/plugin-terser@0.4.4(rollup@4.34.1)':
dependencies:
serialize-javascript: 6.0.2
smob: 1.5.0
terser: 5.36.0
optionalDependencies:
rollup: 4.32.0
rollup: 4.34.1
'@rollup/plugin-typescript@11.1.6(rollup@4.32.0)(tslib@2.8.1)(typescript@5.7.3)':
'@rollup/plugin-typescript@11.1.6(rollup@4.34.1)(tslib@2.8.1)(typescript@5.7.3)':
dependencies:
'@rollup/pluginutils': 5.1.4(rollup@4.32.0)
'@rollup/pluginutils': 5.1.4(rollup@4.34.1)
resolve: 1.22.8
typescript: 5.7.3
optionalDependencies:
rollup: 4.32.0
rollup: 4.34.1
tslib: 2.8.1
'@rollup/pluginutils@5.1.4(rollup@4.32.0)':
'@rollup/pluginutils@5.1.4(rollup@4.34.1)':
dependencies:
'@types/estree': 1.0.6
estree-walker: 2.0.2
picomatch: 4.0.2
optionalDependencies:
rollup: 4.32.0
rollup: 4.34.1
'@rollup/rollup-android-arm-eabi@4.32.0':
'@rollup/rollup-android-arm-eabi@4.34.1':
optional: true
'@rollup/rollup-android-arm64@4.32.0':
'@rollup/rollup-android-arm64@4.34.1':
optional: true
'@rollup/rollup-darwin-arm64@4.32.0':
'@rollup/rollup-darwin-arm64@4.34.1':
optional: true
'@rollup/rollup-darwin-x64@4.32.0':
'@rollup/rollup-darwin-x64@4.34.1':
optional: true
'@rollup/rollup-freebsd-arm64@4.32.0':
'@rollup/rollup-freebsd-arm64@4.34.1':
optional: true
'@rollup/rollup-freebsd-x64@4.32.0':
'@rollup/rollup-freebsd-x64@4.34.1':
optional: true
'@rollup/rollup-linux-arm-gnueabihf@4.32.0':
'@rollup/rollup-linux-arm-gnueabihf@4.34.1':
optional: true
'@rollup/rollup-linux-arm-musleabihf@4.32.0':
'@rollup/rollup-linux-arm-musleabihf@4.34.1':
optional: true
'@rollup/rollup-linux-arm64-gnu@4.32.0':
'@rollup/rollup-linux-arm64-gnu@4.34.1':
optional: true
'@rollup/rollup-linux-arm64-musl@4.32.0':
'@rollup/rollup-linux-arm64-musl@4.34.1':
optional: true
'@rollup/rollup-linux-loongarch64-gnu@4.32.0':
'@rollup/rollup-linux-loongarch64-gnu@4.34.1':
optional: true
'@rollup/rollup-linux-powerpc64le-gnu@4.32.0':
'@rollup/rollup-linux-powerpc64le-gnu@4.34.1':
optional: true
'@rollup/rollup-linux-riscv64-gnu@4.32.0':
'@rollup/rollup-linux-riscv64-gnu@4.34.1':
optional: true
'@rollup/rollup-linux-s390x-gnu@4.32.0':
'@rollup/rollup-linux-s390x-gnu@4.34.1':
optional: true
'@rollup/rollup-linux-x64-gnu@4.32.0':
'@rollup/rollup-linux-x64-gnu@4.34.1':
optional: true
'@rollup/rollup-linux-x64-musl@4.32.0':
'@rollup/rollup-linux-x64-musl@4.34.1':
optional: true
'@rollup/rollup-win32-arm64-msvc@4.32.0':
'@rollup/rollup-win32-arm64-msvc@4.34.1':
optional: true
'@rollup/rollup-win32-ia32-msvc@4.32.0':
'@rollup/rollup-win32-ia32-msvc@4.34.1':
optional: true
'@rollup/rollup-win32-x64-msvc@4.32.0':
'@rollup/rollup-win32-x64-msvc@4.34.1':
optional: true
'@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.10.0)(vite@6.0.9(jiti@2.4.2)(terser@5.36.0)(tsx@4.19.2)))(svelte@5.10.0)(vite@6.0.9(jiti@2.4.2)(terser@5.36.0)(tsx@4.19.2))':
@@ -2984,88 +2984,88 @@ snapshots:
'@types/unist@2.0.11': {}
'@typescript-eslint/eslint-plugin@8.21.0(@typescript-eslint/parser@8.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)':
'@typescript-eslint/eslint-plugin@8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)':
dependencies:
'@eslint-community/regexpp': 4.12.1
'@typescript-eslint/parser': 8.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)
'@typescript-eslint/scope-manager': 8.21.0
'@typescript-eslint/type-utils': 8.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)
'@typescript-eslint/utils': 8.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)
'@typescript-eslint/visitor-keys': 8.21.0
'@typescript-eslint/parser': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)
'@typescript-eslint/scope-manager': 8.23.0
'@typescript-eslint/type-utils': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)
'@typescript-eslint/utils': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)
'@typescript-eslint/visitor-keys': 8.23.0
eslint: 9.19.0(jiti@2.4.2)
graphemer: 1.4.0
ignore: 5.3.2
natural-compare: 1.4.0
ts-api-utils: 2.0.0(typescript@5.7.3)
ts-api-utils: 2.0.1(typescript@5.7.3)
typescript: 5.7.3
transitivePeerDependencies:
- supports-color
'@typescript-eslint/parser@8.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)':
'@typescript-eslint/parser@8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)':
dependencies:
'@typescript-eslint/scope-manager': 8.21.0
'@typescript-eslint/types': 8.21.0
'@typescript-eslint/typescript-estree': 8.21.0(typescript@5.7.3)
'@typescript-eslint/visitor-keys': 8.21.0
'@typescript-eslint/scope-manager': 8.23.0
'@typescript-eslint/types': 8.23.0
'@typescript-eslint/typescript-estree': 8.23.0(typescript@5.7.3)
'@typescript-eslint/visitor-keys': 8.23.0
debug: 4.4.0(supports-color@8.1.1)
eslint: 9.19.0(jiti@2.4.2)
typescript: 5.7.3
transitivePeerDependencies:
- supports-color
'@typescript-eslint/scope-manager@8.21.0':
'@typescript-eslint/scope-manager@8.23.0':
dependencies:
'@typescript-eslint/types': 8.21.0
'@typescript-eslint/visitor-keys': 8.21.0
'@typescript-eslint/types': 8.23.0
'@typescript-eslint/visitor-keys': 8.23.0
'@typescript-eslint/type-utils@8.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)':
'@typescript-eslint/type-utils@8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)':
dependencies:
'@typescript-eslint/typescript-estree': 8.21.0(typescript@5.7.3)
'@typescript-eslint/utils': 8.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)
'@typescript-eslint/typescript-estree': 8.23.0(typescript@5.7.3)
'@typescript-eslint/utils': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)
debug: 4.4.0(supports-color@8.1.1)
eslint: 9.19.0(jiti@2.4.2)
ts-api-utils: 2.0.0(typescript@5.7.3)
ts-api-utils: 2.0.1(typescript@5.7.3)
typescript: 5.7.3
transitivePeerDependencies:
- supports-color
'@typescript-eslint/types@8.21.0': {}
'@typescript-eslint/types@8.23.0': {}
'@typescript-eslint/typescript-estree@8.21.0(typescript@5.7.3)':
'@typescript-eslint/typescript-estree@8.23.0(typescript@5.7.3)':
dependencies:
'@typescript-eslint/types': 8.21.0
'@typescript-eslint/visitor-keys': 8.21.0
'@typescript-eslint/types': 8.23.0
'@typescript-eslint/visitor-keys': 8.23.0
debug: 4.4.0(supports-color@8.1.1)
fast-glob: 3.3.2
is-glob: 4.0.3
minimatch: 9.0.5
semver: 7.6.3
ts-api-utils: 2.0.0(typescript@5.7.3)
ts-api-utils: 2.0.1(typescript@5.7.3)
typescript: 5.7.3
transitivePeerDependencies:
- supports-color
'@typescript-eslint/utils@8.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)':
'@typescript-eslint/utils@8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)':
dependencies:
'@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0(jiti@2.4.2))
'@typescript-eslint/scope-manager': 8.21.0
'@typescript-eslint/types': 8.21.0
'@typescript-eslint/typescript-estree': 8.21.0(typescript@5.7.3)
'@typescript-eslint/scope-manager': 8.23.0
'@typescript-eslint/types': 8.23.0
'@typescript-eslint/typescript-estree': 8.23.0(typescript@5.7.3)
eslint: 9.19.0(jiti@2.4.2)
typescript: 5.7.3
transitivePeerDependencies:
- supports-color
'@typescript-eslint/visitor-keys@8.21.0':
'@typescript-eslint/visitor-keys@8.23.0':
dependencies:
'@typescript-eslint/types': 8.21.0
'@typescript-eslint/types': 8.23.0
eslint-visitor-keys: 4.2.0
'@unocss/astro@65.4.0(rollup@4.32.0)(vite@6.0.9(jiti@2.4.2)(terser@5.36.0)(tsx@4.19.2))(vue@3.5.13(typescript@5.7.3))':
'@unocss/astro@65.4.0(rollup@4.34.1)(vite@6.0.9(jiti@2.4.2)(terser@5.36.0)(tsx@4.19.2))(vue@3.5.13(typescript@5.7.3))':
dependencies:
'@unocss/core': 65.4.0
'@unocss/reset': 65.4.0
'@unocss/vite': 65.4.0(rollup@4.32.0)(vite@6.0.9(jiti@2.4.2)(terser@5.36.0)(tsx@4.19.2))(vue@3.5.13(typescript@5.7.3))
'@unocss/vite': 65.4.0(rollup@4.34.1)(vite@6.0.9(jiti@2.4.2)(terser@5.36.0)(tsx@4.19.2))(vue@3.5.13(typescript@5.7.3))
optionalDependencies:
vite: 6.0.9(jiti@2.4.2)(terser@5.36.0)(tsx@4.19.2)
transitivePeerDependencies:
@@ -3073,10 +3073,10 @@ snapshots:
- supports-color
- vue
'@unocss/cli@65.4.0(rollup@4.32.0)':
'@unocss/cli@65.4.0(rollup@4.34.1)':
dependencies:
'@ampproject/remapping': 2.3.0
'@rollup/pluginutils': 5.1.4(rollup@4.32.0)
'@rollup/pluginutils': 5.1.4(rollup@4.34.1)
'@unocss/config': 65.4.0
'@unocss/core': 65.4.0
'@unocss/preset-uno': 65.4.0
@@ -3199,10 +3199,10 @@ snapshots:
dependencies:
'@unocss/core': 65.4.0
'@unocss/vite@65.4.0(rollup@4.32.0)(vite@6.0.9(jiti@2.4.2)(terser@5.36.0)(tsx@4.19.2))(vue@3.5.13(typescript@5.7.3))':
'@unocss/vite@65.4.0(rollup@4.34.1)(vite@6.0.9(jiti@2.4.2)(terser@5.36.0)(tsx@4.19.2))(vue@3.5.13(typescript@5.7.3))':
dependencies:
'@ampproject/remapping': 2.3.0
'@rollup/pluginutils': 5.1.4(rollup@4.32.0)
'@rollup/pluginutils': 5.1.4(rollup@4.34.1)
'@unocss/config': 65.4.0
'@unocss/core': 65.4.0
'@unocss/inspector': 65.4.0(vue@3.5.13(typescript@5.7.3))
@@ -4142,29 +4142,29 @@ snapshots:
reusify@1.0.4: {}
rollup@4.32.0:
rollup@4.34.1:
dependencies:
'@types/estree': 1.0.6
optionalDependencies:
'@rollup/rollup-android-arm-eabi': 4.32.0
'@rollup/rollup-android-arm64': 4.32.0
'@rollup/rollup-darwin-arm64': 4.32.0
'@rollup/rollup-darwin-x64': 4.32.0
'@rollup/rollup-freebsd-arm64': 4.32.0
'@rollup/rollup-freebsd-x64': 4.32.0
'@rollup/rollup-linux-arm-gnueabihf': 4.32.0
'@rollup/rollup-linux-arm-musleabihf': 4.32.0
'@rollup/rollup-linux-arm64-gnu': 4.32.0
'@rollup/rollup-linux-arm64-musl': 4.32.0
'@rollup/rollup-linux-loongarch64-gnu': 4.32.0
'@rollup/rollup-linux-powerpc64le-gnu': 4.32.0
'@rollup/rollup-linux-riscv64-gnu': 4.32.0
'@rollup/rollup-linux-s390x-gnu': 4.32.0
'@rollup/rollup-linux-x64-gnu': 4.32.0
'@rollup/rollup-linux-x64-musl': 4.32.0
'@rollup/rollup-win32-arm64-msvc': 4.32.0
'@rollup/rollup-win32-ia32-msvc': 4.32.0
'@rollup/rollup-win32-x64-msvc': 4.32.0
'@rollup/rollup-android-arm-eabi': 4.34.1
'@rollup/rollup-android-arm64': 4.34.1
'@rollup/rollup-darwin-arm64': 4.34.1
'@rollup/rollup-darwin-x64': 4.34.1
'@rollup/rollup-freebsd-arm64': 4.34.1
'@rollup/rollup-freebsd-x64': 4.34.1
'@rollup/rollup-linux-arm-gnueabihf': 4.34.1
'@rollup/rollup-linux-arm-musleabihf': 4.34.1
'@rollup/rollup-linux-arm64-gnu': 4.34.1
'@rollup/rollup-linux-arm64-musl': 4.34.1
'@rollup/rollup-linux-loongarch64-gnu': 4.34.1
'@rollup/rollup-linux-powerpc64le-gnu': 4.34.1
'@rollup/rollup-linux-riscv64-gnu': 4.34.1
'@rollup/rollup-linux-s390x-gnu': 4.34.1
'@rollup/rollup-linux-x64-gnu': 4.34.1
'@rollup/rollup-linux-x64-musl': 4.34.1
'@rollup/rollup-win32-arm64-msvc': 4.34.1
'@rollup/rollup-win32-ia32-msvc': 4.34.1
'@rollup/rollup-win32-x64-msvc': 4.34.1
fsevents: 2.3.3
run-parallel@1.2.0:
@@ -4294,7 +4294,7 @@ snapshots:
trough@1.0.5: {}
ts-api-utils@2.0.0(typescript@5.7.3):
ts-api-utils@2.0.1(typescript@5.7.3):
dependencies:
typescript: 5.7.3
@@ -4313,11 +4313,11 @@ snapshots:
type-fest@0.7.1: {}
typescript-eslint@8.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3):
typescript-eslint@8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3):
dependencies:
'@typescript-eslint/eslint-plugin': 8.21.0(@typescript-eslint/parser@8.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)
'@typescript-eslint/parser': 8.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)
'@typescript-eslint/utils': 8.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)
'@typescript-eslint/eslint-plugin': 8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)
'@typescript-eslint/parser': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)
'@typescript-eslint/utils': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)
eslint: 9.19.0(jiti@2.4.2)
typescript: 5.7.3
transitivePeerDependencies:
@@ -4349,10 +4349,10 @@ snapshots:
dependencies:
'@types/unist': 2.0.11
unocss@65.4.0(postcss@8.5.1)(rollup@4.32.0)(vite@6.0.9(jiti@2.4.2)(terser@5.36.0)(tsx@4.19.2))(vue@3.5.13(typescript@5.7.3)):
unocss@65.4.0(postcss@8.5.1)(rollup@4.34.1)(vite@6.0.9(jiti@2.4.2)(terser@5.36.0)(tsx@4.19.2))(vue@3.5.13(typescript@5.7.3)):
dependencies:
'@unocss/astro': 65.4.0(rollup@4.32.0)(vite@6.0.9(jiti@2.4.2)(terser@5.36.0)(tsx@4.19.2))(vue@3.5.13(typescript@5.7.3))
'@unocss/cli': 65.4.0(rollup@4.32.0)
'@unocss/astro': 65.4.0(rollup@4.34.1)(vite@6.0.9(jiti@2.4.2)(terser@5.36.0)(tsx@4.19.2))(vue@3.5.13(typescript@5.7.3))
'@unocss/cli': 65.4.0(rollup@4.34.1)
'@unocss/core': 65.4.0
'@unocss/postcss': 65.4.0(postcss@8.5.1)
'@unocss/preset-attributify': 65.4.0
@@ -4367,7 +4367,7 @@ snapshots:
'@unocss/transformer-compile-class': 65.4.0
'@unocss/transformer-directives': 65.4.0
'@unocss/transformer-variant-group': 65.4.0
'@unocss/vite': 65.4.0(rollup@4.32.0)(vite@6.0.9(jiti@2.4.2)(terser@5.36.0)(tsx@4.19.2))(vue@3.5.13(typescript@5.7.3))
'@unocss/vite': 65.4.0(rollup@4.34.1)(vite@6.0.9(jiti@2.4.2)(terser@5.36.0)(tsx@4.19.2))(vue@3.5.13(typescript@5.7.3))
optionalDependencies:
vite: 6.0.9(jiti@2.4.2)(terser@5.36.0)(tsx@4.19.2)
transitivePeerDependencies:
@@ -4396,7 +4396,7 @@ snapshots:
dependencies:
esbuild: 0.24.2
postcss: 8.5.1
rollup: 4.32.0
rollup: 4.34.1
optionalDependencies:
fsevents: 2.3.3
jiti: 2.4.2