Compare commits

..
Author SHA1 Message Date
renovate[bot] b0cf1cb14f chore(deps): update dependency rollup to v4.63.3 2026-09-17 17:24:26 +00:00
PathGao 67cd25a10c fix(single-instance): let the first instance come to front on Windows (#3592)
* fix(single-instance): let the first instance come to front on Windows

* move the hand-over right after the window lookup
2026-09-18 01:23:13 +08:00
Tony 2df3d93681 refactor(log): log webview location after double colon (#3574) 2026-09-17 16:33:47 +08:00
renovate[bot]andTony 4b5c9549c9 chore(deps): update dependency typescript-eslint to v8.70.0 (#3536)
* chore(deps): update dependency typescript-eslint to v8.70.0

* fix rust audit

* dedupe

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Tony <legendmastertony@gmail.com>
2026-09-16 14:23:04 +08:00
github-actions[bot] 3c5d267767 publish new versions (#3567)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-09-16 12:17:22 +08:00
Tony c050e073b6 fix(store): apply_pending_auto_save can deadlock (#3572) 2026-09-16 10:49:36 +08:00
Tony 0850317b5c chore(deps): update pnpm to v12 (#3576) 2026-09-10 10:36:25 +08:00
Tony 2a5783397e refactor(example): use tsconfig and change entries to ts (#3575) 2026-09-09 19:31:52 +08:00
renovate[bot]andTony b48d52cf6e chore(deps): update dependency rollup to v4.63.1 (#3558)
* chore(deps): update dependency rollup to v4.63.1

* fix audit

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Tony <legendmastertony@gmail.com>
2026-09-09 12:43:07 +08:00
Den Ilin a21555ddd2 fix(http): stop unhandled rejections from the fetch cleanup path (#3566)
* fix(http): stop unhandled rejections from the fetch cleanup path

The request/body cleanup commands are fired as floating promises, and the
Rust side releases a resource only once: fetch_cancel_body is
resources_table.close(rid)?, and fetch_read_body also closes the rid at
end-of-body. So every release after the first rejects with BadResourceId
into a promise nobody is listening to.

Make dropBody idempotent and let both cleanup calls handle their own
rejection.

* chore: add changefile

* chore(http): rebuild api-iife.js
2026-09-03 21:00:34 +03:00
Tony 845d8989cb fix: ignore and fix audits (#3564)
* fix: ignore and fix audits

* openssl-sys 0.9.114
2026-09-01 17:38:21 +08:00
25 changed files with 411 additions and 244 deletions
+3
View File
@@ -14,4 +14,7 @@ ignore = [
"RUSTSEC-2026-0195", "RUSTSEC-2026-0195",
# quinn-proto, can't be updated in the repo because of MSRV, users are unaffected # quinn-proto, can't be updated in the repo because of MSRV, users are unaffected
"RUSTSEC-2026-0185", "RUSTSEC-2026-0185",
# rkyv is not used, it's brought in by `rust_decimal`'s `rkyv` feature to the lockfile,
# but that feature is not enabled by anything
"RUSTSEC-2026-0235",
] ]
+6
View File
@@ -0,0 +1,6 @@
---
"log": patch
"log-js": patch
---
Log webview log target locations after 2 colons instead of 1. (e.g. `webview:myFunction@http://localhost:5173/src/myFile.ts?t=1787480723620:47:4` to `webview::myFunction@http://localhost:5173/src/myFile.ts?t=1787480723620:47:4`)
@@ -0,0 +1,5 @@
---
"single-instance": patch
---
On Windows, the second instance now allows the first instance to bring its window to the front before exiting, so focusing a window from the callback no longer gets refused by Windows.
Generated
+16 -14
View File
@@ -207,7 +207,7 @@ checksum = "2a4385e2e34eb35d6b3efe798b9eb88096925d87726c0798709bf56d9ed84af3"
[[package]] [[package]]
name = "api" name = "api"
version = "2.0.47" version = "2.0.48"
dependencies = [ dependencies = [
"log", "log",
"serde", "serde",
@@ -3826,7 +3826,7 @@ version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56"
dependencies = [ dependencies = [
"proc-macro-crate 3.3.0", "proc-macro-crate 1.3.1",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.100", "syn 2.0.100",
@@ -4123,9 +4123,9 @@ dependencies = [
[[package]] [[package]]
name = "openssl" name = "openssl"
version = "0.10.72" version = "0.10.78"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fedfea7d58a1f73118430a55da6a286e7b044961736ce96a16a17068ea25e5da" checksum = "f38c4372413cdaaf3cc79dd92d29d7d9f5ab09b51b10dded508fb90bb70b9222"
dependencies = [ dependencies = [
"bitflags 2.9.0", "bitflags 2.9.0",
"cfg-if", "cfg-if",
@@ -4164,9 +4164,9 @@ dependencies = [
[[package]] [[package]]
name = "openssl-sys" name = "openssl-sys"
version = "0.9.107" version = "0.9.114"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8288979acd84749c744a9014b4382d42b8f7b2592847b5afb2ed29e5d16ede07" checksum = "13ce1245cd07fcc4cfdb438f7507b0c7e4f3849a69fd84d52374c66d83741bb6"
dependencies = [ dependencies = [
"cc", "cc",
"libc", "libc",
@@ -5122,9 +5122,9 @@ dependencies = [
[[package]] [[package]]
name = "rust_decimal" name = "rust_decimal"
version = "1.37.1" version = "1.42.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "faa7de2ba56ac291bd90c6b9bece784a52ae1411f9506544b3eae36dd2356d50" checksum = "be2a24f50780bc85f09cc6ac299bdf1424302742d77221106859c9d8b102126a"
dependencies = [ dependencies = [
"arrayvec", "arrayvec",
"borsh", "borsh",
@@ -5134,6 +5134,7 @@ dependencies = [
"rkyv", "rkyv",
"serde", "serde",
"serde_json", "serde_json",
"wasm-bindgen",
] ]
[[package]] [[package]]
@@ -5185,9 +5186,9 @@ dependencies = [
[[package]] [[package]]
name = "rustls" name = "rustls"
version = "0.23.28" version = "0.23.45"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7160e3e10bf4535308537f3c4e1641468cd0e485175d6163087c0393c7d46643" checksum = "0d41d731c7d2f962d1ccc364cec258de3c0e93b38c2fb3ba97ac74513048d634"
dependencies = [ dependencies = [
"once_cell", "once_cell",
"ring", "ring",
@@ -5248,9 +5249,9 @@ checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f"
[[package]] [[package]]
name = "rustls-webpki" name = "rustls-webpki"
version = "0.103.13" version = "0.103.15"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e" checksum = "f3c3cf1d8b1e7d4927e2d154c3fcb02979afb9939629c62cd9048d4f07b60ac2"
dependencies = [ dependencies = [
"ring", "ring",
"rustls-pki-types", "rustls-pki-types",
@@ -6604,7 +6605,7 @@ dependencies = [
[[package]] [[package]]
name = "tauri-plugin-http" name = "tauri-plugin-http"
version = "2.6.0" version = "2.6.1"
dependencies = [ dependencies = [
"bytes", "bytes",
"cookie_store", "cookie_store",
@@ -6817,7 +6818,7 @@ dependencies = [
[[package]] [[package]]
name = "tauri-plugin-store" name = "tauri-plugin-store"
version = "2.4.4" version = "2.4.5"
dependencies = [ dependencies = [
"dunce", "dunce",
"serde", "serde",
@@ -7837,6 +7838,7 @@ dependencies = [
"cfg-if", "cfg-if",
"once_cell", "once_cell",
"rustversion", "rustversion",
"serde",
"wasm-bindgen-macro", "wasm-bindgen-macro",
] ]
+7
View File
@@ -1,5 +1,12 @@
# Changelog # Changelog
## [2.0.44]
### Dependencies
- Upgraded to `http-js@2.6.1`
- Upgraded to `store-js@2.4.5`
## [2.0.43] ## [2.0.43]
### Dependencies ### Dependencies
+1 -1
View File
@@ -12,6 +12,6 @@
<body> <body>
<div id="app"></div> <div id="app"></div>
<script type="module" src="/src/main.js"></script> <script type="module" src="/src/main.ts"></script>
</body> </body>
</html> </html>
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"name": "api", "name": "api",
"private": true, "private": true,
"version": "2.0.43", "version": "2.0.44",
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "vite --clearScreen false", "dev": "vite --clearScreen false",
+7
View File
@@ -1,5 +1,12 @@
# Changelog # Changelog
## [2.0.48]
### Dependencies
- Upgraded to `http@2.6.1`
- Upgraded to `store@2.4.5`
## [2.0.47] ## [2.0.47]
### Dependencies ### Dependencies
+3 -3
View File
@@ -1,7 +1,7 @@
[package] [package]
name = "api" name = "api"
publish = false publish = false
version = "2.0.47" version = "2.0.48"
description = "An example Tauri Application showcasing the api" description = "An example Tauri Application showcasing the api"
edition = "2021" edition = "2021"
rust-version = { workspace = true } rust-version = { workspace = true }
@@ -29,7 +29,7 @@ tauri-plugin-dialog = { path = "../../../plugins/dialog", version = "2.7.3" }
tauri-plugin-http = { path = "../../../plugins/http", features = [ tauri-plugin-http = { path = "../../../plugins/http", features = [
"multipart", "multipart",
"cookies", "cookies",
], version = "2.6.0" } ], version = "2.6.1" }
tauri-plugin-notification = { path = "../../../plugins/notification", version = "2.4.0", features = [ tauri-plugin-notification = { path = "../../../plugins/notification", version = "2.4.0", features = [
"windows7-compat", "windows7-compat",
] } ] }
@@ -37,7 +37,7 @@ tauri-plugin-os = { path = "../../../plugins/os", version = "2.3.2" }
tauri-plugin-process = { path = "../../../plugins/process", version = "2.3.1" } tauri-plugin-process = { path = "../../../plugins/process", version = "2.3.1" }
tauri-plugin-opener = { path = "../../../plugins/opener", version = "2.5.5" } tauri-plugin-opener = { path = "../../../plugins/opener", version = "2.5.5" }
tauri-plugin-shell = { path = "../../../plugins/shell", version = "2.3.6" } tauri-plugin-shell = { path = "../../../plugins/shell", version = "2.3.6" }
tauri-plugin-store = { path = "../../../plugins/store", version = "2.4.4" } tauri-plugin-store = { path = "../../../plugins/store", version = "2.4.5" }
tauri-plugin-upload = { path = "../../../plugins/upload", version = "2.3.0" } tauri-plugin-upload = { path = "../../../plugins/upload", version = "2.3.0" }
[dependencies.tauri] [dependencies.tauri]
@@ -8,7 +8,7 @@ import App from './App.svelte'
import { mount } from 'svelte' import { mount } from 'svelte'
const app = mount(App, { const app = mount(App, {
target: document.querySelector('#app') target: document.querySelector('#app')!
}) })
export default app export default app
@@ -3,6 +3,7 @@
"moduleResolution": "bundler", "moduleResolution": "bundler",
"target": "ESNext", "target": "ESNext",
"module": "ESNext", "module": "ESNext",
"noEmit": true,
/** /**
* svelte-preprocess cannot figure out whether you have * svelte-preprocess cannot figure out whether you have
* a value or a type, so tell TypeScript to enforce using * a value or a type, so tell TypeScript to enforce using
@@ -22,11 +23,12 @@
* Typecheck JS in `.svelte` and `.js` files by default. * Typecheck JS in `.svelte` and `.js` files by default.
* Disable this if you'd like to use dynamic types. * Disable this if you'd like to use dynamic types.
*/ */
"checkJs": true "checkJs": true,
"types": ["vite/client", "svelte"]
}, },
/** /**
* Use global.d.ts instead of compilerOptions.types * Use global.d.ts instead of compilerOptions.types
* to avoid limiting type declarations. * to avoid limiting type declarations.
*/ */
"include": ["src/**/*.d.ts", "src/**/*.js", "src/**/*.svelte"] "include": ["src/**/*.d.ts", "src/**/*.js", "src/**/*.ts", "src/**/*.svelte"]
} }
+3 -3
View File
@@ -19,11 +19,11 @@
"eslint-config-prettier": "10.1.8", "eslint-config-prettier": "10.1.8",
"eslint-plugin-security": "4.0.1", "eslint-plugin-security": "4.0.1",
"prettier": "3.8.3", "prettier": "3.8.3",
"rollup": "4.62.5", "rollup": "4.63.3",
"tslib": "2.8.1", "tslib": "2.8.1",
"typescript": "6.0.3", "typescript": "6.0.3",
"typescript-eslint": "8.66.0" "typescript-eslint": "8.70.0"
}, },
"minimumReleaseAge": 4320, "minimumReleaseAge": 4320,
"packageManager": "pnpm@11.20.0" "packageManager": "pnpm@12.3.4"
} }
+4
View File
@@ -1,5 +1,9 @@
# Changelog # Changelog
## [2.6.1]
- [`a21555dd`](https://github.com/tauri-apps/plugins-workspace/commit/a21555ddd2eaadfed23848912fe2802c2ba7579e) ([#3566](https://github.com/tauri-apps/plugins-workspace/pull/3566) by [@followdarko](https://github.com/tauri-apps/plugins-workspace/../../followdarko)) Fix unhandled promise rejections on every `fetch` teardown: the request/body cleanup commands were fired as floating promises, and releasing an already-released resource rejects with `The resource id N is invalid.`. `dropBody` is now idempotent and both cleanup calls handle their own rejection.
## [2.6.0] ## [2.6.0]
- [`f8053e65`](https://github.com/tauri-apps/plugins-workspace/commit/f8053e659e4ccd85c1f52833411ff8417cbc5e69) ([#3527](https://github.com/tauri-apps/plugins-workspace/pull/3527) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Documented Cargo feature flags in each plugin's crate-level documentation. - [`f8053e65`](https://github.com/tauri-apps/plugins-workspace/commit/f8053e659e4ccd85c1f52833411ff8417cbc5e69) ([#3527](https://github.com/tauri-apps/plugins-workspace/pull/3527) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Documented Cargo feature flags in each plugin's crate-level documentation.
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "tauri-plugin-http" name = "tauri-plugin-http"
version = "2.6.0" version = "2.6.1"
description = "Access an HTTP client written in Rust." description = "Access an HTTP client written in Rust."
edition = { workspace = true } edition = { workspace = true }
authors = { workspace = true } authors = { workspace = true }
+1 -1
View File
@@ -1 +1 @@
if("__TAURI__"in window){var __TAURI_PLUGIN_HTTP__=function(e){"use strict";async function t(e,t={},r){return window.__TAURI_INTERNALS__.invoke(e,t,r)}"function"==typeof SuppressedError&&SuppressedError;const r="Request cancelled";return e.fetch=async function(e,n){const a=n?.signal;if(a?.aborted)throw new Error(r);const o=n?.maxRedirections,i=n?.connectTimeout,s=n?.proxy,d=n?.danger;n&&(delete n.maxRedirections,delete n.connectTimeout,delete n.proxy,delete n.danger);const c=n?.headers?n.headers instanceof Headers?n.headers:new Headers(n.headers):new Headers,l=new Request(e,n),u=await l.arrayBuffer(),f=0!==u.byteLength?Array.from(new Uint8Array(u)):null;for(const[e,t]of l.headers)c.get(e)||c.set(e,t);const _=(c instanceof Headers?Array.from(c.entries()):Array.isArray(c)?c:Object.entries(c)).map(([e,t])=>[e,"string"==typeof t?t:t.toString()]);if(a?.aborted)throw new Error(r);const h=await t("plugin:http|fetch",{clientConfig:{method:l.method,url:l.url,headers:_,data:f,maxRedirections:o,connectTimeout:i,proxy:s,danger:d}}),p=()=>t("plugin:http|fetch_cancel",{rid:h});if(a?.aborted)throw p(),new Error(r);a?.addEventListener("abort",()=>{p()});const{status:w,statusText:y,url:b,headers:g,rid:T}=await t("plugin:http|fetch_send",{rid:h}),R=()=>t("plugin:http|fetch_cancel_body",{rid:T}),m=[101,103,204,205,304].includes(w)?null:new ReadableStream({start:e=>{a?.addEventListener("abort",()=>{e.error(r),R()})},pull:e=>(async e=>{let r;try{r=await t("plugin:http|fetch_read_body",{rid:T})}catch(t){return e.error(t),void R()}const n=new Uint8Array(r),a=n[n.byteLength-1],o=n.slice(0,n.byteLength-1);1!==a?e.enqueue(o):e.close()})(e),cancel:()=>{R()}}),A=new Response(m,{status:w,statusText:y});Object.defineProperty(A,"url",{value:b,writable:!1}),Object.defineProperty(A,"headers",{value:new Headers(g),writable:!1});const v=A.clone.bind(A);return Object.defineProperty(A,"clone",{value:()=>{const e=v();return Object.defineProperty(e,"url",{value:b,writable:!1}),Object.defineProperty(e,"headers",{value:new Headers(g),writable:!1}),e}}),A},e}({});Object.defineProperty(window.__TAURI__,"http",{value:__TAURI_PLUGIN_HTTP__})} if("__TAURI__"in window){var __TAURI_PLUGIN_HTTP__=function(e){"use strict";async function t(e,t={},r){return window.__TAURI_INTERNALS__.invoke(e,t,r)}"function"==typeof SuppressedError&&SuppressedError;const r="Request cancelled";return e.fetch=async function(e,n){const a=n?.signal;if(a?.aborted)throw new Error(r);const o=n?.maxRedirections,s=n?.connectTimeout,i=n?.proxy,c=n?.danger;n&&(delete n.maxRedirections,delete n.connectTimeout,delete n.proxy,delete n.danger);const d=n?.headers?n.headers instanceof Headers?n.headers:new Headers(n.headers):new Headers,l=new Request(e,n),u=await l.arrayBuffer(),h=0!==u.byteLength?Array.from(new Uint8Array(u)):null;for(const[e,t]of l.headers)d.get(e)||d.set(e,t);const f=(d instanceof Headers?Array.from(d.entries()):Array.isArray(d)?d:Object.entries(d)).map(([e,t])=>[e,"string"==typeof t?t:t.toString()]);if(a?.aborted)throw new Error(r);const _=await t("plugin:http|fetch",{clientConfig:{method:l.method,url:l.url,headers:f,data:h,maxRedirections:o,connectTimeout:s,proxy:i,danger:c}}),p=()=>t("plugin:http|fetch_cancel",{rid:_}).catch(()=>{});if(a?.aborted)throw p(),new Error(r);a?.addEventListener("abort",()=>{p()});const{status:w,statusText:y,url:b,headers:g,rid:T}=await t("plugin:http|fetch_send",{rid:_});let m=!1;const R=()=>m?Promise.resolve():(m=!0,t("plugin:http|fetch_cancel_body",{rid:T}).catch(()=>{})),v=[101,103,204,205,304].includes(w)?null:new ReadableStream({start:e=>{a?.addEventListener("abort",()=>{e.error(r),R()})},pull:e=>(async e=>{let r;try{r=await t("plugin:http|fetch_read_body",{rid:T})}catch(t){return e.error(t),void R()}const n=new Uint8Array(r),a=n[n.byteLength-1],o=n.slice(0,n.byteLength-1);1!==a?e.enqueue(o):e.close()})(e),cancel:()=>{R()}}),A=new Response(v,{status:w,statusText:y});Object.defineProperty(A,"url",{value:b,writable:!1}),Object.defineProperty(A,"headers",{value:new Headers(g),writable:!1});const P=A.clone.bind(A);return Object.defineProperty(A,"clone",{value:()=>{const e=P();return Object.defineProperty(e,"url",{value:b,writable:!1}),Object.defineProperty(e,"headers",{value:new Headers(g),writable:!1}),e}}),A},e}({});Object.defineProperty(window.__TAURI__,"http",{value:__TAURI_PLUGIN_HTTP__})}
+10 -5
View File
@@ -199,14 +199,14 @@ export async function fetch(
} }
}) })
const abort = () => invoke('plugin:http|fetch_cancel', { rid }) const abort = () =>
invoke('plugin:http|fetch_cancel', { rid }).catch(() => {})
// Optimistically check for abort signal // Optimistically check for abort signal
// and avoid doing any work after doing intial work on the Rust side // and avoid doing any work after doing intial work on the Rust side
if (signal?.aborted) { if (signal?.aborted) {
// we don't care about the result of this proimse // we don't care about the result of this promise
// eslint-disable-next-line @typescript-eslint/no-floating-promises void abort()
abort()
throw new Error(ERROR_REQUEST_CANCELLED) throw new Error(ERROR_REQUEST_CANCELLED)
} }
@@ -230,8 +230,13 @@ export async function fetch(
rid rid
}) })
let bodyDropped = false
const dropBody = () => { const dropBody = () => {
return invoke('plugin:http|fetch_cancel_body', { rid: responseRid }) if (bodyDropped) return Promise.resolve()
bodyDropped = true
return invoke('plugin:http|fetch_cancel_body', { rid: responseRid }).catch(
() => {}
)
} }
const readChunk = async ( const readChunk = async (
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "@tauri-apps/plugin-http", "name": "@tauri-apps/plugin-http",
"version": "2.6.0", "version": "2.6.1",
"license": "MIT OR Apache-2.0", "license": "MIT OR Apache-2.0",
"authors": [ "authors": [
"Tauri Programme within The Commons Conservancy" "Tauri Programme within The Commons Conservancy"
+2 -2
View File
@@ -20,9 +20,9 @@ pub fn log(
let level = log::Level::from(level); let level = log::Level::from(level);
let target = if let Some(location) = location { let target = if let Some(location) = location {
format!("{WEBVIEW_TARGET}:{location}") format!("{WEBVIEW_TARGET}::{location}")
} else { } else {
WEBVIEW_TARGET.to_string() WEBVIEW_TARGET.to_owned()
}; };
let mut builder = RecordBuilder::new(); let mut builder = RecordBuilder::new();
@@ -19,10 +19,11 @@ use windows_sys::Win32::{
Threading::{CreateMutexW, ReleaseMutex}, Threading::{CreateMutexW, ReleaseMutex},
}, },
UI::WindowsAndMessaging::{ UI::WindowsAndMessaging::{
self as w32wm, CreateWindowExW, DefWindowProcW, DestroyWindow, FindWindowW, self as w32wm, AllowSetForegroundWindow, CreateWindowExW, DefWindowProcW, DestroyWindow,
RegisterClassExW, SendMessageW, CREATESTRUCTW, GWLP_USERDATA, GWL_STYLE, FindWindowW, GetWindowThreadProcessId, RegisterClassExW, SendMessageW, CREATESTRUCTW,
WINDOW_LONG_PTR_INDEX, WM_COPYDATA, WM_CREATE, WM_DESTROY, WNDCLASSEXW, WS_EX_LAYERED, GWLP_USERDATA, GWL_STYLE, WINDOW_LONG_PTR_INDEX, WM_COPYDATA, WM_CREATE, WM_DESTROY,
WS_EX_NOACTIVATE, WS_EX_TOOLWINDOW, WS_EX_TRANSPARENT, WS_OVERLAPPED, WS_POPUP, WS_VISIBLE, WNDCLASSEXW, WS_EX_LAYERED, WS_EX_NOACTIVATE, WS_EX_TOOLWINDOW, WS_EX_TRANSPARENT,
WS_OVERLAPPED, WS_POPUP, WS_VISIBLE,
}, },
}; };
@@ -74,6 +75,16 @@ pub fn init<R: Runtime>(callback: Box<SingleInstanceCallback<R>>) -> TauriPlugin
let hwnd = FindWindowW(class_name.as_ptr(), window_name.as_ptr()); let hwnd = FindWindowW(class_name.as_ptr(), window_name.as_ptr());
if !hwnd.is_null() { if !hwnd.is_null() {
// Windows lets us bring a window to the front, but not the first
// instance. Hand that right over before we exit, so focusing a window
// from the callback works. Windows takes it back if the user switches
// to another app in the meantime.
let mut pid = 0;
GetWindowThreadProcessId(hwnd, &mut pid);
if pid != 0 {
AllowSetForegroundWindow(pid);
}
let cwd = std::env::current_dir().unwrap_or_default(); let cwd = std::env::current_dir().unwrap_or_default();
let cwd = cwd.to_str().unwrap_or_default(); let cwd = cwd.to_str().unwrap_or_default();
+4
View File
@@ -1,5 +1,9 @@
# Changelog # Changelog
## [2.4.5]
- [`c050e073`](https://github.com/tauri-apps/plugins-workspace/commit/c050e073b68205bae7389fb86958cb9331e1a3be) ([#3572](https://github.com/tauri-apps/plugins-workspace/pull/3572) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Fix `apply_pending_auto_save` can deadlock the store
## \[2.4.4] ## \[2.4.4]
- [`2ed6d6c1`](https://github.com/tauri-apps/plugins-workspace/commit/2ed6d6c1de4f5051b87cb6a2c5ac45320c444989) ([#3499](https://github.com/tauri-apps/plugins-workspace/pull/3499) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Fix `StoreOptions` requires `defaults` field - [`2ed6d6c1`](https://github.com/tauri-apps/plugins-workspace/commit/2ed6d6c1de4f5051b87cb6a2c5ac45320c444989) ([#3499](https://github.com/tauri-apps/plugins-workspace/pull/3499) by [@Legend-Master](https://github.com/tauri-apps/plugins-workspace/../../Legend-Master)) Fix `StoreOptions` requires `defaults` field
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "tauri-plugin-store" name = "tauri-plugin-store"
version = "2.4.4" version = "2.4.5"
description = "Simple, persistent key-value store." description = "Simple, persistent key-value store."
authors = { workspace = true } authors = { workspace = true }
license = { workspace = true } license = { workspace = true }
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "@tauri-apps/plugin-store", "name": "@tauri-apps/plugin-store",
"version": "2.4.4", "version": "2.4.5",
"description": "Simple, persistent key-value store.", "description": "Simple, persistent key-value store.",
"license": "MIT OR Apache-2.0", "license": "MIT OR Apache-2.0",
"authors": [ "authors": [
+2 -1
View File
@@ -600,7 +600,8 @@ impl<R: Runtime> Store<R> {
fn apply_pending_auto_save(&self) { fn apply_pending_auto_save(&self) {
// Cancel and save if auto save is pending // Cancel and save if auto save is pending
if let Some(sender) = self.auto_save_debounce_sender.lock().unwrap().take() { let auto_save_debounce_sender = self.auto_save_debounce_sender.lock().unwrap().take();
if let Some(sender) = auto_save_debounce_sender {
let _ = sender.send(AutoSaveMessage::Cancel); let _ = sender.send(AutoSaveMessage::Cancel);
let _ = self.save(); let _ = self.save();
}; };
+312 -202
View File
@@ -1,3 +1,104 @@
---
lockfileVersion: '9.0'
importers:
.:
configDependencies: {}
packageManagerDependencies:
pnpm:
specifier: 12.3.4
version: 12.3.4
packages:
'@pnpm/exe.darwin-arm64@12.3.4':
resolution: {integrity: sha512-PAyUol8T1+/+ViOiXAt51ECA+QnfXCqz6foL4bW+LsoX0NcVd5XVEM2mRQu+LV4oc7uRz9zf9U0P+XFfuQeDAw==}
cpu: [arm64]
os: [darwin]
'@pnpm/exe.darwin-x64@12.3.4':
resolution: {integrity: sha512-fxP9JCk0Cdye+ePuj+GJJLMUMTqHGWRdb1dtv4How876uQ2ehxvenpgiYAir/ceO9PsYUZkFTtyZdx+rRu5QOA==}
cpu: [x64]
os: [darwin]
'@pnpm/exe.linux-arm64-musl@12.3.4':
resolution: {integrity: sha512-FBOt0/7ye6O6q4AllVV5QMviB6qE6fqkeczV/+MDWQsmo+QJrlfsh6X7CpH/tClVpBZEyIbjpUoT8bNhCYBxEg==}
cpu: [arm64]
os: [linux]
libc: [musl]
'@pnpm/exe.linux-arm64@12.3.4':
resolution: {integrity: sha512-t71AVA7LRqiKTyZ5xMYaZc2n5DfdpMbfokZuiIOXHBOM03ECnF0t4iYwaBDqJgVjlKYUOwaF/bRQajGNA4cJ4w==}
cpu: [arm64]
os: [linux]
libc: [glibc]
'@pnpm/exe.linux-x64-musl@12.3.4':
resolution: {integrity: sha512-RPmk7Jb/aYaFvL2iyDN/AtMY+hUEsue732WmXpcuQ9tBpMnGyA5py7Z3+e+qmQaJ0zY/4ni9jJiyPBQHujmv6w==}
cpu: [x64]
os: [linux]
libc: [musl]
'@pnpm/exe.linux-x64@12.3.4':
resolution: {integrity: sha512-2ZqOlSPkfwX1h5cR+FPiWf8+F+2hZT/3TvhUK5sigHqwaQCIiq8R7CGxhndKs63JtcLi2a1Qpo+wX/EoyfjyJQ==}
cpu: [x64]
os: [linux]
libc: [glibc]
'@pnpm/exe.win32-arm64@12.3.4':
resolution: {integrity: sha512-ANyrHqyqco6SXBysUTRF74itDyyraea7IbFsKFdNXTjcFnfycTDx37EwuhdpPYFNSIh2JhUG4fByclsRfiHX7w==}
cpu: [arm64]
os: [win32]
'@pnpm/exe.win32-x64@12.3.4':
resolution: {integrity: sha512-WH/KqBPY/hq2Tb7SgQltEZytimcjgKRaCRL/aM9CI0c67iKc5TVmHUhIiL3Ux9FB4bWn36i6XewUcScQI+zG8w==}
cpu: [x64]
os: [win32]
pnpm@12.3.4:
resolution: {integrity: sha512-lhqkH7B32joEpEHZ+OFevAyW2o73ELLrZ7+e58sGEOq9SPH9hfUc/+c4RnhfoPh8VqOocqHYk/hEZ0G1zORUVw==}
engines: {node: '>=18.*'}
hasBin: true
snapshots:
'@pnpm/exe.darwin-arm64@12.3.4':
optional: true
'@pnpm/exe.darwin-x64@12.3.4':
optional: true
'@pnpm/exe.linux-arm64-musl@12.3.4':
optional: true
'@pnpm/exe.linux-arm64@12.3.4':
optional: true
'@pnpm/exe.linux-x64-musl@12.3.4':
optional: true
'@pnpm/exe.linux-x64@12.3.4':
optional: true
'@pnpm/exe.win32-arm64@12.3.4':
optional: true
'@pnpm/exe.win32-x64@12.3.4':
optional: true
pnpm@12.3.4:
optionalDependencies:
'@pnpm/exe.darwin-arm64': 12.3.4
'@pnpm/exe.darwin-x64': 12.3.4
'@pnpm/exe.linux-arm64': 12.3.4
'@pnpm/exe.linux-arm64-musl': 12.3.4
'@pnpm/exe.linux-x64': 12.3.4
'@pnpm/exe.linux-x64-musl': 12.3.4
'@pnpm/exe.win32-arm64': 12.3.4
'@pnpm/exe.win32-x64': 12.3.4
---
lockfileVersion: '9.0' lockfileVersion: '9.0'
settings: settings:
@@ -13,13 +114,13 @@ importers:
version: 10.0.1(eslint@10.4.0(jiti@2.6.1)) version: 10.0.1(eslint@10.4.0(jiti@2.6.1))
'@rollup/plugin-node-resolve': '@rollup/plugin-node-resolve':
specifier: 16.0.3 specifier: 16.0.3
version: 16.0.3(rollup@4.62.5) version: 16.0.3(rollup@4.63.3)
'@rollup/plugin-terser': '@rollup/plugin-terser':
specifier: 1.0.0 specifier: 1.0.0
version: 1.0.0(rollup@4.62.5) version: 1.0.0(rollup@4.63.3)
'@rollup/plugin-typescript': '@rollup/plugin-typescript':
specifier: 12.3.0 specifier: 12.3.0
version: 12.3.0(rollup@4.62.5)(tslib@2.8.1)(typescript@6.0.3) version: 12.3.0(rollup@4.63.3)(tslib@2.8.1)(typescript@6.0.3)
eslint: eslint:
specifier: 10.4.0 specifier: 10.4.0
version: 10.4.0(jiti@2.6.1) version: 10.4.0(jiti@2.6.1)
@@ -33,8 +134,8 @@ importers:
specifier: 3.8.3 specifier: 3.8.3
version: 3.8.3 version: 3.8.3
rollup: rollup:
specifier: 4.62.5 specifier: 4.63.3
version: 4.62.5 version: 4.63.3
tslib: tslib:
specifier: 2.8.1 specifier: 2.8.1
version: 2.8.1 version: 2.8.1
@@ -42,8 +143,8 @@ importers:
specifier: 6.0.3 specifier: 6.0.3
version: 6.0.3 version: 6.0.3
typescript-eslint: typescript-eslint:
specifier: 8.66.0 specifier: 8.70.0
version: 8.66.0(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3) version: 8.70.0(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3)
examples/api: examples/api:
dependencies: dependencies:
@@ -109,7 +210,7 @@ importers:
version: link:../../plugins/upload version: link:../../plugins/upload
'@zerodevx/svelte-json-view': '@zerodevx/svelte-json-view':
specifier: 2.0.0 specifier: 2.0.0
version: 2.0.0(svelte@5.55.7(@typescript-eslint/types@8.66.0)) version: 2.0.0(svelte@5.55.7(@typescript-eslint/types@8.70.0))
devDependencies: devDependencies:
'@iconify-json/codicon': '@iconify-json/codicon':
specifier: ^1.2.49 specifier: ^1.2.49
@@ -119,7 +220,7 @@ importers:
version: 1.2.2 version: 1.2.2
'@sveltejs/vite-plugin-svelte': '@sveltejs/vite-plugin-svelte':
specifier: ^7.0.0 specifier: ^7.0.0
version: 7.0.0(svelte@5.55.7(@typescript-eslint/types@8.66.0))(vite@8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.1)) version: 7.0.0(svelte@5.55.7(@typescript-eslint/types@8.70.0))(vite@8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.1))
'@tauri-apps/cli': '@tauri-apps/cli':
specifier: 2.11.4 specifier: 2.11.4
version: 2.11.4 version: 2.11.4
@@ -128,7 +229,7 @@ importers:
version: 66.6.7 version: 66.6.7
svelte: svelte:
specifier: ^5.55.7 specifier: ^5.55.7
version: 5.55.7(@typescript-eslint/types@8.66.0) version: 5.55.7(@typescript-eslint/types@8.70.0)
unocss: unocss:
specifier: ^66.6.7 specifier: ^66.6.7
version: 66.6.7(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(vite@8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.1)) version: 66.6.7(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(vite@8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.1))
@@ -564,12 +665,16 @@ packages:
resolution: {integrity: sha512-rZAP3aVgB9ds9KOeUSL+zZ21hPmo8dh6fnIFwRQj5EAZl9gzR7wxYbYXYysAM8CTqGmUGyp2S4kUdV17MnGuWQ==} resolution: {integrity: sha512-rZAP3aVgB9ds9KOeUSL+zZ21hPmo8dh6fnIFwRQj5EAZl9gzR7wxYbYXYysAM8CTqGmUGyp2S4kUdV17MnGuWQ==}
engines: {node: ^20.19.0 || ^22.13.0 || >=24} engines: {node: ^20.19.0 || ^22.13.0 || >=24}
'@humanfs/core@0.19.1': '@humanfs/core@0.19.2':
resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} resolution: {integrity: sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==}
engines: {node: '>=18.18.0'} engines: {node: '>=18.18.0'}
'@humanfs/node@0.16.7': '@humanfs/node@0.16.8':
resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==} resolution: {integrity: sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==}
engines: {node: '>=18.18.0'}
'@humanfs/types@0.15.0':
resolution: {integrity: sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==}
engines: {node: '>=18.18.0'} engines: {node: '>=18.18.0'}
'@humanwhocodes/module-importer@1.0.1': '@humanwhocodes/module-importer@1.0.1':
@@ -901,141 +1006,141 @@ packages:
rollup: rollup:
optional: true optional: true
'@rollup/rollup-android-arm-eabi@4.62.5': '@rollup/rollup-android-arm-eabi@4.63.3':
resolution: {integrity: sha512-jfkGfTwhQpsiSckPF8r9bU3pn3vyd72NlWaO+TgEO6WPSDnUhXzrNYCHBMOYj0ACaUgjm6eERLF+XV9a6RstoA==} resolution: {integrity: sha512-w3Jnvi1ocaVm/c7yVPpfB98XeSRBMyzp6njL5MVVbGyXjpmUkN+s6Hp4t0PqhGCCaI1ZHMKXt/w0lA1RCaLVcw==}
cpu: [arm] cpu: [arm]
os: [android] os: [android]
'@rollup/rollup-android-arm64@4.62.5': '@rollup/rollup-android-arm64@4.63.3':
resolution: {integrity: sha512-oGVqyQlxnrz9/ty89oHpU857VUHEl5/Xu4R2lS+aivCTrNnSsbiENzTnNaBsjxH0CNWGPhzHArOLFwo+oKXveA==} resolution: {integrity: sha512-uI/ESiaIbbRYAEhzy8PCUWDp1hB0bjAqM06mW9flOoNO4Q8DQpeoREhBR5Hegfl+wpXiguyJv6XSPzEN7OxyHQ==}
cpu: [arm64] cpu: [arm64]
os: [android] os: [android]
'@rollup/rollup-darwin-arm64@4.62.5': '@rollup/rollup-darwin-arm64@4.63.3':
resolution: {integrity: sha512-bW7B8xMEq8n99Q3ieEcPRGuphurdZAaFzQc9Efyyw3FL6DZO6pMy9xhdN+kBoD7Sy05xNXSr4OyPPnpkYriS/A==} resolution: {integrity: sha512-oxhrd1jmXLwWZ83eQYDXxuqRdkqkzrjR3JobKeuUyfdNZo11FuQIvqEOZhyIT7OBHxXoGslDDjN0cQcM6T0TqQ==}
cpu: [arm64] cpu: [arm64]
os: [darwin] os: [darwin]
'@rollup/rollup-darwin-x64@4.62.5': '@rollup/rollup-darwin-x64@4.63.3':
resolution: {integrity: sha512-YSwBS86QeHOGlrxJ1PSOIZSkzRL/JmKeunhc+lV6M1a6En8QuVCD/T/qIA0J4Gd2Y86RIOBYrLcOUtqGh9+/1w==} resolution: {integrity: sha512-7/YiIMghVE8DrxKvNdorAaJVdriOFgOIpdStnPx8ppx5zfTwC3jBCSEAIzB7JD5404m65THl6H93UTTVUvypmg==}
cpu: [x64] cpu: [x64]
os: [darwin] os: [darwin]
'@rollup/rollup-freebsd-arm64@4.62.5': '@rollup/rollup-freebsd-arm64@4.63.3':
resolution: {integrity: sha512-2fST8lILgl7cKbme/1KDdPCmbXbG+gqoV3bHp19L0ypX/3akYMBVdOunPleRCwonoLnXOZ/0F+Mt/v8POFmfcQ==} resolution: {integrity: sha512-GXFZRRoMAytaI5z6N3Zhfw0WL18Q0M8r95D5hlC4GqE/lGk8pbSJNUBoOWDfbm6dTciqHj2nU87tI5f6XhQiOg==}
cpu: [arm64] cpu: [arm64]
os: [freebsd] os: [freebsd]
'@rollup/rollup-freebsd-x64@4.62.5': '@rollup/rollup-freebsd-x64@4.63.3':
resolution: {integrity: sha512-cpIxQCP9J+EVad0a6LO1kY3ZGODlk80VlI+2I96B8xMcdHZ4pLVhfQ49JFpYqjPF91FFkQWftf57YlDcTiw9yQ==} resolution: {integrity: sha512-77W+8X3ddYgPxUpB8nZFQs2Mq+wc4HVlcSRtApXLjYBcnPMkttrSnU8VwKQjeWYhMsITHFs5cWBQ8vz1Q+5RHQ==}
cpu: [x64] cpu: [x64]
os: [freebsd] os: [freebsd]
'@rollup/rollup-linux-arm-gnueabihf@4.62.5': '@rollup/rollup-linux-arm-gnueabihf@4.63.3':
resolution: {integrity: sha512-r9fGh3eFs3e/udWh5ZjXQtxiYK/xoFxQaYR/cELxac/Udkl5Th+IsFm0CX3Kl9hmUH/we7EoMpjJgeQNnE0+IA==} resolution: {integrity: sha512-FVkwK+iUC+mq+GipVK46rRVticfAPtvPUNlqlGXUDxdVk/UGjQiiiUVPUrEXdSpU2ufU0XxLGyTqDtBidDOVmg==}
cpu: [arm] cpu: [arm]
os: [linux] os: [linux]
libc: [glibc] libc: [glibc]
'@rollup/rollup-linux-arm-musleabihf@4.62.5': '@rollup/rollup-linux-arm-musleabihf@4.63.3':
resolution: {integrity: sha512-xdvFdp7OM6KLJviJT2g/YuRSUjnZgGHk4RNgwIbN7X6cPugOucV60DdHXWzsBVCUdrGb6qSXnJQrrAKMmQuj3Q==} resolution: {integrity: sha512-+aGU1t3398yQOVj1Bz8o3e+KtswxAPvO+mtxtNdfXYMkXIHu7XhhkCD7/DEH9q8tF8uhDnMWvfpUKI8y1sZJsg==}
cpu: [arm] cpu: [arm]
os: [linux] os: [linux]
libc: [musl] libc: [musl]
'@rollup/rollup-linux-arm64-gnu@4.62.5': '@rollup/rollup-linux-arm64-gnu@4.63.3':
resolution: {integrity: sha512-rRqILAndyzHzP7T9NFQrq+4HFWNhqkqkKur7eiBpfLmz01PO0JKx5Vchu3YllE4YXI/Ftgq/szrDWg5GJ0mI8g==} resolution: {integrity: sha512-cR0kjpRXR2KJ2oQK8E2KTPtphs+b9hZ8IhTZubNryt/RsqgdOZBQ2Zq0q5UedtiIi0rs3jVhJh55RE1ZHUVGUA==}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
libc: [glibc] libc: [glibc]
'@rollup/rollup-linux-arm64-musl@4.62.5': '@rollup/rollup-linux-arm64-musl@4.63.3':
resolution: {integrity: sha512-Gf4X3qVMucayUvux6aXXPgXovocSFUC0rrffDuPI/S2nHhNMhjcZxsrAFYCOF350PRreW1XwzFj3CT/3bKsWCw==} resolution: {integrity: sha512-y1RYi4Q3/9ByVWSSt9kX2ustE0B7kFYbJ6zZdVZVyqopZs3yhCTwRfrjIX4vezUJInma/Gs6BOFDJg7yZmJ0IQ==}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
libc: [musl] libc: [musl]
'@rollup/rollup-linux-loong64-gnu@4.62.5': '@rollup/rollup-linux-loong64-gnu@4.63.3':
resolution: {integrity: sha512-+s5qA0TNM0qm8PK/a5gt/1Hpx+NV08uSuCncvhziIlQzT6AEV2fnUQo7eBtFTFO0nA9scauvoR2HusfXmQnO4w==} resolution: {integrity: sha512-DNhEA5viIj3Z5bZLE4z4oV8N5ozWqDwyt7T6KG7VdLDJ0nW+rNOYlphBl4/3HQkK75qipPLsVOfStHHOwN9WSg==}
cpu: [loong64] cpu: [loong64]
os: [linux] os: [linux]
libc: [glibc] libc: [glibc]
'@rollup/rollup-linux-loong64-musl@4.62.5': '@rollup/rollup-linux-loong64-musl@4.63.3':
resolution: {integrity: sha512-ybb6QvWwWJCbBWqERpc8K3pYVGIrXlG8MEQ8IIuJY6Y9KdHQxoFoNyfkAOtKn1VHu3KuLidXvwrvGR1mEjeWCw==} resolution: {integrity: sha512-17gQCqrIpXBX2Cmi9/TygnVOqGbzsba/iaqcYSL8FY7lNugg+7AiYNs5c5nKWD+NRQha36Sa0CqkJqH4XVHwnQ==}
cpu: [loong64] cpu: [loong64]
os: [linux] os: [linux]
libc: [musl] libc: [musl]
'@rollup/rollup-linux-ppc64-gnu@4.62.5': '@rollup/rollup-linux-ppc64-gnu@4.63.3':
resolution: {integrity: sha512-nZb1DtnOyhCmYvsC8A2CwOkopVg+IS1+fPUa7rMOAXtNw5+lLCLLPqd6XAiNrGtoQKsbvIBOwsHnBH/3wnb4HQ==} resolution: {integrity: sha512-6LwVnZRIyINpdku/yOcI8Tm9YqLmhHK5emmlOOnW9tO0SYEm1FmKPcsSAGp0NBlqR2P04xaND4jvN6sTHqhq8A==}
cpu: [ppc64] cpu: [ppc64]
os: [linux] os: [linux]
libc: [glibc] libc: [glibc]
'@rollup/rollup-linux-ppc64-musl@4.62.5': '@rollup/rollup-linux-ppc64-musl@4.63.3':
resolution: {integrity: sha512-yMbj63Sp89ryrXLWyz+sy+fYD2HpOnMCLGbe4Oa1smclFSUukdtD/BgdiHaAetJNb74URD8U4hM+qG5KVzMEkg==} resolution: {integrity: sha512-xMUqkTXlEUtI/p5AAukMwBRr1enU3efsTeF+bskeFfk8t1C9rcC8sLREcZXmTfAXEbvRdJVSonVJez3TMlbR3w==}
cpu: [ppc64] cpu: [ppc64]
os: [linux] os: [linux]
libc: [musl] libc: [musl]
'@rollup/rollup-linux-riscv64-gnu@4.62.5': '@rollup/rollup-linux-riscv64-gnu@4.63.3':
resolution: {integrity: sha512-mhoan3OJw2kYV/e1jtIdmvUZgyBFeA6zGWsOswmR0Tg19TQbowZuR+JMLID6spbbBN7Zee2ejrgmy3+FxGrIdA==} resolution: {integrity: sha512-S3E94co9F9WRRqEaUoQZ38K1gCz6KiM+nL7/3ijq7fDGF3OznjS5TasgYITlvl27GQKtu4lOAOsr5MFwkijvOA==}
cpu: [riscv64] cpu: [riscv64]
os: [linux] os: [linux]
libc: [glibc] libc: [glibc]
'@rollup/rollup-linux-riscv64-musl@4.62.5': '@rollup/rollup-linux-riscv64-musl@4.63.3':
resolution: {integrity: sha512-5ZTLmjWbb1VZdjuyhe83K/8QO0/h11midQCBP+X5OYn32ra7eOBoM0ZqtaY4nkgNsYgmdVhMYPoyVPTjUpHf3w==} resolution: {integrity: sha512-1QtRDwG42x5BJI3s9mxu5rEjDnfbSnk20HQ9/ylTAYnSwYwxMVb+Vgu34wzzTQ7ogqBybebgQNUDAvZVQ38DbA==}
cpu: [riscv64] cpu: [riscv64]
os: [linux] os: [linux]
libc: [musl] libc: [musl]
'@rollup/rollup-linux-s390x-gnu@4.62.5': '@rollup/rollup-linux-s390x-gnu@4.63.3':
resolution: {integrity: sha512-m53kG+br6PGxOTmgBEM2DHSDs9RVjsyEbUwjJPJGTFm1grWOG8EKJggDCTb60unD4Tjby8fi7/m9XfkEWasVWg==} resolution: {integrity: sha512-BQhejF6ZXOpxbngiNTP12GCGQeaDVL2QXGeBVViKIYzFHM5RKxTxwUMB1fr1BeNFphFMpnRqC5QSXFSa4z6UQw==}
cpu: [s390x] cpu: [s390x]
os: [linux] os: [linux]
libc: [glibc] libc: [glibc]
'@rollup/rollup-linux-x64-gnu@4.62.5': '@rollup/rollup-linux-x64-gnu@4.63.3':
resolution: {integrity: sha512-6RHPJR1g/uvdYU8uXBnfq3nlqyZCP82Fr6NHgfGoaIeSh0YEqnX/x6uA9MmJJbnSH7swqX4F+CkGdUF+6doiQA==} resolution: {integrity: sha512-SXagRwnI2Wlwlitllu59UK/nGVbD1CKPcNqDplHwIC4BqJcpXFjD32d1R/RbuISa95HdQrZM3/7v4bKiowFaLA==}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
libc: [glibc] libc: [glibc]
'@rollup/rollup-linux-x64-musl@4.62.5': '@rollup/rollup-linux-x64-musl@4.63.3':
resolution: {integrity: sha512-xs+OXQtEXgpXT0DmA5+U3qnRZHdCST/5HRQxS8wSPZTUZN/EMWeHuSIod32LQklTBZBV9DyfncKBQ8n5V3eFdw==} resolution: {integrity: sha512-2IPozoEALRCziGqE8O9KMK60PMu5TS1huv4fwoeCexj+WjmcwFtX9CTOVbfXCUqcELAubEwRFPYlzb/WvwY2HQ==}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
libc: [musl] libc: [musl]
'@rollup/rollup-openbsd-x64@4.62.5': '@rollup/rollup-openbsd-x64@4.63.3':
resolution: {integrity: sha512-e7hD+sl3s+mcLQDZ8pbudBVsdG6r5yN4w3LqG2TJ8sQHDpblWj5lrJs/3m01Cvlxbt4x13zu5thLjgypgtkYzw==} resolution: {integrity: sha512-AoxqosUHT9IX54hFn2TiN6A7d6ZKTtE6pd2bqWtqkkNJ6HJGaU6FRouGX8L1O7R/ZwsnCnpQrHzb4pDEx+UHRQ==}
cpu: [x64] cpu: [x64]
os: [openbsd] os: [openbsd]
'@rollup/rollup-openharmony-arm64@4.62.5': '@rollup/rollup-openharmony-arm64@4.63.3':
resolution: {integrity: sha512-GiyJaCf+WpMub/17aPcKk27QMl5W6f+KhdPTjlFOn5akH5Wa/DCM9Stdx5cDfmasyKB08MqpVQ1uJE2RkkpbXg==} resolution: {integrity: sha512-d+CaftKgmkFBzCwezMqqy1d0QNNYugqLCMcYVQWBy5SS2YfeMP8Q8ripkgx9O8IyBXXLHrJ+aaCV4U96usv6Yg==}
cpu: [arm64] cpu: [arm64]
os: [openharmony] os: [openharmony]
'@rollup/rollup-win32-arm64-msvc@4.62.5': '@rollup/rollup-win32-arm64-msvc@4.63.3':
resolution: {integrity: sha512-+OQ8U2DdoEfXl8T4Fb18AjmEwbXMerKDKCL8yCPAYhKCEEKoul7rkbeGCBFCbAlaGaa7pmtRTpkAJM2LE/i5FA==} resolution: {integrity: sha512-xXlDF6nR1eOuXbdDy5Hl5fmtY7teUDevF/k0O7IPoZe4Tpmdv+lgdE5JRsnhQtt37ql9P0VF2kAN9a0OCZdo+Q==}
cpu: [arm64] cpu: [arm64]
os: [win32] os: [win32]
'@rollup/rollup-win32-ia32-msvc@4.62.5': '@rollup/rollup-win32-ia32-msvc@4.63.3':
resolution: {integrity: sha512-KanvAZrPKbDBFwrgiU9yEVpQoox9QPV1WZOXX7HudJQY+eSlu82CtWxDU8WtuRRvtN5EGkLczkd6Y6DTcvm9wA==} resolution: {integrity: sha512-YtXAgLN+JP7Ay6qG3eWhc7IHMQPzLc8r3uvhAvlJIoCz/4Q32+Bl9Fmnywidh8v1GOIMmymjovfqY9ETAtysvA==}
cpu: [ia32] cpu: [ia32]
os: [win32] os: [win32]
'@rollup/rollup-win32-x64-gnu@4.62.5': '@rollup/rollup-win32-x64-gnu@4.63.3':
resolution: {integrity: sha512-1aC3UEWTtRl3RK3VpDJ/Tqk1XI4SLTmXIthAq6wRWo8XiSXJNd+VprJM4/1P4+i6HIaFEFlVi9sTTziniD2tOQ==} resolution: {integrity: sha512-WuWtSJRNo549vzcfZyEgfqb6zeSgn1F+UE5kQ+BCjzz0W4MGCjntUHkZVc1VRuAM7+ULaSyhiPxD1spyewFvkQ==}
cpu: [x64] cpu: [x64]
os: [win32] os: [win32]
'@rollup/rollup-win32-x64-msvc@4.62.5': '@rollup/rollup-win32-x64-msvc@4.63.3':
resolution: {integrity: sha512-/gDJaRs4gl0NPIwqCz+6PkpmhhjRAD2j6P4rSNHBzUkO3naEx2mIU0pRle1vUNRQ7mE/+8OOeXLTv/J56FKiQg==} resolution: {integrity: sha512-+lIKX7O0+IGe7WuhATaAMMeT7B76vfhXH/l9wLQL+nvyhbw2ohYCKIdWL56JfDu75CWt5oKRP4QFH/jkMtBquA==}
cpu: [x64] cpu: [x64]
os: [win32] os: [win32]
@@ -1148,63 +1253,63 @@ packages:
'@types/trusted-types@2.0.7': '@types/trusted-types@2.0.7':
resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==}
'@typescript-eslint/eslint-plugin@8.66.0': '@typescript-eslint/eslint-plugin@8.70.0':
resolution: {integrity: sha512-p088eaGrzYz1s+7cov0aMOCkNGTJlVxF4jgubf28c8L0Cv9Rloj8YBHnv4hXLq6IIEE1AsjNWavO+k+8kP2Y0A==} resolution: {integrity: sha512-/v8HZt6RlyIZxB3ntehELOcUcfxKPVGWXnQdJuHRmzrqgF8nQypcC/oxGW+Ot4VGKDq81XugPKxx0n5PBtf9PA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies: peerDependencies:
'@typescript-eslint/parser': ^8.66.0 '@typescript-eslint/parser': ^8.70.0
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
typescript: '>=4.8.4 <6.1.0' typescript: '>=4.8.4 <6.1.0'
'@typescript-eslint/parser@8.66.0': '@typescript-eslint/parser@8.70.0':
resolution: {integrity: sha512-X6ypGChaWYk6PBtUg2BwuTZEFFcHJAtGTVJ9/lCTOufhZ4i9fNolQNnktq+kkMCwMj7V8Svsq7+TxSDslmhE0g==} resolution: {integrity: sha512-zYvrmj9Yxd63UGaXw+kdt6A0F0s0qveJyuatIM77bYC2DE4pgmg7a50u8LR7PRtXd0x+h+Tl3eXabGm06SWd3Q==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies: peerDependencies:
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
typescript: '>=4.8.4 <6.1.0' typescript: '>=4.8.4 <6.1.0'
'@typescript-eslint/project-service@8.66.0': '@typescript-eslint/project-service@8.70.0':
resolution: {integrity: sha512-7MthGPTt4BP69lSryqpqq8HQqxuzynssckL/jyDyk3+TNMQ3y2jFWkptCrktWvBrP+EH787Nl5N5Qpw7WZg+5g==} resolution: {integrity: sha512-hFHbTNqhU9G+2eKFXCBVb1tjFT/LceiJ4+HfLO4pTpDI0KHi6iajpcFFkaSQ9gXmCh7n82A0PthaayEdN6mspQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies: peerDependencies:
typescript: '>=4.8.4 <6.1.0' typescript: '>=4.8.4 <6.1.0'
'@typescript-eslint/scope-manager@8.66.0': '@typescript-eslint/scope-manager@8.70.0':
resolution: {integrity: sha512-8TGcH25j9zqJ/IULB/ppyhRvxA8QYfFEZ7nfbg6/BN9spDgb8fPWQXlE5l8TWBL50EtUx007uZ1o9VOwrq2/9g==} resolution: {integrity: sha512-8nP3Kwh5hlgZ4FicGvmznAmJe8UL4sdU8tLukrPaMuQmDuk4Y8xYfzu/aYZW4xT2JCgc7H/TpDI5cGlxcWJSqQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@typescript-eslint/tsconfig-utils@8.66.0': '@typescript-eslint/tsconfig-utils@8.70.0':
resolution: {integrity: sha512-9D5gLYZG4rOjcoag8MQ/fWI8WqA9wcPDyOGyWtWFhvM1lHRbliqUSPIY5J3zqCU1tvSwzXxnnjhQhz5Ne7mJ4g==} resolution: {integrity: sha512-adnkeeNq9Sq1sUf4+FRVc0KdgYghzsgFpZSQVZVvY0LCuUuN0FnQgyGzCJeC4fW1cdXseBAjU2EOqUIjbNcZUw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies: peerDependencies:
typescript: '>=4.8.4 <6.1.0' typescript: '>=4.8.4 <6.1.0'
'@typescript-eslint/type-utils@8.66.0': '@typescript-eslint/type-utils@8.70.0':
resolution: {integrity: sha512-LG2dWfjZQQp0ADtAu/EWJVayefGL2UEZ3CDeI44D9v3rXB/WYUqE/jpO28KrEKul5AySrmI+Zh1v6v+xW2U9+g==} resolution: {integrity: sha512-NUMKIhYVaVIVLnRL9CRt+VVcuLgSHUCpXn4/+K8wql+vdInUzvx8BjUO1oJ7cG9shjFJKtF8F8Hh2kCh3/KBVw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies: peerDependencies:
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
typescript: '>=4.8.4 <6.1.0' typescript: '>=4.8.4 <6.1.0'
'@typescript-eslint/types@8.66.0': '@typescript-eslint/types@8.70.0':
resolution: {integrity: sha512-H6gcYaSDOyvL3AD/jHUtUFo2jqGgn/F6nuyuZSu0QTesxL+cP4dQoIMrODRofuJC09g64+WgZ6tE19Y1N2YIFQ==} resolution: {integrity: sha512-asTOIYhDg4zdzOScCyaytrsV3cR6B4ecPQlXw/dJIm7J/MZTtCtfVII9JD8Geh4jTCrK/Xe6cg5UevoleMcoJQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@typescript-eslint/typescript-estree@8.66.0': '@typescript-eslint/typescript-estree@8.70.0':
resolution: {integrity: sha512-8/x4INiiQb10jGgXYD7116/zQ+OL84ZIFn0za68wwFHCanT/VLbBEroWht8RV8fn0/ZCAoazHLQgwUC0UQcDfg==} resolution: {integrity: sha512-d9NmHMPEKQ7QCLLm1jI3zmoQBwT5KwFYjXBJ9ymZfKCUU+5rmTRykKAFvH5Qn/ZCds3CEAFS9OC9M/jkl0X2bA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies: peerDependencies:
typescript: '>=4.8.4 <6.1.0' typescript: '>=4.8.4 <6.1.0'
'@typescript-eslint/utils@8.66.0': '@typescript-eslint/utils@8.70.0':
resolution: {integrity: sha512-jasearZPolBw5NJNYGMwxzHMF83niVWmMU1VdHzG1CyfI2VS7f7nZltnKtHcg20hW+7Uo5GfK4MeDPoU3qI8EA==} resolution: {integrity: sha512-oZmtKJz/4fufZ2p3+Cn3ijEojcdfR+1zYDH2xKYrEly0dR/Q/1xUPRCOlKGxod78nWlU2UnDe09GZ3TaknBFGA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies: peerDependencies:
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
typescript: '>=4.8.4 <6.1.0' typescript: '>=4.8.4 <6.1.0'
'@typescript-eslint/visitor-keys@8.66.0': '@typescript-eslint/visitor-keys@8.70.0':
resolution: {integrity: sha512-dkKR8q+lKciskj1Y3vthHktl+3cMLWGyVUP23bRiPZ5O9BRT++4EqDDV+TVeIKBL1VXVEqrJlz8MYbcnvJcAlg==} resolution: {integrity: sha512-BoC8PiO4Hkdo0TVJh9Ntxr5MxPDI7/oFsrygN5ADelFSeXG/qgNuucIGA+L5Z6JpPTE/uRfcTWtscjbUaufepQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@unocss/cli@66.6.7': '@unocss/cli@66.6.7':
@@ -1778,8 +1883,8 @@ packages:
engines: {node: ^20.19.0 || >=22.12.0} engines: {node: ^20.19.0 || >=22.12.0}
hasBin: true hasBin: true
rollup@4.62.5: rollup@4.63.3:
resolution: {integrity: sha512-/tqMfgP7GPA3PHhCmuiS4vIjrSVhHLgY++i+dhbG462euyAj7FpM4D9uq1X3BgjlqRdpcOrYhcQtfiQLNc8tqw==} resolution: {integrity: sha512-1i2XreiAoMMXuPGD6Msj2xWrMMkHojNRKivInxGQcg7/1KuPuYlfUutLyh4drnOxUTHX9cHI4wFoat8D/NKaBw==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'} engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true hasBin: true
@@ -1868,8 +1973,8 @@ packages:
type-level-regexp@0.1.17: type-level-regexp@0.1.17:
resolution: {integrity: sha512-wTk4DH3cxwk196uGLK/E9pE45aLfeKJacKmcEgEOA/q5dnPGNxXt0cfYdFxb57L+sEpf1oJH4Dnx/pnRcku9jg==} resolution: {integrity: sha512-wTk4DH3cxwk196uGLK/E9pE45aLfeKJacKmcEgEOA/q5dnPGNxXt0cfYdFxb57L+sEpf1oJH4Dnx/pnRcku9jg==}
typescript-eslint@8.66.0: typescript-eslint@8.70.0:
resolution: {integrity: sha512-QlEbBPz/RuJ1XUHj29nm3t0F/O/cSlEnntozqPOYHnnTGAXFamnMBu5i9Vn6vhUPHGAjR+Vl+5J8vPN/BMUrJw==} resolution: {integrity: sha512-P/W5cz70/cQAuKfY3xwQMWWTV7BvJ0mAQmi+9mBcsVPaBUpd6Ohpa+fECv9rBFrQcig86jAiNBFNWUqnTjr4pw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies: peerDependencies:
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
@@ -2120,13 +2225,18 @@ snapshots:
'@eslint/core': 1.2.1 '@eslint/core': 1.2.1
levn: 0.4.1 levn: 0.4.1
'@humanfs/core@0.19.1': {} '@humanfs/core@0.19.2':
'@humanfs/node@0.16.7':
dependencies: dependencies:
'@humanfs/core': 0.19.1 '@humanfs/types': 0.15.0
'@humanfs/node@0.16.8':
dependencies:
'@humanfs/core': 0.19.2
'@humanfs/types': 0.15.0
'@humanwhocodes/retry': 0.4.3 '@humanwhocodes/retry': 0.4.3
'@humanfs/types@0.15.0': {}
'@humanwhocodes/module-importer@1.0.1': {} '@humanwhocodes/module-importer@1.0.1': {}
'@humanwhocodes/retry@0.4.3': {} '@humanwhocodes/retry@0.4.3': {}
@@ -2307,126 +2417,126 @@ snapshots:
'@rolldown/pluginutils@1.0.1': {} '@rolldown/pluginutils@1.0.1': {}
'@rollup/plugin-node-resolve@16.0.3(rollup@4.62.5)': '@rollup/plugin-node-resolve@16.0.3(rollup@4.63.3)':
dependencies: dependencies:
'@rollup/pluginutils': 5.3.0(rollup@4.62.5) '@rollup/pluginutils': 5.3.0(rollup@4.63.3)
'@types/resolve': 1.20.2 '@types/resolve': 1.20.2
deepmerge: 4.3.1 deepmerge: 4.3.1
is-module: 1.0.0 is-module: 1.0.0
resolve: 1.22.11 resolve: 1.22.11
optionalDependencies: optionalDependencies:
rollup: 4.62.5 rollup: 4.63.3
'@rollup/plugin-terser@1.0.0(rollup@4.62.5)': '@rollup/plugin-terser@1.0.0(rollup@4.63.3)':
dependencies: dependencies:
serialize-javascript: 7.0.5 serialize-javascript: 7.0.5
smob: 1.6.1 smob: 1.6.1
terser: 5.46.1 terser: 5.46.1
optionalDependencies: optionalDependencies:
rollup: 4.62.5 rollup: 4.63.3
'@rollup/plugin-typescript@12.3.0(rollup@4.62.5)(tslib@2.8.1)(typescript@6.0.3)': '@rollup/plugin-typescript@12.3.0(rollup@4.63.3)(tslib@2.8.1)(typescript@6.0.3)':
dependencies: dependencies:
'@rollup/pluginutils': 5.3.0(rollup@4.62.5) '@rollup/pluginutils': 5.3.0(rollup@4.63.3)
resolve: 1.22.11 resolve: 1.22.11
typescript: 6.0.3 typescript: 6.0.3
optionalDependencies: optionalDependencies:
rollup: 4.62.5 rollup: 4.63.3
tslib: 2.8.1 tslib: 2.8.1
'@rollup/pluginutils@5.3.0(rollup@4.62.5)': '@rollup/pluginutils@5.3.0(rollup@4.63.3)':
dependencies: dependencies:
'@types/estree': 1.0.9 '@types/estree': 1.0.9
estree-walker: 2.0.2 estree-walker: 2.0.2
picomatch: 4.0.4 picomatch: 4.0.4
optionalDependencies: optionalDependencies:
rollup: 4.62.5 rollup: 4.63.3
'@rollup/rollup-android-arm-eabi@4.62.5': '@rollup/rollup-android-arm-eabi@4.63.3':
optional: true optional: true
'@rollup/rollup-android-arm64@4.62.5': '@rollup/rollup-android-arm64@4.63.3':
optional: true optional: true
'@rollup/rollup-darwin-arm64@4.62.5': '@rollup/rollup-darwin-arm64@4.63.3':
optional: true optional: true
'@rollup/rollup-darwin-x64@4.62.5': '@rollup/rollup-darwin-x64@4.63.3':
optional: true optional: true
'@rollup/rollup-freebsd-arm64@4.62.5': '@rollup/rollup-freebsd-arm64@4.63.3':
optional: true optional: true
'@rollup/rollup-freebsd-x64@4.62.5': '@rollup/rollup-freebsd-x64@4.63.3':
optional: true optional: true
'@rollup/rollup-linux-arm-gnueabihf@4.62.5': '@rollup/rollup-linux-arm-gnueabihf@4.63.3':
optional: true optional: true
'@rollup/rollup-linux-arm-musleabihf@4.62.5': '@rollup/rollup-linux-arm-musleabihf@4.63.3':
optional: true optional: true
'@rollup/rollup-linux-arm64-gnu@4.62.5': '@rollup/rollup-linux-arm64-gnu@4.63.3':
optional: true optional: true
'@rollup/rollup-linux-arm64-musl@4.62.5': '@rollup/rollup-linux-arm64-musl@4.63.3':
optional: true optional: true
'@rollup/rollup-linux-loong64-gnu@4.62.5': '@rollup/rollup-linux-loong64-gnu@4.63.3':
optional: true optional: true
'@rollup/rollup-linux-loong64-musl@4.62.5': '@rollup/rollup-linux-loong64-musl@4.63.3':
optional: true optional: true
'@rollup/rollup-linux-ppc64-gnu@4.62.5': '@rollup/rollup-linux-ppc64-gnu@4.63.3':
optional: true optional: true
'@rollup/rollup-linux-ppc64-musl@4.62.5': '@rollup/rollup-linux-ppc64-musl@4.63.3':
optional: true optional: true
'@rollup/rollup-linux-riscv64-gnu@4.62.5': '@rollup/rollup-linux-riscv64-gnu@4.63.3':
optional: true optional: true
'@rollup/rollup-linux-riscv64-musl@4.62.5': '@rollup/rollup-linux-riscv64-musl@4.63.3':
optional: true optional: true
'@rollup/rollup-linux-s390x-gnu@4.62.5': '@rollup/rollup-linux-s390x-gnu@4.63.3':
optional: true optional: true
'@rollup/rollup-linux-x64-gnu@4.62.5': '@rollup/rollup-linux-x64-gnu@4.63.3':
optional: true optional: true
'@rollup/rollup-linux-x64-musl@4.62.5': '@rollup/rollup-linux-x64-musl@4.63.3':
optional: true optional: true
'@rollup/rollup-openbsd-x64@4.62.5': '@rollup/rollup-openbsd-x64@4.63.3':
optional: true optional: true
'@rollup/rollup-openharmony-arm64@4.62.5': '@rollup/rollup-openharmony-arm64@4.63.3':
optional: true optional: true
'@rollup/rollup-win32-arm64-msvc@4.62.5': '@rollup/rollup-win32-arm64-msvc@4.63.3':
optional: true optional: true
'@rollup/rollup-win32-ia32-msvc@4.62.5': '@rollup/rollup-win32-ia32-msvc@4.63.3':
optional: true optional: true
'@rollup/rollup-win32-x64-gnu@4.62.5': '@rollup/rollup-win32-x64-gnu@4.63.3':
optional: true optional: true
'@rollup/rollup-win32-x64-msvc@4.62.5': '@rollup/rollup-win32-x64-msvc@4.63.3':
optional: true optional: true
'@sveltejs/acorn-typescript@1.0.9(acorn@8.16.0)': '@sveltejs/acorn-typescript@1.0.9(acorn@8.16.0)':
dependencies: dependencies:
acorn: 8.16.0 acorn: 8.16.0
'@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.7(@typescript-eslint/types@8.66.0))(vite@8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.1))': '@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.7(@typescript-eslint/types@8.70.0))(vite@8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.1))':
dependencies: dependencies:
deepmerge: 4.3.1 deepmerge: 4.3.1
magic-string: 0.30.21 magic-string: 0.30.21
obug: 2.1.1 obug: 2.1.1
svelte: 5.55.7(@typescript-eslint/types@8.66.0) svelte: 5.55.7(@typescript-eslint/types@8.70.0)
vite: 8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.1) vite: 8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.1)
vitefu: 1.1.2(vite@8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.1)) vitefu: 1.1.2(vite@8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.1))
@@ -2494,14 +2604,14 @@ snapshots:
'@types/trusted-types@2.0.7': {} '@types/trusted-types@2.0.7': {}
'@typescript-eslint/eslint-plugin@8.66.0(@typescript-eslint/parser@8.66.0(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3))(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3)': '@typescript-eslint/eslint-plugin@8.70.0(@typescript-eslint/parser@8.70.0(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3))(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3)':
dependencies: dependencies:
'@eslint-community/regexpp': 4.12.2 '@eslint-community/regexpp': 4.12.2
'@typescript-eslint/parser': 8.66.0(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3) '@typescript-eslint/parser': 8.70.0(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3)
'@typescript-eslint/scope-manager': 8.66.0 '@typescript-eslint/scope-manager': 8.70.0
'@typescript-eslint/type-utils': 8.66.0(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3) '@typescript-eslint/type-utils': 8.70.0(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3)
'@typescript-eslint/utils': 8.66.0(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3) '@typescript-eslint/utils': 8.70.0(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3)
'@typescript-eslint/visitor-keys': 8.66.0 '@typescript-eslint/visitor-keys': 8.70.0
eslint: 10.4.0(jiti@2.6.1) eslint: 10.4.0(jiti@2.6.1)
ignore: 7.0.5 ignore: 7.0.5
natural-compare: 1.4.0 natural-compare: 1.4.0
@@ -2510,41 +2620,41 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@typescript-eslint/parser@8.66.0(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3)': '@typescript-eslint/parser@8.70.0(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3)':
dependencies: dependencies:
'@typescript-eslint/scope-manager': 8.66.0 '@typescript-eslint/scope-manager': 8.70.0
'@typescript-eslint/types': 8.66.0 '@typescript-eslint/types': 8.70.0
'@typescript-eslint/typescript-estree': 8.66.0(typescript@6.0.3) '@typescript-eslint/typescript-estree': 8.70.0(typescript@6.0.3)
'@typescript-eslint/visitor-keys': 8.66.0 '@typescript-eslint/visitor-keys': 8.70.0
debug: 4.4.3 debug: 4.4.3
eslint: 10.4.0(jiti@2.6.1) eslint: 10.4.0(jiti@2.6.1)
typescript: 6.0.3 typescript: 6.0.3
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@typescript-eslint/project-service@8.66.0(typescript@6.0.3)': '@typescript-eslint/project-service@8.70.0(typescript@6.0.3)':
dependencies: dependencies:
'@typescript-eslint/tsconfig-utils': 8.66.0(typescript@6.0.3) '@typescript-eslint/tsconfig-utils': 8.70.0(typescript@6.0.3)
'@typescript-eslint/types': 8.66.0 '@typescript-eslint/types': 8.70.0
debug: 4.4.3 debug: 4.4.3
typescript: 6.0.3 typescript: 6.0.3
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@typescript-eslint/scope-manager@8.66.0': '@typescript-eslint/scope-manager@8.70.0':
dependencies: dependencies:
'@typescript-eslint/types': 8.66.0 '@typescript-eslint/types': 8.70.0
'@typescript-eslint/visitor-keys': 8.66.0 '@typescript-eslint/visitor-keys': 8.70.0
'@typescript-eslint/tsconfig-utils@8.66.0(typescript@6.0.3)': '@typescript-eslint/tsconfig-utils@8.70.0(typescript@6.0.3)':
dependencies: dependencies:
typescript: 6.0.3 typescript: 6.0.3
'@typescript-eslint/type-utils@8.66.0(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3)': '@typescript-eslint/type-utils@8.70.0(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3)':
dependencies: dependencies:
'@typescript-eslint/types': 8.66.0 '@typescript-eslint/types': 8.70.0
'@typescript-eslint/typescript-estree': 8.66.0(typescript@6.0.3) '@typescript-eslint/typescript-estree': 8.70.0(typescript@6.0.3)
'@typescript-eslint/utils': 8.66.0(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3) '@typescript-eslint/utils': 8.70.0(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3)
debug: 4.4.3 debug: 4.4.3
eslint: 10.4.0(jiti@2.6.1) eslint: 10.4.0(jiti@2.6.1)
ts-api-utils: 2.5.0(typescript@6.0.3) ts-api-utils: 2.5.0(typescript@6.0.3)
@@ -2552,14 +2662,14 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@typescript-eslint/types@8.66.0': {} '@typescript-eslint/types@8.70.0': {}
'@typescript-eslint/typescript-estree@8.66.0(typescript@6.0.3)': '@typescript-eslint/typescript-estree@8.70.0(typescript@6.0.3)':
dependencies: dependencies:
'@typescript-eslint/project-service': 8.66.0(typescript@6.0.3) '@typescript-eslint/project-service': 8.70.0(typescript@6.0.3)
'@typescript-eslint/tsconfig-utils': 8.66.0(typescript@6.0.3) '@typescript-eslint/tsconfig-utils': 8.70.0(typescript@6.0.3)
'@typescript-eslint/types': 8.66.0 '@typescript-eslint/types': 8.70.0
'@typescript-eslint/visitor-keys': 8.66.0 '@typescript-eslint/visitor-keys': 8.70.0
debug: 4.4.3 debug: 4.4.3
minimatch: 10.2.4 minimatch: 10.2.4
semver: 7.7.4 semver: 7.7.4
@@ -2569,20 +2679,20 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@typescript-eslint/utils@8.66.0(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3)': '@typescript-eslint/utils@8.70.0(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3)':
dependencies: dependencies:
'@eslint-community/eslint-utils': 4.9.1(eslint@10.4.0(jiti@2.6.1)) '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.0(jiti@2.6.1))
'@typescript-eslint/scope-manager': 8.66.0 '@typescript-eslint/scope-manager': 8.70.0
'@typescript-eslint/types': 8.66.0 '@typescript-eslint/types': 8.70.0
'@typescript-eslint/typescript-estree': 8.66.0(typescript@6.0.3) '@typescript-eslint/typescript-estree': 8.70.0(typescript@6.0.3)
eslint: 10.4.0(jiti@2.6.1) eslint: 10.4.0(jiti@2.6.1)
typescript: 6.0.3 typescript: 6.0.3
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@typescript-eslint/visitor-keys@8.66.0': '@typescript-eslint/visitor-keys@8.70.0':
dependencies: dependencies:
'@typescript-eslint/types': 8.66.0 '@typescript-eslint/types': 8.70.0
eslint-visitor-keys: 5.0.1 eslint-visitor-keys: 5.0.1
'@unocss/cli@66.6.7': '@unocss/cli@66.6.7':
@@ -2719,9 +2829,9 @@ snapshots:
unplugin-utils: 0.3.1 unplugin-utils: 0.3.1
vite: 8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.1) vite: 8.0.16(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.1)
'@zerodevx/svelte-json-view@2.0.0(svelte@5.55.7(@typescript-eslint/types@8.66.0))': '@zerodevx/svelte-json-view@2.0.0(svelte@5.55.7(@typescript-eslint/types@8.70.0))':
optionalDependencies: optionalDependencies:
svelte: 5.55.7(@typescript-eslint/types@8.66.0) svelte: 5.55.7(@typescript-eslint/types@8.70.0)
acorn-jsx@5.3.2(acorn@8.16.0): acorn-jsx@5.3.2(acorn@8.16.0):
dependencies: dependencies:
@@ -2852,7 +2962,7 @@ snapshots:
'@eslint/config-helpers': 0.6.0 '@eslint/config-helpers': 0.6.0
'@eslint/core': 1.2.1 '@eslint/core': 1.2.1
'@eslint/plugin-kit': 0.7.1 '@eslint/plugin-kit': 0.7.1
'@humanfs/node': 0.16.7 '@humanfs/node': 0.16.8
'@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/module-importer': 1.0.1
'@humanwhocodes/retry': 0.4.3 '@humanwhocodes/retry': 0.4.3
'@types/estree': 1.0.9 '@types/estree': 1.0.9
@@ -2893,11 +3003,11 @@ snapshots:
dependencies: dependencies:
estraverse: 5.3.0 estraverse: 5.3.0
esrap@2.2.8(@typescript-eslint/types@8.66.0): esrap@2.2.8(@typescript-eslint/types@8.70.0):
dependencies: dependencies:
'@jridgewell/sourcemap-codec': 1.5.5 '@jridgewell/sourcemap-codec': 1.5.5
optionalDependencies: optionalDependencies:
'@typescript-eslint/types': 8.66.0 '@typescript-eslint/types': 8.70.0
esrecurse@4.3.0: esrecurse@4.3.0:
dependencies: dependencies:
@@ -3214,36 +3324,36 @@ snapshots:
'@rolldown/binding-win32-arm64-msvc': 1.0.3 '@rolldown/binding-win32-arm64-msvc': 1.0.3
'@rolldown/binding-win32-x64-msvc': 1.0.3 '@rolldown/binding-win32-x64-msvc': 1.0.3
rollup@4.62.5: rollup@4.63.3:
dependencies: dependencies:
'@types/estree': 1.0.9 '@types/estree': 1.0.9
optionalDependencies: optionalDependencies:
'@napi-rs/lzma-linux-x64-gnu': 1.5.1 '@napi-rs/lzma-linux-x64-gnu': 1.5.1
'@rollup/rollup-android-arm-eabi': 4.62.5 '@rollup/rollup-android-arm-eabi': 4.63.3
'@rollup/rollup-android-arm64': 4.62.5 '@rollup/rollup-android-arm64': 4.63.3
'@rollup/rollup-darwin-arm64': 4.62.5 '@rollup/rollup-darwin-arm64': 4.63.3
'@rollup/rollup-darwin-x64': 4.62.5 '@rollup/rollup-darwin-x64': 4.63.3
'@rollup/rollup-freebsd-arm64': 4.62.5 '@rollup/rollup-freebsd-arm64': 4.63.3
'@rollup/rollup-freebsd-x64': 4.62.5 '@rollup/rollup-freebsd-x64': 4.63.3
'@rollup/rollup-linux-arm-gnueabihf': 4.62.5 '@rollup/rollup-linux-arm-gnueabihf': 4.63.3
'@rollup/rollup-linux-arm-musleabihf': 4.62.5 '@rollup/rollup-linux-arm-musleabihf': 4.63.3
'@rollup/rollup-linux-arm64-gnu': 4.62.5 '@rollup/rollup-linux-arm64-gnu': 4.63.3
'@rollup/rollup-linux-arm64-musl': 4.62.5 '@rollup/rollup-linux-arm64-musl': 4.63.3
'@rollup/rollup-linux-loong64-gnu': 4.62.5 '@rollup/rollup-linux-loong64-gnu': 4.63.3
'@rollup/rollup-linux-loong64-musl': 4.62.5 '@rollup/rollup-linux-loong64-musl': 4.63.3
'@rollup/rollup-linux-ppc64-gnu': 4.62.5 '@rollup/rollup-linux-ppc64-gnu': 4.63.3
'@rollup/rollup-linux-ppc64-musl': 4.62.5 '@rollup/rollup-linux-ppc64-musl': 4.63.3
'@rollup/rollup-linux-riscv64-gnu': 4.62.5 '@rollup/rollup-linux-riscv64-gnu': 4.63.3
'@rollup/rollup-linux-riscv64-musl': 4.62.5 '@rollup/rollup-linux-riscv64-musl': 4.63.3
'@rollup/rollup-linux-s390x-gnu': 4.62.5 '@rollup/rollup-linux-s390x-gnu': 4.63.3
'@rollup/rollup-linux-x64-gnu': 4.62.5 '@rollup/rollup-linux-x64-gnu': 4.63.3
'@rollup/rollup-linux-x64-musl': 4.62.5 '@rollup/rollup-linux-x64-musl': 4.63.3
'@rollup/rollup-openbsd-x64': 4.62.5 '@rollup/rollup-openbsd-x64': 4.63.3
'@rollup/rollup-openharmony-arm64': 4.62.5 '@rollup/rollup-openharmony-arm64': 4.63.3
'@rollup/rollup-win32-arm64-msvc': 4.62.5 '@rollup/rollup-win32-arm64-msvc': 4.63.3
'@rollup/rollup-win32-ia32-msvc': 4.62.5 '@rollup/rollup-win32-ia32-msvc': 4.63.3
'@rollup/rollup-win32-x64-gnu': 4.62.5 '@rollup/rollup-win32-x64-gnu': 4.63.3
'@rollup/rollup-win32-x64-msvc': 4.62.5 '@rollup/rollup-win32-x64-msvc': 4.63.3
fsevents: 2.3.3 fsevents: 2.3.3
safe-regex@2.1.1: safe-regex@2.1.1:
@@ -3279,7 +3389,7 @@ snapshots:
supports-preserve-symlinks-flag@1.0.0: {} supports-preserve-symlinks-flag@1.0.0: {}
svelte@5.55.7(@typescript-eslint/types@8.66.0): svelte@5.55.7(@typescript-eslint/types@8.70.0):
dependencies: dependencies:
'@jridgewell/remapping': 2.3.5 '@jridgewell/remapping': 2.3.5
'@jridgewell/sourcemap-codec': 1.5.5 '@jridgewell/sourcemap-codec': 1.5.5
@@ -3292,7 +3402,7 @@ snapshots:
clsx: 2.1.1 clsx: 2.1.1
devalue: 5.8.1 devalue: 5.8.1
esm-env: 1.2.2 esm-env: 1.2.2
esrap: 2.2.8(@typescript-eslint/types@8.66.0) esrap: 2.2.8(@typescript-eslint/types@8.70.0)
is-reference: 3.0.3 is-reference: 3.0.3
locate-character: 3.0.0 locate-character: 3.0.0
magic-string: 0.30.21 magic-string: 0.30.21
@@ -3335,12 +3445,12 @@ snapshots:
type-level-regexp@0.1.17: {} type-level-regexp@0.1.17: {}
typescript-eslint@8.66.0(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3): typescript-eslint@8.70.0(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3):
dependencies: dependencies:
'@typescript-eslint/eslint-plugin': 8.66.0(@typescript-eslint/parser@8.66.0(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3))(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3) '@typescript-eslint/eslint-plugin': 8.70.0(@typescript-eslint/parser@8.70.0(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3))(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3)
'@typescript-eslint/parser': 8.66.0(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3) '@typescript-eslint/parser': 8.70.0(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3)
'@typescript-eslint/typescript-estree': 8.66.0(typescript@6.0.3) '@typescript-eslint/typescript-estree': 8.70.0(typescript@6.0.3)
'@typescript-eslint/utils': 8.66.0(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3) '@typescript-eslint/utils': 8.70.0(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3)
eslint: 10.4.0(jiti@2.6.1) eslint: 10.4.0(jiti@2.6.1)
typescript: 6.0.3 typescript: 6.0.3
transitivePeerDependencies: transitivePeerDependencies: