diff --git a/Cargo.lock b/Cargo.lock index 32c453c88..e35244cc9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -358,7 +358,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "241b621213072e993be4f6f3a9e4b45f65b7e6faad43001be957184b7bb1824b" dependencies = [ "atk-sys", - "glib 0.18.5", + "glib", "libc", ] @@ -368,10 +368,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]] @@ -382,16 +382,13 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "auto-launch" -version = "0.6.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17918dba7ecf78b9a14507ec9f984e7977d13fad87dc86d61038980a45d128cf" +checksum = "1f012b8cc0c850f34117ec8252a44418f2e34a2cf501de89e29b241ae5f79471" dependencies = [ - "dirs 6.0.0", - "os_info", - "smappservice-rs", - "thiserror 2.0.20", - "windows-registry", - "windows-result 0.4.1", + "dirs 4.0.0", + "thiserror 1.0.69", + "winreg 0.10.1", ] [[package]] @@ -431,13 +428,10 @@ checksum = "31b698c5f9a010f6573133b09e0de5408834d0c82f8d7475a89fc1867a71cd90" dependencies = [ "axum-core", "bytes", - "form_urlencoded", "futures-util", "http", "http-body", "http-body-util", - "hyper", - "hyper-util", "itoa", "matchit", "memchr", @@ -445,15 +439,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]] @@ -472,7 +461,6 @@ dependencies = [ "sync_wrapper", "tower-layer", "tower-service", - "tracing", ] [[package]] @@ -853,7 +841,7 @@ checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2" dependencies = [ "bitflags 2.13.2", "cairo-sys-rs", - "glib 0.18.5", + "glib", "libc", "once_cell", "thiserror 1.0.69", @@ -865,9 +853,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]] @@ -956,6 +944,17 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" +[[package]] +name = "cfb" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38f2da7a0a2c4ccf0065be06397cc26a81f4e528be095826eee9d4adbb8c60f" +dependencies = [ + "byteorder", + "fnv", + "uuid", +] + [[package]] name = "cfb" version = "0.14.0" @@ -974,17 +973,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]] @@ -1161,8 +1150,8 @@ dependencies = [ "tauri-plugin-process", "tauri-plugin-shell", "tauri-plugin-updater", - "tauri-plugin-wdio-webdriver", "tauri-plugin-window-state", + "tauri-runtime-wry", "tauri-specta", "tokio", "tokio-rustls", @@ -2607,7 +2596,7 @@ dependencies = [ "gdk-pixbuf", "gdk-sys", "gio", - "glib 0.18.5", + "glib", "libc", "pango", ] @@ -2620,7 +2609,7 @@ checksum = "50e1f5f1b0bfb830d6ccc8066d18db35c487b1b2b1e8589b5dfe9f07e8defaec" dependencies = [ "gdk-pixbuf-sys", "gio", - "glib 0.18.5", + "glib", "libc", "once_cell", ] @@ -2631,11 +2620,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]] @@ -2646,13 +2635,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]] @@ -2662,11 +2651,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]] @@ -2678,7 +2667,7 @@ dependencies = [ "gdk", "gdkx11-sys", "gio", - "glib 0.18.5", + "glib", "libc", "x11", ] @@ -2690,9 +2679,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", ] @@ -2774,8 +2763,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", @@ -2789,26 +2778,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" @@ -2821,10 +2797,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", @@ -2832,27 +2808,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" @@ -2867,19 +2822,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" @@ -2887,17 +2829,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]] @@ -2966,20 +2898,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]] @@ -3005,7 +2926,7 @@ dependencies = [ "gdk", "gdk-pixbuf", "gio", - "glib 0.18.5", + "glib", "gtk-sys", "gtk3-macros", "libc", @@ -3023,12 +2944,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]] @@ -3345,7 +3266,7 @@ dependencies = [ "tokio", "tower-service", "tracing", - "windows-registry", + "windows-registry 0.6.1", ] [[package]] @@ -3592,13 +3513,22 @@ dependencies = [ "serde_core", ] +[[package]] +name = "infer" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a588916bfdfd92e71cacef98a63d9b1f0d74d6599980d11894290e7ddefffcf7" +dependencies = [ + "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", + "cfb 0.14.0", ] [[package]] @@ -3709,7 +3639,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", ] @@ -3719,10 +3649,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]] @@ -3890,6 +3820,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" @@ -3919,30 +3867,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" @@ -3964,16 +3888,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" @@ -4720,19 +4634,6 @@ dependencies = [ "objc2-core-foundation", ] -[[package]] -name = "objc2-service-management" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b213642d6959cc6023ceb1217aa595eaaf09b8094ce95127c103cab611fe65e8" -dependencies = [ - "block2", - "objc2", - "objc2-core-foundation", - "objc2-foundation", - "objc2-security", -] - [[package]] name = "objc2-ui-kit" version = "0.3.2" @@ -4859,21 +4760,6 @@ dependencies = [ "pin-project-lite", ] -[[package]] -name = "os_info" -version = "3.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf20a545b305cf1da722b236b5155c9bb35f1d5ceb28c048bd96ca842f41b5b" -dependencies = [ - "android_system_properties", - "log", - "nix", - "objc2", - "objc2-foundation", - "objc2-ui-kit", - "windows-sys 0.61.2", -] - [[package]] name = "os_pipe" version = "1.2.3" @@ -4915,7 +4801,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", @@ -4927,10 +4813,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]] @@ -5893,8 +5779,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", @@ -6178,21 +6064,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" @@ -6213,20 +6084,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]] @@ -6399,13 +6273,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]] @@ -6414,6 +6288,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", @@ -6421,17 +6296,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" @@ -6732,18 +6596,6 @@ version = "1.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90" -[[package]] -name = "smappservice-rs" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52703b97a53101cf5d4580e0737aaa634ce1fdcfc123c16b2a9658e358013488" -dependencies = [ - "objc2", - "objc2-foundation", - "objc2-service-management", - "thiserror 2.0.20", -] - [[package]] name = "smartstring" version = "1.0.1" @@ -6796,7 +6648,7 @@ checksum = "471f924a40f31251afc77450e781cb26d55c0b650842efafc9c6cbd2f7cc4f9f" dependencies = [ "futures-channel", "gio", - "glib 0.18.5", + "glib", "libc", "soup3-sys", ] @@ -6807,18 +6659,17 @@ 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]] name = "specta" -version = "2.0.0-rc.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38f9a30cbcbb7011f1da7d73483983bf838af123883e45f2b36ed76328df9c50" +version = "2.0.0-rc.26" +source = "git+https://github.com/specta-rs/specta.git?rev=2757fa8899926dce7da999780c7edf2dc08a732a#2757fa8899926dce7da999780c7edf2dc08a732a" dependencies = [ "paste", "rustc_version 0.4.1", @@ -6828,9 +6679,8 @@ dependencies = [ [[package]] name = "specta-macros" -version = "2.0.0-rc.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ce14957ecc2897f1f848b8255b6531d13ddf49cbcf506b7c2c9fb1d005593bb" +version = "2.0.0-rc.26" +source = "git+https://github.com/specta-rs/specta.git?rev=2757fa8899926dce7da999780c7edf2dc08a732a#2757fa8899926dce7da999780c7edf2dc08a732a" dependencies = [ "Inflector", "proc-macro2", @@ -6840,9 +6690,8 @@ dependencies = [ [[package]] name = "specta-serde" -version = "0.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee8a72b755ddb8949fd8f17c5db43f0e8a806ea587d9bc602ee3f73240c00029" +version = "0.0.13" +source = "git+https://github.com/specta-rs/specta.git?rev=2757fa8899926dce7da999780c7edf2dc08a732a#2757fa8899926dce7da999780c7edf2dc08a732a" dependencies = [ "specta", "specta-macros", @@ -6850,18 +6699,16 @@ dependencies = [ [[package]] name = "specta-typescript" -version = "0.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "639404ee95557f2f8b7e4cb773ffefd45304c7ab8ba21ac83b69051595e083c0" +version = "0.0.13" +source = "git+https://github.com/specta-rs/specta.git?rev=2757fa8899926dce7da999780c7edf2dc08a732a#2757fa8899926dce7da999780c7edf2dc08a732a" dependencies = [ "specta", ] [[package]] name = "specta-util" -version = "0.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29b1fc02b446f7244a92924fe68c0555921209f1d342990cd1539e9138e69502" +version = "0.0.13" +source = "git+https://github.com/specta-rs/specta.git?rev=2757fa8899926dce7da999780c7edf2dc08a732a#2757fa8899926dce7da999780c7edf2dc08a732a" dependencies = [ "specta", ] @@ -7078,26 +6925,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" @@ -7179,16 +7013,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.12.1" +version = "3.0.0-alpha.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed99ee9694a2deb776d91cae48ac7411ddfc89ecae2f9b5041111d8c88f2ace9" +checksum = "c9019bd6bc4b2fffeaa0da48cc89f9e0ab87e1742680e2eb64b4c149ffaf5c7c" dependencies = [ "anyhow", "bytes", @@ -7226,24 +7063,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 0.39.1", "window-vibrancy", "windows 0.62.2", ] [[package]] name = "tauri-build" -version = "2.7.1" +version = "3.0.0-alpha.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59563ca5b331fd97f27ee9672ec8d36d33bb3c9e2c9f6710a1a5687256052e45" +checksum = "12576fcc7f228b5e33fd4d8415f5f3481e7a1b5f3b742dc1b7fc7f9ea16204e2" dependencies = [ "anyhow", "cargo_toml", @@ -7251,7 +7085,7 @@ dependencies = [ "glob", "heck 0.5.0", "json-patch", - "schemars 0.8.22", + "schemars 1.2.2", "semver 1.0.28", "serde", "serde_json", @@ -7262,9 +7096,9 @@ dependencies = [ [[package]] name = "tauri-codegen" -version = "2.7.1" +version = "3.0.0-alpha.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e50213e463086ecc283d7e9f51c30cc0fd304ad457425158018be26dbf0d0a80" +checksum = "d493291d452a724edb8c18ebaab8325b900a4ec512790a705e21eece86adea9c" dependencies = [ "base64 0.22.1", "brotli", @@ -7289,9 +7123,9 @@ dependencies = [ [[package]] name = "tauri-macros" -version = "2.7.1" +version = "3.0.0-alpha.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8129fb43bb6e0d6b73ad3315cd172beaab17cd28899c594b1b32c80edbbfd99c" +checksum = "a82d6fdbe86ba273a3b6d1079a3b3a4ea598b362823bdd51a2edd363ee404eb3" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -7303,14 +7137,14 @@ dependencies = [ [[package]] name = "tauri-plugin" -version = "2.7.1" +version = "3.0.0-alpha.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1140cf34a3b3b836a13103dcab17f18831d5cc3534cbd435dc01a5c6daa65aa2" +checksum = "df537cbdb5dbe81933d2447b0b709eb09ab735409d4d5408cf8bda88be58c234" dependencies = [ "anyhow", "glob", "plist", - "schemars 0.8.22", + "schemars 1.2.2", "serde", "serde_json", "tauri-utils", @@ -7319,9 +7153,9 @@ dependencies = [ [[package]] name = "tauri-plugin-autostart" -version = "2.7.0" +version = "3.0.0-alpha.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bce56ceb0a99b8ab5eebc977ba9ffc62391b862648cb9ab76fc8bc7231b8f7e2" +checksum = "de99635faca421cbe5a351211b294f28f82ccb58f9af5832697ee82dbf384211" dependencies = [ "auto-launch", "serde", @@ -7347,9 +7181,9 @@ dependencies = [ [[package]] name = "tauri-plugin-clipboard-manager" -version = "2.4.1" +version = "3.0.0-alpha.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "333d3b6beeb1c2c7fc040233d4ea7b6c03a9f8f039592b7400833c43fb5b568a" +checksum = "f49f7ff187bfff0f4dcbf28694aba032b64709d46b2505c0aad02838124c7947" dependencies = [ "arboard", "log", @@ -7362,9 +7196,9 @@ dependencies = [ [[package]] name = "tauri-plugin-deep-link" -version = "2.6.1" +version = "3.0.0-alpha.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ac7a92a46ab5c88f44532ca50906d6e448a948d4ddf8c5376ab125e3260f736" +checksum = "a440dd9591a0f6a0dc9ed41cefb3d011e99c272c8e5a6b46e8075b19d2933c35" dependencies = [ "dunce", "plist", @@ -7377,15 +7211,15 @@ dependencies = [ "thiserror 2.0.20", "tracing", "url", - "windows-registry", - "windows-result 0.4.1", + "windows-registry 0.5.3", + "windows-result 0.3.4", ] [[package]] name = "tauri-plugin-devtools" -version = "2.2.2" +version = "3.0.0-alpha.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1acb4d1b8490ee79166b72c3f8c989e066650a11aa94dfd0d71fb05c61cdbed0" +checksum = "f321e952160915a39f1502290dfa8083b0c1b4144c4b108c7c1202b39f04f1ab" dependencies = [ "async-stream", "bytes", @@ -7410,9 +7244,9 @@ dependencies = [ [[package]] name = "tauri-plugin-dialog" -version = "2.8.1" +version = "3.0.0-alpha.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daf9a5c92e39bdd84f22f6be9230e39d0c4e140345f71ffe6058dca4f71127cf" +checksum = "e2541dbdc61af9492a221d75d7853ad4e4ba998ed81e8b382e88ebce6e7975bb" dependencies = [ "log", "raw-window-handle", @@ -7428,9 +7262,9 @@ dependencies = [ [[package]] name = "tauri-plugin-fs" -version = "2.6.0" +version = "3.0.0-alpha.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "466eb32466fe5021b6728b06862f9ff14a9f7e1af890047654e03a96d7c0e1bb" +checksum = "0a0a22d1a3c95618070afa2e543b6d48d41c6390bed6b5b9df12ef78e34a07fc" dependencies = [ "anyhow", "dunce", @@ -7438,23 +7272,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.4.0" +version = "3.0.0-alpha.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bd2e1f725891a1613af8f25bf918ba3357654b0fd3f2d794c0ce76cbdd92ed2" +checksum = "c06c638fca0049baa0b866318a38c27ca8dff2e1772b016576fef1f7c48699e0" dependencies = [ "global-hotkey", "log", @@ -7467,9 +7299,9 @@ dependencies = [ [[package]] name = "tauri-plugin-http" -version = "2.8.0" +version = "3.0.0-alpha.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93e9d6b3319e101bc1be27cfa0fb4054d7784a12509c67ead0033b82180e5ed1" +checksum = "a36d2872d38ca15390604ef0ffcf35afd63e34246e58606a48350c30b162f71a" dependencies = [ "bytes", "cookie_store", @@ -7477,7 +7309,7 @@ dependencies = [ "http", "regex", "reqwest 0.12.28", - "schemars 0.8.22", + "schemars 1.2.2", "serde", "serde_json", "tauri", @@ -7492,7 +7324,7 @@ dependencies = [ [[package]] name = "tauri-plugin-mihomo" version = "0.6.0" -source = "git+https://github.com/clash-verge-rev/tauri-plugin-mihomo?branch=main#7a03d16f4d39b1bb885b7babe66b9e153e34b615" +source = "git+https://github.com/clash-verge-rev/tauri-plugin-mihomo?branch=feat%2Ftauri-v3#7e5d90afca7b9fde172f6e542f5f43078eacee31" dependencies = [ "arc-swap", "clashmap", @@ -7516,9 +7348,9 @@ dependencies = [ [[package]] name = "tauri-plugin-notification" -version = "2.5.1" +version = "3.0.0-alpha.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "533770889abb60a0407d5a32096182f0e6463f5a3dfaa675be94580aa14070e1" +checksum = "6b4e7437c1789a16b3f6a39d20c1982c2955613181476160542a36bf3dd97103" dependencies = [ "log", "notify-rust", @@ -7535,31 +7367,31 @@ dependencies = [ [[package]] name = "tauri-plugin-opener" -version = "2.7.0" +version = "3.0.0-alpha.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d39404b2572927e0d3ed30a7ca226037f7508d22e79c96ee6ef0d42b6a4b3345" +checksum = "b6f813f2919dbc15d076143c2c4da163da83bb8c415994107e235920a304f9cf" dependencies = [ "dunce", "glob", "objc2-app-kit", "objc2-foundation", "open", - "schemars 0.8.22", + "schemars 1.2.2", "serde", "serde_json", "tauri", "tauri-plugin", "thiserror 2.0.20", "url", - "windows 0.62.2", + "windows 0.61.3", "zbus", ] [[package]] name = "tauri-plugin-process" -version = "2.4.0" +version = "3.0.0-alpha.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74ae3d8549ae564c0397377373e262f340908eb23a5b9fbe03f2a00007dc0038" +checksum = "bc39b6e8140b7e34ef7ba14b14ba1fccb79533bc67cbc6a99a27f89b7ab74bf5" dependencies = [ "tauri", "tauri-plugin", @@ -7567,16 +7399,15 @@ dependencies = [ [[package]] name = "tauri-plugin-shell" -version = "2.4.0" +version = "3.0.0-alpha.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "094bdbc47e5efe36544ba21b3a53ab5c724150236cf55e6c9be46191deb6eab6" +checksum = "7b91c25f0954d844c2edec4cb5268eca66744be8c2ca3145a1417199a0d49e7c" dependencies = [ "encoding_rs", "log", - "open", "os_pipe", "regex", - "schemars 0.8.22", + "schemars 1.2.2", "serde", "serde_json", "shared_child", @@ -7588,16 +7419,16 @@ dependencies = [ [[package]] name = "tauri-plugin-updater" -version = "2.13.1" +version = "3.0.0-alpha.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cb0b2ea3e85ca287990d3859a29cc5cb18024240fd78f62e027fb7963670f18" +checksum = "d1b0546247a57bc47e5c77ca7770f28d6782df506a2bdaa4ae2e7a9df0f2773c" dependencies = [ "base64 0.22.1", - "dirs 7.0.0", + "dirs 6.0.0", "flate2", "futures-util", "http", - "infer", + "infer 0.19.0", "log", "minisign-verify 0.2.5", "osakit", @@ -7615,48 +7446,15 @@ dependencies = [ "time", "tokio", "url", - "windows-sys 0.61.2", + "windows-sys 0.60.2", "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 0.38.2", - "windows 0.61.3", - "windows-core 0.61.2", -] - [[package]] name = "tauri-plugin-window-state" -version = "2.5.0" +version = "3.0.0-alpha.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d6815cab7b212f9cfe16a9d79d8d22f9e14159e4a9460f7dec1467167a008e3" +checksum = "3b5d84fd244969b9f6c6a48de65cdcc4f9c82a055e00e7ff0c0e99ffb6a63d0a" dependencies = [ "bitflags 2.13.2", "log", @@ -7669,34 +7467,30 @@ dependencies = [ [[package]] name = "tauri-runtime" -version = "2.12.1" +version = "3.0.0-alpha.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2a57a2a9b8c8b7fc00d35b510fe808ded7f9f1b44fc1cdda6aee38632ea5413" +checksum = "68aaa98be20a7eda00060abc81370a9284efbf7e916b5b53cb35c57d6f7b62ee" 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 0.39.1", "windows 0.62.2", ] [[package]] name = "tauri-runtime-wry" -version = "2.12.1" +version = "3.0.0-alpha.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f9e7e0c9f80a5130773cfabb6df4dc924518fb1b2c923726966804634b57d22" +checksum = "1ceb2f9a27578251bea7d3d72f3eb7c9265f7ed0b15cf982dde50fddb53ae18a" dependencies = [ "gtk", "http", @@ -7704,17 +7498,18 @@ 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 0.39.1", + "webview2-com", "windows 0.62.2", "wry", ] @@ -7722,8 +7517,7 @@ dependencies = [ [[package]] name = "tauri-specta" version = "2.0.0-rc.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee080f36d2ac17ce2f3a82fb53f02d664e8345457de51b56dad3c394dacc41a2" +source = "git+https://github.com/tauri-apps/tauri-specta?branch=tauri-v3#6bcec0cdec0c92decf404c85ff01b4d8c3868599" dependencies = [ "heck 0.5.0", "serde", @@ -7740,8 +7534,7 @@ dependencies = [ [[package]] name = "tauri-specta-macros" version = "2.0.0-rc.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a59dfdce06c98d8d211619bea5fdb39486d8a8c558e12b2d2ce255972320012" +source = "git+https://github.com/tauri-apps/tauri-specta?branch=tauri-v3#6bcec0cdec0c92decf404c85ff01b4d8c3868599" dependencies = [ "darling", "heck 0.5.0", @@ -7752,9 +7545,9 @@ dependencies = [ [[package]] name = "tauri-utils" -version = "2.10.1" +version = "3.0.0-alpha.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ff55a614843b9a3f010f211df637c94df2607175b8d0f6e0f4a7c19e18621ee" +checksum = "3f20a966e52db8cc17bb88e1a69d574e0e0df112bca159ec259305b2742bcb8f" dependencies = [ "anyhow", "brotli", @@ -7764,7 +7557,7 @@ dependencies = [ "dunce", "glob", "http", - "infer", + "infer 0.22.0", "json-patch", "log", "memchr", @@ -7773,7 +7566,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "schemars 0.8.22", + "schemars 1.2.2", "semver 1.0.28", "serde", "serde-untagged", @@ -8474,8 +8267,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2b9c52859a94554803ccd4a24b98f74148ebc73b90676d783f3490b1bff9d72" dependencies = [ "crossbeam-channel", - "dirs 7.0.0", - "libappindicator", + "ksni", "muda", "objc2", "objc2-app-kit", @@ -9044,10 +8836,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", @@ -9066,15 +8858,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]] @@ -9095,20 +8887,6 @@ dependencies = [ "rustls-pki-types", ] -[[package]] -name = "webview2-com" -version = "0.38.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7130243a7a5b33c54a444e54842e6a9e133de08b5ad7b5861cd8ed9a6a5bc96a" -dependencies = [ - "webview2-com-macros", - "webview2-com-sys 0.38.2", - "windows 0.61.3", - "windows-core 0.61.2", - "windows-implement", - "windows-interface", -] - [[package]] name = "webview2-com" version = "0.39.1" @@ -9116,7 +8894,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f89fca7a704cee10dcb3654c1dbb8941d1783132f1917358af75bec37a7d7e6" dependencies = [ "webview2-com-macros", - "webview2-com-sys 0.39.1", + "webview2-com-sys", "windows 0.62.2", "windows-core 0.62.2", ] @@ -9132,17 +8910,6 @@ dependencies = [ "syn 2.0.119", ] -[[package]] -name = "webview2-com-sys" -version = "0.38.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "381336cfffd772377d291702245447a5251a2ffa5bad679c99e61bc48bacbf9c" -dependencies = [ - "thiserror 2.0.20", - "windows 0.61.3", - "windows-core 0.61.2", -] - [[package]] name = "webview2-com-sys" version = "0.39.1" @@ -9379,6 +9146,17 @@ dependencies = [ "windows-link 0.2.1", ] +[[package]] +name = "windows-registry" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" +dependencies = [ + "windows-link 0.1.3", + "windows-result 0.3.4", + "windows-strings 0.4.2", +] + [[package]] name = "windows-registry" version = "0.6.1" @@ -9788,6 +9566,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "winreg" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" +dependencies = [ + "winapi", +] + [[package]] name = "winreg" version = "0.55.0" @@ -9878,11 +9665,10 @@ dependencies = [ "soup3", "tao-macros", "thiserror 2.0.20", - "tracing", "url", "webkit2gtk", "webkit2gtk-sys", - "webview2-com 0.39.1", + "webview2-com", "windows 0.62.2", "windows-core 0.62.2", "windows-version", diff --git a/Cargo.toml b/Cargo.toml index 3dffbca78..5e136b6d6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -49,7 +49,15 @@ split-debuginfo = "unpacked" [patch.crates-io] # Backport Windows menu command ID recycling on the muda 0.20 compatibility branch. muda = { git = "https://github.com/wonfen/muda.git", rev = "547de49352791653fbdfa785f20f3c7ece8468e2" } - +# tauri-specta has no tauri 3 release yet; ride the tauri team's port and the +# unpublished specta rc.26 line it pins. Drop all six entries once both ship +# on crates.io. +tauri-specta = { git = "https://github.com/tauri-apps/tauri-specta", branch = "tauri-v3" } +specta = { git = "https://github.com/specta-rs/specta.git", rev = "2757fa8899926dce7da999780c7edf2dc08a732a" } +specta-macros = { git = "https://github.com/specta-rs/specta.git", rev = "2757fa8899926dce7da999780c7edf2dc08a732a" } +specta-serde = { git = "https://github.com/specta-rs/specta.git", rev = "2757fa8899926dce7da999780c7edf2dc08a732a" } +specta-typescript = { git = "https://github.com/specta-rs/specta.git", rev = "2757fa8899926dce7da999780c7edf2dc08a732a" } +specta-util = { git = "https://github.com/specta-rs/specta.git", rev = "2757fa8899926dce7da999780c7edf2dc08a732a" } [workspace.dependencies] clash-verge-draft = { path = "crates/clash-verge-draft" } clash-verge-media-unlock = { path = "crates/clash-verge-media-unlock" } @@ -61,8 +69,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.12.1" } -tauri-plugin-clipboard-manager = "2.4.1" +tauri = { version = "3.0.0-alpha.4" } +tauri-runtime-wry = "3.0.0-alpha.4" +tauri-plugin-clipboard-manager = "3.0.0-alpha.2" parking_lot = { version = "0.12.5", features = ["hardware-lock-elision"] } anyhow = "1.0.104" chrono = "0.4.45" diff --git a/crates/clash-verge-media-unlock/Cargo.toml b/crates/clash-verge-media-unlock/Cargo.toml index 2a1395b4e..3603b522d 100644 --- a/crates/clash-verge-media-unlock/Cargo.toml +++ b/crates/clash-verge-media-unlock/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2024" [dependencies] -specta = { version = "=2.0.0-rc.25", features = ["derive", "function"] } +specta = { version = "=2.0.0-rc.26", features = ["derive", "function"] } clash-verge-logging = { workspace = true } chrono = { workspace = true } log = { workspace = true } diff --git a/crates/tauri-plugin-clash-verge-sysinfo/Cargo.toml b/crates/tauri-plugin-clash-verge-sysinfo/Cargo.toml index aa5f1ba02..3c803d780 100644 --- a/crates/tauri-plugin-clash-verge-sysinfo/Cargo.toml +++ b/crates/tauri-plugin-clash-verge-sysinfo/Cargo.toml @@ -5,7 +5,7 @@ edition = "2024" rust-version = "1.91" [dependencies] -specta = { version = "=2.0.0-rc.25", features = ["derive", "function"] } +specta = { version = "=2.0.0-rc.26", features = ["derive", "function"] } tauri = { workspace = true } tauri-plugin-clipboard-manager = { workspace = true } parking_lot = { workspace = true } diff --git a/package.json b/package.json index 9ef745150..2f19d5657 100644 --- a/package.json +++ b/package.json @@ -54,13 +54,13 @@ "@mui/icons-material": "^9.4.0", "@mui/material": "^9.4.0", "@tanstack/react-virtual": "^3.14.13", - "@tauri-apps/api": "2.12.1", - "@tauri-apps/plugin-clipboard-manager": "2.4.0", - "@tauri-apps/plugin-dialog": "2.8.0", - "@tauri-apps/plugin-fs": "2.6.0", - "@tauri-apps/plugin-http": "2.8.0", - "@tauri-apps/plugin-opener": "2.7.0", - "@tauri-apps/plugin-updater": "2.13.1", + "@tauri-apps/api": "3.0.0-alpha.2", + "@tauri-apps/plugin-clipboard-manager": "^3.0.0-alpha.2", + "@tauri-apps/plugin-dialog": "^3.0.0-alpha.3", + "@tauri-apps/plugin-fs": "^3.0.0-alpha.2", + "@tauri-apps/plugin-http": "~3.0.0-alpha.2", + "@tauri-apps/plugin-opener": "3.0.0-alpha.2", + "@tauri-apps/plugin-updater": "3.0.0-alpha.2", "ahooks": "^3.10.0", "cidr-block": "^2.3.0", "compare-versions": "^6.1.1", @@ -95,7 +95,7 @@ "@biomejs/biome": "^2.5.14", "@eslint-react/eslint-plugin": "^5.20.5", "@eslint/js": "^10.0.1", - "@tauri-apps/cli": "2.12.1", + "@tauri-apps/cli": "3.0.0-alpha.4", "@types/lodash-es": "^4.17.12", "@types/node": "^24.13.6", "@types/react": "19.3.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ceac328bc..1d6276758 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -200,26 +200,26 @@ importers: specifier: ^3.14.13 version: 3.14.13(react-dom@19.3.0(react@19.3.0))(react@19.3.0) '@tauri-apps/api': - specifier: 2.12.1 - version: 2.12.1 + specifier: 3.0.0-alpha.2 + version: 3.0.0-alpha.2 '@tauri-apps/plugin-clipboard-manager': - specifier: 2.4.0 - version: 2.4.0 + specifier: ^3.0.0-alpha.2 + version: 3.0.0-alpha.2 '@tauri-apps/plugin-dialog': - specifier: 2.8.0 - version: 2.8.0 + specifier: ^3.0.0-alpha.3 + version: 3.0.0-alpha.3 '@tauri-apps/plugin-fs': - specifier: 2.6.0 - version: 2.6.0 + specifier: ^3.0.0-alpha.2 + version: 3.0.0-alpha.2 '@tauri-apps/plugin-http': - specifier: 2.8.0 - version: 2.8.0 + specifier: ~3.0.0-alpha.2 + version: 3.0.0-alpha.2 '@tauri-apps/plugin-opener': - specifier: 2.7.0 - version: 2.7.0 + specifier: 3.0.0-alpha.2 + version: 3.0.0-alpha.2 '@tauri-apps/plugin-updater': - specifier: 2.13.1 - version: 2.13.1 + specifier: 3.0.0-alpha.2 + version: 3.0.0-alpha.2 ahooks: specifier: ^3.10.0 version: 3.10.0(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.11.0(jiti@2.7.0)(supports-color@7.2.0)) '@tauri-apps/cli': - specifier: 2.12.1 - version: 2.12.1 + specifier: 3.0.0-alpha.4 + version: 3.0.0-alpha.4 '@types/lodash-es': specifier: ^4.17.12 version: 4.17.12 @@ -2129,99 +2129,102 @@ packages: '@tauri-apps/api@2.12.1': resolution: {integrity: sha512-DeyFHa3wynpyoqTDikDEDGTJIq4LQ5USfolQGRmGIWT6JMADyxZBTDa5cAdT3tDg73rUXufPaCwN7aXBos4OnQ==} - '@tauri-apps/cli-darwin-arm64@2.12.1': - resolution: {integrity: sha512-8bMnbpJ2jKO/ufrOPL65EMHC3ptw7fzeraoQkwibyfGLqIl+UCWsC0152kmNbW6r9NvVQduXqAZF5mH1QgTWhw==} + '@tauri-apps/api@3.0.0-alpha.2': + resolution: {integrity: sha512-W5MTTRAsbNqxSO5hf6U6gHwtTfW0ZnEyIWkmn9L6XYWFcSi0n1JtVQAIsJ6EZHLpJkchGEFwSeVBy+IcrtXl4g==} + + '@tauri-apps/cli-darwin-arm64@3.0.0-alpha.4': + resolution: {integrity: sha512-QSySr8o6f8nD/6e8BG9QYQTExlAhsiM2c6ewNti3kzcVzDh7WvM/Jya93mKhQrSjKumq7bUa/jlgmFB24P2oNA==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@tauri-apps/cli-darwin-x64@2.12.1': - resolution: {integrity: sha512-G+2qte8GNqNlEZ9ftd21rbu/APVkl3r/nzNDI7LVxEoqJWVNe9GbEgQUMH1r4PHT20Z2UxR3KjCkltIb0e/Wjg==} + '@tauri-apps/cli-darwin-x64@3.0.0-alpha.4': + resolution: {integrity: sha512-sx0fxH4CEWdWeB8THKzB4mF8P0ZXi1UXO/gVM4dzLjFpHcZbvMJ7B2cBeHNH3ED16aVKbbCGVYLDFVLh56x1Kg==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@tauri-apps/cli-linux-arm-gnueabihf@2.12.1': - resolution: {integrity: sha512-5b3n4DaTW+A1Zntnh4Yn44VyLrlPEpB8kMOBRfWkzNnzolBk+AYhKIfKjCLmoC8Mob3ETodxAEOMkE2YPKEWzQ==} + '@tauri-apps/cli-linux-arm-gnueabihf@3.0.0-alpha.4': + resolution: {integrity: sha512-eyABwsj3vJiyipJERTJCMYJfguXCxiL94Ux8SP9rwBao7cOEFgonhX2uG57/K4RekmZPFMekcfHp8JMXf88VCQ==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - '@tauri-apps/cli-linux-arm64-gnu@2.12.1': - resolution: {integrity: sha512-APArHhDu+8pXSCkCQmvaz1nD3d8WTmlCoSS/oG475TJ6AATBvyQOAmf5qELgsQ4s2+8MOsop0Zd699RKELF1Cw==} + '@tauri-apps/cli-linux-arm64-gnu@3.0.0-alpha.4': + resolution: {integrity: sha512-HmYCfjTlpn3mwMh5A2PeZud6QBZJbstTQDRCbs6ikd8t9GurSGTJINVbONrauNKUXYd37c8h5eEERRrkzqpK+w==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [glibc] - '@tauri-apps/cli-linux-arm64-musl@2.12.1': - resolution: {integrity: sha512-JaCxcLoV0oGtllVkLr4UAHWG/wTfkEunnUqnsEsGYOp0VRxnUwHg63wFBD0jU2ul5eFfSLIDS4RF2gfzsSo5Jg==} + '@tauri-apps/cli-linux-arm64-musl@3.0.0-alpha.4': + resolution: {integrity: sha512-BgD2YHYkOLKJ8qIpiwnYmq1xMKhxwGEOeX+HRjyrtIb4Eonf4/qGKfH7AoN88MUjpUfm+Zn3AZ82bQBAFDhV9Q==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [musl] - '@tauri-apps/cli-linux-riscv64-gnu@2.12.1': - resolution: {integrity: sha512-K5+VXM7+SGVDwZleA2+lMgvbTVuA5e1tkiVEawu1Yxj26ZyEfO8h8xTC1rBdRX2xgJDSwCk6vPUBCS6i+Z5slQ==} + '@tauri-apps/cli-linux-riscv64-gnu@3.0.0-alpha.4': + resolution: {integrity: sha512-AHl6DFQEtNDaI2YuIqNeSm7G3RWlHSz2R23+j1woFMXZjR48Dd7xSxthWybnxgy09Qw//8OeE5LX0u9oaC07ew==} engines: {node: '>= 10'} cpu: [riscv64] os: [linux] libc: [glibc] - '@tauri-apps/cli-linux-x64-gnu@2.12.1': - resolution: {integrity: sha512-Z1QGPr49HJZMktu+Spu6Q1b/f9ANadXvqZZZt2645ua1x1ev6prOgp85eiGv2jRzohFEMLo6aJyaLjLUX5KIvA==} + '@tauri-apps/cli-linux-x64-gnu@3.0.0-alpha.4': + resolution: {integrity: sha512-sfLIf/Dr3fio2gGAIXvjDdhESeQDyVKTTuhXfKV361gcTcx+/OkkctVw1FBKgdtRqDP0JVQI9y8sXdhuL0F61A==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [glibc] - '@tauri-apps/cli-linux-x64-musl@2.12.1': - resolution: {integrity: sha512-nHuEhRPOMSJ/8RRhtMRxB9B9lVr7xxpe4DapBz8x1GIau3vdzjHHJ1hAfmw+PyayPLZ6XoaVIHPgI17rX6ii8w==} + '@tauri-apps/cli-linux-x64-musl@3.0.0-alpha.4': + resolution: {integrity: sha512-3aY8+4mvts+dia8VXfGhJYxhhU57fdcbL7IxKLrTt4ASrsXwCDspVf+yVfa0GKpsUWPIxsGA7dYt9oaviv8gkg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [musl] - '@tauri-apps/cli-win32-arm64-msvc@2.12.1': - resolution: {integrity: sha512-I0oPk2uGh86R8dAs2X5OxSP+/GqSc8jh1Px3l8EqrocSNivsRHDTh2k3PVOqdv163dlV6PIVvmhZAbH/lPfZrA==} + '@tauri-apps/cli-win32-arm64-msvc@3.0.0-alpha.4': + resolution: {integrity: sha512-m3hVaoWavJBGHrKPGjhyCVW+IIbXMTP2CvqqG7Ak6yoVJLEYYTwkwfEq/dMHpX9Spw9iQE5pONK1vTatcJ/jPQ==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@tauri-apps/cli-win32-ia32-msvc@2.12.1': - resolution: {integrity: sha512-baNZRBfepAJ5qNFRMwzgBk94xQmkcmTZrNDjZjnzrq2vAaTC3NAhallb/zo3hyoCGQlMS13sdovktrg46NZz6Q==} + '@tauri-apps/cli-win32-ia32-msvc@3.0.0-alpha.4': + resolution: {integrity: sha512-v8J3IgwgFsOiuDPLCScYGAQjQZKj+46o1mMRVcx4gYo1JV9P6o/hblJX5nMT/oTTGdsAgao5PZNxUlX8WJGMFA==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] - '@tauri-apps/cli-win32-x64-msvc@2.12.1': - resolution: {integrity: sha512-dIFaKslrzcbesb+bBh+E1R9km241pHyj32w6D9FPtvQeYpRUFbiCLEa/2S+S0UnIytfxepp4P+X8IerGqnXeYg==} + '@tauri-apps/cli-win32-x64-msvc@3.0.0-alpha.4': + resolution: {integrity: sha512-BfEHaKBdNImxb9KOVji9hROEVnPWl2ImshQmV9ASC61jraX2/xCJ+YNdaAi7yA18qAyQVb/CszsfhFWJHT+YbA==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@tauri-apps/cli@2.12.1': - resolution: {integrity: sha512-kEDEiGzG+yAc5FeLxtXpES/VN+F2C8H0r4gDVtfRLKxT9np9101d9REG/Kgo2lr0hKi0IpDsODiHnU3+naOmLg==} + '@tauri-apps/cli@3.0.0-alpha.4': + resolution: {integrity: sha512-hu2CcWxH6yeo5CfLkEYvDOHW5aKdh0gY5DobR5UK+psBInfsc/qKetD0HA+Z41WvVQZsHJXk2uvPMUZP2ckAJg==} engines: {node: '>= 10'} hasBin: true - '@tauri-apps/plugin-clipboard-manager@2.4.0': - resolution: {integrity: sha512-yAuTffXc/sm+4oYnrwxbUkaJXQMTesPJ9dim0ADcA31rpboyhAN2TGQqs9VCcPIpb60LFOeePkvhpP2I3xhejg==} + '@tauri-apps/plugin-clipboard-manager@3.0.0-alpha.2': + resolution: {integrity: sha512-87oq7PUtHZk0PZgvIp5KWsXWOIJtUz3qEiL+PFvV/dC4T4EByi+dx4/hZ+/BMiX7lchknPmA6WTmmx+530Xjgw==} - '@tauri-apps/plugin-dialog@2.8.0': - resolution: {integrity: sha512-HSSD5C8UFE9ijD1wue84F7jjaIReFmj8AAPtS+xyjYRltJafIc4BiWHY7SJ6vbbew6u+YljEJHfyNfy5VwywXg==} + '@tauri-apps/plugin-dialog@3.0.0-alpha.3': + resolution: {integrity: sha512-LjP/CwCaQ/uVhIjFbMG1JM9MY9+gvNchoRsQoOQpm1+y8dWKCb4/VFFXv+RuH6XbR11eIU6G+yL34hggc7iw2Q==} - '@tauri-apps/plugin-fs@2.6.0': - resolution: {integrity: sha512-MhBAZ4rryd+h9fijd/GWDfArqiAeGI0ZNduV4wuRyUVI6wDZ+oDBY7atqtoXKDwlTUVSvpvmWJAY0ehQd/v6Uw==} + '@tauri-apps/plugin-fs@3.0.0-alpha.2': + resolution: {integrity: sha512-w/pmQ5swWqEgQhWMabreK5eMIiAHXHFKdb/SWGrZF4tTpVky/dUAyScFl7XiFRKpfr5cHSDiZAP/dsg0Ud9p9w==} - '@tauri-apps/plugin-http@2.8.0': - resolution: {integrity: sha512-cPvZvfUSaBkqGxef/dgbh/iEl6T3jQfSJyypi9OdcWr1VcuTt4ZRlk9DLAHEHF2q2NML+0UOkjyXRPNo6Cky6g==} + '@tauri-apps/plugin-http@3.0.0-alpha.2': + resolution: {integrity: sha512-imgCIw601u03ahDFu+ifiOKMAU6zab0taYp6h6Z7O9TcsU1SRqgXxbVcO84iLQ4bjELiFdAtUp0xqiNx+r8fvg==} - '@tauri-apps/plugin-opener@2.7.0': - resolution: {integrity: sha512-mBorYfVKh9Lt7s4ZFtKbMUTxBw+Y/sVmSlKCtkkoBgMTC/DIbt/kaPm67L/2djAUqDI1wbixy5OHHVmipjuGMw==} + '@tauri-apps/plugin-opener@3.0.0-alpha.2': + resolution: {integrity: sha512-T3Y7Y/m+XybZqB2cI6SZD8St47GBONPTbFp+hSYFLHy5Lh0eNh0sv9TRyi7MElzUtUx0NWZltAOHuHzeo2UfWA==} - '@tauri-apps/plugin-updater@2.13.1': - resolution: {integrity: sha512-+STDzJ0sdQLImjc63zkv6Nncimqeo6jyCWoTQtbSwgGLNj1qbP9I6LC4p5R5ocBk3gNKAZs6i/AJz0jxysytiw==} + '@tauri-apps/plugin-updater@3.0.0-alpha.2': + resolution: {integrity: sha512-WHRIi50gV9M2JDx9VZLxlpcuA3gvd7eABaqfNQEQTdKUSuIWyS/gQcbH5LpiuSWSkCTMMInUUBmost2LdZnnkA==} '@tybys/wasm-util@0.10.4': resolution: {integrity: sha512-W3c4gRigFS0T/Ma4qIYF3GDAc5AQdHb1yL5znJT1Zv1YaD9Kitx656wBjvr19qbiosmZT8lWDM5BEMynUqX65A==} @@ -6907,76 +6910,78 @@ snapshots: '@tauri-apps/api@2.12.1': {} - '@tauri-apps/cli-darwin-arm64@2.12.1': + '@tauri-apps/api@3.0.0-alpha.2': {} + + '@tauri-apps/cli-darwin-arm64@3.0.0-alpha.4': optional: true - '@tauri-apps/cli-darwin-x64@2.12.1': + '@tauri-apps/cli-darwin-x64@3.0.0-alpha.4': optional: true - '@tauri-apps/cli-linux-arm-gnueabihf@2.12.1': + '@tauri-apps/cli-linux-arm-gnueabihf@3.0.0-alpha.4': optional: true - '@tauri-apps/cli-linux-arm64-gnu@2.12.1': + '@tauri-apps/cli-linux-arm64-gnu@3.0.0-alpha.4': optional: true - '@tauri-apps/cli-linux-arm64-musl@2.12.1': + '@tauri-apps/cli-linux-arm64-musl@3.0.0-alpha.4': optional: true - '@tauri-apps/cli-linux-riscv64-gnu@2.12.1': + '@tauri-apps/cli-linux-riscv64-gnu@3.0.0-alpha.4': optional: true - '@tauri-apps/cli-linux-x64-gnu@2.12.1': + '@tauri-apps/cli-linux-x64-gnu@3.0.0-alpha.4': optional: true - '@tauri-apps/cli-linux-x64-musl@2.12.1': + '@tauri-apps/cli-linux-x64-musl@3.0.0-alpha.4': optional: true - '@tauri-apps/cli-win32-arm64-msvc@2.12.1': + '@tauri-apps/cli-win32-arm64-msvc@3.0.0-alpha.4': optional: true - '@tauri-apps/cli-win32-ia32-msvc@2.12.1': + '@tauri-apps/cli-win32-ia32-msvc@3.0.0-alpha.4': optional: true - '@tauri-apps/cli-win32-x64-msvc@2.12.1': + '@tauri-apps/cli-win32-x64-msvc@3.0.0-alpha.4': optional: true - '@tauri-apps/cli@2.12.1': + '@tauri-apps/cli@3.0.0-alpha.4': optionalDependencies: - '@tauri-apps/cli-darwin-arm64': 2.12.1 - '@tauri-apps/cli-darwin-x64': 2.12.1 - '@tauri-apps/cli-linux-arm-gnueabihf': 2.12.1 - '@tauri-apps/cli-linux-arm64-gnu': 2.12.1 - '@tauri-apps/cli-linux-arm64-musl': 2.12.1 - '@tauri-apps/cli-linux-riscv64-gnu': 2.12.1 - '@tauri-apps/cli-linux-x64-gnu': 2.12.1 - '@tauri-apps/cli-linux-x64-musl': 2.12.1 - '@tauri-apps/cli-win32-arm64-msvc': 2.12.1 - '@tauri-apps/cli-win32-ia32-msvc': 2.12.1 - '@tauri-apps/cli-win32-x64-msvc': 2.12.1 + '@tauri-apps/cli-darwin-arm64': 3.0.0-alpha.4 + '@tauri-apps/cli-darwin-x64': 3.0.0-alpha.4 + '@tauri-apps/cli-linux-arm-gnueabihf': 3.0.0-alpha.4 + '@tauri-apps/cli-linux-arm64-gnu': 3.0.0-alpha.4 + '@tauri-apps/cli-linux-arm64-musl': 3.0.0-alpha.4 + '@tauri-apps/cli-linux-riscv64-gnu': 3.0.0-alpha.4 + '@tauri-apps/cli-linux-x64-gnu': 3.0.0-alpha.4 + '@tauri-apps/cli-linux-x64-musl': 3.0.0-alpha.4 + '@tauri-apps/cli-win32-arm64-msvc': 3.0.0-alpha.4 + '@tauri-apps/cli-win32-ia32-msvc': 3.0.0-alpha.4 + '@tauri-apps/cli-win32-x64-msvc': 3.0.0-alpha.4 - '@tauri-apps/plugin-clipboard-manager@2.4.0': + '@tauri-apps/plugin-clipboard-manager@3.0.0-alpha.2': dependencies: - '@tauri-apps/api': 2.12.1 + '@tauri-apps/api': 3.0.0-alpha.2 - '@tauri-apps/plugin-dialog@2.8.0': + '@tauri-apps/plugin-dialog@3.0.0-alpha.3': dependencies: - '@tauri-apps/api': 2.12.1 + '@tauri-apps/api': 3.0.0-alpha.2 - '@tauri-apps/plugin-fs@2.6.0': + '@tauri-apps/plugin-fs@3.0.0-alpha.2': dependencies: - '@tauri-apps/api': 2.12.1 + '@tauri-apps/api': 3.0.0-alpha.2 - '@tauri-apps/plugin-http@2.8.0': + '@tauri-apps/plugin-http@3.0.0-alpha.2': dependencies: - '@tauri-apps/api': 2.12.1 + '@tauri-apps/api': 3.0.0-alpha.2 - '@tauri-apps/plugin-opener@2.7.0': + '@tauri-apps/plugin-opener@3.0.0-alpha.2': dependencies: - '@tauri-apps/api': 2.12.1 + '@tauri-apps/api': 3.0.0-alpha.2 - '@tauri-apps/plugin-updater@2.13.1': + '@tauri-apps/plugin-updater@3.0.0-alpha.2': dependencies: - '@tauri-apps/api': 2.12.1 + '@tauri-apps/api': 3.0.0-alpha.2 '@tybys/wasm-util@0.10.4': dependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index a37885e56..c853f757f 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.4' + - '@tauri-apps/cli-darwin-x64@3.0.0-alpha.4' + - '@tauri-apps/cli-linux-arm-gnueabihf@3.0.0-alpha.4' + - '@tauri-apps/cli-linux-arm64-gnu@3.0.0-alpha.4' + - '@tauri-apps/cli-linux-arm64-musl@3.0.0-alpha.4' + - '@tauri-apps/cli-linux-riscv64-gnu@3.0.0-alpha.4' + - '@tauri-apps/cli-linux-x64-gnu@3.0.0-alpha.4' + - '@tauri-apps/cli-linux-x64-musl@3.0.0-alpha.4' + - '@tauri-apps/cli-win32-arm64-msvc@3.0.0-alpha.4' + - '@tauri-apps/cli-win32-ia32-msvc@3.0.0-alpha.4' + - '@tauri-apps/cli-win32-x64-msvc@3.0.0-alpha.4' + - '@tauri-apps/cli@3.0.0-alpha.4' diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 6a1bc7942..54ba687c3 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.7.1", features = [] } +tauri-build = { version = "3.0.0-alpha.3", 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 } @@ -73,13 +75,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.4.0" -tauri-plugin-opener = "2.7.0" -tauri-plugin-dialog = "2.8.1" -tauri-plugin-fs = "2.6.0" -tauri-plugin-process = "2.4.0" -tauri-plugin-deep-link = "2.6.1" -tauri-plugin-window-state = "2.5.0" +tauri-plugin-shell = "3.0.0-alpha.2" +tauri-plugin-opener = "3.0.0-alpha.2" +tauri-plugin-dialog = "3.0.0-alpha.3" +tauri-plugin-fs = "3.0.0-alpha.2" +tauri-plugin-process = "3.0.0-alpha.2" +tauri-plugin-deep-link = "3.0.0-alpha.2" +tauri-plugin-window-state = "3.0.0-alpha.2" zip = "9.0.1" 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.5.1" +tauri-plugin-notification = "3.0.0-alpha.2" tokio-stream = "0.1.19" backon = { version = "1.6.0", features = ["tokio-sleep"] } -tauri-plugin-http = "2.8.0" +tauri-plugin-http = "3.0.0-alpha.2" tracing = { workspace = true } -tauri-plugin-devtools = { version = "2.2.2", 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.6", version = "2.7.6", features = [ "client", @@ -109,15 +111,14 @@ webpki-roots = "1.0.9" dark-light = "3.0.0" bytes = "1.12.1" tokio-util = { version = "0.7.19", features = ["time"] } -specta = { version = "=2.0.0-rc.25", features = ["derive", "function", "serde_json"] } +specta = { version = "=2.0.0-rc.26", features = ["derive", "function", "serde_json"] } tauri-specta = { version = "=2.0.0-rc.25", features = ["derive", "typescript"] } -specta-typescript = "=0.0.12" +specta-typescript = "=0.0.13" [target.'cfg(unix)'.dependencies] libc = "0.2.190" [target.'cfg(target_os = "macos")'.dependencies] -tauri-plugin-wdio-webdriver = { version = "=1.4.0", optional = true } objc2 = "0.6.5" objc2-foundation = { version = "0.3.2", features = [ "NSString", @@ -149,9 +150,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.7.0" -tauri-plugin-global-shortcut = "2.4.0" -tauri-plugin-updater = "2.13.1" +tauri-plugin-autostart = "3.0.0-alpha.2" +tauri-plugin-global-shortcut = "3.0.0-alpha.2" +tauri-plugin-updater = "3.0.0-alpha.2" [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/autostart.rs b/src-tauri/src/core/autostart.rs index 7b01a9fbf..b8bb55054 100644 --- a/src-tauri/src/core/autostart.rs +++ b/src-tauri/src/core/autostart.rs @@ -24,7 +24,7 @@ pub async fn update_launch() -> Result<()> { #[cfg(not(target_os = "windows"))] { let app_handle = Handle::app_handle(); - let autostart_manager = app_handle.autolaunch(); + let autostart_manager = app_handle.autostart(); if is_enable { logging_error!(Type::System, "{:?}", autostart_manager.enable()); } else { diff --git a/src-tauri/src/core/tray/mod.rs b/src-tauri/src/core/tray/mod.rs index 221f23aa1..ec7194806 100644 --- a/src-tauri/src/core/tray/mod.rs +++ b/src-tauri/src/core/tray/mod.rs @@ -23,8 +23,9 @@ use smartstring::alias::String; use std::borrow::Cow; use std::collections::HashMap; use std::time::Duration; +use tauri::Manager as _; use tauri::{ - AppHandle, Wry, + AppHandle, DynRuntime, menu::{CheckMenuItem, IsMenuItem, MenuEvent, MenuItem, PredefinedMenuItem, Submenu}, }; @@ -36,7 +37,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"; @@ -57,14 +58,14 @@ enum IconKind { } struct LatencyMenuItem { - item: MenuItem, + item: MenuItem, running: bool, proxies: Vec, provider_state: ProxyViewProviderState, } struct ProxyLatencyItem { - item: CheckMenuItem, + item: CheckMenuItem, name: std::string::String, provider_name: Option, text: std::string::String, @@ -566,7 +567,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| { @@ -677,7 +678,7 @@ fn create_subcreate_proxy_menu_item( texts: &MenuTexts, verge: &IVerge, profiles: &crate::config::IProfiles, -) -> Vec> { +) -> Vec> { let Some(view) = view else { return Vec::new() }; view.groups .iter() @@ -739,8 +740,8 @@ fn create_subcreate_proxy_menu_item( }, ); let separator = PredefinedMenuItem::separator(app_handle).ok()?; - let mut items: Vec<&dyn IsMenuItem> = vec![&test_item, &separator]; - items.extend(group_items.iter().map(|item| item as &dyn IsMenuItem)); + let mut items: Vec<&dyn IsMenuItem> = vec![&test_item, &separator]; + items.extend(group_items.iter().map(|item| item as &dyn IsMenuItem)); Submenu::with_id_and_items( app_handle, format!("proxy_group_{}", group.name), @@ -757,7 +758,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 { @@ -765,13 +766,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(); ( @@ -798,7 +799,10 @@ async fn create_tray_menu( tun_mode_available: bool, profiles_preview: Vec>, options: TrayMenuOptions, -) -> Result<(tauri::menu::Menu, HashMap)> { +) -> Result<( + tauri::menu::Menu, + HashMap, +)> { let current_proxy_mode = mode.unwrap_or(""); let mut verge_settings = Config::verge().await.latest_arc(); @@ -836,12 +840,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( @@ -894,9 +898,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, ], )?) }; @@ -1009,7 +1013,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, @@ -1026,13 +1030,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); @@ -1052,14 +1056,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/core/tray/speed_task.rs b/src-tauri/src/core/tray/speed_task.rs index 4c66677de..cb0605515 100644 --- a/src-tauri/src/core/tray/speed_task.rs +++ b/src-tauri/src/core/tray/speed_task.rs @@ -132,7 +132,7 @@ impl TraySpeedController { let app_handle = handle::Handle::app_handle(); if let Some(tray) = app_handle.tray_by_id(super::TRAY_ID) { - let result = tray.with_inner_tray_icon(|inner| { + let result = tray.with_inner_blocking(|inner| { if let Some(status_item) = inner.ns_status_item() { tray_speed::clear_speed_attributed_title(&status_item); } @@ -167,7 +167,7 @@ impl TraySpeedController { fn apply_tray_speed(up: u64, down: u64) { let app_handle = handle::Handle::app_handle(); if let Some(tray) = app_handle.tray_by_id(super::TRAY_ID) { - let result = tray.with_inner_tray_icon(move |inner| { + let result = tray.with_inner_blocking(move |inner| { if let Some(status_item) = inner.ns_status_item() { tray_speed::set_speed_attributed_title(&status_item, up, down); } diff --git a/src-tauri/src/ipc.rs b/src-tauri/src/ipc.rs index 334ef1ccb..8d92b5bac 100644 --- a/src-tauri/src/ipc.rs +++ b/src-tauri/src/ipc.rs @@ -1,12 +1,12 @@ use crate::cmd; -pub fn builder() -> tauri_specta::Builder { +pub fn builder() -> tauri_specta::Builder { tauri_specta::Builder::new() .types(&platform_types()) .commands(tauri_specta::collect_commands![ tauri_plugin_clash_verge_sysinfo::commands::get_system_info, tauri_plugin_clash_verge_sysinfo::commands::get_app_uptime, - tauri_plugin_clash_verge_sysinfo::commands::export_diagnostic_info::, + tauri_plugin_clash_verge_sysinfo::commands::export_diagnostic_info::, cmd::probe_listener, cmd::save_proxy_ports, cmd::get_sys_proxy, diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index f2d61f427..049536ed7 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -40,7 +40,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()) @@ -124,7 +124,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 { { let builder = crate::ipc::builder(); move |invoke| builder.invoke_handler()(invoke) @@ -181,7 +181,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 0c386a897..9701c7165 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 std::pin::Pin; use std::sync::LazyLock; 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) } diff --git a/src/components/home/system-info-card.tsx b/src/components/home/system-info-card.tsx index d71aa039a..49579bba0 100644 --- a/src/components/home/system-info-card.tsx +++ b/src/components/home/system-info-card.tsx @@ -101,7 +101,7 @@ export const SystemInfoCard = () => { try { const result = await triggerCheckUpdate() const info = result.data - if (!info?.available) { + if (!info) { showNotice.success( 'settings.components.verge.advanced.notifications.latestVersion', ) diff --git a/src/components/layout/update-button.tsx b/src/components/layout/update-button.tsx index 67e4c1100..528ddf17c 100644 --- a/src/components/layout/update-button.tsx +++ b/src/components/layout/update-button.tsx @@ -16,7 +16,7 @@ export const UpdateButton = (props: Props) => { const { updateInfo } = useUpdate() - if (!updateInfo?.available) return null + if (!updateInfo) return null return ( <> diff --git a/src/components/setting/setting-verge-advanced.tsx b/src/components/setting/setting-verge-advanced.tsx index 8a2e51800..42b3ab276 100644 --- a/src/components/setting/setting-verge-advanced.tsx +++ b/src/components/setting/setting-verge-advanced.tsx @@ -48,7 +48,7 @@ const SettingVergeAdvanced = ({ onError: _ }: Props) => { try { const info = await checkUpdate() updateLastCheckTime() - if (!info?.available) { + if (!info) { showNotice.success( 'settings.components.verge.advanced.notifications.latestVersion', ) diff --git a/src/components/test/test-viewer.tsx b/src/components/test/test-viewer.tsx index 07f7d742d..643c94081 100644 --- a/src/components/test/test-viewer.tsx +++ b/src/components/test/test-viewer.tsx @@ -7,8 +7,10 @@ import { useTranslation } from 'react-i18next' import { BaseDialog } from '@/components/base' import { useVerge } from '@/hooks/use-verge' +import type { IVergeTestItem_Serialize } from '@/services/bindings' import { showNotice } from '@/services/notice-service' + interface Props { onChange: (uid: string, patch?: Partial) => void } @@ -77,7 +79,12 @@ export const TestViewer = forwardRef( if (openType === 'new') { const uid = nanoid() - const item = { ...form, uid } + const item: IVergeTestItem_Serialize = { + uid, + name: form.name ?? null, + icon: form.icon ?? null, + url: form.url ?? null, + } const newList = [...testList, item] await patchVerge({ test_list: newList }) onChange(uid) diff --git a/src/services/bindings.ts b/src/services/bindings.ts index 73e886a69..1f3f4b37a 100644 --- a/src/services/bindings.ts +++ b/src/services/bindings.ts @@ -53,16 +53,11 @@ export const commands = { /** Reads the saved mode without depending on strict mihomo `/configs` deserialization. */ getClashMode: () => __TAURI_INVOKE('get_clash_mode'), changeClashCore: (clashCore: string) => - __TAURI_INVOKE<{ - /** Stable frontend identifier, when classified. */ - code?: string | null - /** Human-readable diagnostic detail. */ - detail: string - /** Requested operation when known by the command. */ - operation?: FailedOperation | null - } | null>('change_clash_core', { clashCore }), + __TAURI_INVOKE('change_clash_core', { + clashCore, + }), getRuntimeConfig: () => - __TAURI_INVOKE<{ [key in string]: JsonValue } | null>('get_runtime_config'), + __TAURI_INVOKE('get_runtime_config'), getProxyView: () => __TAURI_INVOKE('get_proxy_view'), getRuntimeYaml: () => __TAURI_INVOKE('get_runtime_yaml'), getRuntimeLogs: () => __TAURI_INVOKE('get_runtime_logs'), @@ -70,7 +65,7 @@ export const commands = { __TAURI_INVOKE('get_runtime_proxy_chain_config', { proxyChainExitNode, }), - updateProxyChainConfigInRuntime: (proxyChainConfig: JsonValue | null) => + updateProxyChainConfigInRuntime: (proxyChainConfig: YamlValue | null) => __TAURI_INVOKE('update_proxy_chain_config_in_runtime', { proxyChainConfig, }), @@ -100,18 +95,11 @@ export const commands = { takeDnsOverrideNotice: () => __TAURI_INVOKE('take_dns_override_notice'), takeServiceFallbackNotice: () => - __TAURI_INVOKE< - | { kind: 'unavailable' } - | { kind: 'coreRejected'; reason: string } - | { kind: 'notAutoStarted' } - | null - >('take_service_fallback_notice'), + __TAURI_INVOKE( + 'take_service_fallback_notice', + ), getCoreStartupError: () => - __TAURI_INVOKE< - | { kind: 'startFailed'; detail: string } - | { kind: 'serviceCoreStopped'; detail: string } - | null - >('get_core_startup_error'), + __TAURI_INVOKE('get_core_startup_error'), takeServiceRepairNotice: () => __TAURI_INVOKE('take_service_repair_notice'), takeServiceOwnerNotice: () => @@ -140,7 +128,7 @@ export const commands = { __TAURI_INVOKE('get_network_interfaces_info'), getProfiles: () => __TAURI_INVOKE('get_profiles'), enhanceProfiles: () => __TAURI_INVOKE('enhance_profiles'), - patchProfilesConfig: (profiles: ProfileSelection) => + patchProfilesConfig: (profiles: ProfileSelection_Deserialize) => __TAURI_INVOKE('patch_profiles_config', { profiles }), viewProfile: (index: string) => __TAURI_INVOKE('view_profile', { index }), @@ -148,52 +136,12 @@ export const commands = { __TAURI_INVOKE('patch_profile', { index, profile }), createProfile: (item: ProfileCreate_Deserialize, fileData: string | null) => __TAURI_INVOKE('create_profile', { item, fileData }), - importProfile: ( - url: string, - option: { - user_agent?: string | null - with_proxy?: boolean | null - self_proxy?: boolean | null - update_interval?: number | null - /** - * HTTP request timeout in seconds - * default is 60 seconds - */ - timeout_seconds?: number | null - /** default is `false` */ - danger_accept_invalid_certs?: boolean | null - allow_auto_update?: boolean | null - merge?: string | null - script?: string | null - rules?: string | null - proxies?: string | null - groups?: string | null - } | null, - ) => __TAURI_INVOKE('import_profile', { url, option }), + importProfile: (url: string, option: PrfOption_Deserialize | null) => + __TAURI_INVOKE('import_profile', { url, option }), reorderProfile: (activeId: string, overId: string) => __TAURI_INVOKE('reorder_profile', { activeId, overId }), - updateProfile: ( - index: string, - option: { - user_agent?: string | null - with_proxy?: boolean | null - self_proxy?: boolean | null - update_interval?: number | null - /** - * HTTP request timeout in seconds - * default is 60 seconds - */ - timeout_seconds?: number | null - /** default is `false` */ - danger_accept_invalid_certs?: boolean | null - allow_auto_update?: boolean | null - merge?: string | null - script?: string | null - rules?: string | null - proxies?: string | null - groups?: string | null - } | null, - ) => __TAURI_INVOKE('update_profile', { index, option }), + updateProfile: (index: string, option: PrfOption_Deserialize | null) => + __TAURI_INVOKE('update_profile', { index, option }), deleteProfile: (index: string) => __TAURI_INVOKE('delete_profile', { index }), readProfileFile: (index: string) => @@ -263,11 +211,11 @@ export type CommandFailure_Deserialize = { /** Structured command failure returned to the frontend. */ export type CommandFailure_Serialize = { /** Stable frontend identifier, when classified. */ - code?: string | null + code?: string /** Human-readable diagnostic detail. */ detail: string /** Requested operation when known by the command. */ - operation?: FailedOperation | null + operation?: FailedOperation } /** Why the Core is not running, kept until a Core starts again. */ @@ -330,14 +278,27 @@ export type IProfiles_Serialize = { /** ### `verge.yaml` schema */ export type IVerge = IVerge_Serialize | IVerge_Deserialize -export type IVergeTestItem = { +export type IVergeTestItem = + | IVergeTestItem_Serialize + | IVergeTestItem_Deserialize + +export type IVergeTestItem_Deserialize = { uid?: string | null name?: string | null icon?: string | null url?: string | null } -export type IVergeTheme = { +export type IVergeTestItem_Serialize = { + uid: string | null + name: string | null + icon: string | null + url: string | null +} + +export type IVergeTheme = IVergeTheme_Serialize | IVergeTheme_Deserialize + +export type IVergeTheme_Deserialize = { primary_color?: string | null secondary_color?: string | null primary_text?: string | null @@ -350,6 +311,19 @@ export type IVergeTheme = { css_injection?: string | null } +export type IVergeTheme_Serialize = { + primary_color: string | null + secondary_color: string | null + primary_text: string | null + secondary_text: string | null + info_color: string | null + error_color: string | null + warning_color: string | null + success_color: string | null + font_family: string | null + css_injection: string | null +} + /** ### `verge.yaml` schema */ export type IVerge_Deserialize = { /** silent | error | warn | info | debug | trace */ @@ -392,7 +366,7 @@ export type IVerge_Deserialize = { proxy_auto_config?: boolean | null pac_file_content?: string | null proxy_host?: string | null - theme_setting?: IVergeTheme | null + theme_setting?: IVergeTheme_Deserialize | null web_ui_list?: string[] | null clash_core?: string | null /** format: {func},{key} */ @@ -408,7 +382,7 @@ export type IVerge_Deserialize = { auto_delay_detection_interval_minutes?: number | null enable_builtin_enhanced?: boolean | null proxy_layout_column?: number | null - test_list?: IVergeTestItem[] | null + test_list?: IVergeTestItem_Deserialize[] | null /** 0: 不清理; 1: 1天;2: 7天; 3: 30天; 4: 90天 */ auto_log_clean?: number | null enable_auto_backup_schedule?: boolean | null @@ -457,13 +431,13 @@ export type IVerge_Serialize = { traffic_graph: boolean | null /** show memory info (only for Clash Meta) */ enable_memory_usage: boolean | null - enable_group_icon?: boolean | null + enable_group_icon?: boolean pause_render_traffic_stats_on_blur: boolean | null - common_tray_icon?: boolean | null - menu_icon?: string | null - menu_order?: string[] | null - proxy_group_tools_position?: string | null - notice_position?: string | null + common_tray_icon?: boolean + menu_icon?: string + menu_order?: string[] + proxy_group_tools_position?: string + notice_position?: string collapse_navbar: boolean | null sysproxy_tray_icon: boolean | null tun_tray_icon: boolean | null @@ -482,11 +456,11 @@ export type IVerge_Serialize = { proxy_auto_config: boolean | null pac_file_content: string | null proxy_host: string | null - theme_setting: IVergeTheme | null + theme_setting: IVergeTheme_Serialize | null web_ui_list: string[] | null - clash_core?: string | null + clash_core?: string /** format: {func},{key} */ - hotkeys?: string[] | null + hotkeys?: string[] enable_global_hotkey: boolean | null home_cards: JsonValue | null auto_close_connection: boolean | null @@ -498,7 +472,7 @@ export type IVerge_Serialize = { auto_delay_detection_interval_minutes: number | null enable_builtin_enhanced: boolean | null proxy_layout_column: number | null - test_list: IVergeTestItem[] | null + test_list: IVergeTestItem_Serialize[] | null /** 0: 不清理; 1: 1天;2: 7天; 3: 30天; 4: 90天 */ auto_log_clean: number | null enable_auto_backup_schedule: boolean | null @@ -510,10 +484,10 @@ export type IVerge_Serialize = { verge_socks_enabled: boolean | null verge_port: number | null verge_http_enabled: boolean | null - webdav_url?: string | null - webdav_username?: string | null - webdav_password?: string | null - tray_proxy_groups_display_mode?: string | null + webdav_url?: string + webdav_username?: string + webdav_password?: string + tray_proxy_groups_display_mode?: string tray_inline_outbound_modes: boolean | null enable_auto_light_weight_mode: boolean | null /** 自动进入轻量模式的延迟(分钟) */ @@ -658,7 +632,7 @@ export type PrfItem_Deserialize = { file?: string | null desc?: string | null url?: string | null - selected?: PrfSelected[] | null + selected?: PrfSelected_Deserialize[] | null latency_test_urls?: { [key in string]: string } | null extra?: PrfExtra | null updated?: number | null @@ -672,14 +646,14 @@ export type PrfItem_Serialize = { type: string | null name: string | null file: string | null - desc?: string | null - url?: string | null - selected?: PrfSelected[] | null - latency_test_urls?: { [key in string]: string } | null - extra?: PrfExtra | null + desc?: string + url?: string + selected?: PrfSelected_Serialize[] + latency_test_urls?: { [key in string]: string } + extra?: PrfExtra updated: number | null - option?: PrfOption_Serialize | null - home?: string | null + option?: PrfOption_Serialize + home?: string } export type PrfOption = PrfOption_Serialize | PrfOption_Deserialize @@ -705,18 +679,18 @@ export type PrfOption_Deserialize = { } export type PrfOption_Serialize = { - user_agent?: string | null - with_proxy?: boolean | null - self_proxy?: boolean | null - update_interval?: number | null + user_agent?: string + with_proxy?: boolean + self_proxy?: boolean + update_interval?: number /** * HTTP request timeout in seconds * default is 60 seconds */ - timeout_seconds?: number | null + timeout_seconds?: number /** default is `false` */ - danger_accept_invalid_certs?: boolean | null - allow_auto_update?: boolean | null + danger_accept_invalid_certs?: boolean + allow_auto_update?: boolean merge: string | null script: string | null rules: string | null @@ -724,11 +698,18 @@ export type PrfOption_Serialize = { groups: string | null } -export type PrfSelected = { +export type PrfSelected = PrfSelected_Serialize | PrfSelected_Deserialize + +export type PrfSelected_Deserialize = { name?: string | null now?: string | null } +export type PrfSelected_Serialize = { + name: string | null + now: string | null +} + export type ProfileCreate = ProfileCreate_Serialize | ProfileCreate_Deserialize export type ProfileCreate_Deserialize = { @@ -758,7 +739,7 @@ export type ProfileDnsSettings_Deserialize = { export type ProfileDnsSettings_Serialize = { enabled: boolean - confirmation?: string | null + confirmation?: string } export type ProfilePatch = ProfilePatch_Serialize | ProfilePatch_Deserialize @@ -769,7 +750,7 @@ export type ProfilePatch_Deserialize = { desc?: string | null file?: string | null url?: string | null - selected?: PrfSelected[] | null + selected?: PrfSelected_Deserialize[] | null latency_test_urls?: { [key in string]: string } | null extra?: PrfExtra | null updated?: number | null @@ -782,17 +763,25 @@ export type ProfilePatch_Serialize = { desc: string | null file: string | null url: string | null - selected: PrfSelected[] | null + selected: PrfSelected_Serialize[] | null latency_test_urls: { [key in string]: string } | null extra: PrfExtra | null updated: number | null option: PrfOption_Serialize | null } -export type ProfileSelection = { +export type ProfileSelection = + | ProfileSelection_Serialize + | ProfileSelection_Deserialize + +export type ProfileSelection_Deserialize = { current?: string | null } +export type ProfileSelection_Serialize = { + current: string | null +} + export type ProfileUpdatePayload = { uid: string } @@ -825,11 +814,11 @@ export type ProxyGroupView_Deserialize = { export type ProxyGroupView_Serialize = { name: string type: string - now?: string | null - fixed?: string | null - hidden?: boolean | null - icon?: string | null - testUrl?: string | null + now?: string + fixed?: string + hidden?: boolean + icon?: string + testUrl?: string history: DelayHistory[] extra: { [key in string]: ProxyLatencyHistory } members: ProxyMemberRef[] @@ -874,10 +863,10 @@ export type ProxyNodeView_Serialize = { type: string history: DelayHistory[] extra: { [key in string]: ProxyLatencyHistory } - id?: string | null - hidden?: boolean | null - icon?: string | null - testUrl?: string | null + id?: string + hidden?: boolean + icon?: string + testUrl?: string source: ProxyNodeSource } & ProxyCapabilities @@ -906,8 +895,8 @@ export type ProxyProviderView_Deserialize = { export type ProxyProviderView_Serialize = { name: string vehicleType: ProxyProviderVehicleType - updatedAt?: string | null - subscriptionInfo?: ProxySubscriptionInfo | null + updatedAt?: string + subscriptionInfo?: ProxySubscriptionInfo proxyRecordIds: string[] }