diff --git a/.changeset/config.json b/.changeset/config.json index ee081b1..7fb5f45 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -11,11 +11,9 @@ "jarvis", "form-view", "@kksh/desktop", - "@kksh/supabase", "@kksh/utils", "@kksh/extension", "@kksh/schema", - "@kksh/supabase", "@kksh/ui" ] } diff --git a/Cargo.lock b/Cargo.lock index c70f455..9c07cc0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -479,6 +479,15 @@ dependencies = [ "system-deps", ] +[[package]] +name = "atoi" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528" +dependencies = [ + "num-traits", +] + [[package]] name = "atomic-waker" version = "1.1.2" @@ -705,7 +714,7 @@ dependencies = [ "bitflags 2.6.0", "cexpr", "clang-sys", - "itertools", + "itertools 0.12.1", "lazy_static", "lazycell", "log", @@ -824,6 +833,31 @@ dependencies = [ "piper", ] +[[package]] +name = "bon" +version = "3.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65268237be94042665b92034f979c42d431d2fd998b49809543afe3e66abad1c" +dependencies = [ + "bon-macros", + "rustversion", +] + +[[package]] +name = "bon-macros" +version = "3.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "803c95b2ecf650eb10b5f87dda6b9f6a1b758cee53245e2b7b825c9b3803a443" +dependencies = [ + "darling", + "ident_case", + "prettyplease", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.87", +] + [[package]] name = "borsh" version = "1.3.0" @@ -1774,6 +1808,20 @@ version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04d2cd9c18b9f454ed67da600630b021a8a80bf33f8c95896ab33aaf1c26b728" +[[package]] +name = "dashmap" +version = "6.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" +dependencies = [ + "cfg-if", + "crossbeam-utils", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core", +] + [[package]] name = "data-url" version = "0.3.1" @@ -1830,6 +1878,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" dependencies = [ "const-oid", + "pem-rfc7468", "zeroize", ] @@ -2042,6 +2091,12 @@ dependencies = [ "const-random", ] +[[package]] +name = "dotenvy" +version = "0.15.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" + [[package]] name = "downcast-rs" version = "1.2.1" @@ -2127,6 +2182,9 @@ name = "either" version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" +dependencies = [ + "serde", +] [[package]] name = "elliptic-curve" @@ -2308,6 +2366,17 @@ version = "3.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a5d9305ccc6942a704f4335694ecd3de2ea531b114ac2d51f5f843750787a92f" +[[package]] +name = "etcetera" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "136d1b5283a1ab77bd9257427ffd09d8667ced0570b6f938942bc7568ed5b943" +dependencies = [ + "cfg-if", + "home", + "windows-sys 0.48.0", +] + [[package]] name = "event-listener" version = "5.3.1" @@ -2586,6 +2655,17 @@ dependencies = [ "futures-util", ] +[[package]] +name = "futures-intrusive" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f" +dependencies = [ + "futures-core", + "lock_api", + "parking_lot", +] + [[package]] name = "futures-io" version = "0.3.31" @@ -3746,6 +3826,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "0.4.8" @@ -3966,8 +4055,10 @@ dependencies = [ "tauri-plugin-shell", "tauri-plugin-shellx", "tauri-plugin-single-instance", + "tauri-plugin-sql", "tauri-plugin-store", "tauri-plugin-stronghold", + "tauri-plugin-svelte", "tauri-plugin-system-info", "tauri-plugin-updater", "tauri-plugin-upload", @@ -3983,6 +4074,9 @@ name = "lazy_static" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" +dependencies = [ + "spin", +] [[package]] name = "lazycell" @@ -4090,6 +4184,12 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "libm" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" + [[package]] name = "libredox" version = "0.1.3" @@ -4307,6 +4407,16 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "md-5" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +dependencies = [ + "cfg-if", + "digest", +] + [[package]] name = "mdns-sd" version = "0.11.5" @@ -4685,6 +4795,23 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-bigint-dig" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" +dependencies = [ + "byteorder", + "lazy_static", + "libm", + "num-integer", + "num-iter", + "num-traits", + "rand 0.8.5", + "smallvec", + "zeroize", +] + [[package]] name = "num-complex" version = "0.4.6" @@ -4760,6 +4887,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", + "libm", ] [[package]] @@ -5278,6 +5406,15 @@ dependencies = [ "hmac", ] +[[package]] +name = "pem-rfc7468" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" +dependencies = [ + "base64ct", +] + [[package]] name = "percent-encoding" version = "2.3.1" @@ -5471,6 +5608,17 @@ dependencies = [ "futures-io", ] +[[package]] +name = "pkcs1" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" +dependencies = [ + "der", + "pkcs8", + "spki", +] + [[package]] name = "pkcs8" version = "0.10.2" @@ -5693,7 +5841,7 @@ checksum = "22505a5c94da8e3b7c2996394d1c933236c4d743e81a410bcca4e6989fc066a4" dependencies = [ "bytes", "heck 0.5.0", - "itertools", + "itertools 0.12.1", "log", "multimap", "once_cell", @@ -5713,7 +5861,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" dependencies = [ "anyhow", - "itertools", + "itertools 0.12.1", "proc-macro2", "quote", "syn 2.0.87", @@ -5965,7 +6113,7 @@ dependencies = [ "built", "cfg-if", "interpolate_name", - "itertools", + "itertools 0.12.1", "libc", "libfuzzer-sys", "log", @@ -6312,6 +6460,26 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3582f63211428f83597b51b2ddb88e2a91a9d52d12831f9d08f5e624e8977422" +[[package]] +name = "rsa" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78928ac1ed176a5ca1d17e578a1825f3d81ca54cf41053a592584b020cfd691b" +dependencies = [ + "const-oid", + "digest", + "num-bigint-dig", + "num-integer", + "num-traits", + "pkcs1", + "pkcs8", + "rand_core 0.6.4", + "signature", + "spki", + "subtle", + "zeroize", +] + [[package]] name = "rusqlite" version = "0.31.0" @@ -6957,6 +7125,9 @@ name = "smallvec" version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" +dependencies = [ + "serde", +] [[package]] name = "socket2" @@ -7035,6 +7206,211 @@ dependencies = [ "der", ] +[[package]] +name = "sqlformat" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bba3a93db0cc4f7bdece8bb09e77e2e785c20bfebf79eb8340ed80708048790" +dependencies = [ + "nom", + "unicode_categories", +] + +[[package]] +name = "sqlx" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27144619c6e5802f1380337a209d2ac1c431002dd74c6e60aebff3c506dc4f0c" +dependencies = [ + "sqlx-core", + "sqlx-macros", + "sqlx-mysql", + "sqlx-postgres", + "sqlx-sqlite", +] + +[[package]] +name = "sqlx-core" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a999083c1af5b5d6c071d34a708a19ba3e02106ad82ef7bbd69f5e48266b613b" +dependencies = [ + "atoi", + "byteorder", + "bytes", + "crc", + "crossbeam-queue", + "either", + "event-listener", + "futures-channel", + "futures-core", + "futures-intrusive", + "futures-io", + "futures-util", + "hashbrown 0.14.5", + "hashlink", + "hex", + "indexmap 2.6.0", + "log", + "memchr", + "once_cell", + "paste", + "percent-encoding", + "serde", + "serde_json", + "sha2", + "smallvec", + "sqlformat", + "thiserror 1.0.66", + "time", + "tracing", + "url", +] + +[[package]] +name = "sqlx-macros" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a23217eb7d86c584b8cbe0337b9eacf12ab76fe7673c513141ec42565698bb88" +dependencies = [ + "proc-macro2", + "quote", + "sqlx-core", + "sqlx-macros-core", + "syn 2.0.87", +] + +[[package]] +name = "sqlx-macros-core" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a099220ae541c5db479c6424bdf1b200987934033c2584f79a0e1693601e776" +dependencies = [ + "dotenvy", + "either", + "heck 0.5.0", + "hex", + "once_cell", + "proc-macro2", + "quote", + "serde", + "serde_json", + "sha2", + "sqlx-core", + "sqlx-mysql", + "sqlx-postgres", + "sqlx-sqlite", + "syn 2.0.87", + "tempfile", + "url", +] + +[[package]] +name = "sqlx-mysql" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5afe4c38a9b417b6a9a5eeffe7235d0a106716495536e7727d1c7f4b1ff3eba6" +dependencies = [ + "atoi", + "base64 0.22.1", + "bitflags 2.6.0", + "byteorder", + "bytes", + "crc", + "digest", + "dotenvy", + "either", + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "generic-array", + "hex", + "hkdf", + "hmac", + "itoa 1.0.11", + "log", + "md-5", + "memchr", + "once_cell", + "percent-encoding", + "rand 0.8.5", + "rsa", + "serde", + "sha1", + "sha2", + "smallvec", + "sqlx-core", + "stringprep", + "thiserror 1.0.66", + "time", + "tracing", + "whoami", +] + +[[package]] +name = "sqlx-postgres" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1dbb157e65f10dbe01f729339c06d239120221c9ad9fa0ba8408c4cc18ecf21" +dependencies = [ + "atoi", + "base64 0.22.1", + "bitflags 2.6.0", + "byteorder", + "crc", + "dotenvy", + "etcetera", + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "hex", + "hkdf", + "hmac", + "home", + "itoa 1.0.11", + "log", + "md-5", + "memchr", + "once_cell", + "rand 0.8.5", + "serde", + "serde_json", + "sha2", + "smallvec", + "sqlx-core", + "stringprep", + "thiserror 1.0.66", + "time", + "tracing", + "whoami", +] + +[[package]] +name = "sqlx-sqlite" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b2cdd83c008a622d94499c0006d8ee5f821f36c89b7d625c900e5dc30b5c5ee" +dependencies = [ + "atoi", + "flume", + "futures-channel", + "futures-core", + "futures-executor", + "futures-intrusive", + "futures-util", + "libsqlite3-sys", + "log", + "percent-encoding", + "serde", + "serde_urlencoded", + "sqlx-core", + "time", + "tracing", + "url", +] + [[package]] name = "stable_deref_trait" version = "1.2.0" @@ -7090,6 +7466,17 @@ dependencies = [ "quote", ] +[[package]] +name = "stringprep" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b4df3d392d81bd458a8a621b8bffbd2302a12ffe288a9d931670948749463b1" +dependencies = [ + "unicode-bidi", + "unicode-normalization", + "unicode-properties", +] + [[package]] name = "strip-ansi-escapes" version = "0.2.0" @@ -7940,6 +8327,25 @@ dependencies = [ "zbus", ] +[[package]] +name = "tauri-plugin-sql" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6ccca89ded6bd2ff49fdad9a5b34bcd624aa223fdfddbab83c85706ee3a4948" +dependencies = [ + "futures-core", + "indexmap 2.6.0", + "log", + "serde", + "serde_json", + "sqlx", + "tauri", + "tauri-plugin", + "thiserror 2.0.3", + "time", + "tokio", +] + [[package]] name = "tauri-plugin-store" version = "2.2.0" @@ -7977,6 +8383,19 @@ dependencies = [ "zeroize", ] +[[package]] +name = "tauri-plugin-svelte" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17e96f88b3c614b98cea3afb5de6e2661d32f82c70423ae125c56a25d62017e6" +dependencies = [ + "serde", + "tauri", + "tauri-plugin", + "tauri-store", + "tracing", +] + [[package]] name = "tauri-plugin-system-info" version = "2.0.9" @@ -8097,6 +8516,52 @@ dependencies = [ "wry", ] +[[package]] +name = "tauri-store" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a33c8afdf92c1b177296c0299f6d20116cbce0fa1e2264819fea8c80fd31774" +dependencies = [ + "dashmap", + "futures", + "itertools 0.14.0", + "serde", + "serde_json", + "tauri", + "tauri-store-macros", + "tauri-store-utils", + "thiserror 2.0.3", + "tokio", + "tracing", +] + +[[package]] +name = "tauri-store-macros" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8857e4240cf6dbabb15fc2d595e92abba404f0a5cce0f3abbfe9316cac4aa99" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + +[[package]] +name = "tauri-store-utils" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14376c237a6632663991634d51a31f128b6b381b94d65e747db2419a513ae6d8" +dependencies = [ + "bon", + "semver", + "serde", + "serde_json", + "tauri", + "thiserror 2.0.3", + "tokio", + "tracing", +] + [[package]] name = "tauri-utils" version = "2.1.1" @@ -8746,12 +9211,24 @@ dependencies = [ "tinyvec", ] +[[package]] +name = "unicode-properties" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0" + [[package]] name = "unicode-segmentation" version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" +[[package]] +name = "unicode_categories" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" + [[package]] name = "universal-hash" version = "0.5.1" @@ -8974,6 +9451,12 @@ dependencies = [ "wit-bindgen-rt", ] +[[package]] +name = "wasite" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" + [[package]] name = "wasm-bindgen" version = "0.2.95" @@ -9231,6 +9714,16 @@ dependencies = [ "rustix", ] +[[package]] +name = "whoami" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "372d5b87f58ec45c384ba03563b03544dc5fadc3983e434b286913f5b4a9bb6d" +dependencies = [ + "redox_syscall", + "wasite", +] + [[package]] name = "widestring" version = "0.4.3" diff --git a/apps/cli/package.json b/apps/cli/package.json index 5ea43d4..4dd050b 100644 --- a/apps/cli/package.json +++ b/apps/cli/package.json @@ -31,7 +31,7 @@ "debug": "^4.4.0", "fs-extra": "^11.2.0", "inquirer": "^10.1.2", - "valibot": "^1.0.0-beta.10" + "valibot": "^1.0.0" }, "files": [ "dist" diff --git a/apps/create-kunkun/package.json b/apps/create-kunkun/package.json index 64777b5..473e6de 100644 --- a/apps/create-kunkun/package.json +++ b/apps/create-kunkun/package.json @@ -27,7 +27,7 @@ "commander": "^12.1.0", "fs-extra": "^11.2.0", "handlebars": "^4.7.8", - "valibot": "^1.0.0-beta.10" + "valibot": "^1.0.0" }, "files": [ "dist" diff --git a/apps/desktop/dev.ts b/apps/desktop/dev.ts new file mode 100644 index 0000000..174ad49 --- /dev/null +++ b/apps/desktop/dev.ts @@ -0,0 +1,13 @@ +import { IconType } from "@kksh/api/models" +import { getExtensionsLatestPublishByIdentifier } from "@kksh/sdk" + +const latestPublish = await getExtensionsLatestPublishByIdentifier({ + path: { + identifier: "RAG1" + } +}) +console.log(latestPublish) +// latestPublish + +// console.log(typeof IconEnum.Iconify) +console.log(IconType.options) diff --git a/apps/desktop/messages/de.json b/apps/desktop/messages/de.json new file mode 100644 index 0000000..a5cc692 --- /dev/null +++ b/apps/desktop/messages/de.json @@ -0,0 +1,91 @@ +{ + "$schema": "https://inlang.com/schema/inlang-message-format", + + "app_name": "KunKun", + "secondary_app_name": "KunKun", + + "common_edit": "Bearbeiten", + "common_clear": "Löschen", + "common_check": "Prüfen", + "common_install": "Installieren", + + "home_command_input_placeholder": "Suchen…", + "home_command_input_dropdown_quit": "Beenden", + "home_command_input_dropdown_developer_title": "Entwickler", + "home_command_input_dropdown_close_window": "Fenster schließen", + "home_command_input_dropdown_toggle_devtools": "Entwicklertools umschalten", + "home_command_input_dropdown_reload_window": "Fenster neu laden", + "home_command_input_dropdown_open_preference": "Einstellungen öffnen", + "home_command_input_dropdown_toggle_dev_extension_hmr": "Entwicklererweiterungen HMR umschalten", + + "command_group_heading_dev_ext": "Entwicklererweiterungen", + "command_group_heading_ext": "Erweiterungen", + "command_group_heading_quick_links": "Quick Links", + + "settings_menu_settings": "Einstellungen", + "settings_menu_general": "Allgemein", + "settings_menu_app_search_paths": "Verzeichnisse für Programme", + "settings_menu_developer": "Entwickler", + "settings_menu_extensions": "Erweiterungen", + "settings_menu_set_dev_ext": "Dev-Erweiterung festlegen", + "settings_menu_add_dev_ext": "Dev-Erweiterung hinzufügen", + "settings_menu_about": "Über", + + "settings_general_launch_at_login": "Beim Systemstart öffnen", + "settings_general_hotkey": "Tastenkombination", + "settings_general_menu_bar_icon": "Menüleiste-Symbol", + "settings_general_hide_on_blur": "Automatisch ausblenden", + "settings_general_extension_auto_upgrade": "Erweiterungen automatisch aktualisieren", + "settings_general_dev_extension_hmr": "Entwicklererweiterungen HMR", + "settings_general_join_beta_updates": "Beta-Updates nutzen", + "settings_general_developer_mode": "Entwickler-Modus", + "settings_general_language": "Sprache", + "settings_general_loading_animation": "Ladeanimation", + + "settings_app_search_paths_title": "Zusätzliche Verzeichnisse für die Programm-Suche", + "settings_app_search_paths_add_app_search_path": "Verzeichnis für Programm-Suche hinzufügen", + "settings_app_search_paths_table_col_search_path": "Suchpfad", + "settings_app_search_paths_table_col_depth": "Tiefe", + "settings_app_search_paths_table_col_actions": "Aktionen", + + "settings_about_version": "Version", + "settings_about_author": "Autor", + "settings_about_source_code": "Quellcode", + "settings_about_extensions_source_code": "Quellcode für Erweiterungen", + "settings_about_check_for_updates": "Nach Updates suchen", + + "settings_set_dev_ext_title": "Verzeichnis der Entwicklererweiterungen", + "settings_set_dev_ext_description": "Hier werden Entwicklererweiterungen installiert.", + "settings_set_dev_ext_enter_path": "Verzeichnis eingeben", + + "settings_extensions_title": "Deine Erweiterungen", + "settings_extensions_table_col_name": "Name", + "settings_extensions_table_col_identifier": "Identifikator", + "settings_extensions_table_col_type": "Typ", + "settings_extensions_table_col_version": "Version", + "settings_extensions_table_col_uninstall": "Deinstallieren", + + "settings_add_dev_ext_title": "Entwicklererweiterung hinzufügen", + "settings_add_dev_ext_description": "Es gibt vier Möglichkeiten, eine Erweiterung als Entwicklererweiterung zu installieren. Tarball-Archiv, lokales Verzeichnis, URL zu Tarball-Archiv oder NPM-Paketnamen.", + "settings_add_dev_ext_install_from_ext_folders": "Verzeichnis", + "settings_add_dev_ext_install_from_ext_files": "Tarball-Archiv", + "settings_add_dev_ext_drag_and_drop": "Drag and Drop", + "settings_add_dev_ext_drag_and_drop_strike": "Drag and Drop", + "settings_add_dev_ext_drag_and_drop2": "Verzeichnis oder Tarball-Archiv", + "settings_add_dev_ext_install_tarball_from_url": "Tarball-Archiv aus URL installieren", + + "troubleshooters_sidebar_title": "Fehlerbehebung", + "troubleshooters_sidebar_extension_loading_title": "Ladevorgang", + "troubleshooters_sidebar_extension_window_title": "Darstellung", + "troubleshooters_sidebar_mdns_debugger_title": "MDNS-Debugger", + + "troubleshooters_extension_window_title": "Fehlerbehebung für die Darstellung von Erweiterungen", + "troubleshooters_extension_window_refresh_every_second": "Jede Sekunde neu laden", + "troubleshooters_extension_window_refresh": "Neu laden", + "troubleshooters_extension_window_refreshed": "{count}x neu geladen", + + "troubleshooters_extension_loading_title": "Fehlerbehebung für den Ladevorgang von Erweiterungen", + "troubleshooters_extension_loading_table_col_identifier": "Identifikator", + "troubleshooters_extension_loading_table_col_path": "Verzeichnis", + "troubleshooters_extension_loading_table_col_error": "Fehler" +} diff --git a/apps/desktop/messages/en.json b/apps/desktop/messages/en.json index ccbea98..4b37e36 100644 --- a/apps/desktop/messages/en.json +++ b/apps/desktop/messages/en.json @@ -40,6 +40,7 @@ "settings_general_join_beta_updates": "Join Beta Updates", "settings_general_developer_mode": "Developer Mode", "settings_general_language": "Language", + "settings_general_loading_animation": "Loading Animation", "settings_app_search_paths_title": "Extra App Search Paths", "settings_app_search_paths_add_app_search_path": "Add App Search Path", diff --git a/apps/desktop/messages/pt.json b/apps/desktop/messages/pt.json index 6d386da..0b5db51 100644 --- a/apps/desktop/messages/pt.json +++ b/apps/desktop/messages/pt.json @@ -39,6 +39,7 @@ "settings_general_join_beta_updates": "Participar das Atualizações Beta", "settings_general_developer_mode": "Modo Desenvolvedor", "settings_general_language": "Idioma", + "settings_general_loading_animation": "Animação de Carregamento", "settings_about_version": "Versão", "settings_about_author": "Autor", diff --git a/apps/desktop/messages/ru.json b/apps/desktop/messages/ru.json index 4d1104f..9b21c36 100644 --- a/apps/desktop/messages/ru.json +++ b/apps/desktop/messages/ru.json @@ -39,6 +39,7 @@ "settings_general_join_beta_updates": "Получать бета-обновления", "settings_general_developer_mode": "Режим разработчика", "settings_general_language": "Язык", + "settings_general_loading_animation": "Анимация загрузки", "settings_about_version": "Версия", "settings_about_author": "Автор", diff --git a/apps/desktop/messages/vi.json b/apps/desktop/messages/vi.json index 01cc717..ef99053 100644 --- a/apps/desktop/messages/vi.json +++ b/apps/desktop/messages/vi.json @@ -39,6 +39,7 @@ "settings_general_join_beta_updates": "Cài đặt cập nhật thử nghiệm (beta)", "settings_general_developer_mode": "Chế độ nhà phát triển", "settings_general_language": "Ngôn ngữ", + "settings_general_loading_animation": "Hình ảnh tải", "settings_about_version": "Phiên bản", "settings_about_author": "Tác giả", diff --git a/apps/desktop/messages/zh.json b/apps/desktop/messages/zh.json index 9fd05b1..86f7903 100644 --- a/apps/desktop/messages/zh.json +++ b/apps/desktop/messages/zh.json @@ -40,6 +40,7 @@ "settings_general_join_beta_updates": "加入 Beta 更新", "settings_general_developer_mode": "开发者模式", "settings_general_language": "语言", + "settings_general_loading_animation": "加载动画", "settings_app_search_paths_title": "额外应用搜索路径", "settings_app_search_paths_add_app_search_path": "添加应用搜索路径", diff --git a/apps/desktop/package.json b/apps/desktop/package.json index 8381a71..1649263 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -1,6 +1,6 @@ { "name": "@kksh/desktop", - "version": "0.1.33", + "version": "0.1.37-beta.1", "description": "", "type": "module", "scripts": { @@ -17,8 +17,8 @@ "dependencies": { "@formkit/auto-animate": "^0.8.2", "@inlang/paraglide-sveltekit": "0.16.0", + "@kksh/drizzle": "workspace:*", "@kksh/extension": "workspace:*", - "@kksh/supabase": "workspace:*", "@kksh/svelte5": "^0.1.15", "@kksh/ui": "workspace:*", "@kksh/utils": "workspace:*", @@ -28,20 +28,24 @@ "@tauri-apps/api": "^2.3.0", "@tauri-apps/plugin-autostart": "^2.2.0", "@tauri-apps/plugin-shell": "^2.2.0", + "@tauri-apps/plugin-sql": "^2.2.0", "@tauri-apps/plugin-stronghold": "^2.2.0", + "@tauri-store/svelte": "^2.1.1", "dompurify": "^3.2.4", + "drizzle-orm": "^0.40.1", "eslint": "^9.21.0", "fuse.js": "^7.1.0", "gsap": "^3.12.7", - "kkrpc": "^0.1.2", + "kkrpc": "^0.2.2", "lz-string": "^1.5.0", "pretty-bytes": "^6.1.1", "semver": "^7.7.1", - "svelte-inspect-value": "^0.3.0", + "svelte-inspect-value": "^0.5.0", "svelte-sonner": "^0.3.28", "sveltekit-superforms": "^2.23.1", "tauri-plugin-clipboard-api": "^2.1.11", "tauri-plugin-shellx-api": "^2.0.16", + "tauri-plugin-svelte": "1.2.1", "tauri-plugin-user-input-api": "workspace:*", "uuid": "^11.1.0" }, diff --git a/apps/desktop/project.inlang/settings.json b/apps/desktop/project.inlang/settings.json index 3f6ab16..75df584 100644 --- a/apps/desktop/project.inlang/settings.json +++ b/apps/desktop/project.inlang/settings.json @@ -1,7 +1,7 @@ { "$schema": "https://inlang.com/schema/project-settings", "sourceLanguageTag": "en", - "languageTags": ["en", "zh", "ru", "pt", "vi"], + "languageTags": ["en", "zh", "ru", "pt", "vi", "de"], "modules": [ "https://cdn.jsdelivr.net/npm/@inlang/message-lint-rule-empty-pattern@latest/dist/index.js", "https://cdn.jsdelivr.net/npm/@inlang/message-lint-rule-missing-translation@latest/dist/index.js", diff --git a/apps/desktop/src-tauri/Cargo.toml b/apps/desktop/src-tauri/Cargo.toml index f22775d..d532862 100644 --- a/apps/desktop/src-tauri/Cargo.toml +++ b/apps/desktop/src-tauri/Cargo.toml @@ -58,6 +58,7 @@ uuid = "1.14.0" obfstr = { workspace = true } base64 = { workspace = true } tauri-plugin-stronghold = "2.2.0" +tauri-plugin-sql = "2" [target."cfg(target_os = \"macos\")".dependencies] @@ -71,3 +72,4 @@ tauri-plugin-cli = "2" tauri-plugin-global-shortcut = "2.0.1" tauri-plugin-single-instance = { version = "2", features = ["deep-link"] } tauri-plugin-updater = "2.0.2" +tauri-plugin-svelte = "2.1.1" diff --git a/apps/desktop/src-tauri/capabilities/default.json b/apps/desktop/src-tauri/capabilities/default.json index 3061496..04b1c29 100644 --- a/apps/desktop/src-tauri/capabilities/default.json +++ b/apps/desktop/src-tauri/capabilities/default.json @@ -24,6 +24,7 @@ "core:event:default", "core:window:default", "core:window:allow-set-size", + "core:window:allow-set-enabled", "core:window:allow-start-dragging", "core:window:allow-set-focus", "core:window:allow-toggle-maximize", diff --git a/apps/desktop/src-tauri/capabilities/svelte.json b/apps/desktop/src-tauri/capabilities/svelte.json new file mode 100644 index 0000000..eac7c73 --- /dev/null +++ b/apps/desktop/src-tauri/capabilities/svelte.json @@ -0,0 +1,5 @@ +{ + "identifier": "svelte", + "windows": ["*"], + "permissions": ["svelte:default", "core:event:default"] +} diff --git a/apps/desktop/src-tauri/src/lib.rs b/apps/desktop/src-tauri/src/lib.rs index 7eacd17..55181ed 100644 --- a/apps/desktop/src-tauri/src/lib.rs +++ b/apps/desktop/src-tauri/src/lib.rs @@ -27,7 +27,7 @@ use utils::server::tauri_file_server; pub fn run() { let context = tauri::generate_context!(); let mut builder = tauri::Builder::default(); - + // let app_data_path = tauri::path::PathResolver::app_data_dir().unwrap(); // let db_key = if cfg!(debug_assertions) { // None // } else { @@ -108,10 +108,16 @@ pub fn run() { .build(), ) .plugin(tauri_plugin_cli::init()) + .plugin( + tauri_plugin_sql::Builder::default() + // .add_migrations("sqlite:mydatabase.db", migrations) + .build(), + ) .plugin(tauri_plugin_user_input::init()) .plugin(tauri_plugin_deep_link::init()) .plugin(tauri_plugin_shell::init()) .plugin(tauri_plugin_os::init()) + .plugin(tauri_plugin_svelte::init()) .plugin(tauri_plugin_process::init()) .plugin(tauri_plugin_autostart::init( MacosLauncher::LaunchAgent, diff --git a/apps/desktop/src-tauri/tauri.conf.json b/apps/desktop/src-tauri/tauri.conf.json index 0fc2bc4..1cd78a3 100644 --- a/apps/desktop/src-tauri/tauri.conf.json +++ b/apps/desktop/src-tauri/tauri.conf.json @@ -5,7 +5,7 @@ "identifier": "sh.kunkun.desktop", "build": { "beforeDevCommand": "pnpm dev", - "devUrl": "http://localhost:1420", + "devUrl": "http://localhost:1566", "beforeBuildCommand": "pnpm build", "frontendDist": "../build" }, @@ -20,6 +20,7 @@ "url": "/app", "title": "Kunkun", "width": 800, + "label": "main", "visible": false, "height": 600, "decorations": true, diff --git a/apps/desktop/src/lib/cmds/builtin.ts b/apps/desktop/src/lib/cmds/builtin.ts index 0a9a992..40f54da 100644 --- a/apps/desktop/src/lib/cmds/builtin.ts +++ b/apps/desktop/src/lib/cmds/builtin.ts @@ -242,6 +242,23 @@ export const rawBuiltinCmds: BuiltinCmd[] = [ }, keywords: ["extension", "troubleshooter"] }, + { + name: "ORM Troubleshooter", + icon: { + type: IconEnum.Iconify, + value: "material-symbols:database" + }, + description: "", + flags: { + developer: true, + dev: true + }, + function: async () => { + appState.clearSearchTerm() + goto(i18n.resolveRoute("/app/troubleshooters/orm")) + }, + keywords: ["extension", "troubleshooter", "database", "orm"] + }, { name: "Create Quicklink", icon: { @@ -411,7 +428,7 @@ export const rawBuiltinCmds: BuiltinCmd[] = [ visible: false }) setTimeout(() => { - window.show() + window.show().then(() => window.setFocus()) }, 2_000) } }, diff --git a/apps/desktop/src/lib/cmds/ext.ts b/apps/desktop/src/lib/cmds/ext.ts index dd35023..21db8d6 100644 --- a/apps/desktop/src/lib/cmds/ext.ts +++ b/apps/desktop/src/lib/cmds/ext.ts @@ -3,19 +3,22 @@ import { appState } from "@/stores" import { winExtMap } from "@/stores/winExtMap" import { helperAPI } from "@/utils/helper" import { paste } from "@/utils/hotkey" +import { decideKkrpcSerialization } from "@/utils/kkrpc" import { sleep } from "@/utils/time" import { trimSlash } from "@/utils/url" import { constructExtensionSupportDir } from "@kksh/api" -import { db, spawnExtensionFileServer } from "@kksh/api/commands" +import { spawnExtensionFileServer } from "@kksh/api/commands" import type { HeadlessCommand } from "@kksh/api/headless" import { CustomUiCmd, ExtPackageJsonExtra, HeadlessCmd, TemplateUiCmd } from "@kksh/api/models" import { constructJarvisServerAPIWithPermissions, type IApp } from "@kksh/api/ui" +import { db } from "@kksh/drizzle" import { launchNewExtWindow, loadExtensionManifestFromDisk } from "@kksh/extension" import type { IKunkunFullServerAPI } from "@kunkunapi/src/api/server" import { convertFileSrc } from "@tauri-apps/api/core" import * as path from "@tauri-apps/api/path" import { getCurrentWindow } from "@tauri-apps/api/window" import * as fs from "@tauri-apps/plugin-fs" +import { info } from "@tauri-apps/plugin-log" import { platform } from "@tauri-apps/plugin-os" import { goto } from "$app/navigation" import { RPCChannel, WorkerParentIO } from "kkrpc/browser" @@ -85,6 +88,7 @@ export async function onHeadlessCmdSelect( const loadedExt = await loadExtensionManifestFromDisk( await path.join(ext.extPath, "package.json") ) + const scriptPath = await path.join(loadedExt.extPath, cmd.main) const workerScript = await fs.readTextFile(scriptPath) const blob = new Blob([workerScript], { type: "application/javascript" }) @@ -124,8 +128,15 @@ export async function onHeadlessCmdSelect( } satisfies IApp } const io = new WorkerParentIO(worker) + const kkrpcSerialization = decideKkrpcSerialization(loadedExt) + info( + `Establishing kkrpc connection for ${loadedExt.kunkun.identifier} with serialization: ${kkrpcSerialization}` + ) const rpc = new RPCChannel(io, { - expose: serverAPI2 + expose: serverAPI2, + serialization: { + version: kkrpcSerialization + } }) const workerAPI = rpc.getAPI() await workerAPI.load() diff --git a/apps/desktop/src/lib/cmds/index.ts b/apps/desktop/src/lib/cmds/index.ts index 8e43019..3a77a98 100644 --- a/apps/desktop/src/lib/cmds/index.ts +++ b/apps/desktop/src/lib/cmds/index.ts @@ -12,7 +12,7 @@ import { onQuickLinkSelect } from "./quick-links" const onExtCmdSelect: OnExtCmdSelect = ( ext: ExtPackageJsonExtra, - cmd: CustomUiCmd | TemplateUiCmd, + cmd: CustomUiCmd | TemplateUiCmd | HeadlessCmd, { isDev, hmr }: { isDev: boolean; hmr: boolean } ) => { switch (cmd.type) { diff --git a/apps/desktop/src/lib/components/common/FullScreenLoading.svelte b/apps/desktop/src/lib/components/common/FullScreenLoading.svelte new file mode 100644 index 0000000..85abd02 --- /dev/null +++ b/apps/desktop/src/lib/components/common/FullScreenLoading.svelte @@ -0,0 +1,37 @@ + + + + + {#if $appConfig.loadingAnimation === "kunkun-dancing"} + + + {:else} + + + Loading + {/if} + + diff --git a/apps/desktop/src/lib/components/context/AppContext.svelte b/apps/desktop/src/lib/components/context/AppContext.svelte index f5faa46..ef9990b 100644 --- a/apps/desktop/src/lib/components/context/AppContext.svelte +++ b/apps/desktop/src/lib/components/context/AppContext.svelte @@ -1,8 +1,8 @@ @@ -101,6 +105,31 @@ +
  • + {m.settings_general_loading_animation()} + + + + {loadingAnimation} + + + + Loading Animation + {#each loadingAnimations as anim} + { + appConfig.setLoadingAnimation(anim) + }} + value={anim} + label={anim} + > + {anim} + + {/each} + + + +
  • diff --git a/packages/ui/src/components/animation/RetroGrid.svelte b/packages/ui/src/components/animation/RetroGrid.svelte new file mode 100644 index 0000000..6a80b39 --- /dev/null +++ b/packages/ui/src/components/animation/RetroGrid.svelte @@ -0,0 +1,36 @@ + + +
    + +
    +
    +
    + + +
    +
    diff --git a/packages/ui/src/components/animation/ShineBorder.svelte b/packages/ui/src/components/animation/ShineBorder.svelte new file mode 100644 index 0000000..2af2599 --- /dev/null +++ b/packages/ui/src/components/animation/ShineBorder.svelte @@ -0,0 +1,39 @@ + + +
    +
    + + Default +
    diff --git a/packages/ui/src/components/animation/WordRotate.svelte b/packages/ui/src/components/animation/WordRotate.svelte new file mode 100644 index 0000000..fac0143 --- /dev/null +++ b/packages/ui/src/components/animation/WordRotate.svelte @@ -0,0 +1,35 @@ + + +
    + {#key index} + +

    + {words[index]} +

    + {/key} +
    diff --git a/packages/ui/src/components/animation/index.ts b/packages/ui/src/components/animation/index.ts new file mode 100644 index 0000000..cde8b67 --- /dev/null +++ b/packages/ui/src/components/animation/index.ts @@ -0,0 +1,8 @@ +export { default as GridAnimation } from "./grid-animation.svelte" +export { default as BorderBeam } from "./BorderBeam.svelte" +export { default as Meteors } from "./meteros.svelte" +export { default as RetroGrid } from "./RetroGrid.svelte" +export { default as AuroraText } from "./AuroraText.svelte" +export { default as WordRotate } from "./WordRotate.svelte" +export { default as MagicCard } from "./MagicCard.svelte" +export { default as Globe } from "./Globe.svelte" diff --git a/packages/ui/src/components/animation/meteros.svelte b/packages/ui/src/components/animation/meteros.svelte new file mode 100644 index 0000000..f46c56a --- /dev/null +++ b/packages/ui/src/components/animation/meteros.svelte @@ -0,0 +1,41 @@ + + +{#each meteorStyles as style, idx} + + +
    +
    +{/each} diff --git a/packages/ui/src/components/code/shiki.svelte b/packages/ui/src/components/code/shiki.svelte index f337046..18a21be 100644 --- a/packages/ui/src/components/code/shiki.svelte +++ b/packages/ui/src/components/code/shiki.svelte @@ -36,7 +36,7 @@ {#await highlighter2 then highlighter} - import { IconEnum, OSPlatformEnum } from "@kksh/api/models" + import { IconEnum, OSPlatform, OSPlatformEnum } from "@kksh/api/models" import { IconMultiplexer } from "@kksh/ui" - const { platforms }: { platforms: OSPlatformEnum[] } = $props() + const { platforms }: { platforms: OSPlatform[] } = $props()
    diff --git a/packages/ui/src/components/common/TauriLink.svelte b/packages/ui/src/components/common/TauriLink.svelte index 8a048b1..8a6bfa8 100644 --- a/packages/ui/src/components/common/TauriLink.svelte +++ b/packages/ui/src/components/common/TauriLink.svelte @@ -5,36 +5,46 @@ import type { HTMLAttributes } from "svelte/elements" import { open } from "tauri-plugin-shellx-api" - const { + let { href, class: className = "", - children + style, + children, + ref = $bindable(null) }: { - href: string + href?: string + style?: HTMLAttributes["style"] class?: HTMLAttributes["class"] children: Snippet + ref?: HTMLAnchorElement | HTMLButtonElement | null } = $props() // @ts-expect-error window.__TAURI_INTERNALS__ is not defined in the browser const isInTauri = browser ? !!window.__TAURI_INTERNALS__ : false function handleClick() { - open(href) + if (href) { + open(href) + } } {#if isInTauri} {:else} - import autoAnimate from "@formkit/auto-animate" import Icon from "@iconify/svelte" import { Button, ButtonModule, Collapsible, ScrollArea } from "@kksh/svelte5" import { Error, Layouts, Shiki } from "@kksh/ui" import { ChevronsUpDown } from "lucide-svelte" import { type Snippet } from "svelte" - import { fade, slide } from "svelte/transition" const { title, diff --git a/packages/ui/src/components/extension/ExtListItem.svelte b/packages/ui/src/components/extension/ExtListItem.svelte index 20387c0..e1673de 100644 --- a/packages/ui/src/components/extension/ExtListItem.svelte +++ b/packages/ui/src/components/extension/ExtListItem.svelte @@ -1,7 +1,6 @@ @@ -60,6 +61,12 @@ class="underline">Transparentcy log entry

    +

    + Mirror + + Mirror Repo + +

    diff --git a/packages/ui/src/components/extension/PermissionInspector.svelte b/packages/ui/src/components/extension/PermissionInspector.svelte index 3917046..85c3424 100644 --- a/packages/ui/src/components/extension/PermissionInspector.svelte +++ b/packages/ui/src/components/extension/PermissionInspector.svelte @@ -1,20 +1,20 @@