diff --git a/.changes/autostart-builder.md b/.changes/autostart-builder.md
new file mode 100644
index 00000000..2ba57749
--- /dev/null
+++ b/.changes/autostart-builder.md
@@ -0,0 +1,6 @@
+---
+autostart: minor
+autostart-js: minor
+---
+
+Add a `Builder` for more flexible settings
diff --git a/.changes/change-pr-2561.md b/.changes/change-pr-2561.md
new file mode 100644
index 00000000..26d566b1
--- /dev/null
+++ b/.changes/change-pr-2561.md
@@ -0,0 +1,6 @@
+---
+http: patch
+http-js: patch
+---
+
+Add `zstd` cargo feature flag to enable `reqwest/zstd` flag.
diff --git a/.changes/deep-link-is-registered-local-machine.md b/.changes/deep-link-is-registered-local-machine.md
new file mode 100644
index 00000000..7243dd5e
--- /dev/null
+++ b/.changes/deep-link-is-registered-local-machine.md
@@ -0,0 +1,6 @@
+---
+'deep-link': 'patch:bug'
+'deep-link-js': 'patch:bug'
+---
+
+Fix `is_registered` not being able to pickup deep link registered in `HKEY_LOCAL_MACHINE` on Windows
diff --git a/.changes/deep-link-unregister-local-machine.md b/.changes/deep-link-unregister-local-machine.md
new file mode 100644
index 00000000..bc0b0860
--- /dev/null
+++ b/.changes/deep-link-unregister-local-machine.md
@@ -0,0 +1,6 @@
+---
+'deep-link': 'patch:bug'
+'deep-link-js': 'patch:bug'
+---
+
+Fix `unregister` not being able to remove deep link registered in `HKEY_LOCAL_MACHINE` on Windows
diff --git a/.changes/persist-cookies.md b/.changes/persist-cookies.md
new file mode 100644
index 00000000..7160fb7b
--- /dev/null
+++ b/.changes/persist-cookies.md
@@ -0,0 +1,7 @@
+---
+"http": "patch"
+"http-js": "patch"
+---
+
+Persist cookies to disk and load it on next app start.
+
diff --git a/.changes/readable-stream-support.md b/.changes/readable-stream-support.md
new file mode 100644
index 00000000..ae72e134
--- /dev/null
+++ b/.changes/readable-stream-support.md
@@ -0,0 +1,6 @@
+---
+"fs": "patch:bug"
+"fs-js": "patch:bug"
+---
+
+Fix `writeFile` ReadableStream handling due to missing async iterator support on macOS platform
diff --git a/.changes/updater-download-inherit-check-timeout.md b/.changes/updater-download-inherit-check-timeout.md
new file mode 100644
index 00000000..ceca443d
--- /dev/null
+++ b/.changes/updater-download-inherit-check-timeout.md
@@ -0,0 +1,6 @@
+---
+"updater": "patch:bug"
+"updater-js": "patch:bug"
+---
+
+Fix `timeout` passed to `check` gets re-used by `download` and `downloadAndinstall`
diff --git a/.github/workflows/audit-javascript.yml b/.github/workflows/audit-javascript.yml
index 702811c2..f1a3ec3f 100644
--- a/.github/workflows/audit-javascript.yml
+++ b/.github/workflows/audit-javascript.yml
@@ -46,7 +46,7 @@ jobs:
node-version: 'lts/*'
- uses: pnpm/action-setup@v4
with:
- version: 9.x.x
+ version: 10.x.x
run_install: true
- name: audit
run: pnpm audit
diff --git a/.github/workflows/check-generated-files.yml b/.github/workflows/check-generated-files.yml
index d91cc2da..6a513b23 100644
--- a/.github/workflows/check-generated-files.yml
+++ b/.github/workflows/check-generated-files.yml
@@ -167,7 +167,7 @@ jobs:
node-version: 'lts/*'
- uses: pnpm/action-setup@v4
with:
- version: 9.x.x
+ version: 10.x.x
run_install: true
- name: build api
diff --git a/.github/workflows/covector-version-or-publish.yml b/.github/workflows/covector-version-or-publish.yml
index 22e945af..34bd0178 100644
--- a/.github/workflows/covector-version-or-publish.yml
+++ b/.github/workflows/covector-version-or-publish.yml
@@ -39,7 +39,7 @@ jobs:
- uses: pnpm/action-setup@v4
with:
- version: 9.x.x
+ version: 10.x.x
run_install: true
- name: cargo login
@@ -75,7 +75,7 @@ jobs:
- name: Create Pull Request With Versions Bumped
id: cpr
- uses: tauri-apps/create-pull-request@v3
+ uses: peter-evans/create-pull-request@dd2324fc52d5d43c699a5636bcf19fceaa70c284 # 7.0.7
if: steps.covector.outputs.commandRan == 'version'
with:
title: 'Publish New Versions (${{ github.ref_name }})'
diff --git a/.github/workflows/fmt.yml b/.github/workflows/fmt.yml
index bd378799..087b7674 100644
--- a/.github/workflows/fmt.yml
+++ b/.github/workflows/fmt.yml
@@ -38,7 +38,7 @@ jobs:
node-version: 'lts/*'
- uses: pnpm/action-setup@v4
with:
- version: 9.x.x
+ version: 10.x.x
run_install: true
- run: pnpm format:check
diff --git a/.github/workflows/lint-javascript.yml b/.github/workflows/lint-javascript.yml
index df6b17d9..4c9db35e 100644
--- a/.github/workflows/lint-javascript.yml
+++ b/.github/workflows/lint-javascript.yml
@@ -49,7 +49,7 @@ jobs:
node-version: 'lts/*'
- uses: pnpm/action-setup@v4
with:
- version: 9.x.x
+ version: 10.x.x
run_install: true
- name: eslint
run: pnpm lint
diff --git a/.github/workflows/sync.yml b/.github/workflows/sync.yml
index 3b8e70db..6764cf8a 100644
--- a/.github/workflows/sync.yml
+++ b/.github/workflows/sync.yml
@@ -38,7 +38,7 @@ jobs:
- uses: pnpm/action-setup@v4
with:
- version: 9.x.x
+ version: 10.x.x
run_install: true
- name: Build packages
diff --git a/.gitignore b/.gitignore
index 72e5a397..56b2e525 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,6 +14,8 @@ target/
# .vscode workspace settings file
.vscode/settings.json
+.vscode/launch.json
+.vscode/tasks.json
# npm, yarn and bun lock files
package-lock.json
diff --git a/Cargo.lock b/Cargo.lock
index dcff853f..32fa0404 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -125,15 +125,15 @@ checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
[[package]]
name = "android_log-sys"
-version = "0.3.1"
+version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ecc8056bf6ab9892dcd53216c83d1597487d7dacac16c8df6b877d127df9937"
+checksum = "84521a3cf562bc62942e294181d9eef17eb38ceb8c68677bc49f144e4c3d4f8d"
[[package]]
name = "android_logger"
-version = "0.14.1"
+version = "0.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05b07e8e73d720a1f2e4b6014766e6039fd2e96a4fa44e2a78d0e1fa2ff49826"
+checksum = "f6f39be698127218cca460cb624878c9aa4e2b47dba3b277963d2bf00bad263b"
dependencies = [
"android_log-sys",
"env_filter",
@@ -206,7 +206,7 @@ checksum = "4c95c10ba0b00a02636238b814946408b1322d5ac4760326e6fb8ec956d85775"
[[package]]
name = "api"
-version = "2.0.18"
+version = "2.0.23"
dependencies = [
"log",
"serde",
@@ -233,6 +233,7 @@ dependencies = [
"tauri-plugin-store",
"tauri-plugin-updater",
"tauri-plugin-window-state",
+ "time",
"tiny_http",
]
@@ -291,11 +292,12 @@ dependencies = [
"core-graphics 0.23.2",
"image",
"log",
- "objc2",
- "objc2-app-kit",
- "objc2-foundation",
+ "objc2 0.5.2",
+ "objc2-app-kit 0.2.2",
+ "objc2-foundation 0.2.2",
"parking_lot",
"windows-sys 0.48.0",
+ "wl-clipboard-rs",
"x11rb",
]
@@ -334,7 +336,7 @@ dependencies = [
"url",
"wayland-backend",
"wayland-client",
- "wayland-protocols",
+ "wayland-protocols 0.32.5",
"zbus",
]
@@ -384,6 +386,8 @@ dependencies = [
"memchr",
"pin-project-lite",
"tokio",
+ "zstd",
+ "zstd-safe",
]
[[package]]
@@ -685,32 +689,22 @@ 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"
+version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e58aa60e59d8dbfcc36138f5f18be5f24394d33b38b24f7fd0b1caa33095f22f"
+checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f"
dependencies = [
- "block-sys",
- "objc2",
+ "objc2 0.5.2",
]
[[package]]
name = "block2"
-version = "0.5.1"
+version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f"
+checksum = "1d59b4c170e16f0405a2e95aff44432a0d41aa97675f3d52623effe95792a037"
dependencies = [
- "objc2",
+ "objc2 0.6.0",
]
[[package]]
@@ -733,7 +727,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2506947f73ad44e344215ccd6403ac2ae18cd8e046e581a441bf8d199f257f03"
dependencies = [
"borsh-derive",
- "cfg_aliases",
+ "cfg_aliases 0.2.1",
]
[[package]]
@@ -895,12 +889,12 @@ dependencies = [
[[package]]
name = "cargo_toml"
-version = "0.21.0"
+version = "0.22.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5fbd1fe9db3ebf71b89060adaf7b0504c2d6a425cf061313099547e382c2e472"
+checksum = "02260d489095346e5cafd04dea8e8cb54d1d74fcd759022a9b72986ebe9a1257"
dependencies = [
"serde",
- "toml 0.8.19",
+ "toml",
]
[[package]]
@@ -909,6 +903,8 @@ version = "1.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f34d93e62b03caf570cccc334cbc6c2fceca82f39211051345108adcba3eebdc"
dependencies = [
+ "jobserver",
+ "libc",
"shlex",
]
@@ -945,6 +941,12 @@ version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+[[package]]
+name = "cfg_aliases"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
+
[[package]]
name = "cfg_aliases"
version = "0.2.1"
@@ -1041,36 +1043,6 @@ dependencies = [
"error-code",
]
-[[package]]
-name = "cocoa"
-version = "0.26.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f79398230a6e2c08f5c9760610eb6924b52aa9e7950a619602baba59dcbbdbb2"
-dependencies = [
- "bitflags 2.7.0",
- "block",
- "cocoa-foundation",
- "core-foundation 0.10.0",
- "core-graphics 0.24.0",
- "foreign-types 0.5.0",
- "libc",
- "objc",
-]
-
-[[package]]
-name = "cocoa-foundation"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e14045fb83be07b5acf1c0884b2180461635b433455fa35d1cd6f17f1450679d"
-dependencies = [
- "bitflags 2.7.0",
- "block",
- "core-foundation 0.10.0",
- "core-graphics-types 0.2.0",
- "libc",
- "objc",
-]
-
[[package]]
name = "color-backtrace"
version = "0.7.0"
@@ -1519,6 +1491,17 @@ dependencies = [
"serde",
]
+[[package]]
+name = "derive-new"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d150dea618e920167e5973d70ae6ece4385b7164e0d799fe7c122dd0a5d912ad"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.90",
+]
+
[[package]]
name = "derive_arbitrary"
version = "1.4.1"
@@ -1564,15 +1547,6 @@ dependencies = [
"dirs-sys 0.3.7",
]
-[[package]]
-name = "dirs"
-version = "5.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225"
-dependencies = [
- "dirs-sys 0.4.1",
-]
-
[[package]]
name = "dirs"
version = "6.0.0"
@@ -1603,18 +1577,6 @@ dependencies = [
"winapi",
]
-[[package]]
-name = "dirs-sys"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c"
-dependencies = [
- "libc",
- "option-ext",
- "redox_users 0.4.6",
- "windows-sys 0.48.0",
-]
-
[[package]]
name = "dirs-sys"
version = "0.5.0"
@@ -1821,14 +1783,14 @@ dependencies = [
[[package]]
name = "embed-resource"
-version = "2.5.1"
+version = "3.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b68b6f9f63a0b6a38bc447d4ce84e2b388f3ec95c99c641c8ff0dd3ef89a6379"
+checksum = "4762ce03154ba57ebaeee60cc631901ceae4f18219cbb874e464347471594742"
dependencies = [
"cc",
"memchr",
"rustc_version",
- "toml 0.8.19",
+ "toml",
"vswhom",
"winreg 0.52.0",
]
@@ -2021,6 +1983,12 @@ dependencies = [
"windows-sys 0.59.0",
]
+[[package]]
+name = "fixedbitset"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
+
[[package]]
name = "flate2"
version = "1.0.35"
@@ -2503,17 +2471,17 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
[[package]]
name = "global-hotkey"
-version = "0.6.3"
+version = "0.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b00d88f1be7bf4cd2e61623ce08e84be2dfa4eab458e5d632d3dab95f16c1f64"
+checksum = "41fbb3a4e56c901ee66c190fdb3fa08344e6d09593cc6c61f8eb9add7144b271"
dependencies = [
"crossbeam-channel",
"keyboard-types",
- "objc2",
- "objc2-app-kit",
+ "objc2 0.6.0",
+ "objc2-app-kit 0.3.0",
"once_cell",
"serde",
- "thiserror 1.0.69",
+ "thiserror 2.0.9",
"windows-sys 0.59.0",
"x11-dl",
]
@@ -2862,24 +2830,14 @@ dependencies = [
[[package]]
name = "ico"
-version = "0.3.0"
+version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3804960be0bb5e4edb1e1ad67afd321a9ecfd875c3e65c099468fd2717d7cae"
+checksum = "cc50b891e4acf8fe0e71ef88ec43ad82ee07b3810ad09de10f1d01f072ed4b98"
dependencies = [
"byteorder",
"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"
@@ -3060,15 +3018,6 @@ dependencies = [
"serde",
]
-[[package]]
-name = "infer"
-version = "0.16.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc150e5ce2330295b8616ce0e3f53250e53af31759a9dbedad1621ba29151847"
-dependencies = [
- "cfb",
-]
-
[[package]]
name = "infer"
version = "0.19.0"
@@ -3254,6 +3203,15 @@ version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
+[[package]]
+name = "jobserver"
+version = "0.1.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0"
+dependencies = [
+ "libc",
+]
+
[[package]]
name = "jpeg-decoder"
version = "0.3.1"
@@ -3684,21 +3642,22 @@ dependencies = [
[[package]]
name = "muda"
-version = "0.15.3"
+version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fdae9c00e61cc0579bcac625e8ad22104c60548a025bfc972dc83868a28e1484"
+checksum = "89fed9ce3e5c01700e3a129d3d74619bbf468645b58274b420885107e496ecff"
dependencies = [
"crossbeam-channel",
"dpi",
"gtk",
"keyboard-types",
- "objc2",
- "objc2-app-kit",
- "objc2-foundation",
+ "objc2 0.6.0",
+ "objc2-app-kit 0.3.0",
+ "objc2-core-foundation",
+ "objc2-foundation 0.3.0",
"once_cell",
"png",
"serde",
- "thiserror 1.0.69",
+ "thiserror 2.0.9",
"windows-sys 0.59.0",
]
@@ -3767,6 +3726,18 @@ dependencies = [
"memoffset 0.6.5",
]
+[[package]]
+name = "nix"
+version = "0.28.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
+dependencies = [
+ "bitflags 2.7.0",
+ "cfg-if",
+ "cfg_aliases 0.1.1",
+ "libc",
+]
+
[[package]]
name = "nix"
version = "0.29.0"
@@ -3775,7 +3746,7 @@ checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46"
dependencies = [
"bitflags 2.7.0",
"cfg-if",
- "cfg_aliases",
+ "cfg_aliases 0.2.1",
"libc",
"memoffset 0.9.1",
]
@@ -3958,9 +3929,6 @@ name = "objc-sys"
version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310"
-dependencies = [
- "cc",
-]
[[package]]
name = "objc2"
@@ -3972,6 +3940,16 @@ dependencies = [
"objc2-encode",
]
+[[package]]
+name = "objc2"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3531f65190d9cff863b77a99857e74c314dd16bf56c538c4b57c7cbc3f3a6e59"
+dependencies = [
+ "objc2-encode",
+ "objc2-exception-helper",
+]
+
[[package]]
name = "objc2-app-kit"
version = "0.2.2"
@@ -3981,35 +3959,41 @@ dependencies = [
"bitflags 2.7.0",
"block2 0.5.1",
"libc",
- "objc2",
- "objc2-core-data",
- "objc2-core-image",
- "objc2-foundation",
- "objc2-quartz-core",
+ "objc2 0.5.2",
+ "objc2-core-data 0.2.2",
+ "objc2-core-image 0.2.2",
+ "objc2-foundation 0.2.2",
+ "objc2-quartz-core 0.2.2",
]
[[package]]
-name = "objc2-cloud-kit"
-version = "0.2.2"
+name = "objc2-app-kit"
+version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009"
+checksum = "5906f93257178e2f7ae069efb89fbd6ee94f0592740b5f8a1512ca498814d0fb"
dependencies = [
"bitflags 2.7.0",
- "block2 0.5.1",
- "objc2",
- "objc2-core-location",
- "objc2-foundation",
+ "block2 0.6.0",
+ "libc",
+ "objc2 0.6.0",
+ "objc2-cloud-kit",
+ "objc2-core-data 0.3.0",
+ "objc2-core-foundation",
+ "objc2-core-graphics",
+ "objc2-core-image 0.3.0",
+ "objc2-foundation 0.3.0",
+ "objc2-quartz-core 0.3.0",
]
[[package]]
-name = "objc2-contacts"
-version = "0.2.2"
+name = "objc2-cloud-kit"
+version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a5ff520e9c33812fd374d8deecef01d4a840e7b41862d849513de77e44aa4889"
+checksum = "6c1948a9be5f469deadbd6bcb86ad7ff9e47b4f632380139722f7d9840c0d42c"
dependencies = [
- "block2 0.5.1",
- "objc2",
- "objc2-foundation",
+ "bitflags 2.7.0",
+ "objc2 0.6.0",
+ "objc2-foundation 0.3.0",
]
[[package]]
@@ -4020,8 +4004,41 @@ checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef"
dependencies = [
"bitflags 2.7.0",
"block2 0.5.1",
- "objc2",
- "objc2-foundation",
+ "objc2 0.5.2",
+ "objc2-foundation 0.2.2",
+]
+
+[[package]]
+name = "objc2-core-data"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f860f8e841f6d32f754836f51e6bc7777cd7e7053cf18528233f6811d3eceb4"
+dependencies = [
+ "bitflags 2.7.0",
+ "objc2 0.6.0",
+ "objc2-foundation 0.3.0",
+]
+
+[[package]]
+name = "objc2-core-foundation"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "daeaf60f25471d26948a1c2f840e3f7d86f4109e3af4e8e4b5cd70c39690d925"
+dependencies = [
+ "bitflags 2.7.0",
+ "objc2 0.6.0",
+]
+
+[[package]]
+name = "objc2-core-graphics"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8dca602628b65356b6513290a21a6405b4d4027b8b250f0b98dddbb28b7de02"
+dependencies = [
+ "bitflags 2.7.0",
+ "objc2 0.6.0",
+ "objc2-core-foundation",
+ "objc2-io-surface",
]
[[package]]
@@ -4031,28 +4048,35 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80"
dependencies = [
"block2 0.5.1",
- "objc2",
- "objc2-foundation",
+ "objc2 0.5.2",
+ "objc2-foundation 0.2.2",
"objc2-metal",
]
[[package]]
-name = "objc2-core-location"
-version = "0.2.2"
+name = "objc2-core-image"
+version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "000cfee34e683244f284252ee206a27953279d370e309649dc3ee317b37e5781"
+checksum = "6ffa6bea72bf42c78b0b34e89c0bafac877d5f80bf91e159a5d96ea7f693ca56"
dependencies = [
- "block2 0.5.1",
- "objc2",
- "objc2-contacts",
- "objc2-foundation",
+ "objc2 0.6.0",
+ "objc2-foundation 0.3.0",
]
[[package]]
name = "objc2-encode"
-version = "4.0.3"
+version = "4.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33"
+
+[[package]]
+name = "objc2-exception-helper"
+version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7891e71393cd1f227313c9379a26a584ff3d7e6e7159e988851f0934c993f0f8"
+checksum = "c7a1c5fbb72d7735b076bb47b578523aedc40f3c439bea6dfd595c089d79d98a"
+dependencies = [
+ "cc",
+]
[[package]]
name = "objc2-foundation"
@@ -4064,19 +4088,31 @@ dependencies = [
"block2 0.5.1",
"dispatch",
"libc",
- "objc2",
+ "objc2 0.5.2",
]
[[package]]
-name = "objc2-link-presentation"
-version = "0.2.2"
+name = "objc2-foundation"
+version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1a1ae721c5e35be65f01a03b6d2ac13a54cb4fa70d8a5da293d7b0020261398"
+checksum = "3a21c6c9014b82c39515db5b396f91645182611c97d24637cf56ac01e5f8d998"
dependencies = [
- "block2 0.5.1",
- "objc2",
- "objc2-app-kit",
- "objc2-foundation",
+ "bitflags 2.7.0",
+ "block2 0.6.0",
+ "libc",
+ "objc2 0.6.0",
+ "objc2-core-foundation",
+]
+
+[[package]]
+name = "objc2-io-surface"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "161a8b87e32610086e1a7a9e9ec39f84459db7b3a0881c1f16ca5a2605581c19"
+dependencies = [
+ "bitflags 2.7.0",
+ "objc2 0.6.0",
+ "objc2-core-foundation",
]
[[package]]
@@ -4087,20 +4123,20 @@ checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6"
dependencies = [
"bitflags 2.7.0",
"block2 0.5.1",
- "objc2",
- "objc2-foundation",
+ "objc2 0.5.2",
+ "objc2-foundation 0.2.2",
]
[[package]]
name = "objc2-osa-kit"
-version = "0.2.2"
+version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6788b04a18ea31e3dc3ab256b8546639e5bbae07c1a0dc4ea8615252bc6aee9a"
+checksum = "a1ac59da3ceebc4a82179b35dc550431ad9458f9cc326e053f49ba371ce76c5a"
dependencies = [
"bitflags 2.7.0",
- "objc2",
- "objc2-app-kit",
- "objc2-foundation",
+ "objc2 0.6.0",
+ "objc2-app-kit 0.3.0",
+ "objc2-foundation 0.3.0",
]
[[package]]
@@ -4111,77 +4147,46 @@ checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a"
dependencies = [
"bitflags 2.7.0",
"block2 0.5.1",
- "objc2",
- "objc2-foundation",
+ "objc2 0.5.2",
+ "objc2-foundation 0.2.2",
"objc2-metal",
]
[[package]]
-name = "objc2-symbols"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0a684efe3dec1b305badae1a28f6555f6ddd3bb2c2267896782858d5a78404dc"
-dependencies = [
- "objc2",
- "objc2-foundation",
-]
-
-[[package]]
-name = "objc2-ui-kit"
-version = "0.2.2"
+name = "objc2-quartz-core"
+version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f"
+checksum = "6fb3794501bb1bee12f08dcad8c61f2a5875791ad1c6f47faa71a0f033f20071"
dependencies = [
"bitflags 2.7.0",
- "block2 0.5.1",
- "objc2",
- "objc2-cloud-kit",
- "objc2-core-data",
- "objc2-core-image",
- "objc2-core-location",
- "objc2-foundation",
- "objc2-link-presentation",
- "objc2-quartz-core",
- "objc2-symbols",
- "objc2-uniform-type-identifiers",
- "objc2-user-notifications",
+ "objc2 0.6.0",
+ "objc2-foundation 0.3.0",
]
[[package]]
-name = "objc2-uniform-type-identifiers"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44fa5f9748dbfe1ca6c0b79ad20725a11eca7c2218bceb4b005cb1be26273bfe"
-dependencies = [
- "block2 0.5.1",
- "objc2",
- "objc2-foundation",
-]
-
-[[package]]
-name = "objc2-user-notifications"
-version = "0.2.2"
+name = "objc2-ui-kit"
+version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3"
+checksum = "777a571be14a42a3990d4ebedaeb8b54cd17377ec21b92e8200ac03797b3bee1"
dependencies = [
"bitflags 2.7.0",
- "block2 0.5.1",
- "objc2",
- "objc2-core-location",
- "objc2-foundation",
+ "objc2 0.6.0",
+ "objc2-core-foundation",
+ "objc2-foundation 0.3.0",
]
[[package]]
name = "objc2-web-kit"
-version = "0.2.2"
+version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68bc69301064cebefc6c4c90ce9cba69225239e4b8ff99d445a2b5563797da65"
+checksum = "b717127e4014b0f9f3e8bba3d3f2acec81f1bde01f656823036e823ed2c94dce"
dependencies = [
"bitflags 2.7.0",
- "block2 0.5.1",
- "objc2",
- "objc2-app-kit",
- "objc2-foundation",
+ "block2 0.6.0",
+ "objc2 0.6.0",
+ "objc2-app-kit 0.3.0",
+ "objc2-core-foundation",
+ "objc2-foundation 0.3.0",
]
[[package]]
@@ -4227,9 +4232,9 @@ dependencies = [
[[package]]
name = "openssl"
-version = "0.10.68"
+version = "0.10.71"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5"
+checksum = "5e14130c6a98cd258fdcb0fb6d744152343ff729cbfcb28c656a9d12b999fbcd"
dependencies = [
"bitflags 2.7.0",
"cfg-if",
@@ -4268,9 +4273,9 @@ dependencies = [
[[package]]
name = "openssl-sys"
-version = "0.9.104"
+version = "0.9.106"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741"
+checksum = "8bb61ea9811cc39e3c2069f40b8b8e2e70d8569b361f879786cc7ed48b777cdd"
dependencies = [
"cc",
"libc",
@@ -4328,16 +4333,16 @@ dependencies = [
[[package]]
name = "osakit"
-version = "0.3.0"
+version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35366a452fce3f8947eb2f33226a133aaf0cacedef2af67ade348d58be7f85d0"
+checksum = "732c71caeaa72c065bb69d7ea08717bd3f4863a4f451402fc9513e29dbd5261b"
dependencies = [
- "icrate",
- "objc2-foundation",
+ "objc2 0.6.0",
+ "objc2-foundation 0.3.0",
"objc2-osa-kit",
"serde",
"serde_json",
- "thiserror 1.0.69",
+ "thiserror 2.0.9",
]
[[package]]
@@ -4431,6 +4436,16 @@ version = "2.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
+[[package]]
+name = "petgraph"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db"
+dependencies = [
+ "fixedbitset",
+ "indexmap 2.7.0",
+]
+
[[package]]
name = "phf"
version = "0.8.0"
@@ -4880,7 +4895,7 @@ version = "0.5.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7d5a626c6807713b15cac82a6acaccd6043c9a5408c24baae07611fec3f243da"
dependencies = [
- "cfg_aliases",
+ "cfg_aliases 0.2.1",
"libc",
"once_cell",
"socket2",
@@ -5150,9 +5165,9 @@ dependencies = [
"gtk-sys",
"js-sys",
"log",
- "objc2",
- "objc2-app-kit",
- "objc2-foundation",
+ "objc2 0.5.2",
+ "objc2-app-kit 0.2.2",
+ "objc2-foundation 0.2.2",
"raw-window-handle",
"wasm-bindgen",
"wasm-bindgen-futures",
@@ -5825,14 +5840,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "18051cdd562e792cad055119e0cdb2cfc137e44e3987532e0f9659a77931bb08"
dependencies = [
"bytemuck",
- "cfg_aliases",
+ "cfg_aliases 0.2.1",
"core-graphics 0.24.0",
"foreign-types 0.5.0",
"js-sys",
"log",
- "objc2",
- "objc2-foundation",
- "objc2-quartz-core",
+ "objc2 0.5.2",
+ "objc2-foundation 0.2.2",
+ "objc2-quartz-core 0.2.2",
"raw-window-handle",
"redox_syscall",
"wasm-bindgen",
@@ -6330,18 +6345,17 @@ dependencies = [
"cfg-expr",
"heck 0.5.0",
"pkg-config",
- "toml 0.8.19",
+ "toml",
"version-compare",
]
[[package]]
name = "tao"
-version = "0.31.1"
+version = "0.32.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3731d04d4ac210cd5f344087733943b9bfb1a32654387dad4d1c70de21aee2c9"
+checksum = "63c8b1020610b9138dd7b1e06cf259ae91aa05c30f3bd0d6b42a03997b92dec1"
dependencies = [
"bitflags 2.7.0",
- "cocoa",
"core-foundation 0.10.0",
"core-graphics 0.24.0",
"crossbeam-channel",
@@ -6358,7 +6372,9 @@ dependencies = [
"ndk",
"ndk-context",
"ndk-sys",
- "objc",
+ "objc2 0.6.0",
+ "objc2-app-kit 0.3.0",
+ "objc2-foundation 0.3.0",
"once_cell",
"parking_lot",
"raw-window-handle",
@@ -6366,8 +6382,8 @@ dependencies = [
"tao-macros",
"unicode-segmentation",
"url",
- "windows 0.58.0",
- "windows-core 0.58.0",
+ "windows 0.60.0",
+ "windows-core 0.60.1",
"windows-version",
"x11-dl",
]
@@ -6408,13 +6424,13 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1"
[[package]]
name = "tauri"
-version = "2.2.2"
+version = "2.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2979ec5ec5a9310b15d1548db3b8de98d8f75abf2b5b00fec9cd5c0553ecc09c"
+checksum = "511dd38065a5d3b36c33cdba4362b99a40a5103bebcd4aebb930717e7c8ba292"
dependencies = [
"anyhow",
"bytes",
- "dirs 5.0.1",
+ "dirs 6.0.0",
"dunce",
"embed_plist",
"futures-util",
@@ -6430,9 +6446,9 @@ dependencies = [
"log",
"mime",
"muda",
- "objc2",
- "objc2-app-kit",
- "objc2-foundation",
+ "objc2 0.6.0",
+ "objc2-app-kit 0.3.0",
+ "objc2-foundation 0.3.0",
"percent-encoding",
"plist",
"raw-window-handle",
@@ -6457,18 +6473,18 @@ dependencies = [
"webkit2gtk",
"webview2-com",
"window-vibrancy",
- "windows 0.58.0",
+ "windows 0.60.0",
]
[[package]]
name = "tauri-build"
-version = "2.0.5"
+version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e950124f6779c6cf98e3260c7a6c8488a74aa6350dd54c6950fdaa349bca2df"
+checksum = "7ffa8732a66f90903f5a585215f3cf1e87988d0359bc88c18a502efe7572c1de"
dependencies = [
"anyhow",
"cargo_toml",
- "dirs 5.0.1",
+ "dirs 6.0.0",
"glob",
"heck 0.5.0",
"json-patch",
@@ -6480,15 +6496,15 @@ dependencies = [
"tauri-codegen",
"tauri-utils",
"tauri-winres",
- "toml 0.8.19",
+ "toml",
"walkdir",
]
[[package]]
name = "tauri-codegen"
-version = "2.0.4"
+version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f77894f9ddb5cb6c04fcfe8c8869ebe0aded4dabf19917118d48be4a95599ab5"
+checksum = "c266a247f14d63f40c6282c2653a8bac5cc3d482ca562a003a88513653ea817a"
dependencies = [
"base64 0.22.1",
"brotli",
@@ -6513,9 +6529,9 @@ dependencies = [
[[package]]
name = "tauri-macros"
-version = "2.0.4"
+version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3240a5caed760a532e8f687be6f05b2c7d11a1d791fb53ccc08cfeb3e5308736"
+checksum = "f47a1cf94b3bd6c4dc37dce1a43fc96120ff29a91757f0ab3cf713c7ad846e7c"
dependencies = [
"heck 0.5.0",
"proc-macro2",
@@ -6527,9 +6543,9 @@ dependencies = [
[[package]]
name = "tauri-plugin"
-version = "2.0.4"
+version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5841b9a0200e954ef7457f8d327091424328891e267a97b641dc246cc54d0dec"
+checksum = "9972871fcbddf16618f70412d965d4d845cd4b76d03fff168709961ef71e5cdf"
dependencies = [
"anyhow",
"glob",
@@ -6538,7 +6554,7 @@ dependencies = [
"serde",
"serde_json",
"tauri-utils",
- "toml 0.8.19",
+ "toml",
"walkdir",
]
@@ -6594,7 +6610,7 @@ dependencies = [
[[package]]
name = "tauri-plugin-clipboard-manager"
-version = "2.2.1"
+version = "2.2.2"
dependencies = [
"arboard",
"log",
@@ -6657,14 +6673,14 @@ dependencies = [
"tauri-plugin",
"tauri-utils",
"thiserror 2.0.9",
- "toml 0.8.19",
+ "toml",
"url",
"uuid",
]
[[package]]
name = "tauri-plugin-geolocation"
-version = "2.2.3"
+version = "2.2.4"
dependencies = [
"log",
"serde",
@@ -6690,7 +6706,7 @@ dependencies = [
[[package]]
name = "tauri-plugin-haptics"
-version = "2.2.3"
+version = "2.2.4"
dependencies = [
"log",
"serde",
@@ -6703,8 +6719,10 @@ dependencies = [
[[package]]
name = "tauri-plugin-http"
-version = "2.3.0"
+version = "2.4.2"
dependencies = [
+ "bytes",
+ "cookie_store",
"data-url",
"http",
"regex",
@@ -6737,14 +6755,14 @@ dependencies = [
[[package]]
name = "tauri-plugin-log"
-version = "2.2.2"
+version = "2.3.1"
dependencies = [
"android_logger",
"byte-unit",
"fern",
"log",
- "objc2",
- "objc2-foundation",
+ "objc2 0.6.0",
+ "objc2-foundation 0.3.0",
"serde",
"serde_json",
"serde_repr",
@@ -6770,7 +6788,7 @@ dependencies = [
[[package]]
name = "tauri-plugin-notification"
-version = "2.2.1"
+version = "2.2.2"
dependencies = [
"color-backtrace",
"ctor",
@@ -6792,12 +6810,12 @@ dependencies = [
[[package]]
name = "tauri-plugin-opener"
-version = "2.2.5"
+version = "2.2.6"
dependencies = [
"dunce",
"glob",
- "objc2-app-kit",
- "objc2-foundation",
+ "objc2-app-kit 0.3.0",
+ "objc2-foundation 0.3.0",
"open",
"schemars",
"serde",
@@ -6806,13 +6824,13 @@ dependencies = [
"tauri-plugin",
"thiserror 2.0.9",
"url",
- "windows 0.58.0",
+ "windows 0.60.0",
"zbus",
]
[[package]]
name = "tauri-plugin-os"
-version = "2.2.0"
+version = "2.2.1"
dependencies = [
"gethostname 1.0.0",
"log",
@@ -6949,14 +6967,15 @@ dependencies = [
[[package]]
name = "tauri-plugin-updater"
-version = "2.5.1"
+version = "2.6.1"
dependencies = [
"base64 0.22.1",
"dirs 6.0.0",
"flate2",
"futures-util",
"http",
- "infer 0.19.0",
+ "infer",
+ "log",
"minisign-verify",
"osakit",
"percent-encoding",
@@ -7026,10 +7045,11 @@ dependencies = [
[[package]]
name = "tauri-runtime"
-version = "2.3.0"
+version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2274ef891ccc0a8d318deffa9d70053f947664d12d58b9c0d1ae5e89237e01f7"
+checksum = "9e9c7bce5153f1ca7bc45eba37349b31ba50e975e28edc8b5766c5ec02b0b63a"
dependencies = [
+ "cookie",
"dpi",
"gtk",
"http",
@@ -7040,22 +7060,23 @@ dependencies = [
"tauri-utils",
"thiserror 2.0.9",
"url",
- "windows 0.58.0",
+ "windows 0.60.0",
]
[[package]]
name = "tauri-runtime-wry"
-version = "2.3.0"
+version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3707b40711d3b9f6519150869e358ffbde7c57567fb9b5a8b51150606939b2a0"
+checksum = "087188020fd6facb8578fe9b38e81fa0fe5fb85744c73da51a299f94a530a1e3"
dependencies = [
"gtk",
"http",
"jni",
"log",
- "objc2",
- "objc2-app-kit",
- "objc2-foundation",
+ "objc2 0.6.0",
+ "objc2-app-kit 0.3.0",
+ "objc2-foundation 0.3.0",
+ "once_cell",
"percent-encoding",
"raw-window-handle",
"softbuffer",
@@ -7065,17 +7086,18 @@ dependencies = [
"url",
"webkit2gtk",
"webview2-com",
- "windows 0.58.0",
+ "windows 0.60.0",
"wry",
]
[[package]]
name = "tauri-utils"
-version = "2.1.1"
+version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96fb10e7cc97456b2d5b9c03e335b5de5da982039a303a20d10006885e4523a0"
+checksum = "82dcced4014e59af9790cc22f5d271df3be09ecd6728ec68861642553c8d01b7"
dependencies = [
"aes-gcm",
+ "anyhow",
"brotli",
"cargo_metadata",
"ctor",
@@ -7084,7 +7106,7 @@ dependencies = [
"glob",
"html5ever",
"http",
- "infer 0.16.0",
+ "infer",
"json-patch",
"kuchikiki",
"log",
@@ -7102,7 +7124,7 @@ dependencies = [
"serialize-to-javascript",
"swift-rs",
"thiserror 2.0.9",
- "toml 0.8.19",
+ "toml",
"url",
"urlpattern",
"uuid",
@@ -7111,12 +7133,12 @@ dependencies = [
[[package]]
name = "tauri-winres"
-version = "0.1.1"
+version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5993dc129e544393574288923d1ec447c857f3f644187f4fbf7d9a875fbfc4fb"
+checksum = "56eaa45f707bedf34d19312c26d350bc0f3c59a47e58e8adbeecdc850d2c13a0"
dependencies = [
"embed-resource",
- "toml 0.7.8",
+ "toml",
]
[[package]]
@@ -7405,18 +7427,6 @@ dependencies = [
"tokio",
]
-[[package]]
-name = "toml"
-version = "0.7.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257"
-dependencies = [
- "serde",
- "serde_spanned",
- "toml_datetime",
- "toml_edit 0.19.15",
-]
-
[[package]]
name = "toml"
version = "0.8.19"
@@ -7445,8 +7455,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
dependencies = [
"indexmap 2.7.0",
- "serde",
- "serde_spanned",
"toml_datetime",
"winnow 0.5.40",
]
@@ -7515,25 +7523,39 @@ dependencies = [
[[package]]
name = "tray-icon"
-version = "0.19.2"
+version = "0.20.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d48a05076dd272615d03033bf04f480199f7d1b66a8ac64d75c625fc4a70c06b"
+checksum = "d433764348e7084bad2c5ea22c96c71b61b17afe3a11645710f533bd72b6a2b5"
dependencies = [
- "core-graphics 0.24.0",
"crossbeam-channel",
- "dirs 5.0.1",
+ "dirs 6.0.0",
"libappindicator",
"muda",
- "objc2",
- "objc2-app-kit",
- "objc2-foundation",
+ "objc2 0.6.0",
+ "objc2-app-kit 0.3.0",
+ "objc2-core-foundation",
+ "objc2-core-graphics",
+ "objc2-foundation 0.3.0",
"once_cell",
"png",
"serde",
- "thiserror 1.0.69",
+ "thiserror 2.0.9",
"windows-sys 0.59.0",
]
+[[package]]
+name = "tree_magic_mini"
+version = "3.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aac5e8971f245c3389a5a76e648bfc80803ae066a1243a75db0064d7c1129d63"
+dependencies = [
+ "fnv",
+ "memchr",
+ "nom",
+ "once_cell",
+ "petgraph",
+]
+
[[package]]
name = "trim-in-place"
version = "0.1.7"
@@ -7978,6 +8000,18 @@ dependencies = [
"wayland-scanner",
]
+[[package]]
+name = "wayland-protocols"
+version = "0.31.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f81f365b8b4a97f422ac0e8737c438024b5951734506b0e1d775c73030561f4"
+dependencies = [
+ "bitflags 2.7.0",
+ "wayland-backend",
+ "wayland-client",
+ "wayland-scanner",
+]
+
[[package]]
name = "wayland-protocols"
version = "0.32.5"
@@ -7990,6 +8024,19 @@ dependencies = [
"wayland-scanner",
]
+[[package]]
+name = "wayland-protocols-wlr"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6"
+dependencies = [
+ "bitflags 2.7.0",
+ "wayland-backend",
+ "wayland-client",
+ "wayland-protocols 0.31.2",
+ "wayland-scanner",
+]
+
[[package]]
name = "wayland-scanner"
version = "0.31.5"
@@ -8101,16 +8148,16 @@ dependencies = [
[[package]]
name = "webview2-com"
-version = "0.34.0"
+version = "0.36.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "823e7ebcfaea51e78f72c87fc3b65a1e602c321f407a0b36dbb327d7bb7cd921"
+checksum = "b0d606f600e5272b514dbb66539dd068211cc20155be8d3958201b4b5bd79ed3"
dependencies = [
"webview2-com-macros",
"webview2-com-sys",
- "windows 0.58.0",
- "windows-core 0.58.0",
- "windows-implement 0.58.0",
- "windows-interface 0.58.0",
+ "windows 0.60.0",
+ "windows-core 0.60.1",
+ "windows-implement 0.59.0",
+ "windows-interface 0.59.0",
]
[[package]]
@@ -8126,13 +8173,13 @@ dependencies = [
[[package]]
name = "webview2-com-sys"
-version = "0.34.0"
+version = "0.36.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a82bce72db6e5ee83c68b5de1e2cd6ea195b9fbff91cb37df5884cbe3222df4"
+checksum = "bfb27fccd3c27f68e9a6af1bcf48c2d82534b8675b83608a4d81446d095a17ac"
dependencies = [
- "thiserror 1.0.69",
- "windows 0.58.0",
- "windows-core 0.58.0",
+ "thiserror 2.0.9",
+ "windows 0.60.0",
+ "windows-core 0.60.1",
]
[[package]]
@@ -8194,13 +8241,14 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
name = "window-vibrancy"
-version = "0.5.2"
+version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3ea403deff7b51fff19e261330f71608ff2cdef5721d72b64180bb95be7c4150"
+checksum = "d9bec5a31f3f9362f2258fd0e9c9dd61a9ca432e7306cc78c444258f0dce9a9c"
dependencies = [
- "objc2",
- "objc2-app-kit",
- "objc2-foundation",
+ "objc2 0.6.0",
+ "objc2-app-kit 0.3.0",
+ "objc2-core-foundation",
+ "objc2-foundation 0.3.0",
"raw-window-handle",
"windows-sys 0.59.0",
"windows-version",
@@ -8231,12 +8279,24 @@ dependencies = [
[[package]]
name = "windows"
-version = "0.58.0"
+version = "0.60.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6"
+checksum = "ddf874e74c7a99773e62b1c671427abf01a425e77c3d3fb9fb1e4883ea934529"
dependencies = [
- "windows-core 0.58.0",
- "windows-targets 0.52.6",
+ "windows-collections",
+ "windows-core 0.60.1",
+ "windows-future",
+ "windows-link",
+ "windows-numerics",
+]
+
+[[package]]
+name = "windows-collections"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5467f79cc1ba3f52ebb2ed41dbb459b8e7db636cc3429458d9a852e15bc24dec"
+dependencies = [
+ "windows-core 0.60.1",
]
[[package]]
@@ -8262,15 +8322,25 @@ dependencies = [
[[package]]
name = "windows-core"
-version = "0.58.0"
+version = "0.60.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99"
+checksum = "ca21a92a9cae9bf4ccae5cf8368dce0837100ddf6e6d57936749e85f152f6247"
dependencies = [
- "windows-implement 0.58.0",
- "windows-interface 0.58.0",
- "windows-result 0.2.0",
- "windows-strings 0.1.0",
- "windows-targets 0.52.6",
+ "windows-implement 0.59.0",
+ "windows-interface 0.59.0",
+ "windows-link",
+ "windows-result 0.3.1",
+ "windows-strings 0.3.1",
+]
+
+[[package]]
+name = "windows-future"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a787db4595e7eb80239b74ce8babfb1363d8e343ab072f2ffe901400c03349f0"
+dependencies = [
+ "windows-core 0.60.1",
+ "windows-link",
]
[[package]]
@@ -8286,9 +8356,9 @@ dependencies = [
[[package]]
name = "windows-implement"
-version = "0.58.0"
+version = "0.59.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b"
+checksum = "83577b051e2f49a058c308f17f273b570a6a758386fc291b5f6a934dd84e48c1"
dependencies = [
"proc-macro2",
"quote",
@@ -8308,9 +8378,9 @@ dependencies = [
[[package]]
name = "windows-interface"
-version = "0.58.0"
+version = "0.59.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515"
+checksum = "cb26fd936d991781ea39e87c3a27285081e3c0da5ca0fcbc02d368cc6f52ff01"
dependencies = [
"proc-macro2",
"quote",
@@ -8323,6 +8393,16 @@ version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6dccfd733ce2b1753b03b6d3c65edf020262ea35e20ccdf3e288043e6dd620e3"
+[[package]]
+name = "windows-numerics"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "005dea54e2f6499f2cee279b8f703b3cf3b5734a2d8d21867c8f44003182eeed"
+dependencies = [
+ "windows-core 0.60.1",
+ "windows-link",
+]
+
[[package]]
name = "windows-registry"
version = "0.2.0"
@@ -8681,6 +8761,26 @@ dependencies = [
"windows-sys 0.48.0",
]
+[[package]]
+name = "wl-clipboard-rs"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "12b41773911497b18ca8553c3daaf8ec9fe9819caf93d451d3055f69de028adb"
+dependencies = [
+ "derive-new",
+ "libc",
+ "log",
+ "nix 0.28.0",
+ "os_pipe",
+ "tempfile",
+ "thiserror 1.0.69",
+ "tree_magic_mini",
+ "wayland-backend",
+ "wayland-client",
+ "wayland-protocols 0.31.2",
+ "wayland-protocols-wlr",
+]
+
[[package]]
name = "write16"
version = "1.0.0"
@@ -8695,12 +8795,12 @@ checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51"
[[package]]
name = "wry"
-version = "0.48.0"
+version = "0.50.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e644bf458e27b11b0ecafc9e5633d1304fdae82baca1d42185669752fe6ca4f"
+checksum = "b19b78efae8b853c6c817e8752fc1dbf9cab8a8ffe9c30f399bd750ccf0f0730"
dependencies = [
"base64 0.22.1",
- "block2 0.5.1",
+ "block2 0.6.0",
"cookie",
"crossbeam-channel",
"dpi",
@@ -8714,9 +8814,10 @@ dependencies = [
"kuchikiki",
"libc",
"ndk",
- "objc2",
- "objc2-app-kit",
- "objc2-foundation",
+ "objc2 0.6.0",
+ "objc2-app-kit 0.3.0",
+ "objc2-core-foundation",
+ "objc2-foundation 0.3.0",
"objc2-ui-kit",
"objc2-web-kit",
"once_cell",
@@ -8730,8 +8831,8 @@ dependencies = [
"webkit2gtk",
"webkit2gtk-sys",
"webview2-com",
- "windows 0.58.0",
- "windows-core 0.58.0",
+ "windows 0.60.0",
+ "windows-core 0.60.1",
"windows-version",
"x11-dl",
]
@@ -8990,9 +9091,9 @@ dependencies = [
[[package]]
name = "zip"
-version = "2.2.1"
+version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "99d52293fc86ea7cf13971b3bb81eb21683636e7ae24c729cdaf1b7c4157a352"
+checksum = "84e9a772a54b54236b9b744aaaf8d7be01b4d6e99725523cb82cb32d1c81b1d7"
dependencies = [
"arbitrary",
"crc32fast",
@@ -9019,6 +9120,34 @@ dependencies = [
"simd-adler32",
]
+[[package]]
+name = "zstd"
+version = "0.13.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a"
+dependencies = [
+ "zstd-safe",
+]
+
+[[package]]
+name = "zstd-safe"
+version = "7.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d"
+dependencies = [
+ "zstd-sys",
+]
+
+[[package]]
+name = "zstd-sys"
+version = "2.0.15+zstd.1.5.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237"
+dependencies = [
+ "cc",
+ "pkg-config",
+]
+
[[package]]
name = "zvariant"
version = "5.2.0"
diff --git a/examples/api/CHANGELOG.md b/examples/api/CHANGELOG.md
index 137ca0b6..3797e923 100644
--- a/examples/api/CHANGELOG.md
+++ b/examples/api/CHANGELOG.md
@@ -1,5 +1,42 @@
# Changelog
+## \[2.0.19]
+
+### Dependencies
+
+- Upgraded to `http-js@2.4.2`
+- Upgraded to `updater-js@2.6.1`
+
+## \[2.0.18]
+
+### Dependencies
+
+- Upgraded to `http-js@2.4.1`
+
+## \[2.0.17]
+
+### Dependencies
+
+- Upgraded to `log-js@2.3.1`
+
+## \[2.0.16]
+
+### Dependencies
+
+- Upgraded to `clipboard-manager-js@2.2.2`
+- Upgraded to `notification-js@2.2.2`
+- Upgraded to `os-js@2.2.1`
+- Upgraded to `http-js@2.4.0`
+- Upgraded to `log-js@2.3.0`
+- Upgraded to `updater-js@2.6.0`
+
+## \[2.0.15]
+
+### Dependencies
+
+- Upgraded to `log-js@2.2.3`
+- Upgraded to `opener-js@2.2.6`
+
## \[2.0.14]
### Dependencies
diff --git a/examples/api/package.json b/examples/api/package.json
index caa92ca8..58a6f02b 100644
--- a/examples/api/package.json
+++ b/examples/api/package.json
@@ -1,7 +1,7 @@
{
"name": "api",
"private": true,
- "version": "2.0.14",
+ "version": "2.0.19",
"type": "module",
"scripts": {
"dev": "vite --clearScreen false",
@@ -10,35 +10,35 @@
"tauri": "tauri"
},
"dependencies": {
- "@tauri-apps/api": "2.2.0",
+ "@tauri-apps/api": "2.4.0",
"@tauri-apps/plugin-barcode-scanner": "^2.2.0",
"@tauri-apps/plugin-biometric": "^2.2.0",
"@tauri-apps/plugin-cli": "^2.2.0",
- "@tauri-apps/plugin-clipboard-manager": "^2.2.1",
+ "@tauri-apps/plugin-clipboard-manager": "^2.2.2",
"@tauri-apps/plugin-dialog": "^2.2.0",
"@tauri-apps/plugin-fs": "^2.2.0",
"@tauri-apps/plugin-geolocation": "^2.2.0",
"@tauri-apps/plugin-global-shortcut": "^2.2.0",
- "@tauri-apps/plugin-opener": "^2.2.5",
"@tauri-apps/plugin-haptics": "^2.2.0",
- "@tauri-apps/plugin-http": "^2.3.0",
+ "@tauri-apps/plugin-http": "^2.4.2",
"@tauri-apps/plugin-nfc": "^2.2.0",
- "@tauri-apps/plugin-notification": "^2.2.1",
- "@tauri-apps/plugin-os": "^2.2.0",
+ "@tauri-apps/plugin-notification": "^2.2.2",
+ "@tauri-apps/plugin-opener": "^2.2.6",
+ "@tauri-apps/plugin-os": "^2.2.1",
"@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.5.1",
+ "@tauri-apps/plugin-updater": "^2.6.1",
"@zerodevx/svelte-json-view": "1.0.11"
},
"devDependencies": {
- "@iconify-json/codicon": "^1.2.6",
- "@iconify-json/ph": "^1.2.1",
- "@sveltejs/vite-plugin-svelte": "^5.0.1",
- "@tauri-apps/cli": "2.2.7",
+ "@iconify-json/codicon": "^1.2.12",
+ "@iconify-json/ph": "^1.2.2",
+ "@sveltejs/vite-plugin-svelte": "^5.0.3",
+ "@tauri-apps/cli": "2.4.0",
"@unocss/extractor-svelte": "^66.0.0",
- "svelte": "^5.10.0",
+ "svelte": "^5.20.4",
"unocss": "^66.0.0",
- "vite": "^6.0.3"
+ "vite": "^6.2.0"
}
}
diff --git a/examples/api/src-tauri/CHANGELOG.md b/examples/api/src-tauri/CHANGELOG.md
index dd6e80af..970732d4 100644
--- a/examples/api/src-tauri/CHANGELOG.md
+++ b/examples/api/src-tauri/CHANGELOG.md
@@ -1,5 +1,44 @@
# Changelog
+## \[2.0.23]
+
+### Dependencies
+
+- Upgraded to `http@2.4.2`
+- Upgraded to `updater@2.6.1`
+
+## \[2.0.22]
+
+### Dependencies
+
+- Upgraded to `http@2.4.1`
+
+## \[2.0.21]
+
+### Dependencies
+
+- Upgraded to `log@2.3.1`
+
+## \[2.0.20]
+
+### Dependencies
+
+- Upgraded to `clipboard-manager@2.2.2`
+- Upgraded to `geolocation@2.2.4`
+- Upgraded to `haptics@2.2.4`
+- Upgraded to `notification@2.2.2`
+- Upgraded to `os@2.2.1`
+- Upgraded to `http@2.4.0`
+- Upgraded to `log@2.3.0`
+- Upgraded to `updater@2.6.0`
+
+## \[2.0.19]
+
+### Dependencies
+
+- Upgraded to `log@2.2.3`
+- Upgraded to `opener@2.2.6`
+
## \[2.0.18]
### Dependencies
diff --git a/examples/api/src-tauri/Cargo.toml b/examples/api/src-tauri/Cargo.toml
index 51e7f223..acd0f87e 100644
--- a/examples/api/src-tauri/Cargo.toml
+++ b/examples/api/src-tauri/Cargo.toml
@@ -1,7 +1,7 @@
[package]
name = "api"
publish = false
-version = "2.0.18"
+version = "2.0.23"
description = "An example Tauri Application showcasing the api"
edition = "2021"
rust-version = { workspace = true }
@@ -18,22 +18,24 @@ tauri-build = { workspace = true, features = ["codegen", "isolation"] }
serde_json = { workspace = true }
serde = { workspace = true }
tiny_http = "0.12"
+time = "0.3"
log = { workspace = true }
-tauri-plugin-log = { path = "../../../plugins/log", version = "2.2.2" }
+tauri-plugin-log = { path = "../../../plugins/log", version = "2.3.1" }
tauri-plugin-fs = { path = "../../../plugins/fs", version = "2.2.0", features = [
"watch",
] }
-tauri-plugin-clipboard-manager = { path = "../../../plugins/clipboard-manager", version = "2.2.1" }
+tauri-plugin-clipboard-manager = { path = "../../../plugins/clipboard-manager", version = "2.2.2" }
tauri-plugin-dialog = { path = "../../../plugins/dialog", version = "2.2.0" }
tauri-plugin-http = { path = "../../../plugins/http", features = [
"multipart",
-], version = "2.3.0" }
-tauri-plugin-notification = { path = "../../../plugins/notification", version = "2.2.1", features = [
+ "cookies",
+], version = "2.4.2" }
+tauri-plugin-notification = { path = "../../../plugins/notification", version = "2.2.2", features = [
"windows7-compat",
] }
-tauri-plugin-os = { path = "../../../plugins/os", version = "2.2.0" }
+tauri-plugin-os = { path = "../../../plugins/os", version = "2.2.1" }
tauri-plugin-process = { path = "../../../plugins/process", version = "2.2.0" }
-tauri-plugin-opener = { path = "../../../plugins/opener", version = "2.2.5" }
+tauri-plugin-opener = { path = "../../../plugins/opener", version = "2.2.6" }
tauri-plugin-shell = { path = "../../../plugins/shell", version = "2.2.0" }
tauri-plugin-store = { path = "../../../plugins/store", version = "2.2.0" }
@@ -53,15 +55,15 @@ 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.5.1" }
+tauri-plugin-updater = { path = "../../../plugins/updater", version = "2.6.1" }
tauri-plugin-window-state = { path = "../../../plugins/window-state", version = "2.2.0" }
[target."cfg(any(target_os = \"android\", target_os = \"ios\"))".dependencies]
tauri-plugin-barcode-scanner = { path = "../../../plugins/barcode-scanner/", version = "2.2.0" }
tauri-plugin-nfc = { path = "../../../plugins/nfc", version = "2.2.0" }
tauri-plugin-biometric = { path = "../../../plugins/biometric/", version = "2.2.0" }
-tauri-plugin-geolocation = { path = "../../../plugins/geolocation/", version = "2.2.3" }
-tauri-plugin-haptics = { path = "../../../plugins/haptics/", version = "2.2.3" }
+tauri-plugin-geolocation = { path = "../../../plugins/geolocation/", version = "2.2.4" }
+tauri-plugin-haptics = { path = "../../../plugins/haptics/", version = "2.2.4" }
[features]
prod = ["tauri/custom-protocol"]
diff --git a/examples/api/src-tauri/src/lib.rs b/examples/api/src-tauri/src/lib.rs
index dc133799..a19992b0 100644
--- a/examples/api/src-tauri/src/lib.rs
+++ b/examples/api/src-tauri/src/lib.rs
@@ -102,9 +102,28 @@ pub fn run() {
if let Ok(mut request) = server.recv() {
let mut body = Vec::new();
let _ = request.as_reader().read_to_end(&mut body);
+ let mut headers = request.headers().to_vec();
+
+ if !headers.iter().any(|header| header.field == tiny_http::HeaderField::from_bytes(b"Cookie").unwrap()) {
+ let expires = time::OffsetDateTime::now_utc() + time::Duration::days(1);
+ // RFC 1123 format
+ let format = time::macros::format_description!(
+ "[weekday repr:short], [day] [month repr:short] [year] [hour]:[minute]:[second] GMT"
+ );
+ let expires_str = expires.format(format).unwrap();
+ headers.push(
+ tiny_http::Header::from_bytes(
+ &b"Set-Cookie"[..],
+ format!("session-token=test-value; Secure; Path=/; Expires={expires_str}")
+ .as_bytes(),
+ )
+ .unwrap(),
+ );
+ }
+
let response = tiny_http::Response::new(
tiny_http::StatusCode(200),
- request.headers().to_vec(),
+ headers,
std::io::Cursor::new(body),
request.body_length(),
None,
diff --git a/package.json b/package.json
index c0ae19e1..3e38ab2f 100644
--- a/package.json
+++ b/package.json
@@ -11,25 +11,29 @@
"example:api:dev": "pnpm run --filter \"api\" tauri dev"
},
"devDependencies": {
- "@eslint/js": "9.21.0",
- "@rollup/plugin-node-resolve": "16.0.0",
+ "@eslint/js": "9.23.0",
+ "@rollup/plugin-node-resolve": "16.0.1",
"@rollup/plugin-terser": "0.4.4",
- "@rollup/plugin-typescript": "11.1.6",
- "covector": "^0.12.3",
- "eslint": "9.21.0",
- "eslint-config-prettier": "10.0.1",
+ "@rollup/plugin-typescript": "12.1.2",
+ "covector": "^0.12.4",
+ "eslint": "9.23.0",
+ "eslint-config-prettier": "10.1.1",
"eslint-plugin-security": "3.0.1",
- "prettier": "3.5.2",
- "rollup": "4.34.8",
+ "prettier": "3.5.3",
+ "rollup": "4.37.0",
"tslib": "2.8.1",
- "typescript": "5.7.3",
- "typescript-eslint": "8.25.0"
+ "typescript": "5.8.2",
+ "typescript-eslint": "8.28.0"
},
- "resolutions": {
- "semver": ">=7.5.2",
- "optionator": ">=0.9.3"
+ "pnpm": {
+ "overrides": {
+ "esbuild@<0.25.0": ">=0.25.0"
+ },
+ "onlyBuiltDependencies": [
+ "esbuild"
+ ]
},
"engines": {
- "pnpm": "^9.0.0"
+ "pnpm": "^10.0.0"
}
}
diff --git a/plugins/autostart/README.md b/plugins/autostart/README.md
index 76d68f73..bae2802a 100644
--- a/plugins/autostart/README.md
+++ b/plugins/autostart/README.md
@@ -57,11 +57,9 @@ First you need to register the core plugin with Tauri:
`src-tauri/src/lib.rs`
```rust
-use tauri_plugin_autostart::MacosLauncher;
-
fn main() {
tauri::Builder::default()
- .plugin(tauri_plugin_autostart::init(MacosLauncher::LaunchAgent, Some(vec!["--flag1", "--flag2"]) /* arbitrary number of args to pass to your app */))
+ .plugin(tauri_plugin_autostart::Builder::new().args((["--flag1", "--flag2"])).build()))
.run(tauri::generate_context!())
.expect("error while running tauri application");
}
diff --git a/plugins/autostart/permissions/schemas/schema.json b/plugins/autostart/permissions/schemas/schema.json
index 59c81f52..defb923c 100644
--- a/plugins/autostart/permissions/schemas/schema.json
+++ b/plugins/autostart/permissions/schemas/schema.json
@@ -49,7 +49,7 @@
"minimum": 1.0
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri convention is to use
headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
@@ -111,7 +111,7 @@
"type": "string"
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri internal convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri internal convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
diff --git a/plugins/autostart/src/lib.rs b/plugins/autostart/src/lib.rs
index 5550bfa1..83cac89c 100644
--- a/plugins/autostart/src/lib.rs
+++ b/plugins/autostart/src/lib.rs
@@ -14,7 +14,7 @@ use auto_launch::{AutoLaunch, AutoLaunchBuilder};
use serde::{ser::Serializer, Serialize};
use tauri::{
command,
- plugin::{Builder, TauriPlugin},
+ plugin::{Builder as PluginBuilder, TauriPlugin},
Manager, Runtime, State,
};
@@ -22,8 +22,9 @@ use std::env::current_exe;
type Result = std::result::Result;
-#[derive(Debug, Copy, Clone)]
+#[derive(Debug, Default, Copy, Clone)]
pub enum MacosLauncher {
+ #[default]
LaunchAgent,
AppleScript,
}
@@ -71,10 +72,12 @@ impl AutoLaunchManager {
}
pub trait ManagerExt {
+ /// TODO: Rename these to `autostart` or `auto_start` in v3
fn autolaunch(&self) -> State<'_, AutoLaunchManager>;
}
impl> ManagerExt for T {
+ /// TODO: Rename these to `autostart` or `auto_start` in v3
fn autolaunch(&self) -> State<'_, AutoLaunchManager> {
self.state::()
}
@@ -95,59 +98,132 @@ async fn is_enabled(manager: State<'_, AutoLaunchManager>) -> Result {
manager.is_enabled()
}
+#[derive(Default)]
+pub struct Builder {
+ #[cfg(target_os = "macos")]
+ macos_launcher: MacosLauncher,
+ args: Vec,
+}
+
+impl Builder {
+ /// Create a new auto start builder with default settings
+ pub fn new() -> Self {
+ Self::default()
+ }
+
+ /// Adds an argument to pass to your app on startup.
+ ///
+ /// ## Examples
+ ///
+ /// ```no_run
+ /// Builder::new()
+ /// .arg("--from-autostart")
+ /// .arg("--hey")
+ /// .build();
+ /// ```
+ pub fn arg>(mut self, arg: S) -> Self {
+ self.args.push(arg.into());
+ self
+ }
+
+ /// Adds multiple arguments to pass to your app on startup.
+ ///
+ /// ## Examples
+ ///
+ /// ```no_run
+ /// Builder::new()
+ /// .args(["--from-autostart", "--hey"])
+ /// .build();
+ /// ```
+ pub fn args(mut self, args: I) -> Self
+ where
+ I: IntoIterator- ,
+ S: Into
,
+ {
+ for arg in args {
+ self = self.arg(arg);
+ }
+ self
+ }
+
+ /// Sets whether to use launch agent or apple script to be used to enable auto start,
+ /// the builder's default is [`MacosLauncher::LaunchAgent`]
+ #[cfg(target_os = "macos")]
+ pub fn macos_launcher(mut self, macos_launcher: MacosLauncher) -> Self {
+ self.macos_launcher = macos_launcher;
+ self
+ }
+
+ pub fn build(self) -> TauriPlugin {
+ PluginBuilder::new("autostart")
+ .invoke_handler(tauri::generate_handler![enable, disable, is_enabled])
+ .setup(move |app, _api| {
+ let mut builder = AutoLaunchBuilder::new();
+ builder.set_app_name(&app.package_info().name);
+ builder.set_args(&self.args);
+
+ let current_exe = current_exe()?;
+
+ #[cfg(windows)]
+ builder.set_app_path(¤t_exe.display().to_string());
+
+ #[cfg(target_os = "macos")]
+ {
+ builder.set_use_launch_agent(matches!(
+ self.macos_launcher,
+ MacosLauncher::LaunchAgent
+ ));
+ // on macOS, current_exe gives path to /Applications/Example.app/MacOS/Example
+ // but this results in seeing a Unix Executable in macOS login items
+ // It must be: /Applications/Example.app
+ // If it didn't find exactly a single occurance of .app, it will default to
+ // exe path to not break it.
+ let exe_path = current_exe.canonicalize()?.display().to_string();
+ let parts: Vec<&str> = exe_path.split(".app/").collect();
+ let app_path = if parts.len() == 2
+ && matches!(self.macos_launcher, MacosLauncher::AppleScript)
+ {
+ format!("{}.app", parts.first().unwrap())
+ } else {
+ exe_path
+ };
+ builder.set_app_path(&app_path);
+ }
+
+ #[cfg(target_os = "linux")]
+ if let Some(appimage) = app
+ .env()
+ .appimage
+ .and_then(|p| p.to_str().map(|s| s.to_string()))
+ {
+ builder.set_app_path(&appimage);
+ } else {
+ builder.set_app_path(¤t_exe.display().to_string());
+ }
+
+ app.manage(AutoLaunchManager(
+ builder.build().map_err(|e| e.to_string())?,
+ ));
+ Ok(())
+ })
+ .build()
+ }
+}
+
/// Initializes the plugin.
///
/// `args` - are passed to your app on startup.
pub fn init(
- macos_launcher: MacosLauncher,
+ #[allow(unused)] macos_launcher: MacosLauncher,
args: Option>,
) -> TauriPlugin {
- Builder::new("autostart")
- .invoke_handler(tauri::generate_handler![enable, disable, is_enabled])
- .setup(move |app, _api| {
- let mut builder = AutoLaunchBuilder::new();
- builder.set_app_name(&app.package_info().name);
- if let Some(args) = args {
- builder.set_args(&args);
- }
- builder.set_use_launch_agent(matches!(macos_launcher, MacosLauncher::LaunchAgent));
-
- let current_exe = current_exe()?;
-
- #[cfg(windows)]
- builder.set_app_path(¤t_exe.display().to_string());
- #[cfg(target_os = "macos")]
- {
- // on macOS, current_exe gives path to /Applications/Example.app/MacOS/Example
- // but this results in seeing a Unix Executable in macOS login items
- // It must be: /Applications/Example.app
- // If it didn't find exactly a single occurance of .app, it will default to
- // exe path to not break it.
- let exe_path = current_exe.canonicalize()?.display().to_string();
- let parts: Vec<&str> = exe_path.split(".app/").collect();
- let app_path =
- if parts.len() == 2 && matches!(macos_launcher, MacosLauncher::AppleScript) {
- format!("{}.app", parts.first().unwrap())
- } else {
- exe_path
- };
- builder.set_app_path(&app_path);
- }
- #[cfg(target_os = "linux")]
- if let Some(appimage) = app
- .env()
- .appimage
- .and_then(|p| p.to_str().map(|s| s.to_string()))
- {
- builder.set_app_path(&appimage);
- } else {
- builder.set_app_path(¤t_exe.display().to_string());
- }
-
- app.manage(AutoLaunchManager(
- builder.build().map_err(|e| e.to_string())?,
- ));
- Ok(())
- })
- .build()
+ let mut builder = Builder::new();
+ if let Some(args) = args {
+ builder = builder.args(args)
+ }
+ #[cfg(target_os = "macos")]
+ {
+ builder = builder.macos_launcher(macos_launcher);
+ }
+ builder.build()
}
diff --git a/plugins/barcode-scanner/permissions/schemas/schema.json b/plugins/barcode-scanner/permissions/schemas/schema.json
index f41214b4..dc2ab019 100644
--- a/plugins/barcode-scanner/permissions/schemas/schema.json
+++ b/plugins/barcode-scanner/permissions/schemas/schema.json
@@ -49,7 +49,7 @@
"minimum": 1.0
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
@@ -111,7 +111,7 @@
"type": "string"
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri internal convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri internal convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
diff --git a/plugins/biometric/permissions/schemas/schema.json b/plugins/biometric/permissions/schemas/schema.json
index cc4d04d5..891877b6 100644
--- a/plugins/biometric/permissions/schemas/schema.json
+++ b/plugins/biometric/permissions/schemas/schema.json
@@ -49,7 +49,7 @@
"minimum": 1.0
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
@@ -111,7 +111,7 @@
"type": "string"
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri internal convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri internal convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
diff --git a/plugins/cli/permissions/schemas/schema.json b/plugins/cli/permissions/schemas/schema.json
index b376890e..fb1ec637 100644
--- a/plugins/cli/permissions/schemas/schema.json
+++ b/plugins/cli/permissions/schemas/schema.json
@@ -49,7 +49,7 @@
"minimum": 1.0
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
@@ -111,7 +111,7 @@
"type": "string"
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri internal convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri internal convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
diff --git a/plugins/clipboard-manager/CHANGELOG.md b/plugins/clipboard-manager/CHANGELOG.md
index 91cfc44d..895d8c71 100644
--- a/plugins/clipboard-manager/CHANGELOG.md
+++ b/plugins/clipboard-manager/CHANGELOG.md
@@ -1,5 +1,11 @@
# Changelog
+## \[2.2.2]
+
+### bug
+
+- [`d37bbdef`](https://github.com/tauri-apps/plugins-workspace/commit/d37bbdef8dc70e61e59f9fe0bb8b2a48999d0aa1) ([#2507](https://github.com/tauri-apps/plugins-workspace/pull/2507) by [@SquitchYT](https://github.com/tauri-apps/plugins-workspace/../../SquitchYT)) Fix clipboard-manager Wayland support.
+
## \[2.2.1]
- [`ce11079f`](https://github.com/tauri-apps/plugins-workspace/commit/ce11079f19852fbefdecf0e4c7d947af3624fee0) ([#2280](https://github.com/tauri-apps/plugins-workspace/pull/2280) by [@FabianLars](https://github.com/tauri-apps/plugins-workspace/../../FabianLars)) Explicitly drop `arboard::Clipboard` on exit. Add recommendation to not use read methods on the mainthread.
diff --git a/plugins/clipboard-manager/Cargo.toml b/plugins/clipboard-manager/Cargo.toml
index 5b486fcf..0c35e591 100644
--- a/plugins/clipboard-manager/Cargo.toml
+++ b/plugins/clipboard-manager/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "tauri-plugin-clipboard-manager"
-version = "2.2.1"
+version = "2.2.2"
description = "Read and write to the system clipboard."
edition = { workspace = true }
authors = { workspace = true }
@@ -36,4 +36,4 @@ thiserror = { workspace = true }
tauri = { workspace = true, features = ["wry"] }
[target."cfg(any(target_os = \"macos\", windows, target_os = \"linux\", target_os = \"dragonfly\", target_os = \"freebsd\", target_os = \"openbsd\", target_os = \"netbsd\"))".dependencies]
-arboard = "3"
+arboard = { version = "3", features = ["wayland-data-control"] }
diff --git a/plugins/clipboard-manager/guest-js/index.ts b/plugins/clipboard-manager/guest-js/index.ts
index 19851fe0..a37bbfab 100644
--- a/plugins/clipboard-manager/guest-js/index.ts
+++ b/plugins/clipboard-manager/guest-js/index.ts
@@ -91,7 +91,7 @@ async function writeImage(
* import { readImage } from '@tauri-apps/plugin-clipboard-manager';
*
* const clipboardImage = await readImage();
- * const blob = new Blob([await clipboardImage.rbga()], { type: 'image' })
+ * const blob = new Blob([await clipboardImage.rgba()], { type: 'image' })
* const url = URL.createObjectURL(blob)
* ```
* @since 2.0.0
diff --git a/plugins/clipboard-manager/package.json b/plugins/clipboard-manager/package.json
index ff1ba9e7..9b78843b 100644
--- a/plugins/clipboard-manager/package.json
+++ b/plugins/clipboard-manager/package.json
@@ -1,6 +1,6 @@
{
"name": "@tauri-apps/plugin-clipboard-manager",
- "version": "2.2.1",
+ "version": "2.2.2",
"license": "MIT OR Apache-2.0",
"authors": [
"Tauri Programme within The Commons Conservancy"
diff --git a/plugins/clipboard-manager/permissions/schemas/schema.json b/plugins/clipboard-manager/permissions/schemas/schema.json
index c2763492..7e23e9a3 100644
--- a/plugins/clipboard-manager/permissions/schemas/schema.json
+++ b/plugins/clipboard-manager/permissions/schemas/schema.json
@@ -49,7 +49,7 @@
"minimum": 1.0
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
@@ -111,7 +111,7 @@
"type": "string"
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri internal convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri internal convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
diff --git a/plugins/deep-link/examples/app/package.json b/plugins/deep-link/examples/app/package.json
index 8cd45fa1..ad3adffc 100644
--- a/plugins/deep-link/examples/app/package.json
+++ b/plugins/deep-link/examples/app/package.json
@@ -10,12 +10,12 @@
"tauri": "tauri"
},
"dependencies": {
- "@tauri-apps/api": "2.2.0",
+ "@tauri-apps/api": "2.4.0",
"@tauri-apps/plugin-deep-link": "2.2.0"
},
"devDependencies": {
- "@tauri-apps/cli": "2.2.7",
- "typescript": "^5.2.2",
- "vite": "^6.0.0"
+ "@tauri-apps/cli": "2.4.0",
+ "typescript": "^5.7.3",
+ "vite": "^6.2.0"
}
}
diff --git a/plugins/deep-link/permissions/schemas/schema.json b/plugins/deep-link/permissions/schemas/schema.json
index 7d887dc2..1c96c7d5 100644
--- a/plugins/deep-link/permissions/schemas/schema.json
+++ b/plugins/deep-link/permissions/schemas/schema.json
@@ -49,7 +49,7 @@
"minimum": 1.0
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
@@ -111,7 +111,7 @@
"type": "string"
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri internal convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri internal convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
diff --git a/plugins/deep-link/src/lib.rs b/plugins/deep-link/src/lib.rs
index c259e6b2..30584df5 100644
--- a/plugins/deep-link/src/lib.rs
+++ b/plugins/deep-link/src/lib.rs
@@ -172,7 +172,7 @@ mod imp {
use tauri::Manager;
use tauri::{AppHandle, Runtime};
#[cfg(windows)]
- use windows_registry::CURRENT_USER;
+ use windows_registry::{CLASSES_ROOT, CURRENT_USER, LOCAL_MACHINE};
/// Access to the deep-link APIs.
pub struct DeepLink {
@@ -258,25 +258,23 @@ mod imp {
pub fn register>(&self, _protocol: S) -> crate::Result<()> {
#[cfg(windows)]
{
- let key_base = format!("Software\\Classes\\{}", _protocol.as_ref());
+ let protocol = _protocol.as_ref();
+ let key_base = format!("Software\\Classes\\{protocol}");
let exe = dunce::simplified(&tauri::utils::platform::current_exe()?)
.display()
.to_string();
let key_reg = CURRENT_USER.create(&key_base)?;
- key_reg.set_string(
- "",
- &format!("URL:{} protocol", self.app.config().identifier),
- )?;
+ key_reg.set_string("", format!("URL:{} protocol", self.app.config().identifier))?;
key_reg.set_string("URL Protocol", "")?;
let icon_reg = CURRENT_USER.create(format!("{key_base}\\DefaultIcon"))?;
- icon_reg.set_string("", &format!("{exe},0"))?;
+ icon_reg.set_string("", format!("{exe},0"))?;
let cmd_reg = CURRENT_USER.create(format!("{key_base}\\shell\\open\\command"))?;
- cmd_reg.set_string("", &format!("\"{exe}\" \"%1\""))?;
+ cmd_reg.set_string("", format!("\"{exe}\" \"%1\""))?;
Ok(())
}
@@ -351,13 +349,21 @@ mod imp {
///
/// ## Platform-specific:
///
+ /// - **Windows**: Requires admin rights if the protocol is registered on local machine
+ /// (this can happen when registered from the NSIS installer when the install mode is set to both or per machine)
/// - **Linux**: Can only unregister the scheme if it was initially registered with [`register`](`Self::register`). May not work on older distros.
/// - **macOS / Android / iOS**: Unsupported, will return [`Error::UnsupportedPlatform`](`crate::Error::UnsupportedPlatform`).
pub fn unregister>(&self, _protocol: S) -> crate::Result<()> {
#[cfg(windows)]
{
- CURRENT_USER.remove_tree(format!("Software\\Classes\\{}", _protocol.as_ref()))?;
-
+ let protocol = _protocol.as_ref();
+ let path = format!("Software\\Classes\\{protocol}");
+ if LOCAL_MACHINE.open(&path).is_ok() {
+ LOCAL_MACHINE.remove_tree(&path)?;
+ }
+ if CURRENT_USER.open(&path).is_ok() {
+ CURRENT_USER.remove_tree(&path)?;
+ }
Ok(())
}
@@ -401,10 +407,11 @@ mod imp {
pub fn is_registered>(&self, _protocol: S) -> crate::Result {
#[cfg(windows)]
{
- let cmd_reg = CURRENT_USER.open(format!(
- "Software\\Classes\\{}\\shell\\open\\command",
- _protocol.as_ref()
- ))?;
+ let protocol = _protocol.as_ref();
+ let Ok(cmd_reg) = CLASSES_ROOT.open(format!("{protocol}\\shell\\open\\command"))
+ else {
+ return Ok(false);
+ };
let registered_cmd = cmd_reg.get_string("")?;
diff --git a/plugins/dialog/permissions/schemas/schema.json b/plugins/dialog/permissions/schemas/schema.json
index ed8c0733..4fa8bdf3 100644
--- a/plugins/dialog/permissions/schemas/schema.json
+++ b/plugins/dialog/permissions/schemas/schema.json
@@ -49,7 +49,7 @@
"minimum": 1.0
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
@@ -111,7 +111,7 @@
"type": "string"
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri internal convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri internal convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
diff --git a/plugins/fs/api-iife.js b/plugins/fs/api-iife.js
index 8c164cd4..269935a7 100644
--- a/plugins/fs/api-iife.js
+++ b/plugins/fs/api-iife.js
@@ -1 +1 @@
-if("__TAURI__"in window){var __TAURI_PLUGIN_FS__=function(t){"use strict";function e(t,e,n,i){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?i:"a"===n?i.call(t):i?i.value:e.get(t)}function n(t,e,n,i,o){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return e.set(t,n),n}var i,o,r,a;"function"==typeof SuppressedError&&SuppressedError;const s="__TAURI_TO_IPC_KEY__";class f{constructor(){this.__TAURI_CHANNEL_MARKER__=!0,i.set(this,(()=>{})),o.set(this,0),r.set(this,[]),this.id=function(t,e=!1){return window.__TAURI_INTERNALS__.transformCallback(t,e)}((({message:t,id:a})=>{if(a==e(this,o,"f"))for(e(this,i,"f").call(this,t),n(this,o,e(this,o,"f")+1);e(this,o,"f")in e(this,r,"f");){const t=e(this,r,"f")[e(this,o,"f")];e(this,i,"f").call(this,t),delete e(this,r,"f")[e(this,o,"f")],n(this,o,e(this,o,"f")+1)}else e(this,r,"f")[a]=t}))}set onmessage(t){n(this,i,t)}get onmessage(){return e(this,i,"f")}[(i=new WeakMap,o=new WeakMap,r=new WeakMap,s)](){return`__CHANNEL__:${this.id}`}toJSON(){return this[s]()}}async function c(t,e={},n){return window.__TAURI_INTERNALS__.invoke(t,e,n)}class l{get rid(){return e(this,a,"f")}constructor(t){a.set(this,void 0),n(this,a,t)}async close(){return c("plugin:resources|close",{rid:this.rid})}}var u,p;function w(t){return{isFile:t.isFile,isDirectory:t.isDirectory,isSymlink:t.isSymlink,size:t.size,mtime:null!==t.mtime?new Date(t.mtime):null,atime:null!==t.atime?new Date(t.atime):null,birthtime:null!==t.birthtime?new Date(t.birthtime):null,readonly:t.readonly,fileAttributes:t.fileAttributes,dev:t.dev,ino:t.ino,mode:t.mode,nlink:t.nlink,uid:t.uid,gid:t.gid,rdev:t.rdev,blksize:t.blksize,blocks:t.blocks}}a=new WeakMap,t.BaseDirectory=void 0,(u=t.BaseDirectory||(t.BaseDirectory={}))[u.Audio=1]="Audio",u[u.Cache=2]="Cache",u[u.Config=3]="Config",u[u.Data=4]="Data",u[u.LocalData=5]="LocalData",u[u.Document=6]="Document",u[u.Download=7]="Download",u[u.Picture=8]="Picture",u[u.Public=9]="Public",u[u.Video=10]="Video",u[u.Resource=11]="Resource",u[u.Temp=12]="Temp",u[u.AppConfig=13]="AppConfig",u[u.AppData=14]="AppData",u[u.AppLocalData=15]="AppLocalData",u[u.AppCache=16]="AppCache",u[u.AppLog=17]="AppLog",u[u.Desktop=18]="Desktop",u[u.Executable=19]="Executable",u[u.Font=20]="Font",u[u.Home=21]="Home",u[u.Runtime=22]="Runtime",u[u.Template=23]="Template",t.SeekMode=void 0,(p=t.SeekMode||(t.SeekMode={}))[p.Start=0]="Start",p[p.Current=1]="Current",p[p.End=2]="End";class h extends l{async read(t){if(0===t.byteLength)return 0;const e=await c("plugin:fs|read",{rid:this.rid,len:t.byteLength}),n=function(t){const e=new Uint8ClampedArray(t),n=e.byteLength;let i=0;for(let t=0;tt instanceof URL?t.toString():t)),options:i,onEvent:r});return()=>{y(a)}},t.watchImmediate=async function(t,e,n){const i={recursive:!1,...n,delayMs:null},o=Array.isArray(t)?t:[t];for(const t of o)if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const r=new f;r.onmessage=e;const a=await c("plugin:fs|watch",{paths:o.map((t=>t instanceof URL?t.toString():t)),options:i,onEvent:r});return()=>{y(a)}},t.writeFile=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");if(e instanceof ReadableStream){const i=await d(t,n);for await(const t of e)await i.write(t);await i.close()}else await c("plugin:fs|write_file",e,{headers:{path:encodeURIComponent(t instanceof URL?t.toString():t),options:JSON.stringify(n)}})},t.writeTextFile=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const i=new TextEncoder;await c("plugin:fs|write_text_file",i.encode(e),{headers:{path:encodeURIComponent(t instanceof URL?t.toString():t),options:JSON.stringify(n)}})},t}({});Object.defineProperty(window.__TAURI__,"fs",{value:__TAURI_PLUGIN_FS__})}
+if("__TAURI__"in window){var __TAURI_PLUGIN_FS__=function(t){"use strict";function e(t,e,n,i){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?i:"a"===n?i.call(t):i?i.value:e.get(t)}function n(t,e,n,i,o){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return e.set(t,n),n}var i,o,r,a;"function"==typeof SuppressedError&&SuppressedError;const s="__TAURI_TO_IPC_KEY__";class f{constructor(){this.__TAURI_CHANNEL_MARKER__=!0,i.set(this,(()=>{})),o.set(this,0),r.set(this,[]),this.id=function(t,e=!1){return window.__TAURI_INTERNALS__.transformCallback(t,e)}((({message:t,id:a})=>{if(a==e(this,o,"f"))for(e(this,i,"f").call(this,t),n(this,o,e(this,o,"f")+1);e(this,o,"f")in e(this,r,"f");){const t=e(this,r,"f")[e(this,o,"f")];e(this,i,"f").call(this,t),delete e(this,r,"f")[e(this,o,"f")],n(this,o,e(this,o,"f")+1)}else e(this,r,"f")[a]=t}))}set onmessage(t){n(this,i,t)}get onmessage(){return e(this,i,"f")}[(i=new WeakMap,o=new WeakMap,r=new WeakMap,s)](){return`__CHANNEL__:${this.id}`}toJSON(){return this[s]()}}async function c(t,e={},n){return window.__TAURI_INTERNALS__.invoke(t,e,n)}class l{get rid(){return e(this,a,"f")}constructor(t){a.set(this,void 0),n(this,a,t)}async close(){return c("plugin:resources|close",{rid:this.rid})}}var u,p;function w(t){return{isFile:t.isFile,isDirectory:t.isDirectory,isSymlink:t.isSymlink,size:t.size,mtime:null!==t.mtime?new Date(t.mtime):null,atime:null!==t.atime?new Date(t.atime):null,birthtime:null!==t.birthtime?new Date(t.birthtime):null,readonly:t.readonly,fileAttributes:t.fileAttributes,dev:t.dev,ino:t.ino,mode:t.mode,nlink:t.nlink,uid:t.uid,gid:t.gid,rdev:t.rdev,blksize:t.blksize,blocks:t.blocks}}a=new WeakMap,t.BaseDirectory=void 0,(u=t.BaseDirectory||(t.BaseDirectory={}))[u.Audio=1]="Audio",u[u.Cache=2]="Cache",u[u.Config=3]="Config",u[u.Data=4]="Data",u[u.LocalData=5]="LocalData",u[u.Document=6]="Document",u[u.Download=7]="Download",u[u.Picture=8]="Picture",u[u.Public=9]="Public",u[u.Video=10]="Video",u[u.Resource=11]="Resource",u[u.Temp=12]="Temp",u[u.AppConfig=13]="AppConfig",u[u.AppData=14]="AppData",u[u.AppLocalData=15]="AppLocalData",u[u.AppCache=16]="AppCache",u[u.AppLog=17]="AppLog",u[u.Desktop=18]="Desktop",u[u.Executable=19]="Executable",u[u.Font=20]="Font",u[u.Home=21]="Home",u[u.Runtime=22]="Runtime",u[u.Template=23]="Template",t.SeekMode=void 0,(p=t.SeekMode||(t.SeekMode={}))[p.Start=0]="Start",p[p.Current=1]="Current",p[p.End=2]="End";class h extends l{async read(t){if(0===t.byteLength)return 0;const e=await c("plugin:fs|read",{rid:this.rid,len:t.byteLength}),n=function(t){const e=new Uint8ClampedArray(t),n=e.byteLength;let i=0;for(let t=0;tt instanceof URL?t.toString():t)),options:i,onEvent:r});return()=>{y(a)}},t.watchImmediate=async function(t,e,n){const i={recursive:!1,...n,delayMs:null},o=Array.isArray(t)?t:[t];for(const t of o)if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const r=new f;r.onmessage=e;const a=await c("plugin:fs|watch",{paths:o.map((t=>t instanceof URL?t.toString():t)),options:i,onEvent:r});return()=>{y(a)}},t.writeFile=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");if(e instanceof ReadableStream){const i=await d(t,n),o=e.getReader();try{for(;;){const{done:t,value:e}=await o.read();if(t)break;await i.write(e)}}finally{o.releaseLock(),await i.close()}}else await c("plugin:fs|write_file",e,{headers:{path:encodeURIComponent(t instanceof URL?t.toString():t),options:JSON.stringify(n)}})},t.writeTextFile=async function(t,e,n){if(t instanceof URL&&"file:"!==t.protocol)throw new TypeError("Must be a file URL.");const i=new TextEncoder;await c("plugin:fs|write_text_file",i.encode(e),{headers:{path:encodeURIComponent(t instanceof URL?t.toString():t),options:JSON.stringify(n)}})},t}({});Object.defineProperty(window.__TAURI__,"fs",{value:__TAURI_PLUGIN_FS__})}
diff --git a/plugins/fs/guest-js/index.ts b/plugins/fs/guest-js/index.ts
index e0438d58..f19cbc80 100644
--- a/plugins/fs/guest-js/index.ts
+++ b/plugins/fs/guest-js/index.ts
@@ -1075,10 +1075,18 @@ async function writeFile(
if (data instanceof ReadableStream) {
const file = await open(path, options)
- for await (const chunk of data) {
- await file.write(chunk)
+ const reader = data.getReader()
+
+ try {
+ while (true) {
+ const { done, value } = await reader.read()
+ if (done) break
+ await file.write(value)
+ }
+ } finally {
+ reader.releaseLock()
+ await file.close()
}
- await file.close()
} else {
await invoke('plugin:fs|write_file', data, {
headers: {
diff --git a/plugins/fs/permissions/schemas/schema.json b/plugins/fs/permissions/schemas/schema.json
index 2c13d5c6..e8706b04 100644
--- a/plugins/fs/permissions/schemas/schema.json
+++ b/plugins/fs/permissions/schemas/schema.json
@@ -49,7 +49,7 @@
"minimum": 1.0
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
@@ -111,7 +111,7 @@
"type": "string"
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri internal convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri internal convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
diff --git a/plugins/fs/src/file_path.rs b/plugins/fs/src/file_path.rs
index 735fc105..6316a248 100644
--- a/plugins/fs/src/file_path.rs
+++ b/plugins/fs/src/file_path.rs
@@ -53,10 +53,7 @@ impl FilePath {
#[inline]
pub fn into_path(self) -> Result {
match self {
- Self::Url(url) => url
- .to_file_path()
- .map(PathBuf::from)
- .map_err(|_| Error::InvalidPathUrl),
+ Self::Url(url) => url.to_file_path().map_err(|_| Error::InvalidPathUrl),
Self::Path(p) => Ok(p),
}
}
@@ -91,10 +88,7 @@ impl SafeFilePath {
#[inline]
pub fn into_path(self) -> Result {
match self {
- Self::Url(url) => url
- .to_file_path()
- .map(PathBuf::from)
- .map_err(|_| Error::InvalidPathUrl),
+ Self::Url(url) => url.to_file_path().map_err(|_| Error::InvalidPathUrl),
Self::Path(p) => Ok(p.as_ref().to_owned()),
}
}
diff --git a/plugins/geolocation/CHANGELOG.md b/plugins/geolocation/CHANGELOG.md
index 26bd66b6..dbee2e7d 100644
--- a/plugins/geolocation/CHANGELOG.md
+++ b/plugins/geolocation/CHANGELOG.md
@@ -1,5 +1,9 @@
# Changelog
+## \[2.2.4]
+
+- [`a1b3fa27`](https://github.com/tauri-apps/plugins-workspace/commit/a1b3fa27f11022c9b6622b4fab12d93239eb05de) ([#2515](https://github.com/tauri-apps/plugins-workspace/pull/2515) by [@FabianLars](https://github.com/tauri-apps/plugins-workspace/../../FabianLars)) Re-exported the `Geolocation`, `Haptics`, `Notification`, and `Os` structs so that they show up on docs.rs.
+
## \[2.2.3]
- [`406e6f48`](https://github.com/tauri-apps/plugins-workspace/commit/406e6f484cdc13d35c50fb949f7489ca9eeccc44) ([#2323](https://github.com/tauri-apps/plugins-workspace/pull/2323) by [@FabianLars](https://github.com/tauri-apps/plugins-workspace/../../FabianLars)) Fixed an issue that caused build failures when the `haptics` or `geolocation` plugin was used without their `specta` feature flag enabled.
diff --git a/plugins/geolocation/Cargo.toml b/plugins/geolocation/Cargo.toml
index 3fc3baaf..7d01b526 100644
--- a/plugins/geolocation/Cargo.toml
+++ b/plugins/geolocation/Cargo.toml
@@ -1,7 +1,7 @@
[package]
name = "tauri-plugin-geolocation"
description = "Get and track the device's current position"
-version = "2.2.3"
+version = "2.2.4"
edition = { workspace = true }
authors = { workspace = true }
license = { workspace = true }
diff --git a/plugins/geolocation/package.json b/plugins/geolocation/package.json
index c52b7e08..0e3b09cb 100644
--- a/plugins/geolocation/package.json
+++ b/plugins/geolocation/package.json
@@ -1,6 +1,6 @@
{
"name": "@tauri-apps/plugin-geolocation",
- "version": "2.2.3",
+ "version": "2.2.4",
"license": "MIT OR Apache-2.0",
"authors": [
"Tauri Programme within The Commons Conservancy"
diff --git a/plugins/geolocation/permissions/schemas/schema.json b/plugins/geolocation/permissions/schemas/schema.json
index 4474ec6b..fe0129bb 100644
--- a/plugins/geolocation/permissions/schemas/schema.json
+++ b/plugins/geolocation/permissions/schemas/schema.json
@@ -49,7 +49,7 @@
"minimum": 1.0
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
@@ -111,7 +111,7 @@
"type": "string"
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri internal convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri internal convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
diff --git a/plugins/geolocation/src/lib.rs b/plugins/geolocation/src/lib.rs
index 55f50aa0..588f96e3 100644
--- a/plugins/geolocation/src/lib.rs
+++ b/plugins/geolocation/src/lib.rs
@@ -21,9 +21,9 @@ mod models;
pub use error::{Error, Result};
#[cfg(desktop)]
-use desktop::Geolocation;
+pub use desktop::Geolocation;
#[cfg(mobile)]
-use mobile::Geolocation;
+pub use mobile::Geolocation;
/// Extensions to [`tauri::App`], [`tauri::AppHandle`], [`tauri::WebviewWindow`], [`tauri::Webview`] and [`tauri::Window`] to access the geolocation APIs.
pub trait GeolocationExt {
diff --git a/plugins/global-shortcut/permissions/schemas/schema.json b/plugins/global-shortcut/permissions/schemas/schema.json
index 66b92b07..6270e7f3 100644
--- a/plugins/global-shortcut/permissions/schemas/schema.json
+++ b/plugins/global-shortcut/permissions/schemas/schema.json
@@ -49,7 +49,7 @@
"minimum": 1.0
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
@@ -111,7 +111,7 @@
"type": "string"
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri internal convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri internal convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
diff --git a/plugins/haptics/CHANGELOG.md b/plugins/haptics/CHANGELOG.md
index 246fb18e..aa3fbbd8 100644
--- a/plugins/haptics/CHANGELOG.md
+++ b/plugins/haptics/CHANGELOG.md
@@ -1,5 +1,9 @@
# Changelog
+## \[2.2.4]
+
+- [`a1b3fa27`](https://github.com/tauri-apps/plugins-workspace/commit/a1b3fa27f11022c9b6622b4fab12d93239eb05de) ([#2515](https://github.com/tauri-apps/plugins-workspace/pull/2515) by [@FabianLars](https://github.com/tauri-apps/plugins-workspace/../../FabianLars)) Re-exported the `Geolocation`, `Haptics`, `Notification`, and `Os` structs so that they show up on docs.rs.
+
## \[2.2.3]
- [`406e6f48`](https://github.com/tauri-apps/plugins-workspace/commit/406e6f484cdc13d35c50fb949f7489ca9eeccc44) ([#2323](https://github.com/tauri-apps/plugins-workspace/pull/2323) by [@FabianLars](https://github.com/tauri-apps/plugins-workspace/../../FabianLars)) Fixed an issue that caused build failures when the `haptics` or `geolocation` plugin was used without their `specta` feature flag enabled.
diff --git a/plugins/haptics/Cargo.toml b/plugins/haptics/Cargo.toml
index 4215130e..34c80bab 100644
--- a/plugins/haptics/Cargo.toml
+++ b/plugins/haptics/Cargo.toml
@@ -1,7 +1,7 @@
[package]
name = "tauri-plugin-haptics"
description = "Haptic feedback and vibrations on Android and iOS"
-version = "2.2.3"
+version = "2.2.4"
edition = { workspace = true }
authors = { workspace = true }
license = { workspace = true }
diff --git a/plugins/haptics/package.json b/plugins/haptics/package.json
index 1c70aae1..12c5b74b 100644
--- a/plugins/haptics/package.json
+++ b/plugins/haptics/package.json
@@ -1,6 +1,6 @@
{
"name": "@tauri-apps/plugin-haptics",
- "version": "2.2.3",
+ "version": "2.2.4",
"license": "MIT OR Apache-2.0",
"authors": [
"Tauri Programme within The Commons Conservancy"
diff --git a/plugins/haptics/permissions/schemas/schema.json b/plugins/haptics/permissions/schemas/schema.json
index 763e0a72..889da78f 100644
--- a/plugins/haptics/permissions/schemas/schema.json
+++ b/plugins/haptics/permissions/schemas/schema.json
@@ -49,7 +49,7 @@
"minimum": 1.0
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
@@ -111,7 +111,7 @@
"type": "string"
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri internal convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri internal convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
diff --git a/plugins/haptics/src/lib.rs b/plugins/haptics/src/lib.rs
index f56e5212..31798743 100644
--- a/plugins/haptics/src/lib.rs
+++ b/plugins/haptics/src/lib.rs
@@ -21,9 +21,9 @@ mod models;
pub use error::{Error, Result};
#[cfg(desktop)]
-use desktop::Haptics;
+pub use desktop::Haptics;
#[cfg(mobile)]
-use mobile::Haptics;
+pub use mobile::Haptics;
/// Extensions to [`tauri::App`], [`tauri::AppHandle`], [`tauri::WebviewWindow`], [`tauri::Webview`] and [`tauri::Window`] to access the haptics APIs.
pub trait HapticsExt {
diff --git a/plugins/http/CHANGELOG.md b/plugins/http/CHANGELOG.md
index e9611f4e..22e7a07c 100644
--- a/plugins/http/CHANGELOG.md
+++ b/plugins/http/CHANGELOG.md
@@ -1,5 +1,17 @@
# Changelog
+## \[2.4.2]
+
+- [`a15eedf3`](https://github.com/tauri-apps/plugins-workspace/commit/a15eedf37854344f7ffbcb0d373d848563817011) ([#2535](https://github.com/tauri-apps/plugins-workspace/pull/2535) by [@amrbashir](https://github.com/tauri-apps/plugins-workspace/../../amrbashir)) Fix `fetch` occasionally throwing an error due to trying to close the underline stream twice.
+
+## \[2.4.1]
+
+- [`d3183aa9`](https://github.com/tauri-apps/plugins-workspace/commit/d3183aa99da7ca67e627394132ddeb3b85ccef06) ([#2522](https://github.com/tauri-apps/plugins-workspace/pull/2522) by [@adrieljss](https://github.com/tauri-apps/plugins-workspace/../../adrieljss)) Fix `fetch` blocking until the whole response is read even if it was a streaming response.
+
+## \[2.4.0]
+
+- [`cb38f54f`](https://github.com/tauri-apps/plugins-workspace/commit/cb38f54f4a4ef30995283cd82166c62da17bac44) ([#2479](https://github.com/tauri-apps/plugins-workspace/pull/2479) by [@adrieljss](https://github.com/tauri-apps/plugins-workspace/../../adrieljss)) Add stream support for HTTP stream responses.
+
## \[2.3.0]
- [`10513649`](https://github.com/tauri-apps/plugins-workspace/commit/105136494c5a5bf4b1f1cc06cc71815412d17ec8) ([#2204](https://github.com/tauri-apps/plugins-workspace/pull/2204) by [@RickeyWard](https://github.com/tauri-apps/plugins-workspace/../../RickeyWard)) Add `dangerous-settings` feature flag and new JS `danger` option to disable tls hostname/certificate validation.
diff --git a/plugins/http/Cargo.toml b/plugins/http/Cargo.toml
index 9aa49e0e..0d482206 100644
--- a/plugins/http/Cargo.toml
+++ b/plugins/http/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "tauri-plugin-http"
-version = "2.3.0"
+version = "2.4.2"
description = "Access an HTTP client written in Rust."
edition = { workspace = true }
authors = { workspace = true }
@@ -41,6 +41,8 @@ http = "1"
reqwest = { version = "0.12", default-features = false }
url = { workspace = true }
data-url = "0.3"
+cookie_store = { version = "0.21.1", optional = true, features = ["serde"] }
+bytes = { version = "1.9", optional = true }
tracing = { workspace = true, optional = true }
[features]
@@ -62,10 +64,11 @@ rustls-tls-manual-roots = ["reqwest/rustls-tls-manual-roots"]
rustls-tls-webpki-roots = ["reqwest/rustls-tls-webpki-roots"]
rustls-tls-native-roots = ["reqwest/rustls-tls-native-roots"]
blocking = ["reqwest/blocking"]
-cookies = ["reqwest/cookies"]
+cookies = ["reqwest/cookies", "dep:cookie_store", "dep:bytes"]
gzip = ["reqwest/gzip"]
brotli = ["reqwest/brotli"]
deflate = ["reqwest/deflate"]
+zstd = ["reqwest/zstd"]
trust-dns = ["reqwest/trust-dns"]
socks = ["reqwest/socks"]
http2 = ["reqwest/http2"]
diff --git a/plugins/http/api-iife.js b/plugins/http/api-iife.js
index 76b498ad..ec016360 100644
--- a/plugins/http/api-iife.js
+++ b/plugins/http/api-iife.js
@@ -1 +1 @@
-if("__TAURI__"in window){var __TAURI_PLUGIN_HTTP__=function(e){"use strict";async function t(e,t={},r){return window.__TAURI_INTERNALS__.invoke(e,t,r)}"function"==typeof SuppressedError&&SuppressedError;const r="Request canceled";return e.fetch=async function(e,n){const a=n?.signal;if(a?.aborted)throw new Error(r);const o=n?.maxRedirections,s=n?.connectTimeout,i=n?.proxy,d=n?.danger;n&&(delete n.maxRedirections,delete n.connectTimeout,delete n.proxy,delete n.danger);const c=n?.headers?n.headers instanceof Headers?n.headers:new Headers(n.headers):new Headers,u=new Request(e,n),f=await u.arrayBuffer(),_=0!==f.byteLength?Array.from(new Uint8Array(f)):null;for(const[e,t]of u.headers)c.get(e)||c.set(e,t);const h=(c instanceof Headers?Array.from(c.entries()):Array.isArray(c)?c:Object.entries(c)).map((([e,t])=>[e,"string"==typeof t?t:t.toString()]));if(a?.aborted)throw new Error(r);const l=await t("plugin:http|fetch",{clientConfig:{method:u.method,url:u.url,headers:h,data:_,maxRedirections:o,connectTimeout:s,proxy:i,danger:d}}),p=()=>t("plugin:http|fetch_cancel",{rid:l});if(a?.aborted)throw p(),new Error(r);a?.addEventListener("abort",(()=>{p()}));const{status:w,statusText:y,url:g,headers:T,rid:A}=await t("plugin:http|fetch_send",{rid:l}),R=await t("plugin:http|fetch_read_body",{rid:A}),b=new Response(R instanceof ArrayBuffer&&0!==R.byteLength?R:R instanceof Array&&R.length>0?new Uint8Array(R):null,{status:w,statusText:y});return Object.defineProperty(b,"url",{value:g}),Object.defineProperty(b,"headers",{value:new Headers(T)}),b},e}({});Object.defineProperty(window.__TAURI__,"http",{value:__TAURI_PLUGIN_HTTP__})}
+if("__TAURI__"in window){var __TAURI_PLUGIN_HTTP__=function(e){"use strict";function t(e,t,r,n){if("function"==typeof t||!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)}function r(e,t,r,n,s){if("function"==typeof t||!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return t.set(e,r),r}var n,s,a;"function"==typeof SuppressedError&&SuppressedError;const i="__TAURI_TO_IPC_KEY__";class o{constructor(){this.__TAURI_CHANNEL_MARKER__=!0,n.set(this,(()=>{})),s.set(this,0),a.set(this,[]),this.id=function(e,t=!1){return window.__TAURI_INTERNALS__.transformCallback(e,t)}((({message:e,id:i})=>{if(i==t(this,s,"f"))for(t(this,n,"f").call(this,e),r(this,s,t(this,s,"f")+1);t(this,s,"f")in t(this,a,"f");){const e=t(this,a,"f")[t(this,s,"f")];t(this,n,"f").call(this,e),delete t(this,a,"f")[t(this,s,"f")],r(this,s,t(this,s,"f")+1)}else t(this,a,"f")[i]=e}))}set onmessage(e){r(this,n,e)}get onmessage(){return t(this,n,"f")}[(n=new WeakMap,s=new WeakMap,a=new WeakMap,i)](){return`__CHANNEL__:${this.id}`}toJSON(){return this[i]()}}async function c(e,t={},r){return window.__TAURI_INTERNALS__.invoke(e,t,r)}const d="Request cancelled";return e.fetch=async function(e,t){const r=t?.signal;if(r?.aborted)throw new Error(d);const n=t?.maxRedirections,s=t?.connectTimeout,a=t?.proxy,i=t?.danger;t&&(delete t.maxRedirections,delete t.connectTimeout,delete t.proxy,delete t.danger);const h=t?.headers?t.headers instanceof Headers?t.headers:new Headers(t.headers):new Headers,f=new Request(e,t),_=await f.arrayBuffer(),u=0!==_.byteLength?Array.from(new Uint8Array(_)):null;for(const[e,t]of f.headers)h.get(e)||h.set(e,t);const l=(h instanceof Headers?Array.from(h.entries()):Array.isArray(h)?h:Object.entries(h)).map((([e,t])=>[e,"string"==typeof t?t:t.toString()]));if(r?.aborted)throw new Error(d);const w=await c("plugin:http|fetch",{clientConfig:{method:f.method,url:f.url,headers:l,data:u,maxRedirections:n,connectTimeout:s,proxy:a,danger:i}}),p=()=>c("plugin:http|fetch_cancel",{rid:w});if(r?.aborted)throw p(),new Error(d);r?.addEventListener("abort",(()=>{p()}));const{status:y,statusText:m,url:T,headers:g,rid:b}=await c("plugin:http|fetch_send",{rid:w}),A=new ReadableStream({start:e=>{const t=new o;t.onmessage=t=>{if(r?.aborted)return void e.error(d);const n=new Uint8Array(t),s=n[n.byteLength-1],a=n.slice(0,n.byteLength-1);1!=s?e.enqueue(a):e.close()},c("plugin:http|fetch_read_body",{rid:b,streamChannel:t}).catch((t=>{e.error(t)}))}}),R=new Response(A,{status:y,statusText:m});return Object.defineProperty(R,"url",{value:T}),Object.defineProperty(R,"headers",{value:new Headers(g)}),R},e}({});Object.defineProperty(window.__TAURI__,"http",{value:__TAURI_PLUGIN_HTTP__})}
diff --git a/plugins/http/guest-js/index.ts b/plugins/http/guest-js/index.ts
index bea18e44..62f4916c 100644
--- a/plugins/http/guest-js/index.ts
+++ b/plugins/http/guest-js/index.ts
@@ -26,7 +26,7 @@
* @module
*/
-import { invoke } from '@tauri-apps/api/core'
+import { Channel, invoke } from '@tauri-apps/api/core'
/**
* Configuration of a proxy that a Client should pass requests to.
@@ -106,7 +106,7 @@ export interface DangerousSettings {
acceptInvalidHostnames?: boolean
}
-const ERROR_REQUEST_CANCELLED = 'Request canceled'
+const ERROR_REQUEST_CANCELLED = 'Request cancelled'
/**
* Fetch a resource from the network. It returns a `Promise` that resolves to the
@@ -229,31 +229,49 @@ export async function fetch(
rid
})
- const body = await invoke(
- 'plugin:http|fetch_read_body',
- {
- rid: responseRid
- }
- )
+ const readableStreamBody = new ReadableStream({
+ start: (controller) => {
+ const streamChannel = new Channel()
+ streamChannel.onmessage = (res: ArrayBuffer | number[]) => {
+ // close early if aborted
+ if (signal?.aborted) {
+ controller.error(ERROR_REQUEST_CANCELLED)
+ return
+ }
+
+ const resUint8 = new Uint8Array(res)
+ const lastByte = resUint8[resUint8.byteLength - 1]
+ const actualRes = resUint8.slice(0, resUint8.byteLength - 1)
+
+ // close when the signal to close (last byte is 1) is sent from the IPC.
+ if (lastByte == 1) {
+ controller.close()
+ return
+ }
+
+ controller.enqueue(actualRes)
+ }
- const res = new Response(
- body instanceof ArrayBuffer && body.byteLength !== 0
- ? body
- : body instanceof Array && body.length > 0
- ? new Uint8Array(body)
- : null,
- {
- status,
- statusText
+ // run a non-blocking body stream fetch
+ invoke('plugin:http|fetch_read_body', {
+ rid: responseRid,
+ streamChannel
+ }).catch((e) => {
+ controller.error(e)
+ })
}
- )
+ })
+
+ const res = new Response(readableStreamBody, {
+ status,
+ statusText
+ })
- // url and headers are read only properties
- // but seems like we can set them like this
+ // Set `Response` properties that are ignored by the
+ // constructor, like url and some headers
//
- // we define theme like this, because using `Response`
- // constructor, it removes url and some headers
- // like `set-cookie` headers
+ // Since url and headers are read only properties
+ // this is the only way to set them.
Object.defineProperty(res, 'url', { value: url })
Object.defineProperty(res, 'headers', {
value: new Headers(responseHeaders)
diff --git a/plugins/http/package.json b/plugins/http/package.json
index 02ea80bf..3cd87295 100644
--- a/plugins/http/package.json
+++ b/plugins/http/package.json
@@ -1,6 +1,6 @@
{
"name": "@tauri-apps/plugin-http",
- "version": "2.3.0",
+ "version": "2.4.2",
"license": "MIT OR Apache-2.0",
"authors": [
"Tauri Programme within The Commons Conservancy"
diff --git a/plugins/http/permissions/schemas/schema.json b/plugins/http/permissions/schemas/schema.json
index 794ee204..9b6ce6dd 100644
--- a/plugins/http/permissions/schemas/schema.json
+++ b/plugins/http/permissions/schemas/schema.json
@@ -49,7 +49,7 @@
"minimum": 1.0
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
@@ -111,7 +111,7 @@
"type": "string"
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri internal convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri internal convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
diff --git a/plugins/http/src/commands.rs b/plugins/http/src/commands.rs
index 3dc0297e..bb47444e 100644
--- a/plugins/http/src/commands.rs
+++ b/plugins/http/src/commands.rs
@@ -10,7 +10,7 @@ use serde::{Deserialize, Serialize};
use tauri::{
async_runtime::Mutex,
command,
- ipc::{CommandScope, GlobalScope},
+ ipc::{Channel, CommandScope, GlobalScope},
Manager, ResourceId, ResourceTable, Runtime, State, Webview,
};
use tokio::sync::oneshot::{channel, Receiver, Sender};
@@ -315,6 +315,7 @@ pub async fn fetch(
tracing::trace!("{:?}", request);
let fut = async move { request.send().await.map_err(Into::into) };
+
let mut resources_table = webview.resources_table();
let rid = resources_table.add_request(Box::pin(fut));
@@ -358,7 +359,7 @@ pub fn fetch_cancel(webview: Webview, rid: ResourceId) -> crate::
Ok(())
}
-#[tauri::command]
+#[command]
pub async fn fetch_send(
webview: Webview,
rid: ResourceId,
@@ -410,17 +411,31 @@ pub async fn fetch_send(
})
}
-#[tauri::command]
-pub(crate) async fn fetch_read_body(
+#[command]
+pub async fn fetch_read_body(
webview: Webview,
rid: ResourceId,
-) -> crate::Result {
+ stream_channel: Channel,
+) -> crate::Result<()> {
let res = {
let mut resources_table = webview.resources_table();
resources_table.take::(rid)?
};
- let res = Arc::into_inner(res).unwrap().0;
- Ok(tauri::ipc::Response::new(res.bytes().await?.to_vec()))
+
+ let mut res = Arc::into_inner(res).unwrap().0;
+
+ // send response through IPC channel
+ while let Some(chunk) = res.chunk().await? {
+ let mut chunk = chunk.to_vec();
+ // append 0 to indicate we are not done yet
+ chunk.push(0);
+ stream_channel.send(tauri::ipc::InvokeResponseBody::Raw(chunk))?;
+ }
+
+ // send 1 to indicate we are done
+ stream_channel.send(tauri::ipc::InvokeResponseBody::Raw(vec![1]))?;
+
+ Ok(())
}
// forbidden headers per fetch spec https://fetch.spec.whatwg.org/#terminology-headers
diff --git a/plugins/http/src/lib.rs b/plugins/http/src/lib.rs
index d775760c..5acc2b47 100644
--- a/plugins/http/src/lib.rs
+++ b/plugins/http/src/lib.rs
@@ -14,30 +14,77 @@ pub use error::{Error, Result};
mod commands;
mod error;
+#[cfg(feature = "cookies")]
+mod reqwest_cookie_store;
mod scope;
+#[cfg(feature = "cookies")]
+const COOKIES_FILENAME: &str = ".cookies";
+
pub(crate) struct Http {
#[cfg(feature = "cookies")]
- cookies_jar: std::sync::Arc,
+ cookies_jar: std::sync::Arc,
}
pub fn init() -> TauriPlugin {
Builder::::new("http")
.setup(|app, _| {
+ #[cfg(feature = "cookies")]
+ let cookies_jar = {
+ use crate::reqwest_cookie_store::*;
+ use std::fs::File;
+ use std::io::BufReader;
+
+ let cache_dir = app.path().app_cache_dir()?;
+ std::fs::create_dir_all(&cache_dir)?;
+
+ let path = cache_dir.join(COOKIES_FILENAME);
+ let file = File::options()
+ .create(true)
+ .append(true)
+ .read(true)
+ .open(&path)?;
+
+ let reader = BufReader::new(file);
+ CookieStoreMutex::load(path.clone(), reader).unwrap_or_else(|_e| {
+ #[cfg(feature = "tracing")]
+ tracing::warn!(
+ "failed to load cookie store: {_e}, falling back to empty store"
+ );
+ CookieStoreMutex::new(path, Default::default())
+ })
+ };
+
let state = Http {
#[cfg(feature = "cookies")]
- cookies_jar: std::sync::Arc::new(reqwest::cookie::Jar::default()),
+ cookies_jar: std::sync::Arc::new(cookies_jar),
};
app.manage(state);
Ok(())
})
+ .on_event(|app, event| {
+ #[cfg(feature = "cookies")]
+ if let tauri::RunEvent::Exit = event {
+ let state = app.state::();
+
+ match state.cookies_jar.request_save() {
+ Ok(rx) => {
+ let _ = rx.recv();
+ }
+ Err(_e) => {
+ #[cfg(feature = "tracing")]
+ tracing::error!("failed to save cookie jar: {_e}");
+ }
+ }
+ }
+ })
.invoke_handler(tauri::generate_handler![
commands::fetch,
commands::fetch_cancel,
commands::fetch_send,
- commands::fetch_read_body,
+ commands::fetch_read_body
])
.build()
}
diff --git a/plugins/http/src/reqwest_cookie_store.rs b/plugins/http/src/reqwest_cookie_store.rs
new file mode 100644
index 00000000..6a7c0186
--- /dev/null
+++ b/plugins/http/src/reqwest_cookie_store.rs
@@ -0,0 +1,133 @@
+// Copyright 2019-2023 Tauri Programme within The Commons Conservancy
+// SPDX-License-Identifier: Apache-2.0
+// SPDX-License-Identifier: MIT
+
+// taken from https://github.com/pfernie/reqwest_cookie_store/blob/2ec4afabcd55e24d3afe3f0626ee6dc97bed938d/src/lib.rs
+
+use std::{
+ path::PathBuf,
+ sync::{mpsc::Receiver, Mutex},
+};
+
+use cookie_store::{CookieStore, RawCookie, RawCookieParseError};
+use reqwest::header::HeaderValue;
+
+fn set_cookies(
+ cookie_store: &mut CookieStore,
+ cookie_headers: &mut dyn Iterator- ,
+ url: &url::Url,
+) {
+ let cookies = cookie_headers.filter_map(|val| {
+ std::str::from_utf8(val.as_bytes())
+ .map_err(RawCookieParseError::from)
+ .and_then(RawCookie::parse)
+ .map(|c| c.into_owned())
+ .ok()
+ });
+ cookie_store.store_response_cookies(cookies, url);
+}
+
+fn cookies(cookie_store: &CookieStore, url: &url::Url) -> Option
{
+ let s = cookie_store
+ .get_request_values(url)
+ .map(|(name, value)| format!("{}={}", name, value))
+ .collect::>()
+ .join("; ");
+
+ if s.is_empty() {
+ return None;
+ }
+
+ HeaderValue::from_maybe_shared(bytes::Bytes::from(s)).ok()
+}
+
+/// A [`cookie_store::CookieStore`] wrapped internally by a [`std::sync::Mutex`], suitable for use in
+/// async/concurrent contexts.
+#[derive(Debug)]
+pub struct CookieStoreMutex {
+ pub path: PathBuf,
+ store: Mutex,
+ save_task: Mutex>,
+}
+
+impl CookieStoreMutex {
+ /// Create a new [`CookieStoreMutex`] from an existing [`cookie_store::CookieStore`].
+ pub fn new(path: PathBuf, cookie_store: CookieStore) -> CookieStoreMutex {
+ CookieStoreMutex {
+ path,
+ store: Mutex::new(cookie_store),
+ save_task: Default::default(),
+ }
+ }
+
+ pub fn load(
+ path: PathBuf,
+ reader: R,
+ ) -> cookie_store::Result {
+ cookie_store::serde::load(reader, |c| serde_json::from_str(c))
+ .map(|store| CookieStoreMutex::new(path, store))
+ }
+
+ fn cookies_to_str(&self) -> Result {
+ let mut cookies = Vec::new();
+ for cookie in self
+ .store
+ .lock()
+ .expect("poisoned cookie jar mutex")
+ .iter_unexpired()
+ {
+ if cookie.is_persistent() {
+ cookies.push(cookie.clone());
+ }
+ }
+ serde_json::to_string(&cookies)
+ }
+
+ pub fn request_save(&self) -> cookie_store::Result> {
+ let cookie_str = self.cookies_to_str()?;
+ let path = self.path.clone();
+ let (tx, rx) = std::sync::mpsc::channel();
+ let task = tauri::async_runtime::spawn(async move {
+ match tokio::fs::write(&path, &cookie_str).await {
+ Ok(()) => {
+ let _ = tx.send(());
+ }
+ Err(_e) => {
+ #[cfg(feature = "tracing")]
+ tracing::error!("failed to save cookie jar: {_e}");
+ }
+ }
+ });
+ self.save_task
+ .lock()
+ .unwrap()
+ .replace(CancellableTask(task));
+ Ok(rx)
+ }
+}
+
+impl reqwest::cookie::CookieStore for CookieStoreMutex {
+ fn set_cookies(&self, cookie_headers: &mut dyn Iterator- , url: &url::Url) {
+ set_cookies(&mut self.store.lock().unwrap(), cookie_headers, url);
+
+ // try to persist cookies immediately asynchronously
+ if let Err(_e) = self.request_save() {
+ #[cfg(feature = "tracing")]
+ tracing::error!("failed to save cookie jar: {_e}");
+ }
+ }
+
+ fn cookies(&self, url: &url::Url) -> Option
{
+ let store = self.store.lock().unwrap();
+ cookies(&store, url)
+ }
+}
+
+#[derive(Debug)]
+struct CancellableTask(tauri::async_runtime::JoinHandle<()>);
+
+impl Drop for CancellableTask {
+ fn drop(&mut self) {
+ self.0.abort();
+ }
+}
diff --git a/plugins/log/CHANGELOG.md b/plugins/log/CHANGELOG.md
index 54fda54d..98869ea1 100644
--- a/plugins/log/CHANGELOG.md
+++ b/plugins/log/CHANGELOG.md
@@ -1,5 +1,19 @@
# Changelog
+## \[2.3.1]
+
+- [`1bb1ced5`](https://github.com/tauri-apps/plugins-workspace/commit/1bb1ced53820127204aa7adf57510c1cbce55e12) ([#2524](https://github.com/tauri-apps/plugins-workspace/pull/2524) by [@elwerene](https://github.com/tauri-apps/plugins-workspace/../../elwerene)) enable TargetKind::LogDir on mobile
+
+## \[2.3.0]
+
+### feat
+
+- [`02481501`](https://github.com/tauri-apps/plugins-workspace/commit/024815018fbc63a37afc716796a454925aa7d25e) ([#2377](https://github.com/tauri-apps/plugins-workspace/pull/2377) by [@3lpsy](https://github.com/tauri-apps/plugins-workspace/../../3lpsy)) Add a `is_skip_logger` flag to the Log Plugin `Builder` struct, a `skip_logger()` method to the Builder, and logic to avoid acquiring (creating) a logger and attaching it to the global logger. Since acquire_logger is pub, a `LoggerNotInitialized` is added and returned if it's called when the `is_skip_looger` flag is set. Overall, this feature permits a user to avoid calling `attach_logger` which can only be called once in a program's lifetime and allows the user to control the logger returned from `logger()`. Additionally, it also will allow users to generate multiple Tauri Mock apps in test suites that run and parallel and have the `log` plugin attached (assuming they use `skip_logger()`).
+
+## \[2.2.3]
+
+- [`1a984659`](https://github.com/tauri-apps/plugins-workspace/commit/1a9846599b6a71faf330845847a30f6bf9735898) ([#2469](https://github.com/tauri-apps/plugins-workspace/pull/2469) by [@FabianLars](https://github.com/tauri-apps/plugins-workspace/../../FabianLars)) Update `objc2` crate to 0.6. No user facing changes.
+
## \[2.2.2]
- [`6b4c3917`](https://github.com/tauri-apps/plugins-workspace/commit/6b4c3917389f4bc489d03b48a837557ac0584175) ([#2401](https://github.com/tauri-apps/plugins-workspace/pull/2401) by [@Seishiin](https://github.com/tauri-apps/plugins-workspace/../../Seishiin)) Fix timezone_strategy overwriting previously set LogLevels.
diff --git a/plugins/log/Cargo.toml b/plugins/log/Cargo.toml
index e1cec499..a3b8b290 100644
--- a/plugins/log/Cargo.toml
+++ b/plugins/log/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "tauri-plugin-log"
-version = "2.2.2"
+version = "2.3.1"
description = "Configurable logging for your Tauri app."
authors = { workspace = true }
license = { workspace = true }
@@ -35,12 +35,12 @@ time = { version = "0.3", features = ["formatting", "local-offset"] }
fern = "0.7"
[target."cfg(target_os = \"android\")".dependencies]
-android_logger = "0.14"
+android_logger = "0.15"
[target."cfg(target_os = \"ios\")".dependencies]
swift-rs = "1"
-objc2 = "0.5"
-objc2-foundation = { version = "0.2", default-features = false, features = [
+objc2 = "0.6"
+objc2-foundation = { version = "0.3", default-features = false, features = [
"std",
"NSString",
] }
diff --git a/plugins/log/package.json b/plugins/log/package.json
index a71b8ea9..290ab097 100644
--- a/plugins/log/package.json
+++ b/plugins/log/package.json
@@ -1,6 +1,6 @@
{
"name": "@tauri-apps/plugin-log",
- "version": "2.2.2",
+ "version": "2.3.1",
"description": "Configurable logging for your Tauri app.",
"license": "MIT OR Apache-2.0",
"authors": [
diff --git a/plugins/log/permissions/schemas/schema.json b/plugins/log/permissions/schemas/schema.json
index 78d88826..547d1fd8 100644
--- a/plugins/log/permissions/schemas/schema.json
+++ b/plugins/log/permissions/schemas/schema.json
@@ -49,7 +49,7 @@
"minimum": 1.0
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
@@ -111,7 +111,7 @@
"type": "string"
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri internal convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri internal convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
diff --git a/plugins/log/src/lib.rs b/plugins/log/src/lib.rs
index 7cb4a526..9bf784c7 100644
--- a/plugins/log/src/lib.rs
+++ b/plugins/log/src/lib.rs
@@ -159,11 +159,12 @@ pub enum TargetKind {
///
/// ### Platform-specific
///
- /// |Platform | Value | Example |
- /// | ------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------- |
- /// | Linux | `$XDG_DATA_HOME/{bundleIdentifier}/logs` or `$HOME/.local/share/{bundleIdentifier}/logs` | `/home/alice/.local/share/com.tauri.dev/logs` |
- /// | macOS | `{homeDir}/Library/Logs/{bundleIdentifier}` | `/Users/Alice/Library/Logs/com.tauri.dev` |
- /// | Windows | `{FOLDERID_LocalAppData}/{bundleIdentifier}/logs` | `C:\Users\Alice\AppData\Local\com.tauri.dev\logs` |
+ /// |Platform | Value | Example |
+ /// | --------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------- |
+ /// | Linux | `$XDG_DATA_HOME/{bundleIdentifier}/logs` or `$HOME/.local/share/{bundleIdentifier}/logs` | `/home/alice/.local/share/com.tauri.dev/logs` |
+ /// | macOS/iOS | `{homeDir}/Library/Logs/{bundleIdentifier}` | `/Users/Alice/Library/Logs/com.tauri.dev` |
+ /// | Windows | `{FOLDERID_LocalAppData}/{bundleIdentifier}/logs` | `C:\Users\Alice\AppData\Local\com.tauri.dev\logs` |
+ /// | Android | `{ConfigDir}/logs` | `/data/data/com.tauri.dev/files/logs` |
LogDir { file_name: Option },
/// Forward logs to the webview (via the `log://log` event).
///
@@ -451,9 +452,6 @@ impl Builder {
)?)?
.into()
}
- #[cfg(mobile)]
- TargetKind::LogDir { .. } => continue,
- #[cfg(desktop)]
TargetKind::LogDir { file_name } => {
let path = app_handle.path().app_log_dir()?;
if !path.exists() {
diff --git a/plugins/nfc/permissions/schemas/schema.json b/plugins/nfc/permissions/schemas/schema.json
index 5fe3743c..69b4eb23 100644
--- a/plugins/nfc/permissions/schemas/schema.json
+++ b/plugins/nfc/permissions/schemas/schema.json
@@ -49,7 +49,7 @@
"minimum": 1.0
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
@@ -111,7 +111,7 @@
"type": "string"
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri internal convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri internal convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
diff --git a/plugins/notification/CHANGELOG.md b/plugins/notification/CHANGELOG.md
index 89eca864..42efb6ab 100644
--- a/plugins/notification/CHANGELOG.md
+++ b/plugins/notification/CHANGELOG.md
@@ -1,5 +1,9 @@
# Changelog
+## \[2.2.2]
+
+- [`a1b3fa27`](https://github.com/tauri-apps/plugins-workspace/commit/a1b3fa27f11022c9b6622b4fab12d93239eb05de) ([#2515](https://github.com/tauri-apps/plugins-workspace/pull/2515) by [@FabianLars](https://github.com/tauri-apps/plugins-workspace/../../FabianLars)) Re-exported the `Geolocation`, `Haptics`, `Notification`, and `Os` structs so that they show up on docs.rs.
+
## \[2.2.1]
- [`da5c59e2`](https://github.com/tauri-apps/plugins-workspace/commit/da5c59e2fe879d177e3cfd52fcacce85440423cb) ([#2271](https://github.com/tauri-apps/plugins-workspace/pull/2271) by [@renovate](https://github.com/tauri-apps/plugins-workspace/../../renovate)) Updated `zbus` dependency to version 5. No API changes.
diff --git a/plugins/notification/Cargo.toml b/plugins/notification/Cargo.toml
index edafe32e..bca17c09 100644
--- a/plugins/notification/Cargo.toml
+++ b/plugins/notification/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "tauri-plugin-notification"
-version = "2.2.1"
+version = "2.2.2"
description = "Send desktop and mobile notifications on your Tauri application."
edition = { workspace = true }
authors = { workspace = true }
diff --git a/plugins/notification/package.json b/plugins/notification/package.json
index 931af392..07c04d5c 100644
--- a/plugins/notification/package.json
+++ b/plugins/notification/package.json
@@ -1,6 +1,6 @@
{
"name": "@tauri-apps/plugin-notification",
- "version": "2.2.1",
+ "version": "2.2.2",
"license": "MIT OR Apache-2.0",
"authors": [
"Tauri Programme within The Commons Conservancy"
diff --git a/plugins/notification/permissions/schemas/schema.json b/plugins/notification/permissions/schemas/schema.json
index 433f367f..4c50cde6 100644
--- a/plugins/notification/permissions/schemas/schema.json
+++ b/plugins/notification/permissions/schemas/schema.json
@@ -49,7 +49,7 @@
"minimum": 1.0
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
@@ -111,7 +111,7 @@
"type": "string"
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri internal convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri internal convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
diff --git a/plugins/notification/src/desktop.rs b/plugins/notification/src/desktop.rs
index 092b8892..47279225 100644
--- a/plugins/notification/src/desktop.rs
+++ b/plugins/notification/src/desktop.rs
@@ -18,6 +18,8 @@ pub fn init(
}
/// Access to the notification APIs.
+///
+/// You can get an instance of this type via [`NotificationExt`](crate::NotificationExt)
pub struct Notification(AppHandle);
impl crate::NotificationBuilder {
diff --git a/plugins/notification/src/lib.rs b/plugins/notification/src/lib.rs
index 5cc30319..9ca33d63 100644
--- a/plugins/notification/src/lib.rs
+++ b/plugins/notification/src/lib.rs
@@ -34,9 +34,9 @@ mod models;
pub use error::{Error, Result};
#[cfg(desktop)]
-use desktop::Notification;
+pub use desktop::Notification;
#[cfg(mobile)]
-use mobile::Notification;
+pub use mobile::Notification;
/// The notification builder.
#[derive(Debug)]
@@ -120,7 +120,7 @@ impl NotificationBuilder {
/// Identifier used to group multiple notifications.
///
- /// https://developer.apple.com/documentation/usernotifications/unmutablenotificationcontent/1649872-threadidentifier
+ ///
pub fn group(mut self, group: impl Into) -> Self {
self.data.group.replace(group.into());
self
diff --git a/plugins/notification/src/mobile.rs b/plugins/notification/src/mobile.rs
index 9167dcc1..edfef728 100644
--- a/plugins/notification/src/mobile.rs
+++ b/plugins/notification/src/mobile.rs
@@ -40,6 +40,8 @@ impl crate::NotificationBuilder {
}
/// Access to the notification APIs.
+///
+/// You can get an instance of this type via [`NotificationExt`](crate::NotificationExt)
pub struct Notification(PluginHandle);
impl Notification {
diff --git a/plugins/opener/CHANGELOG.md b/plugins/opener/CHANGELOG.md
index ff9a9cb5..67fa0a65 100644
--- a/plugins/opener/CHANGELOG.md
+++ b/plugins/opener/CHANGELOG.md
@@ -1,5 +1,10 @@
# Changelog
+## \[2.2.6]
+
+- [`1a984659`](https://github.com/tauri-apps/plugins-workspace/commit/1a9846599b6a71faf330845847a30f6bf9735898) ([#2469](https://github.com/tauri-apps/plugins-workspace/pull/2469) by [@FabianLars](https://github.com/tauri-apps/plugins-workspace/../../FabianLars)) Update `objc2` crate to 0.6. No user facing changes.
+- [`71f95c9f`](https://github.com/tauri-apps/plugins-workspace/commit/71f95c9f05b29cf1be586849614c0b007757c15d) ([#2445](https://github.com/tauri-apps/plugins-workspace/pull/2445) by [@renovate](https://github.com/tauri-apps/plugins-workspace/../../renovate)) Updated `windows` crate to 0.60 to match Tauri 2.3.0. No user facing changes.
+
## \[2.2.5]
- [`5b821181`](https://github.com/tauri-apps/plugins-workspace/commit/5b8211815825ddae2dcc0c00520e0cfdff002763) ([#2332](https://github.com/tauri-apps/plugins-workspace/pull/2332) by [@betamos](https://github.com/tauri-apps/plugins-workspace/../../betamos)) Fix broken JS commands `opener.openPath` and `opener.openUrl` on mobile.
diff --git a/plugins/opener/Cargo.toml b/plugins/opener/Cargo.toml
index 044d2796..a8a847d1 100644
--- a/plugins/opener/Cargo.toml
+++ b/plugins/opener/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "tauri-plugin-opener"
-version = "2.2.5"
+version = "2.2.6"
description = "Open files and URLs using their default application."
edition = { workspace = true }
authors = { workspace = true }
@@ -40,7 +40,7 @@ glob = { workspace = true }
dunce = { workspace = true }
[target."cfg(windows)".dependencies.windows]
-version = "0.58"
+version = "0.60"
features = [
"Win32_Foundation",
"Win32_UI_Shell_Common",
@@ -54,12 +54,12 @@ zbus = { workspace = true }
url = { workspace = true }
[target."cfg(target_os = \"macos\")".dependencies.objc2-app-kit]
-version = "0.2"
+version = "0.3"
default-features = false
features = ["std", "NSWorkspace"]
[target."cfg(target_os = \"macos\")".dependencies.objc2-foundation]
-version = "0.2"
+version = "0.3"
default-features = false
features = ["std", "NSURL", "NSArray", "NSString"]
diff --git a/plugins/opener/package.json b/plugins/opener/package.json
index a7a1b3d2..9d828d44 100644
--- a/plugins/opener/package.json
+++ b/plugins/opener/package.json
@@ -1,6 +1,6 @@
{
"name": "@tauri-apps/plugin-opener",
- "version": "2.2.5",
+ "version": "2.2.6",
"description": "Open files and URLs using their default application.",
"license": "MIT OR Apache-2.0",
"authors": [
diff --git a/plugins/opener/permissions/schemas/schema.json b/plugins/opener/permissions/schemas/schema.json
index b958ac63..4f289a93 100644
--- a/plugins/opener/permissions/schemas/schema.json
+++ b/plugins/opener/permissions/schemas/schema.json
@@ -49,7 +49,7 @@
"minimum": 1.0
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
@@ -111,7 +111,7 @@
"type": "string"
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri internal convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri internal convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
diff --git a/plugins/opener/src/lib.rs b/plugins/opener/src/lib.rs
index 1cb78b86..9934b0fc 100644
--- a/plugins/opener/src/lib.rs
+++ b/plugins/opener/src/lib.rs
@@ -56,7 +56,7 @@ impl Opener {
/// - **Android / iOS**: Always opens using default program.
#[cfg(desktop)]
pub fn open_url(&self, url: impl Into, with: Option>) -> Result<()> {
- crate::open::open(url.into(), with.map(Into::into)).map_err(Into::into)
+ crate::open::open(url.into(), with.map(Into::into))
}
/// Open a url with a default or specific program.
@@ -108,7 +108,7 @@ impl Opener {
path: impl Into,
with: Option>,
) -> Result<()> {
- crate::open::open(path.into(), with.map(Into::into)).map_err(Into::into)
+ crate::open::open(path.into(), with.map(Into::into))
}
/// Open a path with a default or specific program.
diff --git a/plugins/opener/src/reveal_item_in_dir.rs b/plugins/opener/src/reveal_item_in_dir.rs
index 6d7b9268..6e3dfc2c 100644
--- a/plugins/opener/src/reveal_item_in_dir.rs
+++ b/plugins/opener/src/reveal_item_in_dir.rs
@@ -185,7 +185,7 @@ mod imp {
let path = path.to_string_lossy();
let path = NSString::from_str(&path);
let urls = vec![NSURL::fileURLWithPath(&path)];
- let urls = NSArray::from_vec(urls);
+ let urls = NSArray::from_retained_slice(&urls);
let workspace = NSWorkspace::new();
workspace.activateFileViewerSelectingURLs(&urls);
diff --git a/plugins/os/CHANGELOG.md b/plugins/os/CHANGELOG.md
index cc7fb604..415953e4 100644
--- a/plugins/os/CHANGELOG.md
+++ b/plugins/os/CHANGELOG.md
@@ -1,5 +1,9 @@
# Changelog
+## \[2.2.1]
+
+- [`a1b3fa27`](https://github.com/tauri-apps/plugins-workspace/commit/a1b3fa27f11022c9b6622b4fab12d93239eb05de) ([#2515](https://github.com/tauri-apps/plugins-workspace/pull/2515) by [@FabianLars](https://github.com/tauri-apps/plugins-workspace/../../FabianLars)) Re-exported the `Geolocation`, `Haptics`, `Notification`, and `Os` structs so that they show up on docs.rs.
+
## \[2.2.0]
- [`3a79266b`](https://github.com/tauri-apps/plugins-workspace/commit/3a79266b8cf96a55b1ae6339d725567d45a44b1d) ([#2173](https://github.com/tauri-apps/plugins-workspace/pull/2173) by [@FabianLars](https://github.com/tauri-apps/plugins-workspace/../../FabianLars)) Bumped all plugins to `v2.2.0`. From now, the versions for the Rust and JavaScript packages of each plugin will be in sync with each other.
diff --git a/plugins/os/Cargo.toml b/plugins/os/Cargo.toml
index 7af6dad3..424b7581 100644
--- a/plugins/os/Cargo.toml
+++ b/plugins/os/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "tauri-plugin-os"
-version = "2.2.0"
+version = "2.2.1"
description = "Read information about the operating system."
edition = { workspace = true }
authors = { workspace = true }
diff --git a/plugins/os/package.json b/plugins/os/package.json
index 95ae0ca9..840f5352 100644
--- a/plugins/os/package.json
+++ b/plugins/os/package.json
@@ -1,6 +1,6 @@
{
"name": "@tauri-apps/plugin-os",
- "version": "2.2.0",
+ "version": "2.2.1",
"license": "MIT OR Apache-2.0",
"authors": [
"Tauri Programme within The Commons Conservancy"
diff --git a/plugins/os/permissions/schemas/schema.json b/plugins/os/permissions/schemas/schema.json
index ad053532..ad3317c7 100644
--- a/plugins/os/permissions/schemas/schema.json
+++ b/plugins/os/permissions/schemas/schema.json
@@ -49,7 +49,7 @@
"minimum": 1.0
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
@@ -111,7 +111,7 @@
"type": "string"
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri internal convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri internal convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
diff --git a/plugins/os/src/lib.rs b/plugins/os/src/lib.rs
index c041c8ea..50ab89ee 100644
--- a/plugins/os/src/lib.rs
+++ b/plugins/os/src/lib.rs
@@ -88,7 +88,7 @@ pub fn exe_extension() -> &'static str {
std::env::consts::EXE_EXTENSION
}
-/// Returns the current operating system locale with the `BCP-47` language tag. If the locale couldn’t be obtained, `None` is returned instead.
+/// Returns the current operating system locale with the `BCP-47` language tag. If the locale couldn't be obtained, `None` is returned instead.
pub fn locale() -> Option {
sys_locale::get_locale()
}
diff --git a/plugins/positioner/permissions/schemas/schema.json b/plugins/positioner/permissions/schemas/schema.json
index ccf55156..4b1d9221 100644
--- a/plugins/positioner/permissions/schemas/schema.json
+++ b/plugins/positioner/permissions/schemas/schema.json
@@ -49,7 +49,7 @@
"minimum": 1.0
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
@@ -111,7 +111,7 @@
"type": "string"
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri internal convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri internal convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
diff --git a/plugins/process/permissions/schemas/schema.json b/plugins/process/permissions/schemas/schema.json
index 95f67149..1818871e 100644
--- a/plugins/process/permissions/schemas/schema.json
+++ b/plugins/process/permissions/schemas/schema.json
@@ -49,7 +49,7 @@
"minimum": 1.0
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
@@ -111,7 +111,7 @@
"type": "string"
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri internal convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri internal convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
diff --git a/plugins/shell/permissions/schemas/schema.json b/plugins/shell/permissions/schemas/schema.json
index e70c3926..ff343467 100644
--- a/plugins/shell/permissions/schemas/schema.json
+++ b/plugins/shell/permissions/schemas/schema.json
@@ -49,7 +49,7 @@
"minimum": 1.0
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
@@ -111,7 +111,7 @@
"type": "string"
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri internal convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri internal convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
diff --git a/plugins/shell/src/lib.rs b/plugins/shell/src/lib.rs
index 64cc6122..3dffc50b 100644
--- a/plugins/shell/src/lib.rs
+++ b/plugins/shell/src/lib.rs
@@ -75,7 +75,7 @@ impl Shell {
#[deprecated(since = "2.1.0", note = "Use tauri-plugin-opener instead.")]
#[allow(deprecated)]
pub fn open(&self, path: impl Into, with: Option) -> Result<()> {
- open::open(&self.open_scope, path.into(), with).map_err(Into::into)
+ open::open(&self.open_scope, path.into(), with)
}
/// Open a (url) path with a default or specific browser opening program.
diff --git a/plugins/single-instance/examples/vanilla/package.json b/plugins/single-instance/examples/vanilla/package.json
index 16342f03..2f174b21 100644
--- a/plugins/single-instance/examples/vanilla/package.json
+++ b/plugins/single-instance/examples/vanilla/package.json
@@ -9,6 +9,6 @@
"author": "",
"license": "MIT",
"devDependencies": {
- "@tauri-apps/cli": "2.2.7"
+ "@tauri-apps/cli": "2.4.0"
}
}
diff --git a/plugins/sql/permissions/schemas/schema.json b/plugins/sql/permissions/schemas/schema.json
index e3add537..241cf33c 100644
--- a/plugins/sql/permissions/schemas/schema.json
+++ b/plugins/sql/permissions/schemas/schema.json
@@ -49,7 +49,7 @@
"minimum": 1.0
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
@@ -111,7 +111,7 @@
"type": "string"
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri internal convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri internal convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
diff --git a/plugins/store/examples/AppSettingsManager/package.json b/plugins/store/examples/AppSettingsManager/package.json
index 1a009f15..bc07f8c5 100644
--- a/plugins/store/examples/AppSettingsManager/package.json
+++ b/plugins/store/examples/AppSettingsManager/package.json
@@ -8,8 +8,8 @@
"tauri": "tauri"
},
"devDependencies": {
- "@tauri-apps/cli": "2.2.7",
- "vite": "^6.0.0",
- "typescript": "^5.4.7"
+ "@tauri-apps/cli": "2.4.0",
+ "typescript": "^5.7.3",
+ "vite": "^6.2.0"
}
}
diff --git a/plugins/store/permissions/schemas/schema.json b/plugins/store/permissions/schemas/schema.json
index 4237bc62..d3cfc815 100644
--- a/plugins/store/permissions/schemas/schema.json
+++ b/plugins/store/permissions/schemas/schema.json
@@ -49,7 +49,7 @@
"minimum": 1.0
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
@@ -111,7 +111,7 @@
"type": "string"
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri internal convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri internal convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
diff --git a/plugins/stronghold/permissions/schemas/schema.json b/plugins/stronghold/permissions/schemas/schema.json
index 5657e9bb..c7781f1f 100644
--- a/plugins/stronghold/permissions/schemas/schema.json
+++ b/plugins/stronghold/permissions/schemas/schema.json
@@ -49,7 +49,7 @@
"minimum": 1.0
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
@@ -111,7 +111,7 @@
"type": "string"
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri internal convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri internal convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
diff --git a/plugins/updater/CHANGELOG.md b/plugins/updater/CHANGELOG.md
index 21f5260a..c196b04a 100644
--- a/plugins/updater/CHANGELOG.md
+++ b/plugins/updater/CHANGELOG.md
@@ -1,5 +1,14 @@
# Changelog
+## \[2.6.1]
+
+- [`12c4537b`](https://github.com/tauri-apps/plugins-workspace/commit/12c4537b8e4fed29b415ff817434b664c0596dac) ([#2541](https://github.com/tauri-apps/plugins-workspace/pull/2541) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Add support to the `riscv64` architecture.
+
+## \[2.6.0]
+
+- [`faefcc9f`](https://github.com/tauri-apps/plugins-workspace/commit/faefcc9fd8c61f709d491649e255a7fcac82c09a) ([#2430](https://github.com/tauri-apps/plugins-workspace/pull/2430) by [@goenning](https://github.com/tauri-apps/plugins-workspace/../../goenning)) Add `UpdaterBuilder::configure_client` method on Rust side, to configure the `reqwest` client used to check and download the update.
+- [`ac60d589`](https://github.com/tauri-apps/plugins-workspace/commit/ac60d589eca2bbc4aed040feb18da148e66ec171) ([#2513](https://github.com/tauri-apps/plugins-workspace/pull/2513) by [@lucasfernog](https://github.com/tauri-apps/plugins-workspace/../../lucasfernog)) Enhance error logging.
+
## \[2.5.1]
- [`6f881293`](https://github.com/tauri-apps/plugins-workspace/commit/6f881293fcd67838f6f3f8063f536292431dd1f7) ([#2439](https://github.com/tauri-apps/plugins-workspace/pull/2439) by [@FabianLars](https://github.com/tauri-apps/plugins-workspace/../../FabianLars)) Fixed an issue that caused the plugin to emit a `ReleaseNotFound` error instead of a `Reqwest` error when the http request in `check()` failed.
diff --git a/plugins/updater/Cargo.toml b/plugins/updater/Cargo.toml
index 4d462f31..322c4728 100644
--- a/plugins/updater/Cargo.toml
+++ b/plugins/updater/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "tauri-plugin-updater"
-version = "2.5.1"
+version = "2.6.1"
description = "In-app updates for Tauri applications."
edition = { workspace = true }
authors = { workspace = true }
@@ -30,6 +30,7 @@ tauri = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
thiserror = { workspace = true }
+log = { workspace = true }
tokio = "1"
reqwest = { version = "0.12", default-features = false, features = [
"json",
diff --git a/plugins/updater/README.md b/plugins/updater/README.md
index f1d91b1c..79fea467 100644
--- a/plugins/updater/README.md
+++ b/plugins/updater/README.md
@@ -76,7 +76,7 @@ Afterwards all the plugin's APIs are available through the JavaScript guest bind
import { check } from '@tauri-apps/plugin-updater'
import { relaunch } from '@tauri-apps/plugin-process'
const update = await check()
-if (update?.available) {
+if (update) {
await update.downloadAndInstall()
await relaunch()
}
diff --git a/plugins/updater/guest-js/index.ts b/plugins/updater/guest-js/index.ts
index dfaaff24..07625eea 100644
--- a/plugins/updater/guest-js/index.ts
+++ b/plugins/updater/guest-js/index.ts
@@ -133,7 +133,10 @@ async function check(options?: CheckOptions): Promise {
return await invoke('plugin:updater|check', {
...options
- }).then((meta) => (meta.available ? new Update(meta) : null))
+ }).then((meta) =>
+ // TODO: Handle this in the rust side
+ meta.available ? new Update(meta) : null
+ )
}
export type { CheckOptions, DownloadOptions, DownloadEvent }
diff --git a/plugins/updater/package.json b/plugins/updater/package.json
index 12c85302..a5147145 100644
--- a/plugins/updater/package.json
+++ b/plugins/updater/package.json
@@ -1,6 +1,6 @@
{
"name": "@tauri-apps/plugin-updater",
- "version": "2.5.1",
+ "version": "2.6.1",
"license": "MIT OR Apache-2.0",
"authors": [
"Tauri Programme within The Commons Conservancy"
diff --git a/plugins/updater/permissions/schemas/schema.json b/plugins/updater/permissions/schemas/schema.json
index 2df800da..8264f3e1 100644
--- a/plugins/updater/permissions/schemas/schema.json
+++ b/plugins/updater/permissions/schemas/schema.json
@@ -49,7 +49,7 @@
"minimum": 1.0
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
@@ -111,7 +111,7 @@
"type": "string"
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri internal convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri internal convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
diff --git a/plugins/updater/src/commands.rs b/plugins/updater/src/commands.rs
index eed3cd77..55d504bb 100644
--- a/plugins/updater/src/commands.rs
+++ b/plugins/updater/src/commands.rs
@@ -40,6 +40,8 @@ pub(crate) struct Metadata {
struct DownloadedBytes(pub Vec);
impl Resource for DownloadedBytes {}
+// TODO: Align this with the result of `updater.check` to Result>
+// and remove `available` instead of handling this in the js side
#[tauri::command]
pub(crate) async fn check(
webview: Webview,
diff --git a/plugins/updater/src/lib.rs b/plugins/updater/src/lib.rs
index 75b014bc..fb059e43 100644
--- a/plugins/updater/src/lib.rs
+++ b/plugins/updater/src/lib.rs
@@ -153,8 +153,7 @@ impl Builder {
I: IntoIterator- ,
S: Into
,
{
- let args = args.into_iter().map(|a| a.into()).collect::>();
- self.installer_args.extend_from_slice(&args);
+ self.installer_args.extend(args.into_iter().map(Into::into));
self
}
@@ -214,7 +213,7 @@ impl Builder {
config.pubkey = pubkey;
}
if let Some(windows) = &mut config.windows {
- windows.installer_args.extend_from_slice(&installer_args);
+ windows.installer_args.extend(installer_args);
}
app.manage(UpdaterState {
target,
diff --git a/plugins/updater/src/updater.rs b/plugins/updater/src/updater.rs
index a3e3cb3a..b59272e4 100644
--- a/plugins/updater/src/updater.rs
+++ b/plugins/updater/src/updater.rs
@@ -4,7 +4,7 @@
use std::{
collections::HashMap,
- ffi::{OsStr, OsString},
+ ffi::OsString,
io::Cursor,
path::{Path, PathBuf},
str::FromStr,
@@ -12,6 +12,9 @@ use std::{
time::Duration,
};
+#[cfg(not(target_os = "macos"))]
+use std::ffi::OsStr;
+
use base64::Engine;
use futures_util::StreamExt;
use http::HeaderName;
@@ -93,6 +96,7 @@ impl RemoteRelease {
}
pub type OnBeforeExit = Arc;
+pub type OnBeforeRequest = Arc ClientBuilder + Send + Sync + 'static>;
pub type VersionComparator = Arc bool + Send + Sync>;
type MainThreadClosure = Box;
type RunOnMainThread =
@@ -114,13 +118,13 @@ pub struct UpdaterBuilder {
installer_args: Vec,
current_exe_args: Vec,
on_before_exit: Option,
+ configure_client: Option,
}
impl UpdaterBuilder {
pub(crate) fn new(app: &AppHandle, config: crate::Config) -> Self {
let app_ = app.clone();
- let run_on_main_thread =
- move |f: Box| app_.run_on_main_thread(f);
+ let run_on_main_thread = move |f| app_.run_on_main_thread(f);
Self {
run_on_main_thread: Box::new(run_on_main_thread),
installer_args: config
@@ -140,6 +144,7 @@ impl UpdaterBuilder {
timeout: None,
proxy: None,
on_before_exit: None,
+ configure_client: None,
}
}
@@ -224,8 +229,7 @@ impl UpdaterBuilder {
I: IntoIterator- ,
S: Into
,
{
- let args = args.into_iter().map(|a| a.into()).collect::>();
- self.installer_args.extend_from_slice(&args);
+ self.installer_args.extend(args.into_iter().map(Into::into));
self
}
@@ -239,6 +243,19 @@ impl UpdaterBuilder {
self
}
+ /// Allows you to modify the `reqwest` client builder before the HTTP request is sent.
+ ///
+ /// Note that `reqwest` crate may be updated in minor releases of tauri-plugin-updater.
+ /// Therefore it's recommended to pin the plugin to at least a minor version when you're using `configure_client`.
+ ///
+ pub fn configure_client ClientBuilder + Send + Sync + 'static>(
+ mut self,
+ f: F,
+ ) -> Self {
+ self.configure_client.replace(Arc::new(f));
+ self
+ }
+
pub fn build(self) -> Result {
let endpoints = self
.endpoints
@@ -282,6 +299,7 @@ impl UpdaterBuilder {
headers: self.headers,
extract_path,
on_before_exit: self.on_before_exit,
+ configure_client: self.configure_client,
})
}
}
@@ -292,8 +310,7 @@ impl UpdaterBuilder {
I: IntoIterator- ,
S: Into
,
{
- let args = args.into_iter().map(|a| a.into()).collect::>();
- self.current_exe_args.extend_from_slice(&args);
+ self.installer_args.extend(args.into_iter().map(Into::into));
self
}
}
@@ -316,6 +333,7 @@ pub struct Updater {
headers: HeaderMap,
extract_path: PathBuf,
on_before_exit: Option,
+ configure_client: Option,
#[allow(unused)]
installer_args: Vec,
#[allow(unused)]
@@ -368,14 +386,22 @@ impl Updater {
.replace("{{arch}}", self.arch)
.parse()?;
+ log::debug!("checking for updates {url}");
+
let mut request = ClientBuilder::new().user_agent(UPDATER_USER_AGENT);
if let Some(timeout) = self.timeout {
request = request.timeout(timeout);
}
if let Some(ref proxy) = self.proxy {
+ log::debug!("using proxy {proxy}");
let proxy = reqwest::Proxy::all(proxy.as_str())?;
request = request.proxy(proxy);
}
+
+ if let Some(ref configure_client) = self.configure_client {
+ request = configure_client(request);
+ }
+
let response = request
.build()?
.get(url)
@@ -388,24 +414,38 @@ impl Updater {
if res.status().is_success() {
// no updates found!
if StatusCode::NO_CONTENT == res.status() {
+ log::debug!("update endpoint returned 204 No Content");
return Ok(None);
};
- raw_json = Some(res.json().await?);
- match serde_json::from_value::(raw_json.clone().unwrap())
+ let update_response: serde_json::Value = res.json().await?;
+ log::debug!("update response: {update_response:?}");
+ raw_json = Some(update_response.clone());
+ match serde_json::from_value::(update_response)
.map_err(Into::into)
{
Ok(release) => {
+ log::debug!("parsed release response {release:?}");
last_error = None;
remote_release = Some(release);
- // we found a relase, break the loop
+ // we found a release, break the loop
break;
}
- Err(err) => last_error = Some(err),
+ Err(err) => {
+ log::error!("failed to deserialize update response: {err}");
+ last_error = Some(err)
+ }
}
+ } else {
+ log::error!(
+ "update endpoint did not respond with a successful status code"
+ );
}
}
- Err(err) => last_error = Some(err.into()),
+ Err(err) => {
+ log::error!("failed to check for updates: {err}");
+ last_error = Some(err.into())
+ }
}
}
@@ -435,14 +475,15 @@ impl Updater {
version: release.version.to_string(),
date: release.pub_date,
download_url: release.download_url(&self.json_target)?.to_owned(),
- body: release.notes.clone(),
signature: release.signature(&self.json_target)?.to_owned(),
+ body: release.notes,
raw_json: raw_json.unwrap(),
- timeout: self.timeout,
+ timeout: None,
proxy: self.proxy.clone(),
headers: self.headers.clone(),
installer_args: self.installer_args.clone(),
current_exe_args: self.current_exe_args.clone(),
+ configure_client: self.configure_client.clone(),
})
} else {
None
@@ -491,6 +532,7 @@ pub struct Update {
installer_args: Vec,
#[allow(unused)]
current_exe_args: Vec,
+ configure_client: Option,
}
impl Resource for Update {}
@@ -519,6 +561,9 @@ impl Update {
let proxy = reqwest::Proxy::all(proxy.as_str())?;
request = request.proxy(proxy);
}
+ if let Some(ref configure_client) = self.configure_client {
+ request = configure_client(request);
+ }
let response = request
.build()?
.get(self.download_url.clone())
@@ -667,6 +712,7 @@ impl Update {
};
if let Some(on_before_exit) = self.on_before_exit.as_ref() {
+ log::debug!("running on_before_exit hook");
on_before_exit();
}
@@ -835,6 +881,7 @@ impl Update {
#[cfg(feature = "zip")]
if infer::archive::is_gz(bytes) {
+ log::debug!("extracting AppImage");
// extract the buffer to the tmp_dir
// we extract our signed archive into our final directory without any temp file
let archive = Cursor::new(bytes);
@@ -858,6 +905,7 @@ impl Update {
return Err(Error::BinaryNotFoundInArchive);
}
+ log::debug!("rewriting AppImage");
return match std::fs::write(&self.extract_path, bytes)
.and_then(|_| std::fs::set_permissions(&self.extract_path, permissions))
{
@@ -911,6 +959,7 @@ impl Update {
fn install_deb(&self, bytes: &[u8]) -> Result<()> {
// First verify the bytes are actually a .deb package
if !infer::archive::is_deb(bytes) {
+ log::warn!("update is not a valid deb package");
return Err(Error::InvalidUpdaterFormat);
}
@@ -953,6 +1002,7 @@ impl Update {
.status()
{
if status.success() {
+ log::debug!("installed deb with pkexec");
return Ok(());
}
}
@@ -960,6 +1010,7 @@ impl Update {
// 2. Try zenity or kdialog for a graphical sudo experience
if let Ok(password) = self.get_password_graphically() {
if self.install_with_sudo(deb_path, &password)? {
+ log::debug!("installed deb with GUI sudo");
return Ok(());
}
}
@@ -972,6 +1023,7 @@ impl Update {
.status()?;
if status.success() {
+ log::debug!("installed deb with sudo");
Ok(())
} else {
Err(Error::DebInstallFailed)
@@ -1095,6 +1147,7 @@ impl Update {
};
if need_authorization {
+ log::debug!("app installation needs admin privileges");
// 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",
@@ -1167,6 +1220,8 @@ pub(crate) fn get_updater_arch() -> Option<&'static str> {
Some("armv7")
} else if cfg!(target_arch = "aarch64") {
Some("aarch64")
+ } else if cfg!(target_arch = "riscv64") {
+ Some("riscv64")
} else {
None
}
diff --git a/plugins/updater/tests/app-updater/tests/update.rs b/plugins/updater/tests/app-updater/tests/update.rs
index 230ab376..d308b317 100644
--- a/plugins/updater/tests/app-updater/tests/update.rs
+++ b/plugins/updater/tests/app-updater/tests/update.rs
@@ -63,8 +63,6 @@ fn build_app(cwd: &Path, config: &Config, bundle_updater: bool, target: BundleTa
if bundle_updater {
#[cfg(windows)]
command.args(["--bundles", "msi", "nsis"]);
-
- command.args(["--bundles", "updater"]);
} else {
#[cfg(windows)]
command.args(["--bundles", target.name()]);
diff --git a/plugins/updater/tests/updater-migration/tests/update.rs b/plugins/updater/tests/updater-migration/tests/update.rs
index 56cb2d30..813da3c6 100644
--- a/plugins/updater/tests/updater-migration/tests/update.rs
+++ b/plugins/updater/tests/updater-migration/tests/update.rs
@@ -67,8 +67,6 @@ mod v1 {
if bundle_updater {
#[cfg(windows)]
command.args(["--bundles", "msi", "nsis"]);
-
- command.args(["--bundles", "updater"]);
} else {
#[cfg(windows)]
command.args(["--bundles", target.name()]);
@@ -173,8 +171,6 @@ mod v2 {
if bundle_updater {
#[cfg(windows)]
command.args(["--bundles", "msi", "nsis"]);
-
- command.args(["--bundles", "updater"]);
} else {
#[cfg(windows)]
command.args(["--bundles", target.name()]);
diff --git a/plugins/upload/permissions/schemas/schema.json b/plugins/upload/permissions/schemas/schema.json
index abe3a09f..1d8d9c4a 100644
--- a/plugins/upload/permissions/schemas/schema.json
+++ b/plugins/upload/permissions/schemas/schema.json
@@ -49,7 +49,7 @@
"minimum": 1.0
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
@@ -111,7 +111,7 @@
"type": "string"
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri internal convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri internal convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
diff --git a/plugins/websocket/examples/tauri-app/package.json b/plugins/websocket/examples/tauri-app/package.json
index d58d9b6c..00e38cd2 100644
--- a/plugins/websocket/examples/tauri-app/package.json
+++ b/plugins/websocket/examples/tauri-app/package.json
@@ -9,9 +9,9 @@
"preview": "vite preview"
},
"devDependencies": {
- "@tauri-apps/cli": "2.2.7",
- "typescript": "^5.3.3",
- "vite": "^6.0.0"
+ "@tauri-apps/cli": "2.4.0",
+ "typescript": "^5.7.3",
+ "vite": "^6.2.0"
},
"dependencies": {
"tauri-plugin-websocket-api": "link:..\\.."
diff --git a/plugins/websocket/permissions/schemas/schema.json b/plugins/websocket/permissions/schemas/schema.json
index 9f574650..989d0159 100644
--- a/plugins/websocket/permissions/schemas/schema.json
+++ b/plugins/websocket/permissions/schemas/schema.json
@@ -49,7 +49,7 @@
"minimum": 1.0
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
@@ -111,7 +111,7 @@
"type": "string"
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri internal convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri internal convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
diff --git a/plugins/window-state/api-iife.js b/plugins/window-state/api-iife.js
index da0bf905..e0082b5c 100644
--- a/plugins/window-state/api-iife.js
+++ b/plugins/window-state/api-iife.js
@@ -1 +1 @@
-if("__TAURI__"in window){var __TAURI_PLUGIN_WINDOW_STATE__=function(e){"use strict";var t;"function"==typeof SuppressedError&&SuppressedError;const i="__TAURI_TO_IPC_KEY__";function n(e,t=!1){return window.__TAURI_INTERNALS__.transformCallback(e,t)}async function a(e,t={},i){return window.__TAURI_INTERNALS__.invoke(e,t,i)}class l{get rid(){return function(e,t,i,n){if("function"==typeof t||!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?n:"a"===i?n.call(e):n?n.value:t.get(e)}(this,t,"f")}constructor(e){t.set(this,void 0),function(e,t,i){if("function"==typeof t||!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");t.set(e,i)}(this,t,e)}async close(){return a("plugin:resources|close",{rid:this.rid})}}t=new WeakMap;class s{constructor(...e){this.type="Logical",1===e.length?"Logical"in e[0]?(this.width=e[0].Logical.width,this.height=e[0].Logical.height):(this.width=e[0].width,this.height=e[0].height):(this.width=e[0],this.height=e[1])}toPhysical(e){return new r(this.width*e,this.height*e)}[i](){return{width:this.width,height:this.height}}toJSON(){return this[i]()}}class r{constructor(...e){this.type="Physical",1===e.length?"Physical"in e[0]?(this.width=e[0].Physical.width,this.height=e[0].Physical.height):(this.width=e[0].width,this.height=e[0].height):(this.width=e[0],this.height=e[1])}toLogical(e){return new s(this.width/e,this.height/e)}[i](){return{width:this.width,height:this.height}}toJSON(){return this[i]()}}class o{constructor(e){this.size=e}toLogical(e){return this.size instanceof s?this.size:this.size.toLogical(e)}toPhysical(e){return this.size instanceof r?this.size:this.size.toPhysical(e)}[i](){return{[`${this.size.type}`]:{width:this.size.width,height:this.size.height}}}toJSON(){return this[i]()}}class u{constructor(...e){this.type="Logical",1===e.length?"Logical"in e[0]?(this.x=e[0].Logical.x,this.y=e[0].Logical.y):(this.x=e[0].x,this.y=e[0].y):(this.x=e[0],this.y=e[1])}toPhysical(e){return new c(this.x*e,this.y*e)}[i](){return{x:this.x,y:this.y}}toJSON(){return this[i]()}}class c{constructor(...e){this.type="Physical",1===e.length?"Physical"in e[0]?(this.x=e[0].Physical.x,this.y=e[0].Physical.y):(this.x=e[0].x,this.y=e[0].y):(this.x=e[0],this.y=e[1])}toLogical(e){return new u(this.x/e,this.y/e)}[i](){return{x:this.x,y:this.y}}toJSON(){return this[i]()}}class h{constructor(e){this.position=e}toLogical(e){return this.position instanceof u?this.position:this.position.toLogical(e)}toPhysical(e){return this.position instanceof c?this.position:this.position.toPhysical(e)}[i](){return{[`${this.position.type}`]:{x:this.position.x,y:this.position.y}}}toJSON(){return this[i]()}}var d,w,b;async function g(e,t){await a("plugin:event|unlisten",{event:e,eventId:t})}async function y(e,t,i){var l;const s="string"==typeof(null==i?void 0:i.target)?{kind:"AnyLabel",label:i.target}:null!==(l=null==i?void 0:i.target)&&void 0!==l?l:{kind:"Any"};return a("plugin:event|listen",{event:e,target:s,handler:n(t)}).then((t=>async()=>g(e,t)))}!function(e){e.WINDOW_RESIZED="tauri://resize",e.WINDOW_MOVED="tauri://move",e.WINDOW_CLOSE_REQUESTED="tauri://close-requested",e.WINDOW_DESTROYED="tauri://destroyed",e.WINDOW_FOCUS="tauri://focus",e.WINDOW_BLUR="tauri://blur",e.WINDOW_SCALE_FACTOR_CHANGED="tauri://scale-change",e.WINDOW_THEME_CHANGED="tauri://theme-changed",e.WINDOW_CREATED="tauri://window-created",e.WEBVIEW_CREATED="tauri://webview-created",e.DRAG_ENTER="tauri://drag-enter",e.DRAG_OVER="tauri://drag-over",e.DRAG_DROP="tauri://drag-drop",e.DRAG_LEAVE="tauri://drag-leave"}(d||(d={}));class p extends l{constructor(e){super(e)}static async new(e,t,i){return a("plugin:image|new",{rgba:_(e),width:t,height:i}).then((e=>new p(e)))}static async fromBytes(e){return a("plugin:image|from_bytes",{bytes:_(e)}).then((e=>new p(e)))}static async fromPath(e){return a("plugin:image|from_path",{path:e}).then((e=>new p(e)))}async rgba(){return a("plugin:image|rgba",{rid:this.rid}).then((e=>new Uint8Array(e)))}async size(){return a("plugin:image|size",{rid:this.rid})}}function _(e){return null==e?null:"string"==typeof e?e:e instanceof p?e.rid:e}!function(e){e[e.Critical=1]="Critical",e[e.Informational=2]="Informational"}(w||(w={}));class v{constructor(e){this._preventDefault=!1,this.event=e.event,this.id=e.id}preventDefault(){this._preventDefault=!0}isPreventDefault(){return this._preventDefault}}function f(){return new D(window.__TAURI_INTERNALS__.metadata.currentWindow.label,{skip:!0})}async function m(){return a("plugin:window|get_all_windows").then((e=>e.map((e=>new D(e,{skip:!0})))))}!function(e){e.None="none",e.Normal="normal",e.Indeterminate="indeterminate",e.Paused="paused",e.Error="error"}(b||(b={}));const E=["tauri://created","tauri://error"];class D{constructor(e,t={}){var i;this.label=e,this.listeners=Object.create(null),(null==t?void 0:t.skip)||a("plugin:window|create",{options:{...t,parent:"string"==typeof t.parent?t.parent:null===(i=t.parent)||void 0===i?void 0:i.label,label:e}}).then((async()=>this.emit("tauri://created"))).catch((async e=>this.emit("tauri://error",e)))}static async getByLabel(e){var t;return null!==(t=(await m()).find((t=>t.label===e)))&&void 0!==t?t:null}static getCurrent(){return f()}static async getAll(){return m()}static async getFocusedWindow(){for(const e of await m())if(await e.isFocused())return e;return null}async listen(e,t){return this._handleTauriEvent(e,t)?()=>{const i=this.listeners[e];i.splice(i.indexOf(t),1)}:y(e,t,{target:{kind:"Window",label:this.label}})}async once(e,t){return this._handleTauriEvent(e,t)?()=>{const i=this.listeners[e];i.splice(i.indexOf(t),1)}:async function(e,t,i){return y(e,(i=>{g(e,i.id),t(i)}),i)}(e,t,{target:{kind:"Window",label:this.label}})}async emit(e,t){if(!E.includes(e))return async function(e,t){await a("plugin:event|emit",{event:e,payload:t})}(e,t);for(const i of this.listeners[e]||[])i({event:e,id:-1,payload:t})}async emitTo(e,t,i){if(!E.includes(t))return async function(e,t,i){const n="string"==typeof e?{kind:"AnyLabel",label:e}:e;await a("plugin:event|emit_to",{target:n,event:t,payload:i})}(e,t,i);for(const e of this.listeners[t]||[])e({event:t,id:-1,payload:i})}_handleTauriEvent(e,t){return!!E.includes(e)&&(e in this.listeners?this.listeners[e].push(t):this.listeners[e]=[t],!0)}async scaleFactor(){return a("plugin:window|scale_factor",{label:this.label})}async innerPosition(){return a("plugin:window|inner_position",{label:this.label}).then((e=>new c(e)))}async outerPosition(){return a("plugin:window|outer_position",{label:this.label}).then((e=>new c(e)))}async innerSize(){return a("plugin:window|inner_size",{label:this.label}).then((e=>new r(e)))}async outerSize(){return a("plugin:window|outer_size",{label:this.label}).then((e=>new r(e)))}async isFullscreen(){return a("plugin:window|is_fullscreen",{label:this.label})}async isMinimized(){return a("plugin:window|is_minimized",{label:this.label})}async isMaximized(){return a("plugin:window|is_maximized",{label:this.label})}async isFocused(){return a("plugin:window|is_focused",{label:this.label})}async isDecorated(){return a("plugin:window|is_decorated",{label:this.label})}async isResizable(){return a("plugin:window|is_resizable",{label:this.label})}async isMaximizable(){return a("plugin:window|is_maximizable",{label:this.label})}async isMinimizable(){return a("plugin:window|is_minimizable",{label:this.label})}async isClosable(){return a("plugin:window|is_closable",{label:this.label})}async isVisible(){return a("plugin:window|is_visible",{label:this.label})}async title(){return a("plugin:window|title",{label:this.label})}async theme(){return a("plugin:window|theme",{label:this.label})}async center(){return a("plugin:window|center",{label:this.label})}async requestUserAttention(e){let t=null;return e&&(t=e===w.Critical?{type:"Critical"}:{type:"Informational"}),a("plugin:window|request_user_attention",{label:this.label,value:t})}async setResizable(e){return a("plugin:window|set_resizable",{label:this.label,value:e})}async setEnabled(e){return a("plugin:window|set_enabled",{label:this.label,value:e})}async isEnabled(){return a("plugin:window|is_enabled",{label:this.label})}async setMaximizable(e){return a("plugin:window|set_maximizable",{label:this.label,value:e})}async setMinimizable(e){return a("plugin:window|set_minimizable",{label:this.label,value:e})}async setClosable(e){return a("plugin:window|set_closable",{label:this.label,value:e})}async setTitle(e){return a("plugin:window|set_title",{label:this.label,value:e})}async maximize(){return a("plugin:window|maximize",{label:this.label})}async unmaximize(){return a("plugin:window|unmaximize",{label:this.label})}async toggleMaximize(){return a("plugin:window|toggle_maximize",{label:this.label})}async minimize(){return a("plugin:window|minimize",{label:this.label})}async unminimize(){return a("plugin:window|unminimize",{label:this.label})}async show(){return a("plugin:window|show",{label:this.label})}async hide(){return a("plugin:window|hide",{label:this.label})}async close(){return a("plugin:window|close",{label:this.label})}async destroy(){return a("plugin:window|destroy",{label:this.label})}async setDecorations(e){return a("plugin:window|set_decorations",{label:this.label,value:e})}async setShadow(e){return a("plugin:window|set_shadow",{label:this.label,value:e})}async setEffects(e){return a("plugin:window|set_effects",{label:this.label,value:e})}async clearEffects(){return a("plugin:window|set_effects",{label:this.label,value:null})}async setAlwaysOnTop(e){return a("plugin:window|set_always_on_top",{label:this.label,value:e})}async setAlwaysOnBottom(e){return a("plugin:window|set_always_on_bottom",{label:this.label,value:e})}async setContentProtected(e){return a("plugin:window|set_content_protected",{label:this.label,value:e})}async setSize(e){return a("plugin:window|set_size",{label:this.label,value:e instanceof o?e:new o(e)})}async setMinSize(e){return a("plugin:window|set_min_size",{label:this.label,value:e instanceof o?e:e?new o(e):null})}async setMaxSize(e){return a("plugin:window|set_max_size",{label:this.label,value:e instanceof o?e:e?new o(e):null})}async setSizeConstraints(e){function t(e){return e?{Logical:e}:null}return a("plugin:window|set_size_constraints",{label:this.label,value:{minWidth:t(null==e?void 0:e.minWidth),minHeight:t(null==e?void 0:e.minHeight),maxWidth:t(null==e?void 0:e.maxWidth),maxHeight:t(null==e?void 0:e.maxHeight)}})}async setPosition(e){return a("plugin:window|set_position",{label:this.label,value:e instanceof h?e:new h(e)})}async setFullscreen(e){return a("plugin:window|set_fullscreen",{label:this.label,value:e})}async setFocus(){return a("plugin:window|set_focus",{label:this.label})}async setIcon(e){return a("plugin:window|set_icon",{label:this.label,value:_(e)})}async setSkipTaskbar(e){return a("plugin:window|set_skip_taskbar",{label:this.label,value:e})}async setCursorGrab(e){return a("plugin:window|set_cursor_grab",{label:this.label,value:e})}async setCursorVisible(e){return a("plugin:window|set_cursor_visible",{label:this.label,value:e})}async setCursorIcon(e){return a("plugin:window|set_cursor_icon",{label:this.label,value:e})}async setBackgroundColor(e){return a("plugin:window|set_background_color",{color:e})}async setCursorPosition(e){return a("plugin:window|set_cursor_position",{label:this.label,value:e instanceof h?e:new h(e)})}async setIgnoreCursorEvents(e){return a("plugin:window|set_ignore_cursor_events",{label:this.label,value:e})}async startDragging(){return a("plugin:window|start_dragging",{label:this.label})}async startResizeDragging(e){return a("plugin:window|start_resize_dragging",{label:this.label,value:e})}async setBadgeCount(e){return a("plugin:window|set_badge_count",{label:this.label,value:e})}async setBadgeLabel(e){return a("plugin:window|set_badge_label",{label:this.label,value:e})}async setOverlayIcon(e){return a("plugin:window|set_overlay_icon",{label:this.label,value:e?_(e):void 0})}async setProgressBar(e){return a("plugin:window|set_progress_bar",{label:this.label,value:e})}async setVisibleOnAllWorkspaces(e){return a("plugin:window|set_visible_on_all_workspaces",{label:this.label,value:e})}async setTitleBarStyle(e){return a("plugin:window|set_title_bar_style",{label:this.label,value:e})}async setTheme(e){return a("plugin:window|set_theme",{label:this.label,value:e})}async onResized(e){return this.listen(d.WINDOW_RESIZED,(t=>{t.payload=new r(t.payload),e(t)}))}async onMoved(e){return this.listen(d.WINDOW_MOVED,(t=>{t.payload=new c(t.payload),e(t)}))}async onCloseRequested(e){return this.listen(d.WINDOW_CLOSE_REQUESTED,(async t=>{const i=new v(t);await e(i),i.isPreventDefault()||await this.destroy()}))}async onDragDropEvent(e){const t=await this.listen(d.DRAG_ENTER,(t=>{e({...t,payload:{type:"enter",paths:t.payload.paths,position:new c(t.payload.position)}})})),i=await this.listen(d.DRAG_OVER,(t=>{e({...t,payload:{type:"over",position:new c(t.payload.position)}})})),n=await this.listen(d.DRAG_DROP,(t=>{e({...t,payload:{type:"drop",paths:t.payload.paths,position:new c(t.payload.position)}})})),a=await this.listen(d.DRAG_LEAVE,(t=>{e({...t,payload:{type:"leave"}})}));return()=>{t(),n(),i(),a()}}async onFocusChanged(e){const t=await this.listen(d.WINDOW_FOCUS,(t=>{e({...t,payload:!0})})),i=await this.listen(d.WINDOW_BLUR,(t=>{e({...t,payload:!1})}));return()=>{t(),i()}}async onScaleChanged(e){return this.listen(d.WINDOW_SCALE_FACTOR_CHANGED,e)}async onThemeChanged(e){return this.listen(d.WINDOW_THEME_CHANGED,e)}}var I,S,W;async function z(e,t){await a("plugin:window-state|restore_state",{label:e,flags:t})}return function(e){e.AppearanceBased="appearanceBased",e.Light="light",e.Dark="dark",e.MediumLight="mediumLight",e.UltraDark="ultraDark",e.Titlebar="titlebar",e.Selection="selection",e.Menu="menu",e.Popover="popover",e.Sidebar="sidebar",e.HeaderView="headerView",e.Sheet="sheet",e.WindowBackground="windowBackground",e.HudWindow="hudWindow",e.FullScreenUI="fullScreenUI",e.Tooltip="tooltip",e.ContentBackground="contentBackground",e.UnderWindowBackground="underWindowBackground",e.UnderPageBackground="underPageBackground",e.Mica="mica",e.Blur="blur",e.Acrylic="acrylic",e.Tabbed="tabbed",e.TabbedDark="tabbedDark",e.TabbedLight="tabbedLight"}(I||(I={})),function(e){e.FollowsWindowActiveState="followsWindowActiveState",e.Active="active",e.Inactive="inactive"}(S||(S={})),e.StateFlags=void 0,(W=e.StateFlags||(e.StateFlags={}))[W.SIZE=1]="SIZE",W[W.POSITION=2]="POSITION",W[W.MAXIMIZED=4]="MAXIMIZED",W[W.VISIBLE=8]="VISIBLE",W[W.DECORATIONS=16]="DECORATIONS",W[W.FULLSCREEN=32]="FULLSCREEN",W[W.ALL=63]="ALL",e.filename=async function(){return await a("plugin:window-state|filename")},e.restoreState=z,e.restoreStateCurrent=async function(e){await z(f().label,e)},e.saveWindowState=async function(e){await a("plugin:window-state|save_window_state",{flags:e})},e}({});Object.defineProperty(window.__TAURI__,"windowState",{value:__TAURI_PLUGIN_WINDOW_STATE__})}
+if("__TAURI__"in window){var __TAURI_PLUGIN_WINDOW_STATE__=function(e){"use strict";var t;"function"==typeof SuppressedError&&SuppressedError;const i="__TAURI_TO_IPC_KEY__";function n(e,t=!1){return window.__TAURI_INTERNALS__.transformCallback(e,t)}async function a(e,t={},i){return window.__TAURI_INTERNALS__.invoke(e,t,i)}class l{get rid(){return function(e,t,i,n){if("function"==typeof t||!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?n:"a"===i?n.call(e):n?n.value:t.get(e)}(this,t,"f")}constructor(e){t.set(this,void 0),function(e,t,i){if("function"==typeof t||!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");t.set(e,i)}(this,t,e)}async close(){return a("plugin:resources|close",{rid:this.rid})}}t=new WeakMap;class s{constructor(...e){this.type="Logical",1===e.length?"Logical"in e[0]?(this.width=e[0].Logical.width,this.height=e[0].Logical.height):(this.width=e[0].width,this.height=e[0].height):(this.width=e[0],this.height=e[1])}toPhysical(e){return new r(this.width*e,this.height*e)}[i](){return{width:this.width,height:this.height}}toJSON(){return this[i]()}}class r{constructor(...e){this.type="Physical",1===e.length?"Physical"in e[0]?(this.width=e[0].Physical.width,this.height=e[0].Physical.height):(this.width=e[0].width,this.height=e[0].height):(this.width=e[0],this.height=e[1])}toLogical(e){return new s(this.width/e,this.height/e)}[i](){return{width:this.width,height:this.height}}toJSON(){return this[i]()}}class o{constructor(e){this.size=e}toLogical(e){return this.size instanceof s?this.size:this.size.toLogical(e)}toPhysical(e){return this.size instanceof r?this.size:this.size.toPhysical(e)}[i](){return{[`${this.size.type}`]:{width:this.size.width,height:this.size.height}}}toJSON(){return this[i]()}}class u{constructor(...e){this.type="Logical",1===e.length?"Logical"in e[0]?(this.x=e[0].Logical.x,this.y=e[0].Logical.y):(this.x=e[0].x,this.y=e[0].y):(this.x=e[0],this.y=e[1])}toPhysical(e){return new c(this.x*e,this.y*e)}[i](){return{x:this.x,y:this.y}}toJSON(){return this[i]()}}class c{constructor(...e){this.type="Physical",1===e.length?"Physical"in e[0]?(this.x=e[0].Physical.x,this.y=e[0].Physical.y):(this.x=e[0].x,this.y=e[0].y):(this.x=e[0],this.y=e[1])}toLogical(e){return new u(this.x/e,this.y/e)}[i](){return{x:this.x,y:this.y}}toJSON(){return this[i]()}}class h{constructor(e){this.position=e}toLogical(e){return this.position instanceof u?this.position:this.position.toLogical(e)}toPhysical(e){return this.position instanceof c?this.position:this.position.toPhysical(e)}[i](){return{[`${this.position.type}`]:{x:this.position.x,y:this.position.y}}}toJSON(){return this[i]()}}var d,w,b;async function g(e,t){await a("plugin:event|unlisten",{event:e,eventId:t})}async function y(e,t,i){var l;const s="string"==typeof(null==i?void 0:i.target)?{kind:"AnyLabel",label:i.target}:null!==(l=null==i?void 0:i.target)&&void 0!==l?l:{kind:"Any"};return a("plugin:event|listen",{event:e,target:s,handler:n(t)}).then((t=>async()=>g(e,t)))}!function(e){e.WINDOW_RESIZED="tauri://resize",e.WINDOW_MOVED="tauri://move",e.WINDOW_CLOSE_REQUESTED="tauri://close-requested",e.WINDOW_DESTROYED="tauri://destroyed",e.WINDOW_FOCUS="tauri://focus",e.WINDOW_BLUR="tauri://blur",e.WINDOW_SCALE_FACTOR_CHANGED="tauri://scale-change",e.WINDOW_THEME_CHANGED="tauri://theme-changed",e.WINDOW_CREATED="tauri://window-created",e.WEBVIEW_CREATED="tauri://webview-created",e.DRAG_ENTER="tauri://drag-enter",e.DRAG_OVER="tauri://drag-over",e.DRAG_DROP="tauri://drag-drop",e.DRAG_LEAVE="tauri://drag-leave"}(d||(d={}));class p extends l{constructor(e){super(e)}static async new(e,t,i){return a("plugin:image|new",{rgba:_(e),width:t,height:i}).then((e=>new p(e)))}static async fromBytes(e){return a("plugin:image|from_bytes",{bytes:_(e)}).then((e=>new p(e)))}static async fromPath(e){return a("plugin:image|from_path",{path:e}).then((e=>new p(e)))}async rgba(){return a("plugin:image|rgba",{rid:this.rid}).then((e=>new Uint8Array(e)))}async size(){return a("plugin:image|size",{rid:this.rid})}}function _(e){return null==e?null:"string"==typeof e?e:e instanceof p?e.rid:e}!function(e){e[e.Critical=1]="Critical",e[e.Informational=2]="Informational"}(w||(w={}));class v{constructor(e){this._preventDefault=!1,this.event=e.event,this.id=e.id}preventDefault(){this._preventDefault=!0}isPreventDefault(){return this._preventDefault}}function f(){return new D(window.__TAURI_INTERNALS__.metadata.currentWindow.label,{skip:!0})}async function m(){return a("plugin:window|get_all_windows").then((e=>e.map((e=>new D(e,{skip:!0})))))}!function(e){e.None="none",e.Normal="normal",e.Indeterminate="indeterminate",e.Paused="paused",e.Error="error"}(b||(b={}));const E=["tauri://created","tauri://error"];class D{constructor(e,t={}){var i;this.label=e,this.listeners=Object.create(null),(null==t?void 0:t.skip)||a("plugin:window|create",{options:{...t,parent:"string"==typeof t.parent?t.parent:null===(i=t.parent)||void 0===i?void 0:i.label,label:e}}).then((async()=>this.emit("tauri://created"))).catch((async e=>this.emit("tauri://error",e)))}static async getByLabel(e){var t;return null!==(t=(await m()).find((t=>t.label===e)))&&void 0!==t?t:null}static getCurrent(){return f()}static async getAll(){return m()}static async getFocusedWindow(){for(const e of await m())if(await e.isFocused())return e;return null}async listen(e,t){return this._handleTauriEvent(e,t)?()=>{const i=this.listeners[e];i.splice(i.indexOf(t),1)}:y(e,t,{target:{kind:"Window",label:this.label}})}async once(e,t){return this._handleTauriEvent(e,t)?()=>{const i=this.listeners[e];i.splice(i.indexOf(t),1)}:async function(e,t,i){return y(e,(i=>{g(e,i.id),t(i)}),i)}(e,t,{target:{kind:"Window",label:this.label}})}async emit(e,t){if(!E.includes(e))return async function(e,t){await a("plugin:event|emit",{event:e,payload:t})}(e,t);for(const i of this.listeners[e]||[])i({event:e,id:-1,payload:t})}async emitTo(e,t,i){if(!E.includes(t))return async function(e,t,i){const n="string"==typeof e?{kind:"AnyLabel",label:e}:e;await a("plugin:event|emit_to",{target:n,event:t,payload:i})}(e,t,i);for(const e of this.listeners[t]||[])e({event:t,id:-1,payload:i})}_handleTauriEvent(e,t){return!!E.includes(e)&&(e in this.listeners?this.listeners[e].push(t):this.listeners[e]=[t],!0)}async scaleFactor(){return a("plugin:window|scale_factor",{label:this.label})}async innerPosition(){return a("plugin:window|inner_position",{label:this.label}).then((e=>new c(e)))}async outerPosition(){return a("plugin:window|outer_position",{label:this.label}).then((e=>new c(e)))}async innerSize(){return a("plugin:window|inner_size",{label:this.label}).then((e=>new r(e)))}async outerSize(){return a("plugin:window|outer_size",{label:this.label}).then((e=>new r(e)))}async isFullscreen(){return a("plugin:window|is_fullscreen",{label:this.label})}async isMinimized(){return a("plugin:window|is_minimized",{label:this.label})}async isMaximized(){return a("plugin:window|is_maximized",{label:this.label})}async isFocused(){return a("plugin:window|is_focused",{label:this.label})}async isDecorated(){return a("plugin:window|is_decorated",{label:this.label})}async isResizable(){return a("plugin:window|is_resizable",{label:this.label})}async isMaximizable(){return a("plugin:window|is_maximizable",{label:this.label})}async isMinimizable(){return a("plugin:window|is_minimizable",{label:this.label})}async isClosable(){return a("plugin:window|is_closable",{label:this.label})}async isVisible(){return a("plugin:window|is_visible",{label:this.label})}async title(){return a("plugin:window|title",{label:this.label})}async theme(){return a("plugin:window|theme",{label:this.label})}async isAlwaysOnTop(){return a("plugin:window|is_always_on_top",{label:this.label})}async center(){return a("plugin:window|center",{label:this.label})}async requestUserAttention(e){let t=null;return e&&(t=e===w.Critical?{type:"Critical"}:{type:"Informational"}),a("plugin:window|request_user_attention",{label:this.label,value:t})}async setResizable(e){return a("plugin:window|set_resizable",{label:this.label,value:e})}async setEnabled(e){return a("plugin:window|set_enabled",{label:this.label,value:e})}async isEnabled(){return a("plugin:window|is_enabled",{label:this.label})}async setMaximizable(e){return a("plugin:window|set_maximizable",{label:this.label,value:e})}async setMinimizable(e){return a("plugin:window|set_minimizable",{label:this.label,value:e})}async setClosable(e){return a("plugin:window|set_closable",{label:this.label,value:e})}async setTitle(e){return a("plugin:window|set_title",{label:this.label,value:e})}async maximize(){return a("plugin:window|maximize",{label:this.label})}async unmaximize(){return a("plugin:window|unmaximize",{label:this.label})}async toggleMaximize(){return a("plugin:window|toggle_maximize",{label:this.label})}async minimize(){return a("plugin:window|minimize",{label:this.label})}async unminimize(){return a("plugin:window|unminimize",{label:this.label})}async show(){return a("plugin:window|show",{label:this.label})}async hide(){return a("plugin:window|hide",{label:this.label})}async close(){return a("plugin:window|close",{label:this.label})}async destroy(){return a("plugin:window|destroy",{label:this.label})}async setDecorations(e){return a("plugin:window|set_decorations",{label:this.label,value:e})}async setShadow(e){return a("plugin:window|set_shadow",{label:this.label,value:e})}async setEffects(e){return a("plugin:window|set_effects",{label:this.label,value:e})}async clearEffects(){return a("plugin:window|set_effects",{label:this.label,value:null})}async setAlwaysOnTop(e){return a("plugin:window|set_always_on_top",{label:this.label,value:e})}async setAlwaysOnBottom(e){return a("plugin:window|set_always_on_bottom",{label:this.label,value:e})}async setContentProtected(e){return a("plugin:window|set_content_protected",{label:this.label,value:e})}async setSize(e){return a("plugin:window|set_size",{label:this.label,value:e instanceof o?e:new o(e)})}async setMinSize(e){return a("plugin:window|set_min_size",{label:this.label,value:e instanceof o?e:e?new o(e):null})}async setMaxSize(e){return a("plugin:window|set_max_size",{label:this.label,value:e instanceof o?e:e?new o(e):null})}async setSizeConstraints(e){function t(e){return e?{Logical:e}:null}return a("plugin:window|set_size_constraints",{label:this.label,value:{minWidth:t(null==e?void 0:e.minWidth),minHeight:t(null==e?void 0:e.minHeight),maxWidth:t(null==e?void 0:e.maxWidth),maxHeight:t(null==e?void 0:e.maxHeight)}})}async setPosition(e){return a("plugin:window|set_position",{label:this.label,value:e instanceof h?e:new h(e)})}async setFullscreen(e){return a("plugin:window|set_fullscreen",{label:this.label,value:e})}async setFocus(){return a("plugin:window|set_focus",{label:this.label})}async setIcon(e){return a("plugin:window|set_icon",{label:this.label,value:_(e)})}async setSkipTaskbar(e){return a("plugin:window|set_skip_taskbar",{label:this.label,value:e})}async setCursorGrab(e){return a("plugin:window|set_cursor_grab",{label:this.label,value:e})}async setCursorVisible(e){return a("plugin:window|set_cursor_visible",{label:this.label,value:e})}async setCursorIcon(e){return a("plugin:window|set_cursor_icon",{label:this.label,value:e})}async setBackgroundColor(e){return a("plugin:window|set_background_color",{color:e})}async setCursorPosition(e){return a("plugin:window|set_cursor_position",{label:this.label,value:e instanceof h?e:new h(e)})}async setIgnoreCursorEvents(e){return a("plugin:window|set_ignore_cursor_events",{label:this.label,value:e})}async startDragging(){return a("plugin:window|start_dragging",{label:this.label})}async startResizeDragging(e){return a("plugin:window|start_resize_dragging",{label:this.label,value:e})}async setBadgeCount(e){return a("plugin:window|set_badge_count",{label:this.label,value:e})}async setBadgeLabel(e){return a("plugin:window|set_badge_label",{label:this.label,value:e})}async setOverlayIcon(e){return a("plugin:window|set_overlay_icon",{label:this.label,value:e?_(e):void 0})}async setProgressBar(e){return a("plugin:window|set_progress_bar",{label:this.label,value:e})}async setVisibleOnAllWorkspaces(e){return a("plugin:window|set_visible_on_all_workspaces",{label:this.label,value:e})}async setTitleBarStyle(e){return a("plugin:window|set_title_bar_style",{label:this.label,value:e})}async setTheme(e){return a("plugin:window|set_theme",{label:this.label,value:e})}async onResized(e){return this.listen(d.WINDOW_RESIZED,(t=>{t.payload=new r(t.payload),e(t)}))}async onMoved(e){return this.listen(d.WINDOW_MOVED,(t=>{t.payload=new c(t.payload),e(t)}))}async onCloseRequested(e){return this.listen(d.WINDOW_CLOSE_REQUESTED,(async t=>{const i=new v(t);await e(i),i.isPreventDefault()||await this.destroy()}))}async onDragDropEvent(e){const t=await this.listen(d.DRAG_ENTER,(t=>{e({...t,payload:{type:"enter",paths:t.payload.paths,position:new c(t.payload.position)}})})),i=await this.listen(d.DRAG_OVER,(t=>{e({...t,payload:{type:"over",position:new c(t.payload.position)}})})),n=await this.listen(d.DRAG_DROP,(t=>{e({...t,payload:{type:"drop",paths:t.payload.paths,position:new c(t.payload.position)}})})),a=await this.listen(d.DRAG_LEAVE,(t=>{e({...t,payload:{type:"leave"}})}));return()=>{t(),n(),i(),a()}}async onFocusChanged(e){const t=await this.listen(d.WINDOW_FOCUS,(t=>{e({...t,payload:!0})})),i=await this.listen(d.WINDOW_BLUR,(t=>{e({...t,payload:!1})}));return()=>{t(),i()}}async onScaleChanged(e){return this.listen(d.WINDOW_SCALE_FACTOR_CHANGED,e)}async onThemeChanged(e){return this.listen(d.WINDOW_THEME_CHANGED,e)}}var I,S,W,O;async function z(e,t){await a("plugin:window-state|restore_state",{label:e,flags:t})}return function(e){e.Disabled="disabled",e.Throttle="throttle",e.Suspend="suspend"}(I||(I={})),function(e){e.AppearanceBased="appearanceBased",e.Light="light",e.Dark="dark",e.MediumLight="mediumLight",e.UltraDark="ultraDark",e.Titlebar="titlebar",e.Selection="selection",e.Menu="menu",e.Popover="popover",e.Sidebar="sidebar",e.HeaderView="headerView",e.Sheet="sheet",e.WindowBackground="windowBackground",e.HudWindow="hudWindow",e.FullScreenUI="fullScreenUI",e.Tooltip="tooltip",e.ContentBackground="contentBackground",e.UnderWindowBackground="underWindowBackground",e.UnderPageBackground="underPageBackground",e.Mica="mica",e.Blur="blur",e.Acrylic="acrylic",e.Tabbed="tabbed",e.TabbedDark="tabbedDark",e.TabbedLight="tabbedLight"}(S||(S={})),function(e){e.FollowsWindowActiveState="followsWindowActiveState",e.Active="active",e.Inactive="inactive"}(W||(W={})),e.StateFlags=void 0,(O=e.StateFlags||(e.StateFlags={}))[O.SIZE=1]="SIZE",O[O.POSITION=2]="POSITION",O[O.MAXIMIZED=4]="MAXIMIZED",O[O.VISIBLE=8]="VISIBLE",O[O.DECORATIONS=16]="DECORATIONS",O[O.FULLSCREEN=32]="FULLSCREEN",O[O.ALL=63]="ALL",e.filename=async function(){return await a("plugin:window-state|filename")},e.restoreState=z,e.restoreStateCurrent=async function(e){await z(f().label,e)},e.saveWindowState=async function(e){await a("plugin:window-state|save_window_state",{flags:e})},e}({});Object.defineProperty(window.__TAURI__,"windowState",{value:__TAURI_PLUGIN_WINDOW_STATE__})}
diff --git a/plugins/window-state/permissions/schemas/schema.json b/plugins/window-state/permissions/schemas/schema.json
index 67888bc6..b94c2573 100644
--- a/plugins/window-state/permissions/schemas/schema.json
+++ b/plugins/window-state/permissions/schemas/schema.json
@@ -49,7 +49,7 @@
"minimum": 1.0
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
@@ -111,7 +111,7 @@
"type": "string"
},
"description": {
- "description": "Human-readable description of what the permission does. Tauri internal convention is to use headings in markdown content for Tauri documentation generation purposes.",
+ "description": "Human-readable description of what the permission does. Tauri internal convention is to use `` headings in markdown content for Tauri documentation generation purposes.",
"type": [
"string",
"null"
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 692f6d33..55b73217 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -5,58 +5,57 @@ settings:
excludeLinksFromLockfile: false
overrides:
- semver: '>=7.5.2'
- optionator: '>=0.9.3'
+ esbuild@<0.25.0: '>=0.25.0'
importers:
.:
devDependencies:
'@eslint/js':
- specifier: 9.21.0
- version: 9.21.0
+ specifier: 9.23.0
+ version: 9.23.0
'@rollup/plugin-node-resolve':
- specifier: 16.0.0
- version: 16.0.0(rollup@4.34.8)
+ specifier: 16.0.1
+ version: 16.0.1(rollup@4.37.0)
'@rollup/plugin-terser':
specifier: 0.4.4
- version: 0.4.4(rollup@4.34.8)
+ version: 0.4.4(rollup@4.37.0)
'@rollup/plugin-typescript':
- specifier: 11.1.6
- version: 11.1.6(rollup@4.34.8)(tslib@2.8.1)(typescript@5.7.3)
+ specifier: 12.1.2
+ version: 12.1.2(rollup@4.37.0)(tslib@2.8.1)(typescript@5.8.2)
covector:
- specifier: ^0.12.3
- version: 0.12.3(mocha@10.8.2)
+ specifier: ^0.12.4
+ version: 0.12.4(mocha@10.8.2)
eslint:
- specifier: 9.21.0
- version: 9.21.0(jiti@2.4.2)
+ specifier: 9.23.0
+ version: 9.23.0(jiti@2.4.2)
eslint-config-prettier:
- specifier: 10.0.1
- version: 10.0.1(eslint@9.21.0(jiti@2.4.2))
+ specifier: 10.1.1
+ version: 10.1.1(eslint@9.23.0(jiti@2.4.2))
eslint-plugin-security:
specifier: 3.0.1
version: 3.0.1
prettier:
- specifier: 3.5.2
- version: 3.5.2
+ specifier: 3.5.3
+ version: 3.5.3
rollup:
- specifier: 4.34.8
- version: 4.34.8
+ specifier: 4.37.0
+ version: 4.37.0
tslib:
specifier: 2.8.1
version: 2.8.1
typescript:
- specifier: 5.7.3
- version: 5.7.3
+ specifier: 5.8.2
+ version: 5.8.2
typescript-eslint:
- specifier: 8.25.0
- version: 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)
+ specifier: 8.28.0
+ version: 8.28.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)
examples/api:
dependencies:
'@tauri-apps/api':
- specifier: 2.2.0
- version: 2.2.0
+ specifier: 2.4.0
+ version: 2.4.0
'@tauri-apps/plugin-barcode-scanner':
specifier: ^2.2.0
version: link:../../plugins/barcode-scanner
@@ -67,7 +66,7 @@ importers:
specifier: ^2.2.0
version: link:../../plugins/cli
'@tauri-apps/plugin-clipboard-manager':
- specifier: ^2.2.1
+ specifier: ^2.2.2
version: link:../../plugins/clipboard-manager
'@tauri-apps/plugin-dialog':
specifier: ^2.2.0
@@ -85,19 +84,19 @@ importers:
specifier: ^2.2.0
version: link:../../plugins/haptics
'@tauri-apps/plugin-http':
- specifier: ^2.3.0
+ specifier: ^2.4.2
version: link:../../plugins/http
'@tauri-apps/plugin-nfc':
specifier: ^2.2.0
version: link:../../plugins/nfc
'@tauri-apps/plugin-notification':
- specifier: ^2.2.1
+ specifier: ^2.2.2
version: link:../../plugins/notification
'@tauri-apps/plugin-opener':
- specifier: ^2.2.5
+ specifier: ^2.2.6
version: link:../../plugins/opener
'@tauri-apps/plugin-os':
- specifier: ^2.2.0
+ specifier: ^2.2.1
version: link:../../plugins/os
'@tauri-apps/plugin-process':
specifier: ^2.2.0
@@ -109,229 +108,229 @@ importers:
specifier: ^2.2.0
version: link:../../plugins/store
'@tauri-apps/plugin-updater':
- specifier: ^2.5.1
+ specifier: ^2.6.1
version: link:../../plugins/updater
'@zerodevx/svelte-json-view':
specifier: 1.0.11
- version: 1.0.11(svelte@5.10.0)
+ version: 1.0.11(svelte@5.20.4)
devDependencies:
'@iconify-json/codicon':
- specifier: ^1.2.6
- version: 1.2.6
+ specifier: ^1.2.12
+ version: 1.2.12
'@iconify-json/ph':
- specifier: ^1.2.1
- version: 1.2.1
+ specifier: ^1.2.2
+ version: 1.2.2
'@sveltejs/vite-plugin-svelte':
- specifier: ^5.0.1
- version: 5.0.1(svelte@5.10.0)(vite@6.0.9(jiti@2.4.2)(terser@5.36.0)(tsx@4.19.2))
+ specifier: ^5.0.3
+ version: 5.0.3(svelte@5.20.4)(vite@6.2.3(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.2))
'@tauri-apps/cli':
- specifier: 2.2.7
- version: 2.2.7
+ specifier: 2.4.0
+ version: 2.4.0
'@unocss/extractor-svelte':
specifier: ^66.0.0
version: 66.0.0
svelte:
- specifier: ^5.10.0
- version: 5.10.0
+ specifier: ^5.20.4
+ version: 5.20.4
unocss:
specifier: ^66.0.0
- version: 66.0.0(postcss@8.5.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))
+ version: 66.0.0(postcss@8.5.3)(vite@6.2.3(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.2))(vue@3.5.13(typescript@5.8.2))
vite:
- specifier: ^6.0.3
- version: 6.0.9(jiti@2.4.2)(terser@5.36.0)(tsx@4.19.2)
+ specifier: ^6.2.0
+ version: 6.2.3(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.2)
plugins/autostart:
dependencies:
'@tauri-apps/api':
specifier: ^2.0.0
- version: 2.2.0
+ version: 2.4.0
plugins/barcode-scanner:
dependencies:
'@tauri-apps/api':
specifier: ^2.0.0
- version: 2.2.0
+ version: 2.4.0
plugins/biometric:
dependencies:
'@tauri-apps/api':
specifier: ^2.0.0
- version: 2.2.0
+ version: 2.4.0
plugins/cli:
dependencies:
'@tauri-apps/api':
specifier: ^2.0.0
- version: 2.2.0
+ version: 2.4.0
plugins/clipboard-manager:
dependencies:
'@tauri-apps/api':
specifier: ^2.0.0
- version: 2.2.0
+ version: 2.4.0
plugins/deep-link:
dependencies:
'@tauri-apps/api':
specifier: ^2.0.0
- version: 2.2.0
+ version: 2.4.0
plugins/deep-link/examples/app:
dependencies:
'@tauri-apps/api':
- specifier: 2.2.0
- version: 2.2.0
+ specifier: 2.4.0
+ version: 2.4.0
'@tauri-apps/plugin-deep-link':
specifier: 2.2.0
version: link:../..
devDependencies:
'@tauri-apps/cli':
- specifier: 2.2.7
- version: 2.2.7
+ specifier: 2.4.0
+ version: 2.4.0
typescript:
- specifier: ^5.2.2
- version: 5.7.3
+ specifier: ^5.7.3
+ version: 5.8.2
vite:
- specifier: ^6.0.0
- version: 6.0.9(jiti@2.4.2)(terser@5.36.0)(tsx@4.19.2)
+ specifier: ^6.2.0
+ version: 6.2.3(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.2)
plugins/dialog:
dependencies:
'@tauri-apps/api':
specifier: ^2.0.0
- version: 2.2.0
+ version: 2.4.0
plugins/fs:
dependencies:
'@tauri-apps/api':
specifier: ^2.0.0
- version: 2.2.0
+ version: 2.4.0
plugins/geolocation:
dependencies:
'@tauri-apps/api':
specifier: ^2.0.0
- version: 2.2.0
+ version: 2.4.0
plugins/global-shortcut:
dependencies:
'@tauri-apps/api':
specifier: ^2.0.0
- version: 2.2.0
+ version: 2.4.0
plugins/haptics:
dependencies:
'@tauri-apps/api':
specifier: ^2.0.0
- version: 2.2.0
+ version: 2.4.0
plugins/http:
dependencies:
'@tauri-apps/api':
specifier: ^2.0.0
- version: 2.2.0
+ version: 2.4.0
plugins/log:
dependencies:
'@tauri-apps/api':
specifier: ^2.0.0
- version: 2.2.0
+ version: 2.4.0
plugins/nfc:
dependencies:
'@tauri-apps/api':
specifier: ^2.0.0
- version: 2.2.0
+ version: 2.4.0
plugins/notification:
dependencies:
'@tauri-apps/api':
specifier: ^2.0.0
- version: 2.2.0
+ version: 2.4.0
plugins/opener:
dependencies:
'@tauri-apps/api':
specifier: ^2.0.0
- version: 2.2.0
+ version: 2.4.0
plugins/os:
dependencies:
'@tauri-apps/api':
specifier: ^2.0.0
- version: 2.2.0
+ version: 2.4.0
plugins/positioner:
dependencies:
'@tauri-apps/api':
specifier: ^2.0.0
- version: 2.2.0
+ version: 2.4.0
plugins/process:
dependencies:
'@tauri-apps/api':
specifier: ^2.0.0
- version: 2.2.0
+ version: 2.4.0
plugins/shell:
dependencies:
'@tauri-apps/api':
specifier: ^2.0.0
- version: 2.2.0
+ version: 2.4.0
plugins/single-instance/examples/vanilla:
devDependencies:
'@tauri-apps/cli':
- specifier: 2.2.7
- version: 2.2.7
+ specifier: 2.4.0
+ version: 2.4.0
plugins/sql:
dependencies:
'@tauri-apps/api':
specifier: ^2.0.0
- version: 2.2.0
+ version: 2.4.0
plugins/store:
dependencies:
'@tauri-apps/api':
specifier: ^2.0.0
- version: 2.2.0
+ version: 2.4.0
plugins/store/examples/AppSettingsManager:
devDependencies:
'@tauri-apps/cli':
- specifier: 2.2.7
- version: 2.2.7
+ specifier: 2.4.0
+ version: 2.4.0
typescript:
- specifier: ^5.4.7
- version: 5.7.3
+ specifier: ^5.7.3
+ version: 5.8.2
vite:
- specifier: ^6.0.0
- version: 6.0.9(jiti@2.4.2)(terser@5.36.0)(tsx@4.19.2)
+ specifier: ^6.2.0
+ version: 6.2.3(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.2)
plugins/stronghold:
dependencies:
'@tauri-apps/api':
specifier: ^2.0.0
- version: 2.2.0
+ version: 2.4.0
plugins/updater:
dependencies:
'@tauri-apps/api':
specifier: ^2.0.0
- version: 2.2.0
+ version: 2.4.0
plugins/upload:
dependencies:
'@tauri-apps/api':
specifier: ^2.0.0
- version: 2.2.0
+ version: 2.4.0
plugins/websocket:
dependencies:
'@tauri-apps/api':
specifier: ^2.0.0
- version: 2.2.0
+ version: 2.4.0
plugins/websocket/examples/tauri-app:
dependencies:
@@ -340,20 +339,20 @@ importers:
version: link:../..
devDependencies:
'@tauri-apps/cli':
- specifier: 2.2.7
- version: 2.2.7
+ specifier: 2.4.0
+ version: 2.4.0
typescript:
- specifier: ^5.3.3
- version: 5.7.3
+ specifier: ^5.7.3
+ version: 5.8.2
vite:
- specifier: ^6.0.0
- version: 6.0.9(jiti@2.4.2)(terser@5.36.0)(tsx@4.19.2)
+ specifier: ^6.2.0
+ version: 6.2.3(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.2)
plugins/window-state:
dependencies:
'@tauri-apps/api':
specifier: ^2.0.0
- version: 2.2.0
+ version: 2.4.0
packages:
@@ -375,13 +374,13 @@ packages:
resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==}
engines: {node: '>=6.9.0'}
- '@babel/parser@7.26.5':
- resolution: {integrity: sha512-SRJ4jYmXRqV1/Xc+TIVG84WjHBXKlxO9sHQnA2Pf12QQEAp1LOh6kDzNHXcUnbH1QI0FDoPPVOt+vyUDucxpaw==}
+ '@babel/parser@7.27.0':
+ resolution: {integrity: sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==}
engines: {node: '>=6.0.0'}
hasBin: true
- '@babel/types@7.26.5':
- resolution: {integrity: sha512-L6mZmwFDK6Cjh1nRCLXpa6no13ZIioJDz7mdkzHv399pThrTa/k0nUlNaenOeh2kWu/iaOQYElEpKPUswUa9Vg==}
+ '@babel/types@7.27.0':
+ resolution: {integrity: sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==}
engines: {node: '>=6.9.0'}
'@chainsafe/abort-controller@3.0.1':
@@ -444,296 +443,152 @@ packages:
'@effection/subscription@2.0.6':
resolution: {integrity: sha512-znTi75JFyC1S0YjyTtFEWNRQbhk01UxOapWELlIkZOwjGIEjcx6+G8y6n9JpZ8OGKmJQ0GBlRMZozsR5gcQvBg==}
- '@esbuild/aix-ppc64@0.23.1':
- resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==}
+ '@esbuild/aix-ppc64@0.25.1':
+ resolution: {integrity: sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==}
engines: {node: '>=18'}
cpu: [ppc64]
os: [aix]
- '@esbuild/aix-ppc64@0.24.2':
- resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==}
- engines: {node: '>=18'}
- cpu: [ppc64]
- os: [aix]
-
- '@esbuild/android-arm64@0.23.1':
- resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [android]
-
- '@esbuild/android-arm64@0.24.2':
- resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==}
+ '@esbuild/android-arm64@0.25.1':
+ resolution: {integrity: sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==}
engines: {node: '>=18'}
cpu: [arm64]
os: [android]
- '@esbuild/android-arm@0.23.1':
- resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==}
+ '@esbuild/android-arm@0.25.1':
+ resolution: {integrity: sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==}
engines: {node: '>=18'}
cpu: [arm]
os: [android]
- '@esbuild/android-arm@0.24.2':
- resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==}
- engines: {node: '>=18'}
- cpu: [arm]
- os: [android]
-
- '@esbuild/android-x64@0.23.1':
- resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [android]
-
- '@esbuild/android-x64@0.24.2':
- resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==}
+ '@esbuild/android-x64@0.25.1':
+ resolution: {integrity: sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==}
engines: {node: '>=18'}
cpu: [x64]
os: [android]
- '@esbuild/darwin-arm64@0.23.1':
- resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==}
+ '@esbuild/darwin-arm64@0.25.1':
+ resolution: {integrity: sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==}
engines: {node: '>=18'}
cpu: [arm64]
os: [darwin]
- '@esbuild/darwin-arm64@0.24.2':
- resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [darwin]
-
- '@esbuild/darwin-x64@0.23.1':
- resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==}
+ '@esbuild/darwin-x64@0.25.1':
+ resolution: {integrity: sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==}
engines: {node: '>=18'}
cpu: [x64]
os: [darwin]
- '@esbuild/darwin-x64@0.24.2':
- resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [darwin]
-
- '@esbuild/freebsd-arm64@0.23.1':
- resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [freebsd]
-
- '@esbuild/freebsd-arm64@0.24.2':
- resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==}
+ '@esbuild/freebsd-arm64@0.25.1':
+ resolution: {integrity: sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==}
engines: {node: '>=18'}
cpu: [arm64]
os: [freebsd]
- '@esbuild/freebsd-x64@0.23.1':
- resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [freebsd]
-
- '@esbuild/freebsd-x64@0.24.2':
- resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==}
+ '@esbuild/freebsd-x64@0.25.1':
+ resolution: {integrity: sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==}
engines: {node: '>=18'}
cpu: [x64]
os: [freebsd]
- '@esbuild/linux-arm64@0.23.1':
- resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==}
+ '@esbuild/linux-arm64@0.25.1':
+ resolution: {integrity: sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==}
engines: {node: '>=18'}
cpu: [arm64]
os: [linux]
- '@esbuild/linux-arm64@0.24.2':
- resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [linux]
-
- '@esbuild/linux-arm@0.23.1':
- resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==}
- engines: {node: '>=18'}
- cpu: [arm]
- os: [linux]
-
- '@esbuild/linux-arm@0.24.2':
- resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==}
+ '@esbuild/linux-arm@0.25.1':
+ resolution: {integrity: sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==}
engines: {node: '>=18'}
cpu: [arm]
os: [linux]
- '@esbuild/linux-ia32@0.23.1':
- resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==}
- engines: {node: '>=18'}
- cpu: [ia32]
- os: [linux]
-
- '@esbuild/linux-ia32@0.24.2':
- resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==}
+ '@esbuild/linux-ia32@0.25.1':
+ resolution: {integrity: sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==}
engines: {node: '>=18'}
cpu: [ia32]
os: [linux]
- '@esbuild/linux-loong64@0.23.1':
- resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==}
+ '@esbuild/linux-loong64@0.25.1':
+ resolution: {integrity: sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==}
engines: {node: '>=18'}
cpu: [loong64]
os: [linux]
- '@esbuild/linux-loong64@0.24.2':
- resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==}
- engines: {node: '>=18'}
- cpu: [loong64]
- os: [linux]
-
- '@esbuild/linux-mips64el@0.23.1':
- resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==}
- engines: {node: '>=18'}
- cpu: [mips64el]
- os: [linux]
-
- '@esbuild/linux-mips64el@0.24.2':
- resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==}
+ '@esbuild/linux-mips64el@0.25.1':
+ resolution: {integrity: sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==}
engines: {node: '>=18'}
cpu: [mips64el]
os: [linux]
- '@esbuild/linux-ppc64@0.23.1':
- resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==}
+ '@esbuild/linux-ppc64@0.25.1':
+ resolution: {integrity: sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==}
engines: {node: '>=18'}
cpu: [ppc64]
os: [linux]
- '@esbuild/linux-ppc64@0.24.2':
- resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==}
- engines: {node: '>=18'}
- cpu: [ppc64]
- os: [linux]
-
- '@esbuild/linux-riscv64@0.23.1':
- resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==}
- engines: {node: '>=18'}
- cpu: [riscv64]
- os: [linux]
-
- '@esbuild/linux-riscv64@0.24.2':
- resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==}
+ '@esbuild/linux-riscv64@0.25.1':
+ resolution: {integrity: sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==}
engines: {node: '>=18'}
cpu: [riscv64]
os: [linux]
- '@esbuild/linux-s390x@0.23.1':
- resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==}
+ '@esbuild/linux-s390x@0.25.1':
+ resolution: {integrity: sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==}
engines: {node: '>=18'}
cpu: [s390x]
os: [linux]
- '@esbuild/linux-s390x@0.24.2':
- resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==}
- engines: {node: '>=18'}
- cpu: [s390x]
- os: [linux]
-
- '@esbuild/linux-x64@0.23.1':
- resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==}
+ '@esbuild/linux-x64@0.25.1':
+ resolution: {integrity: sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==}
engines: {node: '>=18'}
cpu: [x64]
os: [linux]
- '@esbuild/linux-x64@0.24.2':
- resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [linux]
-
- '@esbuild/netbsd-arm64@0.24.2':
- resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==}
+ '@esbuild/netbsd-arm64@0.25.1':
+ resolution: {integrity: sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==}
engines: {node: '>=18'}
cpu: [arm64]
os: [netbsd]
- '@esbuild/netbsd-x64@0.23.1':
- resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [netbsd]
-
- '@esbuild/netbsd-x64@0.24.2':
- resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==}
+ '@esbuild/netbsd-x64@0.25.1':
+ resolution: {integrity: sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==}
engines: {node: '>=18'}
cpu: [x64]
os: [netbsd]
- '@esbuild/openbsd-arm64@0.23.1':
- resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [openbsd]
-
- '@esbuild/openbsd-arm64@0.24.2':
- resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==}
+ '@esbuild/openbsd-arm64@0.25.1':
+ resolution: {integrity: sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==}
engines: {node: '>=18'}
cpu: [arm64]
os: [openbsd]
- '@esbuild/openbsd-x64@0.23.1':
- resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==}
+ '@esbuild/openbsd-x64@0.25.1':
+ resolution: {integrity: sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==}
engines: {node: '>=18'}
cpu: [x64]
os: [openbsd]
- '@esbuild/openbsd-x64@0.24.2':
- resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [openbsd]
-
- '@esbuild/sunos-x64@0.23.1':
- resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==}
+ '@esbuild/sunos-x64@0.25.1':
+ resolution: {integrity: sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==}
engines: {node: '>=18'}
cpu: [x64]
os: [sunos]
- '@esbuild/sunos-x64@0.24.2':
- resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [sunos]
-
- '@esbuild/win32-arm64@0.23.1':
- resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [win32]
-
- '@esbuild/win32-arm64@0.24.2':
- resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==}
+ '@esbuild/win32-arm64@0.25.1':
+ resolution: {integrity: sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==}
engines: {node: '>=18'}
cpu: [arm64]
os: [win32]
- '@esbuild/win32-ia32@0.23.1':
- resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==}
+ '@esbuild/win32-ia32@0.25.1':
+ resolution: {integrity: sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==}
engines: {node: '>=18'}
cpu: [ia32]
os: [win32]
- '@esbuild/win32-ia32@0.24.2':
- resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==}
- engines: {node: '>=18'}
- cpu: [ia32]
- os: [win32]
-
- '@esbuild/win32-x64@0.23.1':
- resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [win32]
-
- '@esbuild/win32-x64@0.24.2':
- resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==}
+ '@esbuild/win32-x64@0.25.1':
+ resolution: {integrity: sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==}
engines: {node: '>=18'}
cpu: [x64]
os: [win32]
@@ -752,16 +607,20 @@ packages:
resolution: {integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ '@eslint/config-helpers@0.2.0':
+ resolution: {integrity: sha512-yJLLmLexii32mGrhW29qvU3QBVTu0GUmEf/J4XsBtVhp4JkIUFN/BjWqTF63yRvGApIDpZm5fa97LtYtINmfeQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
'@eslint/core@0.12.0':
resolution: {integrity: sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@eslint/eslintrc@3.3.0':
- resolution: {integrity: sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==}
+ '@eslint/eslintrc@3.3.1':
+ resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@eslint/js@9.21.0':
- resolution: {integrity: sha512-BqStZ3HX8Yz6LvsF5ByXYrtigrV5AXADWLAGc7PH/1SxOb7/FIYYMszZZWiUou/GB9P2lXWk2SV4d+Z8h0nknw==}
+ '@eslint/js@9.23.0':
+ resolution: {integrity: sha512-35MJ8vCPU0ZMxo7zfev2pypqTwWTofFZO6m4KAtdoFhRpLJUpHTZZ+KB3C7Hb1d7bULYwO4lJXGCi5Se+8OMbw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@eslint/object-schema@2.1.6':
@@ -792,11 +651,11 @@ packages:
resolution: {integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==}
engines: {node: '>=18.18'}
- '@iconify-json/codicon@1.2.6':
- resolution: {integrity: sha512-F5lBgKRFLHfOVNM8I3ld+JCdmFPxf3V1p/PV7lNHgtvoblaQLLxGKs3AepIcnbkPcACafPbQ0OMorskSk41Ziw==}
+ '@iconify-json/codicon@1.2.12':
+ resolution: {integrity: sha512-PSqV6rx770+MAaIK+QGLbhvsKl33ParjREK++XhMyM1CGXcMEsJ6cXkeooyWhE8VSzxWKlk8ecGzJFTi13MwQA==}
- '@iconify-json/ph@1.2.1':
- resolution: {integrity: sha512-x0DNfwWrS18dbsBYOq3XGiZnGz4CgRyC+YSl/TZvMQiKhIUl1woWqUbMYqqfMNUBzjyk7ulvaRovpRsIlqIf8g==}
+ '@iconify-json/ph@1.2.2':
+ resolution: {integrity: sha512-PgkEZNtqa8hBGjHXQa4pMwZa93hmfu8FUSjs/nv4oUU6yLsgv+gh9nu28Kqi8Fz9CCVu4hj1MZs9/60J57IzFw==}
'@iconify/types@2.0.0':
resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==}
@@ -804,8 +663,8 @@ packages:
'@iconify/utils@2.3.0':
resolution: {integrity: sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==}
- '@jridgewell/gen-mapping@0.3.5':
- resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==}
+ '@jridgewell/gen-mapping@0.3.8':
+ resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==}
engines: {node: '>=6.0.0'}
'@jridgewell/resolve-uri@3.1.2':
@@ -840,8 +699,8 @@ packages:
'@polka/url@1.0.0-next.28':
resolution: {integrity: sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==}
- '@rollup/plugin-node-resolve@16.0.0':
- resolution: {integrity: sha512-0FPvAeVUT/zdWoO0jnb/V5BlBsUSNfkIOtFHzMO4H9MOklrmQFY6FduVHKucNb/aTFxvnGhj4MNj/T1oNdDfNg==}
+ '@rollup/plugin-node-resolve@16.0.1':
+ resolution: {integrity: sha512-tk5YCxJWIG81umIvNkSod2qK5KyQW19qcBF/B78n1bjtOON6gzKoVeSzAE8yHCZEDmqkHKkxplExA8KzdJLJpA==}
engines: {node: '>=14.0.0'}
peerDependencies:
rollup: ^2.78.0||^3.0.0||^4.0.0
@@ -858,8 +717,8 @@ packages:
rollup:
optional: true
- '@rollup/plugin-typescript@11.1.6':
- resolution: {integrity: sha512-R92yOmIACgYdJ7dJ97p4K69I8gg6IEHt8M7dUBxN3W6nrO8uUxX5ixl0yU/N3aZTi8WhPuICvOHXQvF6FaykAA==}
+ '@rollup/plugin-typescript@12.1.2':
+ resolution: {integrity: sha512-cdtSp154H5sv637uMr1a8OTWB0L1SWDSm1rDGiyfcGcvQ6cuTs4MDk2BVEBGysUWago4OJN4EQZqOTl/QY3Jgg==}
engines: {node: '>=14.0.0'}
peerDependencies:
rollup: ^2.14.0||^3.0.0||^4.0.0
@@ -880,98 +739,103 @@ packages:
rollup:
optional: true
- '@rollup/rollup-android-arm-eabi@4.34.8':
- resolution: {integrity: sha512-q217OSE8DTp8AFHuNHXo0Y86e1wtlfVrXiAlwkIvGRQv9zbc6mE3sjIVfwI8sYUyNxwOg0j/Vm1RKM04JcWLJw==}
+ '@rollup/rollup-android-arm-eabi@4.37.0':
+ resolution: {integrity: sha512-l7StVw6WAa8l3vA1ov80jyetOAEo1FtHvZDbzXDO/02Sq/QVvqlHkYoFwDJPIMj0GKiistsBudfx5tGFnwYWDQ==}
cpu: [arm]
os: [android]
- '@rollup/rollup-android-arm64@4.34.8':
- resolution: {integrity: sha512-Gigjz7mNWaOL9wCggvoK3jEIUUbGul656opstjaUSGC3eT0BM7PofdAJaBfPFWWkXNVAXbaQtC99OCg4sJv70Q==}
+ '@rollup/rollup-android-arm64@4.37.0':
+ resolution: {integrity: sha512-6U3SlVyMxezt8Y+/iEBcbp945uZjJwjZimu76xoG7tO1av9VO691z8PkhzQ85ith2I8R2RddEPeSfcbyPfD4hA==}
cpu: [arm64]
os: [android]
- '@rollup/rollup-darwin-arm64@4.34.8':
- resolution: {integrity: sha512-02rVdZ5tgdUNRxIUrFdcMBZQoaPMrxtwSb+/hOfBdqkatYHR3lZ2A2EGyHq2sGOd0Owk80oV3snlDASC24He3Q==}
+ '@rollup/rollup-darwin-arm64@4.37.0':
+ resolution: {integrity: sha512-+iTQ5YHuGmPt10NTzEyMPbayiNTcOZDWsbxZYR1ZnmLnZxG17ivrPSWFO9j6GalY0+gV3Jtwrrs12DBscxnlYA==}
cpu: [arm64]
os: [darwin]
- '@rollup/rollup-darwin-x64@4.34.8':
- resolution: {integrity: sha512-qIP/elwR/tq/dYRx3lgwK31jkZvMiD6qUtOycLhTzCvrjbZ3LjQnEM9rNhSGpbLXVJYQ3rq39A6Re0h9tU2ynw==}
+ '@rollup/rollup-darwin-x64@4.37.0':
+ resolution: {integrity: sha512-m8W2UbxLDcmRKVjgl5J/k4B8d7qX2EcJve3Sut7YGrQoPtCIQGPH5AMzuFvYRWZi0FVS0zEY4c8uttPfX6bwYQ==}
cpu: [x64]
os: [darwin]
- '@rollup/rollup-freebsd-arm64@4.34.8':
- resolution: {integrity: sha512-IQNVXL9iY6NniYbTaOKdrlVP3XIqazBgJOVkddzJlqnCpRi/yAeSOa8PLcECFSQochzqApIOE1GHNu3pCz+BDA==}
+ '@rollup/rollup-freebsd-arm64@4.37.0':
+ resolution: {integrity: sha512-FOMXGmH15OmtQWEt174v9P1JqqhlgYge/bUjIbiVD1nI1NeJ30HYT9SJlZMqdo1uQFyt9cz748F1BHghWaDnVA==}
cpu: [arm64]
os: [freebsd]
- '@rollup/rollup-freebsd-x64@4.34.8':
- resolution: {integrity: sha512-TYXcHghgnCqYFiE3FT5QwXtOZqDj5GmaFNTNt3jNC+vh22dc/ukG2cG+pi75QO4kACohZzidsq7yKTKwq/Jq7Q==}
+ '@rollup/rollup-freebsd-x64@4.37.0':
+ resolution: {integrity: sha512-SZMxNttjPKvV14Hjck5t70xS3l63sbVwl98g3FlVVx2YIDmfUIy29jQrsw06ewEYQ8lQSuY9mpAPlmgRD2iSsA==}
cpu: [x64]
os: [freebsd]
- '@rollup/rollup-linux-arm-gnueabihf@4.34.8':
- resolution: {integrity: sha512-A4iphFGNkWRd+5m3VIGuqHnG3MVnqKe7Al57u9mwgbyZ2/xF9Jio72MaY7xxh+Y87VAHmGQr73qoKL9HPbXj1g==}
+ '@rollup/rollup-linux-arm-gnueabihf@4.37.0':
+ resolution: {integrity: sha512-hhAALKJPidCwZcj+g+iN+38SIOkhK2a9bqtJR+EtyxrKKSt1ynCBeqrQy31z0oWU6thRZzdx53hVgEbRkuI19w==}
cpu: [arm]
os: [linux]
- '@rollup/rollup-linux-arm-musleabihf@4.34.8':
- resolution: {integrity: sha512-S0lqKLfTm5u+QTxlFiAnb2J/2dgQqRy/XvziPtDd1rKZFXHTyYLoVL58M/XFwDI01AQCDIevGLbQrMAtdyanpA==}
+ '@rollup/rollup-linux-arm-musleabihf@4.37.0':
+ resolution: {integrity: sha512-jUb/kmn/Gd8epbHKEqkRAxq5c2EwRt0DqhSGWjPFxLeFvldFdHQs/n8lQ9x85oAeVb6bHcS8irhTJX2FCOd8Ag==}
cpu: [arm]
os: [linux]
- '@rollup/rollup-linux-arm64-gnu@4.34.8':
- resolution: {integrity: sha512-jpz9YOuPiSkL4G4pqKrus0pn9aYwpImGkosRKwNi+sJSkz+WU3anZe6hi73StLOQdfXYXC7hUfsQlTnjMd3s1A==}
+ '@rollup/rollup-linux-arm64-gnu@4.37.0':
+ resolution: {integrity: sha512-oNrJxcQT9IcbcmKlkF+Yz2tmOxZgG9D9GRq+1OE6XCQwCVwxixYAa38Z8qqPzQvzt1FCfmrHX03E0pWoXm1DqA==}
cpu: [arm64]
os: [linux]
- '@rollup/rollup-linux-arm64-musl@4.34.8':
- resolution: {integrity: sha512-KdSfaROOUJXgTVxJNAZ3KwkRc5nggDk+06P6lgi1HLv1hskgvxHUKZ4xtwHkVYJ1Rep4GNo+uEfycCRRxht7+Q==}
+ '@rollup/rollup-linux-arm64-musl@4.37.0':
+ resolution: {integrity: sha512-pfxLBMls+28Ey2enpX3JvjEjaJMBX5XlPCZNGxj4kdJyHduPBXtxYeb8alo0a7bqOoWZW2uKynhHxF/MWoHaGQ==}
cpu: [arm64]
os: [linux]
- '@rollup/rollup-linux-loongarch64-gnu@4.34.8':
- resolution: {integrity: sha512-NyF4gcxwkMFRjgXBM6g2lkT58OWztZvw5KkV2K0qqSnUEqCVcqdh2jN4gQrTn/YUpAcNKyFHfoOZEer9nwo6uQ==}
+ '@rollup/rollup-linux-loongarch64-gnu@4.37.0':
+ resolution: {integrity: sha512-yCE0NnutTC/7IGUq/PUHmoeZbIwq3KRh02e9SfFh7Vmc1Z7atuJRYWhRME5fKgT8aS20mwi1RyChA23qSyRGpA==}
cpu: [loong64]
os: [linux]
- '@rollup/rollup-linux-powerpc64le-gnu@4.34.8':
- resolution: {integrity: sha512-LMJc999GkhGvktHU85zNTDImZVUCJ1z/MbAJTnviiWmmjyckP5aQsHtcujMjpNdMZPT2rQEDBlJfubhs3jsMfw==}
+ '@rollup/rollup-linux-powerpc64le-gnu@4.37.0':
+ resolution: {integrity: sha512-NxcICptHk06E2Lh3a4Pu+2PEdZ6ahNHuK7o6Np9zcWkrBMuv21j10SQDJW3C9Yf/A/P7cutWoC/DptNLVsZ0VQ==}
cpu: [ppc64]
os: [linux]
- '@rollup/rollup-linux-riscv64-gnu@4.34.8':
- resolution: {integrity: sha512-xAQCAHPj8nJq1PI3z8CIZzXuXCstquz7cIOL73HHdXiRcKk8Ywwqtx2wrIy23EcTn4aZ2fLJNBB8d0tQENPCmw==}
+ '@rollup/rollup-linux-riscv64-gnu@4.37.0':
+ resolution: {integrity: sha512-PpWwHMPCVpFZLTfLq7EWJWvrmEuLdGn1GMYcm5MV7PaRgwCEYJAwiN94uBuZev0/J/hFIIJCsYw4nLmXA9J7Pw==}
cpu: [riscv64]
os: [linux]
- '@rollup/rollup-linux-s390x-gnu@4.34.8':
- resolution: {integrity: sha512-DdePVk1NDEuc3fOe3dPPTb+rjMtuFw89gw6gVWxQFAuEqqSdDKnrwzZHrUYdac7A7dXl9Q2Vflxpme15gUWQFA==}
+ '@rollup/rollup-linux-riscv64-musl@4.37.0':
+ resolution: {integrity: sha512-DTNwl6a3CfhGTAOYZ4KtYbdS8b+275LSLqJVJIrPa5/JuIufWWZ/QFvkxp52gpmguN95eujrM68ZG+zVxa8zHA==}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@rollup/rollup-linux-s390x-gnu@4.37.0':
+ resolution: {integrity: sha512-hZDDU5fgWvDdHFuExN1gBOhCuzo/8TMpidfOR+1cPZJflcEzXdCy1LjnklQdW8/Et9sryOPJAKAQRw8Jq7Tg+A==}
cpu: [s390x]
os: [linux]
- '@rollup/rollup-linux-x64-gnu@4.34.8':
- resolution: {integrity: sha512-8y7ED8gjxITUltTUEJLQdgpbPh1sUQ0kMTmufRF/Ns5tI9TNMNlhWtmPKKHCU0SilX+3MJkZ0zERYYGIVBYHIA==}
+ '@rollup/rollup-linux-x64-gnu@4.37.0':
+ resolution: {integrity: sha512-pKivGpgJM5g8dwj0ywBwe/HeVAUSuVVJhUTa/URXjxvoyTT/AxsLTAbkHkDHG7qQxLoW2s3apEIl26uUe08LVQ==}
cpu: [x64]
os: [linux]
- '@rollup/rollup-linux-x64-musl@4.34.8':
- resolution: {integrity: sha512-SCXcP0ZpGFIe7Ge+McxY5zKxiEI5ra+GT3QRxL0pMMtxPfpyLAKleZODi1zdRHkz5/BhueUrYtYVgubqe9JBNQ==}
+ '@rollup/rollup-linux-x64-musl@4.37.0':
+ resolution: {integrity: sha512-E2lPrLKE8sQbY/2bEkVTGDEk4/49UYRVWgj90MY8yPjpnGBQ+Xi1Qnr7b7UIWw1NOggdFQFOLZ8+5CzCiz143w==}
cpu: [x64]
os: [linux]
- '@rollup/rollup-win32-arm64-msvc@4.34.8':
- resolution: {integrity: sha512-YHYsgzZgFJzTRbth4h7Or0m5O74Yda+hLin0irAIobkLQFRQd1qWmnoVfwmKm9TXIZVAD0nZ+GEb2ICicLyCnQ==}
+ '@rollup/rollup-win32-arm64-msvc@4.37.0':
+ resolution: {integrity: sha512-Jm7biMazjNzTU4PrQtr7VS8ibeys9Pn29/1bm4ph7CP2kf21950LgN+BaE2mJ1QujnvOc6p54eWWiVvn05SOBg==}
cpu: [arm64]
os: [win32]
- '@rollup/rollup-win32-ia32-msvc@4.34.8':
- resolution: {integrity: sha512-r3NRQrXkHr4uWy5TOjTpTYojR9XmF0j/RYgKCef+Ag46FWUTltm5ziticv8LdNsDMehjJ543x/+TJAek/xBA2w==}
+ '@rollup/rollup-win32-ia32-msvc@4.37.0':
+ resolution: {integrity: sha512-e3/1SFm1OjefWICB2Ucstg2dxYDkDTZGDYgwufcbsxTHyqQps1UQf33dFEChBNmeSsTOyrjw2JJq0zbG5GF6RA==}
cpu: [ia32]
os: [win32]
- '@rollup/rollup-win32-x64-msvc@4.34.8':
- resolution: {integrity: sha512-U0FaE5O1BCpZSeE6gBl3c5ObhePQSfk9vDRToMmTkbhCOgW4jqvtS5LGyQ76L1fH8sM0keRp4uDTsbjiUyjk0g==}
+ '@rollup/rollup-win32-x64-msvc@4.37.0':
+ resolution: {integrity: sha512-LWbXUBwn/bcLx2sSsqy7pK5o+Nr+VCoRoAohfJ5C/aBio9nfJmGQqHAhU6pwxV/RmyTk5AqdySma7uwWGlmeuA==}
cpu: [x64]
os: [win32]
@@ -983,78 +847,84 @@ packages:
svelte: ^5.0.0
vite: ^6.0.0
- '@sveltejs/vite-plugin-svelte@5.0.1':
- resolution: {integrity: sha512-D5l5+STmywGoLST07T9mrqqFFU+xgv5fqyTWM+VbxTvQ6jujNn4h3lQNCvlwVYs4Erov8i0K5Rwr3LQtmBYmBw==}
+ '@sveltejs/vite-plugin-svelte@5.0.3':
+ resolution: {integrity: sha512-MCFS6CrQDu1yGwspm4qtli0e63vaPCehf6V7pIMP15AsWgMKrqDGCPFF/0kn4SP0ii4aySu4Pa62+fIRGFMjgw==}
engines: {node: ^18.0.0 || ^20.0.0 || >=22}
peerDependencies:
svelte: ^5.0.0
vite: ^6.0.0
- '@tauri-apps/api@2.2.0':
- resolution: {integrity: sha512-R8epOeZl1eJEl603aUMIGb4RXlhPjpgxbGVEaqY+0G5JG9vzV/clNlzTeqc+NLYXVqXcn8mb4c5b9pJIUDEyAg==}
+ '@tauri-apps/api@2.4.0':
+ resolution: {integrity: sha512-F1zXTsmwcCp+ocg6fbzD/YL0OHeSG1eynCag1UNlX2tD5+dlXy7eRbTu9cAcscPjcR7Nix7by2wiv/+VfWUieg==}
- '@tauri-apps/cli-darwin-arm64@2.2.7':
- resolution: {integrity: sha512-54kcpxZ3X1Rq+pPTzk3iIcjEVY4yv493uRx/80rLoAA95vAC0c//31Whz75UVddDjJfZvXlXZ3uSZ+bnCOnt0A==}
+ '@tauri-apps/cli-darwin-arm64@2.4.0':
+ resolution: {integrity: sha512-MVzYrahJBgDyzUJ2gNEU8H+0oCVEucN115+CVorFnidHcJ6DtDRMCaKLkpjOZNfJyag1WQ25fu7imvZSe0mz/g==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
- '@tauri-apps/cli-darwin-x64@2.2.7':
- resolution: {integrity: sha512-Vgu2XtBWemLnarB+6LqQeLanDlRj7CeFN//H8bVVdjbNzxcSxsvbLYMBP8+3boa7eBnjDrqMImRySSgL6IrwTw==}
+ '@tauri-apps/cli-darwin-x64@2.4.0':
+ resolution: {integrity: sha512-/4IdbWv6IWSuBn0WVe5JkiSIP1gZhXCZRcumSsYq3ZmOlq4BqXeXT36Oig5mlDnS/2/UpNS94kd8gOA1DNdIeQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
- '@tauri-apps/cli-linux-arm-gnueabihf@2.2.7':
- resolution: {integrity: sha512-+Clha2iQAiK9zoY/KKW0KLHkR0k36O78YLx5Sl98tWkwI3OBZFg5H5WT1plH/4sbZIS2aLFN6dw58/JlY9Bu/g==}
+ '@tauri-apps/cli-linux-arm-gnueabihf@2.4.0':
+ resolution: {integrity: sha512-rOjlk3Vd6R847LXds4pOAFKUL5NVdSWlaiQvr4H9WDUwIWWoxnj7SQfpryTtElDb2wV7a0BNaOCXCpyFEAXjkw==}
engines: {node: '>= 10'}
cpu: [arm]
os: [linux]
- '@tauri-apps/cli-linux-arm64-gnu@2.2.7':
- resolution: {integrity: sha512-Z/Lp4SQe6BUEOays9BQAEum2pvZF4w9igyXijP+WbkOejZx4cDvarFJ5qXrqSLmBh7vxrdZcLwoLk9U//+yQrg==}
+ '@tauri-apps/cli-linux-arm64-gnu@2.4.0':
+ resolution: {integrity: sha512-X/uCwao6R/weWT2y4f3JKJMeUsujo9H4nBMAv9RZhRsz93n9Amw9ETavAOP11pyhl57YkasvKTCRQN6FwsaoXg==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
- '@tauri-apps/cli-linux-arm64-musl@2.2.7':
- resolution: {integrity: sha512-+8HZ+txff/Y3YjAh80XcLXcX8kpGXVdr1P8AfjLHxHdS6QD4Md+acSxGTTNbplmHuBaSHJvuTvZf9tU1eDCTDg==}
+ '@tauri-apps/cli-linux-arm64-musl@2.4.0':
+ resolution: {integrity: sha512-GhvQtrTjadW3eLSmfrSfybSqgJMZzUXC+0WqDzFovLug3a1a1go0m9QK9YGvYLkyEpTY5zRxLtwv+tbZXN4tZw==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
- '@tauri-apps/cli-linux-x64-gnu@2.2.7':
- resolution: {integrity: sha512-ahlSnuCnUntblp9dG7/w5ZWZOdzRFi3zl0oScgt7GF4KNAOEa7duADsxPA4/FT2hLRa0SvpqtD4IYFvCxoVv3Q==}
+ '@tauri-apps/cli-linux-riscv64-gnu@2.4.0':
+ resolution: {integrity: sha512-NgeNihQ9uHS/ibMWLge5VA/BgsS/g8VPSVtCp8DSPyub3bBuCy79A8V+bzNKlMOiDVrqK4vQ//FS9kSxoJOtXw==}
+ engines: {node: '>= 10'}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@tauri-apps/cli-linux-x64-gnu@2.4.0':
+ resolution: {integrity: sha512-ebRmV2HLIVms1KlNNueQCp3OrXBv6cimU3mYEh5NbZ8dH88f2sF46dFCyPq8Qr/Zti4qPEaAArVG7RYFjfECPw==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
- '@tauri-apps/cli-linux-x64-musl@2.2.7':
- resolution: {integrity: sha512-+qKAWnJRSX+pjjRbKAQgTdFY8ecdcu8UdJ69i7wn3ZcRn2nMMzOO2LOMOTQV42B7/Q64D1pIpmZj9yblTMvadA==}
+ '@tauri-apps/cli-linux-x64-musl@2.4.0':
+ resolution: {integrity: sha512-FOp2cBFyq5LnUr3he95Z99PQm3nCSJv2GZNeH7UqmUpeHwdcYuhBERU7C+8VDJJPR98Q5fkcoV00Pc4nw0v5KQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
- '@tauri-apps/cli-win32-arm64-msvc@2.2.7':
- resolution: {integrity: sha512-aa86nRnrwT04u9D9fhf5JVssuAZlUCCc8AjqQjqODQjMd4BMA2+d4K9qBMpEG/1kVh95vZaNsLogjEaqSTTw4A==}
+ '@tauri-apps/cli-win32-arm64-msvc@2.4.0':
+ resolution: {integrity: sha512-SVf1wDagYsaFM+mpUYKmjNveKodcUSGPEM27WmMW4Enh6aXGzTJi4IYOE3GEFOJF1BpRNscslwE1Rd064kfpcg==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [win32]
- '@tauri-apps/cli-win32-ia32-msvc@2.2.7':
- resolution: {integrity: sha512-EiJ5/25tLSQOSGvv+t6o3ZBfOTKB5S3vb+hHQuKbfmKdRF0XQu2YPdIi1CQw1DU97ZAE0Dq4frvnyYEKWgMzVQ==}
+ '@tauri-apps/cli-win32-ia32-msvc@2.4.0':
+ resolution: {integrity: sha512-j+fOFVeSSejk9hrUePY7bJuaYr+80xr+ftjXzxCj0CS0d2oSbq+lT8/zS514WemJk9e9yxUus+2ke/Ng17wkkQ==}
engines: {node: '>= 10'}
cpu: [ia32]
os: [win32]
- '@tauri-apps/cli-win32-x64-msvc@2.2.7':
- resolution: {integrity: sha512-ZB8Kw90j8Ld+9tCWyD2fWCYfIrzbQohJ4DJSidNwbnehlZzP7wAz6Z3xjsvUdKtQ3ibtfoeTqVInzCCEpI+pWg==}
+ '@tauri-apps/cli-win32-x64-msvc@2.4.0':
+ resolution: {integrity: sha512-nv84b3a8eI5Y7ksTLBKjjvtr9NOlAGGGo7OJbjKT+xZLdiPOZ0nJ2cT+4IdfnNAZ33pKJugAfuj1fBvQKeTy0w==}
engines: {node: '>= 10'}
cpu: [x64]
os: [win32]
- '@tauri-apps/cli@2.2.7':
- resolution: {integrity: sha512-ZnsS2B4BplwXP37celanNANiIy8TCYhvg5RT09n72uR/o+navFZtGpFSqljV8fy1Y4ixIPds8FrGSXJCN2BerA==}
+ '@tauri-apps/cli@2.4.0':
+ resolution: {integrity: sha512-Esg7s20tuSULd2YF3lmtMa1vF7yr5eh/TlBHXjEyrC+XSD9aBxHVoXb6oz7oKybDY9Jf9OiBa0bf2PbybcmOLA==}
engines: {node: '>= 10'}
hasBin: true
@@ -1073,51 +943,51 @@ packages:
'@types/unist@2.0.11':
resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==}
- '@typescript-eslint/eslint-plugin@8.25.0':
- resolution: {integrity: sha512-VM7bpzAe7JO/BFf40pIT1lJqS/z1F8OaSsUB3rpFJucQA4cOSuH2RVVVkFULN+En0Djgr29/jb4EQnedUo95KA==}
+ '@typescript-eslint/eslint-plugin@8.28.0':
+ resolution: {integrity: sha512-lvFK3TCGAHsItNdWZ/1FkvpzCxTHUVuFrdnOGLMa0GGCFIbCgQWVk3CzCGdA7kM3qGVc+dfW9tr0Z/sHnGDFyg==}
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: '>=4.8.4 <5.9.0'
- '@typescript-eslint/parser@8.25.0':
- resolution: {integrity: sha512-4gbs64bnbSzu4FpgMiQ1A+D+urxkoJk/kqlDJ2W//5SygaEiAP2B4GoS7TEdxgwol2el03gckFV9lJ4QOMiiHg==}
+ '@typescript-eslint/parser@8.28.0':
+ resolution: {integrity: sha512-LPcw1yHD3ToaDEoljFEfQ9j2xShY367h7FZ1sq5NJT9I3yj4LHer1Xd1yRSOdYy9BpsrxU7R+eoDokChYM53lQ==}
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: '>=4.8.4 <5.9.0'
- '@typescript-eslint/scope-manager@8.25.0':
- resolution: {integrity: sha512-6PPeiKIGbgStEyt4NNXa2ru5pMzQ8OYKO1hX1z53HMomrmiSB+R5FmChgQAP1ro8jMtNawz+TRQo/cSXrauTpg==}
+ '@typescript-eslint/scope-manager@8.28.0':
+ resolution: {integrity: sha512-u2oITX3BJwzWCapoZ/pXw6BCOl8rJP4Ij/3wPoGvY8XwvXflOzd1kLrDUUUAIEdJSFh+ASwdTHqtan9xSg8buw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/type-utils@8.25.0':
- resolution: {integrity: sha512-d77dHgHWnxmXOPJuDWO4FDWADmGQkN5+tt6SFRZz/RtCWl4pHgFl3+WdYCn16+3teG09DY6XtEpf3gGD0a186g==}
+ '@typescript-eslint/type-utils@8.28.0':
+ resolution: {integrity: sha512-oRoXu2v0Rsy/VoOGhtWrOKDiIehvI+YNrDk5Oqj40Mwm0Yt01FC/Q7nFqg088d3yAsR1ZcZFVfPCTTFCe/KPwg==}
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: '>=4.8.4 <5.9.0'
- '@typescript-eslint/types@8.25.0':
- resolution: {integrity: sha512-+vUe0Zb4tkNgznQwicsvLUJgZIRs6ITeWSCclX1q85pR1iOiaj+4uZJIUp//Z27QWu5Cseiw3O3AR8hVpax7Aw==}
+ '@typescript-eslint/types@8.28.0':
+ resolution: {integrity: sha512-bn4WS1bkKEjx7HqiwG2JNB3YJdC1q6Ue7GyGlwPHyt0TnVq6TtD/hiOdTZt71sq0s7UzqBFXD8t8o2e63tXgwA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/typescript-estree@8.25.0':
- resolution: {integrity: sha512-ZPaiAKEZ6Blt/TPAx5Ot0EIB/yGtLI2EsGoY6F7XKklfMxYQyvtL+gT/UCqkMzO0BVFHLDlzvFqQzurYahxv9Q==}
+ '@typescript-eslint/typescript-estree@8.28.0':
+ resolution: {integrity: sha512-H74nHEeBGeklctAVUvmDkxB1mk+PAZ9FiOMPFncdqeRBXxk1lWSYraHw8V12b7aa6Sg9HOBNbGdSHobBPuQSuA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- typescript: '>=4.8.4 <5.8.0'
+ typescript: '>=4.8.4 <5.9.0'
- '@typescript-eslint/utils@8.25.0':
- resolution: {integrity: sha512-syqRbrEv0J1wywiLsK60XzHnQe/kRViI3zwFALrNEgnntn1l24Ra2KvOAWwWbWZ1lBZxZljPDGOq967dsl6fkA==}
+ '@typescript-eslint/utils@8.28.0':
+ resolution: {integrity: sha512-OELa9hbTYciYITqgurT1u/SzpQVtDLmQMFzy/N8pQE+tefOyCWT79jHsav294aTqV1q1u+VzqDGbuujvRYaeSQ==}
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: '>=4.8.4 <5.9.0'
- '@typescript-eslint/visitor-keys@8.25.0':
- resolution: {integrity: sha512-kCYXKAum9CecGVHGij7muybDfTS2sD3t0L4bJsEZLkyrXUImiCTq1M3LG2SRtOhiHFwMR9wAFplpT6XHYjTkwQ==}
+ '@typescript-eslint/visitor-keys@8.28.0':
+ resolution: {integrity: sha512-hbn8SZ8w4u2pRwgQ1GlUrPKE+t2XvcCW5tTRF7j6SMYIuYG37XuzIW44JCZPa36evi0Oy2SnM664BlIaAuQcvg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@unocss/astro@66.0.0':
@@ -1365,6 +1235,10 @@ packages:
resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
engines: {node: '>=12'}
+ clsx@2.1.1:
+ resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
+ engines: {node: '>=6'}
+
color-convert@2.0.1:
resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
engines: {node: '>=7.0.0'}
@@ -1388,8 +1262,8 @@ packages:
resolution: {integrity: sha512-EiPU8G6dQG0GFHNR8ljnZFki/8a+cQwEQ+7wpxdChl02Q8HXlwEZWD5lqAF8vC2sEC3Tehr8hy7vErz88LHyUA==}
engines: {node: ^14.18.0 || >=16.10.0}
- covector@0.12.3:
- resolution: {integrity: sha512-9LNME5eb4/KMdWD2jyJ4XX6CvD45xsF9hmxTQWAoDSuDGKdyh98wzUupz4BrJ9iviR8R9pI3D6Mozv13UX0g+A==}
+ covector@0.12.4:
+ resolution: {integrity: sha512-qRK0Qg1FaRkB7dFDzzKiTn9H3EAMb83N5Hl6KVol2zpenmkKz8A7aa+7C49Z7LHtSgKkIWkqxIut8qcN6pRnag==}
engines: {node: '>=18'}
hasBin: true
@@ -1407,8 +1281,8 @@ packages:
csstype@3.1.3:
resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
- ctrlc-windows@2.1.0:
- resolution: {integrity: sha512-OrX5KI+K+2NMN91QIhYZdW7VDO2YsSdTZW494pA7Nvw/wBdU2hz+MGP006bR978zOTrG6Q8EIeJvLJmLqc6MsQ==}
+ ctrlc-windows@2.2.0:
+ resolution: {integrity: sha512-t9y568r+T8FUuBaqKK60YGFJdj3b3ktdJW9WXIT3CuBdQhAOYdSZu75jFUN0Ay4Yz5HHicVQqAYCwcnqhOn23g==}
debug@4.4.0:
resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==}
@@ -1457,13 +1331,8 @@ packages:
resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
engines: {node: '>=0.12'}
- esbuild@0.23.1:
- resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==}
- engines: {node: '>=18'}
- hasBin: true
-
- esbuild@0.24.2:
- resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==}
+ esbuild@0.25.1:
+ resolution: {integrity: sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==}
engines: {node: '>=18'}
hasBin: true
@@ -1475,8 +1344,8 @@ packages:
resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
engines: {node: '>=10'}
- eslint-config-prettier@10.0.1:
- resolution: {integrity: sha512-lZBts941cyJyeaooiKxAtzoPHTN+GbQTJFAIdQbRhA4/8whaAraEh47Whw/ZFfrjNSnlAxqfm9i0XVAEkULjCw==}
+ eslint-config-prettier@10.1.1:
+ resolution: {integrity: sha512-4EQQr6wXwS+ZJSzaR5ZCrYgLxqvUjdXctaEtBqHcbkW944B1NQyO4qpdHQbXBONfwxXdkAY81HH4+LUfrg+zPw==}
hasBin: true
peerDependencies:
eslint: '>=7.0.0'
@@ -1485,8 +1354,8 @@ packages:
resolution: {integrity: sha512-XjVGBhtDZJfyuhIxnQ/WMm385RbX3DBu7H1J7HNNhmB2tnGxMeqVSnYv79oAj992ayvIBZghsymwkYFS6cGH4Q==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- eslint-scope@8.2.0:
- resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==}
+ eslint-scope@8.3.0:
+ resolution: {integrity: sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
eslint-visitor-keys@3.4.3:
@@ -1497,8 +1366,8 @@ packages:
resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- eslint@9.21.0:
- resolution: {integrity: sha512-KjeihdFqTPhOMXTt7StsDxriV4n66ueuF/jfPNC3j/lduHwr/ijDwJMsF+wyMJethgiKi5wniIE243vi07d3pg==}
+ eslint@9.23.0:
+ resolution: {integrity: sha512-jV7AbNoFPAY1EkFYpLq5bslU9NLNO8xnEeQXwErNibVryjk67wHVmddTBilc5srIttJDBrB0eMHKZBFbSIABCw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
hasBin: true
peerDependencies:
@@ -1507,8 +1376,8 @@ packages:
jiti:
optional: true
- esm-env@1.2.1:
- resolution: {integrity: sha512-U9JedYYjCnadUlXk7e1Kr+aENQhtUaoaV9+gZm1T8LC/YBAPJx3NSPIAurFOC0U5vrdSevnUJS2/wUVxGwPhng==}
+ esm-env@1.2.2:
+ resolution: {integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==}
espree@10.3.0:
resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==}
@@ -1518,8 +1387,8 @@ packages:
resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==}
engines: {node: '>=0.10'}
- esrap@1.2.3:
- resolution: {integrity: sha512-ZlQmCCK+n7SGoqo7DnfKaP1sJZa49P01/dXzmjCASSo04p72w8EksT2NMK8CEX8DhKsfJXANioIw8VyHNsBfvQ==}
+ esrap@1.4.5:
+ resolution: {integrity: sha512-CjNMjkBWWZeHn+VX+gS8YvFwJ5+NDhg8aWZBSFJPR8qQduDNjbJodA2WcwCm7uQa5Rjqj+nZvVmceg1RbHFB9g==}
esrecurse@4.3.0:
resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
@@ -1550,8 +1419,8 @@ packages:
fast-deep-equal@3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
- fast-glob@3.3.2:
- resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
+ fast-glob@3.3.3:
+ resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==}
engines: {node: '>=8.6.0'}
fast-json-stable-stringify@2.1.0:
@@ -1564,14 +1433,14 @@ packages:
resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==}
engines: {node: '>=6'}
- fastq@1.17.1:
- resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
+ fastq@1.19.1:
+ resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==}
fault@1.0.4:
resolution: {integrity: sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==}
- fdir@6.4.2:
- resolution: {integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==}
+ fdir@6.4.3:
+ resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==}
peerDependencies:
picomatch: ^3 || ^4
peerDependenciesMeta:
@@ -1598,8 +1467,8 @@ packages:
resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==}
hasBin: true
- flatted@3.3.2:
- resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==}
+ flatted@3.3.3:
+ resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==}
format@0.2.2:
resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==}
@@ -1620,8 +1489,8 @@ packages:
resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
engines: {node: 6.* || 8.* || >= 10.*}
- get-tsconfig@4.8.1:
- resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==}
+ get-tsconfig@4.10.0:
+ resolution: {integrity: sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==}
glob-parent@5.1.2:
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
@@ -1640,8 +1509,8 @@ packages:
resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
engines: {node: '>=18'}
- globals@15.14.0:
- resolution: {integrity: sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==}
+ globals@15.15.0:
+ resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==}
engines: {node: '>=18'}
globby@11.1.0:
@@ -1674,8 +1543,8 @@ packages:
resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
engines: {node: '>= 4'}
- import-fresh@3.3.0:
- resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
+ import-fresh@3.3.1:
+ resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
engines: {node: '>=6'}
imurmurhash@0.1.4:
@@ -1703,8 +1572,8 @@ packages:
resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==}
engines: {node: '>=4'}
- is-core-module@2.15.1:
- resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==}
+ is-core-module@2.16.1:
+ resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==}
engines: {node: '>= 0.4'}
is-decimal@1.0.4:
@@ -1852,23 +1721,23 @@ packages:
engines: {node: '>= 14.0.0'}
hasBin: true
- mrmime@2.0.0:
- resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==}
+ mrmime@2.0.1:
+ resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==}
engines: {node: '>=10'}
ms@2.1.3:
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
- nanoid@3.3.8:
- resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==}
+ nanoid@3.3.11:
+ resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
natural-compare@1.4.0:
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
- node-fetch-native@1.6.4:
- resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==}
+ node-fetch-native@1.6.6:
+ resolution: {integrity: sha512-8Mc2HhqPdlIfedsuZoc3yioPuzp6b+L5jRCRY1QzuWZh2EGJVQrGppC6V6cF0bLdbW0+O2YpqCA25aF/1lvipQ==}
node-fetch@2.6.7:
resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==}
@@ -1956,28 +1825,28 @@ packages:
pino-std-serializers@7.0.0:
resolution: {integrity: sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==}
- pino@9.5.0:
- resolution: {integrity: sha512-xSEmD4pLnV54t0NOUN16yCl7RIB1c5UUOse5HSyEXtBp+FgFQyPeDutc+Q2ZO7/22vImV7VfEjH/1zV2QuqvYw==}
+ pino@9.6.0:
+ resolution: {integrity: sha512-i85pKRCt4qMjZ1+L7sy2Ag4t1atFcdbEt76+7iRJn1g2BvsnRMGu9p8pivl9fs63M2kF/A0OacFZhTub+m/qMg==}
hasBin: true
pkg-types@1.3.1:
resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==}
- postcss@8.5.1:
- resolution: {integrity: sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==}
+ postcss@8.5.3:
+ resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==}
engines: {node: ^10 || ^12 || >=14}
prelude-ls@1.2.1:
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
engines: {node: '>= 0.8.0'}
- prettier@3.5.2:
- resolution: {integrity: sha512-lc6npv5PH7hVqozBR7lkBNOGXV9vMwROAPlumdBkX0wTbbzPu/U1hk5yL8p2pt4Xoc+2mkT8t/sow2YrV/M5qg==}
+ prettier@3.5.3:
+ resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==}
engines: {node: '>=14'}
hasBin: true
- process-warning@4.0.0:
- resolution: {integrity: sha512-/MyYDxttz7DfGMMHiysAsFE4qF+pQYAA8ziO/3NcRVrQ5fSk+Mns4QZA/oRPFzvcqNoVJXQNWNAsdwBXLUkQKw==}
+ process-warning@4.0.1:
+ resolution: {integrity: sha512-3c2LzQ3rY9d0hc1emcsHhfT9Jwz0cChib/QN89oME2R451w5fy3f0afAhERFZAwrbDU43wk12d0ORBpDVME50Q==}
process@0.11.10:
resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
@@ -1996,8 +1865,8 @@ packages:
randombytes@2.1.0:
resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
- readable-stream@4.5.2:
- resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==}
+ readable-stream@4.7.0:
+ resolution: {integrity: sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
readdirp@3.6.0:
@@ -2036,16 +1905,17 @@ packages:
resolve-pkg-maps@1.0.0:
resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
- resolve@1.22.8:
- resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
+ resolve@1.22.10:
+ resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==}
+ engines: {node: '>= 0.4'}
hasBin: true
- reusify@1.0.4:
- resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
+ reusify@1.1.0:
+ resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==}
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
- rollup@4.34.8:
- resolution: {integrity: sha512-489gTVMzAYdiZHFVA/ig/iYFllCcWFHMvUHI1rpFmkoUtRlQxqh6/yiNqnYibjMZ2b/+FUQwldG+aLsEt6bglQ==}
+ rollup@4.37.0:
+ resolution: {integrity: sha512-iAtQy/L4QFU+rTJ1YUjXqJOJzuwEghqWzCEYD2FEghT7Gsy1VdABntrO4CLopA5IkflTyqNiLNwPcOJ3S7UKLg==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
@@ -2062,8 +1932,8 @@ packages:
resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==}
engines: {node: '>=10'}
- semver@7.6.3:
- resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==}
+ semver@7.7.1:
+ resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==}
engines: {node: '>=10'}
hasBin: true
@@ -2081,8 +1951,8 @@ packages:
shellwords@0.1.1:
resolution: {integrity: sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==}
- sirv@3.0.0:
- resolution: {integrity: sha512-BPwJGUeDaDCHihkORDchNyyTvWFhcusy1XMmhEVTQTwGeybFbp8YEmB+njbPnth1FibULBSBVwCQni25XlCUDg==}
+ sirv@3.0.1:
+ resolution: {integrity: sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==}
engines: {node: '>=18'}
sisteransi@1.0.5:
@@ -2113,8 +1983,8 @@ packages:
resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==}
engines: {node: '>= 10.x'}
- stacktrace-parser@0.1.10:
- resolution: {integrity: sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==}
+ stacktrace-parser@0.1.11:
+ resolution: {integrity: sha512-WjlahMgHmCJpqzU8bIBy4qtsZdU9lRlcZE3Lvyej6t4tuOuv1vk57OW3MBrj6hXBFx/nNoC9MPMTcr5YA7NQbg==}
engines: {node: '>=6'}
string-width@4.2.3:
@@ -2144,12 +2014,12 @@ packages:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'}
- svelte@5.10.0:
- resolution: {integrity: sha512-jGJFpB9amHLLQZBbAuQ6csH7WlTvGx4cO4wSSNcgGcx9vDGMTCZzTREf6/wKhVUQDoK+GapgvLQPZHa3e9MOAA==}
+ svelte@5.20.4:
+ resolution: {integrity: sha512-2Mo/AfObaw9zuD0u1JJ7sOVzRCGcpETEyDkLbtkcctWpCMCIyT0iz83xD8JT29SR7O4SgswuPRIDYReYF/607A==}
engines: {node: '>=18'}
- terser@5.36.0:
- resolution: {integrity: sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==}
+ terser@5.39.0:
+ resolution: {integrity: sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==}
engines: {node: '>=10'}
hasBin: true
@@ -2159,8 +2029,8 @@ packages:
tinyexec@0.3.2:
resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==}
- tinyglobby@0.2.10:
- resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==}
+ tinyglobby@0.2.12:
+ resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==}
engines: {node: '>=12.0.0'}
to-regex-range@5.0.1:
@@ -2199,15 +2069,15 @@ packages:
resolution: {integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==}
engines: {node: '>=8'}
- typescript-eslint@8.25.0:
- resolution: {integrity: sha512-TxRdQQLH4g7JkoFlYG3caW5v1S6kEkz8rqt80iQJZUYPq1zD1Ra7HfQBJJ88ABRaMvHAXnwRvRB4V+6sQ9xN5Q==}
+ typescript-eslint@8.28.0:
+ resolution: {integrity: sha512-jfZtxJoHm59bvoCMYCe2BM0/baMswRhMmYhy+w6VfcyHrjxZ0OJe0tGasydCpIpA+A/WIJhTyZfb3EtwNC/kHQ==}
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: '>=4.8.4 <5.9.0'
- typescript@5.7.3:
- resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==}
+ typescript@5.8.2:
+ resolution: {integrity: sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==}
engines: {node: '>=14.17'}
hasBin: true
@@ -2248,8 +2118,8 @@ packages:
vfile@4.2.1:
resolution: {integrity: sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==}
- vite@6.0.9:
- resolution: {integrity: sha512-MSgUxHcaXLtnBPktkbUSoQUANApKYuxZ6DrbVENlIorbhL2dZydTLaZ01tjUoE3szeFzlFk9ANOKk0xurh4MKA==}
+ vite@6.2.3:
+ resolution: {integrity: sha512-IzwM54g4y9JA/xAeBPNaDXiBF8Jsgl3VBQ2YQ/wOY6fyW3xMdSoltIV3Bo59DErdqdE6RxUfv8W69DvUorE4Eg==}
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
hasBin: true
peerDependencies:
@@ -2288,8 +2158,8 @@ packages:
yaml:
optional: true
- vitefu@1.0.4:
- resolution: {integrity: sha512-y6zEE3PQf6uu/Mt6DTJ9ih+kyJLr4XcSgHR2zUkM8SWDhuixEJxfJ6CZGMHh1Ec3vPLoEA0IHU5oWzVqw8ulow==}
+ vitefu@1.0.6:
+ resolution: {integrity: sha512-+Rex1GlappUyNN6UfwbVZne/9cYC4+R2XDk9xkNXBKMw6HQagdX9PgZ8V2v1WUSK1wfBLp7qbI1+XSNIlB1xmA==}
peerDependencies:
vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0
peerDependenciesMeta:
@@ -2371,8 +2241,8 @@ packages:
peerDependencies:
zod: ^3.18.0
- zod@3.23.8:
- resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==}
+ zod@3.24.2:
+ resolution: {integrity: sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==}
zwitch@1.0.5:
resolution: {integrity: sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==}
@@ -2381,7 +2251,7 @@ snapshots:
'@ampproject/remapping@2.3.0':
dependencies:
- '@jridgewell/gen-mapping': 0.3.5
+ '@jridgewell/gen-mapping': 0.3.8
'@jridgewell/trace-mapping': 0.3.25
'@antfu/install-pkg@1.0.0':
@@ -2395,11 +2265,11 @@ snapshots:
'@babel/helper-validator-identifier@7.25.9': {}
- '@babel/parser@7.26.5':
+ '@babel/parser@7.27.0':
dependencies:
- '@babel/types': 7.26.5
+ '@babel/types': 7.27.0
- '@babel/types@7.26.5':
+ '@babel/types@7.27.0':
dependencies:
'@babel/helper-string-parser': 7.25.9
'@babel/helper-validator-identifier': 7.25.9
@@ -2423,7 +2293,7 @@ snapshots:
dependencies:
'@covector/files': 0.8.0
effection: 2.0.8(mocha@10.8.2)
- semver: 7.6.3
+ semver: 7.7.1
transitivePeerDependencies:
- encoding
- mocha
@@ -2467,9 +2337,9 @@ snapshots:
'@covector/toml': 0.2.0
globby: 11.1.0
js-yaml: 4.1.0
- semver: 7.6.3
- zod: 3.23.8
- zod-validation-error: 1.5.0(zod@3.23.8)
+ semver: 7.7.1
+ zod: 3.24.2
+ zod-validation-error: 1.5.0(zod@3.24.2)
'@covector/toml@0.2.0': {}
@@ -2501,7 +2371,7 @@ snapshots:
dependencies:
'@effection/core': 2.2.3
chalk: 4.1.2
- stacktrace-parser: 0.1.10
+ stacktrace-parser: 0.1.11
'@effection/mocha@2.0.8(mocha@10.8.2)':
dependencies:
@@ -2513,7 +2383,7 @@ snapshots:
'@effection/process@2.1.4':
dependencies:
cross-spawn: 7.0.6
- ctrlc-windows: 2.1.0
+ ctrlc-windows: 2.2.0
effection: 2.0.8(mocha@10.8.2)
shellwords: 0.1.1
transitivePeerDependencies:
@@ -2528,156 +2398,84 @@ snapshots:
dependencies:
'@effection/core': 2.2.3
- '@esbuild/aix-ppc64@0.23.1':
- optional: true
-
- '@esbuild/aix-ppc64@0.24.2':
- optional: true
-
- '@esbuild/android-arm64@0.23.1':
+ '@esbuild/aix-ppc64@0.25.1':
optional: true
- '@esbuild/android-arm64@0.24.2':
+ '@esbuild/android-arm64@0.25.1':
optional: true
- '@esbuild/android-arm@0.23.1':
+ '@esbuild/android-arm@0.25.1':
optional: true
- '@esbuild/android-arm@0.24.2':
+ '@esbuild/android-x64@0.25.1':
optional: true
- '@esbuild/android-x64@0.23.1':
+ '@esbuild/darwin-arm64@0.25.1':
optional: true
- '@esbuild/android-x64@0.24.2':
+ '@esbuild/darwin-x64@0.25.1':
optional: true
- '@esbuild/darwin-arm64@0.23.1':
+ '@esbuild/freebsd-arm64@0.25.1':
optional: true
- '@esbuild/darwin-arm64@0.24.2':
+ '@esbuild/freebsd-x64@0.25.1':
optional: true
- '@esbuild/darwin-x64@0.23.1':
+ '@esbuild/linux-arm64@0.25.1':
optional: true
- '@esbuild/darwin-x64@0.24.2':
+ '@esbuild/linux-arm@0.25.1':
optional: true
- '@esbuild/freebsd-arm64@0.23.1':
+ '@esbuild/linux-ia32@0.25.1':
optional: true
- '@esbuild/freebsd-arm64@0.24.2':
+ '@esbuild/linux-loong64@0.25.1':
optional: true
- '@esbuild/freebsd-x64@0.23.1':
+ '@esbuild/linux-mips64el@0.25.1':
optional: true
- '@esbuild/freebsd-x64@0.24.2':
+ '@esbuild/linux-ppc64@0.25.1':
optional: true
- '@esbuild/linux-arm64@0.23.1':
+ '@esbuild/linux-riscv64@0.25.1':
optional: true
- '@esbuild/linux-arm64@0.24.2':
+ '@esbuild/linux-s390x@0.25.1':
optional: true
- '@esbuild/linux-arm@0.23.1':
+ '@esbuild/linux-x64@0.25.1':
optional: true
- '@esbuild/linux-arm@0.24.2':
+ '@esbuild/netbsd-arm64@0.25.1':
optional: true
- '@esbuild/linux-ia32@0.23.1':
+ '@esbuild/netbsd-x64@0.25.1':
optional: true
- '@esbuild/linux-ia32@0.24.2':
+ '@esbuild/openbsd-arm64@0.25.1':
optional: true
- '@esbuild/linux-loong64@0.23.1':
+ '@esbuild/openbsd-x64@0.25.1':
optional: true
- '@esbuild/linux-loong64@0.24.2':
+ '@esbuild/sunos-x64@0.25.1':
optional: true
- '@esbuild/linux-mips64el@0.23.1':
+ '@esbuild/win32-arm64@0.25.1':
optional: true
- '@esbuild/linux-mips64el@0.24.2':
+ '@esbuild/win32-ia32@0.25.1':
optional: true
- '@esbuild/linux-ppc64@0.23.1':
+ '@esbuild/win32-x64@0.25.1':
optional: true
- '@esbuild/linux-ppc64@0.24.2':
- optional: true
-
- '@esbuild/linux-riscv64@0.23.1':
- optional: true
-
- '@esbuild/linux-riscv64@0.24.2':
- optional: true
-
- '@esbuild/linux-s390x@0.23.1':
- optional: true
-
- '@esbuild/linux-s390x@0.24.2':
- optional: true
-
- '@esbuild/linux-x64@0.23.1':
- optional: true
-
- '@esbuild/linux-x64@0.24.2':
- optional: true
-
- '@esbuild/netbsd-arm64@0.24.2':
- optional: true
-
- '@esbuild/netbsd-x64@0.23.1':
- optional: true
-
- '@esbuild/netbsd-x64@0.24.2':
- optional: true
-
- '@esbuild/openbsd-arm64@0.23.1':
- optional: true
-
- '@esbuild/openbsd-arm64@0.24.2':
- optional: true
-
- '@esbuild/openbsd-x64@0.23.1':
- optional: true
-
- '@esbuild/openbsd-x64@0.24.2':
- optional: true
-
- '@esbuild/sunos-x64@0.23.1':
- optional: true
-
- '@esbuild/sunos-x64@0.24.2':
- optional: true
-
- '@esbuild/win32-arm64@0.23.1':
- optional: true
-
- '@esbuild/win32-arm64@0.24.2':
- optional: true
-
- '@esbuild/win32-ia32@0.23.1':
- optional: true
-
- '@esbuild/win32-ia32@0.24.2':
- optional: true
-
- '@esbuild/win32-x64@0.23.1':
- optional: true
-
- '@esbuild/win32-x64@0.24.2':
- optional: true
-
- '@eslint-community/eslint-utils@4.4.1(eslint@9.21.0(jiti@2.4.2))':
+ '@eslint-community/eslint-utils@4.4.1(eslint@9.23.0(jiti@2.4.2))':
dependencies:
- eslint: 9.21.0(jiti@2.4.2)
+ eslint: 9.23.0(jiti@2.4.2)
eslint-visitor-keys: 3.4.3
'@eslint-community/regexpp@4.12.1': {}
@@ -2690,25 +2488,27 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@eslint/config-helpers@0.2.0': {}
+
'@eslint/core@0.12.0':
dependencies:
'@types/json-schema': 7.0.15
- '@eslint/eslintrc@3.3.0':
+ '@eslint/eslintrc@3.3.1':
dependencies:
ajv: 6.12.6
debug: 4.4.0(supports-color@8.1.1)
espree: 10.3.0
globals: 14.0.0
ignore: 5.3.2
- import-fresh: 3.3.0
+ import-fresh: 3.3.1
js-yaml: 4.1.0
minimatch: 3.1.2
strip-json-comments: 3.1.1
transitivePeerDependencies:
- supports-color
- '@eslint/js@9.21.0': {}
+ '@eslint/js@9.23.0': {}
'@eslint/object-schema@2.1.6': {}
@@ -2730,11 +2530,11 @@ snapshots:
'@humanwhocodes/retry@0.4.2': {}
- '@iconify-json/codicon@1.2.6':
+ '@iconify-json/codicon@1.2.12':
dependencies:
'@iconify/types': 2.0.0
- '@iconify-json/ph@1.2.1':
+ '@iconify-json/ph@1.2.2':
dependencies:
'@iconify/types': 2.0.0
@@ -2746,14 +2546,14 @@ snapshots:
'@antfu/utils': 8.1.1
'@iconify/types': 2.0.0
debug: 4.4.0(supports-color@8.1.1)
- globals: 15.14.0
+ globals: 15.15.0
kolorist: 1.8.0
local-pkg: 1.0.0
mlly: 1.7.4
transitivePeerDependencies:
- supports-color
- '@jridgewell/gen-mapping@0.3.5':
+ '@jridgewell/gen-mapping@0.3.8':
dependencies:
'@jridgewell/set-array': 1.2.1
'@jridgewell/sourcemap-codec': 1.5.0
@@ -2765,7 +2565,7 @@ snapshots:
'@jridgewell/source-map@0.3.6':
dependencies:
- '@jridgewell/gen-mapping': 0.3.5
+ '@jridgewell/gen-mapping': 0.3.8
'@jridgewell/trace-mapping': 0.3.25
'@jridgewell/sourcemap-codec@1.5.0': {}
@@ -2785,168 +2585,175 @@ snapshots:
'@nodelib/fs.walk@1.2.8':
dependencies:
'@nodelib/fs.scandir': 2.1.5
- fastq: 1.17.1
+ fastq: 1.19.1
'@polka/url@1.0.0-next.28': {}
- '@rollup/plugin-node-resolve@16.0.0(rollup@4.34.8)':
+ '@rollup/plugin-node-resolve@16.0.1(rollup@4.37.0)':
dependencies:
- '@rollup/pluginutils': 5.1.4(rollup@4.34.8)
+ '@rollup/pluginutils': 5.1.4(rollup@4.37.0)
'@types/resolve': 1.20.2
deepmerge: 4.3.1
is-module: 1.0.0
- resolve: 1.22.8
+ resolve: 1.22.10
optionalDependencies:
- rollup: 4.34.8
+ rollup: 4.37.0
- '@rollup/plugin-terser@0.4.4(rollup@4.34.8)':
+ '@rollup/plugin-terser@0.4.4(rollup@4.37.0)':
dependencies:
serialize-javascript: 6.0.2
smob: 1.5.0
- terser: 5.36.0
+ terser: 5.39.0
optionalDependencies:
- rollup: 4.34.8
+ rollup: 4.37.0
- '@rollup/plugin-typescript@11.1.6(rollup@4.34.8)(tslib@2.8.1)(typescript@5.7.3)':
+ '@rollup/plugin-typescript@12.1.2(rollup@4.37.0)(tslib@2.8.1)(typescript@5.8.2)':
dependencies:
- '@rollup/pluginutils': 5.1.4(rollup@4.34.8)
- resolve: 1.22.8
- typescript: 5.7.3
+ '@rollup/pluginutils': 5.1.4(rollup@4.37.0)
+ resolve: 1.22.10
+ typescript: 5.8.2
optionalDependencies:
- rollup: 4.34.8
+ rollup: 4.37.0
tslib: 2.8.1
- '@rollup/pluginutils@5.1.4(rollup@4.34.8)':
+ '@rollup/pluginutils@5.1.4(rollup@4.37.0)':
dependencies:
'@types/estree': 1.0.6
estree-walker: 2.0.2
picomatch: 4.0.2
optionalDependencies:
- rollup: 4.34.8
+ rollup: 4.37.0
+
+ '@rollup/rollup-android-arm-eabi@4.37.0':
+ optional: true
- '@rollup/rollup-android-arm-eabi@4.34.8':
+ '@rollup/rollup-android-arm64@4.37.0':
optional: true
- '@rollup/rollup-android-arm64@4.34.8':
+ '@rollup/rollup-darwin-arm64@4.37.0':
optional: true
- '@rollup/rollup-darwin-arm64@4.34.8':
+ '@rollup/rollup-darwin-x64@4.37.0':
optional: true
- '@rollup/rollup-darwin-x64@4.34.8':
+ '@rollup/rollup-freebsd-arm64@4.37.0':
optional: true
- '@rollup/rollup-freebsd-arm64@4.34.8':
+ '@rollup/rollup-freebsd-x64@4.37.0':
optional: true
- '@rollup/rollup-freebsd-x64@4.34.8':
+ '@rollup/rollup-linux-arm-gnueabihf@4.37.0':
optional: true
- '@rollup/rollup-linux-arm-gnueabihf@4.34.8':
+ '@rollup/rollup-linux-arm-musleabihf@4.37.0':
optional: true
- '@rollup/rollup-linux-arm-musleabihf@4.34.8':
+ '@rollup/rollup-linux-arm64-gnu@4.37.0':
optional: true
- '@rollup/rollup-linux-arm64-gnu@4.34.8':
+ '@rollup/rollup-linux-arm64-musl@4.37.0':
optional: true
- '@rollup/rollup-linux-arm64-musl@4.34.8':
+ '@rollup/rollup-linux-loongarch64-gnu@4.37.0':
optional: true
- '@rollup/rollup-linux-loongarch64-gnu@4.34.8':
+ '@rollup/rollup-linux-powerpc64le-gnu@4.37.0':
optional: true
- '@rollup/rollup-linux-powerpc64le-gnu@4.34.8':
+ '@rollup/rollup-linux-riscv64-gnu@4.37.0':
optional: true
- '@rollup/rollup-linux-riscv64-gnu@4.34.8':
+ '@rollup/rollup-linux-riscv64-musl@4.37.0':
optional: true
- '@rollup/rollup-linux-s390x-gnu@4.34.8':
+ '@rollup/rollup-linux-s390x-gnu@4.37.0':
optional: true
- '@rollup/rollup-linux-x64-gnu@4.34.8':
+ '@rollup/rollup-linux-x64-gnu@4.37.0':
optional: true
- '@rollup/rollup-linux-x64-musl@4.34.8':
+ '@rollup/rollup-linux-x64-musl@4.37.0':
optional: true
- '@rollup/rollup-win32-arm64-msvc@4.34.8':
+ '@rollup/rollup-win32-arm64-msvc@4.37.0':
optional: true
- '@rollup/rollup-win32-ia32-msvc@4.34.8':
+ '@rollup/rollup-win32-ia32-msvc@4.37.0':
optional: true
- '@rollup/rollup-win32-x64-msvc@4.34.8':
+ '@rollup/rollup-win32-x64-msvc@4.37.0':
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))':
+ '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.20.4)(vite@6.2.3(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.2)))(svelte@5.20.4)(vite@6.2.3(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.2))':
dependencies:
- '@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))
+ '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.20.4)(vite@6.2.3(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.2))
debug: 4.4.0(supports-color@8.1.1)
- svelte: 5.10.0
- vite: 6.0.9(jiti@2.4.2)(terser@5.36.0)(tsx@4.19.2)
+ svelte: 5.20.4
+ vite: 6.2.3(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.2)
transitivePeerDependencies:
- supports-color
- '@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))':
+ '@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.20.4)(vite@6.2.3(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.2))':
dependencies:
- '@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))
+ '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.20.4)(vite@6.2.3(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.2)))(svelte@5.20.4)(vite@6.2.3(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.2))
debug: 4.4.0(supports-color@8.1.1)
deepmerge: 4.3.1
kleur: 4.1.5
magic-string: 0.30.17
- svelte: 5.10.0
- vite: 6.0.9(jiti@2.4.2)(terser@5.36.0)(tsx@4.19.2)
- vitefu: 1.0.4(vite@6.0.9(jiti@2.4.2)(terser@5.36.0)(tsx@4.19.2))
+ svelte: 5.20.4
+ vite: 6.2.3(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.2)
+ vitefu: 1.0.6(vite@6.2.3(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.2))
transitivePeerDependencies:
- supports-color
- '@tauri-apps/api@2.2.0': {}
+ '@tauri-apps/api@2.4.0': {}
+
+ '@tauri-apps/cli-darwin-arm64@2.4.0':
+ optional: true
- '@tauri-apps/cli-darwin-arm64@2.2.7':
+ '@tauri-apps/cli-darwin-x64@2.4.0':
optional: true
- '@tauri-apps/cli-darwin-x64@2.2.7':
+ '@tauri-apps/cli-linux-arm-gnueabihf@2.4.0':
optional: true
- '@tauri-apps/cli-linux-arm-gnueabihf@2.2.7':
+ '@tauri-apps/cli-linux-arm64-gnu@2.4.0':
optional: true
- '@tauri-apps/cli-linux-arm64-gnu@2.2.7':
+ '@tauri-apps/cli-linux-arm64-musl@2.4.0':
optional: true
- '@tauri-apps/cli-linux-arm64-musl@2.2.7':
+ '@tauri-apps/cli-linux-riscv64-gnu@2.4.0':
optional: true
- '@tauri-apps/cli-linux-x64-gnu@2.2.7':
+ '@tauri-apps/cli-linux-x64-gnu@2.4.0':
optional: true
- '@tauri-apps/cli-linux-x64-musl@2.2.7':
+ '@tauri-apps/cli-linux-x64-musl@2.4.0':
optional: true
- '@tauri-apps/cli-win32-arm64-msvc@2.2.7':
+ '@tauri-apps/cli-win32-arm64-msvc@2.4.0':
optional: true
- '@tauri-apps/cli-win32-ia32-msvc@2.2.7':
+ '@tauri-apps/cli-win32-ia32-msvc@2.4.0':
optional: true
- '@tauri-apps/cli-win32-x64-msvc@2.2.7':
+ '@tauri-apps/cli-win32-x64-msvc@2.4.0':
optional: true
- '@tauri-apps/cli@2.2.7':
+ '@tauri-apps/cli@2.4.0':
optionalDependencies:
- '@tauri-apps/cli-darwin-arm64': 2.2.7
- '@tauri-apps/cli-darwin-x64': 2.2.7
- '@tauri-apps/cli-linux-arm-gnueabihf': 2.2.7
- '@tauri-apps/cli-linux-arm64-gnu': 2.2.7
- '@tauri-apps/cli-linux-arm64-musl': 2.2.7
- '@tauri-apps/cli-linux-x64-gnu': 2.2.7
- '@tauri-apps/cli-linux-x64-musl': 2.2.7
- '@tauri-apps/cli-win32-arm64-msvc': 2.2.7
- '@tauri-apps/cli-win32-ia32-msvc': 2.2.7
- '@tauri-apps/cli-win32-x64-msvc': 2.2.7
+ '@tauri-apps/cli-darwin-arm64': 2.4.0
+ '@tauri-apps/cli-darwin-x64': 2.4.0
+ '@tauri-apps/cli-linux-arm-gnueabihf': 2.4.0
+ '@tauri-apps/cli-linux-arm64-gnu': 2.4.0
+ '@tauri-apps/cli-linux-arm64-musl': 2.4.0
+ '@tauri-apps/cli-linux-riscv64-gnu': 2.4.0
+ '@tauri-apps/cli-linux-x64-gnu': 2.4.0
+ '@tauri-apps/cli-linux-x64-musl': 2.4.0
+ '@tauri-apps/cli-win32-arm64-msvc': 2.4.0
+ '@tauri-apps/cli-win32-ia32-msvc': 2.4.0
+ '@tauri-apps/cli-win32-x64-msvc': 2.4.0
'@types/estree@1.0.6': {}
@@ -2960,90 +2767,90 @@ snapshots:
'@types/unist@2.0.11': {}
- '@typescript-eslint/eslint-plugin@8.25.0(@typescript-eslint/parser@8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)':
+ '@typescript-eslint/eslint-plugin@8.28.0(@typescript-eslint/parser@8.28.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)':
dependencies:
'@eslint-community/regexpp': 4.12.1
- '@typescript-eslint/parser': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)
- '@typescript-eslint/scope-manager': 8.25.0
- '@typescript-eslint/type-utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)
- '@typescript-eslint/utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)
- '@typescript-eslint/visitor-keys': 8.25.0
- eslint: 9.21.0(jiti@2.4.2)
+ '@typescript-eslint/parser': 8.28.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)
+ '@typescript-eslint/scope-manager': 8.28.0
+ '@typescript-eslint/type-utils': 8.28.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)
+ '@typescript-eslint/utils': 8.28.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)
+ '@typescript-eslint/visitor-keys': 8.28.0
+ eslint: 9.23.0(jiti@2.4.2)
graphemer: 1.4.0
ignore: 5.3.2
natural-compare: 1.4.0
- ts-api-utils: 2.0.1(typescript@5.7.3)
- typescript: 5.7.3
+ ts-api-utils: 2.0.1(typescript@5.8.2)
+ typescript: 5.8.2
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)':
+ '@typescript-eslint/parser@8.28.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)':
dependencies:
- '@typescript-eslint/scope-manager': 8.25.0
- '@typescript-eslint/types': 8.25.0
- '@typescript-eslint/typescript-estree': 8.25.0(typescript@5.7.3)
- '@typescript-eslint/visitor-keys': 8.25.0
+ '@typescript-eslint/scope-manager': 8.28.0
+ '@typescript-eslint/types': 8.28.0
+ '@typescript-eslint/typescript-estree': 8.28.0(typescript@5.8.2)
+ '@typescript-eslint/visitor-keys': 8.28.0
debug: 4.4.0(supports-color@8.1.1)
- eslint: 9.21.0(jiti@2.4.2)
- typescript: 5.7.3
+ eslint: 9.23.0(jiti@2.4.2)
+ typescript: 5.8.2
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/scope-manager@8.25.0':
+ '@typescript-eslint/scope-manager@8.28.0':
dependencies:
- '@typescript-eslint/types': 8.25.0
- '@typescript-eslint/visitor-keys': 8.25.0
+ '@typescript-eslint/types': 8.28.0
+ '@typescript-eslint/visitor-keys': 8.28.0
- '@typescript-eslint/type-utils@8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)':
+ '@typescript-eslint/type-utils@8.28.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)':
dependencies:
- '@typescript-eslint/typescript-estree': 8.25.0(typescript@5.7.3)
- '@typescript-eslint/utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)
+ '@typescript-eslint/typescript-estree': 8.28.0(typescript@5.8.2)
+ '@typescript-eslint/utils': 8.28.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)
debug: 4.4.0(supports-color@8.1.1)
- eslint: 9.21.0(jiti@2.4.2)
- ts-api-utils: 2.0.1(typescript@5.7.3)
- typescript: 5.7.3
+ eslint: 9.23.0(jiti@2.4.2)
+ ts-api-utils: 2.0.1(typescript@5.8.2)
+ typescript: 5.8.2
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/types@8.25.0': {}
+ '@typescript-eslint/types@8.28.0': {}
- '@typescript-eslint/typescript-estree@8.25.0(typescript@5.7.3)':
+ '@typescript-eslint/typescript-estree@8.28.0(typescript@5.8.2)':
dependencies:
- '@typescript-eslint/types': 8.25.0
- '@typescript-eslint/visitor-keys': 8.25.0
+ '@typescript-eslint/types': 8.28.0
+ '@typescript-eslint/visitor-keys': 8.28.0
debug: 4.4.0(supports-color@8.1.1)
- fast-glob: 3.3.2
+ fast-glob: 3.3.3
is-glob: 4.0.3
minimatch: 9.0.5
- semver: 7.6.3
- ts-api-utils: 2.0.1(typescript@5.7.3)
- typescript: 5.7.3
+ semver: 7.7.1
+ ts-api-utils: 2.0.1(typescript@5.8.2)
+ typescript: 5.8.2
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)':
+ '@typescript-eslint/utils@8.28.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)':
dependencies:
- '@eslint-community/eslint-utils': 4.4.1(eslint@9.21.0(jiti@2.4.2))
- '@typescript-eslint/scope-manager': 8.25.0
- '@typescript-eslint/types': 8.25.0
- '@typescript-eslint/typescript-estree': 8.25.0(typescript@5.7.3)
- eslint: 9.21.0(jiti@2.4.2)
- typescript: 5.7.3
+ '@eslint-community/eslint-utils': 4.4.1(eslint@9.23.0(jiti@2.4.2))
+ '@typescript-eslint/scope-manager': 8.28.0
+ '@typescript-eslint/types': 8.28.0
+ '@typescript-eslint/typescript-estree': 8.28.0(typescript@5.8.2)
+ eslint: 9.23.0(jiti@2.4.2)
+ typescript: 5.8.2
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/visitor-keys@8.25.0':
+ '@typescript-eslint/visitor-keys@8.28.0':
dependencies:
- '@typescript-eslint/types': 8.25.0
+ '@typescript-eslint/types': 8.28.0
eslint-visitor-keys: 4.2.0
- '@unocss/astro@66.0.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@66.0.0(vite@6.2.3(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.2))(vue@3.5.13(typescript@5.8.2))':
dependencies:
'@unocss/core': 66.0.0
'@unocss/reset': 66.0.0
- '@unocss/vite': 66.0.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': 66.0.0(vite@6.2.3(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.2))(vue@3.5.13(typescript@5.8.2))
optionalDependencies:
- vite: 6.0.9(jiti@2.4.2)(terser@5.36.0)(tsx@4.19.2)
+ vite: 6.2.3(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.2)
transitivePeerDependencies:
- vue
@@ -3060,7 +2867,7 @@ snapshots:
magic-string: 0.30.17
pathe: 2.0.3
perfect-debounce: 1.0.0
- tinyglobby: 0.2.10
+ tinyglobby: 0.2.12
unplugin-utils: 0.2.4
'@unocss/config@66.0.0':
@@ -3076,25 +2883,25 @@ snapshots:
'@unocss/extractor-svelte@66.0.0': {}
- '@unocss/inspector@66.0.0(vue@3.5.13(typescript@5.7.3))':
+ '@unocss/inspector@66.0.0(vue@3.5.13(typescript@5.8.2))':
dependencies:
'@unocss/core': 66.0.0
'@unocss/rule-utils': 66.0.0
colorette: 2.0.20
gzip-size: 6.0.0
- sirv: 3.0.0
- vue-flow-layout: 0.1.1(vue@3.5.13(typescript@5.7.3))
+ sirv: 3.0.1
+ vue-flow-layout: 0.1.1(vue@3.5.13(typescript@5.8.2))
transitivePeerDependencies:
- vue
- '@unocss/postcss@66.0.0(postcss@8.5.1)':
+ '@unocss/postcss@66.0.0(postcss@8.5.3)':
dependencies:
'@unocss/config': 66.0.0
'@unocss/core': 66.0.0
'@unocss/rule-utils': 66.0.0
css-tree: 3.1.0
- postcss: 8.5.1
- tinyglobby: 0.2.10
+ postcss: 8.5.3
+ tinyglobby: 0.2.12
'@unocss/preset-attributify@66.0.0':
dependencies:
@@ -3170,23 +2977,23 @@ snapshots:
dependencies:
'@unocss/core': 66.0.0
- '@unocss/vite@66.0.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@66.0.0(vite@6.2.3(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.2))(vue@3.5.13(typescript@5.8.2))':
dependencies:
'@ampproject/remapping': 2.3.0
'@unocss/config': 66.0.0
'@unocss/core': 66.0.0
- '@unocss/inspector': 66.0.0(vue@3.5.13(typescript@5.7.3))
+ '@unocss/inspector': 66.0.0(vue@3.5.13(typescript@5.8.2))
chokidar: 3.6.0
magic-string: 0.30.17
- tinyglobby: 0.2.10
+ tinyglobby: 0.2.12
unplugin-utils: 0.2.4
- vite: 6.0.9(jiti@2.4.2)(terser@5.36.0)(tsx@4.19.2)
+ vite: 6.2.3(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.2)
transitivePeerDependencies:
- vue
'@vue/compiler-core@3.5.13':
dependencies:
- '@babel/parser': 7.26.5
+ '@babel/parser': 7.27.0
'@vue/shared': 3.5.13
entities: 4.5.0
estree-walker: 2.0.2
@@ -3199,14 +3006,14 @@ snapshots:
'@vue/compiler-sfc@3.5.13':
dependencies:
- '@babel/parser': 7.26.5
+ '@babel/parser': 7.27.0
'@vue/compiler-core': 3.5.13
'@vue/compiler-dom': 3.5.13
'@vue/compiler-ssr': 3.5.13
'@vue/shared': 3.5.13
estree-walker: 2.0.2
magic-string: 0.30.17
- postcss: 8.5.1
+ postcss: 8.5.3
source-map-js: 1.2.1
'@vue/compiler-ssr@3.5.13':
@@ -3230,17 +3037,17 @@ snapshots:
'@vue/shared': 3.5.13
csstype: 3.1.3
- '@vue/server-renderer@3.5.13(vue@3.5.13(typescript@5.7.3))':
+ '@vue/server-renderer@3.5.13(vue@3.5.13(typescript@5.8.2))':
dependencies:
'@vue/compiler-ssr': 3.5.13
'@vue/shared': 3.5.13
- vue: 3.5.13(typescript@5.7.3)
+ vue: 3.5.13(typescript@5.8.2)
'@vue/shared@3.5.13': {}
- '@zerodevx/svelte-json-view@1.0.11(svelte@5.10.0)':
+ '@zerodevx/svelte-json-view@1.0.11(svelte@5.20.4)':
dependencies:
- svelte: 5.10.0
+ svelte: 5.20.4
abort-controller@3.0.0:
dependencies:
@@ -3357,6 +3164,8 @@ snapshots:
strip-ansi: 6.0.1
wrap-ansi: 7.0.0
+ clsx@2.1.1: {}
+
color-convert@2.0.1:
dependencies:
color-name: 1.1.4
@@ -3373,7 +3182,7 @@ snapshots:
consola@3.4.0: {}
- covector@0.12.3(mocha@10.8.2):
+ covector@0.12.4(mocha@10.8.2):
dependencies:
'@clack/prompts': 0.7.0
'@covector/apply': 0.10.0(mocha@10.8.2)
@@ -3385,7 +3194,7 @@ snapshots:
globby: 11.1.0
js-yaml: 4.1.0
lodash: 4.17.21
- pino: 9.5.0
+ pino: 9.6.0
pino-abstract-transport: 1.2.0
strip-ansi: 6.0.1
yargs: 17.7.2
@@ -3413,7 +3222,7 @@ snapshots:
csstype@3.1.3: {}
- ctrlc-windows@2.1.0: {}
+ ctrlc-windows@2.2.0: {}
debug@4.4.0(supports-color@8.1.1):
dependencies:
@@ -3456,75 +3265,47 @@ snapshots:
entities@4.5.0: {}
- esbuild@0.23.1:
+ esbuild@0.25.1:
optionalDependencies:
- '@esbuild/aix-ppc64': 0.23.1
- '@esbuild/android-arm': 0.23.1
- '@esbuild/android-arm64': 0.23.1
- '@esbuild/android-x64': 0.23.1
- '@esbuild/darwin-arm64': 0.23.1
- '@esbuild/darwin-x64': 0.23.1
- '@esbuild/freebsd-arm64': 0.23.1
- '@esbuild/freebsd-x64': 0.23.1
- '@esbuild/linux-arm': 0.23.1
- '@esbuild/linux-arm64': 0.23.1
- '@esbuild/linux-ia32': 0.23.1
- '@esbuild/linux-loong64': 0.23.1
- '@esbuild/linux-mips64el': 0.23.1
- '@esbuild/linux-ppc64': 0.23.1
- '@esbuild/linux-riscv64': 0.23.1
- '@esbuild/linux-s390x': 0.23.1
- '@esbuild/linux-x64': 0.23.1
- '@esbuild/netbsd-x64': 0.23.1
- '@esbuild/openbsd-arm64': 0.23.1
- '@esbuild/openbsd-x64': 0.23.1
- '@esbuild/sunos-x64': 0.23.1
- '@esbuild/win32-arm64': 0.23.1
- '@esbuild/win32-ia32': 0.23.1
- '@esbuild/win32-x64': 0.23.1
- optional: true
-
- esbuild@0.24.2:
- optionalDependencies:
- '@esbuild/aix-ppc64': 0.24.2
- '@esbuild/android-arm': 0.24.2
- '@esbuild/android-arm64': 0.24.2
- '@esbuild/android-x64': 0.24.2
- '@esbuild/darwin-arm64': 0.24.2
- '@esbuild/darwin-x64': 0.24.2
- '@esbuild/freebsd-arm64': 0.24.2
- '@esbuild/freebsd-x64': 0.24.2
- '@esbuild/linux-arm': 0.24.2
- '@esbuild/linux-arm64': 0.24.2
- '@esbuild/linux-ia32': 0.24.2
- '@esbuild/linux-loong64': 0.24.2
- '@esbuild/linux-mips64el': 0.24.2
- '@esbuild/linux-ppc64': 0.24.2
- '@esbuild/linux-riscv64': 0.24.2
- '@esbuild/linux-s390x': 0.24.2
- '@esbuild/linux-x64': 0.24.2
- '@esbuild/netbsd-arm64': 0.24.2
- '@esbuild/netbsd-x64': 0.24.2
- '@esbuild/openbsd-arm64': 0.24.2
- '@esbuild/openbsd-x64': 0.24.2
- '@esbuild/sunos-x64': 0.24.2
- '@esbuild/win32-arm64': 0.24.2
- '@esbuild/win32-ia32': 0.24.2
- '@esbuild/win32-x64': 0.24.2
+ '@esbuild/aix-ppc64': 0.25.1
+ '@esbuild/android-arm': 0.25.1
+ '@esbuild/android-arm64': 0.25.1
+ '@esbuild/android-x64': 0.25.1
+ '@esbuild/darwin-arm64': 0.25.1
+ '@esbuild/darwin-x64': 0.25.1
+ '@esbuild/freebsd-arm64': 0.25.1
+ '@esbuild/freebsd-x64': 0.25.1
+ '@esbuild/linux-arm': 0.25.1
+ '@esbuild/linux-arm64': 0.25.1
+ '@esbuild/linux-ia32': 0.25.1
+ '@esbuild/linux-loong64': 0.25.1
+ '@esbuild/linux-mips64el': 0.25.1
+ '@esbuild/linux-ppc64': 0.25.1
+ '@esbuild/linux-riscv64': 0.25.1
+ '@esbuild/linux-s390x': 0.25.1
+ '@esbuild/linux-x64': 0.25.1
+ '@esbuild/netbsd-arm64': 0.25.1
+ '@esbuild/netbsd-x64': 0.25.1
+ '@esbuild/openbsd-arm64': 0.25.1
+ '@esbuild/openbsd-x64': 0.25.1
+ '@esbuild/sunos-x64': 0.25.1
+ '@esbuild/win32-arm64': 0.25.1
+ '@esbuild/win32-ia32': 0.25.1
+ '@esbuild/win32-x64': 0.25.1
escalade@3.2.0: {}
escape-string-regexp@4.0.0: {}
- eslint-config-prettier@10.0.1(eslint@9.21.0(jiti@2.4.2)):
+ eslint-config-prettier@10.1.1(eslint@9.23.0(jiti@2.4.2)):
dependencies:
- eslint: 9.21.0(jiti@2.4.2)
+ eslint: 9.23.0(jiti@2.4.2)
eslint-plugin-security@3.0.1:
dependencies:
safe-regex: 2.1.1
- eslint-scope@8.2.0:
+ eslint-scope@8.3.0:
dependencies:
esrecurse: 4.3.0
estraverse: 5.3.0
@@ -3533,14 +3314,15 @@ snapshots:
eslint-visitor-keys@4.2.0: {}
- eslint@9.21.0(jiti@2.4.2):
+ eslint@9.23.0(jiti@2.4.2):
dependencies:
- '@eslint-community/eslint-utils': 4.4.1(eslint@9.21.0(jiti@2.4.2))
+ '@eslint-community/eslint-utils': 4.4.1(eslint@9.23.0(jiti@2.4.2))
'@eslint-community/regexpp': 4.12.1
'@eslint/config-array': 0.19.2
+ '@eslint/config-helpers': 0.2.0
'@eslint/core': 0.12.0
- '@eslint/eslintrc': 3.3.0
- '@eslint/js': 9.21.0
+ '@eslint/eslintrc': 3.3.1
+ '@eslint/js': 9.23.0
'@eslint/plugin-kit': 0.2.7
'@humanfs/node': 0.16.6
'@humanwhocodes/module-importer': 1.0.1
@@ -3552,7 +3334,7 @@ snapshots:
cross-spawn: 7.0.6
debug: 4.4.0(supports-color@8.1.1)
escape-string-regexp: 4.0.0
- eslint-scope: 8.2.0
+ eslint-scope: 8.3.0
eslint-visitor-keys: 4.2.0
espree: 10.3.0
esquery: 1.6.0
@@ -3574,7 +3356,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- esm-env@1.2.1: {}
+ esm-env@1.2.2: {}
espree@10.3.0:
dependencies:
@@ -3586,10 +3368,9 @@ snapshots:
dependencies:
estraverse: 5.3.0
- esrap@1.2.3:
+ esrap@1.4.5:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.0
- '@types/estree': 1.0.6
esrecurse@4.3.0:
dependencies:
@@ -3609,7 +3390,7 @@ snapshots:
fast-deep-equal@3.1.3: {}
- fast-glob@3.3.2:
+ fast-glob@3.3.3:
dependencies:
'@nodelib/fs.stat': 2.0.5
'@nodelib/fs.walk': 1.2.8
@@ -3623,15 +3404,15 @@ snapshots:
fast-redact@3.5.0: {}
- fastq@1.17.1:
+ fastq@1.19.1:
dependencies:
- reusify: 1.0.4
+ reusify: 1.1.0
fault@1.0.4:
dependencies:
format: 0.2.2
- fdir@6.4.2(picomatch@4.0.2):
+ fdir@6.4.3(picomatch@4.0.2):
optionalDependencies:
picomatch: 4.0.2
@@ -3650,12 +3431,12 @@ snapshots:
flat-cache@4.0.1:
dependencies:
- flatted: 3.3.2
+ flatted: 3.3.3
keyv: 4.5.4
flat@5.0.2: {}
- flatted@3.3.2: {}
+ flatted@3.3.3: {}
format@0.2.2: {}
@@ -3668,7 +3449,7 @@ snapshots:
get-caller-file@2.0.5: {}
- get-tsconfig@4.8.1:
+ get-tsconfig@4.10.0:
dependencies:
resolve-pkg-maps: 1.0.0
optional: true
@@ -3691,13 +3472,13 @@ snapshots:
globals@14.0.0: {}
- globals@15.14.0: {}
+ globals@15.15.0: {}
globby@11.1.0:
dependencies:
array-union: 2.1.0
dir-glob: 3.0.1
- fast-glob: 3.3.2
+ fast-glob: 3.3.3
ignore: 5.3.2
merge2: 1.4.1
slash: 3.0.0
@@ -3720,7 +3501,7 @@ snapshots:
ignore@5.3.2: {}
- import-fresh@3.3.0:
+ import-fresh@3.3.1:
dependencies:
parent-module: 1.0.1
resolve-from: 4.0.0
@@ -3747,7 +3528,7 @@ snapshots:
is-buffer@2.0.5: {}
- is-core-module@2.15.1:
+ is-core-module@2.16.1:
dependencies:
hasown: 2.0.2
@@ -3915,15 +3696,15 @@ snapshots:
yargs-parser: 20.2.9
yargs-unparser: 2.0.0
- mrmime@2.0.0: {}
+ mrmime@2.0.1: {}
ms@2.1.3: {}
- nanoid@3.3.8: {}
+ nanoid@3.3.11: {}
natural-compare@1.4.0: {}
- node-fetch-native@1.6.4: {}
+ node-fetch-native@1.6.6: {}
node-fetch@2.6.7:
dependencies:
@@ -3934,7 +3715,7 @@ snapshots:
ofetch@1.4.1:
dependencies:
destr: 2.0.3
- node-fetch-native: 1.6.4
+ node-fetch-native: 1.6.6
ufo: 1.5.4
on-exit-leak-free@2.1.2: {}
@@ -3995,7 +3776,7 @@ snapshots:
pino-abstract-transport@1.2.0:
dependencies:
- readable-stream: 4.5.2
+ readable-stream: 4.7.0
split2: 4.2.0
pino-abstract-transport@2.0.0:
@@ -4004,14 +3785,14 @@ snapshots:
pino-std-serializers@7.0.0: {}
- pino@9.5.0:
+ pino@9.6.0:
dependencies:
atomic-sleep: 1.0.0
fast-redact: 3.5.0
on-exit-leak-free: 2.1.2
pino-abstract-transport: 2.0.0
pino-std-serializers: 7.0.0
- process-warning: 4.0.0
+ process-warning: 4.0.1
quick-format-unescaped: 4.0.4
real-require: 0.2.0
safe-stable-stringify: 2.5.0
@@ -4024,17 +3805,17 @@ snapshots:
mlly: 1.7.4
pathe: 2.0.3
- postcss@8.5.1:
+ postcss@8.5.3:
dependencies:
- nanoid: 3.3.8
+ nanoid: 3.3.11
picocolors: 1.1.1
source-map-js: 1.2.1
prelude-ls@1.2.1: {}
- prettier@3.5.2: {}
+ prettier@3.5.3: {}
- process-warning@4.0.0: {}
+ process-warning@4.0.1: {}
process@0.11.10: {}
@@ -4048,7 +3829,7 @@ snapshots:
dependencies:
safe-buffer: 5.2.1
- readable-stream@4.5.2:
+ readable-stream@4.7.0:
dependencies:
abort-controller: 3.0.0
buffer: 6.0.3
@@ -4088,37 +3869,38 @@ snapshots:
resolve-pkg-maps@1.0.0:
optional: true
- resolve@1.22.8:
+ resolve@1.22.10:
dependencies:
- is-core-module: 2.15.1
+ is-core-module: 2.16.1
path-parse: 1.0.7
supports-preserve-symlinks-flag: 1.0.0
- reusify@1.0.4: {}
+ reusify@1.1.0: {}
- rollup@4.34.8:
+ rollup@4.37.0:
dependencies:
'@types/estree': 1.0.6
optionalDependencies:
- '@rollup/rollup-android-arm-eabi': 4.34.8
- '@rollup/rollup-android-arm64': 4.34.8
- '@rollup/rollup-darwin-arm64': 4.34.8
- '@rollup/rollup-darwin-x64': 4.34.8
- '@rollup/rollup-freebsd-arm64': 4.34.8
- '@rollup/rollup-freebsd-x64': 4.34.8
- '@rollup/rollup-linux-arm-gnueabihf': 4.34.8
- '@rollup/rollup-linux-arm-musleabihf': 4.34.8
- '@rollup/rollup-linux-arm64-gnu': 4.34.8
- '@rollup/rollup-linux-arm64-musl': 4.34.8
- '@rollup/rollup-linux-loongarch64-gnu': 4.34.8
- '@rollup/rollup-linux-powerpc64le-gnu': 4.34.8
- '@rollup/rollup-linux-riscv64-gnu': 4.34.8
- '@rollup/rollup-linux-s390x-gnu': 4.34.8
- '@rollup/rollup-linux-x64-gnu': 4.34.8
- '@rollup/rollup-linux-x64-musl': 4.34.8
- '@rollup/rollup-win32-arm64-msvc': 4.34.8
- '@rollup/rollup-win32-ia32-msvc': 4.34.8
- '@rollup/rollup-win32-x64-msvc': 4.34.8
+ '@rollup/rollup-android-arm-eabi': 4.37.0
+ '@rollup/rollup-android-arm64': 4.37.0
+ '@rollup/rollup-darwin-arm64': 4.37.0
+ '@rollup/rollup-darwin-x64': 4.37.0
+ '@rollup/rollup-freebsd-arm64': 4.37.0
+ '@rollup/rollup-freebsd-x64': 4.37.0
+ '@rollup/rollup-linux-arm-gnueabihf': 4.37.0
+ '@rollup/rollup-linux-arm-musleabihf': 4.37.0
+ '@rollup/rollup-linux-arm64-gnu': 4.37.0
+ '@rollup/rollup-linux-arm64-musl': 4.37.0
+ '@rollup/rollup-linux-loongarch64-gnu': 4.37.0
+ '@rollup/rollup-linux-powerpc64le-gnu': 4.37.0
+ '@rollup/rollup-linux-riscv64-gnu': 4.37.0
+ '@rollup/rollup-linux-riscv64-musl': 4.37.0
+ '@rollup/rollup-linux-s390x-gnu': 4.37.0
+ '@rollup/rollup-linux-x64-gnu': 4.37.0
+ '@rollup/rollup-linux-x64-musl': 4.37.0
+ '@rollup/rollup-win32-arm64-msvc': 4.37.0
+ '@rollup/rollup-win32-ia32-msvc': 4.37.0
+ '@rollup/rollup-win32-x64-msvc': 4.37.0
fsevents: 2.3.3
run-parallel@1.2.0:
@@ -4133,7 +3915,7 @@ snapshots:
safe-stable-stringify@2.5.0: {}
- semver@7.6.3: {}
+ semver@7.7.1: {}
serialize-javascript@6.0.2:
dependencies:
@@ -4147,10 +3929,10 @@ snapshots:
shellwords@0.1.1: {}
- sirv@3.0.0:
+ sirv@3.0.1:
dependencies:
'@polka/url': 1.0.0-next.28
- mrmime: 2.0.0
+ mrmime: 2.0.1
totalist: 3.0.1
sisteransi@1.0.5: {}
@@ -4174,7 +3956,7 @@ snapshots:
split2@4.2.0: {}
- stacktrace-parser@0.1.10:
+ stacktrace-parser@0.1.11:
dependencies:
type-fest: 0.7.1
@@ -4204,7 +3986,7 @@ snapshots:
supports-preserve-symlinks-flag@1.0.0: {}
- svelte@5.10.0:
+ svelte@5.20.4:
dependencies:
'@ampproject/remapping': 2.3.0
'@jridgewell/sourcemap-codec': 1.5.0
@@ -4213,14 +3995,15 @@ snapshots:
acorn-typescript: 1.4.13(acorn@8.14.0)
aria-query: 5.3.2
axobject-query: 4.1.0
- esm-env: 1.2.1
- esrap: 1.2.3
+ clsx: 2.1.1
+ esm-env: 1.2.2
+ esrap: 1.4.5
is-reference: 3.0.3
locate-character: 3.0.0
magic-string: 0.30.17
zimmerframe: 1.1.2
- terser@5.36.0:
+ terser@5.39.0:
dependencies:
'@jridgewell/source-map': 0.3.6
acorn: 8.14.0
@@ -4233,9 +4016,9 @@ snapshots:
tinyexec@0.3.2: {}
- tinyglobby@0.2.10:
+ tinyglobby@0.2.12:
dependencies:
- fdir: 6.4.2(picomatch@4.0.2)
+ fdir: 6.4.3(picomatch@4.0.2)
picomatch: 4.0.2
to-regex-range@5.0.1:
@@ -4248,16 +4031,16 @@ snapshots:
trough@1.0.5: {}
- ts-api-utils@2.0.1(typescript@5.7.3):
+ ts-api-utils@2.0.1(typescript@5.8.2):
dependencies:
- typescript: 5.7.3
+ typescript: 5.8.2
tslib@2.8.1: {}
tsx@4.19.2:
dependencies:
- esbuild: 0.23.1
- get-tsconfig: 4.8.1
+ esbuild: 0.25.1
+ get-tsconfig: 4.10.0
optionalDependencies:
fsevents: 2.3.3
optional: true
@@ -4268,17 +4051,17 @@ snapshots:
type-fest@0.7.1: {}
- typescript-eslint@8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3):
+ typescript-eslint@8.28.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2):
dependencies:
- '@typescript-eslint/eslint-plugin': 8.25.0(@typescript-eslint/parser@8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)
- '@typescript-eslint/parser': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)
- '@typescript-eslint/utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)
- eslint: 9.21.0(jiti@2.4.2)
- typescript: 5.7.3
+ '@typescript-eslint/eslint-plugin': 8.28.0(@typescript-eslint/parser@8.28.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)
+ '@typescript-eslint/parser': 8.28.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)
+ '@typescript-eslint/utils': 8.28.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)
+ eslint: 9.23.0(jiti@2.4.2)
+ typescript: 5.8.2
transitivePeerDependencies:
- supports-color
- typescript@5.7.3: {}
+ typescript@5.8.2: {}
ufo@1.5.4: {}
@@ -4302,12 +4085,12 @@ snapshots:
dependencies:
'@types/unist': 2.0.11
- unocss@66.0.0(postcss@8.5.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@66.0.0(postcss@8.5.3)(vite@6.2.3(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.2))(vue@3.5.13(typescript@5.8.2)):
dependencies:
- '@unocss/astro': 66.0.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': 66.0.0(vite@6.2.3(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.2))(vue@3.5.13(typescript@5.8.2))
'@unocss/cli': 66.0.0
'@unocss/core': 66.0.0
- '@unocss/postcss': 66.0.0(postcss@8.5.1)
+ '@unocss/postcss': 66.0.0(postcss@8.5.3)
'@unocss/preset-attributify': 66.0.0
'@unocss/preset-icons': 66.0.0
'@unocss/preset-mini': 66.0.0
@@ -4321,9 +4104,9 @@ snapshots:
'@unocss/transformer-compile-class': 66.0.0
'@unocss/transformer-directives': 66.0.0
'@unocss/transformer-variant-group': 66.0.0
- '@unocss/vite': 66.0.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': 66.0.0(vite@6.2.3(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.2))(vue@3.5.13(typescript@5.8.2))
optionalDependencies:
- vite: 6.0.9(jiti@2.4.2)(terser@5.36.0)(tsx@4.19.2)
+ vite: 6.2.3(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.2)
transitivePeerDependencies:
- postcss
- supports-color
@@ -4350,34 +4133,34 @@ snapshots:
unist-util-stringify-position: 2.0.3
vfile-message: 2.0.4
- vite@6.0.9(jiti@2.4.2)(terser@5.36.0)(tsx@4.19.2):
+ vite@6.2.3(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.2):
dependencies:
- esbuild: 0.24.2
- postcss: 8.5.1
- rollup: 4.34.8
+ esbuild: 0.25.1
+ postcss: 8.5.3
+ rollup: 4.37.0
optionalDependencies:
fsevents: 2.3.3
jiti: 2.4.2
- terser: 5.36.0
+ terser: 5.39.0
tsx: 4.19.2
- vitefu@1.0.4(vite@6.0.9(jiti@2.4.2)(terser@5.36.0)(tsx@4.19.2)):
+ vitefu@1.0.6(vite@6.2.3(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.2)):
optionalDependencies:
- vite: 6.0.9(jiti@2.4.2)(terser@5.36.0)(tsx@4.19.2)
+ vite: 6.2.3(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.2)
- vue-flow-layout@0.1.1(vue@3.5.13(typescript@5.7.3)):
+ vue-flow-layout@0.1.1(vue@3.5.13(typescript@5.8.2)):
dependencies:
- vue: 3.5.13(typescript@5.7.3)
+ vue: 3.5.13(typescript@5.8.2)
- vue@3.5.13(typescript@5.7.3):
+ vue@3.5.13(typescript@5.8.2):
dependencies:
'@vue/compiler-dom': 3.5.13
'@vue/compiler-sfc': 3.5.13
'@vue/runtime-dom': 3.5.13
- '@vue/server-renderer': 3.5.13(vue@3.5.13(typescript@5.7.3))
+ '@vue/server-renderer': 3.5.13(vue@3.5.13(typescript@5.8.2))
'@vue/shared': 3.5.13
optionalDependencies:
- typescript: 5.7.3
+ typescript: 5.8.2
webidl-conversions@3.0.1: {}
@@ -4439,10 +4222,10 @@ snapshots:
zimmerframe@1.1.2: {}
- zod-validation-error@1.5.0(zod@3.23.8):
+ zod-validation-error@1.5.0(zod@3.24.2):
dependencies:
- zod: 3.23.8
+ zod: 3.24.2
- zod@3.23.8: {}
+ zod@3.24.2: {}
zwitch@1.0.5: {}
diff --git a/shared/rollup.config.js b/shared/rollup.config.js
index 09bfb889..3afb1b89 100644
--- a/shared/rollup.config.js
+++ b/shared/rollup.config.js
@@ -2,9 +2,9 @@
// SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT
-import { readFileSync } from 'fs'
-import { join } from 'path'
-import { cwd } from 'process'
+import { readFileSync } from 'node:fs'
+import { dirname, join } from 'node:path'
+import { cwd } from 'node:process'
import { nodeResolve } from '@rollup/plugin-node-resolve'
import typescript from '@rollup/plugin-typescript'
import terser from '@rollup/plugin-terser'
@@ -53,7 +53,7 @@ export function createConfig(options = {}) {
plugins: [
typescript({
declaration: true,
- declarationDir: `./${pkg.exports.import.split('/')[0]}`
+ declarationDir: dirname(pkg.exports.import)
})
],
external: [
diff --git a/shared/template/src/lib.rs b/shared/template/src/lib.rs
index e83735e0..5eb337bd 100644
--- a/shared/template/src/lib.rs
+++ b/shared/template/src/lib.rs
@@ -21,9 +21,9 @@ mod models;
pub use error::{Error, Result};
#[cfg(desktop)]
-use desktop::{{ plugin_name_pascal_case }};
+pub use desktop::{{ plugin_name_pascal_case }};
#[cfg(mobile)]
-use mobile::{{ plugin_name_pascal_case }};
+pub use mobile::{{ plugin_name_pascal_case }};
/// Extensions to [`tauri::App`], [`tauri::AppHandle`], [`tauri::WebviewWindow`], [`tauri::Webview`] and [`tauri::Window`] to access the {{ plugin_name }} APIs.
pub trait {{ plugin_name_pascal_case }}Ext {