From 4fc3ff8ce8419d3204d094b2db70175691491376 Mon Sep 17 00:00:00 2001 From: "Sijie.Sun" Date: Sun, 10 Nov 2024 23:03:40 +0800 Subject: [PATCH] gui use frontend-lib, fix memory leak (#467) --- Cargo.lock | 765 ++++++++-------- easytier-gui/.npmrc | 2 - easytier-gui/package.json | 34 +- easytier-gui/src-tauri/Cargo.toml | 15 +- easytier-gui/src-tauri/src/lib.rs | 7 +- easytier-gui/src/auto-imports.d.ts | 2 - easytier-gui/src/components/Config.vue | 296 ------ easytier-gui/src/components/HumanEvent.vue | 32 - easytier-gui/src/components/Status.vue | 459 ---------- easytier-gui/src/composables/mobile_vpn.ts | 11 +- easytier-gui/src/composables/network.ts | 4 +- easytier-gui/src/composables/utils.ts | 15 - easytier-gui/src/main.ts | 15 +- easytier-gui/src/modules/i18n.ts | 50 - easytier-gui/src/pages/index.vue | 104 ++- easytier-gui/src/stores/network.ts | 25 +- easytier-gui/src/types/network.ts | 213 ----- easytier-web/frontend-lib/package.json | 3 +- .../frontend-lib/src/components/Config.vue | 1 - .../frontend-lib/src/components/Status.vue | 10 +- .../frontend-lib/src/easytier-frontend-lib.ts | 11 +- .../frontend-lib/src/modules/utils.ts | 15 +- easytier-web/frontend-lib/src/style.css | 1 + .../frontend-lib/src/types/network.ts | 13 +- easytier-web/frontend/package.json | 2 +- easytier/src/launcher.rs | 11 +- easytier/src/proto/web.proto | 13 +- pnpm-lock.yaml | 852 ++++++------------ .../permissions/autogenerated/reference.md | 2 +- .../permissions/schemas/schema.json | 66 +- 30 files changed, 868 insertions(+), 2181 deletions(-) delete mode 100644 easytier-gui/.npmrc delete mode 100644 easytier-gui/src/components/Config.vue delete mode 100644 easytier-gui/src/components/HumanEvent.vue delete mode 100644 easytier-gui/src/components/Status.vue delete mode 100644 easytier-gui/src/composables/utils.ts delete mode 100644 easytier-gui/src/modules/i18n.ts delete mode 100644 easytier-gui/src/types/network.ts diff --git a/Cargo.lock b/Cargo.lock index 54cb749..4c43aa2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -354,7 +354,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -404,7 +404,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -421,7 +421,7 @@ checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -484,7 +484,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f012b8cc0c850f34117ec8252a44418f2e34a2cf501de89e29b241ae5f79471" dependencies = [ "dirs 4.0.0", - "thiserror", + "thiserror 1.0.63", "winreg 0.10.1", ] @@ -496,7 +496,7 @@ checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -572,7 +572,7 @@ dependencies = [ "form_urlencoded", "serde", "subtle", - "thiserror", + "thiserror 1.0.63", "tower-cookies", "tower-layer", "tower-service", @@ -589,7 +589,7 @@ checksum = "57d123550fa8d071b7255cb0cc04dc302baa6c8c4a79f55701552684d8399bce" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -668,12 +668,6 @@ dependencies = [ "serde", ] -[[package]] -name = "bit_field" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61" - [[package]] name = "bitflags" version = "1.3.2" @@ -792,15 +786,15 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", "syn_derive", ] [[package]] name = "brotli" -version = "3.5.0" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d640d25bc63c50fb1f0b545ffd80207d2e10a4c965530809b40ba3386825c391" +checksum = "cc97b8f16f944bba54f0433f07e30be199b6dc2bd25937444bbad560bcea29bd" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", @@ -809,9 +803,9 @@ dependencies = [ [[package]] name = "brotli-decompressor" -version = "2.5.1" +version = "4.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f" +checksum = "9a45bd2e4095a8b518033b128020dd4a55aab1c0a381ba4404a472630f4bc362" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", @@ -950,7 +944,7 @@ dependencies = [ "glib", "libc", "once_cell", - "thiserror", + "thiserror 1.0.63", ] [[package]] @@ -993,7 +987,7 @@ dependencies = [ "semver", "serde", "serde_json", - "thiserror", + "thiserror 1.0.63", ] [[package]] @@ -1149,7 +1143,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -1167,22 +1161,6 @@ dependencies = [ "error-code", ] -[[package]] -name = "cocoa" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6140449f97a6e97f9511815c5632d84c8aacf8ac271ad77c559218161a1373c" -dependencies = [ - "bitflags 1.3.2", - "block", - "cocoa-foundation 0.1.2", - "core-foundation 0.9.4", - "core-graphics 0.23.2", - "foreign-types 0.5.0", - "libc", - "objc", -] - [[package]] name = "cocoa" version = "0.26.0" @@ -1191,7 +1169,7 @@ checksum = "f79398230a6e2c08f5c9760610eb6924b52aa9e7950a619602baba59dcbbdbb2" dependencies = [ "bitflags 2.6.0", "block", - "cocoa-foundation 0.2.0", + "cocoa-foundation", "core-foundation 0.10.0", "core-graphics 0.24.0", "foreign-types 0.5.0", @@ -1199,20 +1177,6 @@ dependencies = [ "objc", ] -[[package]] -name = "cocoa-foundation" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c6234cbb2e4c785b456c0644748b1ac416dd045799740356f8363dfe00c93f7" -dependencies = [ - "bitflags 1.3.2", - "block", - "core-foundation 0.9.4", - "core-graphics-types 0.1.3", - "libc", - "objc", -] - [[package]] name = "cocoa-foundation" version = "0.2.0" @@ -1464,12 +1428,6 @@ version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" -[[package]] -name = "crunchy" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" - [[package]] name = "crypto-common" version = "0.1.6" @@ -1505,7 +1463,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" dependencies = [ "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -1515,7 +1473,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edb49164822f3ee45b17acd4a208cfc1251410cf0cad9a833234c9890774dd9f" dependencies = [ "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -1556,7 +1514,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -1586,7 +1544,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -1597,7 +1555,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -1631,7 +1589,7 @@ dependencies = [ "netlink-sys", "nix 0.27.1", "serde", - "thiserror", + "thiserror 1.0.63", ] [[package]] @@ -1654,7 +1612,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -1663,7 +1621,7 @@ version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff4a5fefe330e8d7f31b16a318f9ce81000d8e35e69b93eae154d16d2278f70f" dependencies = [ - "thiserror", + "thiserror 1.0.63", ] [[package]] @@ -1708,7 +1666,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -1800,7 +1758,7 @@ checksum = "f2b99bf03862d7f545ebc28ddd33a665b50865f4dfd84031a393823879bd4c54" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -1914,7 +1872,7 @@ dependencies = [ "sys-locale", "tabled", "tachyonix", - "thiserror", + "thiserror 1.0.63", "time", "timedmap", "tokio", @@ -2008,7 +1966,7 @@ dependencies = [ "serde", "serde_json", "sqlx", - "thiserror", + "thiserror 1.0.63", "tokio", "tower-http", "tower-sessions", @@ -2144,7 +2102,7 @@ checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -2211,22 +2169,6 @@ dependencies = [ "pin-project-lite", ] -[[package]] -name = "exr" -version = "1.72.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "887d93f60543e9a9362ef8a21beedd0a833c5d9610e18c67abe15a5963dcb1a4" -dependencies = [ - "bit_field", - "flume", - "half", - "lebe", - "miniz_oxide", - "rayon-core", - "smallvec", - "zune-inflate", -] - [[package]] name = "fastrand" version = "2.1.0" @@ -2318,7 +2260,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -2438,7 +2380,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -2662,16 +2604,6 @@ dependencies = [ "polyval", ] -[[package]] -name = "gif" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fb2d69b19215e18bb912fa30f7ce15846e301408695e44e0ef719f1da9e19f2" -dependencies = [ - "color_quant", - "weezl", -] - [[package]] name = "gimli" version = "0.29.0" @@ -2694,7 +2626,7 @@ dependencies = [ "once_cell", "pin-project-lite", "smallvec", - "thiserror", + "thiserror 1.0.63", ] [[package]] @@ -2727,7 +2659,7 @@ checksum = "53010ccb100b96a67bc32c0175f0ed1426b31b655d562898e57325f81c023ac0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -2750,7 +2682,7 @@ dependencies = [ "memchr", "once_cell", "smallvec", - "thiserror", + "thiserror 1.0.63", ] [[package]] @@ -2764,7 +2696,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -2867,7 +2799,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -2889,16 +2821,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "half" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" -dependencies = [ - "cfg-if", - "crunchy", -] - [[package]] name = "hash32" version = "0.3.1" @@ -3245,13 +3167,8 @@ dependencies = [ "bytemuck", "byteorder", "color_quant", - "exr", - "gif", - "jpeg-decoder", "num-traits", "png", - "qoi", - "tiff", ] [[package]] @@ -3309,9 +3226,9 @@ dependencies = [ [[package]] name = "infer" -version = "0.15.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb33622da908807a06f9513c19b3c1ad50fab3e4137d82a78107d502075aa199" +checksum = "bc150e5ce2330295b8616ce0e3f53250e53af31759a9dbedad1621ba29151847" dependencies = [ "cfb", ] @@ -3324,7 +3241,7 @@ checksum = "0122b7114117e64a63ac49f752a5ca4624d534c7b1c7de796ac196381cd2d947" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -3488,7 +3405,7 @@ dependencies = [ "combine", "jni-sys", "log", - "thiserror", + "thiserror 1.0.63", "walkdir", ] @@ -3503,7 +3420,7 @@ dependencies = [ "combine", "jni-sys", "log", - "thiserror", + "thiserror 1.0.63", "walkdir", "windows-sys 0.45.0", ] @@ -3528,9 +3445,6 @@ name = "jpeg-decoder" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0" -dependencies = [ - "rayon", -] [[package]] name = "js-sys" @@ -3543,13 +3457,24 @@ dependencies = [ [[package]] name = "json-patch" -version = "1.4.0" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec9ad60d674508f3ca8f380a928cfe7b096bc729c4e2dbfe3852bc45da3ab30b" +checksum = "863726d7afb6bc2590eeff7135d923545e5e964f004c2ccf8716c25e70a86f08" +dependencies = [ + "jsonptr", + "serde", + "serde_json", + "thiserror 1.0.63", +] + +[[package]] +name = "jsonptr" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dea2b27dd239b2556ed7a25ba842fe47fd602e7fc7433c2a8d6106d4d9edd70" dependencies = [ "serde", "serde_json", - "thiserror", ] [[package]] @@ -3585,12 +3510,6 @@ dependencies = [ "spin 0.9.8", ] -[[package]] -name = "lebe" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8" - [[package]] name = "libappindicator" version = "0.9.0" @@ -3706,8 +3625,6 @@ dependencies = [ "cfg-if", "generator", "scoped-tls", - "serde", - "serde_json", "tracing", "tracing-subscriber", ] @@ -3875,21 +3792,22 @@ dependencies = [ [[package]] name = "muda" -version = "0.13.5" +version = "0.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b959f97c97044e4c96e32e1db292a7d594449546a3c6b77ae613dc3a5b5145" +checksum = "fdae9c00e61cc0579bcac625e8ad22104c60548a025bfc972dc83868a28e1484" dependencies = [ - "cocoa 0.25.0", "crossbeam-channel", "dpi", "gtk", "keyboard-types", - "objc", + "objc2", + "objc2-app-kit", + "objc2-foundation", "once_cell", "png", "serde", - "thiserror", - "windows-sys 0.52.0", + "thiserror 1.0.63", + "windows-sys 0.59.0", ] [[package]] @@ -3932,16 +3850,17 @@ dependencies = [ [[package]] name = "ndk" -version = "0.7.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "451422b7e4718271c8b5b3aadf5adedba43dc76312454b387e98fae0fc951aa0" +checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.6.0", "jni-sys", + "log", "ndk-sys", "num_enum", - "raw-window-handle 0.5.2", - "thiserror", + "raw-window-handle", + "thiserror 1.0.63", ] [[package]] @@ -3952,9 +3871,9 @@ checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" [[package]] name = "ndk-sys" -version = "0.4.1+23.1.7779620" +version = "0.6.0+11769913" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cf2aae958bd232cac5069850591667ad422d263686d75b52a065f9badeee5a3" +checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" dependencies = [ "jni-sys", ] @@ -4005,7 +3924,7 @@ dependencies = [ "anyhow", "byteorder", "paste", - "thiserror", + "thiserror 1.0.63", ] [[package]] @@ -4041,7 +3960,7 @@ checksum = "433419f898328beca4f2c6c73a1b52540658d92b0a99f0269330457e0fd998d5" dependencies = [ "cc", "libc", - "thiserror", + "thiserror 1.0.63", "winapi", ] @@ -4228,23 +4147,23 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.5.11" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" +checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" dependencies = [ "num_enum_derive", ] [[package]] name = "num_enum_derive" -version = "0.5.11" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" +checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.87", ] [[package]] @@ -4263,7 +4182,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" dependencies = [ "malloc_buf", - "objc_exception", ] [[package]] @@ -4271,6 +4189,9 @@ name = "objc-sys" version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310" +dependencies = [ + "cc", +] [[package]] name = "objc2" @@ -4298,6 +4219,30 @@ dependencies = [ "objc2-quartz-core", ] +[[package]] +name = "objc2-cloud-kit" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009" +dependencies = [ + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-core-location", + "objc2-foundation", +] + +[[package]] +name = "objc2-contacts" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5ff520e9c33812fd374d8deecef01d4a840e7b41862d849513de77e44aa4889" +dependencies = [ + "block2", + "objc2", + "objc2-foundation", +] + [[package]] name = "objc2-core-data" version = "0.2.2" @@ -4322,6 +4267,18 @@ dependencies = [ "objc2-metal", ] +[[package]] +name = "objc2-core-location" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "000cfee34e683244f284252ee206a27953279d370e309649dc3ee317b37e5781" +dependencies = [ + "block2", + "objc2", + "objc2-contacts", + "objc2-foundation", +] + [[package]] name = "objc2-encode" version = "4.0.3" @@ -4341,6 +4298,18 @@ dependencies = [ "objc2", ] +[[package]] +name = "objc2-link-presentation" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1a1ae721c5e35be65f01a03b6d2ac13a54cb4fa70d8a5da293d7b0020261398" +dependencies = [ + "block2", + "objc2", + "objc2-app-kit", + "objc2-foundation", +] + [[package]] name = "objc2-metal" version = "0.2.2" @@ -4367,21 +4336,71 @@ dependencies = [ ] [[package]] -name = "objc_exception" -version = "0.1.2" +name = "objc2-symbols" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" +checksum = "0a684efe3dec1b305badae1a28f6555f6ddd3bb2c2267896782858d5a78404dc" dependencies = [ - "cc", + "objc2", + "objc2-foundation", ] [[package]] -name = "objc_id" -version = "0.1.1" +name = "objc2-ui-kit" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b" +checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f" dependencies = [ - "objc", + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-cloud-kit", + "objc2-core-data", + "objc2-core-image", + "objc2-core-location", + "objc2-foundation", + "objc2-link-presentation", + "objc2-quartz-core", + "objc2-symbols", + "objc2-uniform-type-identifiers", + "objc2-user-notifications", +] + +[[package]] +name = "objc2-uniform-type-identifiers" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44fa5f9748dbfe1ca6c0b79ad20725a11eca7c2218bceb4b005cb1be26273bfe" +dependencies = [ + "block2", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-user-notifications" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3" +dependencies = [ + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-core-location", + "objc2-foundation", +] + +[[package]] +name = "objc2-web-kit" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68bc69301064cebefc6c4c90ce9cba69225239e4b8ff99d445a2b5563797da65" +dependencies = [ + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-app-kit", + "objc2-foundation", ] [[package]] @@ -4439,7 +4458,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -4528,7 +4547,7 @@ dependencies = [ "proc-macro2", "proc-macro2-diagnostics", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -4808,7 +4827,7 @@ dependencies = [ "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -4855,7 +4874,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -4968,7 +4987,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -5093,7 +5112,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" dependencies = [ "proc-macro2", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -5179,7 +5198,7 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -5205,7 +5224,7 @@ checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", "version_check", "yansi", ] @@ -5237,7 +5256,7 @@ dependencies = [ "prost", "prost-types", "regex", - "syn 2.0.74", + "syn 2.0.87", "tempfile", ] @@ -5251,7 +5270,7 @@ dependencies = [ "itertools 0.13.0", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -5283,15 +5302,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "qoi" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f6d64c71eb498fe9eae14ce4ec935c555749aef511cca85b5568910d6e48001" -dependencies = [ - "bytemuck", -] - [[package]] name = "quick-xml" version = "0.32.0" @@ -5314,7 +5324,7 @@ dependencies = [ "rustc-hash", "rustls", "socket2", - "thiserror", + "thiserror 1.0.63", "tokio", "tracing", ] @@ -5332,7 +5342,7 @@ dependencies = [ "rustls", "rustls-platform-verifier", "slab", - "thiserror", + "thiserror 1.0.63", "tinyvec", "tracing", ] @@ -5455,12 +5465,6 @@ dependencies = [ "rand_core 0.5.1", ] -[[package]] -name = "raw-window-handle" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9" - [[package]] name = "raw-window-handle" version = "0.6.2" @@ -5522,7 +5526,7 @@ checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" dependencies = [ "getrandom 0.2.15", "libredox", - "thiserror", + "thiserror 1.0.63", ] [[package]] @@ -5796,7 +5800,7 @@ dependencies = [ "regex", "relative-path", "rustc_version", - "syn 2.0.74", + "syn 2.0.87", "unicode-ident", ] @@ -5820,7 +5824,7 @@ dependencies = [ "proc-macro2", "quote", "rust-embed-utils", - "syn 2.0.74", + "syn 2.0.87", "walkdir", ] @@ -5862,7 +5866,7 @@ dependencies = [ "serde", "serde_json", "serde_yml", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -6098,6 +6102,7 @@ dependencies = [ "serde", "serde_json", "url", + "uuid", ] [[package]] @@ -6109,7 +6114,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -6140,7 +6145,7 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -6164,7 +6169,7 @@ dependencies = [ "serde_json", "sqlx", "strum", - "thiserror", + "thiserror 1.0.63", "time", "tracing", "url", @@ -6198,7 +6203,7 @@ dependencies = [ "proc-macro2", "quote", "sea-bae", - "syn 2.0.74", + "syn 2.0.87", "unicode-ident", ] @@ -6262,8 +6267,8 @@ dependencies = [ "heck 0.4.1", "proc-macro2", "quote", - "syn 2.0.74", - "thiserror", + "syn 2.0.87", + "thiserror 1.0.63", ] [[package]] @@ -6286,7 +6291,7 @@ dependencies = [ "heck 0.4.1", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -6376,7 +6381,7 @@ checksum = "6aea2634c86b0e8ef2cfdc0c340baede54ec27b1e46febd7f80dffb2aa44a00e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -6387,7 +6392,7 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -6420,7 +6425,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -6471,7 +6476,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -6513,7 +6518,7 @@ checksum = "82fe9db325bcef1fbcde82e078a5cc4efdf787e96b3b9cf45b50b529f2083d67" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -6709,7 +6714,7 @@ dependencies = [ "objc2-app-kit", "objc2-foundation", "objc2-quartz-core", - "raw-window-handle 0.6.2", + "raw-window-handle", "redox_syscall", "wasm-bindgen", "web-sys", @@ -6827,7 +6832,7 @@ dependencies = [ "sha2", "smallvec", "sqlformat", - "thiserror", + "thiserror 1.0.63", "time", "tokio", "tokio-stream", @@ -6847,7 +6852,7 @@ dependencies = [ "quote", "sqlx-core", "sqlx-macros-core", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -6870,7 +6875,7 @@ dependencies = [ "sqlx-mysql", "sqlx-postgres", "sqlx-sqlite", - "syn 2.0.74", + "syn 2.0.87", "tempfile", "tokio", "url", @@ -6916,7 +6921,7 @@ dependencies = [ "smallvec", "sqlx-core", "stringprep", - "thiserror", + "thiserror 1.0.63", "time", "tracing", "uuid", @@ -6960,7 +6965,7 @@ dependencies = [ "smallvec", "sqlx-core", "stringprep", - "thiserror", + "thiserror 1.0.63", "time", "tracing", "uuid", @@ -6999,15 +7004,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" -[[package]] -name = "state" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b8c4a4445d81357df8b1a650d0d0d6fbbbfe99d064aa5e02f3e4022061476d8" -dependencies = [ - "loom", -] - [[package]] name = "static_assertions" version = "1.1.0" @@ -7086,9 +7082,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "swift-rs" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bbdb58577b6301f8d17ae2561f32002a5bae056d444e0f69e611e504a276204" +checksum = "4057c98e2e852d51fdcfca832aac7b571f6b351ad159f9eda5db1655f8d0c4d7" dependencies = [ "base64 0.21.7", "serde", @@ -7108,9 +7104,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.74" +version = "2.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fceb41e3d546d0bd83421d3409b1460cc7444cd389341a4c880fe7a042cb3d7" +checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" dependencies = [ "proc-macro2", "quote", @@ -7126,7 +7122,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -7223,14 +7219,14 @@ dependencies = [ [[package]] name = "tao" -version = "0.28.1" +version = "0.30.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea538df05fbc2dcbbd740ba0cfe8607688535f4798d213cbbfa13ce494f3451f" +checksum = "833b4d43383d76d5078d72f3acd977f47eb5b6751eb40baa665d13828e7b79df" dependencies = [ "bitflags 2.6.0", - "cocoa 0.25.0", - "core-foundation 0.9.4", - "core-graphics 0.23.2", + "cocoa", + "core-foundation 0.10.0", + "core-graphics 0.24.0", "crossbeam-channel", "dispatch", "dlopen2", @@ -7249,13 +7245,13 @@ dependencies = [ "objc", "once_cell", "parking_lot", - "raw-window-handle 0.6.2", + "raw-window-handle", "scopeguard", "tao-macros", "unicode-segmentation", "url", - "windows 0.57.0", - "windows-core 0.57.0", + "windows 0.58.0", + "windows-core 0.58.0", "windows-version", "x11-dl", ] @@ -7285,13 +7281,12 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tauri" -version = "2.0.0-rc.2" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ee93e545e49458813d4ed16179c67ee6141dba140ec3d4f078dda3b8d4e0d1" +checksum = "c24f1ab82d336e09f5f1094a4d9227c99ac26cce263bfdf8136897cc6db6f1d0" dependencies = [ "anyhow", "bytes", - "cocoa 0.25.0", "dirs 5.0.1", "dunce", "embed_plist", @@ -7301,28 +7296,30 @@ dependencies = [ "gtk", "heck 0.5.0", "http 1.1.0", - "image 0.24.9", + "image 0.25.2", "jni 0.21.1", "libc", "log", "mime", "muda", - "objc", + "objc2", + "objc2-app-kit", + "objc2-foundation", "percent-encoding", - "raw-window-handle 0.6.2", + "plist", + "raw-window-handle", "reqwest 0.12.5", "serde", "serde_json", "serde_repr", "serialize-to-javascript", - "state", "swift-rs", "tauri-build", "tauri-macros", "tauri-runtime", "tauri-runtime-wry", "tauri-utils", - "thiserror", + "thiserror 2.0.2", "tokio", "tray-icon", "url", @@ -7330,14 +7327,14 @@ dependencies = [ "webkit2gtk", "webview2-com", "window-vibrancy", - "windows 0.57.0", + "windows 0.58.0", ] [[package]] name = "tauri-build" -version = "2.0.0-rc.2" +version = "2.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96a58b3a716b51d7f671f729bb8c0a53cd2551eec8450c64e828ef4e6c9f948e" +checksum = "7bd2a4bcfaf5fb9f4be72520eefcb61ae565038f8ccba2a497d8c28f463b8c01" dependencies = [ "anyhow", "cargo_toml", @@ -7357,9 +7354,9 @@ dependencies = [ [[package]] name = "tauri-codegen" -version = "2.0.0-rc.2" +version = "2.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90a9e63ecd827d57228864764e0234935c9aac230099cf145197c8c08e754ced" +checksum = "bf79faeecf301d3e969b1fae977039edb77a4c1f25cc0a961be298b54bff97cf" dependencies = [ "base64 0.22.1", "brotli", @@ -7373,9 +7370,9 @@ dependencies = [ "serde", "serde_json", "sha2", - "syn 2.0.74", + "syn 2.0.87", "tauri-utils", - "thiserror", + "thiserror 2.0.2", "time", "url", "uuid", @@ -7384,23 +7381,23 @@ dependencies = [ [[package]] name = "tauri-macros" -version = "2.0.0-rc.2" +version = "2.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a54f5d5b289aa6215ffcfed7d4ff9960a04b7a854436d04519a9fcf911050cba" +checksum = "c52027c8c5afb83166dacddc092ee8fff50772f9646d461d8c33ee887e447a03" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", "tauri-codegen", "tauri-utils", ] [[package]] name = "tauri-plugin" -version = "2.0.0-rc.2" +version = "2.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03ce2ac5e182251ff932750d69c9b240a78e44901a7a6234814d63c595b43660" +checksum = "e753f2a30933a9bbf0a202fa47d7cc4a3401f06e8d6dcc53b79aa62954828c79" dependencies = [ "anyhow", "glob", @@ -7415,9 +7412,9 @@ dependencies = [ [[package]] name = "tauri-plugin-autostart" -version = "2.0.0-rc.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25958a42daab7aaff4faff15cbaffd5505873a0654e6382c74fca1729a791898" +checksum = "bba6bb936e0fd0a58ed958b49e2e423dd40949c9d9425cc991be996959e3838e" dependencies = [ "auto-launch", "log", @@ -7425,32 +7422,31 @@ dependencies = [ "serde_json", "tauri", "tauri-plugin", - "thiserror", + "thiserror 1.0.63", ] [[package]] name = "tauri-plugin-clipboard-manager" -version = "2.0.0-rc.0" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76a26868f7e05a09673e4172d23acb82cd48911cca092f0e8d06179a69e5024c" +checksum = "2a66feaa0fb7fce8e5073323d11ca381c9da7ac06f458e42b9ff77364b76a360" dependencies = [ "arboard", - "image 0.24.9", "log", "serde", "serde_json", "tauri", "tauri-plugin", - "thiserror", + "thiserror 1.0.63", ] [[package]] name = "tauri-plugin-os" -version = "2.0.0-rc.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b54cfeb26356822d3be3db4282041b03552f573a694b6b28aded7d95c62a039" +checksum = "fbc5f23a86f37687c7f4fecfdc706b279087bc44f7a46702f7307ff1551ee03a" dependencies = [ - "gethostname 0.4.3", + "gethostname 0.5.0", "log", "os_info", "serde", @@ -7459,14 +7455,14 @@ dependencies = [ "sys-locale", "tauri", "tauri-plugin", - "thiserror", + "thiserror 1.0.63", ] [[package]] name = "tauri-plugin-positioner" -version = "2.0.0-rc.0" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "581c8e4d65faebaf584fd2d7d7c7602c27ae458d9362566ee29c4ed6fa6eae40" +checksum = "647253ed516eb1dc5a7eefbfadf594ea5ec9cd8b506ef8896ed64621f9f1d264" dependencies = [ "log", "serde", @@ -7474,14 +7470,14 @@ dependencies = [ "serde_repr", "tauri", "tauri-plugin", - "thiserror", + "thiserror 1.0.63", ] [[package]] name = "tauri-plugin-process" -version = "2.0.0-rc.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96d3663df0cd3e96feb37d46aad5d499d2edfcca5c62548ad34f1684e0019168" +checksum = "ae06a00087c148962a52814a2d7265b1a0505bced5ffb74f8c284a5f96a4d03d" dependencies = [ "tauri", "tauri-plugin", @@ -7489,9 +7485,9 @@ dependencies = [ [[package]] name = "tauri-plugin-shell" -version = "2.0.0-rc.0" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9209f6c32caec61e156a5616f7d80ba7683ca4a0a5641cbe5d3086ab371aaab2" +checksum = "0ad7880c5586b6b2104be451e3d7fc0f3800c84bda69e9ba81c828f87cb34267" dependencies = [ "encoding_rs", "log", @@ -7504,7 +7500,7 @@ dependencies = [ "shared_child", "tauri", "tauri-plugin", - "thiserror", + "thiserror 1.0.63", "tokio", ] @@ -7518,7 +7514,7 @@ dependencies = [ "serde", "serde_json", "tauri", - "thiserror", + "thiserror 1.0.63", "windows-sys 0.52.0", "zbus", ] @@ -7530,41 +7526,43 @@ dependencies = [ "serde", "tauri", "tauri-plugin", - "thiserror", + "thiserror 1.0.63", ] [[package]] name = "tauri-runtime" -version = "2.0.0-rc.2" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f01b129b1ebdf09563c354760dbe7c0e96a166b4e33362d9c8d207f527c7ea5" +checksum = "cce18d43f80d4aba3aa8a0c953bbe835f3d0f2370aca75e8dbb14bd4bab27958" dependencies = [ "dpi", "gtk", "http 1.1.0", "jni 0.21.1", - "raw-window-handle 0.6.2", + "raw-window-handle", "serde", "serde_json", "tauri-utils", - "thiserror", + "thiserror 2.0.2", "url", - "windows 0.57.0", + "windows 0.58.0", ] [[package]] name = "tauri-runtime-wry" -version = "2.0.0-rc.2" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcda27639094ace2bf25f00bc10e35ea4e3af2f92753b1bdd2a174d1fa5a6292" +checksum = "9f442a38863e10129ffe2cec7bd09c2dcf8a098a3a27801a476a304d5bb991d2" dependencies = [ - "cocoa 0.25.0", "gtk", "http 1.1.0", "jni 0.21.1", "log", + "objc2", + "objc2-app-kit", + "objc2-foundation", "percent-encoding", - "raw-window-handle 0.6.2", + "raw-window-handle", "softbuffer", "tao", "tauri-runtime", @@ -7572,15 +7570,15 @@ dependencies = [ "url", "webkit2gtk", "webview2-com", - "windows 0.57.0", + "windows 0.58.0", "wry", ] [[package]] name = "tauri-utils" -version = "2.0.0-rc.2" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28bb83cffa26e9cb7a2b3d0c31ab87bf277f44aaaa90f17159aef4d37aabd051" +checksum = "9271a88f99b4adea0dc71d0baca4505475a0bbd139fb135f62958721aaa8fe54" dependencies = [ "brotli", "cargo_metadata", @@ -7588,6 +7586,7 @@ dependencies = [ "dunce", "glob", "html5ever", + "http 1.1.0", "infer", "json-patch", "kuchikiki", @@ -7604,10 +7603,11 @@ dependencies = [ "serde_json", "serde_with", "swift-rs", - "thiserror", + "thiserror 2.0.2", "toml 0.8.19", "url", "urlpattern", + "uuid", "walkdir", ] @@ -7667,7 +7667,16 @@ version = "1.0.63" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" dependencies = [ - "thiserror-impl", + "thiserror-impl 1.0.63", +] + +[[package]] +name = "thiserror" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "037e29b009aa709f293b974da5cd33b15783c049e07f8435778ce8c4871525d8" +dependencies = [ + "thiserror-impl 2.0.2", ] [[package]] @@ -7678,7 +7687,18 @@ checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea4778c7e8ff768bdb32a58a2349903859fe719a320300d7d4ce8636f19a1e69" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", ] [[package]] @@ -7782,7 +7802,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -7814,7 +7834,7 @@ checksum = "0d4770b8024672c1101b3f6733eab95b18007dbe0847a8afe341fcf79e06043f" dependencies = [ "either", "futures-util", - "thiserror", + "thiserror 1.0.63", "tokio", ] @@ -7954,7 +7974,7 @@ dependencies = [ "proc-macro2", "prost-build", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -8065,7 +8085,7 @@ dependencies = [ "rand 0.8.5", "serde", "serde_json", - "thiserror", + "thiserror 1.0.63", "time", "tokio", "tracing", @@ -8092,7 +8112,7 @@ dependencies = [ "async-trait", "rmp-serde", "sqlx", - "thiserror", + "thiserror 1.0.63", "time", "tower-sessions-core", ] @@ -8116,7 +8136,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf" dependencies = [ "crossbeam-channel", - "thiserror", + "thiserror 1.0.63", "time", "tracing-subscriber", ] @@ -8129,7 +8149,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -8203,22 +8223,23 @@ dependencies = [ [[package]] name = "tray-icon" -version = "0.14.3" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ad8319cca93189ea9ab1b290de0595960529750b6b8b501a399ed1ec3775d60" +checksum = "7c92af36a182b46206723bdf8a7942e20838cde1cf062e5b97854d57eb01763b" dependencies = [ - "cocoa 0.25.0", - "core-graphics 0.23.2", + "core-graphics 0.24.0", "crossbeam-channel", "dirs 5.0.1", "libappindicator", "muda", - "objc", + "objc2", + "objc2-app-kit", + "objc2-foundation", "once_cell", "png", "serde", - "thiserror", - "windows-sys 0.52.0", + "thiserror 1.0.63", + "windows-sys 0.59.0", ] [[package]] @@ -8258,7 +8279,7 @@ dependencies = [ "libloading 0.8.5", "log", "nix 0.29.0", - "thiserror", + "thiserror 1.0.63", "tokio", "tokio-util", "windows-sys 0.59.0", @@ -8425,11 +8446,10 @@ checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" [[package]] name = "urlpattern" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9bd5ff03aea02fa45b13a7980151fe45009af1980ba69f651ec367121a31609" +checksum = "70acd30e3aa1450bc2eece896ce2ad0d178e9c079493819301573dae3c37ba6d" dependencies = [ - "derive_more", "regex", "serde", "unic-ucd-ident", @@ -8468,7 +8488,7 @@ checksum = "ee1cd046f83ea2c4e920d6ee9f7c3537ef928d75dce5d84a87c2c5d6b3999a3a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -8580,7 +8600,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", "wasm-bindgen-shared", ] @@ -8614,7 +8634,7 @@ checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -8703,38 +8723,38 @@ dependencies = [ [[package]] name = "webview2-com" -version = "0.31.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6516cfa64c6b3212686080eeec378e662c2af54bb2a5b2a22749673f5cb2226f" +checksum = "6f61ff3d9d0ee4efcb461b14eb3acfda2702d10dc329f339303fc3e57215ae2c" dependencies = [ "webview2-com-macros", "webview2-com-sys", - "windows 0.57.0", - "windows-core 0.57.0", + "windows 0.58.0", + "windows-core 0.58.0", "windows-implement", "windows-interface", ] [[package]] name = "webview2-com-macros" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac1345798ecd8122468840bcdf1b95e5dc6d2206c5e4b0eafa078d061f59c9bc" +checksum = "1d228f15bba3b9d56dde8bddbee66fa24545bd17b48d5128ccf4a8742b18e431" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] name = "webview2-com-sys" -version = "0.31.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c76d5b77320ff155660be1df3e6588bc85c75f1a9feef938cc4dc4dd60d1d7cf" +checksum = "a3a3e2eeb58f82361c93f9777014668eb3d07e7d174ee4c819575a9208011886" dependencies = [ - "thiserror", - "windows 0.57.0", - "windows-core 0.57.0", + "thiserror 1.0.63", + "windows 0.58.0", + "windows-core 0.58.0", ] [[package]] @@ -8824,9 +8844,9 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d8cdd6999298d969289d8078dae02ce798ad23452075985cccba8b6326711ecf" dependencies = [ - "cocoa 0.26.0", + "cocoa", "objc", - "raw-window-handle 0.6.2", + "raw-window-handle", "windows-sys 0.59.0", "windows-version", ] @@ -8842,11 +8862,11 @@ dependencies = [ [[package]] name = "windows" -version = "0.57.0" +version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12342cb4d8e3b046f3d80effd474a7a02447231330ef77d71daa6fbc40681143" +checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" dependencies = [ - "windows-core 0.57.0", + "windows-core 0.58.0", "windows-targets 0.52.6", ] @@ -8861,43 +8881,44 @@ dependencies = [ [[package]] name = "windows-core" -version = "0.57.0" +version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d" +checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" dependencies = [ "windows-implement", "windows-interface", "windows-result", + "windows-strings", "windows-targets 0.52.6", ] [[package]] name = "windows-implement" -version = "0.57.0" +version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" +checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] name = "windows-interface" -version = "0.57.0" +version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" +checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] name = "windows-result" -version = "0.1.2" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" +checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" dependencies = [ "windows-targets 0.52.6", ] @@ -8913,6 +8934,16 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "windows-strings" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +dependencies = [ + "windows-result", + "windows-targets 0.52.6", +] + [[package]] name = "windows-sys" version = "0.45.0" @@ -9192,20 +9223,19 @@ dependencies = [ "c2rust-bitfields", "libloading 0.8.5", "log", - "thiserror", + "thiserror 1.0.63", "windows-sys 0.52.0", ] [[package]] name = "wry" -version = "0.41.0" +version = "0.47.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68b00c945786b02d7805d09a969fa36d0eee4e0bd4fb3ec2a79d2bf45a1b44cd" +checksum = "553ca1ce149982123962fac2506aa75b8b76288779a77e72b12fa2fc34938647" dependencies = [ "base64 0.22.1", - "block", - "cocoa 0.25.0", - "core-graphics 0.23.2", + "block2", + "cookie", "crossbeam-channel", "dpi", "dunce", @@ -9218,22 +9248,24 @@ dependencies = [ "kuchikiki", "libc", "ndk", - "ndk-context", - "ndk-sys", - "objc", - "objc_id", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "objc2-ui-kit", + "objc2-web-kit", "once_cell", "percent-encoding", - "raw-window-handle 0.6.2", + "raw-window-handle", "sha2", "soup3", "tao-macros", - "thiserror", + "thiserror 1.0.63", + "url", "webkit2gtk", "webkit2gtk-sys", "webview2-com", - "windows 0.57.0", - "windows-core 0.57.0", + "windows 0.58.0", + "windows-core 0.58.0", "windows-version", "x11-dl", ] @@ -9369,7 +9401,7 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", "zvariant_utils", ] @@ -9402,7 +9434,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -9422,7 +9454,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", ] [[package]] @@ -9474,15 +9506,6 @@ dependencies = [ "pkg-config", ] -[[package]] -name = "zune-inflate" -version = "0.2.54" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73ab332fe2f6680068f3582b16a24f90ad7096d5d39b974d1c0aff0125116f02" -dependencies = [ - "simd-adler32", -] - [[package]] name = "zvariant" version = "4.2.0" @@ -9505,7 +9528,7 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", "zvariant_utils", ] @@ -9517,5 +9540,5 @@ checksum = "c51bcff7cc3dbb5055396bcf774748c3dab426b4b8659046963523cee4808340" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.87", ] diff --git a/easytier-gui/.npmrc b/easytier-gui/.npmrc deleted file mode 100644 index cf04042..0000000 --- a/easytier-gui/.npmrc +++ /dev/null @@ -1,2 +0,0 @@ -shamefully-hoist=true -strict-peer-dependencies=false diff --git a/easytier-gui/package.json b/easytier-gui/package.json index cde62d7..212fd6d 100644 --- a/easytier-gui/package.json +++ b/easytier-gui/package.json @@ -13,34 +13,32 @@ "lint:fix": "eslint . --ignore-pattern src-tauri --fix" }, "dependencies": { - "@primevue/themes": "^4.1.0", - "@tauri-apps/plugin-autostart": "2.0.0-rc.1", - "@tauri-apps/plugin-clipboard-manager": "2.0.0-rc.1", - "@tauri-apps/plugin-os": "2.0.0-rc.1", - "@tauri-apps/plugin-process": "2.0.0-rc.1", - "@tauri-apps/plugin-shell": "2.0.0-rc.1", - "@vueuse/core": "^11.1.0", + "@primevue/themes": "^4.2.1", + "@tauri-apps/plugin-autostart": "2.0.0", + "@tauri-apps/plugin-clipboard-manager": "2.0.0", + "@tauri-apps/plugin-os": "2.0.0", + "@tauri-apps/plugin-process": "2.0.0", + "@tauri-apps/plugin-shell": "2.0.1", + "@vueuse/core": "^11.2.0", "aura": "link:@primevue\\themes\\aura", + "easytier-frontend-lib": "workspace:*", "ip-num": "1.5.1", "pinia": "^2.2.4", - "primeflex": "^3.3.1", - "primeicons": "^7.0.0", - "primevue": "^4.1.0", - "tauri-plugin-vpnservice-api": "link:..\\tauri-plugin-vpnservice", - "vue": "=3.4.38", - "vue-i18n": "^10.0.4", + "primevue": "^4.2.1", + "tauri-plugin-vpnservice-api": "workspace:*", + "vue": "^3.5.12", "vue-router": "^4.4.5" }, "devDependencies": { "@antfu/eslint-config": "^3.7.3", "@intlify/unplugin-vue-i18n": "^5.2.0", "@primevue/auto-import-resolver": "^4.1.0", - "@tauri-apps/api": "2.0.0-rc.0", - "@tauri-apps/cli": "2.0.0-rc.3", + "@tauri-apps/api": "2.1.0", + "@tauri-apps/cli": "2.1.0", "@types/node": "^22.7.4", "@types/uuid": "^10.0.0", "@vitejs/plugin-vue": "^5.1.4", - "@vue-macros/volar": "0.30.3", + "@vue-macros/volar": "0.30.5", "autoprefixer": "^10.4.20", "eslint": "^9.12.0", "eslint-plugin-format": "^0.1.2", @@ -50,7 +48,7 @@ "typescript": "^5.6.2", "unplugin-auto-import": "^0.18.3", "unplugin-vue-components": "^0.27.4", - "unplugin-vue-macros": "^2.12.3", + "unplugin-vue-macros": "^2.13.3", "unplugin-vue-markdown": "^0.26.2", "unplugin-vue-router": "^0.10.8", "uuid": "^10.0.0", @@ -58,6 +56,6 @@ "vite-plugin-vue-devtools": "^7.4.6", "vite-plugin-vue-layouts": "^0.11.0", "vue-i18n": "^10.0.0", - "vue-tsc": "^2.1.6" + "vue-tsc": "^2.1.10" } } diff --git a/easytier-gui/src-tauri/Cargo.toml b/easytier-gui/src-tauri/Cargo.toml index fcde608..11e84d6 100644 --- a/easytier-gui/src-tauri/Cargo.toml +++ b/easytier-gui/src-tauri/Cargo.toml @@ -15,10 +15,11 @@ crate-type = ["staticlib", "cdylib", "rlib"] tauri-build = { version = "2.0.0-rc", features = [] } [dependencies] -tauri = { version = "2.0.0-rc", features = [ +tauri = { version = "2.1", features = [ "tray-icon", "image-png", "image-ico", + "devtools", ] } serde = { version = "1", features = ["derive"] } @@ -37,13 +38,13 @@ gethostname = "0.5" dunce = "1.0.4" -tauri-plugin-shell = "2.0.0-rc" -tauri-plugin-process = "2.0.0-rc" -tauri-plugin-clipboard-manager = "2.0.0-rc" -tauri-plugin-positioner = { version = "2.0.0-rc", features = ["tray-icon"] } +tauri-plugin-shell = "2.0" +tauri-plugin-process = "2.0" +tauri-plugin-clipboard-manager = "2.0" +tauri-plugin-positioner = { version = "2.0", features = ["tray-icon"] } tauri-plugin-vpnservice = { path = "../../tauri-plugin-vpnservice" } -tauri-plugin-os = "2.0.0-rc" -tauri-plugin-autostart = "2.0.0-rc" +tauri-plugin-os = "2.0" +tauri-plugin-autostart = "2.0" [features] diff --git a/easytier-gui/src-tauri/src/lib.rs b/easytier-gui/src-tauri/src/lib.rs index 127438d..cbf9589 100644 --- a/easytier-gui/src-tauri/src/lib.rs +++ b/easytier-gui/src-tauri/src/lib.rs @@ -3,17 +3,12 @@ use std::collections::BTreeMap; -use anyhow::Context; use dashmap::DashMap; use easytier::{ - common::config::{ - ConfigLoader, FileLoggerConfig, Flags, NetworkIdentity, PeerConfig, TomlConfigLoader, - VpnPortalConfig, - }, + common::config::{ConfigLoader, FileLoggerConfig, TomlConfigLoader}, launcher::{NetworkConfig, NetworkInstance, NetworkInstanceRunningInfo}, utils::{self, NewFilterSender}, }; -use serde::{Deserialize, Serialize}; use tauri::Manager as _; diff --git a/easytier-gui/src/auto-imports.d.ts b/easytier-gui/src/auto-imports.d.ts index 0f1d863..c4a6782 100644 --- a/easytier-gui/src/auto-imports.d.ts +++ b/easytier-gui/src/auto-imports.d.ts @@ -154,8 +154,6 @@ declare module 'vue' { readonly mapWritableState: UnwrapRef readonly markRaw: UnwrapRef readonly nextTick: UnwrapRef - readonly num2ipv4: UnwrapRef - readonly num2ipv6: UnwrapRef readonly onActivated: UnwrapRef readonly onBeforeMount: UnwrapRef readonly onBeforeRouteLeave: UnwrapRef diff --git a/easytier-gui/src/components/Config.vue b/easytier-gui/src/components/Config.vue deleted file mode 100644 index e89cb32..0000000 --- a/easytier-gui/src/components/Config.vue +++ /dev/null @@ -1,296 +0,0 @@ - - - diff --git a/easytier-gui/src/components/HumanEvent.vue b/easytier-gui/src/components/HumanEvent.vue deleted file mode 100644 index 83e69d0..0000000 --- a/easytier-gui/src/components/HumanEvent.vue +++ /dev/null @@ -1,32 +0,0 @@ - - - diff --git a/easytier-gui/src/components/Status.vue b/easytier-gui/src/components/Status.vue deleted file mode 100644 index b25d41b..0000000 --- a/easytier-gui/src/components/Status.vue +++ /dev/null @@ -1,459 +0,0 @@ - - - - - diff --git a/easytier-gui/src/composables/mobile_vpn.ts b/easytier-gui/src/composables/mobile_vpn.ts index c504d78..70a09a5 100644 --- a/easytier-gui/src/composables/mobile_vpn.ts +++ b/easytier-gui/src/composables/mobile_vpn.ts @@ -1,6 +1,8 @@ import { addPluginListener } from '@tauri-apps/api/core' import { prepare_vpn, start_vpn, stop_vpn } from 'tauri-plugin-vpnservice-api' -import type { Route } from '~/types/network' +import { NetworkTypes, Utils } from 'easytier-frontend-lib' + +type Route = NetworkTypes.Route const networkStore = useNetworkStore() @@ -122,12 +124,17 @@ async function onNetworkInstanceChange() { return } - const virtual_ip = curNetworkInfo?.node_info?.virtual_ipv4 + const virtual_ip = Utils.ipv4ToString(curNetworkInfo?.my_node_info?.virtual_ipv4.address) if (!virtual_ip || !virtual_ip.length) { await doStopVpn() return } + let network_length = curNetworkInfo?.my_node_info?.virtual_ipv4.network_length + if (!network_length) { + network_length = 24 + } + const routes = getRoutesForVpn(curNetworkInfo?.routes) const ipChanged = virtual_ip !== curVpnStatus.ipv4Addr diff --git a/easytier-gui/src/composables/network.ts b/easytier-gui/src/composables/network.ts index 3667120..ade1b1a 100644 --- a/easytier-gui/src/composables/network.ts +++ b/easytier-gui/src/composables/network.ts @@ -1,6 +1,8 @@ import { invoke } from '@tauri-apps/api/core' +import { NetworkTypes } from 'easytier-frontend-lib' -import type { NetworkConfig, NetworkInstanceRunningInfo } from '~/types/network' +type NetworkConfig = NetworkTypes.NetworkConfig +type NetworkInstanceRunningInfo = NetworkTypes.NetworkInstanceRunningInfo export async function parseNetworkConfig(cfg: NetworkConfig) { return invoke('parse_network_config', { cfg }) diff --git a/easytier-gui/src/composables/utils.ts b/easytier-gui/src/composables/utils.ts deleted file mode 100644 index 52fc57a..0000000 --- a/easytier-gui/src/composables/utils.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { IPv4, IPv6 } from 'ip-num/IPNumber' -import type { Ipv4Addr, Ipv6Addr } from '~/types/network' - -export function num2ipv4(ip: Ipv4Addr) { - return IPv4.fromNumber(ip.addr) -} - -export function num2ipv6(ip: Ipv6Addr) { - return IPv6.fromBigInt( - (BigInt(ip.part1) << BigInt(96)) - + (BigInt(ip.part2) << BigInt(64)) - + (BigInt(ip.part3) << BigInt(32)) - + BigInt(ip.part4), - ) -} diff --git a/easytier-gui/src/main.ts b/easytier-gui/src/main.ts index 2a9aeff..8593aa9 100644 --- a/easytier-gui/src/main.ts +++ b/easytier-gui/src/main.ts @@ -5,12 +5,11 @@ import ToastService from 'primevue/toastservice' import { createRouter, createWebHistory } from 'vue-router/auto' import { routes } from 'vue-router/auto-routes' import App from '~/App.vue' -import { i18n, loadLanguageAsync } from '~/modules/i18n' +import EasyTierFrontendLib, { I18nUtils } from 'easytier-frontend-lib' import { getAutoLaunchStatusAsync, loadAutoLaunchStatusAsync } from './modules/auto_launch' import '~/styles.css' -import 'primeicons/primeicons.css' -import 'primeflex/primeflex.css' +import 'easytier-frontend-lib/style.css' if (import.meta.env.PROD) { document.addEventListener('keydown', (event) => { @@ -29,7 +28,7 @@ if (import.meta.env.PROD) { } async function main() { - await loadLanguageAsync(localStorage.getItem('lang') || 'en') + await I18nUtils.loadLanguageAsync(localStorage.getItem('lang') || 'en') await loadAutoLaunchStatusAsync(getAutoLaunchStatusAsync()) const app = createApp(App) @@ -41,14 +40,18 @@ async function main() { app.use(router) app.use(createPinia()) - app.use(i18n, { useScope: 'global' }) + app.use(EasyTierFrontendLib) + // app.use(i18n, { useScope: 'global' }) app.use(PrimeVue, { theme: { preset: Aura, options: { prefix: 'p', darkModeSelector: 'system', - cssLayer: false, + cssLayer: { + name: 'primevue', + order: 'tailwind-base, primevue, tailwind-utilities' + } }, }, }) diff --git a/easytier-gui/src/modules/i18n.ts b/easytier-gui/src/modules/i18n.ts deleted file mode 100644 index b925aca..0000000 --- a/easytier-gui/src/modules/i18n.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { createI18n } from 'vue-i18n' -import type { Locale } from 'vue-i18n' - -// Import i18n resources -// https://vitejs.dev/guide/features.html#glob-import -export const i18n = createI18n({ - legacy: false, - locale: '', - fallbackLocale: '', - messages: {}, -}) - -const localesMap = Object.fromEntries( - Object.entries(import.meta.glob('../../locales/*.yml')) - .map(([path, loadLocale]) => [path.match(/([\w-]*)\.yml$/)?.[1], loadLocale]), -) as Record Promise<{ default: Record }>> - -export const availableLocales = Object.keys(localesMap) - -const loadedLanguages: string[] = [] - -function setI18nLanguage(lang: Locale) { - i18n.global.locale.value = lang as any - localStorage.setItem('lang', lang) - return lang -} - -export async function loadLanguageAsync(lang: string): Promise { - // If the same language - if (i18n.global.locale.value === lang) - return setI18nLanguage(lang) - - // If the language was already loaded - if (loadedLanguages.includes(lang)) - return setI18nLanguage(lang) - - // If the language hasn't been loaded yet - let messages - - try { - messages = await localesMap[lang]() - } - catch { - messages = await localesMap.en() - } - - i18n.global.setLocaleMessage(lang, messages.default) - loadedLanguages.push(lang) - return setI18nLanguage(lang) -} diff --git a/easytier-gui/src/pages/index.vue b/easytier-gui/src/pages/index.vue index 7676d33..d43b5e7 100644 --- a/easytier-gui/src/pages/index.vue +++ b/easytier-gui/src/pages/index.vue @@ -8,14 +8,11 @@ import { exit } from '@tauri-apps/plugin-process' import { open } from '@tauri-apps/plugin-shell' import TieredMenu from 'primevue/tieredmenu' import { useToast } from 'primevue/usetoast' -import Config from '~/components/Config.vue' +import { NetworkTypes, Config, Status, Utils, I18nUtils } from 'easytier-frontend-lib' -import Status from '~/components/Status.vue' import { isAutostart, setLoggingLevel } from '~/composables/network' import { useTray } from '~/composables/tray' import { getAutoLaunchStatusAsync as getAutoLaunchStatus, loadAutoLaunchStatusAsync } from '~/modules/auto_launch' -import { loadLanguageAsync } from '~/modules/i18n' -import { type NetworkConfig, NetworkingMethod } from '~/types/network' const { t, locale } = useI18n() const visible = ref(false) @@ -65,6 +62,27 @@ const toast = useToast() const networkStore = useNetworkStore() +const curNetworkConfig = computed(() => { + if (networkStore.curNetworkId) { + // console.log('instanceId', props.instanceId) + const c = networkStore.networkList.find(n => n.instance_id === networkStore.curNetworkId) + if (c !== undefined) + return c + } + + return networkStore.curNetwork +}) + +const curNetworkInst = computed(() => { + let ret = networkStore.networkInstances.find(n => n.instance_id === curNetworkConfig.value.instance_id) + console.log('curNetworkInst', ret) + if (ret === undefined) { + return null; + } else { + return ret; + } +}) + function addNewNetwork() { networkStore.addNewNetwork() networkStore.curNetwork = networkStore.lastNetwork @@ -82,7 +100,7 @@ networkStore.$subscribe(async () => { } }) -async function runNetworkCb(cfg: NetworkConfig, cb: () => void) { +async function runNetworkCb(cfg: NetworkTypes.NetworkConfig, cb: () => void) { if (type() === 'android') { await prepareVpnService() networkStore.clearNetworkInstances() @@ -106,7 +124,7 @@ async function runNetworkCb(cfg: NetworkConfig, cb: () => void) { cb() } -async function stopNetworkCb(cfg: NetworkConfig, cb: () => void) { +async function stopNetworkCb(cfg: NetworkTypes.NetworkConfig, cb: () => void) { // console.log('stopNetworkCb', cfg, cb) cb() networkStore.removeNetworkInstance(cfg.instance_id) @@ -145,7 +163,7 @@ const setting_menu_items = ref([ label: () => t('exchange_language'), icon: 'pi pi-language', command: async () => { - await loadLanguageAsync((locale.value === 'en' ? 'cn' : 'en')) + await I18nUtils.loadLanguageAsync((locale.value === 'en' ? 'cn' : 'en')) await setTrayMenu([ await MenuItemExit(t('tray.exit')), await MenuItemShow(t('tray.show')), @@ -221,7 +239,7 @@ onBeforeMount(async () => { getCurrentWindow().hide() const autoStartIds = networkStore.autoStartInstIds for (const id of autoStartIds) { - const cfg = networkStore.networkList.find(item => item.instance_id === id) + const cfg = networkStore.networkList.find((item: NetworkTypes.NetworkConfig) => item.instance_id === id) if (cfg) { networkStore.addNetworkInstance(cfg.instance_id) await runNetworkInstance(cfg) @@ -245,7 +263,7 @@ function isRunning(id: string) {