diff --git a/pkgs/by-name/lr/lrcget/package.nix b/pkgs/by-name/lr/lrcget/package.nix index c0a18cde9735..1b17b43d6d97 100644 --- a/pkgs/by-name/lr/lrcget/package.nix +++ b/pkgs/by-name/lr/lrcget/package.nix @@ -5,6 +5,7 @@ fetchFromGitHub, fetchNpmDeps, + fetchurl, cargo-tauri, makeBinaryWrapper, @@ -22,24 +23,34 @@ rustPlatform.buildRustPackage rec { pname = "lrcget"; - version = "2.1.0"; + version = "2.2.0"; src = fetchFromGitHub { owner = "tranxuanthang"; repo = "lrcget"; tag = version; - hash = "sha256-cxQpCuyFsJeujcL2TPMH7n+Q6l4h+P1HvsrMoFmbWMI="; + hash = "sha256-sp31o62rwWONd7ajo8prvkEVbU3lPPLFkXsxAT9oRzY="; }; patches = [ # needed to not attempt codesigning on darwin ./remove-signing-identity.patch + + # Make npm ci pass by adding missing packages to package-lock.json + # Upstream PR: https://github.com/tranxuanthang/lrcget/pull/408 + ./sync-package-lock.patch + ]; + + cargoPatches = [ + # Update charabia crate to v0.10.0 to allow caching of Lindera dictionaries + # Upstream PR: https://github.com/tranxuanthang/lrcget/pull/407 + ./update-to-charabia-0.10.0.patch ]; cargoRoot = "src-tauri"; buildAndTestSubdir = "src-tauri"; - cargoHash = "sha256-9vyvRJsR4o7kWSLJyGIoiM/13ABWWTrRXVdyU2HfJ+E="; + cargoHash = "sha256-qyIvUbEBImJfVaxILtLN88KREgUk45zRdxbdZ1A6vc0="; # FIXME: This is a workaround, because we have a git dependency node_modules/lrc-kit contains install scripts # but has no lockfile, which is something that will probably break. @@ -48,9 +59,73 @@ rustPlatform.buildRustPackage rec { npmDeps = fetchNpmDeps { name = "lrcget-${version}-npm-deps"; inherit src forceGitDeps patches; - hash = "sha256-yXRbQ6xM23VrVaS8Hb5sxPPic1yawKtFi2rCGkplgw4="; + hash = "sha256-PyKnh2AjdhWurTQmoCuOnLDdDIcZT51xwpPImkc3nBc="; }; + preConfigure = + let + # Adapted from pg_search's Nix package: https://github.com/NixOS/nixpkgs/blob/b1b875982b17dabde9b4a37f3e229e74913e6db3/pkgs/servers/sql/postgresql/ext/pg_search.nix#L27 + # Lindera dictionaries are copied to a temporary directory and Lindera's + # cache environment variable prevents the build.rs files in + # the Lindera crates from downloading their dictionary from an + # external URL, which doesn't work in the Nix sandbox. + + # Lindera uses subdirectory in the main cache directory to separate cached + # dictionaries for different versions of Lindera. + # The name of those subdirectories is made up of the Lindera version + # and the "format" version (currently only for format version 2). + # LRCGET's Lindera version is in their Cargo.lock file: https://github.com/tranxuanthang/lrcget/tree/${version}/src-tauri/Cargo.lock + # And the current format version is 2, represented by the -fmt2 suffix in the subdirectory name. + cacheSubdir = "5.3.0-fmt2"; + + # The env var Lindera uses for the cache has changed over time. + # Currently, the correct variable name is LINDERA_BUILD_DICTIONARY_CACHE_DIR. + dictCacheVarName = "LINDERA_BUILD_DICTIONARY_CACHE_DIR"; + + # The Lindera uses several language dictionaries that can be enabled by consuming apps and libraries. + # Check the relevant build.rs files to get the proper URLs: + # https://github.com/lindera/lindera/blob/${linderaVersion}/${dictionaryKey}/build.rs + # Here's an example build.rs URL: + # https://github.com/lindera/lindera/blob/v1.5.1/lindera-cc-cedict/build.rs + + dict = + { + language, + filename, + hash, + }: + { + inherit filename language; + source = fetchurl { + url = "https://lindera.dev/${filename}"; + inherit hash; + }; + }; + + # LRCGET via charabia requires the Korean and Japanese (unidic) dictionaries. + dictionaries = { + lindera-ko-dic = dict { + language = "Korean"; + filename = "mecab-ko-dic-2.1.1-20180720.tar.gz"; + hash = "sha256-cCztIcYWfp2a68Z0q17lSvWNREOXXylA030FZ8AgWRo="; + }; + lindera-unidic = dict { + language = "Japanese"; + filename = "unidic-mecab-2.1.2.tar.gz"; + hash = "sha256-JKx1/k5E2XO1XmWEfDX6Suwtt6QaB7ScoSUUbbn8EYk="; + }; + }; + in + '' + export ${dictCacheVarName}=$TMPDIR/lindera-cache + mkdir -p ''$${dictCacheVarName}/${cacheSubdir} + ${lib.concatMapStringsSep "\n" (dict: '' + echo "Copying ${dict.language} dictionary to Lindera cache" + cp -r ${dict.source} ''$${dictCacheVarName}/${cacheSubdir}/${dict.filename} + '') (lib.attrValues dictionaries)} + echo "Lindera cache prepared at ''$${dictCacheVarName}" + ''; + nativeBuildInputs = [ cargo-tauri.hook nodejs diff --git a/pkgs/by-name/lr/lrcget/sync-package-lock.patch b/pkgs/by-name/lr/lrcget/sync-package-lock.patch new file mode 100644 index 000000000000..beb71b53341d --- /dev/null +++ b/pkgs/by-name/lr/lrcget/sync-package-lock.patch @@ -0,0 +1,66 @@ +diff --git a/package-lock.json b/package-lock.json +index 7265f5f..e44f063 100644 +--- a/package-lock.json ++++ b/package-lock.json +@@ -192,6 +192,29 @@ + "w3c-keyname": "^2.2.4" + } + }, ++ "node_modules/@emnapi/core": { ++ "version": "1.10.0", ++ "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz", ++ "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", ++ "dev": true, ++ "license": "MIT", ++ "optional": true, ++ "dependencies": { ++ "@emnapi/wasi-threads": "1.2.1", ++ "tslib": "^2.4.0" ++ } ++ }, ++ "node_modules/@emnapi/runtime": { ++ "version": "1.10.0", ++ "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", ++ "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", ++ "dev": true, ++ "license": "MIT", ++ "optional": true, ++ "dependencies": { ++ "tslib": "^2.4.0" ++ } ++ }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", +@@ -5866,8 +5889,30 @@ + "w3c-keyname": "^2.2.4" + } + }, ++ "node_modules/@emnapi/core": { ++ "version": "1.10.0", ++ "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz", ++ "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", ++ "dev": true, ++ "optional": true, ++ "requires": { ++ "@emnapi/wasi-threads": "1.2.1", ++ "tslib": "^2.4.0" ++ } ++ }, ++ "node_modules/@emnapi/runtime": { ++ "version": "1.10.0", ++ "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", ++ "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", ++ "dev": true, ++ "optional": true, ++ "requires": { ++ "tslib": "^2.4.0" ++ } ++ }, + "@emnapi/wasi-threads": { +- "version": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", ++ "version": "1.2.1", ++ "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", + "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", + "dev": true, + "optional": true, diff --git a/pkgs/by-name/lr/lrcget/update-to-charabia-0.10.0.patch b/pkgs/by-name/lr/lrcget/update-to-charabia-0.10.0.patch new file mode 100644 index 000000000000..2b3f63909a77 --- /dev/null +++ b/pkgs/by-name/lr/lrcget/update-to-charabia-0.10.0.patch @@ -0,0 +1,1427 @@ +diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock +index d09dd88..4799458 100644 +--- a/src-tauri/Cargo.lock ++++ b/src-tauri/Cargo.lock +@@ -37,9 +37,9 @@ dependencies = [ + + [[package]] + name = "aho-corasick" +-version = "1.1.3" ++version = "1.1.5" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" ++checksum = "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba" + dependencies = [ + "memchr", + ] +@@ -98,9 +98,9 @@ dependencies = [ + + [[package]] + name = "anyhow" +-version = "1.0.100" ++version = "1.0.104" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" ++checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" + + [[package]] + name = "arboard" +@@ -261,24 +261,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + + [[package]] +-name = "bincode" +-version = "2.0.1" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "36eaf5d7b090263e8150820482d5d93cd964a81e4019913c972f4edcc6edb740" +-dependencies = [ +- "bincode_derive", +- "serde", +- "unty", +-] +- +-[[package]] +-name = "bincode_derive" +-version = "2.0.1" ++name = "base64" ++version = "0.23.1" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "bf95709a440f45e986983918d0e8a1f30a9b1df04918fc828670606804ac3c09" +-dependencies = [ +- "virtue", +-] ++checksum = "ac07cdecf99051d9a5238b80f35af32cdeba5b336e55d957b318b50137e18da5" + + [[package]] + name = "bitflags" +@@ -359,6 +345,35 @@ version = "3.19.0" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" + ++[[package]] ++name = "bytecheck" ++version = "0.8.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "26333eeac754f0ad8a6bcd0eb0ac012156302e4e16b852b72ee399aea4f12c29" ++dependencies = [ ++ "bytecheck_derive", ++ "ptr_meta", ++ "rancor", ++ "simdutf8", ++] ++ ++[[package]] ++name = "bytecheck_derive" ++version = "0.8.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "46d07918caa9eeaaf06b7873925c53a61daac173539b4f7715090745e44e4e69" ++dependencies = [ ++ "proc-macro2", ++ "quote", ++ "syn 3.0.3", ++] ++ ++[[package]] ++name = "bytecount" ++version = "0.6.9" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "175812e0be2bccb6abe50bb8d566126198344f707e304f45c648fd8f2cc0365e" ++ + [[package]] + name = "bytemuck" + version = "1.23.2" +@@ -440,7 +455,7 @@ dependencies = [ + "semver", + "serde", + "serde_json", +- "thiserror 2.0.16", ++ "thiserror 2.0.20", + ] + + [[package]] +@@ -467,9 +482,9 @@ dependencies = [ + + [[package]] + name = "cedarwood" +-version = "0.4.6" ++version = "0.5.0" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "6d910bedd62c24733263d0bed247460853c9d22e8956bd4cd964302095e04e90" ++checksum = "c0524a528a6a0288df1863c3c20fe92c301875b4941e7b6c4b394ab08c5a4c55" + dependencies = [ + "smallvec", + ] +@@ -525,9 +540,9 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + + [[package]] + name = "charabia" +-version = "0.9.9" ++version = "0.10.0" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "51689ee7cc84c8de789fc2874711d816055b93406cfd4135c40d1c82dd24b928" ++checksum = "27d98f4c66de52108210ee491c9c991513021dfd259bf65e4bbd889687b488d7" + dependencies = [ + "aho-corasick", + "csv", +@@ -712,6 +727,12 @@ dependencies = [ + "libc", + ] + ++[[package]] ++name = "crawdad" ++version = "0.3.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "87fbd1ecd2ed790e11c8fbe034f9b3e7687404818d1bdfd8218d26ec645ec7c5" ++ + [[package]] + name = "crc32fast" + version = "1.5.0" +@@ -830,14 +851,10 @@ dependencies = [ + ] + + [[package]] +-name = "darling" +-version = "0.20.11" ++name = "daachorse" ++version = "4.0.0" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" +-dependencies = [ +- "darling_core 0.20.11", +- "darling_macro 0.20.11", +-] ++checksum = "d358f1fa877be3097baa74c1fc22288626450392cb37d844f850baa60e6439a0" + + [[package]] + name = "darling" +@@ -845,22 +862,8 @@ version = "0.21.3" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" + dependencies = [ +- "darling_core 0.21.3", +- "darling_macro 0.21.3", +-] +- +-[[package]] +-name = "darling_core" +-version = "0.20.11" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" +-dependencies = [ +- "fnv", +- "ident_case", +- "proc-macro2", +- "quote", +- "strsim", +- "syn 2.0.106", ++ "darling_core", ++ "darling_macro", + ] + + [[package]] +@@ -877,24 +880,13 @@ dependencies = [ + "syn 2.0.106", + ] + +-[[package]] +-name = "darling_macro" +-version = "0.20.11" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" +-dependencies = [ +- "darling_core 0.20.11", +- "quote", +- "syn 2.0.106", +-] +- + [[package]] + name = "darling_macro" + version = "0.21.3" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" + dependencies = [ +- "darling_core 0.21.3", ++ "darling_core", + "quote", + "syn 2.0.106", + ] +@@ -927,37 +919,6 @@ dependencies = [ + "serde_core", + ] + +-[[package]] +-name = "derive_builder" +-version = "0.20.2" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "507dfb09ea8b7fa618fcf76e953f4f5e192547945816d5358edffe39f6f94947" +-dependencies = [ +- "derive_builder_macro", +-] +- +-[[package]] +-name = "derive_builder_core" +-version = "0.20.2" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8" +-dependencies = [ +- "darling 0.20.11", +- "proc-macro2", +- "quote", +- "syn 2.0.106", +-] +- +-[[package]] +-name = "derive_builder_macro" +-version = "0.20.2" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" +-dependencies = [ +- "derive_builder_core", +- "syn 2.0.106", +-] +- + [[package]] + name = "derive_more" + version = "0.99.20" +@@ -1092,9 +1053,9 @@ checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" + + [[package]] + name = "either" +-version = "1.15.0" ++version = "1.18.0" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" ++checksum = "252afb9ae5eaa683babdc6a068b3f5726eb19e05070c731f9b2a23a7c3e8ed34" + + [[package]] + name = "embed-resource" +@@ -1116,70 +1077,6 @@ version = "1.2.2" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" + +-[[package]] +-name = "encoding" +-version = "0.2.33" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "6b0d943856b990d12d3b55b359144ff341533e516d94098b1d3fc1ac666d36ec" +-dependencies = [ +- "encoding-index-japanese", +- "encoding-index-korean", +- "encoding-index-simpchinese", +- "encoding-index-singlebyte", +- "encoding-index-tradchinese", +-] +- +-[[package]] +-name = "encoding-index-japanese" +-version = "1.20141219.5" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "04e8b2ff42e9a05335dbf8b5c6f7567e5591d0d916ccef4e0b1710d32a0d0c91" +-dependencies = [ +- "encoding_index_tests", +-] +- +-[[package]] +-name = "encoding-index-korean" +-version = "1.20141219.5" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "4dc33fb8e6bcba213fe2f14275f0963fd16f0a02c878e3095ecfdf5bee529d81" +-dependencies = [ +- "encoding_index_tests", +-] +- +-[[package]] +-name = "encoding-index-simpchinese" +-version = "1.20141219.5" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "d87a7194909b9118fc707194baa434a4e3b0fb6a5a757c73c3adb07aa25031f7" +-dependencies = [ +- "encoding_index_tests", +-] +- +-[[package]] +-name = "encoding-index-singlebyte" +-version = "1.20141219.5" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "3351d5acffb224af9ca265f435b859c7c01537c0849754d3db3fdf2bfe2ae84a" +-dependencies = [ +- "encoding_index_tests", +-] +- +-[[package]] +-name = "encoding-index-tradchinese" +-version = "1.20141219.5" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "fd0e20d5688ce3cab59eb3ef3a2083a5c77bf496cb798dc6fcdb75f323890c18" +-dependencies = [ +- "encoding_index_tests", +-] +- +-[[package]] +-name = "encoding_index_tests" +-version = "0.1.4" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569" +- + [[package]] + name = "encoding_rs" + version = "0.8.35" +@@ -1629,10 +1526,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" + dependencies = [ + "cfg-if", +- "js-sys", + "libc", + "wasi 0.11.1+wasi-snapshot-preview1", +- "wasm-bindgen", + ] + + [[package]] +@@ -1642,11 +1537,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" + dependencies = [ + "cfg-if", +- "js-sys", + "libc", + "r-efi", + "wasi 0.14.7+wasi-0.2.4", +- "wasm-bindgen", + ] + + [[package]] +@@ -1802,9 +1695,9 @@ dependencies = [ + + [[package]] + name = "glob" +-version = "0.3.3" ++version = "0.3.4" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" ++checksum = "e4eba85ea1d0a966a983acd07deee566e67395d2d96b6fb39e62b5a833f1eb0b" + + [[package]] + name = "global-hotkey" +@@ -1818,7 +1711,7 @@ dependencies = [ + "objc2-app-kit", + "once_cell", + "serde", +- "thiserror 2.0.16", ++ "thiserror 2.0.20", + "windows-sys 0.59.0", + "x11rb", + "xkeysym", +@@ -1965,7 +1858,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" + dependencies = [ + "ahash", +- "allocator-api2", + ] + + [[package]] +@@ -1974,6 +1866,8 @@ version = "0.15.5" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" + dependencies = [ ++ "allocator-api2", ++ "equivalent", + "foldhash 0.1.5", + ] + +@@ -1988,6 +1882,12 @@ dependencies = [ + "foldhash 0.2.0", + ] + ++[[package]] ++name = "hashbrown" ++version = "0.17.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" ++ + [[package]] + name = "hashlink" + version = "0.9.1" +@@ -2116,7 +2016,6 @@ dependencies = [ + "tokio", + "tokio-rustls", + "tower-service", +- "webpki-roots", + ] + + [[package]] +@@ -2525,24 +2424,24 @@ dependencies = [ + + [[package]] + name = "jieba-macros" +-version = "0.8.1" ++version = "0.10.4" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "348294e44ee7e3c42685da656490f8febc7359632544019621588902216da95c" ++checksum = "455f837e9d0255b68a712200db247c68fdad4941b72471b76bfa61c3b0c1f79f" + dependencies = [ + "phf_codegen 0.13.1", + ] + + [[package]] + name = "jieba-rs" +-version = "0.8.1" ++version = "0.10.4" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "766bd7012aa5ba49411ebdf4e93bddd59b182d2918e085d58dec5bb9b54b7105" ++checksum = "b6a8bbb0f77ee810f0689a30b7cec56b875751ef4ec2e74fd995613dc52b3ae1" + dependencies = [ ++ "bytecount", + "cedarwood", + "include-flate", + "jieba-macros", + "phf 0.13.1", +- "regex", + "rustc-hash", + ] + +@@ -2612,15 +2511,6 @@ dependencies = [ + "serde_json", + ] + +-[[package]] +-name = "kanaria" +-version = "0.2.0" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "c0f9d9652540055ac4fded998a73aca97d965899077ab1212587437da44196ff" +-dependencies = [ +- "bitflags 1.3.2", +-] +- + [[package]] + name = "keyboard-types" + version = "0.7.0" +@@ -2754,125 +2644,71 @@ dependencies = [ + + [[package]] + name = "lindera" +-version = "0.43.3" ++version = "5.3.0" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "877750979d709bb5fb2d616a2c9968301ead80147db2270c8f23d8239467f159" ++checksum = "65015f4b12a1b869058a602e3cf7b39239ca1fbedd4b451bc9bb2fd2c9989eee" + dependencies = [ + "anyhow", +- "bincode", +- "byteorder", +- "csv", +- "kanaria", +- "lindera-cc-cedict", + "lindera-dictionary", +- "lindera-ipadic", +- "lindera-ipadic-neologd", + "lindera-ko-dic", + "lindera-unidic", +- "once_cell", +- "regex", ++ "log", ++ "percent-encoding", + "serde", + "serde_json", +- "serde_yaml", + "strum", + "strum_macros", +- "unicode-blocks", +- "unicode-normalization", +- "unicode-segmentation", +- "yada", +-] +- +-[[package]] +-name = "lindera-cc-cedict" +-version = "0.43.3" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "4efb27e037efbd41fdce30e3771084a46040cdfdbec718425879f8aa7dfa16f2" +-dependencies = [ +- "bincode", +- "byteorder", +- "lindera-dictionary", +- "once_cell", +- "tokio", ++ "url", + ] + + [[package]] + name = "lindera-dictionary" +-version = "0.43.3" ++version = "5.3.0" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "4cbb45e81527092e1af24c45bf068376df34faaa9f98d44a99ec59c7edfdb45a" ++checksum = "647b3dd3102151b82d6995f5fafdb4fe512f8b65b5f92ccf6bfde2ba33596423" + dependencies = [ + "anyhow", +- "bincode", + "byteorder", ++ "crawdad", + "csv", +- "derive_builder", +- "encoding", ++ "daachorse", + "encoding_rs", + "encoding_rs_io", + "flate2", + "glob", + "log", + "md5", ++ "memchr", ++ "memmap2", + "once_cell", +- "rand 0.9.4", +- "reqwest 0.12.23", ++ "rand 0.10.2", ++ "rayon", ++ "rkyv", + "serde", ++ "serde_json", ++ "strum", ++ "strum_macros", + "tar", +- "thiserror 2.0.16", +- "tokio", +- "yada", +-] +- +-[[package]] +-name = "lindera-ipadic" +-version = "0.43.3" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "447887ebb06c9faf7e9b41c03b491ae3e12aca2c0e119a865b682863a1b538aa" +-dependencies = [ +- "bincode", +- "byteorder", +- "lindera-dictionary", +- "once_cell", +- "tokio", +-] +- +-[[package]] +-name = "lindera-ipadic-neologd" +-version = "0.43.3" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "8da7829c17dee5b1068f241c1989f83a2d98307ed5d3b87fcc91bd06b7a7b44e" +-dependencies = [ +- "bincode", +- "byteorder", +- "lindera-dictionary", +- "once_cell", +- "tokio", ++ "thiserror 2.0.20", ++ "ureq", + ] + + [[package]] + name = "lindera-ko-dic" +-version = "0.43.3" ++version = "5.3.0" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "8dc88354c6f8fbdeb7aa3d44673eb0ca03b7ad6e8d4edb62332604bb7806d17b" ++checksum = "2ba1a7fbc96a797201784c473c94d9d33f6b5d7990d5510967c42df514587b14" + dependencies = [ +- "bincode", +- "byteorder", + "lindera-dictionary", +- "once_cell", +- "tokio", + ] + + [[package]] + name = "lindera-unidic" +-version = "0.43.3" ++version = "5.3.0" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "4cf374587e0202193c73f443cb0ba0d34ff0013949b2355aeeeb0f840679681e" ++checksum = "3ec815d60fe5d3be6729acaf8cf9c34abfa45a136f53d2b2ae5df0343dd0bfe9" + dependencies = [ +- "bincode", +- "byteorder", + "lindera-dictionary", +- "once_cell", +- "tokio", + ] + + [[package]] +@@ -2925,9 +2761,9 @@ dependencies = [ + + [[package]] + name = "log" +-version = "0.4.29" ++version = "0.4.34" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" ++checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6" + + [[package]] + name = "lrcget" +@@ -2966,12 +2802,6 @@ dependencies = [ + "xxhash-rust", + ] + +-[[package]] +-name = "lru-slab" +-version = "0.1.2" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" +- + [[package]] + name = "mac" + version = "0.1.1" +@@ -3026,15 +2856,24 @@ checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" + + [[package]] + name = "md5" +-version = "0.7.0" ++version = "0.8.1" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771" ++checksum = "7ebb8d8732c6a6df3d8f032a82911cfc747e00efb95cc46e8d0acd5b5b88570c" + + [[package]] + name = "memchr" +-version = "2.7.6" ++version = "2.8.3" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" ++checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" ++ ++[[package]] ++name = "memmap2" ++version = "0.9.11" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d1219ed1b7f229ee7104d281dd01d6802fe28bb6e95d292942c4daacdeb798c0" ++dependencies = [ ++ "libc", ++] + + [[package]] + name = "memoffset" +@@ -3105,10 +2944,30 @@ dependencies = [ + "once_cell", + "png 0.17.16", + "serde", +- "thiserror 2.0.16", ++ "thiserror 2.0.20", + "windows-sys 0.60.2", + ] + ++[[package]] ++name = "munge" ++version = "0.4.7" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "5e17401f259eba956ca16491461b6e8f72913a0a114e39736ce404410f915a0c" ++dependencies = [ ++ "munge_macro", ++] ++ ++[[package]] ++name = "munge_macro" ++version = "0.4.7" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "4568f25ccbd45ab5d5603dc34318c1ec56b117531781260002151b8530a9f931" ++dependencies = [ ++ "proc-macro2", ++ "quote", ++ "syn 2.0.106", ++] ++ + [[package]] + name = "native-tls" + version = "0.2.14" +@@ -3541,9 +3400,9 @@ dependencies = [ + + [[package]] + name = "once_cell" +-version = "1.21.3" ++version = "1.21.4" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" ++checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" + + [[package]] + name = "open" +@@ -4062,6 +3921,26 @@ dependencies = [ + "unicode-ident", + ] + ++[[package]] ++name = "ptr_meta" ++version = "0.3.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "743da816b98c921cdbe8628ef7381b76f25ecf4da599fc80aca90eae7ef70cc0" ++dependencies = [ ++ "ptr_meta_derive", ++] ++ ++[[package]] ++name = "ptr_meta_derive" ++version = "0.3.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "1c8d9ca532f185d5d4db7a7c9d51420b452168ea1c2b913953281bd6fe1fcbd0" ++dependencies = [ ++ "proc-macro2", ++ "quote", ++ "syn 3.0.3", ++] ++ + [[package]] + name = "pxfm" + version = "0.1.29" +@@ -4092,61 +3971,6 @@ dependencies = [ + "memchr", + ] + +-[[package]] +-name = "quinn" +-version = "0.11.9" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" +-dependencies = [ +- "bytes", +- "cfg_aliases", +- "pin-project-lite", +- "quinn-proto", +- "quinn-udp", +- "rustc-hash", +- "rustls", +- "socket2", +- "thiserror 2.0.16", +- "tokio", +- "tracing", +- "web-time", +-] +- +-[[package]] +-name = "quinn-proto" +-version = "0.11.14" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "434b42fec591c96ef50e21e886936e66d3cc3f737104fdb9b737c40ffb94c098" +-dependencies = [ +- "bytes", +- "getrandom 0.3.3", +- "lru-slab", +- "rand 0.9.4", +- "ring", +- "rustc-hash", +- "rustls", +- "rustls-pki-types", +- "slab", +- "thiserror 2.0.16", +- "tinyvec", +- "tracing", +- "web-time", +-] +- +-[[package]] +-name = "quinn-udp" +-version = "0.5.14" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" +-dependencies = [ +- "cfg_aliases", +- "libc", +- "once_cell", +- "socket2", +- "tracing", +- "windows-sys 0.60.2", +-] +- + [[package]] + name = "quote" + version = "1.0.40" +@@ -4162,6 +3986,15 @@ version = "5.3.0" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + ++[[package]] ++name = "rancor" ++version = "0.1.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "9b534442d0fcdb55d66f373d9cac6d33b6293a2335bc2136dbd06ce0e87d2572" ++dependencies = [ ++ "ptr_meta", ++] ++ + [[package]] + name = "rand" + version = "0.7.3" +@@ -4189,12 +4022,11 @@ dependencies = [ + + [[package]] + name = "rand" +-version = "0.9.4" ++version = "0.10.2" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea" ++checksum = "c7f5fa3a058cd35567ef9bfa5e75732bee0f9e4c55fa90477bef2dfcdbc4be80" + dependencies = [ +- "rand_chacha 0.9.0", +- "rand_core 0.9.5", ++ "rand_core 0.10.1", + ] + + [[package]] +@@ -4217,16 +4049,6 @@ dependencies = [ + "rand_core 0.6.4", + ] + +-[[package]] +-name = "rand_chacha" +-version = "0.9.0" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +-dependencies = [ +- "ppv-lite86", +- "rand_core 0.9.5", +-] +- + [[package]] + name = "rand_core" + version = "0.5.1" +@@ -4247,12 +4069,9 @@ dependencies = [ + + [[package]] + name = "rand_core" +-version = "0.9.5" ++version = "0.10.1" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" +-dependencies = [ +- "getrandom 0.3.3", +-] ++checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" + + [[package]] + name = "rand_hc" +@@ -4280,9 +4099,9 @@ checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" + + [[package]] + name = "rayon" +-version = "1.11.0" ++version = "1.12.0" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" ++checksum = "fb39b166781f92d482534ef4b4b1b2568f42613b53e5b6c160e24cfbfa30926d" + dependencies = [ + "either", + "rayon-core", +@@ -4315,7 +4134,7 @@ checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" + dependencies = [ + "getrandom 0.2.16", + "libredox", +- "thiserror 2.0.16", ++ "thiserror 2.0.20", + ] + + [[package]] +@@ -4367,6 +4186,15 @@ version = "0.8.6" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" + ++[[package]] ++name = "rend" ++version = "0.5.4" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "663ba70707f96e871406fe10d68128412e619b06d1d47cb91c3a4c6501176240" ++dependencies = [ ++ "bytecheck", ++] ++ + [[package]] + name = "reqwest" + version = "0.12.23" +@@ -4391,8 +4219,6 @@ dependencies = [ + "native-tls", + "percent-encoding", + "pin-project-lite", +- "quinn", +- "rustls", + "rustls-pki-types", + "serde", + "serde_json", +@@ -4400,7 +4226,6 @@ dependencies = [ + "sync_wrapper", + "tokio", + "tokio-native-tls", +- "tokio-rustls", + "tower", + "tower-http", + "tower-service", +@@ -4408,7 +4233,6 @@ dependencies = [ + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +- "webpki-roots", + ] + + [[package]] +@@ -4483,6 +4307,36 @@ dependencies = [ + "windows-sys 0.52.0", + ] + ++[[package]] ++name = "rkyv" ++version = "0.8.18" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d9776093b7ca170454ab1406954f7b7d97a57c51dc6c0642957fb2ef25c2d399" ++dependencies = [ ++ "bytecheck", ++ "bytes", ++ "hashbrown 0.17.1", ++ "indexmap 2.11.4", ++ "munge", ++ "ptr_meta", ++ "rancor", ++ "rend", ++ "rkyv_derive", ++ "tinyvec", ++ "uuid", ++] ++ ++[[package]] ++name = "rkyv_derive" ++version = "0.8.18" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "1c25ef604ac7dd839d44d64648952ea23c97866f124ff671b0ed2cf3ad9bb06e" ++dependencies = [ ++ "proc-macro2", ++ "quote", ++ "syn 3.0.3", ++] ++ + [[package]] + name = "rle-decode-fast" + version = "1.0.3" +@@ -4560,6 +4414,7 @@ version = "0.23.32" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "cd3c25631629d034ce7cd9940adc9d45762d46de2b0f57193c4443b92c6d4d40" + dependencies = [ ++ "log", + "once_cell", + "ring", + "rustls-pki-types", +@@ -4574,7 +4429,6 @@ version = "1.12.0" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" + dependencies = [ +- "web-time", + "zeroize", + ] + +@@ -4744,9 +4598,9 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" + + [[package]] + name = "serde" +-version = "1.0.228" ++version = "1.0.229" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" ++checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba" + dependencies = [ + "serde_core", + "serde_derive", +@@ -4766,22 +4620,22 @@ dependencies = [ + + [[package]] + name = "serde_core" +-version = "1.0.228" ++version = "1.0.229" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" ++checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48" + dependencies = [ + "serde_derive", + ] + + [[package]] + name = "serde_derive" +-version = "1.0.228" ++version = "1.0.229" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" ++checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" + dependencies = [ + "proc-macro2", + "quote", +- "syn 2.0.106", ++ "syn 3.0.3", + ] + + [[package]] +@@ -4797,15 +4651,15 @@ dependencies = [ + + [[package]] + name = "serde_json" +-version = "1.0.145" ++version = "1.0.151" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" ++checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14" + dependencies = [ + "itoa", + "memchr", +- "ryu", + "serde", + "serde_core", ++ "zmij", + ] + + [[package]] +@@ -4886,7 +4740,7 @@ version = "3.14.1" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "327ada00f7d64abaac1e55a6911e90cf665aa051b9a561c7006c157f4633135e" + dependencies = [ +- "darling 0.21.3", ++ "darling", + "proc-macro2", + "quote", + "syn 2.0.106", +@@ -5001,6 +4855,12 @@ version = "0.3.7" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" + ++[[package]] ++name = "simdutf8" ++version = "0.1.5" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" ++ + [[package]] + name = "siphasher" + version = "0.3.11" +@@ -5128,18 +4988,18 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + + [[package]] + name = "strum" +-version = "0.27.2" ++version = "0.28.0" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf" ++checksum = "9628de9b8791db39ceda2b119bbe13134770b56c138ec1d3af810d045c04f9bd" + dependencies = [ + "strum_macros", + ] + + [[package]] + name = "strum_macros" +-version = "0.27.2" ++version = "0.28.0" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7" ++checksum = "ab85eea0270ee17587ed4156089e10b9e6880ee688791d45a905f5b1ca36f664" + dependencies = [ + "heck 0.5.0", + "proc-macro2", +@@ -5582,7 +5442,7 @@ dependencies = [ + "tauri-runtime", + "tauri-runtime-wry", + "tauri-utils", +- "thiserror 2.0.16", ++ "thiserror 2.0.20", + "tokio", + "tray-icon", + "url", +@@ -5634,7 +5494,7 @@ dependencies = [ + "sha2", + "syn 2.0.106", + "tauri-utils", +- "thiserror 2.0.16", ++ "thiserror 2.0.20", + "time", + "url", + "uuid", +@@ -5684,7 +5544,7 @@ dependencies = [ + "serde_json", + "tauri", + "tauri-plugin", +- "thiserror 2.0.16", ++ "thiserror 2.0.20", + ] + + [[package]] +@@ -5701,7 +5561,7 @@ dependencies = [ + "tauri", + "tauri-plugin", + "tauri-plugin-fs", +- "thiserror 2.0.16", ++ "thiserror 2.0.20", + "url", + ] + +@@ -5724,7 +5584,7 @@ dependencies = [ + "tauri", + "tauri-plugin", + "tauri-utils", +- "thiserror 2.0.16", ++ "thiserror 2.0.20", + "toml 0.9.7", + "url", + ] +@@ -5741,7 +5601,7 @@ dependencies = [ + "serde_json", + "tauri", + "tauri-plugin", +- "thiserror 2.0.16", ++ "thiserror 2.0.20", + ] + + [[package]] +@@ -5759,7 +5619,7 @@ dependencies = [ + "sys-locale", + "tauri", + "tauri-plugin", +- "thiserror 2.0.16", ++ "thiserror 2.0.20", + ] + + [[package]] +@@ -5779,7 +5639,7 @@ dependencies = [ + "shared_child", + "tauri", + "tauri-plugin", +- "thiserror 2.0.16", ++ "thiserror 2.0.20", + "tokio", + ] + +@@ -5806,7 +5666,7 @@ dependencies = [ + "tauri", + "tauri-plugin", + "tempfile", +- "thiserror 2.0.16", ++ "thiserror 2.0.20", + "tokio", + "tracing", + "uuid", +@@ -5834,7 +5694,7 @@ dependencies = [ + "serde", + "serde_json", + "tauri-utils", +- "thiserror 2.0.16", ++ "thiserror 2.0.20", + "url", + "webkit2gtk", + "webview2-com", +@@ -5897,7 +5757,7 @@ dependencies = [ + "serde_json", + "serde_with", + "swift-rs", +- "thiserror 2.0.16", ++ "thiserror 2.0.20", + "toml 0.9.7", + "url", + "urlpattern", +@@ -5950,11 +5810,11 @@ dependencies = [ + + [[package]] + name = "thiserror" +-version = "2.0.16" ++version = "2.0.20" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" ++checksum = "ec86235f5fcc2a73650310756d2ac5b138a5780bbbdfae3eeccec992c435ba4f" + dependencies = [ +- "thiserror-impl 2.0.16", ++ "thiserror-impl 2.0.20", + ] + + [[package]] +@@ -5970,13 +5830,13 @@ dependencies = [ + + [[package]] + name = "thiserror-impl" +-version = "2.0.16" ++version = "2.0.20" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" ++checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af" + dependencies = [ + "proc-macro2", + "quote", +- "syn 2.0.106", ++ "syn 3.0.3", + ] + + [[package]] +@@ -6329,7 +6189,7 @@ dependencies = [ + "once_cell", + "png 0.17.16", + "serde", +- "thiserror 2.0.16", ++ "thiserror 2.0.20", + "windows-sys 0.59.0", + ] + +@@ -6412,12 +6272,6 @@ dependencies = [ + "unic-common", + ] + +-[[package]] +-name = "unicode-blocks" +-version = "0.1.9" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "6b12e05d9e06373163a9bb6bb8c263c261b396643a99445fe6b9811fd376581b" +- + [[package]] + name = "unicode-ident" + version = "1.0.19" +@@ -6426,9 +6280,9 @@ checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d" + + [[package]] + name = "unicode-normalization" +-version = "0.1.24" ++version = "0.1.25" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" ++checksum = "5fd4f6878c9cb28d874b009da9e8d183b5abc80117c40bbd187a1fde336be6e8" + dependencies = [ + "tinyvec", + ] +@@ -6452,21 +6306,44 @@ source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + + [[package]] +-name = "unty" +-version = "0.0.4" ++name = "ureq" ++version = "3.4.2" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "9a7ac20be9b7726e0bbdbf974c059676d9acb1cd414961f570a4e8231cacd7fc" ++dependencies = [ ++ "base64 0.23.1", ++ "log", ++ "percent-encoding", ++ "rustls", ++ "rustls-pki-types", ++ "ureq-proto", ++ "utf8-zero", ++ "webpki-roots", ++] ++ ++[[package]] ++name = "ureq-proto" ++version = "0.6.4" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "6d49784317cd0d1ee7ec5c716dd598ec5b4483ea832a2dced265471cc0f690ae" ++checksum = "f86fd172ccca569e458f61b6bdd6220965a9ef36e672a6852953b51a0e1583be" ++dependencies = [ ++ "base64 0.23.1", ++ "http", ++ "httparse", ++ "log", ++] + + [[package]] + name = "url" +-version = "2.5.7" ++version = "2.5.8" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" ++checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" + dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", ++ "serde_derive", + ] + + [[package]] +@@ -6487,6 +6364,12 @@ version = "0.7.6" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + ++[[package]] ++name = "utf8-zero" ++version = "0.8.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "b8c0a043c9540bae7c578c88f91dda8bd82e59ae27c21baca69c8b191aaf5a6e" ++ + [[package]] + name = "utf8_iter" + version = "1.0.4" +@@ -6523,12 +6406,6 @@ version = "0.9.5" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +-[[package]] +-name = "virtue" +-version = "0.0.18" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "051eb1abcf10076295e815102942cc58f9d5e3b4560e46e53c21e8ff6f3af7b1" +- + [[package]] + name = "vswhom" + version = "0.1.0" +@@ -6561,9 +6438,9 @@ dependencies = [ + + [[package]] + name = "wana_kana" +-version = "4.0.0" ++version = "5.0.0" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "a74666202acfcb4f9b995be2e3e9f7f530deb65e05a1407b8d0b30c9c451238a" ++checksum = "377032e42ca0992cc94e7fa7ee6645a125978019a4961f933e3cf5eceb9c4ae0" + dependencies = [ + "fnv", + "itertools", +@@ -6757,16 +6634,6 @@ dependencies = [ + "wasm-bindgen", + ] + +-[[package]] +-name = "web-time" +-version = "1.1.0" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" +-dependencies = [ +- "js-sys", +- "wasm-bindgen", +-] +- + [[package]] + name = "webkit2gtk" + version = "2.0.2" +@@ -6851,7 +6718,7 @@ version = "0.38.0" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "36695906a1b53a3bf5c4289621efedac12b73eeb0b89e7e1a89b517302d5d75c" + dependencies = [ +- "thiserror 2.0.16", ++ "thiserror 2.0.20", + "windows", + "windows-core 0.61.2", + ] +@@ -6864,12 +6731,11 @@ checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88" + + [[package]] + name = "whatlang" +-version = "0.16.4" ++version = "0.18.0" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "471d1c1645d361eb782a1650b1786a8fb58dd625e681a04c09f5ff7c8764a7b0" ++checksum = "f5e8f38b596e2a359b755342473520a99421e43658548c79489ee221b728c107" + dependencies = [ +- "hashbrown 0.14.5", +- "once_cell", ++ "hashbrown 0.15.5", + ] + + [[package]] +@@ -7367,7 +7233,7 @@ dependencies = [ + "log", + "os_pipe", + "rustix", +- "thiserror 2.0.16", ++ "thiserror 2.0.20", + "tree_magic_mini", + "wayland-backend", + "wayland-client", +@@ -7415,7 +7281,7 @@ dependencies = [ + "sha2", + "soup3", + "tao-macros", +- "thiserror 2.0.16", ++ "thiserror 2.0.20", + "url", + "webkit2gtk", + "webkit2gtk-sys", +@@ -7486,12 +7352,6 @@ version = "0.8.15" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "fdd20c5420375476fbd4394763288da7eb0cc0b8c11deed431a91562af7335d3" + +-[[package]] +-name = "yada" +-version = "0.5.1" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "aed111bd9e48a802518765906cbdadf0b45afb72b9c81ab049a3b86252adffdd" +- + [[package]] + name = "yoke" + version = "0.8.0" +@@ -7596,6 +7456,12 @@ dependencies = [ + "syn 2.0.106", + ] + ++[[package]] ++name = "zmij" ++version = "1.0.23" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" ++ + [[package]] + name = "zstd" + version = "0.13.3" +diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml +index 6c7ceef..6c6ab8e 100644 +--- a/src-tauri/Cargo.toml ++++ b/src-tauri/Cargo.toml +@@ -36,7 +36,7 @@ data-encoding = "2.4.0" + kira = "0.12.0" + symphonia = { version = "0.5.4", features = ["all"] } + regex = "1.10.4" +-charabia = "0.9.9" ++charabia = "0.10.0" + xxhash-rust = { version = "0.8", features = ["xxh3"] } + tauri-plugin-os = "2.3.2" + tauri-plugin-shell = "2.3.5"