From 83a06e5716bbb46612f2575d078a771a7d7969bc Mon Sep 17 00:00:00 2001 From: Tunglies <77394545+Tunglies@users.noreply.github.com> Date: Wed, 16 Sep 2026 17:37:34 +0800 Subject: [PATCH] feat(app): upgrade to tauri 3.0.0-alpha Move the app onto the tauri v3 alpha line: runtime selection is now explicit via tauri-runtime-wry, the Wry generics give way to the DynRuntime defaults, and every official plugin rides 3.0.0-alpha.0 alongside the matching npm packages; pnpm moves to 12.4.2. The tray-icon patch is dropped because upstream 0.25.1 ships the macOS 27 click-reentrancy fix. perf-harness is temporarily hollowed out until tauri-plugin-wdio-webdriver publishes a tauri 3 release. --- Cargo.lock | 698 ++++++++++---------------- Cargo.toml | 11 +- package.json | 18 +- pnpm-lock.yaml | 289 +++++------ pnpm-workspace.yaml | 12 + src-tauri/Cargo.toml | 37 +- src-tauri/capabilities/migrated.json | 1 - src-tauri/src/core/tray/mod.rs | 66 +-- src-tauri/src/lib.rs | 6 +- src-tauri/src/main.rs | 11 - src-tauri/src/utils/resolve/window.rs | 5 +- src-tauri/src/utils/window_manager.rs | 18 +- 12 files changed, 501 insertions(+), 671 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4781fb5e3..0e26ce05c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -154,7 +154,7 @@ dependencies = [ "objc2-foundation", "parking_lot", "percent-encoding", - "windows-sys 0.60.2", + "windows-sys 0.52.0", "wl-clipboard-rs", "x11rb", ] @@ -352,7 +352,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "241b621213072e993be4f6f3a9e4b45f65b7e6faad43001be957184b7bb1824b" dependencies = [ "atk-sys", - "glib 0.18.5", + "glib", "libc", ] @@ -362,10 +362,10 @@ version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c5e48b684b0ca77d2bbadeef17424c2ea3c897d44d566a1617e7e8f30614d086" dependencies = [ - "glib-sys 0.18.1", - "gobject-sys 0.18.0", + "glib-sys", + "gobject-sys", "libc", - "system-deps 6.2.2", + "system-deps", ] [[package]] @@ -422,13 +422,10 @@ checksum = "31b698c5f9a010f6573133b09e0de5408834d0c82f8d7475a89fc1867a71cd90" dependencies = [ "axum-core", "bytes", - "form_urlencoded", "futures-util", "http", "http-body", "http-body-util", - "hyper", - "hyper-util", "itoa", "matchit", "memchr", @@ -436,15 +433,10 @@ dependencies = [ "percent-encoding", "pin-project-lite", "serde_core", - "serde_json", - "serde_path_to_error", - "serde_urlencoded", "sync_wrapper", - "tokio", "tower", "tower-layer", "tower-service", - "tracing", ] [[package]] @@ -463,7 +455,6 @@ dependencies = [ "sync_wrapper", "tower-layer", "tower-service", - "tracing", ] [[package]] @@ -844,7 +835,7 @@ checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2" dependencies = [ "bitflags 2.13.2", "cairo-sys-rs", - "glib 0.18.5", + "glib", "libc", "once_cell", "thiserror 1.0.69", @@ -856,9 +847,9 @@ version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51" dependencies = [ - "glib-sys 0.18.1", + "glib-sys", "libc", - "system-deps 6.2.2", + "system-deps", ] [[package]] @@ -905,12 +896,13 @@ dependencies = [ [[package]] name = "cargo_toml" -version = "0.22.3" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "374b7c592d9c00c1f4972ea58390ac6b18cbb6ab79011f3bdc90a0b82ca06b77" +checksum = "82f4b26e751e711a5302649417f2da046dce6391b2ea30a4820f37462314f0b9" dependencies = [ + "semver 1.0.28", "serde", - "toml 0.9.12+spec-1.1.0", + "toml 1.1.6+spec-1.1.0", ] [[package]] @@ -957,6 +949,17 @@ dependencies = [ "uuid", ] +[[package]] +name = "cfb" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a347dcabdae9c31b0825fd6a8bed285ec9c2acb89c47827126d52fa4f59cece3" +dependencies = [ + "fnv", + "uuid", + "web-time", +] + [[package]] name = "cfg-expr" version = "0.15.8" @@ -964,17 +967,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" dependencies = [ "smallvec", - "target-lexicon 0.12.16", -] - -[[package]] -name = "cfg-expr" -version = "0.20.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe4ece8474b5f766c63426647e7b4b316b67431ade1036a8313cee24a03ae917" -dependencies = [ - "smallvec", - "target-lexicon 0.13.5", + "target-lexicon", ] [[package]] @@ -1149,8 +1142,8 @@ dependencies = [ "tauri-plugin-process", "tauri-plugin-shell", "tauri-plugin-updater", - "tauri-plugin-wdio-webdriver", "tauri-plugin-window-state", + "tauri-runtime-wry", "tokio", "tokio-rustls", "tokio-stream", @@ -1691,9 +1684,9 @@ dependencies = [ [[package]] name = "cssparser" -version = "0.36.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dae61cf9c0abb83bd659dab65b7e4e38d8236824c85f0f804f173567bda257d2" +checksum = "8c9cdaae01d5ed7882b04d795e7f752f46ff52d2fa3b50a20d28c464510bba98" dependencies = [ "cssparser-macros", "dtoa-short", @@ -1704,29 +1697,19 @@ dependencies = [ [[package]] name = "cssparser-macros" -version = "0.6.1" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" +checksum = "d045de693cb712d0b22c6a64be5b953f67b3ce00ab5ad3dd5d8b441886ab8e1a" dependencies = [ "quote", - "syn 2.0.119", + "syn 3.0.5", ] [[package]] name = "ctor" -version = "0.8.0" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "352d39c2f7bef1d6ad73db6f5160efcaed66d94ef8c6c573a8410c00bf909a98" -dependencies = [ - "ctor-proc-macro", - "dtor", -] - -[[package]] -name = "ctor-proc-macro" -version = "0.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52560adf09603e58c9a7ee1fe1dcb95a16927b17c127f0ac02d6e768a0e25bc1" +checksum = "914a755b7c2d4af2bdcff7ce1739e2db9a1b81a9b07123d8015786ae03c0980d" [[package]] name = "ctr" @@ -2027,7 +2010,7 @@ dependencies = [ "libc", "option-ext", "redox_users 0.5.2", - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] @@ -2096,9 +2079,9 @@ dependencies = [ [[package]] name = "dom_query" -version = "0.27.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "521e380c0c8afb8d9a1e83a1822ee03556fc3e3e7dbc1fd30be14e37f9cb3f89" +checksum = "fac5fca71e65e94cc718a6e2af65d6e0f9c6027751c2aa562fbb5087fda639bc" dependencies = [ "bit-set", "cssparser", @@ -2139,21 +2122,6 @@ dependencies = [ "dtoa", ] -[[package]] -name = "dtor" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1057d6c64987086ff8ed0fd3fbf377a6b7d205cc7715868cd401705f715cbe4" -dependencies = [ - "dtor-proc-macro", -] - -[[package]] -name = "dtor-proc-macro" -version = "0.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f678cf4a922c215c63e0de95eb1ff08a958a81d47e485cf9da1e27bf6305cfa5" - [[package]] name = "dunce" version = "1.0.5" @@ -2301,7 +2269,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -2618,7 +2586,7 @@ dependencies = [ "gdk-pixbuf", "gdk-sys", "gio", - "glib 0.18.5", + "glib", "libc", "pango", ] @@ -2631,7 +2599,7 @@ checksum = "50e1f5f1b0bfb830d6ccc8066d18db35c487b1b2b1e8589b5dfe9f07e8defaec" dependencies = [ "gdk-pixbuf-sys", "gio", - "glib 0.18.5", + "glib", "libc", "once_cell", ] @@ -2642,11 +2610,11 @@ version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7" dependencies = [ - "gio-sys 0.18.1", - "glib-sys 0.18.1", - "gobject-sys 0.18.0", + "gio-sys", + "glib-sys", + "gobject-sys", "libc", - "system-deps 6.2.2", + "system-deps", ] [[package]] @@ -2657,13 +2625,13 @@ checksum = "5c2d13f38594ac1e66619e188c6d5a1adb98d11b2fcf7894fc416ad76aa2f3f7" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", - "gio-sys 0.18.1", - "glib-sys 0.18.1", - "gobject-sys 0.18.0", + "gio-sys", + "glib-sys", + "gobject-sys", "libc", "pango-sys", "pkg-config", - "system-deps 6.2.2", + "system-deps", ] [[package]] @@ -2673,11 +2641,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "140071d506d223f7572b9f09b5e155afbd77428cd5cc7af8f2694c41d98dfe69" dependencies = [ "gdk-sys", - "glib-sys 0.18.1", - "gobject-sys 0.18.0", + "glib-sys", + "gobject-sys", "libc", "pkg-config", - "system-deps 6.2.2", + "system-deps", ] [[package]] @@ -2689,7 +2657,7 @@ dependencies = [ "gdk", "gdkx11-sys", "gio", - "glib 0.18.5", + "glib", "libc", "x11", ] @@ -2701,9 +2669,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e2e7445fe01ac26f11601db260dd8608fe172514eb63b3b5e261ea6b0f4428d" dependencies = [ "gdk-sys", - "glib-sys 0.18.1", + "glib-sys", "libc", - "system-deps 6.2.2", + "system-deps", "x11", ] @@ -2785,8 +2753,8 @@ dependencies = [ "futures-core", "futures-io", "futures-util", - "gio-sys 0.18.1", - "glib 0.18.5", + "gio-sys", + "glib", "libc", "once_cell", "pin-project-lite", @@ -2800,26 +2768,13 @@ version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2" dependencies = [ - "glib-sys 0.18.1", - "gobject-sys 0.18.0", + "glib-sys", + "gobject-sys", "libc", - "system-deps 6.2.2", + "system-deps", "winapi", ] -[[package]] -name = "gio-sys" -version = "0.21.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0071fe88dba8e40086c8ff9bbb62622999f49628344b1d1bf490a48a29d80f22" -dependencies = [ - "glib-sys 0.21.5", - "gobject-sys 0.21.5", - "libc", - "system-deps 7.0.8", - "windows-sys 0.61.2", -] - [[package]] name = "glib" version = "0.18.5" @@ -2832,10 +2787,10 @@ dependencies = [ "futures-executor", "futures-task", "futures-util", - "gio-sys 0.18.1", - "glib-macros 0.18.5", - "glib-sys 0.18.1", - "gobject-sys 0.18.0", + "gio-sys", + "glib-macros", + "glib-sys", + "gobject-sys", "libc", "memchr", "once_cell", @@ -2843,27 +2798,6 @@ dependencies = [ "thiserror 1.0.69", ] -[[package]] -name = "glib" -version = "0.21.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16de123c2e6c90ce3b573b7330de19be649080ec612033d397d72da265f1bd8b" -dependencies = [ - "bitflags 2.13.2", - "futures-channel", - "futures-core", - "futures-executor", - "futures-task", - "futures-util", - "gio-sys 0.21.5", - "glib-macros 0.21.5", - "glib-sys 0.21.5", - "gobject-sys 0.21.5", - "libc", - "memchr", - "smallvec", -] - [[package]] name = "glib-macros" version = "0.18.5" @@ -2878,19 +2812,6 @@ dependencies = [ "syn 2.0.119", ] -[[package]] -name = "glib-macros" -version = "0.21.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf59b675301228a696fe01c3073974643365080a76cc3ed5bc2cbc466ad87f17" -dependencies = [ - "heck 0.5.0", - "proc-macro-crate 3.5.0", - "proc-macro2", - "quote", - "syn 2.0.119", -] - [[package]] name = "glib-sys" version = "0.18.1" @@ -2898,17 +2819,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898" dependencies = [ "libc", - "system-deps 6.2.2", -] - -[[package]] -name = "glib-sys" -version = "0.21.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d95e1a3a19ae464a7286e14af9a90683c64d70c02532d88d87ce95056af3e6c" -dependencies = [ - "libc", - "system-deps 7.0.8", + "system-deps", ] [[package]] @@ -2924,7 +2835,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c386b0a4a70cb2d39fffd74480f985b6f0bfbcb934b6a6b6b7e630e448f242e" dependencies = [ "crossbeam-channel", - "keyboard-types", + "keyboard-types 0.7.0", "objc2", "objc2-app-kit", "once_cell", @@ -2977,20 +2888,9 @@ version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44" dependencies = [ - "glib-sys 0.18.1", + "glib-sys", "libc", - "system-deps 6.2.2", -] - -[[package]] -name = "gobject-sys" -version = "0.21.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dca35da0d19a18f4575f3cb99fe1c9e029a2941af5662f326f738a21edaf294" -dependencies = [ - "glib-sys 0.21.5", - "libc", - "system-deps 7.0.8", + "system-deps", ] [[package]] @@ -3016,7 +2916,7 @@ dependencies = [ "gdk", "gdk-pixbuf", "gio", - "glib 0.18.5", + "glib", "gtk-sys", "gtk3-macros", "libc", @@ -3034,12 +2934,12 @@ dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", "gdk-sys", - "gio-sys 0.18.1", - "glib-sys 0.18.1", - "gobject-sys 0.18.0", + "gio-sys", + "glib-sys", + "gobject-sys", "libc", "pango-sys", - "system-deps 6.2.2", + "system-deps", ] [[package]] @@ -3209,9 +3109,9 @@ dependencies = [ [[package]] name = "html5ever" -version = "0.38.0" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1054432bae2f14e0061e33d23402fbaa67a921d319d56adc6bcf887ddad1cbc2" +checksum = "46a1761807faccc9a19e86944bbf40610014066306f96edcdedc2fb714bcb7b8" dependencies = [ "log", "markup5ever", @@ -3609,7 +3509,16 @@ version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a588916bfdfd92e71cacef98a63d9b1f0d74d6599980d11894290e7ddefffcf7" dependencies = [ - "cfb", + "cfb 0.7.3", +] + +[[package]] +name = "infer" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4200d433cbd5178df7797c9c2e75b348b728e39631cf14520d1e2fc424201f4" +dependencies = [ + "cfb 0.14.0", ] [[package]] @@ -3720,7 +3629,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca5671e9ffce8ffba57afc24070e906da7fc4b1ba66f2cabebf61bf2ea257fcc" dependencies = [ "bitflags 1.3.2", - "glib 0.18.5", + "glib", "javascriptcore-rs-sys", ] @@ -3730,10 +3639,10 @@ version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af1be78d14ffa4b75b66df31840478fef72b51f8c2465d4ca7c194da9f7a5124" dependencies = [ - "glib-sys 0.18.1", - "gobject-sys 0.18.0", + "glib-sys", + "gobject-sys", "libc", - "system-deps 6.2.2", + "system-deps", ] [[package]] @@ -3833,21 +3742,21 @@ dependencies = [ [[package]] name = "json-patch" -version = "3.0.1" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "863726d7afb6bc2590eeff7135d923545e5e964f004c2ccf8716c25e70a86f08" +checksum = "7421438de105a0827e44fadd05377727847d717c80ce29a229f85fd04c427b72" dependencies = [ "jsonptr", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 2.0.20", ] [[package]] name = "jsonptr" -version = "0.6.3" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dea2b27dd239b2556ed7a25ba842fe47fd602e7fc7433c2a8d6106d4d9edd70" +checksum = "a5a3cc660ba5d72bce0b3bb295bf20847ccbb40fd423f3f05b61273672e561fe" dependencies = [ "serde", "serde_json", @@ -3864,6 +3773,16 @@ dependencies = [ "unicode-segmentation", ] +[[package]] +name = "keyboard-types" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fbe853b403ae61a04233030ae8a79d94975281ed9770a1f9e246732b534b28d" +dependencies = [ + "bitflags 2.13.2", + "serde", +] + [[package]] name = "kode-bridge" version = "0.5.2" @@ -3891,6 +3810,24 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "ksni" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "814b44c24cd2cb236c3b8a41c7f08237b452a8e76ecaa81f1cec40b5b678215b" +dependencies = [ + "async-executor", + "async-io", + "async-lock", + "futures-channel", + "futures-lite", + "futures-util", + "pastey", + "serde", + "task-local", + "zbus", +] + [[package]] name = "lazy-regex" version = "3.6.1" @@ -3920,30 +3857,6 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" -[[package]] -name = "libappindicator" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03589b9607c868cc7ae54c0b2a22c8dc03dd41692d48f2d7df73615c6a95dc0a" -dependencies = [ - "glib 0.18.5", - "gtk", - "gtk-sys", - "libappindicator-sys", - "log", -] - -[[package]] -name = "libappindicator-sys" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e9ec52138abedcc58dc17a7c6c0c00a2bdb4f3427c7f63fa97fd0d859155caf" -dependencies = [ - "gtk-sys", - "libloading", - "once_cell", -] - [[package]] name = "libbz2-rs-sys" version = "0.2.5" @@ -3965,16 +3878,6 @@ dependencies = [ "pkg-config", ] -[[package]] -name = "libloading" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" -dependencies = [ - "cfg-if", - "winapi", -] - [[package]] name = "libm" version = "0.2.16" @@ -4097,9 +4000,9 @@ dependencies = [ [[package]] name = "markup5ever" -version = "0.38.0" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8983d30f2915feeaaab2d6babdd6bc7e9ed1a00b66b5e6d74df19aa9c0e91862" +checksum = "7122d987ec5f704ee56f6e5b41a7d93722e9aae27ae07cafa4036c4d3f9757de" dependencies = [ "log", "tendril", @@ -4217,14 +4120,14 @@ dependencies = [ [[package]] name = "muda" -version = "0.19.3" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dd04e60bc0b07438a6771710ee1698f98f6ebbc7f89b61264af1563b8aeb878" +checksum = "cca139e57da4383727f189e43e66e84fa372347027fc996f9f1a007ec0a37996" dependencies = [ "crossbeam-channel", "dpi", "gtk", - "keyboard-types", + "keyboard-types 0.8.3", "objc2", "objc2-app-kit", "objc2-core-foundation", @@ -4260,6 +4163,12 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "ndk-context" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" + [[package]] name = "ndk-sys" version = "0.6.0+11769913" @@ -4382,7 +4291,7 @@ version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] @@ -4831,7 +4740,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d8fae84b431384b68627d0f9b3b1245fcf9f46f6c0e3dc902e9dce64edd1967" dependencies = [ "libc", - "windows-sys 0.61.2", + "windows-sys 0.45.0", ] [[package]] @@ -4865,7 +4774,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4" dependencies = [ "gio", - "glib 0.18.5", + "glib", "libc", "once_cell", "pango-sys", @@ -4877,10 +4786,10 @@ version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5" dependencies = [ - "glib-sys 0.18.1", - "gobject-sys 0.18.0", + "glib-sys", + "gobject-sys", "libc", - "system-deps 6.2.2", + "system-deps", ] [[package]] @@ -5496,7 +5405,7 @@ dependencies = [ "once_cell", "socket2", "tracing", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -5843,8 +5752,8 @@ checksum = "a15ad77d9e70a92437d8f74c35d99b4e4691128df018833e99f90bcd36152672" dependencies = [ "block2", "dispatch2", - "glib-sys 0.18.1", - "gobject-sys 0.18.0", + "glib-sys", + "gobject-sys", "gtk-sys", "js-sys", "log", @@ -6011,7 +5920,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys 0.12.1", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -6070,7 +5979,7 @@ dependencies = [ "security-framework", "security-framework-sys", "webpki-root-certs", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -6127,21 +6036,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "schemars" -version = "0.8.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" -dependencies = [ - "dyn-clone", - "indexmap 1.9.3", - "schemars_derive", - "serde", - "serde_json", - "url", - "uuid", -] - [[package]] name = "schemars" version = "0.9.0" @@ -6162,20 +6056,23 @@ checksum = "687274d293b6cdc6e73e0fee520bf2049650090d7164f87672d212a3c530cf4a" dependencies = [ "dyn-clone", "ref-cast", + "schemars_derive", "serde", "serde_json", + "url", + "uuid", ] [[package]] name = "schemars_derive" -version = "0.8.22" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d" +checksum = "d98c67716b46af2f0b8cf752abc930f6f9aecfbf671ecfb531db8a31dbe4e2ba" dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.119", + "syn 3.0.5", ] [[package]] @@ -6215,9 +6112,9 @@ dependencies = [ [[package]] name = "selectors" -version = "0.36.1" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5d9c0c92a92d33f08817311cf3f2c29a3538a8240e94a6a3c622ce652d7e00c" +checksum = "8adfa1c298912827b8a28b223b3b874357397ae706e6190acd9bf28cee99114d" dependencies = [ "bitflags 2.13.2", "cssparser", @@ -6348,13 +6245,13 @@ dependencies = [ [[package]] name = "serde_derive_internals" -version = "0.29.1" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +checksum = "f852137cce035d6a4df67ccce505ff6b3e9fd3a10e3e52b24dc71e650bb1a9bd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.119", + "syn 3.0.5", ] [[package]] @@ -6363,6 +6260,7 @@ version = "1.0.151" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14" dependencies = [ + "indexmap 2.14.0", "itoa", "memchr", "serde", @@ -6370,17 +6268,6 @@ dependencies = [ "zmij", ] -[[package]] -name = "serde_path_to_error" -version = "0.1.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10a9ff822e371bb5403e391ecd83e182e0e77ba7f6fe0160b795797109d1b457" -dependencies = [ - "itoa", - "serde", - "serde_core", -] - [[package]] name = "serde_repr" version = "0.1.21" @@ -6733,7 +6620,7 @@ checksum = "471f924a40f31251afc77450e781cb26d55c0b650842efafc9c6cbd2f7cc4f9f" dependencies = [ "futures-channel", "gio", - "glib 0.18.5", + "glib", "libc", "soup3-sys", ] @@ -6744,11 +6631,11 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ebe8950a680a12f24f15ebe1bf70db7af98ad242d9db43596ad3108aab86c27" dependencies = [ - "gio-sys 0.18.1", - "glib-sys 0.18.1", - "gobject-sys 0.18.0", + "gio-sys", + "glib-sys", + "gobject-sys", "libc", - "system-deps 6.2.2", + "system-deps", ] [[package]] @@ -6822,9 +6709,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "swift-rs" -version = "1.0.7" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4057c98e2e852d51fdcfca832aac7b571f6b351ad159f9eda5db1655f8d0c4d7" +checksum = "e45c444e496845d3f2a351146bff59aae4975b2280238df1dfaa0c7d1846f38e" dependencies = [ "base64 0.21.7", "serde", @@ -6963,26 +6850,13 @@ version = "6.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" dependencies = [ - "cfg-expr 0.15.8", + "cfg-expr", "heck 0.5.0", "pkg-config", "toml 0.8.23", "version-compare", ] -[[package]] -name = "system-deps" -version = "7.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "396a35feb67335377e0251fcbc1092fc85c484bd4e3a7a54319399da127796e7" -dependencies = [ - "cfg-expr 0.20.9", - "heck 0.5.0", - "pkg-config", - "toml 1.1.6+spec-1.1.0", - "version-compare", -] - [[package]] name = "tag_ptr" version = "0.1.0" @@ -6991,9 +6865,9 @@ checksum = "c0e973b34477b7823833469eb0f5a3a60370fef7a453e02d751b59180d0a5a05" [[package]] name = "tao" -version = "0.35.3" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1c93047acf68669466a34690ac58cca7010bd1b201e1ec86f1fd0a75d3dd4a9" +checksum = "5d12c8607b01516c5d4a37e471a9cfb40b4a25cebce8fecbc6a559e125e51b6b" dependencies = [ "bitflags 2.13.2", "block2", @@ -7011,6 +6885,7 @@ dependencies = [ "libc", "log", "ndk", + "ndk-context", "ndk-sys", "objc2", "objc2-app-kit", @@ -7023,8 +6898,8 @@ dependencies = [ "tao-macros", "unicode-segmentation", "url", - "windows 0.61.3", - "windows-core 0.61.2", + "windows 0.62.2", + "windows-core 0.62.2", "windows-version", "x11-dl", ] @@ -7064,16 +6939,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] -name = "target-lexicon" -version = "0.13.5" +name = "task-local" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca" +checksum = "2972044a9e5e448a506a7ff6f0d03b566d8ef4cd6918a58fc59835a0f8666626" +dependencies = [ + "pin-project-lite", +] [[package]] name = "tauri" -version = "2.11.5" +version = "3.0.0-alpha.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "667b20e2726d572dea2de7370da16e188eb06008faf9a92fab7cdc46791190b5" +checksum = "e12244081cfc58528f6dc5ff00429b78b6eca01040d1da3d9b18b66dbdf156ab" dependencies = [ "anyhow", "bytes", @@ -7110,24 +6988,21 @@ dependencies = [ "tauri-build", "tauri-macros", "tauri-runtime", - "tauri-runtime-wry", "tauri-utils", "thiserror 2.0.20", "tokio", "tracing", "tray-icon", "url", - "webkit2gtk", - "webview2-com", "window-vibrancy", "windows 0.61.3", ] [[package]] name = "tauri-build" -version = "2.6.3" +version = "3.0.0-alpha.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc9ce40b16101cb6ea63d3e221567affd1c3a9205f95d7bc574941a10636b632" +checksum = "fbbce777cfa16e9d816d6a3741bbf9c83bcdb2515f1c297f57fb0670ce3a7e20" dependencies = [ "anyhow", "cargo_toml", @@ -7135,7 +7010,7 @@ dependencies = [ "glob", "heck 0.5.0", "json-patch", - "schemars 0.8.22", + "schemars 1.2.2", "semver 1.0.28", "serde", "serde_json", @@ -7146,16 +7021,16 @@ dependencies = [ [[package]] name = "tauri-codegen" -version = "2.6.3" +version = "3.0.0-alpha.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08279169ff42f8fc45a1dbc9dcae888893ba95288142e5880c59b93a26d2cfc5" +checksum = "442b78399323e13cae19e63fa9e44445afb5d975710dbc1896c9e3477d1e522a" dependencies = [ "base64 0.22.1", "brotli", "ico", "json-patch", "plist", - "png 0.17.16", + "png 0.18.1", "proc-macro2", "quote", "semver 1.0.28", @@ -7173,9 +7048,9 @@ dependencies = [ [[package]] name = "tauri-macros" -version = "2.6.3" +version = "3.0.0-alpha.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8b394794f399a421811d06966343e7933fcae92d59f5180b9388d1174497a45" +checksum = "863b1f560a68c1aaf6b10119583513ca8b0521124d4d2ab3af1875aa6633e191" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -7187,14 +7062,14 @@ dependencies = [ [[package]] name = "tauri-plugin" -version = "2.6.3" +version = "3.0.0-alpha.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74be5dd4bed9afbd145e5716b5fa2ec28cbc29c34ffa61c258c9273d896c8020" +checksum = "538284864baf8b382e84aa2f520c30bf8961656de31713a91cbfe3f361364c01" dependencies = [ "anyhow", "glob", "plist", - "schemars 0.8.22", + "schemars 1.2.2", "serde", "serde_json", "tauri-utils", @@ -7203,9 +7078,9 @@ dependencies = [ [[package]] name = "tauri-plugin-autostart" -version = "2.5.1" +version = "3.0.0-alpha.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "459383cebc193cdd03d1ba4acc40f2c408a7abce419d64bdcd2d745bc2886f70" +checksum = "563372080aa6660466c2861181d1be5a401e1c83f81e5d9f072a6ae2be8e9444" dependencies = [ "auto-launch", "serde", @@ -7230,9 +7105,9 @@ dependencies = [ [[package]] name = "tauri-plugin-clipboard-manager" -version = "2.3.3" +version = "3.0.0-alpha.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4136fb69d967753d000423d7e5f863f89bf949efbdfbecb43a580426a01a0194" +checksum = "d6590fee4fd39344a44d87df3926e1ad77ba0a90300ca97bfb90586b78f3fa17" dependencies = [ "arboard", "log", @@ -7245,9 +7120,9 @@ dependencies = [ [[package]] name = "tauri-plugin-deep-link" -version = "2.4.10" +version = "3.0.0-alpha.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92d489b8ecceae1cd09f6e1f7606f2095ac721cc8d54cf2f0e6bb377cc52cff6" +checksum = "a765a6bf11890ddfeba2fb766a11aba4003f3aeeb2ff75d91062a5338ad4a40f" dependencies = [ "dunce", "plist", @@ -7266,9 +7141,9 @@ dependencies = [ [[package]] name = "tauri-plugin-devtools" -version = "2.2.1" +version = "3.0.0-alpha.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ce9c0bcf4d9d8b2f77389563d95d577690d1453db00c7b67900110c927adef" +checksum = "f321e952160915a39f1502290dfa8083b0c1b4144c4b108c7c1202b39f04f1ab" dependencies = [ "async-stream", "bytes", @@ -7293,9 +7168,9 @@ dependencies = [ [[package]] name = "tauri-plugin-dialog" -version = "2.7.3" +version = "3.0.0-alpha.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61854a36651aa48381e5e209f69a01273b77f3f9f91f0c430b1b98d33bd47229" +checksum = "91d3c1ed2d4b608ed4b12bd9a02e252bccf3560ddb38919acf95b0d683e7f0dc" dependencies = [ "log", "raw-window-handle", @@ -7311,9 +7186,9 @@ dependencies = [ [[package]] name = "tauri-plugin-fs" -version = "2.5.2" +version = "3.0.0-alpha.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de22eef34fd78c0da050e748710edd50bf127e651d02ea1b2bfada1523cc5c51" +checksum = "d9950505d992c198f4830e83e8bfbc21d8e60cafeed7adf77a7793932aa53eae" dependencies = [ "anyhow", "dunce", @@ -7321,23 +7196,21 @@ dependencies = [ "log", "objc2-foundation", "percent-encoding", - "schemars 0.8.22", + "schemars 1.2.2", "serde", "serde_json", "serde_repr", "tauri", "tauri-plugin", - "tauri-utils", "thiserror 2.0.20", - "toml 1.1.6+spec-1.1.0", "url", ] [[package]] name = "tauri-plugin-global-shortcut" -version = "2.3.2" +version = "3.0.0-alpha.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4dd9f4c5136c09cd962da0c86dc4accd4666db2ea591cf16e6597435843bd2b" +checksum = "3682e870693e340692fdf0098b9040af2e78ff0afc5ceff5b25986324192eb3e" dependencies = [ "global-hotkey", "log", @@ -7350,9 +7223,9 @@ dependencies = [ [[package]] name = "tauri-plugin-http" -version = "2.6.0" +version = "3.0.0-alpha.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7241a0c762649be8fba7dd4cc84684d0e409f26b335a978ef4dd5fe78da74ce6" +checksum = "03479ca2584d19d35fac4869287d437a13247bfb9479e4752d034f6c9ef43c20" dependencies = [ "bytes", "cookie_store", @@ -7360,7 +7233,7 @@ dependencies = [ "http", "regex", "reqwest 0.12.28", - "schemars 0.8.22", + "schemars 1.2.2", "serde", "serde_json", "tauri", @@ -7369,13 +7242,13 @@ dependencies = [ "thiserror 2.0.20", "tokio", "url", - "urlpattern", + "urlpattern 0.3.0", ] [[package]] name = "tauri-plugin-mihomo" version = "0.6.0" -source = "git+https://github.com/clash-verge-rev/tauri-plugin-mihomo?branch=main#17c7757389ca73d29882753ecf7a160de29aabbe" +source = "git+https://github.com/clash-verge-rev/tauri-plugin-mihomo?branch=feat%2Ftauri-v3#7cc6036d922d879c5e4fa1eb3e268eef761c6846" dependencies = [ "arc-swap", "clashmap", @@ -7399,9 +7272,9 @@ dependencies = [ [[package]] name = "tauri-plugin-notification" -version = "2.4.0" +version = "3.0.0-alpha.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad2fd40946aef810c4be9fd33a2d1b9b397cb79042b2d21c81a0a8f204354fd1" +checksum = "64c1b258c38f5ffaa931b17c9ebd3baa17b8512cda72b29f7da6fb9b54475c11" dependencies = [ "log", "notify-rust", @@ -7418,16 +7291,16 @@ dependencies = [ [[package]] name = "tauri-plugin-opener" -version = "2.5.5" +version = "3.0.0-alpha.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60d60366174b745b4ef5824b8bbc1c457fd08f0ce101ff643c0a49181a9f4e91" +checksum = "d7fdd902312a167a55224314aefaabaaffa92e69f5e0a0aa3d97510b86be5e04" dependencies = [ "dunce", "glob", "objc2-app-kit", "objc2-foundation", "open", - "schemars 0.8.22", + "schemars 1.2.2", "serde", "serde_json", "tauri", @@ -7440,9 +7313,9 @@ dependencies = [ [[package]] name = "tauri-plugin-process" -version = "2.3.1" +version = "3.0.0-alpha.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d55511a7bf6cd70c8767b02c97bf8134fa434daf3926cfc1be0a0f94132d165a" +checksum = "3b4034351377fbe8da927e3e3df9e3b6821699619922ae925e64eeaa94bc79ce" dependencies = [ "tauri", "tauri-plugin", @@ -7450,16 +7323,16 @@ dependencies = [ [[package]] name = "tauri-plugin-shell" -version = "2.3.6" +version = "3.0.0-alpha.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8548af174c5516e4f71f142acea4d02e00316296ea9aafa58798851481003e3c" +checksum = "bd3640ef92fd1cd509aa70f9d261fb75ba78f1bd9eb440439ebb5dfe27227a97" dependencies = [ "encoding_rs", "log", "open", "os_pipe", "regex", - "schemars 0.8.22", + "schemars 1.2.2", "serde", "serde_json", "shared_child", @@ -7471,16 +7344,16 @@ dependencies = [ [[package]] name = "tauri-plugin-updater" -version = "2.11.0" +version = "3.0.0-alpha.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b28d8cabdeb0564f03ae261963de4bc3d98321cd3d213e76a81b7d344e5df606" +checksum = "e3ef64562decb39cc7956aa8a6c82f706d89084c77a82c45488d628c44a80d46" dependencies = [ "base64 0.22.1", "dirs 6.0.0", "flate2", "futures-util", "http", - "infer", + "infer 0.19.0", "log", "minisign-verify", "osakit", @@ -7502,44 +7375,11 @@ dependencies = [ "zip 4.6.1", ] -[[package]] -name = "tauri-plugin-wdio-webdriver" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52c5e97428174a52b7f4357bbc4535fcce52c6a06c8ee7a379502f7cda1b6045" -dependencies = [ - "async-trait", - "axum", - "base64 0.22.1", - "block2", - "cairo-rs", - "glib 0.21.5", - "gtk", - "javascriptcore-rs", - "objc2", - "objc2-app-kit", - "objc2-foundation", - "objc2-web-kit", - "serde", - "serde_json", - "tauri", - "tauri-plugin", - "tempfile", - "thiserror 2.0.20", - "tokio", - "tracing", - "uuid", - "webkit2gtk", - "webview2-com", - "windows 0.61.3", - "windows-core 0.61.2", -] - [[package]] name = "tauri-plugin-window-state" -version = "2.4.1" +version = "3.0.0-alpha.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73736611e14142408d15353e21e3cca2f12a3cfb523ad0ce85999b6d2ef1a704" +checksum = "d8101a63efdeef296d880499afd395fffead1cb7449b6013218bb684a92d7427" dependencies = [ "bitflags 2.13.2", "log", @@ -7552,34 +7392,30 @@ dependencies = [ [[package]] name = "tauri-runtime" -version = "2.11.3" +version = "3.0.0-alpha.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0b4bc95aed361b0019067d189a1174a603d460d0f6c72606512d59fc9c12ec8" +checksum = "e2af0a71c248754ca2c0524678ef3c39928a044fa8df21d4a9466cc22281fb2f" dependencies = [ "cookie", "dpi", - "gtk", "http", "jni 0.21.1", "objc2", "objc2-ui-kit", - "objc2-web-kit", "raw-window-handle", "serde", "serde_json", "tauri-utils", "thiserror 2.0.20", "url", - "webkit2gtk", - "webview2-com", "windows 0.61.3", ] [[package]] name = "tauri-runtime-wry" -version = "2.11.4" +version = "3.0.0-alpha.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e6fac707727b7a2f48e4ded90976324267371073edbb415ffb73bb0458d203f" +checksum = "026f429c753f99291bd4436acd9fdcd49d2892bc38fa131c606ccc9ad875dec1" dependencies = [ "gtk", "http", @@ -7587,14 +7423,15 @@ dependencies = [ "log", "objc2", "objc2-app-kit", + "objc2-web-kit", "once_cell", "percent-encoding", "raw-window-handle", "softbuffer", "tao", + "tauri", "tauri-runtime", "tauri-utils", - "tracing", "url", "webkit2gtk", "webview2-com", @@ -7604,9 +7441,9 @@ dependencies = [ [[package]] name = "tauri-utils" -version = "2.9.3" +version = "3.0.0-alpha.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e176a18e67764923c4f1ce66f25ae4abe5f688384d5eb1a0fa6c77f3d90f887" +checksum = "6e9804c2f78bc636fdcc428e082818d66868c12056c07019b77fddc64d91b29a" dependencies = [ "anyhow", "brotli", @@ -7616,7 +7453,7 @@ dependencies = [ "dunce", "glob", "http", - "infer", + "infer 0.22.0", "json-patch", "log", "memchr", @@ -7625,7 +7462,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "schemars 0.8.22", + "schemars 1.2.2", "semver 1.0.28", "serde", "serde-untagged", @@ -7635,7 +7472,7 @@ dependencies = [ "thiserror 2.0.20", "toml 1.1.6+spec-1.1.0", "url", - "urlpattern", + "urlpattern 0.6.0", "uuid", "walkdir", ] @@ -7669,10 +7506,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" dependencies = [ "fastrand", - "getrandom 0.4.3", + "getrandom 0.3.4", "once_cell", "rustix 1.1.4", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -8012,21 +7849,6 @@ dependencies = [ "toml_edit 0.22.27", ] -[[package]] -name = "toml" -version = "0.9.12+spec-1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf92845e79fc2e2def6a5d828f0801e29a2f8acc037becc5ab08595c7d5e9863" -dependencies = [ - "indexmap 2.14.0", - "serde_core", - "serde_spanned 1.1.1", - "toml_datetime 0.7.5+spec-1.1.0", - "toml_parser", - "toml_writer", - "winnow 0.7.15", -] - [[package]] name = "toml" version = "1.1.6+spec-1.1.0" @@ -8051,15 +7873,6 @@ dependencies = [ "serde", ] -[[package]] -name = "toml_datetime" -version = "0.7.5+spec-1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" -dependencies = [ - "serde_core", -] - [[package]] name = "toml_datetime" version = "1.1.1+spec-1.1.0" @@ -8345,12 +8158,12 @@ dependencies = [ [[package]] name = "tray-icon" -version = "0.24.1" -source = "git+https://github.com/Tunglies/tray-icon.git?branch=fix%2Fmacos-27-click-reentrancy#5750c67d02d32f2af100e120ad665959d4268cef" +version = "0.25.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2b9c52859a94554803ccd4a24b98f74148ebc73b90676d783f3490b1bff9d72" dependencies = [ "crossbeam-channel", - "dirs 6.0.0", - "libappindicator", + "ksni", "muda", "objc2", "objc2-app-kit", @@ -8579,6 +8392,18 @@ dependencies = [ "url", ] +[[package]] +name = "urlpattern" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df16f50ef4cc145211879a3867ba757076b25dfee812040dcb0658bd9ae7904b" +dependencies = [ + "icu_properties", + "regex", + "serde", + "url", +] + [[package]] name = "utf-8" version = "0.7.6" @@ -8907,10 +8732,10 @@ dependencies = [ "gdk", "gdk-sys", "gio", - "gio-sys 0.18.1", - "glib 0.18.5", - "glib-sys 0.18.1", - "gobject-sys 0.18.0", + "gio-sys", + "glib", + "glib-sys", + "gobject-sys", "gtk", "gtk-sys", "javascriptcore-rs", @@ -8929,15 +8754,15 @@ dependencies = [ "bitflags 1.3.2", "cairo-sys-rs", "gdk-sys", - "gio-sys 0.18.1", - "glib-sys 0.18.1", - "gobject-sys 0.18.0", + "gio-sys", + "glib-sys", + "gobject-sys", "gtk-sys", "javascriptcore-rs-sys", "libc", "pkg-config", "soup3-sys", - "system-deps 6.2.2", + "system-deps", ] [[package]] @@ -9049,7 +8874,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.48.0", ] [[package]] @@ -9653,7 +9478,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d6f32a0ff4a9f6f01231eb2059cc85479330739333e0e58cadf03b6af2cca10" dependencies = [ "cfg-if", - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] @@ -9694,9 +9519,9 @@ checksum = "3ad82d2a33cdc9674dc7465672f271e096168fcdbe0f799d9e6db8c5892679dc" [[package]] name = "wry" -version = "0.55.1" +version = "0.56.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "186f9871daa55fd9c016578b810d149de58367113db7fb72b462d2323ce19514" +checksum = "375becb4aded9913f736443cf88000c6311478db69814cc06070465e4cc44c98" dependencies = [ "base64 0.22.1", "block2", @@ -9726,7 +9551,6 @@ dependencies = [ "soup3", "tao-macros", "thiserror 2.0.20", - "tracing", "url", "webkit2gtk", "webkit2gtk-sys", diff --git a/Cargo.toml b/Cargo.toml index df17bbeae..e17e15f06 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -46,12 +46,6 @@ inherits = "fast-release" codegen-units = 1 split-debuginfo = "unpacked" -[patch.crates-io] -# macOS Golden Gate fix for tray-icon click reentrancy issue -# Remove the following patch once the fix is merged upstream(tauri) -# https://github.com/tauri-apps/tray-icon/pull/365 -tray-icon = { git = "https://github.com/Tunglies/tray-icon.git", branch = "fix/macos-27-click-reentrancy" } - [workspace.dependencies] clash-verge-draft = { path = "crates/clash-verge-draft" } clash-verge-media-unlock = { path = "crates/clash-verge-media-unlock" } @@ -63,8 +57,9 @@ tracing-estuary = { git = "https://github.com/Tunglies/tracing-estuary.git", bra tauri-plugin-clash-verge-sysinfo = { path = "crates/tauri-plugin-clash-verge-sysinfo" } tracing = "0.1.44" -tauri = { version = "2.11.5" } -tauri-plugin-clipboard-manager = "2.3.3" +tauri = { version = "3.0.0-alpha.1" } +tauri-runtime-wry = "3.0.0-alpha.1" +tauri-plugin-clipboard-manager = "3.0.0-alpha.0" parking_lot = { version = "0.12.5", features = ["hardware-lock-elision"] } anyhow = "1.0.104" chrono = "0.4.45" diff --git a/package.json b/package.json index cfe838193..6c4871d41 100644 --- a/package.json +++ b/package.json @@ -52,13 +52,13 @@ "@mui/icons-material": "^9.0.1", "@mui/material": "^9.0.1", "@tanstack/react-virtual": "^3.13.25", - "@tauri-apps/api": "2.11.1", - "@tauri-apps/plugin-clipboard-manager": "^2.3.2", - "@tauri-apps/plugin-dialog": "^2.7.1", - "@tauri-apps/plugin-fs": "^2.5.1", - "@tauri-apps/plugin-http": "~2.6.0", - "@tauri-apps/plugin-opener": "2.5.5", - "@tauri-apps/plugin-updater": "2.11.0", + "@tauri-apps/api": "3.0.0-alpha.0", + "@tauri-apps/plugin-clipboard-manager": "^3.0.0-alpha.0", + "@tauri-apps/plugin-dialog": "^3.0.0-alpha.0", + "@tauri-apps/plugin-fs": "^3.0.0-alpha.0", + "@tauri-apps/plugin-http": "~3.0.0-alpha.0", + "@tauri-apps/plugin-opener": "3.0.0-alpha.0", + "@tauri-apps/plugin-updater": "3.0.0-alpha.0", "ahooks": "^3.9.7", "cidr-block": "^2.3.0", "compare-versions": "^6.1.1", @@ -93,7 +93,7 @@ "@biomejs/biome": "^2.4.15", "@eslint-react/eslint-plugin": "^5.8.5", "@eslint/js": "^10.0.1", - "@tauri-apps/cli": "2.11.4", + "@tauri-apps/cli": "3.0.0-alpha.1", "@types/lodash-es": "^4.17.12", "@types/node": "^24.12.4", "@types/react": "19.3.0", @@ -144,5 +144,5 @@ ] }, "type": "module", - "packageManager": "pnpm@12.4.1" + "packageManager": "pnpm@12.4.2" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b819431fc..fb0dec6eb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,153 +7,153 @@ importers: configDependencies: {} packageManagerDependencies: pnpm: - specifier: 12.4.1 - version: 12.4.1 + specifier: 12.4.2 + version: 12.4.2 packages: - '@pnpm/exe.android-arm64@12.4.1': - resolution: {integrity: sha512-/HwsqXMSmlOfgtV9+O0ratzjV6Vd/8n1hh4rGHpCGmDURvt52MwZxdbhyxP4K03ZfvgSDvotFPr8O+RzE5Eu8A==} + '@pnpm/exe.android-arm64@12.4.2': + resolution: {integrity: sha512-E255MbcQ0V1577M2BV0ajWuP7KmTPYA0jqZnk3rK6Lq3kTvZWulMMb7iqRmnLsQbyWTkMEB2CfyM70loVDA8xg==} cpu: [arm64] os: [android] - '@pnpm/exe.android-x64@12.4.1': - resolution: {integrity: sha512-+l74Qb4c2YjOzNKHXJLg+1wr8xHM1ckkUhnU5KRUK9TJqiiczt6yeTZqqzHIlJ8i6pAoj5V0OJevDRwnQKLgrQ==} + '@pnpm/exe.android-x64@12.4.2': + resolution: {integrity: sha512-J1pSeCUwuKxMG70ZzpWn8JzElxiEa8NN/3N0SlZRtU2xbztChaJCKF3HaBNIj9yPfeofWzJo/lwNvDDjraQuZw==} cpu: [x64] os: [android] - '@pnpm/exe.darwin-arm64@12.4.1': - resolution: {integrity: sha512-6rkZkT3iGfaxknUdGHraqSWFvTa6N0ajAHluv9Ax0GRWs0sIcGNiFhDopv6xSZCsJZmG483aNS/b6UEDy3blfw==} + '@pnpm/exe.darwin-arm64@12.4.2': + resolution: {integrity: sha512-A0WDo8iErfZBXgrLseQxw8i8Y9ctUpOEl/Uu+cubnTzpD8tT9ykIB548L8YTM2WD4OS+ZOHSxy8aGZcvKq8PaQ==} cpu: [arm64] os: [darwin] - '@pnpm/exe.darwin-x64@12.4.1': - resolution: {integrity: sha512-Vb1CHlR88HghC1qUxjxjs82zQSXnXacPD+btG2CmG8Q/hBU7Q0/b2YWJKSQqZXicunV5khFtfTlAwJddV9RkYA==} + '@pnpm/exe.darwin-x64@12.4.2': + resolution: {integrity: sha512-MSgJdovBWHcb5DEOvfPH9yNi/T5O1Xa4ess+E1ESGo/5yuty7S4JoiIjami+fsNXfnoQMlwsMUqYU4zAvBcNCw==} cpu: [x64] os: [darwin] - '@pnpm/exe.freebsd-x64@12.4.1': - resolution: {integrity: sha512-iT3iHz3Nl0Sxxj7UPOtZ/aQ81AFsQhjoeWMAlPkSRO04gsgDGAXv3UYxOFaesMWsfNxaGn0A+CITbuCHFF66FA==} + '@pnpm/exe.freebsd-x64@12.4.2': + resolution: {integrity: sha512-h2YumlQSNvgbRPv+RXwABohX65f9bOBZn+jMIt7bFDISZPCzQ+Nvpt6Awbp4ip5PwQgYxbu5iREJ1fHE39Fm8A==} cpu: [x64] os: [freebsd] - '@pnpm/exe.linux-arm64-musl@12.4.1': - resolution: {integrity: sha512-aBooZfNXM5f+OGUgCAMFWpE/kAhsWfvmqIyMtHy6zl3aNxyInWrcY/Saln/UElzo7lZWMC0Yktroxd/2J26lNQ==} + '@pnpm/exe.linux-arm64-musl@12.4.2': + resolution: {integrity: sha512-LwSEtSEDTv6S51YLs3YvSkPyun/QmfMic1UGICUkPWFu6ByP43RdMlkKvmVkfGhAYCpnxO057vrmyJqtfZrPCA==} cpu: [arm64] os: [linux] libc: [musl] - '@pnpm/exe.linux-arm64@12.4.1': - resolution: {integrity: sha512-TlOdacTTP09BgcMvwWBFRsu8VAjfwqwnslBj+XSq1JFM3ck4f3k+1O/747EuctxZxs3/o785b6Q3s7Pd92Ptsg==} + '@pnpm/exe.linux-arm64@12.4.2': + resolution: {integrity: sha512-2dSiDXyhx+RTHsewxex8f/jVjqQXWJ2oow4kCVHEWdZKeBpgMxvZ6fHkTAUBJXgqhbKIDHvuNlZBP7gJfUWL5A==} cpu: [arm64] os: [linux] libc: [glibc] - '@pnpm/exe.linux-ppc64@12.4.1': - resolution: {integrity: sha512-r/ab/MlIBo75oizUP5ITiziCCrnXz4SJwfErLQ+603AshB+Yq7xTMCoMtzTSCAMu6aaymIKkAFtZvd2J75Wq0w==} + '@pnpm/exe.linux-ppc64@12.4.2': + resolution: {integrity: sha512-8Itc+jQk+MTz04LS9D1RcH+VctAWmzM4l1cJQ+Sx7pAJNo7EKHdRMbC0Tok1jyQ7eEHNJZD5EleYneZqWfZM+g==} cpu: [ppc64] os: [linux] libc: [glibc] - '@pnpm/exe.linux-riscv64@12.4.1': - resolution: {integrity: sha512-C/D1QWdKMiB8+wv/spl1rGITFUuqC+aI/fb6h8NB5sqxsOaGXeYc/g891oCuzggHn6SODk9p+I09hI76x/cMNw==} + '@pnpm/exe.linux-riscv64@12.4.2': + resolution: {integrity: sha512-hleOeqhTVpH+z9RVMGnxvU4ZnrkBUClWjCbHD9u6kwyqhGSpevoU1wTGish+CBRhmIgMAy9pAfFpqhbAKOKNfw==} cpu: [riscv64] os: [linux] libc: [glibc] - '@pnpm/exe.linux-s390x@12.4.1': - resolution: {integrity: sha512-nxz5zD4yXt94uzbStDk0QTPKW+aE92hH1b5tFXK9ctB1HE9Xcq1vjTiA2LsZMFC6p4gdu5OwQeFqYNAVGa6QlA==} + '@pnpm/exe.linux-s390x@12.4.2': + resolution: {integrity: sha512-LAsQRRdP9aToENR6dtcIJ9l+e1zMYOX0tQcLGpRyLPVBQcYRLlvAPcmDshsiIHQjp05SDa9FI0czX1ZQ1a7a/A==} cpu: [s390x] os: [linux] libc: [glibc] - '@pnpm/exe.linux-x64-musl@12.4.1': - resolution: {integrity: sha512-5AwgFdGhVUg2kIweYGfxzSLEHiIG77PQhZAkXC3TwofQHsu1Wr+TrV5/rNX2PopFnHRzuE581zoB8F6Wle32yg==} + '@pnpm/exe.linux-x64-musl@12.4.2': + resolution: {integrity: sha512-kzfzH2/0BWdTABK14Yj5a1xsdkTEQUp2eXEPNakaD9jKL025lq3hyaKHIz/gIZaPDMe/1bFFK/En4ztFlbBJxw==} cpu: [x64] os: [linux] libc: [musl] - '@pnpm/exe.linux-x64@12.4.1': - resolution: {integrity: sha512-FJOZuuuQMhp0oLzBtcKkLXknBI92hfkmSnlKc47vfin4HrmfID5khY2lGekL9tCzk1cpR+HShEw/meFl+nHtzQ==} + '@pnpm/exe.linux-x64@12.4.2': + resolution: {integrity: sha512-/pbt0UVTa8NMDhzOWLQRfZ6G9ROKXlJPZtx845BqyWfc7hCrWXhTLBd70yO2y8+E+IWN3oHM1s/JsIQNGk1yvg==} cpu: [x64] os: [linux] libc: [glibc] - '@pnpm/exe.win32-arm64@12.4.1': - resolution: {integrity: sha512-OO7eKBL9S+xk5hRy+JUUZSNJknGuGe3GEUffsrlC2LbqKF02g+VX1anGIzSbJDvkkdnpJhSlxF5AUz2JzJu2Jw==} + '@pnpm/exe.win32-arm64@12.4.2': + resolution: {integrity: sha512-PsW19e4dAUNpZ0cS9flaxFuAmpt2dKlH/Vvi8TZ4qyJjjQzue/CEsWm+6wKVP4CJ7IT8RdL4qh+soOPWIgF2Zw==} cpu: [arm64] os: [win32] - '@pnpm/exe.win32-x64@12.4.1': - resolution: {integrity: sha512-x7gJHZgHo6hp354xCYA2NvoFzYJkHwovt2kVsUBK5EmXULLcP51JGMq09CX+5FRFJUZFKoXjLu3mZWmfP7o6PQ==} + '@pnpm/exe.win32-x64@12.4.2': + resolution: {integrity: sha512-+xGoeE0g55ztWvl8i5QqdmNfW3nIrTVcoQrNshEOwxthm9Ag48oXton3uxOA3/SANyz5AXexEjj2KO20NnOrEw==} cpu: [x64] os: [win32] - pnpm@12.4.1: - resolution: {integrity: sha512-LoHjmdc/6DkNqyXgaqeIq3pZCCSNL1o3D4K0gRR6ano2e/gEj5pv22Rg8hpm8FQt7bi5TKLIcjWWdBkgsWVtTA==} + pnpm@12.4.2: + resolution: {integrity: sha512-CK3GYTGAJ1x8ntraOdzwjJxhrU5+rzMKTzRh8QKw+QdCNFTRF/mOctR/7wYWBwZE17/8lzpqV/UJCm18NosHyQ==} engines: {node: '>=18.*'} hasBin: true snapshots: - '@pnpm/exe.android-arm64@12.4.1': + '@pnpm/exe.android-arm64@12.4.2': optional: true - '@pnpm/exe.android-x64@12.4.1': + '@pnpm/exe.android-x64@12.4.2': optional: true - '@pnpm/exe.darwin-arm64@12.4.1': + '@pnpm/exe.darwin-arm64@12.4.2': optional: true - '@pnpm/exe.darwin-x64@12.4.1': + '@pnpm/exe.darwin-x64@12.4.2': optional: true - '@pnpm/exe.freebsd-x64@12.4.1': + '@pnpm/exe.freebsd-x64@12.4.2': optional: true - '@pnpm/exe.linux-arm64-musl@12.4.1': + '@pnpm/exe.linux-arm64-musl@12.4.2': optional: true - '@pnpm/exe.linux-arm64@12.4.1': + '@pnpm/exe.linux-arm64@12.4.2': optional: true - '@pnpm/exe.linux-ppc64@12.4.1': + '@pnpm/exe.linux-ppc64@12.4.2': optional: true - '@pnpm/exe.linux-riscv64@12.4.1': + '@pnpm/exe.linux-riscv64@12.4.2': optional: true - '@pnpm/exe.linux-s390x@12.4.1': + '@pnpm/exe.linux-s390x@12.4.2': optional: true - '@pnpm/exe.linux-x64-musl@12.4.1': + '@pnpm/exe.linux-x64-musl@12.4.2': optional: true - '@pnpm/exe.linux-x64@12.4.1': + '@pnpm/exe.linux-x64@12.4.2': optional: true - '@pnpm/exe.win32-arm64@12.4.1': + '@pnpm/exe.win32-arm64@12.4.2': optional: true - '@pnpm/exe.win32-x64@12.4.1': + '@pnpm/exe.win32-x64@12.4.2': optional: true - pnpm@12.4.1: + pnpm@12.4.2: optionalDependencies: - '@pnpm/exe.android-arm64': 12.4.1 - '@pnpm/exe.android-x64': 12.4.1 - '@pnpm/exe.darwin-arm64': 12.4.1 - '@pnpm/exe.darwin-x64': 12.4.1 - '@pnpm/exe.freebsd-x64': 12.4.1 - '@pnpm/exe.linux-arm64': 12.4.1 - '@pnpm/exe.linux-arm64-musl': 12.4.1 - '@pnpm/exe.linux-ppc64': 12.4.1 - '@pnpm/exe.linux-riscv64': 12.4.1 - '@pnpm/exe.linux-s390x': 12.4.1 - '@pnpm/exe.linux-x64': 12.4.1 - '@pnpm/exe.linux-x64-musl': 12.4.1 - '@pnpm/exe.win32-arm64': 12.4.1 - '@pnpm/exe.win32-x64': 12.4.1 + '@pnpm/exe.android-arm64': 12.4.2 + '@pnpm/exe.android-x64': 12.4.2 + '@pnpm/exe.darwin-arm64': 12.4.2 + '@pnpm/exe.darwin-x64': 12.4.2 + '@pnpm/exe.freebsd-x64': 12.4.2 + '@pnpm/exe.linux-arm64': 12.4.2 + '@pnpm/exe.linux-arm64-musl': 12.4.2 + '@pnpm/exe.linux-ppc64': 12.4.2 + '@pnpm/exe.linux-riscv64': 12.4.2 + '@pnpm/exe.linux-s390x': 12.4.2 + '@pnpm/exe.linux-x64': 12.4.2 + '@pnpm/exe.linux-x64-musl': 12.4.2 + '@pnpm/exe.win32-arm64': 12.4.2 + '@pnpm/exe.win32-x64': 12.4.2 --- lockfileVersion: '9.0' @@ -200,26 +200,26 @@ importers: specifier: ^3.13.25 version: 3.14.10(react-dom@19.3.0(react@19.3.0))(react@19.3.0) '@tauri-apps/api': - specifier: 2.11.1 - version: 2.11.1 + specifier: 3.0.0-alpha.0 + version: 3.0.0-alpha.0 '@tauri-apps/plugin-clipboard-manager': - specifier: ^2.3.2 - version: 2.3.2 + specifier: ^3.0.0-alpha.0 + version: 3.0.0-alpha.0 '@tauri-apps/plugin-dialog': - specifier: ^2.7.1 - version: 2.7.2 + specifier: ^3.0.0-alpha.0 + version: 3.0.0-alpha.0 '@tauri-apps/plugin-fs': - specifier: ^2.5.1 - version: 2.5.1 + specifier: ^3.0.0-alpha.0 + version: 3.0.0-alpha.0 '@tauri-apps/plugin-http': - specifier: ~2.6.0 - version: 2.6.0 + specifier: ~3.0.0-alpha.0 + version: 3.0.0-alpha.0 '@tauri-apps/plugin-opener': - specifier: 2.5.5 - version: 2.5.5 + specifier: 3.0.0-alpha.0 + version: 3.0.0-alpha.0 '@tauri-apps/plugin-updater': - specifier: 2.11.0 - version: 2.11.0 + specifier: 3.0.0-alpha.0 + version: 3.0.0-alpha.0 ahooks: specifier: ^3.9.7 version: 3.9.7(react-dom@19.3.0(react@19.3.0))(react@19.3.0) @@ -318,8 +318,8 @@ importers: specifier: ^10.0.1 version: 10.0.1(eslint@10.9.1(jiti@2.7.0)(supports-color@7.2.0)) '@tauri-apps/cli': - specifier: 2.11.4 - version: 2.11.4 + specifier: 3.0.0-alpha.1 + version: 3.0.0-alpha.1 '@types/lodash-es': specifier: ^4.17.12 version: 4.17.12 @@ -2106,99 +2106,102 @@ packages: '@tauri-apps/api@2.11.1': resolution: {integrity: sha512-M2FPuYND2m+wh5hfW9ZpSdxMPdEJovPBWwoHJmwUpysTYNHaOkVFN419m/K0LIgjb/7KU2vBgsUepJWugQCvAA==} - '@tauri-apps/cli-darwin-arm64@2.11.4': - resolution: {integrity: sha512-1ryOF3ZhpZ/nemHV5zVwBQBz9jDGKmKPvWPADOhc83ig0P4bMc2iER4NbC6r9sjeIZ6RVQ4g3RZIYvezhcl4TQ==} + '@tauri-apps/api@3.0.0-alpha.0': + resolution: {integrity: sha512-uyZ7uHZz1qYlj4zi7d8WC1cBdI6WLAVJjPALeKkMCBdzpMMF5sf0iY3BX52ziC4zpEOnUNoi5ctRz0GWvvExOg==} + + '@tauri-apps/cli-darwin-arm64@3.0.0-alpha.1': + resolution: {integrity: sha512-63uxPcMKNtRScNi1QqkqIabwBH1T7gIU2TmbUphrSLfHjGlBuT83InpIql96pfNBJk95w/aV4krZhT9hmL78tA==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@tauri-apps/cli-darwin-x64@2.11.4': - resolution: {integrity: sha512-uFsGQAAfuyz1k/yGLmkWfkBlgKAqZfxqlHmLWx81QU27RJWfmbNHCIq8T8w1e+VClleIuZUjpHWfoE4E3DLo3A==} + '@tauri-apps/cli-darwin-x64@3.0.0-alpha.1': + resolution: {integrity: sha512-eSBLEBJgwHZDLCsdR2fsDoEztd48mnM8U64rSlZCqULOr3sIRtXVPdoHGBoUoU4C84j+utGumXa+frIxbq7Log==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@tauri-apps/cli-linux-arm-gnueabihf@2.11.4': - resolution: {integrity: sha512-IaHZn5CdBL21oUmjiVOS1ctw6Ip1O0pjp70FwOWmYz1myWe0SY96ZIj2FYf7pT0m8bI2h/hrs5ZbEXXh44/MkQ==} + '@tauri-apps/cli-linux-arm-gnueabihf@3.0.0-alpha.1': + resolution: {integrity: sha512-6peZspFoNmfoqzBKCiziOsntq2Dy5WI0RLXCdffqCrsC/CplIQB1xmldmOeI8xzuTjRCUqxEO2Vurv7HVluZhA==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - '@tauri-apps/cli-linux-arm64-gnu@2.11.4': - resolution: {integrity: sha512-N41/ukTRVe6XSuUTESuFdGeOW2i7k62tK+6gHK5Kd5/q5RPvvi19GaWAVPPb9u95HSGmTChSolBfzynUsssFaA==} + '@tauri-apps/cli-linux-arm64-gnu@3.0.0-alpha.1': + resolution: {integrity: sha512-gp3CJqdmqPE1IEkH6sbFDI6yYhxqGn8OuHU6jkA7jAVdxJGdeGuQZE9c7XrEq8uFNNfjz6bOI3djfVOvqzgAvw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [glibc] - '@tauri-apps/cli-linux-arm64-musl@2.11.4': - resolution: {integrity: sha512-v277UnT/fB64xAfSroL5N3Km3tLmvATWqJJw/wRI+g6o+HkeD0slyE7gOhNs1MbjE41R7bQOTxMVoL3aomUJmw==} + '@tauri-apps/cli-linux-arm64-musl@3.0.0-alpha.1': + resolution: {integrity: sha512-t6lhy7kvBp5VKGoob0X8MBMAS/ah1NE3s0N9kwhMw06gAFMBvDVnq/het3CkZkbQm+uoUbDnWagZ+7buGkI6XQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [musl] - '@tauri-apps/cli-linux-riscv64-gnu@2.11.4': - resolution: {integrity: sha512-qqgNkQ2u1yZHxjhxsZaxUtRDW8dIqIYm33rx/mzwQv0SfY9x1B+iraj8vWeFiXjjSVVhEMepXSOts1TqPzvXNQ==} + '@tauri-apps/cli-linux-riscv64-gnu@3.0.0-alpha.1': + resolution: {integrity: sha512-SHjvrK8DZ+FdIgLaisMgTVtDKCoR3m4639FgO/EeJcMM73LipUqgKIpkxxutqMyLoPJ6gxIQ6HHjNvNqUCmN3w==} engines: {node: '>= 10'} cpu: [riscv64] os: [linux] libc: [glibc] - '@tauri-apps/cli-linux-x64-gnu@2.11.4': - resolution: {integrity: sha512-2VRNWl84FOH0m2giiDkO2h0QXlcMJeX+zJDpI5kDIQAx6s+geF3v48F4DXfJez4GS/FdoDGnPnw1C2iYGbQ7bQ==} + '@tauri-apps/cli-linux-x64-gnu@3.0.0-alpha.1': + resolution: {integrity: sha512-0nwRa3cD//pAIRm3xwA3+N9zI01WnRBVOGHN4dpnWoZZDwwbsvCHwzyl34FsJv5wwcvGLlzbjMART55IPpTdlQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [glibc] - '@tauri-apps/cli-linux-x64-musl@2.11.4': - resolution: {integrity: sha512-o9GyhYor/nc7xarmwDE3ka2szuW3uuZzXjHWh64Q8YX5AtSgxdQkFWzrY4O8KiGtVNvFBI14H3Q49Qj5TOIP/A==} + '@tauri-apps/cli-linux-x64-musl@3.0.0-alpha.1': + resolution: {integrity: sha512-8ljY9JY6iGhGEAm7YWfQTa5If88to4Tpk8HHtIo6bay3+IJW1XanAmykLQdHoBRxMJyuAeE7uk2Gmfu7plQifg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [musl] - '@tauri-apps/cli-win32-arm64-msvc@2.11.4': - resolution: {integrity: sha512-ld5Ehb598m0VkYyylRPNeCFsBe/km0jxis6KgMpl3IGY6I/i1RwQXO05I1AsXUXO2WC6AvB/Lw4qTf/asiuEiQ==} + '@tauri-apps/cli-win32-arm64-msvc@3.0.0-alpha.1': + resolution: {integrity: sha512-1L79hm8E6NhauTjl3WXkptZ1K8mfkgs3nB38YopgvThZI6ncVJ1NOMcaJfdxOzCkuliDAl1PSUkQnljNTNsmww==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@tauri-apps/cli-win32-ia32-msvc@2.11.4': - resolution: {integrity: sha512-12Hxi0XX/H5VFxO/bGgHkFWhml9VMgEOu9CidjeCeTNQ1l6fpUlbiGgSP7CLI3PFtW9/FfbeHieZ+kyWK5H7CA==} + '@tauri-apps/cli-win32-ia32-msvc@3.0.0-alpha.1': + resolution: {integrity: sha512-YKhX4NS2xKyDduznVVhkiNVitwBVTe8erheiHrYzWVsSuHCQVyiQAajfuAaufdeCIv0cTFo6siCWmBu1YcFUcg==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] - '@tauri-apps/cli-win32-x64-msvc@2.11.4': - resolution: {integrity: sha512-+vDiqBIU5dMISg/wNvX3sF+ZHfgJGJ5T0AcO+EHNXV9GGAG+P5fzodlDXD3QdKCRgZxMoCm5PPvj3BqLNjBthw==} + '@tauri-apps/cli-win32-x64-msvc@3.0.0-alpha.1': + resolution: {integrity: sha512-/Bth9cwQOGgcoST8SJ5obTCYpVqqVYoRqo5RBUvbsIHRCbui1zL+giQDWdXDhCJEEXkGmSMiIxWTmg+v0Wp4uA==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@tauri-apps/cli@2.11.4': - resolution: {integrity: sha512-R8xGtMpwyetawSqm9kYOuMmEqkhUbvcUy8n0aNXIxollKBLESUu5f4Fx+64hgASYm1H+jSWq6jCW6zqTnH6hqQ==} + '@tauri-apps/cli@3.0.0-alpha.1': + resolution: {integrity: sha512-7KSBFGBZk07THOp18HtMIntgxyYQNMDNcm0EEcmRmGTdcUS7X0BkrWDxtw8PRDMA9RZ1oYZKcjJjFyA8Lwr6dw==} engines: {node: '>= 10'} hasBin: true - '@tauri-apps/plugin-clipboard-manager@2.3.2': - resolution: {integrity: sha512-CUlb5Hqi2oZbcZf4VUyUH53XWPPdtpw43EUpCza5HWZJwxEoDowFzNUDt1tRUXA8Uq+XPn17Ysfptip33sG4eQ==} + '@tauri-apps/plugin-clipboard-manager@3.0.0-alpha.0': + resolution: {integrity: sha512-doH+SBkHXvNKAfInPIFKtAZrmmZRHOA5yf4lFeu74PRbMB7tfH/qNhfepi3C7HRBsmfyWUht/UqfrwMWKfLTKw==} - '@tauri-apps/plugin-dialog@2.7.2': - resolution: {integrity: sha512-pX0IGm1I3I6wc+zeKYcq1GSqogK6okCNX5fOdaNU5ab1AjGS6l1E5wFNjEb7meg7ZFSp0JUs+0jQGQNyOvLrsg==} + '@tauri-apps/plugin-dialog@3.0.0-alpha.0': + resolution: {integrity: sha512-ZnHHbwYlB/1nJqs0gZdi7eHumo3mArCSakx/7T1pqEIkqmXV4PHC+dSZLzsc20+A/HNgIQqa2uR/+yaXKWDzbw==} - '@tauri-apps/plugin-fs@2.5.1': - resolution: {integrity: sha512-9Lz+Jopp6QyeEWhlpkMx4R/+P9HgR+AVAI4vOZhlT8Xaymtz8iVI/Ov984/XTqgJz/5gz5NretqPB/XEMS3NhQ==} + '@tauri-apps/plugin-fs@3.0.0-alpha.0': + resolution: {integrity: sha512-PlpcBFbWNZZrOvd0pUJbdTGaDFXuFVtW5tmF2D2w7mf/KwRI0w7jzrR1b7Sy6fs0lOR5zI/sXQHdt7ExKoEMcQ==} - '@tauri-apps/plugin-http@2.6.0': - resolution: {integrity: sha512-QYXwbGb4hQ9/8Riv/ejU/kPFFnbBIrBcWwV1LIXv2xBKfoj8lkWfGkd9pkCSsBI/pljPtz+IPqfrE3t3bVl3mg==} + '@tauri-apps/plugin-http@3.0.0-alpha.0': + resolution: {integrity: sha512-cRyrWu2fcrlSmebEc3XE3UGE/Hj20REKpgbtlpAEydk5/dvu0nfvC/wCKEgD2w8h0XwTu8ewXkRG0R/j18a+5w==} - '@tauri-apps/plugin-opener@2.5.5': - resolution: {integrity: sha512-xvzGai5aQds8j8R8RsUK/lW6pGG50YgOYIPLzvkqmkwAj7dfySOD7sGtejRzvVdMmv1EQfKVEFh1MvmDp8QR0g==} + '@tauri-apps/plugin-opener@3.0.0-alpha.0': + resolution: {integrity: sha512-jbAAtkBlJCRIujSN+oGioSSb7E+r2f4w+VNFcakwf6ZsaX1JXVawRZJmNQ/h2/tvHpMO7s6neX56HrlWc7Cnjg==} - '@tauri-apps/plugin-updater@2.11.0': - resolution: {integrity: sha512-AE36XkOoSna24G40jZMY15nzAnkXEPL/73tGoseGrtGOHuI/cZwWzHpZFLjKXDPgzYZ435z1gHu28LgrsBwIxQ==} + '@tauri-apps/plugin-updater@3.0.0-alpha.0': + resolution: {integrity: sha512-ArbrJFjrn0vtnMkHOPdEQZM6hD6EXUMNXNVcXFtxhnst1MrjO5SKjcZZIg3E6W3Y2DUBE8iIMMKJfYOLDRiBxQ==} '@tootallnate/quickjs-emscripten@0.23.0': resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} @@ -6955,74 +6958,76 @@ snapshots: '@tauri-apps/api@2.11.1': {} - '@tauri-apps/cli-darwin-arm64@2.11.4': + '@tauri-apps/api@3.0.0-alpha.0': {} + + '@tauri-apps/cli-darwin-arm64@3.0.0-alpha.1': optional: true - '@tauri-apps/cli-darwin-x64@2.11.4': + '@tauri-apps/cli-darwin-x64@3.0.0-alpha.1': optional: true - '@tauri-apps/cli-linux-arm-gnueabihf@2.11.4': + '@tauri-apps/cli-linux-arm-gnueabihf@3.0.0-alpha.1': optional: true - '@tauri-apps/cli-linux-arm64-gnu@2.11.4': + '@tauri-apps/cli-linux-arm64-gnu@3.0.0-alpha.1': optional: true - '@tauri-apps/cli-linux-arm64-musl@2.11.4': + '@tauri-apps/cli-linux-arm64-musl@3.0.0-alpha.1': optional: true - '@tauri-apps/cli-linux-riscv64-gnu@2.11.4': + '@tauri-apps/cli-linux-riscv64-gnu@3.0.0-alpha.1': optional: true - '@tauri-apps/cli-linux-x64-gnu@2.11.4': + '@tauri-apps/cli-linux-x64-gnu@3.0.0-alpha.1': optional: true - '@tauri-apps/cli-linux-x64-musl@2.11.4': + '@tauri-apps/cli-linux-x64-musl@3.0.0-alpha.1': optional: true - '@tauri-apps/cli-win32-arm64-msvc@2.11.4': + '@tauri-apps/cli-win32-arm64-msvc@3.0.0-alpha.1': optional: true - '@tauri-apps/cli-win32-ia32-msvc@2.11.4': + '@tauri-apps/cli-win32-ia32-msvc@3.0.0-alpha.1': optional: true - '@tauri-apps/cli-win32-x64-msvc@2.11.4': + '@tauri-apps/cli-win32-x64-msvc@3.0.0-alpha.1': optional: true - '@tauri-apps/cli@2.11.4': + '@tauri-apps/cli@3.0.0-alpha.1': optionalDependencies: - '@tauri-apps/cli-darwin-arm64': 2.11.4 - '@tauri-apps/cli-darwin-x64': 2.11.4 - '@tauri-apps/cli-linux-arm-gnueabihf': 2.11.4 - '@tauri-apps/cli-linux-arm64-gnu': 2.11.4 - '@tauri-apps/cli-linux-arm64-musl': 2.11.4 - '@tauri-apps/cli-linux-riscv64-gnu': 2.11.4 - '@tauri-apps/cli-linux-x64-gnu': 2.11.4 - '@tauri-apps/cli-linux-x64-musl': 2.11.4 - '@tauri-apps/cli-win32-arm64-msvc': 2.11.4 - '@tauri-apps/cli-win32-ia32-msvc': 2.11.4 - '@tauri-apps/cli-win32-x64-msvc': 2.11.4 + '@tauri-apps/cli-darwin-arm64': 3.0.0-alpha.1 + '@tauri-apps/cli-darwin-x64': 3.0.0-alpha.1 + '@tauri-apps/cli-linux-arm-gnueabihf': 3.0.0-alpha.1 + '@tauri-apps/cli-linux-arm64-gnu': 3.0.0-alpha.1 + '@tauri-apps/cli-linux-arm64-musl': 3.0.0-alpha.1 + '@tauri-apps/cli-linux-riscv64-gnu': 3.0.0-alpha.1 + '@tauri-apps/cli-linux-x64-gnu': 3.0.0-alpha.1 + '@tauri-apps/cli-linux-x64-musl': 3.0.0-alpha.1 + '@tauri-apps/cli-win32-arm64-msvc': 3.0.0-alpha.1 + '@tauri-apps/cli-win32-ia32-msvc': 3.0.0-alpha.1 + '@tauri-apps/cli-win32-x64-msvc': 3.0.0-alpha.1 - '@tauri-apps/plugin-clipboard-manager@2.3.2': + '@tauri-apps/plugin-clipboard-manager@3.0.0-alpha.0': dependencies: '@tauri-apps/api': 2.11.1 - '@tauri-apps/plugin-dialog@2.7.2': + '@tauri-apps/plugin-dialog@3.0.0-alpha.0': dependencies: '@tauri-apps/api': 2.11.1 - '@tauri-apps/plugin-fs@2.5.1': + '@tauri-apps/plugin-fs@3.0.0-alpha.0': dependencies: '@tauri-apps/api': 2.11.1 - '@tauri-apps/plugin-http@2.6.0': + '@tauri-apps/plugin-http@3.0.0-alpha.0': dependencies: '@tauri-apps/api': 2.11.1 - '@tauri-apps/plugin-opener@2.5.5': + '@tauri-apps/plugin-opener@3.0.0-alpha.0': dependencies: '@tauri-apps/api': 2.11.1 - '@tauri-apps/plugin-updater@2.11.0': + '@tauri-apps/plugin-updater@3.0.0-alpha.0': dependencies: '@tauri-apps/api': 2.11.1 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index a37885e56..f6b28bd3d 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -10,3 +10,15 @@ allowBuilds: unrs-resolver: true minimumReleaseAgeExclude: - dayjs@1.11.21 + - '@tauri-apps/cli-darwin-arm64@3.0.0-alpha.1' + - '@tauri-apps/cli-darwin-x64@3.0.0-alpha.1' + - '@tauri-apps/cli-linux-arm-gnueabihf@3.0.0-alpha.1' + - '@tauri-apps/cli-linux-arm64-gnu@3.0.0-alpha.1' + - '@tauri-apps/cli-linux-arm64-musl@3.0.0-alpha.1' + - '@tauri-apps/cli-linux-riscv64-gnu@3.0.0-alpha.1' + - '@tauri-apps/cli-linux-x64-gnu@3.0.0-alpha.1' + - '@tauri-apps/cli-linux-x64-musl@3.0.0-alpha.1' + - '@tauri-apps/cli-win32-arm64-msvc@3.0.0-alpha.1' + - '@tauri-apps/cli-win32-ia32-msvc@3.0.0-alpha.1' + - '@tauri-apps/cli-win32-x64-msvc@3.0.0-alpha.1' + - '@tauri-apps/cli@3.0.0-alpha.1' diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 30ced0a30..b338aae9b 100755 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -23,13 +23,15 @@ tauri-dev = ["dep:tauri-plugin-devtools"] tokio-trace = ["clash-verge-logging/tokio-trace"] chrome-trace = ["clash-verge-logging/chrome-trace"] clippy = ["tauri/test"] -perf-harness = ["dep:tauri-plugin-wdio-webdriver"] +# The perf-harness feature and its main.rs wiring are parked until +# tauri-plugin-wdio-webdriver publishes a tauri 3 release; restore both +# from git history together with the crate dependency. [package.metadata.bundle] identifier = "io.github.clash-verge-rev.clash-verge-rev" [build-dependencies] -tauri-build = { version = "2.6.3", features = [] } +tauri-build = { version = "3.0.0-alpha.0", features = [] } [dependencies] clash-verge-draft = { workspace = true } @@ -42,12 +44,12 @@ tauri-plugin-clash-verge-sysinfo = { workspace = true } tauri-plugin-clipboard-manager = { workspace = true } tauri = { workspace = true, features = [ "protocol-asset", - "devtools", "tracing", "tray-icon", "image-ico", "image-png", ] } +tauri-runtime-wry = { workspace = true, features = ["devtools"] } parking_lot = { workspace = true } anyhow = { workspace = true } tokio = { workspace = true } @@ -74,13 +76,13 @@ sysproxy = { git = "https://github.com/clash-verge-rev/sysproxy-rs.git", branch "guard", ] } network-interface = { version = "2.0.5", features = ["serde"] } -tauri-plugin-shell = "2.3.6" -tauri-plugin-opener = "2.5.5" -tauri-plugin-dialog = "2.7.3" -tauri-plugin-fs = "2.5.2" -tauri-plugin-process = "2.3.1" -tauri-plugin-deep-link = "2.4.10" -tauri-plugin-window-state = "2.4.1" +tauri-plugin-shell = "3.0.0-alpha.0" +tauri-plugin-opener = "3.0.0-alpha.0" +tauri-plugin-dialog = "3.0.0-alpha.0" +tauri-plugin-fs = "3.0.0-alpha.0" +tauri-plugin-process = "3.0.0-alpha.0" +tauri-plugin-deep-link = "3.0.0-alpha.0" +tauri-plugin-window-state = "3.0.0-alpha.0" zip = "8.6.0" flate2 = "1.1.10" reqwest_dav = "0.3.3" @@ -91,13 +93,13 @@ getrandom = "0.4.3" futures = "0.3.34" gethostname = "1.1.0" scopeguard = "1.2.0" -tauri-plugin-notification = "2.4.0" +tauri-plugin-notification = "3.0.0-alpha.0" tokio-stream = "0.1.19" backon = { version = "1.6.0", features = ["tokio-sleep"] } -tauri-plugin-http = "2.6.0" +tauri-plugin-http = "3.0.0-alpha.0" tracing = { workspace = true } -tauri-plugin-devtools = { version = "2.2.1", optional = true } -tauri-plugin-mihomo = { git = "https://github.com/clash-verge-rev/tauri-plugin-mihomo", branch = "main" } +tauri-plugin-devtools = { version = "3.0.0-alpha.0", optional = true } +tauri-plugin-mihomo = { git = "https://github.com/clash-verge-rev/tauri-plugin-mihomo", branch = "feat/tauri-v3" } async-trait = "0.1.92" clash_verge_service_ipc = { git = "https://github.com/clash-verge-rev/clash-verge-service-ipc.git", tag = "v2.7.1", version = "2.7.1", features = [ "client", @@ -114,7 +116,6 @@ tokio-util = { version = "0.7.19", features = ["time"] } libc = "0.2.189" [target.'cfg(target_os = "macos")'.dependencies] -tauri-plugin-wdio-webdriver = { version = "=1.4.0", optional = true } objc2 = "0.6.4" objc2-foundation = { version = "0.3.2", features = [ "NSString", @@ -146,9 +147,9 @@ windows = { version = "0.62.2", features = ["Win32_Globalization"] } windows-sys.workspace = true [target.'cfg(not(any(target_os = "android", target_os = "ios")))'.dependencies] -tauri-plugin-autostart = "2.5.1" -tauri-plugin-global-shortcut = "2.3.2" -tauri-plugin-updater = "2.11.0" +tauri-plugin-autostart = "3.0.0-alpha.0" +tauri-plugin-global-shortcut = "3.0.0-alpha.0" +tauri-plugin-updater = "3.0.0-alpha.0" [dev-dependencies] criterion = { workspace = true } diff --git a/src-tauri/capabilities/migrated.json b/src-tauri/capabilities/migrated.json index 280595c1d..da0c8749a 100644 --- a/src-tauri/capabilities/migrated.json +++ b/src-tauri/capabilities/migrated.json @@ -70,7 +70,6 @@ "dialog:allow-open", "global-shortcut:allow-is-registered", "global-shortcut:allow-register", - "global-shortcut:allow-register-all", "global-shortcut:allow-unregister", "global-shortcut:allow-unregister-all", "process:allow-exit", diff --git a/src-tauri/src/core/tray/mod.rs b/src-tauri/src/core/tray/mod.rs index 8f9f5ba06..f1b72c4e8 100644 --- a/src-tauri/src/core/tray/mod.rs +++ b/src-tauri/src/core/tray/mod.rs @@ -24,7 +24,7 @@ use std::borrow::Cow; use std::collections::HashMap; use std::time::Duration; use tauri::{ - AppHandle, Wry, + AppHandle, DynRuntime, menu::{CheckMenuItem, IsMenuItem, MenuEvent, MenuItem, PredefinedMenuItem, Submenu}, }; @@ -35,7 +35,7 @@ use menu_def::{MenuIds, MenuTexts}; // TODO: 是否需要将可变菜单抽离存储起来,后续直接更新对应菜单实例,无需重新创建菜单(待考虑) -type ProxyMenuItem = (Option>, Vec>>); +type ProxyMenuItem = (Option>, Vec>>); const TRAY_CLICK_DEBOUNCE_MS: u64 = 300; pub const TRAY_ID: &str = "clash-verge-rev-tray"; @@ -440,7 +440,7 @@ fn create_hotkeys(hotkeys: &Option>) -> HashMap<&str, &str> { fn create_profile_menu_item( app_handle: &AppHandle, profiles_preview: Vec>, -) -> Result>> { +) -> Result>> { profiles_preview .into_iter() .map(|profile| { @@ -462,9 +462,9 @@ fn create_subcreate_proxy_menu_item( proxy_mode: &str, proxy_group_order_map: Option>, proxy_nodes_data: Option, -) -> Vec> { - let proxy_submenus: Vec> = { - let mut submenus: Vec<(String, usize, Submenu)> = Vec::new(); +) -> Vec> { + let proxy_submenus: Vec> = { + let mut submenus: Vec<(String, usize, Submenu)> = Vec::new(); // TODO: 应用启动时,内核还未启动完全,无法获取代理节点信息 if let Some(proxy_nodes_data) = proxy_nodes_data { @@ -484,7 +484,7 @@ fn create_subcreate_proxy_menu_item( let now_proxy = group_data.now.as_deref().unwrap_or_default(); - let group_items: Vec> = all_proxies + let group_items: Vec> = all_proxies .iter() .filter_map(|proxy_str| { let is_selected = *proxy_str == now_proxy; @@ -515,8 +515,10 @@ fn create_subcreate_proxy_menu_item( let group_display_name = group_name.to_string(); - let group_items_refs: Vec<&dyn IsMenuItem> = - group_items.iter().map(|item| item as &dyn IsMenuItem).collect(); + let group_items_refs: Vec<&dyn IsMenuItem> = group_items + .iter() + .map(|item| item as &dyn IsMenuItem) + .collect(); if let Ok(submenu) = Submenu::with_id_and_items( app_handle, @@ -552,7 +554,7 @@ fn create_subcreate_proxy_menu_item( fn create_proxy_menu_item( app_handle: &AppHandle, show_proxy_groups_inline: bool, - proxy_submenus: Vec>, + proxy_submenus: Vec>, proxies_text: &str, ) -> Result { let (proxies_submenu, inline_proxy_items) = if show_proxy_groups_inline { @@ -560,13 +562,13 @@ fn create_proxy_menu_item( None, proxy_submenus .into_iter() - .map(|submenu| Box::new(submenu) as Box>) + .map(|submenu| Box::new(submenu) as Box>) .collect(), ) } else if !proxy_submenus.is_empty() { - let proxy_submenu_refs: Vec<&dyn IsMenuItem> = proxy_submenus + let proxy_submenu_refs: Vec<&dyn IsMenuItem> = proxy_submenus .iter() - .map(|submenu| submenu as &dyn IsMenuItem) + .map(|submenu| submenu as &dyn IsMenuItem) .collect(); ( @@ -593,7 +595,7 @@ async fn create_tray_menu( tun_mode_available: bool, profiles_preview: Vec>, options: TrayMenuOptions, -) -> Result> { +) -> Result> { let current_proxy_mode = mode.unwrap_or(""); let mut verge_settings = Config::verge().await.latest_arc(); @@ -647,12 +649,12 @@ async fn create_tray_menu( let hotkeys = create_hotkeys(&verge_settings.hotkeys); - let profile_menu_items: Vec> = create_profile_menu_item(app_handle, profiles_preview)?; + let profile_menu_items: Vec> = create_profile_menu_item(app_handle, profiles_preview)?; let texts = MenuTexts::new(); - let profile_menu_items_refs: Vec<&dyn IsMenuItem> = profile_menu_items + let profile_menu_items_refs: Vec<&dyn IsMenuItem> = profile_menu_items .iter() - .map(|item| item as &dyn IsMenuItem) + .map(|item| item as &dyn IsMenuItem) .collect(); let open_window = &MenuItem::with_id( @@ -705,9 +707,9 @@ async fn create_tray_menu( outbound_modes_label.as_str(), true, &[ - rule_mode as &dyn IsMenuItem, - global_mode as &dyn IsMenuItem, - direct_mode as &dyn IsMenuItem, + rule_mode as &dyn IsMenuItem, + global_mode as &dyn IsMenuItem, + direct_mode as &dyn IsMenuItem, ], )?) }; @@ -812,7 +814,7 @@ async fn create_tray_menu( &texts.more, true, &[ - copy_env as &dyn IsMenuItem, + copy_env as &dyn IsMenuItem, close_all_connections, restart_clash, restart_app, @@ -829,13 +831,13 @@ async fn create_tray_menu( let separator = &PredefinedMenuItem::separator(app_handle)?; - let mut menu_items: Vec<&dyn IsMenuItem> = vec![open_window, separator]; + let mut menu_items: Vec<&dyn IsMenuItem> = vec![open_window, separator]; if show_outbound_modes_inline { menu_items.extend_from_slice(&[ - rule_mode as &dyn IsMenuItem, - global_mode as &dyn IsMenuItem, - direct_mode as &dyn IsMenuItem, + rule_mode as &dyn IsMenuItem, + global_mode as &dyn IsMenuItem, + direct_mode as &dyn IsMenuItem, ]); } else if let Some(ref outbound_modes) = outbound_modes { menu_items.push(outbound_modes); @@ -845,7 +847,7 @@ async fn create_tray_menu( match tray_proxy_groups_display_mode { "default" => { - menu_items.extend(proxies_menu.iter().map(|item| item as &dyn IsMenuItem<_>)); + menu_items.extend(proxies_menu.iter().map(|item| item as &dyn IsMenuItem)); } "inline" if !inline_proxy_items.is_empty() => { menu_items.extend(inline_proxy_items.iter().map(|item| item.as_ref())); @@ -855,14 +857,14 @@ async fn create_tray_menu( menu_items.extend_from_slice(&[ separator, - system_proxy as &dyn IsMenuItem, - tun_mode as &dyn IsMenuItem, + system_proxy as &dyn IsMenuItem, + tun_mode as &dyn IsMenuItem, separator, - lightweight_mode as &dyn IsMenuItem, - open_dir as &dyn IsMenuItem, - more as &dyn IsMenuItem, + lightweight_mode as &dyn IsMenuItem, + open_dir as &dyn IsMenuItem, + more as &dyn IsMenuItem, separator, - quit as &dyn IsMenuItem, + quit as &dyn IsMenuItem, ]); let menu = tauri::menu::MenuBuilder::new(app_handle).items(&menu_items).build()?; diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 19891eba3..f63ef223f 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -39,7 +39,7 @@ mod app_init { } /// Setup plugins for the Tauri builder - pub fn setup_plugins(builder: tauri::Builder) -> tauri::Builder { + pub fn setup_plugins(builder: tauri::Builder) -> tauri::Builder { #[allow(unused_mut)] let mut builder = builder .plugin(tauri_plugin_clash_verge_sysinfo::init()) @@ -116,7 +116,7 @@ mod app_init { Ok(()) } - pub fn generate_handlers() -> impl Fn(tauri::ipc::Invoke) -> bool + Send + Sync + 'static { + pub fn generate_handlers() -> impl Fn(tauri::ipc::Invoke) -> bool + Send + Sync + 'static { tauri::generate_handler![ tauri_plugin_clash_verge_sysinfo::commands::get_system_info, tauri_plugin_clash_verge_sysinfo::commands::get_app_uptime, @@ -255,7 +255,7 @@ pub fn run() -> std::process::ExitCode { #[cfg(target_os = "linux")] utils::linux::workarounds::apply_wayland_webkit_fix(); - let builder = app_init::setup_plugins(tauri::Builder::default()) + let builder = app_init::setup_plugins(tauri::Builder::default().runtime(tauri_runtime_wry::Wry::default())) .setup(|app| { // Logger may not be ready yet, so mirror setup panics to stderr. fn log_setup_panic(stage: &str, panic: Box) { diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 659b574b8..2536d377c 100755 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -1,19 +1,8 @@ #![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] use std::process::ExitCode; -#[cfg(not(all(feature = "perf-harness", target_os = "macos")))] use std::sync::atomic::{AtomicUsize, Ordering}; -#[cfg(all(feature = "perf-harness", target_os = "macos"))] -#[path = "../../scripts/perf/app.rs"] -mod perf; - -#[cfg(all(feature = "perf-harness", target_os = "macos"))] -fn main() -> ExitCode { - perf::run() -} - -#[cfg(not(all(feature = "perf-harness", target_os = "macos")))] fn main() -> ExitCode { let default_parallelism = std::thread::available_parallelism().map(|n| n.get()).unwrap_or(1); let worker_limit = std::cmp::min(default_parallelism, 8); diff --git a/src-tauri/src/utils/resolve/window.rs b/src-tauri/src/utils/resolve/window.rs index b8a548a00..25c1670d7 100644 --- a/src-tauri/src/utils/resolve/window.rs +++ b/src-tauri/src/utils/resolve/window.rs @@ -132,7 +132,10 @@ pub fn take_webview_needs_reload() -> bool { /// reload visible webviews immediately, and defer a hidden main-window reload until activation. /// Registering this callback replaces Tauri's default automatic reload. #[cfg(target_os = "macos")] -pub fn on_web_content_process_terminated(webview: &tauri::Webview) { +pub fn on_web_content_process_terminated( + webview: &tauri::Webview, + _termination: &tauri::webview::WebContentProcessTermination, +) { if handle::Handle::global().is_exiting() { return; } diff --git a/src-tauri/src/utils/window_manager.rs b/src-tauri/src/utils/window_manager.rs index eab10d089..ca9e49363 100644 --- a/src-tauri/src/utils/window_manager.rs +++ b/src-tauri/src/utils/window_manager.rs @@ -4,7 +4,7 @@ use clash_verge_logging::{Type, logging}; use once_cell::sync::Lazy; use std::pin::Pin; use std::time::Duration; -use tauri::{Manager as _, WebviewWindow, Wry}; +use tauri::{Manager as _, WebviewWindow}; #[derive(Debug, Clone, Copy, PartialEq)] pub enum WindowOperationResult { @@ -50,7 +50,7 @@ impl WindowManager { handle::Handle::global().set_activation_policy_regular(); } - fn get_main_window_with_state() -> (Option>, WindowState) { + fn get_main_window_with_state() -> (Option, WindowState) { let Some(window) = Self::get_main_window() else { return (None, WindowState::NotExist); }; @@ -76,7 +76,7 @@ impl WindowManager { Self::get_main_window_with_state().1 } - pub fn get_main_window() -> Option> { + pub fn get_main_window() -> Option { let app_handle = handle::Handle::app_handle(); app_handle.get_webview_window("main") } @@ -147,7 +147,7 @@ impl WindowManager { } } - fn hide_main_window(window: Option<&WebviewWindow>) -> WindowOperationResult { + fn hide_main_window(window: Option<&WebviewWindow>) -> WindowOperationResult { logging!(debug, Type::Window, "窗口可见,将隐藏窗口"); if let Some(window) = window { match window.close() { @@ -166,7 +166,7 @@ impl WindowManager { } } - fn activate_existing_main_window(window: Option<&WebviewWindow>) -> WindowOperationResult { + fn activate_existing_main_window(window: Option<&WebviewWindow>) -> WindowOperationResult { logging!(debug, Type::Window, "窗口存在但被隐藏或最小化,将激活窗口"); if let Some(window) = window { Self::activate_window(window) @@ -176,7 +176,7 @@ impl WindowManager { } } - fn activate_window(window: &WebviewWindow) -> WindowOperationResult { + fn activate_window(window: &WebviewWindow) -> WindowOperationResult { logging!(debug, Type::Window, "开始激活窗口"); #[cfg(target_os = "macos")] Self::set_macos_activation_policy_regular(); @@ -233,15 +233,15 @@ impl WindowManager { } } - pub fn is_main_window_visible(window: Option<&WebviewWindow>) -> bool { + pub fn is_main_window_visible(window: Option<&WebviewWindow>) -> bool { window.map(|w| w.is_visible().unwrap_or(false)).unwrap_or(false) } - pub fn is_main_window_focused(window: Option<&WebviewWindow>) -> bool { + pub fn is_main_window_focused(window: Option<&WebviewWindow>) -> bool { window.map(|w| w.is_focused().unwrap_or(false)).unwrap_or(false) } - fn is_main_window_minimized(window: Option<&WebviewWindow>) -> bool { + fn is_main_window_minimized(window: Option<&WebviewWindow>) -> bool { window.map(|w| w.is_minimized().unwrap_or(false)).unwrap_or(false) }