From e9609cf8ee4e8aa254b3681fcd7efeb98067d4a7 Mon Sep 17 00:00:00 2001 From: Huakun Shen Date: Fri, 15 Nov 2024 17:39:01 -0500 Subject: [PATCH] Update Extension API (#25) * feat: add file drop API to ui worker extension * update: some shell API --- Cargo.lock | 315 +++-- apps/desktop/src-tauri/Cargo.toml | 2 +- .../src-tauri/capabilities/default.json | 1 + apps/desktop/src/lib/stores/winExtMap.ts | 3 +- apps/desktop/src/lib/utils/deeplink.ts | 4 +- apps/desktop/src/routes/+layout.svelte | 13 +- apps/desktop/src/routes/+layout.ts | 1 + apps/desktop/src/routes/+page.svelte | 8 + .../routes/extension/ui-worker/+page.svelte | 13 +- apps/desktop/tailwind.config.ts | 4 +- package.json | 2 +- packages/api/jsr.json | 2 +- packages/api/package.json | 4 +- packages/api/src/permissions/schema.ts | 4 +- packages/api/src/ui/api/shell.ts | 41 +- packages/api/src/ui/server/deno.ts | 15 +- packages/api/src/ui/server/server-types.ts | 1 + packages/api/src/ui/server/shell.ts | 24 +- packages/api/src/ui/worker/ext.ts | 4 + packages/api/src/ui/worker/index.ts | 3 +- packages/api/src/version.ts | 2 +- .../deno-src/deno.json | 3 +- .../deno-src/deno.lock | 1086 ++++++++++++++++- .../demo-worker-template-ext/deno-src/dev.ts | 8 + .../demo-worker-template-ext/deno-src/rpc.ts | 19 + .../demo-worker-template-ext/package.json | 220 ++-- .../demo-worker-template-ext/src/index.ts | 26 +- packages/ui/package.json | 2 +- .../extension/templates/list-view.svelte | 20 +- pnpm-lock.yaml | 23 +- 30 files changed, 1517 insertions(+), 356 deletions(-) create mode 100644 packages/extensions/demo-worker-template-ext/deno-src/dev.ts diff --git a/Cargo.lock b/Cargo.lock index 9845496..d27f3c6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -187,7 +187,7 @@ dependencies = [ "serde_derive", "serde_json", "tauri-icns", - "thiserror", + "thiserror 1.0.66", "walkdir", "winreg 0.52.0", ] @@ -215,7 +215,7 @@ checksum = "0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -350,7 +350,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -390,7 +390,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -407,7 +407,7 @@ checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -681,7 +681,7 @@ dependencies = [ "proc-macro-crate 2.0.2", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", "syn_derive", ] @@ -820,7 +820,7 @@ dependencies = [ "glib", "libc", "once_cell", - "thiserror", + "thiserror 1.0.66", ] [[package]] @@ -863,7 +863,7 @@ dependencies = [ "semver", "serde", "serde_json", - "thiserror", + "thiserror 1.0.66", ] [[package]] @@ -1395,7 +1395,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" dependencies = [ "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -1405,7 +1405,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edb49164822f3ee45b17acd4a208cfc1251410cf0cad9a833234c9890774dd9f" dependencies = [ "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -1429,7 +1429,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.11.1", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -1440,7 +1440,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -1497,7 +1497,7 @@ checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -1510,7 +1510,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -1600,7 +1600,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -1632,7 +1632,7 @@ checksum = "f2b99bf03862d7f545ebc28ddd33a665b50865f4dfd84031a393823879bd4c54" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -1745,7 +1745,7 @@ checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -1902,15 +1902,6 @@ dependencies = [ "miniz_oxide", ] -[[package]] -name = "fluent-uri" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17c704e9dbe1ddd863da1e6ff3567795087b1eb201ce80d8fa81162e1516500d" -dependencies = [ - "bitflags 1.3.2", -] - [[package]] name = "flume" version = "0.11.1" @@ -1955,7 +1946,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -2064,7 +2055,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -2289,7 +2280,7 @@ dependencies = [ "once_cell", "pin-project-lite", "smallvec", - "thiserror", + "thiserror 1.0.66", ] [[package]] @@ -2325,7 +2316,7 @@ dependencies = [ "memchr", "once_cell", "smallvec", - "thiserror", + "thiserror 1.0.66", ] [[package]] @@ -2339,7 +2330,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -2370,7 +2361,7 @@ dependencies = [ "objc2-app-kit", "once_cell", "serde", - "thiserror", + "thiserror 1.0.66", "windows-sys 0.59.0", "x11-dl", ] @@ -2448,7 +2439,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -2965,7 +2956,7 @@ checksum = "c34819042dc3d3971c46c2190835914dfbe0c3c13f61449b2997f4e9722dfa60" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -3074,7 +3065,7 @@ dependencies = [ "combine", "jni-sys", "log", - "thiserror", + "thiserror 1.0.66", "walkdir", "windows-sys 0.45.0", ] @@ -3109,39 +3100,16 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "json-patch" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b1fb8864823fad91877e6caea0baca82e49e8db50f8e5c9f9a453e27d3330fc" -dependencies = [ - "jsonptr 0.4.7", - "serde", - "serde_json", - "thiserror", -] - [[package]] name = "json-patch" version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "863726d7afb6bc2590eeff7135d923545e5e964f004c2ccf8716c25e70a86f08" dependencies = [ - "jsonptr 0.6.3", - "serde", - "serde_json", - "thiserror", -] - -[[package]] -name = "jsonptr" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c6e529149475ca0b2820835d3dce8fcc41c6b943ca608d32f35b449255e4627" -dependencies = [ - "fluent-uri", + "jsonptr", "serde", "serde_json", + "thiserror 1.0.66", ] [[package]] @@ -3579,7 +3547,7 @@ dependencies = [ "once_cell", "png", "serde", - "thiserror", + "thiserror 1.0.66", "windows-sys 0.59.0", ] @@ -3618,7 +3586,7 @@ dependencies = [ "ndk-sys", "num_enum", "raw-window-handle", - "thiserror", + "thiserror 1.0.66", ] [[package]] @@ -3645,7 +3613,7 @@ dependencies = [ "cc", "libc", "serde", - "thiserror", + "thiserror 1.0.66", "winapi", ] @@ -3758,7 +3726,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -3818,7 +3786,7 @@ dependencies = [ "proc-macro-crate 2.0.2", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -4127,7 +4095,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -4258,7 +4226,7 @@ dependencies = [ "bitflags 1.3.2", "byteorder", "chrono", - "thiserror", + "thiserror 1.0.66", "widestring", ] @@ -4404,7 +4372,7 @@ dependencies = [ "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -4451,7 +4419,7 @@ checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -4568,7 +4536,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033" dependencies = [ "proc-macro2", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -4646,7 +4614,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a65f2e60fbf1063868558d69c6beacf412dc755f9fc020f514b7955fc914fe30" dependencies = [ "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -4676,7 +4644,7 @@ dependencies = [ "prost", "prost-types", "regex", - "syn 2.0.86", + "syn 2.0.87", "tempfile", ] @@ -4690,7 +4658,7 @@ dependencies = [ "itertools", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -4793,7 +4761,7 @@ dependencies = [ "rustc-hash", "rustls 0.23.16", "socket2", - "thiserror", + "thiserror 1.0.66", "tokio", "tracing", ] @@ -4810,7 +4778,7 @@ dependencies = [ "rustc-hash", "rustls 0.23.16", "slab", - "thiserror", + "thiserror 1.0.66", "tinyvec", "tracing", ] @@ -4955,7 +4923,7 @@ dependencies = [ "rand_chacha 0.3.1", "simd_helpers", "system-deps", - "thiserror", + "thiserror 1.0.66", "v_frame", "wasm-bindgen", ] @@ -5028,7 +4996,7 @@ checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ "getrandom 0.2.15", "libredox", - "thiserror", + "thiserror 1.0.66", ] [[package]] @@ -5444,7 +5412,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -5529,9 +5497,9 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.214" +version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f55c3193aca71c12ad7890f1785d2b73e1b9f63a0bbc353c08ef26fe03fc56b5" +checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f" dependencies = [ "serde_derive", ] @@ -5549,13 +5517,13 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.214" +version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de523f781f095e28fa605cdce0f8307e451cc0fd14e2eb4cd2e98a355b147766" +checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -5566,7 +5534,7 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -5599,7 +5567,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -5650,7 +5618,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -5933,7 +5901,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -5966,9 +5934,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.86" +version = "2.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89275301d38033efb81a6e60e3497e734dfcc62571f2854bf4b16690398824c" +checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" dependencies = [ "proc-macro2", "quote", @@ -5984,7 +5952,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -6083,9 +6051,9 @@ dependencies = [ [[package]] name = "tao" -version = "0.30.5" +version = "0.30.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63f1f6b2017cc33d7f6fc9c6186a2c0f5dfc985899a7b4fe9e64985c17533db3" +checksum = "6682a07cf5bab0b8a2bd20d0a542917ab928b5edb75ebd4eda6b05cbaab872da" dependencies = [ "bitflags 2.6.0", "cocoa 0.26.0", @@ -6128,7 +6096,7 @@ checksum = "f4e16beb8b2ac17db28eab8bca40e62dbfbb34c0fcdc6d9826b11b7b5d047dfd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -6156,9 +6124,9 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tauri" -version = "2.0.6" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3889b392db6d32a105d3757230ea0220090b8f94c90d3e60b6c5eb91178ab1b" +checksum = "e545de0a2dfe296fa67db208266cd397c5a55ae782da77973ef4c4fac90e9f2c" dependencies = [ "anyhow", "bytes", @@ -6194,7 +6162,7 @@ dependencies = [ "tauri-runtime", "tauri-runtime-wry", "tauri-utils", - "thiserror", + "thiserror 2.0.3", "tokio", "tray-icon", "url", @@ -6207,16 +6175,16 @@ dependencies = [ [[package]] name = "tauri-build" -version = "2.0.2" +version = "2.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f96827ccfb1aa40d55d0ded79562d18ba18566657a553f992a982d755148376" +checksum = "7bd2a4bcfaf5fb9f4be72520eefcb61ae565038f8ccba2a497d8c28f463b8c01" dependencies = [ "anyhow", "cargo_toml", "dirs 5.0.1", "glob", "heck 0.5.0", - "json-patch 3.0.1", + "json-patch", "schemars", "semver", "serde", @@ -6229,14 +6197,14 @@ dependencies = [ [[package]] name = "tauri-codegen" -version = "2.0.2" +version = "2.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8947f16f47becd9e9cd39b74ee337fd1981574d78819be18e4384d85e5a0b82f" +checksum = "bf79faeecf301d3e969b1fae977039edb77a4c1f25cc0a961be298b54bff97cf" dependencies = [ "base64 0.22.1", "brotli", "ico", - "json-patch 2.0.0", + "json-patch", "plist", "png", "proc-macro2", @@ -6245,9 +6213,9 @@ dependencies = [ "serde", "serde_json", "sha2", - "syn 2.0.86", + "syn 2.0.87", "tauri-utils", - "thiserror", + "thiserror 2.0.3", "time", "url", "uuid", @@ -6266,23 +6234,23 @@ dependencies = [ [[package]] name = "tauri-macros" -version = "2.0.2" +version = "2.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bd1c8d4a66799d3438747c3a79705cd665a95d6f24cb5f315413ff7a981fe2a" +checksum = "c52027c8c5afb83166dacddc092ee8fff50772f9646d461d8c33ee887e447a03" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", "tauri-codegen", "tauri-utils", ] [[package]] name = "tauri-plugin" -version = "2.0.2" +version = "2.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fa4e6c94cb1d635f65a770c69e23de1bc054b0e4c554fa037a7cc7676333d39" +checksum = "e753f2a30933a9bbf0a202fa47d7cc4a3401f06e8d6dcc53b79aa62954828c79" dependencies = [ "anyhow", "glob", @@ -6307,7 +6275,7 @@ dependencies = [ "serde_json", "tauri", "tauri-plugin", - "thiserror", + "thiserror 1.0.66", ] [[package]] @@ -6322,7 +6290,7 @@ dependencies = [ "serde", "tauri", "tauri-plugin", - "thiserror", + "thiserror 1.0.66", ] [[package]] @@ -6339,7 +6307,7 @@ dependencies = [ "tauri", "tauri-plugin", "tauri-utils", - "thiserror", + "thiserror 1.0.66", "url", "windows-registry 0.3.0", "windows-result 0.2.0", @@ -6359,7 +6327,7 @@ dependencies = [ "tauri", "tauri-plugin", "tauri-plugin-fs", - "thiserror", + "thiserror 1.0.66", "url", ] @@ -6379,7 +6347,7 @@ dependencies = [ "serde_repr", "tauri", "tauri-plugin", - "thiserror", + "thiserror 1.0.66", "url", "uuid", ] @@ -6396,7 +6364,7 @@ dependencies = [ "serde_json", "tauri", "tauri-plugin", - "thiserror", + "thiserror 1.0.66", ] [[package]] @@ -6415,7 +6383,7 @@ dependencies = [ "tauri", "tauri-plugin", "tauri-plugin-fs", - "thiserror", + "thiserror 1.0.66", "tokio", "url", "urlpattern", @@ -6452,7 +6420,7 @@ dependencies = [ "tauri-plugin-network", "tauri-plugin-store", "tauri-winres", - "thiserror", + "thiserror 1.0.66", "tokio", "tonic", "tonic-build", @@ -6482,7 +6450,7 @@ dependencies = [ "swift-rs", "tauri", "tauri-plugin", - "thiserror", + "thiserror 1.0.66", "time", ] @@ -6501,7 +6469,7 @@ dependencies = [ "serde", "tauri", "tauri-plugin", - "thiserror", + "thiserror 1.0.66", ] [[package]] @@ -6518,7 +6486,7 @@ dependencies = [ "serde_repr", "tauri", "tauri-plugin", - "thiserror", + "thiserror 1.0.66", "time", "url", ] @@ -6538,7 +6506,7 @@ dependencies = [ "sys-locale", "tauri", "tauri-plugin", - "thiserror", + "thiserror 1.0.66", ] [[package]] @@ -6568,15 +6536,15 @@ dependencies = [ "shared_child", "tauri", "tauri-plugin", - "thiserror", + "thiserror 1.0.66", "tokio", ] [[package]] name = "tauri-plugin-shellx" -version = "2.0.11" +version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f35c21a6f9bda23881d6fc82006306ffbeb3aee32b621f3c866bf8402007157" +checksum = "32409a09fd9351a3d3e25f7a2e2ba501b114c6869afb7b46d06a5473055c995f" dependencies = [ "encoding_rs", "open", @@ -6589,7 +6557,7 @@ dependencies = [ "strip-ansi-escapes", "tauri", "tauri-plugin", - "thiserror", + "thiserror 1.0.66", "tokio", ] @@ -6604,7 +6572,7 @@ dependencies = [ "serde_json", "tauri", "tauri-plugin-deep-link", - "thiserror", + "thiserror 1.0.66", "windows-sys 0.59.0", "zbus", ] @@ -6621,7 +6589,7 @@ dependencies = [ "serde_json", "tauri", "tauri-plugin", - "thiserror", + "thiserror 1.0.66", "tokio", ] @@ -6634,7 +6602,7 @@ dependencies = [ "sysinfo", "tauri", "tauri-plugin", - "thiserror", + "thiserror 1.0.66", "uom 0.35.0", ] @@ -6660,7 +6628,7 @@ dependencies = [ "tauri", "tauri-plugin", "tempfile", - "thiserror", + "thiserror 1.0.66", "time", "tokio", "url", @@ -6682,16 +6650,16 @@ dependencies = [ "serde_json", "tauri", "tauri-plugin", - "thiserror", + "thiserror 1.0.66", "tokio", "tokio-util", ] [[package]] name = "tauri-runtime" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1ef7363e7229ac8d04e8a5d405670dbd43dde8fc4bc3bc56105c35452d03784" +checksum = "cce18d43f80d4aba3aa8a0c953bbe835f3d0f2370aca75e8dbb14bd4bab27958" dependencies = [ "dpi", "gtk", @@ -6701,16 +6669,16 @@ dependencies = [ "serde", "serde_json", "tauri-utils", - "thiserror", + "thiserror 2.0.3", "url", "windows 0.58.0", ] [[package]] name = "tauri-runtime-wry" -version = "2.1.2" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62fa2068e8498ad007b54d5773d03d57c3ff6dd96f8c8ce58beff44d0d5e0d30" +checksum = "9f442a38863e10129ffe2cec7bd09c2dcf8a098a3a27801a476a304d5bb991d2" dependencies = [ "gtk", "http 1.1.0", @@ -6734,9 +6702,9 @@ dependencies = [ [[package]] name = "tauri-utils" -version = "2.0.2" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fc65d6f5c54e56b66258948a6d9e47a82ea41f4b5a7612bfbdd1634c2913ed0" +checksum = "9271a88f99b4adea0dc71d0baca4505475a0bbd139fb135f62958721aaa8fe54" dependencies = [ "brotli", "cargo_metadata", @@ -6744,8 +6712,9 @@ dependencies = [ "dunce", "glob", "html5ever", + "http 1.1.0", "infer", - "json-patch 2.0.0", + "json-patch", "kuchikiki", "log", "memchr", @@ -6760,7 +6729,7 @@ dependencies = [ "serde_json", "serde_with", "swift-rs", - "thiserror", + "thiserror 2.0.3", "toml 0.8.2", "url", "urlpattern", @@ -6825,7 +6794,16 @@ version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d171f59dbaa811dbbb1aee1e73db92ec2b122911a48e1390dfe327a821ddede" dependencies = [ - "thiserror-impl", + "thiserror-impl 1.0.66", +] + +[[package]] +name = "thiserror" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c006c85c7651b3cf2ada4584faa36773bd07bac24acfb39f3c431b36d7e667aa" +dependencies = [ + "thiserror-impl 2.0.3", ] [[package]] @@ -6836,7 +6814,18 @@ checksum = "b08be0f17bd307950653ce45db00cd31200d82b624b36e181337d9c7d92765b5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f077553d607adc1caf65430528a576c757a71ed73944b66ebb58ef2bbd243568" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", ] [[package]] @@ -6909,9 +6898,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.41.0" +version = "1.41.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145f3413504347a2be84393cc8a7d2fb4d863b375909ea59f2158261aa258bbb" +checksum = "22cfb5bee7a6a52939ca9224d6ac897bb669134078daa8735560897f69de4d33" dependencies = [ "backtrace", "bytes", @@ -6943,7 +6932,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -7097,7 +7086,7 @@ dependencies = [ "proc-macro2", "prost-build", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -7190,7 +7179,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -7219,7 +7208,7 @@ dependencies = [ "once_cell", "png", "serde", - "thiserror", + "thiserror 1.0.66", "windows-sys 0.59.0", ] @@ -7545,7 +7534,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", "wasm-bindgen-shared", ] @@ -7579,7 +7568,7 @@ checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -7748,7 +7737,7 @@ checksum = "1d228f15bba3b9d56dde8bddbee66fa24545bd17b48d5128ccf4a8742b18e431" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -7757,7 +7746,7 @@ version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3a3e2eeb58f82361c93f9777014668eb3d07e7d174ee4c819575a9208011886" dependencies = [ - "thiserror", + "thiserror 1.0.66", "windows 0.58.0", "windows-core 0.58.0", ] @@ -7891,7 +7880,7 @@ checksum = "f6fc35f58ecd95a9b71c4f2329b911016e6bec66b3f2e6a4aad86bd2e99e2f9b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -7902,7 +7891,7 @@ checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -7913,7 +7902,7 @@ checksum = "08990546bf4edef8f431fa6326e032865f27138718c587dc21bc0265bbcb57cc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -7924,7 +7913,7 @@ checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -8249,12 +8238,13 @@ dependencies = [ [[package]] name = "wry" -version = "0.46.3" +version = "0.47.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd5cdf57c66813d97601181349c63b96994b3074fc3d7a31a8cce96e968e3bbd" +checksum = "553ca1ce149982123962fac2506aa75b8b76288779a77e72b12fa2fc34938647" dependencies = [ "base64 0.22.1", "block2", + "cookie", "crossbeam-channel", "dpi", "dunce", @@ -8278,7 +8268,8 @@ dependencies = [ "sha2", "soup3", "tao-macros", - "thiserror", + "thiserror 1.0.66", + "url", "webkit2gtk", "webkit2gtk-sys", "webview2-com", @@ -8439,7 +8430,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -8459,7 +8450,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -8483,7 +8474,7 @@ dependencies = [ "num_enum", "pbkdf2", "sha1", - "thiserror", + "thiserror 1.0.66", "time", "zopfli", "zstd", @@ -8511,7 +8502,7 @@ dependencies = [ "pbkdf2", "rand 0.8.5", "sha1", - "thiserror", + "thiserror 1.0.66", "time", "zeroize", "zopfli", diff --git a/apps/desktop/src-tauri/Cargo.toml b/apps/desktop/src-tauri/Cargo.toml index 2ffebf6..3140e3b 100644 --- a/apps/desktop/src-tauri/Cargo.toml +++ b/apps/desktop/src-tauri/Cargo.toml @@ -33,7 +33,7 @@ chrono = { workspace = true } log = { workspace = true } urlencoding = "2.1.3" tauri-plugin-process = "2.0.1" -tauri-plugin-shellx = "2.0.11" +tauri-plugin-shellx = "2.0.12" tauri-plugin-fs = "2.0.1" tauri-plugin-dialog = "2.0.1" tauri-plugin-notification = "2.0.1" diff --git a/apps/desktop/src-tauri/capabilities/default.json b/apps/desktop/src-tauri/capabilities/default.json index 7c82d9b..8772be6 100644 --- a/apps/desktop/src-tauri/capabilities/default.json +++ b/apps/desktop/src-tauri/capabilities/default.json @@ -62,6 +62,7 @@ "shellx:allow-spawn", "shellx:allow-stdin-write", "shellx:allow-fix-path-env", + "shellx:allow-where-is-command", "dialog:default", "dialog:allow-open", "dialog:allow-confirm", diff --git a/apps/desktop/src/lib/stores/winExtMap.ts b/apps/desktop/src/lib/stores/winExtMap.ts index dfd3178..ae48236 100644 --- a/apps/desktop/src/lib/stores/winExtMap.ts +++ b/apps/desktop/src/lib/stores/winExtMap.ts @@ -10,7 +10,7 @@ import { unregisterExtensionSpawnedProcess, unregisterExtensionWindow } from "@kksh/api/commands" -import { warn } from "@tauri-apps/plugin-log" +import { debug, warn } from "@tauri-apps/plugin-log" import { get, writable, type Writable } from "svelte/store" export type WinExtMap = Record< @@ -99,6 +99,7 @@ function createWinExtMapStore(): Writable & API { cleanupProcessesFromWindow: async (windowLabel: string) => { const winExtMap = get(store) if (winExtMap[windowLabel]) { + debug(`Cleaning up processes from window ${windowLabel}: ${winExtMap[windowLabel].pids}`) await killProcesses(winExtMap[windowLabel].pids) } }, diff --git a/apps/desktop/src/lib/utils/deeplink.ts b/apps/desktop/src/lib/utils/deeplink.ts index 11bcc7f..80a9a36 100644 --- a/apps/desktop/src/lib/utils/deeplink.ts +++ b/apps/desktop/src/lib/utils/deeplink.ts @@ -9,7 +9,7 @@ import type { UnlistenFn } from "@tauri-apps/api/event" import { extname } from "@tauri-apps/api/path" import { getCurrentWebviewWindow } from "@tauri-apps/api/webviewWindow" import * as deepLink from "@tauri-apps/plugin-deep-link" -import { error } from "@tauri-apps/plugin-log" +import { error, info } from "@tauri-apps/plugin-log" import { goto } from "$app/navigation" import { toast } from "svelte-sonner" import * as v from "valibot" @@ -20,7 +20,7 @@ const StorePathSearchParams = v.object({ }) export function initDeeplink(): Promise { - console.log("init deeplink") + info("init deeplink") if (!isInMainWindow()) { return Promise.resolve(() => {}) } diff --git a/apps/desktop/src/routes/+layout.svelte b/apps/desktop/src/routes/+layout.svelte index 164a602..fcfae36 100644 --- a/apps/desktop/src/routes/+layout.svelte +++ b/apps/desktop/src/routes/+layout.svelte @@ -9,6 +9,7 @@ import { isInMainWindow } from "@/utils/window" import { listenToKillProcessEvent, listenToRecordExtensionProcessEvent } from "@kksh/api/events" import { + Button, ModeWatcher, themeConfigStore, ThemeWrapper, @@ -19,11 +20,12 @@ import { Constants, ViewTransition } from "@kksh/ui" import type { UnlistenFn } from "@tauri-apps/api/event" import { getCurrentWebviewWindow } from "@tauri-apps/api/webviewWindow" - import { attachConsole } from "@tauri-apps/plugin-log" + import { attachConsole, error, info } from "@tauri-apps/plugin-log" import { afterNavigate, beforeNavigate } from "$app/navigation" import { gsap } from "gsap" import { Flip } from "gsap/Flip" import { onDestroy, onMount } from "svelte" + import * as shellx from "tauri-plugin-shellx-api" /* -------------------------------------------------------------------------- */ /* Gsap Flip Animation */ @@ -57,6 +59,15 @@ onMount(async () => { attachConsole().then((unlistener) => unlisteners.push(unlistener)) initDeeplink().then((unlistener) => unlisteners.push(unlistener)) + shellx + .fixPathEnv() + .then(() => { + info("fixed path env") + shellx.hasCommand("ffprobe").then((res) => { + console.log("has ffprobe:", res) + }) + }) + .catch(error) quickLinks.init() appConfig.init() diff --git a/apps/desktop/src/routes/+layout.ts b/apps/desktop/src/routes/+layout.ts index 703f971..e112516 100644 --- a/apps/desktop/src/routes/+layout.ts +++ b/apps/desktop/src/routes/+layout.ts @@ -1,4 +1,5 @@ import { getExtensionsFolder, IS_IN_TAURI } from "@/constants" +import { error } from "@tauri-apps/plugin-log" import type { LayoutLoad } from "./$types" // Tauri doesn't have a Node.js server to do proper SSR diff --git a/apps/desktop/src/routes/+page.svelte b/apps/desktop/src/routes/+page.svelte index f23e668..fd983bd 100644 --- a/apps/desktop/src/routes/+page.svelte +++ b/apps/desktop/src/routes/+page.svelte @@ -22,6 +22,14 @@ import { getCurrentWebviewWindow } from "@tauri-apps/api/webviewWindow" import { exit } from "@tauri-apps/plugin-process" import { ArrowBigUpIcon, CircleXIcon, EllipsisVerticalIcon, RefreshCcwIcon } from "lucide-svelte" + import { onMount } from "svelte" + import { hasCommand, whereIsCommand } from "tauri-plugin-shellx-api" + + onMount(() => { + hasCommand("ffmpeg").then((has) => { + console.log("has", has) + }) + }) let inputEle: HTMLInputElement | null = null function onKeyDown(event: KeyboardEvent) { diff --git a/apps/desktop/src/routes/extension/ui-worker/+page.svelte b/apps/desktop/src/routes/extension/ui-worker/+page.svelte index 50fb345..79496b8 100644 --- a/apps/desktop/src/routes/extension/ui-worker/+page.svelte +++ b/apps/desktop/src/routes/extension/ui-worker/+page.svelte @@ -1,7 +1,7 @@