a very good jj gui
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat: implement Tauri commands for jj operations using jj-lib (TAT-34)

Add Tauri backend commands for Jujutsu repository operations:
- find_repository: locate jj workspace root
- get_revisions: fetch revision log via revset API
- get_status: get working copy status via tree diff
- get_file_diff: compute file diffs using similar crate

Includes TypeScript types and invoke wrappers for frontend.

Issue: TAT-34

+6934 -2
+6214
Cargo.lock
··· 1 + # This file is automatically @generated by Cargo. 2 + # It is not intended for manual editing. 3 + version = 4 4 + 5 + [[package]] 6 + name = "adler2" 7 + version = "2.0.1" 8 + source = "registry+https://github.com/rust-lang/crates.io-index" 9 + checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" 10 + 11 + [[package]] 12 + name = "aho-corasick" 13 + version = "1.1.4" 14 + source = "registry+https://github.com/rust-lang/crates.io-index" 15 + checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" 16 + dependencies = [ 17 + "memchr", 18 + ] 19 + 20 + [[package]] 21 + name = "alloc-no-stdlib" 22 + version = "2.0.4" 23 + source = "registry+https://github.com/rust-lang/crates.io-index" 24 + checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" 25 + 26 + [[package]] 27 + name = "alloc-stdlib" 28 + version = "0.2.2" 29 + source = "registry+https://github.com/rust-lang/crates.io-index" 30 + checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" 31 + dependencies = [ 32 + "alloc-no-stdlib", 33 + ] 34 + 35 + [[package]] 36 + name = "allocator-api2" 37 + version = "0.2.21" 38 + source = "registry+https://github.com/rust-lang/crates.io-index" 39 + checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" 40 + 41 + [[package]] 42 + name = "android_system_properties" 43 + version = "0.1.5" 44 + source = "registry+https://github.com/rust-lang/crates.io-index" 45 + checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" 46 + dependencies = [ 47 + "libc", 48 + ] 49 + 50 + [[package]] 51 + name = "anyhow" 52 + version = "1.0.100" 53 + source = "registry+https://github.com/rust-lang/crates.io-index" 54 + checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" 55 + 56 + [[package]] 57 + name = "arc-swap" 58 + version = "1.7.1" 59 + source = "registry+https://github.com/rust-lang/crates.io-index" 60 + checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" 61 + 62 + [[package]] 63 + name = "arrayvec" 64 + version = "0.7.6" 65 + source = "registry+https://github.com/rust-lang/crates.io-index" 66 + checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" 67 + 68 + [[package]] 69 + name = "async-trait" 70 + version = "0.1.89" 71 + source = "registry+https://github.com/rust-lang/crates.io-index" 72 + checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" 73 + dependencies = [ 74 + "proc-macro2", 75 + "quote", 76 + "syn 2.0.111", 77 + ] 78 + 79 + [[package]] 80 + name = "atk" 81 + version = "0.18.2" 82 + source = "registry+https://github.com/rust-lang/crates.io-index" 83 + checksum = "241b621213072e993be4f6f3a9e4b45f65b7e6faad43001be957184b7bb1824b" 84 + dependencies = [ 85 + "atk-sys", 86 + "glib", 87 + "libc", 88 + ] 89 + 90 + [[package]] 91 + name = "atk-sys" 92 + version = "0.18.2" 93 + source = "registry+https://github.com/rust-lang/crates.io-index" 94 + checksum = "c5e48b684b0ca77d2bbadeef17424c2ea3c897d44d566a1617e7e8f30614d086" 95 + dependencies = [ 96 + "glib-sys", 97 + "gobject-sys", 98 + "libc", 99 + "system-deps", 100 + ] 101 + 102 + [[package]] 103 + name = "atomic-waker" 104 + version = "1.1.2" 105 + source = "registry+https://github.com/rust-lang/crates.io-index" 106 + checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" 107 + 108 + [[package]] 109 + name = "autocfg" 110 + version = "1.5.0" 111 + source = "registry+https://github.com/rust-lang/crates.io-index" 112 + checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" 113 + 114 + [[package]] 115 + name = "base64" 116 + version = "0.21.7" 117 + source = "registry+https://github.com/rust-lang/crates.io-index" 118 + checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" 119 + 120 + [[package]] 121 + name = "base64" 122 + version = "0.22.1" 123 + source = "registry+https://github.com/rust-lang/crates.io-index" 124 + checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" 125 + 126 + [[package]] 127 + name = "beef" 128 + version = "0.5.2" 129 + source = "registry+https://github.com/rust-lang/crates.io-index" 130 + checksum = "3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1" 131 + 132 + [[package]] 133 + name = "bitflags" 134 + version = "1.3.2" 135 + source = "registry+https://github.com/rust-lang/crates.io-index" 136 + checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 137 + 138 + [[package]] 139 + name = "bitflags" 140 + version = "2.10.0" 141 + source = "registry+https://github.com/rust-lang/crates.io-index" 142 + checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" 143 + dependencies = [ 144 + "serde_core", 145 + ] 146 + 147 + [[package]] 148 + name = "blake2" 149 + version = "0.10.6" 150 + source = "registry+https://github.com/rust-lang/crates.io-index" 151 + checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" 152 + dependencies = [ 153 + "digest", 154 + ] 155 + 156 + [[package]] 157 + name = "block-buffer" 158 + version = "0.10.4" 159 + source = "registry+https://github.com/rust-lang/crates.io-index" 160 + checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 161 + dependencies = [ 162 + "generic-array", 163 + ] 164 + 165 + [[package]] 166 + name = "block2" 167 + version = "0.6.2" 168 + source = "registry+https://github.com/rust-lang/crates.io-index" 169 + checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5" 170 + dependencies = [ 171 + "objc2", 172 + ] 173 + 174 + [[package]] 175 + name = "brotli" 176 + version = "8.0.2" 177 + source = "registry+https://github.com/rust-lang/crates.io-index" 178 + checksum = "4bd8b9603c7aa97359dbd97ecf258968c95f3adddd6db2f7e7a5bef101c84560" 179 + dependencies = [ 180 + "alloc-no-stdlib", 181 + "alloc-stdlib", 182 + "brotli-decompressor", 183 + ] 184 + 185 + [[package]] 186 + name = "brotli-decompressor" 187 + version = "5.0.0" 188 + source = "registry+https://github.com/rust-lang/crates.io-index" 189 + checksum = "874bb8112abecc98cbd6d81ea4fa7e94fb9449648c93cc89aa40c81c24d7de03" 190 + dependencies = [ 191 + "alloc-no-stdlib", 192 + "alloc-stdlib", 193 + ] 194 + 195 + [[package]] 196 + name = "bstr" 197 + version = "1.12.1" 198 + source = "registry+https://github.com/rust-lang/crates.io-index" 199 + checksum = "63044e1ae8e69f3b5a92c736ca6269b8d12fa7efe39bf34ddb06d102cf0e2cab" 200 + dependencies = [ 201 + "memchr", 202 + "regex-automata", 203 + "serde", 204 + ] 205 + 206 + [[package]] 207 + name = "bumpalo" 208 + version = "3.19.1" 209 + source = "registry+https://github.com/rust-lang/crates.io-index" 210 + checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510" 211 + 212 + [[package]] 213 + name = "bytemuck" 214 + version = "1.24.0" 215 + source = "registry+https://github.com/rust-lang/crates.io-index" 216 + checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4" 217 + 218 + [[package]] 219 + name = "byteorder" 220 + version = "1.5.0" 221 + source = "registry+https://github.com/rust-lang/crates.io-index" 222 + checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" 223 + 224 + [[package]] 225 + name = "bytes" 226 + version = "1.11.0" 227 + source = "registry+https://github.com/rust-lang/crates.io-index" 228 + checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" 229 + dependencies = [ 230 + "serde", 231 + ] 232 + 233 + [[package]] 234 + name = "cairo-rs" 235 + version = "0.18.5" 236 + source = "registry+https://github.com/rust-lang/crates.io-index" 237 + checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2" 238 + dependencies = [ 239 + "bitflags 2.10.0", 240 + "cairo-sys-rs", 241 + "glib", 242 + "libc", 243 + "once_cell", 244 + "thiserror 1.0.69", 245 + ] 246 + 247 + [[package]] 248 + name = "cairo-sys-rs" 249 + version = "0.18.2" 250 + source = "registry+https://github.com/rust-lang/crates.io-index" 251 + checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51" 252 + dependencies = [ 253 + "glib-sys", 254 + "libc", 255 + "system-deps", 256 + ] 257 + 258 + [[package]] 259 + name = "camino" 260 + version = "1.2.2" 261 + source = "registry+https://github.com/rust-lang/crates.io-index" 262 + checksum = "e629a66d692cb9ff1a1c664e41771b3dcaf961985a9774c0eb0bd1b51cf60a48" 263 + dependencies = [ 264 + "serde_core", 265 + ] 266 + 267 + [[package]] 268 + name = "cargo-platform" 269 + version = "0.1.9" 270 + source = "registry+https://github.com/rust-lang/crates.io-index" 271 + checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" 272 + dependencies = [ 273 + "serde", 274 + ] 275 + 276 + [[package]] 277 + name = "cargo_metadata" 278 + version = "0.19.2" 279 + source = "registry+https://github.com/rust-lang/crates.io-index" 280 + checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba" 281 + dependencies = [ 282 + "camino", 283 + "cargo-platform", 284 + "semver", 285 + "serde", 286 + "serde_json", 287 + "thiserror 2.0.17", 288 + ] 289 + 290 + [[package]] 291 + name = "cargo_toml" 292 + version = "0.22.3" 293 + source = "registry+https://github.com/rust-lang/crates.io-index" 294 + checksum = "374b7c592d9c00c1f4972ea58390ac6b18cbb6ab79011f3bdc90a0b82ca06b77" 295 + dependencies = [ 296 + "serde", 297 + "toml 0.9.10+spec-1.1.0", 298 + ] 299 + 300 + [[package]] 301 + name = "cc" 302 + version = "1.2.50" 303 + source = "registry+https://github.com/rust-lang/crates.io-index" 304 + checksum = "9f50d563227a1c37cc0a263f64eca3334388c01c5e4c4861a9def205c614383c" 305 + dependencies = [ 306 + "find-msvc-tools", 307 + "shlex", 308 + ] 309 + 310 + [[package]] 311 + name = "cesu8" 312 + version = "1.1.0" 313 + source = "registry+https://github.com/rust-lang/crates.io-index" 314 + checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" 315 + 316 + [[package]] 317 + name = "cfb" 318 + version = "0.7.3" 319 + source = "registry+https://github.com/rust-lang/crates.io-index" 320 + checksum = "d38f2da7a0a2c4ccf0065be06397cc26a81f4e528be095826eee9d4adbb8c60f" 321 + dependencies = [ 322 + "byteorder", 323 + "fnv", 324 + "uuid", 325 + ] 326 + 327 + [[package]] 328 + name = "cfg-expr" 329 + version = "0.15.8" 330 + source = "registry+https://github.com/rust-lang/crates.io-index" 331 + checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" 332 + dependencies = [ 333 + "smallvec", 334 + "target-lexicon", 335 + ] 336 + 337 + [[package]] 338 + name = "cfg-if" 339 + version = "1.0.4" 340 + source = "registry+https://github.com/rust-lang/crates.io-index" 341 + checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" 342 + 343 + [[package]] 344 + name = "chrono" 345 + version = "0.4.42" 346 + source = "registry+https://github.com/rust-lang/crates.io-index" 347 + checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" 348 + dependencies = [ 349 + "iana-time-zone", 350 + "num-traits", 351 + "serde", 352 + "windows-link 0.2.1", 353 + ] 354 + 355 + [[package]] 356 + name = "clru" 357 + version = "0.6.2" 358 + source = "registry+https://github.com/rust-lang/crates.io-index" 359 + checksum = "cbd0f76e066e64fdc5631e3bb46381254deab9ef1158292f27c8c57e3bf3fe59" 360 + 361 + [[package]] 362 + name = "combine" 363 + version = "4.6.7" 364 + source = "registry+https://github.com/rust-lang/crates.io-index" 365 + checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" 366 + dependencies = [ 367 + "bytes", 368 + "memchr", 369 + ] 370 + 371 + [[package]] 372 + name = "convert_case" 373 + version = "0.4.0" 374 + source = "registry+https://github.com/rust-lang/crates.io-index" 375 + checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" 376 + 377 + [[package]] 378 + name = "cookie" 379 + version = "0.18.1" 380 + source = "registry+https://github.com/rust-lang/crates.io-index" 381 + checksum = "4ddef33a339a91ea89fb53151bd0a4689cfce27055c291dfa69945475d22c747" 382 + dependencies = [ 383 + "time", 384 + "version_check", 385 + ] 386 + 387 + [[package]] 388 + name = "core-foundation" 389 + version = "0.10.1" 390 + source = "registry+https://github.com/rust-lang/crates.io-index" 391 + checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" 392 + dependencies = [ 393 + "core-foundation-sys", 394 + "libc", 395 + ] 396 + 397 + [[package]] 398 + name = "core-foundation-sys" 399 + version = "0.8.7" 400 + source = "registry+https://github.com/rust-lang/crates.io-index" 401 + checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" 402 + 403 + [[package]] 404 + name = "core-graphics" 405 + version = "0.24.0" 406 + source = "registry+https://github.com/rust-lang/crates.io-index" 407 + checksum = "fa95a34622365fa5bbf40b20b75dba8dfa8c94c734aea8ac9a5ca38af14316f1" 408 + dependencies = [ 409 + "bitflags 2.10.0", 410 + "core-foundation", 411 + "core-graphics-types", 412 + "foreign-types", 413 + "libc", 414 + ] 415 + 416 + [[package]] 417 + name = "core-graphics-types" 418 + version = "0.2.0" 419 + source = "registry+https://github.com/rust-lang/crates.io-index" 420 + checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" 421 + dependencies = [ 422 + "bitflags 2.10.0", 423 + "core-foundation", 424 + "libc", 425 + ] 426 + 427 + [[package]] 428 + name = "cpufeatures" 429 + version = "0.2.17" 430 + source = "registry+https://github.com/rust-lang/crates.io-index" 431 + checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" 432 + dependencies = [ 433 + "libc", 434 + ] 435 + 436 + [[package]] 437 + name = "crc32fast" 438 + version = "1.5.0" 439 + source = "registry+https://github.com/rust-lang/crates.io-index" 440 + checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" 441 + dependencies = [ 442 + "cfg-if", 443 + ] 444 + 445 + [[package]] 446 + name = "crossbeam-channel" 447 + version = "0.5.15" 448 + source = "registry+https://github.com/rust-lang/crates.io-index" 449 + checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" 450 + dependencies = [ 451 + "crossbeam-utils", 452 + ] 453 + 454 + [[package]] 455 + name = "crossbeam-deque" 456 + version = "0.8.6" 457 + source = "registry+https://github.com/rust-lang/crates.io-index" 458 + checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" 459 + dependencies = [ 460 + "crossbeam-epoch", 461 + "crossbeam-utils", 462 + ] 463 + 464 + [[package]] 465 + name = "crossbeam-epoch" 466 + version = "0.9.18" 467 + source = "registry+https://github.com/rust-lang/crates.io-index" 468 + checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" 469 + dependencies = [ 470 + "crossbeam-utils", 471 + ] 472 + 473 + [[package]] 474 + name = "crossbeam-utils" 475 + version = "0.8.21" 476 + source = "registry+https://github.com/rust-lang/crates.io-index" 477 + checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" 478 + 479 + [[package]] 480 + name = "crypto-common" 481 + version = "0.1.7" 482 + source = "registry+https://github.com/rust-lang/crates.io-index" 483 + checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" 484 + dependencies = [ 485 + "generic-array", 486 + "typenum", 487 + ] 488 + 489 + [[package]] 490 + name = "cssparser" 491 + version = "0.29.6" 492 + source = "registry+https://github.com/rust-lang/crates.io-index" 493 + checksum = "f93d03419cb5950ccfd3daf3ff1c7a36ace64609a1a8746d493df1ca0afde0fa" 494 + dependencies = [ 495 + "cssparser-macros", 496 + "dtoa-short", 497 + "itoa", 498 + "matches", 499 + "phf 0.10.1", 500 + "proc-macro2", 501 + "quote", 502 + "smallvec", 503 + "syn 1.0.109", 504 + ] 505 + 506 + [[package]] 507 + name = "cssparser-macros" 508 + version = "0.6.1" 509 + source = "registry+https://github.com/rust-lang/crates.io-index" 510 + checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" 511 + dependencies = [ 512 + "quote", 513 + "syn 2.0.111", 514 + ] 515 + 516 + [[package]] 517 + name = "ctor" 518 + version = "0.2.9" 519 + source = "registry+https://github.com/rust-lang/crates.io-index" 520 + checksum = "32a2785755761f3ddc1492979ce1e48d2c00d09311c39e4466429188f3dd6501" 521 + dependencies = [ 522 + "quote", 523 + "syn 2.0.111", 524 + ] 525 + 526 + [[package]] 527 + name = "darling" 528 + version = "0.21.3" 529 + source = "registry+https://github.com/rust-lang/crates.io-index" 530 + checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" 531 + dependencies = [ 532 + "darling_core", 533 + "darling_macro", 534 + ] 535 + 536 + [[package]] 537 + name = "darling_core" 538 + version = "0.21.3" 539 + source = "registry+https://github.com/rust-lang/crates.io-index" 540 + checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" 541 + dependencies = [ 542 + "fnv", 543 + "ident_case", 544 + "proc-macro2", 545 + "quote", 546 + "strsim", 547 + "syn 2.0.111", 548 + ] 549 + 550 + [[package]] 551 + name = "darling_macro" 552 + version = "0.21.3" 553 + source = "registry+https://github.com/rust-lang/crates.io-index" 554 + checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" 555 + dependencies = [ 556 + "darling_core", 557 + "quote", 558 + "syn 2.0.111", 559 + ] 560 + 561 + [[package]] 562 + name = "dashmap" 563 + version = "6.1.0" 564 + source = "registry+https://github.com/rust-lang/crates.io-index" 565 + checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" 566 + dependencies = [ 567 + "cfg-if", 568 + "crossbeam-utils", 569 + "hashbrown 0.14.5", 570 + "lock_api", 571 + "once_cell", 572 + "parking_lot_core", 573 + ] 574 + 575 + [[package]] 576 + name = "deranged" 577 + version = "0.5.5" 578 + source = "registry+https://github.com/rust-lang/crates.io-index" 579 + checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" 580 + dependencies = [ 581 + "powerfmt", 582 + "serde_core", 583 + ] 584 + 585 + [[package]] 586 + name = "derive_more" 587 + version = "0.99.20" 588 + source = "registry+https://github.com/rust-lang/crates.io-index" 589 + checksum = "6edb4b64a43d977b8e99788fe3a04d483834fba1215a7e02caa415b626497f7f" 590 + dependencies = [ 591 + "convert_case", 592 + "proc-macro2", 593 + "quote", 594 + "rustc_version", 595 + "syn 2.0.111", 596 + ] 597 + 598 + [[package]] 599 + name = "digest" 600 + version = "0.10.7" 601 + source = "registry+https://github.com/rust-lang/crates.io-index" 602 + checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" 603 + dependencies = [ 604 + "block-buffer", 605 + "crypto-common", 606 + "subtle", 607 + ] 608 + 609 + [[package]] 610 + name = "dirs" 611 + version = "6.0.0" 612 + source = "registry+https://github.com/rust-lang/crates.io-index" 613 + checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" 614 + dependencies = [ 615 + "dirs-sys", 616 + ] 617 + 618 + [[package]] 619 + name = "dirs-sys" 620 + version = "0.5.0" 621 + source = "registry+https://github.com/rust-lang/crates.io-index" 622 + checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" 623 + dependencies = [ 624 + "libc", 625 + "option-ext", 626 + "redox_users", 627 + "windows-sys 0.61.2", 628 + ] 629 + 630 + [[package]] 631 + name = "dispatch" 632 + version = "0.2.0" 633 + source = "registry+https://github.com/rust-lang/crates.io-index" 634 + checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" 635 + 636 + [[package]] 637 + name = "dispatch2" 638 + version = "0.3.0" 639 + source = "registry+https://github.com/rust-lang/crates.io-index" 640 + checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec" 641 + dependencies = [ 642 + "bitflags 2.10.0", 643 + "objc2", 644 + ] 645 + 646 + [[package]] 647 + name = "displaydoc" 648 + version = "0.2.5" 649 + source = "registry+https://github.com/rust-lang/crates.io-index" 650 + checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" 651 + dependencies = [ 652 + "proc-macro2", 653 + "quote", 654 + "syn 2.0.111", 655 + ] 656 + 657 + [[package]] 658 + name = "dlopen2" 659 + version = "0.8.2" 660 + source = "registry+https://github.com/rust-lang/crates.io-index" 661 + checksum = "5e2c5bd4158e66d1e215c49b837e11d62f3267b30c92f1d171c4d3105e3dc4d4" 662 + dependencies = [ 663 + "dlopen2_derive", 664 + "libc", 665 + "once_cell", 666 + "winapi", 667 + ] 668 + 669 + [[package]] 670 + name = "dlopen2_derive" 671 + version = "0.4.3" 672 + source = "registry+https://github.com/rust-lang/crates.io-index" 673 + checksum = "0fbbb781877580993a8707ec48672673ec7b81eeba04cfd2310bd28c08e47c8f" 674 + dependencies = [ 675 + "proc-macro2", 676 + "quote", 677 + "syn 2.0.111", 678 + ] 679 + 680 + [[package]] 681 + name = "dpi" 682 + version = "0.1.2" 683 + source = "registry+https://github.com/rust-lang/crates.io-index" 684 + checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76" 685 + dependencies = [ 686 + "serde", 687 + ] 688 + 689 + [[package]] 690 + name = "dtoa" 691 + version = "1.0.10" 692 + source = "registry+https://github.com/rust-lang/crates.io-index" 693 + checksum = "d6add3b8cff394282be81f3fc1a0605db594ed69890078ca6e2cab1c408bcf04" 694 + 695 + [[package]] 696 + name = "dtoa-short" 697 + version = "0.3.5" 698 + source = "registry+https://github.com/rust-lang/crates.io-index" 699 + checksum = "cd1511a7b6a56299bd043a9c167a6d2bfb37bf84a6dfceaba651168adfb43c87" 700 + dependencies = [ 701 + "dtoa", 702 + ] 703 + 704 + [[package]] 705 + name = "dunce" 706 + version = "1.0.5" 707 + source = "registry+https://github.com/rust-lang/crates.io-index" 708 + checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" 709 + 710 + [[package]] 711 + name = "dyn-clone" 712 + version = "1.0.20" 713 + source = "registry+https://github.com/rust-lang/crates.io-index" 714 + checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" 715 + 716 + [[package]] 717 + name = "either" 718 + version = "1.15.0" 719 + source = "registry+https://github.com/rust-lang/crates.io-index" 720 + checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" 721 + 722 + [[package]] 723 + name = "embed-resource" 724 + version = "3.0.6" 725 + source = "registry+https://github.com/rust-lang/crates.io-index" 726 + checksum = "55a075fc573c64510038d7ee9abc7990635863992f83ebc52c8b433b8411a02e" 727 + dependencies = [ 728 + "cc", 729 + "memchr", 730 + "rustc_version", 731 + "toml 0.9.10+spec-1.1.0", 732 + "vswhom", 733 + "winreg", 734 + ] 735 + 736 + [[package]] 737 + name = "embed_plist" 738 + version = "1.2.2" 739 + source = "registry+https://github.com/rust-lang/crates.io-index" 740 + checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" 741 + 742 + [[package]] 743 + name = "encoding_rs" 744 + version = "0.8.35" 745 + source = "registry+https://github.com/rust-lang/crates.io-index" 746 + checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" 747 + dependencies = [ 748 + "cfg-if", 749 + ] 750 + 751 + [[package]] 752 + name = "equivalent" 753 + version = "1.0.2" 754 + source = "registry+https://github.com/rust-lang/crates.io-index" 755 + checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" 756 + 757 + [[package]] 758 + name = "erased-serde" 759 + version = "0.4.9" 760 + source = "registry+https://github.com/rust-lang/crates.io-index" 761 + checksum = "89e8918065695684b2b0702da20382d5ae6065cf3327bc2d6436bd49a71ce9f3" 762 + dependencies = [ 763 + "serde", 764 + "serde_core", 765 + "typeid", 766 + ] 767 + 768 + [[package]] 769 + name = "errno" 770 + version = "0.3.14" 771 + source = "registry+https://github.com/rust-lang/crates.io-index" 772 + checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" 773 + dependencies = [ 774 + "libc", 775 + "windows-sys 0.61.2", 776 + ] 777 + 778 + [[package]] 779 + name = "faster-hex" 780 + version = "0.10.0" 781 + source = "registry+https://github.com/rust-lang/crates.io-index" 782 + checksum = "7223ae2d2f179b803433d9c830478527e92b8117eab39460edae7f1614d9fb73" 783 + dependencies = [ 784 + "heapless", 785 + "serde", 786 + ] 787 + 788 + [[package]] 789 + name = "fastrand" 790 + version = "2.3.0" 791 + source = "registry+https://github.com/rust-lang/crates.io-index" 792 + checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" 793 + 794 + [[package]] 795 + name = "fdeflate" 796 + version = "0.3.7" 797 + source = "registry+https://github.com/rust-lang/crates.io-index" 798 + checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c" 799 + dependencies = [ 800 + "simd-adler32", 801 + ] 802 + 803 + [[package]] 804 + name = "field-offset" 805 + version = "0.3.6" 806 + source = "registry+https://github.com/rust-lang/crates.io-index" 807 + checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" 808 + dependencies = [ 809 + "memoffset", 810 + "rustc_version", 811 + ] 812 + 813 + [[package]] 814 + name = "filetime" 815 + version = "0.2.26" 816 + source = "registry+https://github.com/rust-lang/crates.io-index" 817 + checksum = "bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed" 818 + dependencies = [ 819 + "cfg-if", 820 + "libc", 821 + "libredox", 822 + "windows-sys 0.60.2", 823 + ] 824 + 825 + [[package]] 826 + name = "find-msvc-tools" 827 + version = "0.1.5" 828 + source = "registry+https://github.com/rust-lang/crates.io-index" 829 + checksum = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844" 830 + 831 + [[package]] 832 + name = "flate2" 833 + version = "1.1.5" 834 + source = "registry+https://github.com/rust-lang/crates.io-index" 835 + checksum = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb" 836 + dependencies = [ 837 + "crc32fast", 838 + "miniz_oxide", 839 + ] 840 + 841 + [[package]] 842 + name = "fnv" 843 + version = "1.0.7" 844 + source = "registry+https://github.com/rust-lang/crates.io-index" 845 + checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 846 + 847 + [[package]] 848 + name = "foldhash" 849 + version = "0.1.5" 850 + source = "registry+https://github.com/rust-lang/crates.io-index" 851 + checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" 852 + 853 + [[package]] 854 + name = "foldhash" 855 + version = "0.2.0" 856 + source = "registry+https://github.com/rust-lang/crates.io-index" 857 + checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" 858 + 859 + [[package]] 860 + name = "foreign-types" 861 + version = "0.5.0" 862 + source = "registry+https://github.com/rust-lang/crates.io-index" 863 + checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" 864 + dependencies = [ 865 + "foreign-types-macros", 866 + "foreign-types-shared", 867 + ] 868 + 869 + [[package]] 870 + name = "foreign-types-macros" 871 + version = "0.2.3" 872 + source = "registry+https://github.com/rust-lang/crates.io-index" 873 + checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" 874 + dependencies = [ 875 + "proc-macro2", 876 + "quote", 877 + "syn 2.0.111", 878 + ] 879 + 880 + [[package]] 881 + name = "foreign-types-shared" 882 + version = "0.3.1" 883 + source = "registry+https://github.com/rust-lang/crates.io-index" 884 + checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" 885 + 886 + [[package]] 887 + name = "form_urlencoded" 888 + version = "1.2.2" 889 + source = "registry+https://github.com/rust-lang/crates.io-index" 890 + checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" 891 + dependencies = [ 892 + "percent-encoding", 893 + ] 894 + 895 + [[package]] 896 + name = "futf" 897 + version = "0.1.5" 898 + source = "registry+https://github.com/rust-lang/crates.io-index" 899 + checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" 900 + dependencies = [ 901 + "mac", 902 + "new_debug_unreachable", 903 + ] 904 + 905 + [[package]] 906 + name = "futures" 907 + version = "0.3.31" 908 + source = "registry+https://github.com/rust-lang/crates.io-index" 909 + checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" 910 + dependencies = [ 911 + "futures-channel", 912 + "futures-core", 913 + "futures-executor", 914 + "futures-io", 915 + "futures-sink", 916 + "futures-task", 917 + "futures-util", 918 + ] 919 + 920 + [[package]] 921 + name = "futures-channel" 922 + version = "0.3.31" 923 + source = "registry+https://github.com/rust-lang/crates.io-index" 924 + checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" 925 + dependencies = [ 926 + "futures-core", 927 + "futures-sink", 928 + ] 929 + 930 + [[package]] 931 + name = "futures-core" 932 + version = "0.3.31" 933 + source = "registry+https://github.com/rust-lang/crates.io-index" 934 + checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" 935 + 936 + [[package]] 937 + name = "futures-executor" 938 + version = "0.3.31" 939 + source = "registry+https://github.com/rust-lang/crates.io-index" 940 + checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" 941 + dependencies = [ 942 + "futures-core", 943 + "futures-task", 944 + "futures-util", 945 + ] 946 + 947 + [[package]] 948 + name = "futures-io" 949 + version = "0.3.31" 950 + source = "registry+https://github.com/rust-lang/crates.io-index" 951 + checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" 952 + 953 + [[package]] 954 + name = "futures-macro" 955 + version = "0.3.31" 956 + source = "registry+https://github.com/rust-lang/crates.io-index" 957 + checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" 958 + dependencies = [ 959 + "proc-macro2", 960 + "quote", 961 + "syn 2.0.111", 962 + ] 963 + 964 + [[package]] 965 + name = "futures-sink" 966 + version = "0.3.31" 967 + source = "registry+https://github.com/rust-lang/crates.io-index" 968 + checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" 969 + 970 + [[package]] 971 + name = "futures-task" 972 + version = "0.3.31" 973 + source = "registry+https://github.com/rust-lang/crates.io-index" 974 + checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" 975 + 976 + [[package]] 977 + name = "futures-util" 978 + version = "0.3.31" 979 + source = "registry+https://github.com/rust-lang/crates.io-index" 980 + checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" 981 + dependencies = [ 982 + "futures-channel", 983 + "futures-core", 984 + "futures-io", 985 + "futures-macro", 986 + "futures-sink", 987 + "futures-task", 988 + "memchr", 989 + "pin-project-lite", 990 + "pin-utils", 991 + "slab", 992 + ] 993 + 994 + [[package]] 995 + name = "fxhash" 996 + version = "0.2.1" 997 + source = "registry+https://github.com/rust-lang/crates.io-index" 998 + checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" 999 + dependencies = [ 1000 + "byteorder", 1001 + ] 1002 + 1003 + [[package]] 1004 + name = "gdk" 1005 + version = "0.18.2" 1006 + source = "registry+https://github.com/rust-lang/crates.io-index" 1007 + checksum = "d9f245958c627ac99d8e529166f9823fb3b838d1d41fd2b297af3075093c2691" 1008 + dependencies = [ 1009 + "cairo-rs", 1010 + "gdk-pixbuf", 1011 + "gdk-sys", 1012 + "gio", 1013 + "glib", 1014 + "libc", 1015 + "pango", 1016 + ] 1017 + 1018 + [[package]] 1019 + name = "gdk-pixbuf" 1020 + version = "0.18.5" 1021 + source = "registry+https://github.com/rust-lang/crates.io-index" 1022 + checksum = "50e1f5f1b0bfb830d6ccc8066d18db35c487b1b2b1e8589b5dfe9f07e8defaec" 1023 + dependencies = [ 1024 + "gdk-pixbuf-sys", 1025 + "gio", 1026 + "glib", 1027 + "libc", 1028 + "once_cell", 1029 + ] 1030 + 1031 + [[package]] 1032 + name = "gdk-pixbuf-sys" 1033 + version = "0.18.0" 1034 + source = "registry+https://github.com/rust-lang/crates.io-index" 1035 + checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7" 1036 + dependencies = [ 1037 + "gio-sys", 1038 + "glib-sys", 1039 + "gobject-sys", 1040 + "libc", 1041 + "system-deps", 1042 + ] 1043 + 1044 + [[package]] 1045 + name = "gdk-sys" 1046 + version = "0.18.2" 1047 + source = "registry+https://github.com/rust-lang/crates.io-index" 1048 + checksum = "5c2d13f38594ac1e66619e188c6d5a1adb98d11b2fcf7894fc416ad76aa2f3f7" 1049 + dependencies = [ 1050 + "cairo-sys-rs", 1051 + "gdk-pixbuf-sys", 1052 + "gio-sys", 1053 + "glib-sys", 1054 + "gobject-sys", 1055 + "libc", 1056 + "pango-sys", 1057 + "pkg-config", 1058 + "system-deps", 1059 + ] 1060 + 1061 + [[package]] 1062 + name = "gdkwayland-sys" 1063 + version = "0.18.2" 1064 + source = "registry+https://github.com/rust-lang/crates.io-index" 1065 + checksum = "140071d506d223f7572b9f09b5e155afbd77428cd5cc7af8f2694c41d98dfe69" 1066 + dependencies = [ 1067 + "gdk-sys", 1068 + "glib-sys", 1069 + "gobject-sys", 1070 + "libc", 1071 + "pkg-config", 1072 + "system-deps", 1073 + ] 1074 + 1075 + [[package]] 1076 + name = "gdkx11" 1077 + version = "0.18.2" 1078 + source = "registry+https://github.com/rust-lang/crates.io-index" 1079 + checksum = "3caa00e14351bebbc8183b3c36690327eb77c49abc2268dd4bd36b856db3fbfe" 1080 + dependencies = [ 1081 + "gdk", 1082 + "gdkx11-sys", 1083 + "gio", 1084 + "glib", 1085 + "libc", 1086 + "x11", 1087 + ] 1088 + 1089 + [[package]] 1090 + name = "gdkx11-sys" 1091 + version = "0.18.2" 1092 + source = "registry+https://github.com/rust-lang/crates.io-index" 1093 + checksum = "6e2e7445fe01ac26f11601db260dd8608fe172514eb63b3b5e261ea6b0f4428d" 1094 + dependencies = [ 1095 + "gdk-sys", 1096 + "glib-sys", 1097 + "libc", 1098 + "system-deps", 1099 + "x11", 1100 + ] 1101 + 1102 + [[package]] 1103 + name = "generic-array" 1104 + version = "0.14.7" 1105 + source = "registry+https://github.com/rust-lang/crates.io-index" 1106 + checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" 1107 + dependencies = [ 1108 + "typenum", 1109 + "version_check", 1110 + ] 1111 + 1112 + [[package]] 1113 + name = "getrandom" 1114 + version = "0.1.16" 1115 + source = "registry+https://github.com/rust-lang/crates.io-index" 1116 + checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" 1117 + dependencies = [ 1118 + "cfg-if", 1119 + "libc", 1120 + "wasi 0.9.0+wasi-snapshot-preview1", 1121 + ] 1122 + 1123 + [[package]] 1124 + name = "getrandom" 1125 + version = "0.2.16" 1126 + source = "registry+https://github.com/rust-lang/crates.io-index" 1127 + checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" 1128 + dependencies = [ 1129 + "cfg-if", 1130 + "libc", 1131 + "wasi 0.11.1+wasi-snapshot-preview1", 1132 + ] 1133 + 1134 + [[package]] 1135 + name = "getrandom" 1136 + version = "0.3.4" 1137 + source = "registry+https://github.com/rust-lang/crates.io-index" 1138 + checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" 1139 + dependencies = [ 1140 + "cfg-if", 1141 + "libc", 1142 + "r-efi", 1143 + "wasip2", 1144 + ] 1145 + 1146 + [[package]] 1147 + name = "gio" 1148 + version = "0.18.4" 1149 + source = "registry+https://github.com/rust-lang/crates.io-index" 1150 + checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73" 1151 + dependencies = [ 1152 + "futures-channel", 1153 + "futures-core", 1154 + "futures-io", 1155 + "futures-util", 1156 + "gio-sys", 1157 + "glib", 1158 + "libc", 1159 + "once_cell", 1160 + "pin-project-lite", 1161 + "smallvec", 1162 + "thiserror 1.0.69", 1163 + ] 1164 + 1165 + [[package]] 1166 + name = "gio-sys" 1167 + version = "0.18.1" 1168 + source = "registry+https://github.com/rust-lang/crates.io-index" 1169 + checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2" 1170 + dependencies = [ 1171 + "glib-sys", 1172 + "gobject-sys", 1173 + "libc", 1174 + "system-deps", 1175 + "winapi", 1176 + ] 1177 + 1178 + [[package]] 1179 + name = "gix" 1180 + version = "0.74.1" 1181 + source = "registry+https://github.com/rust-lang/crates.io-index" 1182 + checksum = "5fd3a6fea165debe0e80648495f894aa2371a771e3ceb7a7dcc304f1c4344c43" 1183 + dependencies = [ 1184 + "gix-actor", 1185 + "gix-attributes", 1186 + "gix-command", 1187 + "gix-commitgraph", 1188 + "gix-config", 1189 + "gix-date", 1190 + "gix-diff", 1191 + "gix-discover", 1192 + "gix-features", 1193 + "gix-filter", 1194 + "gix-fs", 1195 + "gix-glob", 1196 + "gix-hash", 1197 + "gix-hashtable", 1198 + "gix-ignore", 1199 + "gix-index", 1200 + "gix-lock", 1201 + "gix-object", 1202 + "gix-odb", 1203 + "gix-pack", 1204 + "gix-path", 1205 + "gix-pathspec", 1206 + "gix-protocol", 1207 + "gix-ref", 1208 + "gix-refspec", 1209 + "gix-revision", 1210 + "gix-revwalk", 1211 + "gix-sec", 1212 + "gix-shallow", 1213 + "gix-submodule", 1214 + "gix-tempfile", 1215 + "gix-trace", 1216 + "gix-traverse", 1217 + "gix-url", 1218 + "gix-utils", 1219 + "gix-validate", 1220 + "gix-worktree", 1221 + "smallvec", 1222 + "thiserror 2.0.17", 1223 + ] 1224 + 1225 + [[package]] 1226 + name = "gix-actor" 1227 + version = "0.35.6" 1228 + source = "registry+https://github.com/rust-lang/crates.io-index" 1229 + checksum = "987a51a7e66db6ef4dc030418eb2a42af6b913a79edd8670766122d8af3ba59e" 1230 + dependencies = [ 1231 + "bstr", 1232 + "gix-date", 1233 + "gix-utils", 1234 + "itoa", 1235 + "thiserror 2.0.17", 1236 + "winnow 0.7.14", 1237 + ] 1238 + 1239 + [[package]] 1240 + name = "gix-attributes" 1241 + version = "0.28.1" 1242 + source = "registry+https://github.com/rust-lang/crates.io-index" 1243 + checksum = "cc6591add69314fc43db078076a8da6f07957c65abb0b21c3e1b6a3cf50aa18d" 1244 + dependencies = [ 1245 + "bstr", 1246 + "gix-glob", 1247 + "gix-path", 1248 + "gix-quote", 1249 + "gix-trace", 1250 + "kstring", 1251 + "smallvec", 1252 + "thiserror 2.0.17", 1253 + "unicode-bom", 1254 + ] 1255 + 1256 + [[package]] 1257 + name = "gix-bitmap" 1258 + version = "0.2.15" 1259 + source = "registry+https://github.com/rust-lang/crates.io-index" 1260 + checksum = "5e150161b8a75b5860521cb876b506879a3376d3adc857ec7a9d35e7c6a5e531" 1261 + dependencies = [ 1262 + "thiserror 2.0.17", 1263 + ] 1264 + 1265 + [[package]] 1266 + name = "gix-chunk" 1267 + version = "0.4.12" 1268 + source = "registry+https://github.com/rust-lang/crates.io-index" 1269 + checksum = "5c356b3825677cb6ff579551bb8311a81821e184453cbd105e2fc5311b288eeb" 1270 + dependencies = [ 1271 + "thiserror 2.0.17", 1272 + ] 1273 + 1274 + [[package]] 1275 + name = "gix-command" 1276 + version = "0.6.3" 1277 + source = "registry+https://github.com/rust-lang/crates.io-index" 1278 + checksum = "095c8367c9dc4872a7706fbc39c7f34271b88b541120a4365ff0e36366f66e62" 1279 + dependencies = [ 1280 + "bstr", 1281 + "gix-path", 1282 + "gix-quote", 1283 + "gix-trace", 1284 + "shell-words", 1285 + ] 1286 + 1287 + [[package]] 1288 + name = "gix-commitgraph" 1289 + version = "0.30.1" 1290 + source = "registry+https://github.com/rust-lang/crates.io-index" 1291 + checksum = "826994ff6c01f1ff00d6a1844d7506717810a91ffed143da71e3bf39369751ef" 1292 + dependencies = [ 1293 + "bstr", 1294 + "gix-chunk", 1295 + "gix-hash", 1296 + "memmap2", 1297 + "thiserror 2.0.17", 1298 + ] 1299 + 1300 + [[package]] 1301 + name = "gix-config" 1302 + version = "0.47.1" 1303 + source = "registry+https://github.com/rust-lang/crates.io-index" 1304 + checksum = "1e74f57ea99025de9207db53488be4d59cf2000f617964c1b550880524fefbc3" 1305 + dependencies = [ 1306 + "bstr", 1307 + "gix-config-value", 1308 + "gix-features", 1309 + "gix-glob", 1310 + "gix-path", 1311 + "gix-ref", 1312 + "gix-sec", 1313 + "memchr", 1314 + "smallvec", 1315 + "thiserror 2.0.17", 1316 + "unicode-bom", 1317 + "winnow 0.7.14", 1318 + ] 1319 + 1320 + [[package]] 1321 + name = "gix-config-value" 1322 + version = "0.15.3" 1323 + source = "registry+https://github.com/rust-lang/crates.io-index" 1324 + checksum = "2c489abb061c74b0c3ad790e24a606ef968cebab48ec673d6a891ece7d5aef64" 1325 + dependencies = [ 1326 + "bitflags 2.10.0", 1327 + "bstr", 1328 + "gix-path", 1329 + "libc", 1330 + "thiserror 2.0.17", 1331 + ] 1332 + 1333 + [[package]] 1334 + name = "gix-date" 1335 + version = "0.10.7" 1336 + source = "registry+https://github.com/rust-lang/crates.io-index" 1337 + checksum = "661245d045aa7c16ba4244daaabd823c562c3e45f1f25b816be2c57ee09f2171" 1338 + dependencies = [ 1339 + "bstr", 1340 + "itoa", 1341 + "jiff", 1342 + "smallvec", 1343 + "thiserror 2.0.17", 1344 + ] 1345 + 1346 + [[package]] 1347 + name = "gix-diff" 1348 + version = "0.54.1" 1349 + source = "registry+https://github.com/rust-lang/crates.io-index" 1350 + checksum = "cd78d9da421baca219a650d71c797706117095635d7963f21bb6fdf2410abe04" 1351 + dependencies = [ 1352 + "bstr", 1353 + "gix-command", 1354 + "gix-filter", 1355 + "gix-fs", 1356 + "gix-hash", 1357 + "gix-object", 1358 + "gix-path", 1359 + "gix-tempfile", 1360 + "gix-trace", 1361 + "gix-traverse", 1362 + "gix-worktree", 1363 + "imara-diff", 1364 + "thiserror 2.0.17", 1365 + ] 1366 + 1367 + [[package]] 1368 + name = "gix-discover" 1369 + version = "0.42.0" 1370 + source = "registry+https://github.com/rust-lang/crates.io-index" 1371 + checksum = "9d24547153810634636471af88338240e6ab0831308cd41eb6ebfffea77811c6" 1372 + dependencies = [ 1373 + "bstr", 1374 + "dunce", 1375 + "gix-fs", 1376 + "gix-hash", 1377 + "gix-path", 1378 + "gix-ref", 1379 + "gix-sec", 1380 + "thiserror 2.0.17", 1381 + ] 1382 + 1383 + [[package]] 1384 + name = "gix-features" 1385 + version = "0.44.1" 1386 + source = "registry+https://github.com/rust-lang/crates.io-index" 1387 + checksum = "dfa64593d1586135102307fb57fb3a9d3868b6b1f45a4da1352cce5070f8916a" 1388 + dependencies = [ 1389 + "crc32fast", 1390 + "crossbeam-channel", 1391 + "gix-path", 1392 + "gix-trace", 1393 + "gix-utils", 1394 + "libc", 1395 + "libz-rs-sys", 1396 + "once_cell", 1397 + "parking_lot", 1398 + "prodash", 1399 + "thiserror 2.0.17", 1400 + "walkdir", 1401 + ] 1402 + 1403 + [[package]] 1404 + name = "gix-filter" 1405 + version = "0.21.0" 1406 + source = "registry+https://github.com/rust-lang/crates.io-index" 1407 + checksum = "1d1253452c9808da01eaaf9b1c4929b9982efec29ef0a668b3326b8046d9b8fb" 1408 + dependencies = [ 1409 + "bstr", 1410 + "encoding_rs", 1411 + "gix-attributes", 1412 + "gix-command", 1413 + "gix-hash", 1414 + "gix-object", 1415 + "gix-packetline-blocking", 1416 + "gix-path", 1417 + "gix-quote", 1418 + "gix-trace", 1419 + "gix-utils", 1420 + "smallvec", 1421 + "thiserror 2.0.17", 1422 + ] 1423 + 1424 + [[package]] 1425 + name = "gix-fs" 1426 + version = "0.17.0" 1427 + source = "registry+https://github.com/rust-lang/crates.io-index" 1428 + checksum = "3f1ecd896258cdc5ccd94d18386d17906b8de265ad2ecf68e3bea6b007f6a28f" 1429 + dependencies = [ 1430 + "bstr", 1431 + "fastrand", 1432 + "gix-features", 1433 + "gix-path", 1434 + "gix-utils", 1435 + "thiserror 2.0.17", 1436 + ] 1437 + 1438 + [[package]] 1439 + name = "gix-glob" 1440 + version = "0.22.1" 1441 + source = "registry+https://github.com/rust-lang/crates.io-index" 1442 + checksum = "74254992150b0a88fdb3ad47635ab649512dff2cbbefca7916bb459894fc9d56" 1443 + dependencies = [ 1444 + "bitflags 2.10.0", 1445 + "bstr", 1446 + "gix-features", 1447 + "gix-path", 1448 + ] 1449 + 1450 + [[package]] 1451 + name = "gix-hash" 1452 + version = "0.20.1" 1453 + source = "registry+https://github.com/rust-lang/crates.io-index" 1454 + checksum = "826036a9bee95945b0be1e2394c64cd4289916c34a639818f8fd5153906985c1" 1455 + dependencies = [ 1456 + "faster-hex", 1457 + "gix-features", 1458 + "sha1-checked", 1459 + "thiserror 2.0.17", 1460 + ] 1461 + 1462 + [[package]] 1463 + name = "gix-hashtable" 1464 + version = "0.10.0" 1465 + source = "registry+https://github.com/rust-lang/crates.io-index" 1466 + checksum = "a27d4a3ea9640da504a2657fef3419c517fd71f1767ad8935298bcc805edd195" 1467 + dependencies = [ 1468 + "gix-hash", 1469 + "hashbrown 0.16.1", 1470 + "parking_lot", 1471 + ] 1472 + 1473 + [[package]] 1474 + name = "gix-ignore" 1475 + version = "0.17.1" 1476 + source = "registry+https://github.com/rust-lang/crates.io-index" 1477 + checksum = "93b6a9679a1488123b7f2929684bacfd9cd2a24f286b52203b8752cbb8d7fc49" 1478 + dependencies = [ 1479 + "bstr", 1480 + "gix-glob", 1481 + "gix-path", 1482 + "gix-trace", 1483 + "unicode-bom", 1484 + ] 1485 + 1486 + [[package]] 1487 + name = "gix-index" 1488 + version = "0.42.1" 1489 + source = "registry+https://github.com/rust-lang/crates.io-index" 1490 + checksum = "31244542fb98ea4f3e964a4f8deafc2f4c77ad42bed58a1e8424bca1965fae99" 1491 + dependencies = [ 1492 + "bitflags 2.10.0", 1493 + "bstr", 1494 + "filetime", 1495 + "fnv", 1496 + "gix-bitmap", 1497 + "gix-features", 1498 + "gix-fs", 1499 + "gix-hash", 1500 + "gix-lock", 1501 + "gix-object", 1502 + "gix-traverse", 1503 + "gix-utils", 1504 + "gix-validate", 1505 + "hashbrown 0.16.1", 1506 + "itoa", 1507 + "libc", 1508 + "memmap2", 1509 + "rustix", 1510 + "smallvec", 1511 + "thiserror 2.0.17", 1512 + ] 1513 + 1514 + [[package]] 1515 + name = "gix-lock" 1516 + version = "19.0.0" 1517 + source = "registry+https://github.com/rust-lang/crates.io-index" 1518 + checksum = "729d7857429a66023bc0c29d60fa21d0d6ae8862f33c1937ba89e0f74dd5c67f" 1519 + dependencies = [ 1520 + "gix-tempfile", 1521 + "gix-utils", 1522 + "thiserror 2.0.17", 1523 + ] 1524 + 1525 + [[package]] 1526 + name = "gix-object" 1527 + version = "0.51.1" 1528 + source = "registry+https://github.com/rust-lang/crates.io-index" 1529 + checksum = "87ba1815638759c80d2318c8e98296fb396f577c2e588a3d9c13f9a5d5184051" 1530 + dependencies = [ 1531 + "bstr", 1532 + "gix-actor", 1533 + "gix-date", 1534 + "gix-features", 1535 + "gix-hash", 1536 + "gix-hashtable", 1537 + "gix-path", 1538 + "gix-utils", 1539 + "gix-validate", 1540 + "itoa", 1541 + "smallvec", 1542 + "thiserror 2.0.17", 1543 + "winnow 0.7.14", 1544 + ] 1545 + 1546 + [[package]] 1547 + name = "gix-odb" 1548 + version = "0.71.1" 1549 + source = "registry+https://github.com/rust-lang/crates.io-index" 1550 + checksum = "6efc6736d3ea62640efe8c1be695fb0760af63614a7356d2091208a841f1a634" 1551 + dependencies = [ 1552 + "arc-swap", 1553 + "gix-date", 1554 + "gix-features", 1555 + "gix-fs", 1556 + "gix-hash", 1557 + "gix-hashtable", 1558 + "gix-object", 1559 + "gix-pack", 1560 + "gix-path", 1561 + "gix-quote", 1562 + "parking_lot", 1563 + "tempfile", 1564 + "thiserror 2.0.17", 1565 + ] 1566 + 1567 + [[package]] 1568 + name = "gix-pack" 1569 + version = "0.61.1" 1570 + source = "registry+https://github.com/rust-lang/crates.io-index" 1571 + checksum = "719c60524be76874f4769da20d525ad2c00a0e7059943cc4f31fcb65cfb6b260" 1572 + dependencies = [ 1573 + "clru", 1574 + "gix-chunk", 1575 + "gix-features", 1576 + "gix-hash", 1577 + "gix-hashtable", 1578 + "gix-object", 1579 + "gix-path", 1580 + "memmap2", 1581 + "smallvec", 1582 + "thiserror 2.0.17", 1583 + "uluru", 1584 + ] 1585 + 1586 + [[package]] 1587 + name = "gix-packetline" 1588 + version = "0.19.3" 1589 + source = "registry+https://github.com/rust-lang/crates.io-index" 1590 + checksum = "64286a8b5148e76ab80932e72762dd27ccf6169dd7a134b027c8a262a8262fcf" 1591 + dependencies = [ 1592 + "bstr", 1593 + "faster-hex", 1594 + "gix-trace", 1595 + "thiserror 2.0.17", 1596 + ] 1597 + 1598 + [[package]] 1599 + name = "gix-packetline-blocking" 1600 + version = "0.19.3" 1601 + source = "registry+https://github.com/rust-lang/crates.io-index" 1602 + checksum = "89c59c3ad41e68cb38547d849e9ef5ccfc0d00f282244ba1441ae856be54d001" 1603 + dependencies = [ 1604 + "bstr", 1605 + "faster-hex", 1606 + "gix-trace", 1607 + "thiserror 2.0.17", 1608 + ] 1609 + 1610 + [[package]] 1611 + name = "gix-path" 1612 + version = "0.10.22" 1613 + source = "registry+https://github.com/rust-lang/crates.io-index" 1614 + checksum = "7cb06c3e4f8eed6e24fd915fa93145e28a511f4ea0e768bae16673e05ed3f366" 1615 + dependencies = [ 1616 + "bstr", 1617 + "gix-trace", 1618 + "gix-validate", 1619 + "thiserror 2.0.17", 1620 + ] 1621 + 1622 + [[package]] 1623 + name = "gix-pathspec" 1624 + version = "0.13.0" 1625 + source = "registry+https://github.com/rust-lang/crates.io-index" 1626 + checksum = "d05e28457dca7c65a2dbe118869aab922a5bd382b7bb10cff5354f366845c128" 1627 + dependencies = [ 1628 + "bitflags 2.10.0", 1629 + "bstr", 1630 + "gix-attributes", 1631 + "gix-config-value", 1632 + "gix-glob", 1633 + "gix-path", 1634 + "thiserror 2.0.17", 1635 + ] 1636 + 1637 + [[package]] 1638 + name = "gix-protocol" 1639 + version = "0.52.1" 1640 + source = "registry+https://github.com/rust-lang/crates.io-index" 1641 + checksum = "64f19873bbf924fd077580d4ccaaaeddb67c3b3c09a8ffb61e6b4cb67e3c9302" 1642 + dependencies = [ 1643 + "bstr", 1644 + "gix-date", 1645 + "gix-features", 1646 + "gix-hash", 1647 + "gix-ref", 1648 + "gix-shallow", 1649 + "gix-transport", 1650 + "gix-utils", 1651 + "maybe-async", 1652 + "thiserror 2.0.17", 1653 + "winnow 0.7.14", 1654 + ] 1655 + 1656 + [[package]] 1657 + name = "gix-quote" 1658 + version = "0.6.1" 1659 + source = "registry+https://github.com/rust-lang/crates.io-index" 1660 + checksum = "e912ec04b7b1566a85ad486db0cab6b9955e3e32bcd3c3a734542ab3af084c5b" 1661 + dependencies = [ 1662 + "bstr", 1663 + "gix-utils", 1664 + "thiserror 2.0.17", 1665 + ] 1666 + 1667 + [[package]] 1668 + name = "gix-ref" 1669 + version = "0.54.1" 1670 + source = "registry+https://github.com/rust-lang/crates.io-index" 1671 + checksum = "8881d262f28eda39c244e60ae968f4f6e56c747f65addd6f4100b25f75ed8b88" 1672 + dependencies = [ 1673 + "gix-actor", 1674 + "gix-features", 1675 + "gix-fs", 1676 + "gix-hash", 1677 + "gix-lock", 1678 + "gix-object", 1679 + "gix-path", 1680 + "gix-tempfile", 1681 + "gix-utils", 1682 + "gix-validate", 1683 + "memmap2", 1684 + "thiserror 2.0.17", 1685 + "winnow 0.7.14", 1686 + ] 1687 + 1688 + [[package]] 1689 + name = "gix-refspec" 1690 + version = "0.32.0" 1691 + source = "registry+https://github.com/rust-lang/crates.io-index" 1692 + checksum = "93147960f77695ba89b72019b789679278dd4dad6a0f9a4a5bf2fd07aba56912" 1693 + dependencies = [ 1694 + "bstr", 1695 + "gix-hash", 1696 + "gix-revision", 1697 + "gix-validate", 1698 + "smallvec", 1699 + "thiserror 2.0.17", 1700 + ] 1701 + 1702 + [[package]] 1703 + name = "gix-revision" 1704 + version = "0.36.1" 1705 + source = "registry+https://github.com/rust-lang/crates.io-index" 1706 + checksum = "13c5267e530d8762842be7d51b48d2b134c9dec5b650ca607f735a56a4b12413" 1707 + dependencies = [ 1708 + "bstr", 1709 + "gix-commitgraph", 1710 + "gix-date", 1711 + "gix-hash", 1712 + "gix-object", 1713 + "gix-revwalk", 1714 + "thiserror 2.0.17", 1715 + ] 1716 + 1717 + [[package]] 1718 + name = "gix-revwalk" 1719 + version = "0.22.0" 1720 + source = "registry+https://github.com/rust-lang/crates.io-index" 1721 + checksum = "02e2de4f91d712b1f6873477f769225fe430ffce2af8c7c85721c3ff955783b3" 1722 + dependencies = [ 1723 + "gix-commitgraph", 1724 + "gix-date", 1725 + "gix-hash", 1726 + "gix-hashtable", 1727 + "gix-object", 1728 + "smallvec", 1729 + "thiserror 2.0.17", 1730 + ] 1731 + 1732 + [[package]] 1733 + name = "gix-sec" 1734 + version = "0.12.2" 1735 + source = "registry+https://github.com/rust-lang/crates.io-index" 1736 + checksum = "ea9962ed6d9114f7f100efe038752f41283c225bb507a2888903ac593dffa6be" 1737 + dependencies = [ 1738 + "bitflags 2.10.0", 1739 + "gix-path", 1740 + "libc", 1741 + "windows-sys 0.61.2", 1742 + ] 1743 + 1744 + [[package]] 1745 + name = "gix-shallow" 1746 + version = "0.6.0" 1747 + source = "registry+https://github.com/rust-lang/crates.io-index" 1748 + checksum = "e2374692db1ee1ffa0eddcb9e86ec218f7c4cdceda800ebc5a9fdf73a8c08223" 1749 + dependencies = [ 1750 + "bstr", 1751 + "gix-hash", 1752 + "gix-lock", 1753 + "thiserror 2.0.17", 1754 + ] 1755 + 1756 + [[package]] 1757 + name = "gix-submodule" 1758 + version = "0.21.0" 1759 + source = "registry+https://github.com/rust-lang/crates.io-index" 1760 + checksum = "9bacc06333b50abc4fc06204622c2dd92850de2066bb5d421ac776d2bef7ae55" 1761 + dependencies = [ 1762 + "bstr", 1763 + "gix-config", 1764 + "gix-path", 1765 + "gix-pathspec", 1766 + "gix-refspec", 1767 + "gix-url", 1768 + "thiserror 2.0.17", 1769 + ] 1770 + 1771 + [[package]] 1772 + name = "gix-tempfile" 1773 + version = "19.0.1" 1774 + source = "registry+https://github.com/rust-lang/crates.io-index" 1775 + checksum = "e265fc6b54e57693232a79d84038381ebfda7b1a3b1b8a9320d4d5fe6e820086" 1776 + dependencies = [ 1777 + "dashmap", 1778 + "gix-fs", 1779 + "libc", 1780 + "parking_lot", 1781 + "tempfile", 1782 + ] 1783 + 1784 + [[package]] 1785 + name = "gix-trace" 1786 + version = "0.1.15" 1787 + source = "registry+https://github.com/rust-lang/crates.io-index" 1788 + checksum = "1d3f59a8de2934f6391b6b3a1a7654eae18961fcb9f9c843533fed34ad0f3457" 1789 + 1790 + [[package]] 1791 + name = "gix-transport" 1792 + version = "0.49.1" 1793 + source = "registry+https://github.com/rust-lang/crates.io-index" 1794 + checksum = "c8da4a77922accb1e26e610c7a84ef7e6b34fd07112e6a84afd68d7f3e795957" 1795 + dependencies = [ 1796 + "bstr", 1797 + "gix-command", 1798 + "gix-features", 1799 + "gix-packetline", 1800 + "gix-quote", 1801 + "gix-sec", 1802 + "gix-url", 1803 + "thiserror 2.0.17", 1804 + ] 1805 + 1806 + [[package]] 1807 + name = "gix-traverse" 1808 + version = "0.48.0" 1809 + source = "registry+https://github.com/rust-lang/crates.io-index" 1810 + checksum = "412126bade03a34f5d4125fd64878852718575b3b360eaae3b29970cb555e2a2" 1811 + dependencies = [ 1812 + "bitflags 2.10.0", 1813 + "gix-commitgraph", 1814 + "gix-date", 1815 + "gix-hash", 1816 + "gix-hashtable", 1817 + "gix-object", 1818 + "gix-revwalk", 1819 + "smallvec", 1820 + "thiserror 2.0.17", 1821 + ] 1822 + 1823 + [[package]] 1824 + name = "gix-url" 1825 + version = "0.33.2" 1826 + source = "registry+https://github.com/rust-lang/crates.io-index" 1827 + checksum = "d995249a1cf1ad79ba10af6499d4bf37cb78035c0983eaa09ec5910da694957c" 1828 + dependencies = [ 1829 + "bstr", 1830 + "gix-features", 1831 + "gix-path", 1832 + "percent-encoding", 1833 + "thiserror 2.0.17", 1834 + ] 1835 + 1836 + [[package]] 1837 + name = "gix-utils" 1838 + version = "0.3.1" 1839 + source = "registry+https://github.com/rust-lang/crates.io-index" 1840 + checksum = "befcdbdfb1238d2854591f760a48711bed85e72d80a10e8f2f93f656746ef7c5" 1841 + dependencies = [ 1842 + "fastrand", 1843 + "unicode-normalization", 1844 + ] 1845 + 1846 + [[package]] 1847 + name = "gix-validate" 1848 + version = "0.10.1" 1849 + source = "registry+https://github.com/rust-lang/crates.io-index" 1850 + checksum = "5b1e63a5b516e970a594f870ed4571a8fdcb8a344e7bd407a20db8bd61dbfde4" 1851 + dependencies = [ 1852 + "bstr", 1853 + "thiserror 2.0.17", 1854 + ] 1855 + 1856 + [[package]] 1857 + name = "gix-worktree" 1858 + version = "0.43.1" 1859 + source = "registry+https://github.com/rust-lang/crates.io-index" 1860 + checksum = "8df3dfc8b62b0eccc923c757b40f488abc357c85c03d798622edfc3eb5137e04" 1861 + dependencies = [ 1862 + "bstr", 1863 + "gix-attributes", 1864 + "gix-features", 1865 + "gix-fs", 1866 + "gix-glob", 1867 + "gix-hash", 1868 + "gix-ignore", 1869 + "gix-index", 1870 + "gix-object", 1871 + "gix-path", 1872 + "gix-validate", 1873 + ] 1874 + 1875 + [[package]] 1876 + name = "glib" 1877 + version = "0.18.5" 1878 + source = "registry+https://github.com/rust-lang/crates.io-index" 1879 + checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5" 1880 + dependencies = [ 1881 + "bitflags 2.10.0", 1882 + "futures-channel", 1883 + "futures-core", 1884 + "futures-executor", 1885 + "futures-task", 1886 + "futures-util", 1887 + "gio-sys", 1888 + "glib-macros", 1889 + "glib-sys", 1890 + "gobject-sys", 1891 + "libc", 1892 + "memchr", 1893 + "once_cell", 1894 + "smallvec", 1895 + "thiserror 1.0.69", 1896 + ] 1897 + 1898 + [[package]] 1899 + name = "glib-macros" 1900 + version = "0.18.5" 1901 + source = "registry+https://github.com/rust-lang/crates.io-index" 1902 + checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc" 1903 + dependencies = [ 1904 + "heck 0.4.1", 1905 + "proc-macro-crate 2.0.2", 1906 + "proc-macro-error", 1907 + "proc-macro2", 1908 + "quote", 1909 + "syn 2.0.111", 1910 + ] 1911 + 1912 + [[package]] 1913 + name = "glib-sys" 1914 + version = "0.18.1" 1915 + source = "registry+https://github.com/rust-lang/crates.io-index" 1916 + checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898" 1917 + dependencies = [ 1918 + "libc", 1919 + "system-deps", 1920 + ] 1921 + 1922 + [[package]] 1923 + name = "glob" 1924 + version = "0.3.3" 1925 + source = "registry+https://github.com/rust-lang/crates.io-index" 1926 + checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" 1927 + 1928 + [[package]] 1929 + name = "globset" 1930 + version = "0.4.18" 1931 + source = "registry+https://github.com/rust-lang/crates.io-index" 1932 + checksum = "52dfc19153a48bde0cbd630453615c8151bce3a5adfac7a0aebfbf0a1e1f57e3" 1933 + dependencies = [ 1934 + "aho-corasick", 1935 + "bstr", 1936 + "log", 1937 + "regex-automata", 1938 + "regex-syntax", 1939 + ] 1940 + 1941 + [[package]] 1942 + name = "gobject-sys" 1943 + version = "0.18.0" 1944 + source = "registry+https://github.com/rust-lang/crates.io-index" 1945 + checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44" 1946 + dependencies = [ 1947 + "glib-sys", 1948 + "libc", 1949 + "system-deps", 1950 + ] 1951 + 1952 + [[package]] 1953 + name = "gtk" 1954 + version = "0.18.2" 1955 + source = "registry+https://github.com/rust-lang/crates.io-index" 1956 + checksum = "fd56fb197bfc42bd5d2751f4f017d44ff59fbb58140c6b49f9b3b2bdab08506a" 1957 + dependencies = [ 1958 + "atk", 1959 + "cairo-rs", 1960 + "field-offset", 1961 + "futures-channel", 1962 + "gdk", 1963 + "gdk-pixbuf", 1964 + "gio", 1965 + "glib", 1966 + "gtk-sys", 1967 + "gtk3-macros", 1968 + "libc", 1969 + "pango", 1970 + "pkg-config", 1971 + ] 1972 + 1973 + [[package]] 1974 + name = "gtk-sys" 1975 + version = "0.18.2" 1976 + source = "registry+https://github.com/rust-lang/crates.io-index" 1977 + checksum = "8f29a1c21c59553eb7dd40e918be54dccd60c52b049b75119d5d96ce6b624414" 1978 + dependencies = [ 1979 + "atk-sys", 1980 + "cairo-sys-rs", 1981 + "gdk-pixbuf-sys", 1982 + "gdk-sys", 1983 + "gio-sys", 1984 + "glib-sys", 1985 + "gobject-sys", 1986 + "libc", 1987 + "pango-sys", 1988 + "system-deps", 1989 + ] 1990 + 1991 + [[package]] 1992 + name = "gtk3-macros" 1993 + version = "0.18.2" 1994 + source = "registry+https://github.com/rust-lang/crates.io-index" 1995 + checksum = "52ff3c5b21f14f0736fed6dcfc0bfb4225ebf5725f3c0209edeec181e4d73e9d" 1996 + dependencies = [ 1997 + "proc-macro-crate 1.3.1", 1998 + "proc-macro-error", 1999 + "proc-macro2", 2000 + "quote", 2001 + "syn 2.0.111", 2002 + ] 2003 + 2004 + [[package]] 2005 + name = "hash32" 2006 + version = "0.3.1" 2007 + source = "registry+https://github.com/rust-lang/crates.io-index" 2008 + checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606" 2009 + dependencies = [ 2010 + "byteorder", 2011 + ] 2012 + 2013 + [[package]] 2014 + name = "hashbrown" 2015 + version = "0.12.3" 2016 + source = "registry+https://github.com/rust-lang/crates.io-index" 2017 + checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" 2018 + 2019 + [[package]] 2020 + name = "hashbrown" 2021 + version = "0.14.5" 2022 + source = "registry+https://github.com/rust-lang/crates.io-index" 2023 + checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" 2024 + 2025 + [[package]] 2026 + name = "hashbrown" 2027 + version = "0.15.5" 2028 + source = "registry+https://github.com/rust-lang/crates.io-index" 2029 + checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" 2030 + dependencies = [ 2031 + "foldhash 0.1.5", 2032 + ] 2033 + 2034 + [[package]] 2035 + name = "hashbrown" 2036 + version = "0.16.1" 2037 + source = "registry+https://github.com/rust-lang/crates.io-index" 2038 + checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" 2039 + dependencies = [ 2040 + "allocator-api2", 2041 + "equivalent", 2042 + "foldhash 0.2.0", 2043 + ] 2044 + 2045 + [[package]] 2046 + name = "heapless" 2047 + version = "0.8.0" 2048 + source = "registry+https://github.com/rust-lang/crates.io-index" 2049 + checksum = "0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad" 2050 + dependencies = [ 2051 + "hash32", 2052 + "stable_deref_trait", 2053 + ] 2054 + 2055 + [[package]] 2056 + name = "heck" 2057 + version = "0.4.1" 2058 + source = "registry+https://github.com/rust-lang/crates.io-index" 2059 + checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" 2060 + 2061 + [[package]] 2062 + name = "heck" 2063 + version = "0.5.0" 2064 + source = "registry+https://github.com/rust-lang/crates.io-index" 2065 + checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" 2066 + 2067 + [[package]] 2068 + name = "hex" 2069 + version = "0.4.3" 2070 + source = "registry+https://github.com/rust-lang/crates.io-index" 2071 + checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" 2072 + 2073 + [[package]] 2074 + name = "hostname" 2075 + version = "0.4.2" 2076 + source = "registry+https://github.com/rust-lang/crates.io-index" 2077 + checksum = "617aaa3557aef3810a6369d0a99fac8a080891b68bd9f9812a1eeda0c0730cbd" 2078 + dependencies = [ 2079 + "cfg-if", 2080 + "libc", 2081 + "windows-link 0.2.1", 2082 + ] 2083 + 2084 + [[package]] 2085 + name = "html5ever" 2086 + version = "0.29.1" 2087 + source = "registry+https://github.com/rust-lang/crates.io-index" 2088 + checksum = "3b7410cae13cbc75623c98ac4cbfd1f0bedddf3227afc24f370cf0f50a44a11c" 2089 + dependencies = [ 2090 + "log", 2091 + "mac", 2092 + "markup5ever", 2093 + "match_token", 2094 + ] 2095 + 2096 + [[package]] 2097 + name = "http" 2098 + version = "1.4.0" 2099 + source = "registry+https://github.com/rust-lang/crates.io-index" 2100 + checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" 2101 + dependencies = [ 2102 + "bytes", 2103 + "itoa", 2104 + ] 2105 + 2106 + [[package]] 2107 + name = "http-body" 2108 + version = "1.0.1" 2109 + source = "registry+https://github.com/rust-lang/crates.io-index" 2110 + checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" 2111 + dependencies = [ 2112 + "bytes", 2113 + "http", 2114 + ] 2115 + 2116 + [[package]] 2117 + name = "http-body-util" 2118 + version = "0.1.3" 2119 + source = "registry+https://github.com/rust-lang/crates.io-index" 2120 + checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" 2121 + dependencies = [ 2122 + "bytes", 2123 + "futures-core", 2124 + "http", 2125 + "http-body", 2126 + "pin-project-lite", 2127 + ] 2128 + 2129 + [[package]] 2130 + name = "httparse" 2131 + version = "1.10.1" 2132 + source = "registry+https://github.com/rust-lang/crates.io-index" 2133 + checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" 2134 + 2135 + [[package]] 2136 + name = "hyper" 2137 + version = "1.8.1" 2138 + source = "registry+https://github.com/rust-lang/crates.io-index" 2139 + checksum = "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11" 2140 + dependencies = [ 2141 + "atomic-waker", 2142 + "bytes", 2143 + "futures-channel", 2144 + "futures-core", 2145 + "http", 2146 + "http-body", 2147 + "httparse", 2148 + "itoa", 2149 + "pin-project-lite", 2150 + "pin-utils", 2151 + "smallvec", 2152 + "tokio", 2153 + "want", 2154 + ] 2155 + 2156 + [[package]] 2157 + name = "hyper-util" 2158 + version = "0.1.19" 2159 + source = "registry+https://github.com/rust-lang/crates.io-index" 2160 + checksum = "727805d60e7938b76b826a6ef209eb70eaa1812794f9424d4a4e2d740662df5f" 2161 + dependencies = [ 2162 + "base64 0.22.1", 2163 + "bytes", 2164 + "futures-channel", 2165 + "futures-core", 2166 + "futures-util", 2167 + "http", 2168 + "http-body", 2169 + "hyper", 2170 + "ipnet", 2171 + "libc", 2172 + "percent-encoding", 2173 + "pin-project-lite", 2174 + "socket2", 2175 + "tokio", 2176 + "tower-service", 2177 + "tracing", 2178 + ] 2179 + 2180 + [[package]] 2181 + name = "iana-time-zone" 2182 + version = "0.1.64" 2183 + source = "registry+https://github.com/rust-lang/crates.io-index" 2184 + checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" 2185 + dependencies = [ 2186 + "android_system_properties", 2187 + "core-foundation-sys", 2188 + "iana-time-zone-haiku", 2189 + "js-sys", 2190 + "log", 2191 + "wasm-bindgen", 2192 + "windows-core 0.62.2", 2193 + ] 2194 + 2195 + [[package]] 2196 + name = "iana-time-zone-haiku" 2197 + version = "0.1.2" 2198 + source = "registry+https://github.com/rust-lang/crates.io-index" 2199 + checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" 2200 + dependencies = [ 2201 + "cc", 2202 + ] 2203 + 2204 + [[package]] 2205 + name = "ico" 2206 + version = "0.4.0" 2207 + source = "registry+https://github.com/rust-lang/crates.io-index" 2208 + checksum = "cc50b891e4acf8fe0e71ef88ec43ad82ee07b3810ad09de10f1d01f072ed4b98" 2209 + dependencies = [ 2210 + "byteorder", 2211 + "png", 2212 + ] 2213 + 2214 + [[package]] 2215 + name = "icu_collections" 2216 + version = "2.1.1" 2217 + source = "registry+https://github.com/rust-lang/crates.io-index" 2218 + checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" 2219 + dependencies = [ 2220 + "displaydoc", 2221 + "potential_utf", 2222 + "yoke", 2223 + "zerofrom", 2224 + "zerovec", 2225 + ] 2226 + 2227 + [[package]] 2228 + name = "icu_locale_core" 2229 + version = "2.1.1" 2230 + source = "registry+https://github.com/rust-lang/crates.io-index" 2231 + checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" 2232 + dependencies = [ 2233 + "displaydoc", 2234 + "litemap", 2235 + "tinystr", 2236 + "writeable", 2237 + "zerovec", 2238 + ] 2239 + 2240 + [[package]] 2241 + name = "icu_normalizer" 2242 + version = "2.1.1" 2243 + source = "registry+https://github.com/rust-lang/crates.io-index" 2244 + checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" 2245 + dependencies = [ 2246 + "icu_collections", 2247 + "icu_normalizer_data", 2248 + "icu_properties", 2249 + "icu_provider", 2250 + "smallvec", 2251 + "zerovec", 2252 + ] 2253 + 2254 + [[package]] 2255 + name = "icu_normalizer_data" 2256 + version = "2.1.1" 2257 + source = "registry+https://github.com/rust-lang/crates.io-index" 2258 + checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" 2259 + 2260 + [[package]] 2261 + name = "icu_properties" 2262 + version = "2.1.2" 2263 + source = "registry+https://github.com/rust-lang/crates.io-index" 2264 + checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec" 2265 + dependencies = [ 2266 + "icu_collections", 2267 + "icu_locale_core", 2268 + "icu_properties_data", 2269 + "icu_provider", 2270 + "zerotrie", 2271 + "zerovec", 2272 + ] 2273 + 2274 + [[package]] 2275 + name = "icu_properties_data" 2276 + version = "2.1.2" 2277 + source = "registry+https://github.com/rust-lang/crates.io-index" 2278 + checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af" 2279 + 2280 + [[package]] 2281 + name = "icu_provider" 2282 + version = "2.1.1" 2283 + source = "registry+https://github.com/rust-lang/crates.io-index" 2284 + checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" 2285 + dependencies = [ 2286 + "displaydoc", 2287 + "icu_locale_core", 2288 + "writeable", 2289 + "yoke", 2290 + "zerofrom", 2291 + "zerotrie", 2292 + "zerovec", 2293 + ] 2294 + 2295 + [[package]] 2296 + name = "ident_case" 2297 + version = "1.0.1" 2298 + source = "registry+https://github.com/rust-lang/crates.io-index" 2299 + checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" 2300 + 2301 + [[package]] 2302 + name = "idna" 2303 + version = "1.1.0" 2304 + source = "registry+https://github.com/rust-lang/crates.io-index" 2305 + checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" 2306 + dependencies = [ 2307 + "idna_adapter", 2308 + "smallvec", 2309 + "utf8_iter", 2310 + ] 2311 + 2312 + [[package]] 2313 + name = "idna_adapter" 2314 + version = "1.2.1" 2315 + source = "registry+https://github.com/rust-lang/crates.io-index" 2316 + checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" 2317 + dependencies = [ 2318 + "icu_normalizer", 2319 + "icu_properties", 2320 + ] 2321 + 2322 + [[package]] 2323 + name = "ignore" 2324 + version = "0.4.25" 2325 + source = "registry+https://github.com/rust-lang/crates.io-index" 2326 + checksum = "d3d782a365a015e0f5c04902246139249abf769125006fbe7649e2ee88169b4a" 2327 + dependencies = [ 2328 + "crossbeam-deque", 2329 + "globset", 2330 + "log", 2331 + "memchr", 2332 + "regex-automata", 2333 + "same-file", 2334 + "walkdir", 2335 + "winapi-util", 2336 + ] 2337 + 2338 + [[package]] 2339 + name = "imara-diff" 2340 + version = "0.1.8" 2341 + source = "registry+https://github.com/rust-lang/crates.io-index" 2342 + checksum = "17d34b7d42178945f775e84bc4c36dde7c1c6cdfea656d3354d009056f2bb3d2" 2343 + dependencies = [ 2344 + "hashbrown 0.15.5", 2345 + ] 2346 + 2347 + [[package]] 2348 + name = "indexmap" 2349 + version = "1.9.3" 2350 + source = "registry+https://github.com/rust-lang/crates.io-index" 2351 + checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" 2352 + dependencies = [ 2353 + "autocfg", 2354 + "hashbrown 0.12.3", 2355 + "serde", 2356 + ] 2357 + 2358 + [[package]] 2359 + name = "indexmap" 2360 + version = "2.12.1" 2361 + source = "registry+https://github.com/rust-lang/crates.io-index" 2362 + checksum = "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2" 2363 + dependencies = [ 2364 + "equivalent", 2365 + "hashbrown 0.16.1", 2366 + "serde", 2367 + "serde_core", 2368 + ] 2369 + 2370 + [[package]] 2371 + name = "infer" 2372 + version = "0.19.0" 2373 + source = "registry+https://github.com/rust-lang/crates.io-index" 2374 + checksum = "a588916bfdfd92e71cacef98a63d9b1f0d74d6599980d11894290e7ddefffcf7" 2375 + dependencies = [ 2376 + "cfb", 2377 + ] 2378 + 2379 + [[package]] 2380 + name = "interim" 2381 + version = "0.2.1" 2382 + source = "registry+https://github.com/rust-lang/crates.io-index" 2383 + checksum = "a9ce9099a85f468663d3225bf87e85d0548968441e1db12248b996b24f0f5b5a" 2384 + dependencies = [ 2385 + "chrono", 2386 + "logos", 2387 + ] 2388 + 2389 + [[package]] 2390 + name = "ipnet" 2391 + version = "2.11.0" 2392 + source = "registry+https://github.com/rust-lang/crates.io-index" 2393 + checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" 2394 + 2395 + [[package]] 2396 + name = "iri-string" 2397 + version = "0.7.9" 2398 + source = "registry+https://github.com/rust-lang/crates.io-index" 2399 + checksum = "4f867b9d1d896b67beb18518eda36fdb77a32ea590de864f1325b294a6d14397" 2400 + dependencies = [ 2401 + "memchr", 2402 + "serde", 2403 + ] 2404 + 2405 + [[package]] 2406 + name = "is-docker" 2407 + version = "0.2.0" 2408 + source = "registry+https://github.com/rust-lang/crates.io-index" 2409 + checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3" 2410 + dependencies = [ 2411 + "once_cell", 2412 + ] 2413 + 2414 + [[package]] 2415 + name = "is-wsl" 2416 + version = "0.4.0" 2417 + source = "registry+https://github.com/rust-lang/crates.io-index" 2418 + checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5" 2419 + dependencies = [ 2420 + "is-docker", 2421 + "once_cell", 2422 + ] 2423 + 2424 + [[package]] 2425 + name = "itertools" 2426 + version = "0.14.0" 2427 + source = "registry+https://github.com/rust-lang/crates.io-index" 2428 + checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" 2429 + dependencies = [ 2430 + "either", 2431 + ] 2432 + 2433 + [[package]] 2434 + name = "itoa" 2435 + version = "1.0.15" 2436 + source = "registry+https://github.com/rust-lang/crates.io-index" 2437 + checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" 2438 + 2439 + [[package]] 2440 + name = "javascriptcore-rs" 2441 + version = "1.1.2" 2442 + source = "registry+https://github.com/rust-lang/crates.io-index" 2443 + checksum = "ca5671e9ffce8ffba57afc24070e906da7fc4b1ba66f2cabebf61bf2ea257fcc" 2444 + dependencies = [ 2445 + "bitflags 1.3.2", 2446 + "glib", 2447 + "javascriptcore-rs-sys", 2448 + ] 2449 + 2450 + [[package]] 2451 + name = "javascriptcore-rs-sys" 2452 + version = "1.1.1" 2453 + source = "registry+https://github.com/rust-lang/crates.io-index" 2454 + checksum = "af1be78d14ffa4b75b66df31840478fef72b51f8c2465d4ca7c194da9f7a5124" 2455 + dependencies = [ 2456 + "glib-sys", 2457 + "gobject-sys", 2458 + "libc", 2459 + "system-deps", 2460 + ] 2461 + 2462 + [[package]] 2463 + name = "jiff" 2464 + version = "0.2.16" 2465 + source = "registry+https://github.com/rust-lang/crates.io-index" 2466 + checksum = "49cce2b81f2098e7e3efc35bc2e0a6b7abec9d34128283d7a26fa8f32a6dbb35" 2467 + dependencies = [ 2468 + "jiff-static", 2469 + "jiff-tzdb-platform", 2470 + "log", 2471 + "portable-atomic", 2472 + "portable-atomic-util", 2473 + "serde_core", 2474 + "windows-sys 0.61.2", 2475 + ] 2476 + 2477 + [[package]] 2478 + name = "jiff-static" 2479 + version = "0.2.16" 2480 + source = "registry+https://github.com/rust-lang/crates.io-index" 2481 + checksum = "980af8b43c3ad5d8d349ace167ec8170839f753a42d233ba19e08afe1850fa69" 2482 + dependencies = [ 2483 + "proc-macro2", 2484 + "quote", 2485 + "syn 2.0.111", 2486 + ] 2487 + 2488 + [[package]] 2489 + name = "jiff-tzdb" 2490 + version = "0.1.5" 2491 + source = "registry+https://github.com/rust-lang/crates.io-index" 2492 + checksum = "68971ebff725b9e2ca27a601c5eb38a4c5d64422c4cbab0c535f248087eda5c2" 2493 + 2494 + [[package]] 2495 + name = "jiff-tzdb-platform" 2496 + version = "0.1.3" 2497 + source = "registry+https://github.com/rust-lang/crates.io-index" 2498 + checksum = "875a5a69ac2bab1a891711cf5eccbec1ce0341ea805560dcd90b7a2e925132e8" 2499 + dependencies = [ 2500 + "jiff-tzdb", 2501 + ] 2502 + 2503 + [[package]] 2504 + name = "jj-lib" 2505 + version = "0.35.0" 2506 + source = "registry+https://github.com/rust-lang/crates.io-index" 2507 + checksum = "7359906e1e4fbc7316590a31760da95719a11b2f32ce3a76b8c6e8de1ccd93d7" 2508 + dependencies = [ 2509 + "async-trait", 2510 + "blake2", 2511 + "bstr", 2512 + "chrono", 2513 + "clru", 2514 + "digest", 2515 + "dunce", 2516 + "either", 2517 + "futures", 2518 + "gix", 2519 + "globset", 2520 + "hashbrown 0.16.1", 2521 + "ignore", 2522 + "indexmap 2.12.1", 2523 + "interim", 2524 + "itertools", 2525 + "jj-lib-proc-macros", 2526 + "maplit", 2527 + "once_cell", 2528 + "pest", 2529 + "pest_derive", 2530 + "pollster", 2531 + "prost", 2532 + "rand 0.9.2", 2533 + "rand_chacha 0.9.0", 2534 + "rayon", 2535 + "ref-cast", 2536 + "regex", 2537 + "rustix", 2538 + "same-file", 2539 + "serde", 2540 + "smallvec", 2541 + "strsim", 2542 + "tempfile", 2543 + "thiserror 2.0.17", 2544 + "tokio", 2545 + "toml_edit 0.23.10+spec-1.0.0", 2546 + "tracing", 2547 + "version_check", 2548 + "winreg", 2549 + ] 2550 + 2551 + [[package]] 2552 + name = "jj-lib-proc-macros" 2553 + version = "0.35.0" 2554 + source = "registry+https://github.com/rust-lang/crates.io-index" 2555 + checksum = "326132a09bea618b2035a13c17fe9d5542ca260c0895dacca8ad95f0d6d4011c" 2556 + dependencies = [ 2557 + "proc-macro2", 2558 + "quote", 2559 + "syn 2.0.111", 2560 + ] 2561 + 2562 + [[package]] 2563 + name = "jni" 2564 + version = "0.21.1" 2565 + source = "registry+https://github.com/rust-lang/crates.io-index" 2566 + checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" 2567 + dependencies = [ 2568 + "cesu8", 2569 + "cfg-if", 2570 + "combine", 2571 + "jni-sys", 2572 + "log", 2573 + "thiserror 1.0.69", 2574 + "walkdir", 2575 + "windows-sys 0.45.0", 2576 + ] 2577 + 2578 + [[package]] 2579 + name = "jni-sys" 2580 + version = "0.3.0" 2581 + source = "registry+https://github.com/rust-lang/crates.io-index" 2582 + checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" 2583 + 2584 + [[package]] 2585 + name = "js-sys" 2586 + version = "0.3.83" 2587 + source = "registry+https://github.com/rust-lang/crates.io-index" 2588 + checksum = "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8" 2589 + dependencies = [ 2590 + "once_cell", 2591 + "wasm-bindgen", 2592 + ] 2593 + 2594 + [[package]] 2595 + name = "json-patch" 2596 + version = "3.0.1" 2597 + source = "registry+https://github.com/rust-lang/crates.io-index" 2598 + checksum = "863726d7afb6bc2590eeff7135d923545e5e964f004c2ccf8716c25e70a86f08" 2599 + dependencies = [ 2600 + "jsonptr", 2601 + "serde", 2602 + "serde_json", 2603 + "thiserror 1.0.69", 2604 + ] 2605 + 2606 + [[package]] 2607 + name = "jsonptr" 2608 + version = "0.6.3" 2609 + source = "registry+https://github.com/rust-lang/crates.io-index" 2610 + checksum = "5dea2b27dd239b2556ed7a25ba842fe47fd602e7fc7433c2a8d6106d4d9edd70" 2611 + dependencies = [ 2612 + "serde", 2613 + "serde_json", 2614 + ] 2615 + 2616 + [[package]] 2617 + name = "keyboard-types" 2618 + version = "0.7.0" 2619 + source = "registry+https://github.com/rust-lang/crates.io-index" 2620 + checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a" 2621 + dependencies = [ 2622 + "bitflags 2.10.0", 2623 + "serde", 2624 + "unicode-segmentation", 2625 + ] 2626 + 2627 + [[package]] 2628 + name = "kstring" 2629 + version = "2.0.2" 2630 + source = "registry+https://github.com/rust-lang/crates.io-index" 2631 + checksum = "558bf9508a558512042d3095138b1f7b8fe90c5467d94f9f1da28b3731c5dbd1" 2632 + dependencies = [ 2633 + "static_assertions", 2634 + ] 2635 + 2636 + [[package]] 2637 + name = "kuchikiki" 2638 + version = "0.8.8-speedreader" 2639 + source = "registry+https://github.com/rust-lang/crates.io-index" 2640 + checksum = "02cb977175687f33fa4afa0c95c112b987ea1443e5a51c8f8ff27dc618270cc2" 2641 + dependencies = [ 2642 + "cssparser", 2643 + "html5ever", 2644 + "indexmap 2.12.1", 2645 + "selectors", 2646 + ] 2647 + 2648 + [[package]] 2649 + name = "lazy_static" 2650 + version = "1.5.0" 2651 + source = "registry+https://github.com/rust-lang/crates.io-index" 2652 + checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" 2653 + 2654 + [[package]] 2655 + name = "libappindicator" 2656 + version = "0.9.0" 2657 + source = "registry+https://github.com/rust-lang/crates.io-index" 2658 + checksum = "03589b9607c868cc7ae54c0b2a22c8dc03dd41692d48f2d7df73615c6a95dc0a" 2659 + dependencies = [ 2660 + "glib", 2661 + "gtk", 2662 + "gtk-sys", 2663 + "libappindicator-sys", 2664 + "log", 2665 + ] 2666 + 2667 + [[package]] 2668 + name = "libappindicator-sys" 2669 + version = "0.9.0" 2670 + source = "registry+https://github.com/rust-lang/crates.io-index" 2671 + checksum = "6e9ec52138abedcc58dc17a7c6c0c00a2bdb4f3427c7f63fa97fd0d859155caf" 2672 + dependencies = [ 2673 + "gtk-sys", 2674 + "libloading", 2675 + "once_cell", 2676 + ] 2677 + 2678 + [[package]] 2679 + name = "libc" 2680 + version = "0.2.178" 2681 + source = "registry+https://github.com/rust-lang/crates.io-index" 2682 + checksum = "37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091" 2683 + 2684 + [[package]] 2685 + name = "libloading" 2686 + version = "0.7.4" 2687 + source = "registry+https://github.com/rust-lang/crates.io-index" 2688 + checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" 2689 + dependencies = [ 2690 + "cfg-if", 2691 + "winapi", 2692 + ] 2693 + 2694 + [[package]] 2695 + name = "libredox" 2696 + version = "0.1.11" 2697 + source = "registry+https://github.com/rust-lang/crates.io-index" 2698 + checksum = "df15f6eac291ed1cf25865b1ee60399f57e7c227e7f51bdbd4c5270396a9ed50" 2699 + dependencies = [ 2700 + "bitflags 2.10.0", 2701 + "libc", 2702 + "redox_syscall 0.6.0", 2703 + ] 2704 + 2705 + [[package]] 2706 + name = "libz-rs-sys" 2707 + version = "0.5.4" 2708 + source = "registry+https://github.com/rust-lang/crates.io-index" 2709 + checksum = "15413ef615ad868d4d65dce091cb233b229419c7c0c4bcaa746c0901c49ff39c" 2710 + dependencies = [ 2711 + "zlib-rs", 2712 + ] 2713 + 2714 + [[package]] 2715 + name = "linux-raw-sys" 2716 + version = "0.11.0" 2717 + source = "registry+https://github.com/rust-lang/crates.io-index" 2718 + checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" 2719 + 2720 + [[package]] 2721 + name = "litemap" 2722 + version = "0.8.1" 2723 + source = "registry+https://github.com/rust-lang/crates.io-index" 2724 + checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" 2725 + 2726 + [[package]] 2727 + name = "lock_api" 2728 + version = "0.4.14" 2729 + source = "registry+https://github.com/rust-lang/crates.io-index" 2730 + checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" 2731 + dependencies = [ 2732 + "scopeguard", 2733 + ] 2734 + 2735 + [[package]] 2736 + name = "log" 2737 + version = "0.4.29" 2738 + source = "registry+https://github.com/rust-lang/crates.io-index" 2739 + checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" 2740 + 2741 + [[package]] 2742 + name = "logos" 2743 + version = "0.15.1" 2744 + source = "registry+https://github.com/rust-lang/crates.io-index" 2745 + checksum = "ff472f899b4ec2d99161c51f60ff7075eeb3097069a36050d8037a6325eb8154" 2746 + dependencies = [ 2747 + "logos-derive", 2748 + ] 2749 + 2750 + [[package]] 2751 + name = "logos-codegen" 2752 + version = "0.15.1" 2753 + source = "registry+https://github.com/rust-lang/crates.io-index" 2754 + checksum = "192a3a2b90b0c05b27a0b2c43eecdb7c415e29243acc3f89cc8247a5b693045c" 2755 + dependencies = [ 2756 + "beef", 2757 + "fnv", 2758 + "lazy_static", 2759 + "proc-macro2", 2760 + "quote", 2761 + "regex-syntax", 2762 + "rustc_version", 2763 + "syn 2.0.111", 2764 + ] 2765 + 2766 + [[package]] 2767 + name = "logos-derive" 2768 + version = "0.15.1" 2769 + source = "registry+https://github.com/rust-lang/crates.io-index" 2770 + checksum = "605d9697bcd5ef3a42d38efc51541aa3d6a4a25f7ab6d1ed0da5ac632a26b470" 2771 + dependencies = [ 2772 + "logos-codegen", 2773 + ] 2774 + 2775 + [[package]] 2776 + name = "mac" 2777 + version = "0.1.1" 2778 + source = "registry+https://github.com/rust-lang/crates.io-index" 2779 + checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" 2780 + 2781 + [[package]] 2782 + name = "maplit" 2783 + version = "1.0.2" 2784 + source = "registry+https://github.com/rust-lang/crates.io-index" 2785 + checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" 2786 + 2787 + [[package]] 2788 + name = "markup5ever" 2789 + version = "0.14.1" 2790 + source = "registry+https://github.com/rust-lang/crates.io-index" 2791 + checksum = "c7a7213d12e1864c0f002f52c2923d4556935a43dec5e71355c2760e0f6e7a18" 2792 + dependencies = [ 2793 + "log", 2794 + "phf 0.11.3", 2795 + "phf_codegen 0.11.3", 2796 + "string_cache", 2797 + "string_cache_codegen", 2798 + "tendril", 2799 + ] 2800 + 2801 + [[package]] 2802 + name = "match_token" 2803 + version = "0.1.0" 2804 + source = "registry+https://github.com/rust-lang/crates.io-index" 2805 + checksum = "88a9689d8d44bf9964484516275f5cd4c9b59457a6940c1d5d0ecbb94510a36b" 2806 + dependencies = [ 2807 + "proc-macro2", 2808 + "quote", 2809 + "syn 2.0.111", 2810 + ] 2811 + 2812 + [[package]] 2813 + name = "matches" 2814 + version = "0.1.10" 2815 + source = "registry+https://github.com/rust-lang/crates.io-index" 2816 + checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" 2817 + 2818 + [[package]] 2819 + name = "maybe-async" 2820 + version = "0.2.10" 2821 + source = "registry+https://github.com/rust-lang/crates.io-index" 2822 + checksum = "5cf92c10c7e361d6b99666ec1c6f9805b0bea2c3bd8c78dc6fe98ac5bd78db11" 2823 + dependencies = [ 2824 + "proc-macro2", 2825 + "quote", 2826 + "syn 2.0.111", 2827 + ] 2828 + 2829 + [[package]] 2830 + name = "memchr" 2831 + version = "2.7.6" 2832 + source = "registry+https://github.com/rust-lang/crates.io-index" 2833 + checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" 2834 + 2835 + [[package]] 2836 + name = "memmap2" 2837 + version = "0.9.9" 2838 + source = "registry+https://github.com/rust-lang/crates.io-index" 2839 + checksum = "744133e4a0e0a658e1374cf3bf8e415c4052a15a111acd372764c55b4177d490" 2840 + dependencies = [ 2841 + "libc", 2842 + ] 2843 + 2844 + [[package]] 2845 + name = "memoffset" 2846 + version = "0.9.1" 2847 + source = "registry+https://github.com/rust-lang/crates.io-index" 2848 + checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" 2849 + dependencies = [ 2850 + "autocfg", 2851 + ] 2852 + 2853 + [[package]] 2854 + name = "mime" 2855 + version = "0.3.17" 2856 + source = "registry+https://github.com/rust-lang/crates.io-index" 2857 + checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 2858 + 2859 + [[package]] 2860 + name = "miniz_oxide" 2861 + version = "0.8.9" 2862 + source = "registry+https://github.com/rust-lang/crates.io-index" 2863 + checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" 2864 + dependencies = [ 2865 + "adler2", 2866 + "simd-adler32", 2867 + ] 2868 + 2869 + [[package]] 2870 + name = "mio" 2871 + version = "1.1.1" 2872 + source = "registry+https://github.com/rust-lang/crates.io-index" 2873 + checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" 2874 + dependencies = [ 2875 + "libc", 2876 + "wasi 0.11.1+wasi-snapshot-preview1", 2877 + "windows-sys 0.61.2", 2878 + ] 2879 + 2880 + [[package]] 2881 + name = "muda" 2882 + version = "0.17.1" 2883 + source = "registry+https://github.com/rust-lang/crates.io-index" 2884 + checksum = "01c1738382f66ed56b3b9c8119e794a2e23148ac8ea214eda86622d4cb9d415a" 2885 + dependencies = [ 2886 + "crossbeam-channel", 2887 + "dpi", 2888 + "gtk", 2889 + "keyboard-types", 2890 + "objc2", 2891 + "objc2-app-kit", 2892 + "objc2-core-foundation", 2893 + "objc2-foundation", 2894 + "once_cell", 2895 + "png", 2896 + "serde", 2897 + "thiserror 2.0.17", 2898 + "windows-sys 0.60.2", 2899 + ] 2900 + 2901 + [[package]] 2902 + name = "ndk" 2903 + version = "0.9.0" 2904 + source = "registry+https://github.com/rust-lang/crates.io-index" 2905 + checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" 2906 + dependencies = [ 2907 + "bitflags 2.10.0", 2908 + "jni-sys", 2909 + "log", 2910 + "ndk-sys", 2911 + "num_enum", 2912 + "raw-window-handle", 2913 + "thiserror 1.0.69", 2914 + ] 2915 + 2916 + [[package]] 2917 + name = "ndk-context" 2918 + version = "0.1.1" 2919 + source = "registry+https://github.com/rust-lang/crates.io-index" 2920 + checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" 2921 + 2922 + [[package]] 2923 + name = "ndk-sys" 2924 + version = "0.6.0+11769913" 2925 + source = "registry+https://github.com/rust-lang/crates.io-index" 2926 + checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" 2927 + dependencies = [ 2928 + "jni-sys", 2929 + ] 2930 + 2931 + [[package]] 2932 + name = "new_debug_unreachable" 2933 + version = "1.0.6" 2934 + source = "registry+https://github.com/rust-lang/crates.io-index" 2935 + checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" 2936 + 2937 + [[package]] 2938 + name = "nodrop" 2939 + version = "0.1.14" 2940 + source = "registry+https://github.com/rust-lang/crates.io-index" 2941 + checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" 2942 + 2943 + [[package]] 2944 + name = "num-conv" 2945 + version = "0.1.0" 2946 + source = "registry+https://github.com/rust-lang/crates.io-index" 2947 + checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" 2948 + 2949 + [[package]] 2950 + name = "num-traits" 2951 + version = "0.2.19" 2952 + source = "registry+https://github.com/rust-lang/crates.io-index" 2953 + checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" 2954 + dependencies = [ 2955 + "autocfg", 2956 + ] 2957 + 2958 + [[package]] 2959 + name = "num_enum" 2960 + version = "0.7.5" 2961 + source = "registry+https://github.com/rust-lang/crates.io-index" 2962 + checksum = "b1207a7e20ad57b847bbddc6776b968420d38292bbfe2089accff5e19e82454c" 2963 + dependencies = [ 2964 + "num_enum_derive", 2965 + "rustversion", 2966 + ] 2967 + 2968 + [[package]] 2969 + name = "num_enum_derive" 2970 + version = "0.7.5" 2971 + source = "registry+https://github.com/rust-lang/crates.io-index" 2972 + checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7" 2973 + dependencies = [ 2974 + "proc-macro-crate 3.4.0", 2975 + "proc-macro2", 2976 + "quote", 2977 + "syn 2.0.111", 2978 + ] 2979 + 2980 + [[package]] 2981 + name = "objc2" 2982 + version = "0.6.3" 2983 + source = "registry+https://github.com/rust-lang/crates.io-index" 2984 + checksum = "b7c2599ce0ec54857b29ce62166b0ed9b4f6f1a70ccc9a71165b6154caca8c05" 2985 + dependencies = [ 2986 + "objc2-encode", 2987 + "objc2-exception-helper", 2988 + ] 2989 + 2990 + [[package]] 2991 + name = "objc2-app-kit" 2992 + version = "0.3.2" 2993 + source = "registry+https://github.com/rust-lang/crates.io-index" 2994 + checksum = "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c" 2995 + dependencies = [ 2996 + "bitflags 2.10.0", 2997 + "block2", 2998 + "libc", 2999 + "objc2", 3000 + "objc2-cloud-kit", 3001 + "objc2-core-data", 3002 + "objc2-core-foundation", 3003 + "objc2-core-graphics", 3004 + "objc2-core-image", 3005 + "objc2-core-text", 3006 + "objc2-core-video", 3007 + "objc2-foundation", 3008 + "objc2-quartz-core", 3009 + ] 3010 + 3011 + [[package]] 3012 + name = "objc2-cloud-kit" 3013 + version = "0.3.2" 3014 + source = "registry+https://github.com/rust-lang/crates.io-index" 3015 + checksum = "73ad74d880bb43877038da939b7427bba67e9dd42004a18b809ba7d87cee241c" 3016 + dependencies = [ 3017 + "bitflags 2.10.0", 3018 + "objc2", 3019 + "objc2-foundation", 3020 + ] 3021 + 3022 + [[package]] 3023 + name = "objc2-core-data" 3024 + version = "0.3.2" 3025 + source = "registry+https://github.com/rust-lang/crates.io-index" 3026 + checksum = "0b402a653efbb5e82ce4df10683b6b28027616a2715e90009947d50b8dd298fa" 3027 + dependencies = [ 3028 + "bitflags 2.10.0", 3029 + "objc2", 3030 + "objc2-foundation", 3031 + ] 3032 + 3033 + [[package]] 3034 + name = "objc2-core-foundation" 3035 + version = "0.3.2" 3036 + source = "registry+https://github.com/rust-lang/crates.io-index" 3037 + checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" 3038 + dependencies = [ 3039 + "bitflags 2.10.0", 3040 + "dispatch2", 3041 + "objc2", 3042 + ] 3043 + 3044 + [[package]] 3045 + name = "objc2-core-graphics" 3046 + version = "0.3.2" 3047 + source = "registry+https://github.com/rust-lang/crates.io-index" 3048 + checksum = "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807" 3049 + dependencies = [ 3050 + "bitflags 2.10.0", 3051 + "dispatch2", 3052 + "objc2", 3053 + "objc2-core-foundation", 3054 + "objc2-io-surface", 3055 + ] 3056 + 3057 + [[package]] 3058 + name = "objc2-core-image" 3059 + version = "0.3.2" 3060 + source = "registry+https://github.com/rust-lang/crates.io-index" 3061 + checksum = "e5d563b38d2b97209f8e861173de434bd0214cf020e3423a52624cd1d989f006" 3062 + dependencies = [ 3063 + "objc2", 3064 + "objc2-foundation", 3065 + ] 3066 + 3067 + [[package]] 3068 + name = "objc2-core-text" 3069 + version = "0.3.2" 3070 + source = "registry+https://github.com/rust-lang/crates.io-index" 3071 + checksum = "0cde0dfb48d25d2b4862161a4d5fcc0e3c24367869ad306b0c9ec0073bfed92d" 3072 + dependencies = [ 3073 + "bitflags 2.10.0", 3074 + "objc2", 3075 + "objc2-core-foundation", 3076 + "objc2-core-graphics", 3077 + ] 3078 + 3079 + [[package]] 3080 + name = "objc2-core-video" 3081 + version = "0.3.2" 3082 + source = "registry+https://github.com/rust-lang/crates.io-index" 3083 + checksum = "d425caf1df73233f29fd8a5c3e5edbc30d2d4307870f802d18f00d83dc5141a6" 3084 + dependencies = [ 3085 + "bitflags 2.10.0", 3086 + "objc2", 3087 + "objc2-core-foundation", 3088 + "objc2-core-graphics", 3089 + "objc2-io-surface", 3090 + ] 3091 + 3092 + [[package]] 3093 + name = "objc2-encode" 3094 + version = "4.1.0" 3095 + source = "registry+https://github.com/rust-lang/crates.io-index" 3096 + checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" 3097 + 3098 + [[package]] 3099 + name = "objc2-exception-helper" 3100 + version = "0.1.1" 3101 + source = "registry+https://github.com/rust-lang/crates.io-index" 3102 + checksum = "c7a1c5fbb72d7735b076bb47b578523aedc40f3c439bea6dfd595c089d79d98a" 3103 + dependencies = [ 3104 + "cc", 3105 + ] 3106 + 3107 + [[package]] 3108 + name = "objc2-foundation" 3109 + version = "0.3.2" 3110 + source = "registry+https://github.com/rust-lang/crates.io-index" 3111 + checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" 3112 + dependencies = [ 3113 + "bitflags 2.10.0", 3114 + "block2", 3115 + "libc", 3116 + "objc2", 3117 + "objc2-core-foundation", 3118 + ] 3119 + 3120 + [[package]] 3121 + name = "objc2-io-surface" 3122 + version = "0.3.2" 3123 + source = "registry+https://github.com/rust-lang/crates.io-index" 3124 + checksum = "180788110936d59bab6bd83b6060ffdfffb3b922ba1396b312ae795e1de9d81d" 3125 + dependencies = [ 3126 + "bitflags 2.10.0", 3127 + "objc2", 3128 + "objc2-core-foundation", 3129 + ] 3130 + 3131 + [[package]] 3132 + name = "objc2-javascript-core" 3133 + version = "0.3.2" 3134 + source = "registry+https://github.com/rust-lang/crates.io-index" 3135 + checksum = "2a1e6550c4caed348956ce3370c9ffeca70bb1dbed4fa96112e7c6170e074586" 3136 + dependencies = [ 3137 + "objc2", 3138 + "objc2-core-foundation", 3139 + ] 3140 + 3141 + [[package]] 3142 + name = "objc2-quartz-core" 3143 + version = "0.3.2" 3144 + source = "registry+https://github.com/rust-lang/crates.io-index" 3145 + checksum = "96c1358452b371bf9f104e21ec536d37a650eb10f7ee379fff67d2e08d537f1f" 3146 + dependencies = [ 3147 + "bitflags 2.10.0", 3148 + "objc2", 3149 + "objc2-core-foundation", 3150 + "objc2-foundation", 3151 + ] 3152 + 3153 + [[package]] 3154 + name = "objc2-security" 3155 + version = "0.3.2" 3156 + source = "registry+https://github.com/rust-lang/crates.io-index" 3157 + checksum = "709fe137109bd1e8b5a99390f77a7d8b2961dafc1a1c5db8f2e60329ad6d895a" 3158 + dependencies = [ 3159 + "bitflags 2.10.0", 3160 + "objc2", 3161 + "objc2-core-foundation", 3162 + ] 3163 + 3164 + [[package]] 3165 + name = "objc2-ui-kit" 3166 + version = "0.3.2" 3167 + source = "registry+https://github.com/rust-lang/crates.io-index" 3168 + checksum = "d87d638e33c06f577498cbcc50491496a3ed4246998a7fbba7ccb98b1e7eab22" 3169 + dependencies = [ 3170 + "bitflags 2.10.0", 3171 + "objc2", 3172 + "objc2-core-foundation", 3173 + "objc2-foundation", 3174 + ] 3175 + 3176 + [[package]] 3177 + name = "objc2-web-kit" 3178 + version = "0.3.2" 3179 + source = "registry+https://github.com/rust-lang/crates.io-index" 3180 + checksum = "b2e5aaab980c433cf470df9d7af96a7b46a9d892d521a2cbbb2f8a4c16751e7f" 3181 + dependencies = [ 3182 + "bitflags 2.10.0", 3183 + "block2", 3184 + "objc2", 3185 + "objc2-app-kit", 3186 + "objc2-core-foundation", 3187 + "objc2-foundation", 3188 + "objc2-javascript-core", 3189 + "objc2-security", 3190 + ] 3191 + 3192 + [[package]] 3193 + name = "once_cell" 3194 + version = "1.21.3" 3195 + source = "registry+https://github.com/rust-lang/crates.io-index" 3196 + checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" 3197 + 3198 + [[package]] 3199 + name = "open" 3200 + version = "5.3.3" 3201 + source = "registry+https://github.com/rust-lang/crates.io-index" 3202 + checksum = "43bb73a7fa3799b198970490a51174027ba0d4ec504b03cd08caf513d40024bc" 3203 + dependencies = [ 3204 + "dunce", 3205 + "is-wsl", 3206 + "libc", 3207 + "pathdiff", 3208 + ] 3209 + 3210 + [[package]] 3211 + name = "option-ext" 3212 + version = "0.2.0" 3213 + source = "registry+https://github.com/rust-lang/crates.io-index" 3214 + checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" 3215 + 3216 + [[package]] 3217 + name = "os_pipe" 3218 + version = "1.2.3" 3219 + source = "registry+https://github.com/rust-lang/crates.io-index" 3220 + checksum = "7d8fae84b431384b68627d0f9b3b1245fcf9f46f6c0e3dc902e9dce64edd1967" 3221 + dependencies = [ 3222 + "libc", 3223 + "windows-sys 0.61.2", 3224 + ] 3225 + 3226 + [[package]] 3227 + name = "pango" 3228 + version = "0.18.3" 3229 + source = "registry+https://github.com/rust-lang/crates.io-index" 3230 + checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4" 3231 + dependencies = [ 3232 + "gio", 3233 + "glib", 3234 + "libc", 3235 + "once_cell", 3236 + "pango-sys", 3237 + ] 3238 + 3239 + [[package]] 3240 + name = "pango-sys" 3241 + version = "0.18.0" 3242 + source = "registry+https://github.com/rust-lang/crates.io-index" 3243 + checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5" 3244 + dependencies = [ 3245 + "glib-sys", 3246 + "gobject-sys", 3247 + "libc", 3248 + "system-deps", 3249 + ] 3250 + 3251 + [[package]] 3252 + name = "parking_lot" 3253 + version = "0.12.5" 3254 + source = "registry+https://github.com/rust-lang/crates.io-index" 3255 + checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" 3256 + dependencies = [ 3257 + "lock_api", 3258 + "parking_lot_core", 3259 + ] 3260 + 3261 + [[package]] 3262 + name = "parking_lot_core" 3263 + version = "0.9.12" 3264 + source = "registry+https://github.com/rust-lang/crates.io-index" 3265 + checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" 3266 + dependencies = [ 3267 + "cfg-if", 3268 + "libc", 3269 + "redox_syscall 0.5.18", 3270 + "smallvec", 3271 + "windows-link 0.2.1", 3272 + ] 3273 + 3274 + [[package]] 3275 + name = "pathdiff" 3276 + version = "0.2.3" 3277 + source = "registry+https://github.com/rust-lang/crates.io-index" 3278 + checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" 3279 + 3280 + [[package]] 3281 + name = "percent-encoding" 3282 + version = "2.3.2" 3283 + source = "registry+https://github.com/rust-lang/crates.io-index" 3284 + checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" 3285 + 3286 + [[package]] 3287 + name = "pest" 3288 + version = "2.8.4" 3289 + source = "registry+https://github.com/rust-lang/crates.io-index" 3290 + checksum = "cbcfd20a6d4eeba40179f05735784ad32bdaef05ce8e8af05f180d45bb3e7e22" 3291 + dependencies = [ 3292 + "memchr", 3293 + "ucd-trie", 3294 + ] 3295 + 3296 + [[package]] 3297 + name = "pest_derive" 3298 + version = "2.8.4" 3299 + source = "registry+https://github.com/rust-lang/crates.io-index" 3300 + checksum = "51f72981ade67b1ca6adc26ec221be9f463f2b5839c7508998daa17c23d94d7f" 3301 + dependencies = [ 3302 + "pest", 3303 + "pest_generator", 3304 + ] 3305 + 3306 + [[package]] 3307 + name = "pest_generator" 3308 + version = "2.8.4" 3309 + source = "registry+https://github.com/rust-lang/crates.io-index" 3310 + checksum = "dee9efd8cdb50d719a80088b76f81aec7c41ed6d522ee750178f83883d271625" 3311 + dependencies = [ 3312 + "pest", 3313 + "pest_meta", 3314 + "proc-macro2", 3315 + "quote", 3316 + "syn 2.0.111", 3317 + ] 3318 + 3319 + [[package]] 3320 + name = "pest_meta" 3321 + version = "2.8.4" 3322 + source = "registry+https://github.com/rust-lang/crates.io-index" 3323 + checksum = "bf1d70880e76bdc13ba52eafa6239ce793d85c8e43896507e43dd8984ff05b82" 3324 + dependencies = [ 3325 + "pest", 3326 + "sha2", 3327 + ] 3328 + 3329 + [[package]] 3330 + name = "phf" 3331 + version = "0.8.0" 3332 + source = "registry+https://github.com/rust-lang/crates.io-index" 3333 + checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12" 3334 + dependencies = [ 3335 + "phf_shared 0.8.0", 3336 + ] 3337 + 3338 + [[package]] 3339 + name = "phf" 3340 + version = "0.10.1" 3341 + source = "registry+https://github.com/rust-lang/crates.io-index" 3342 + checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" 3343 + dependencies = [ 3344 + "phf_macros 0.10.0", 3345 + "phf_shared 0.10.0", 3346 + "proc-macro-hack", 3347 + ] 3348 + 3349 + [[package]] 3350 + name = "phf" 3351 + version = "0.11.3" 3352 + source = "registry+https://github.com/rust-lang/crates.io-index" 3353 + checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" 3354 + dependencies = [ 3355 + "phf_macros 0.11.3", 3356 + "phf_shared 0.11.3", 3357 + ] 3358 + 3359 + [[package]] 3360 + name = "phf_codegen" 3361 + version = "0.8.0" 3362 + source = "registry+https://github.com/rust-lang/crates.io-index" 3363 + checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815" 3364 + dependencies = [ 3365 + "phf_generator 0.8.0", 3366 + "phf_shared 0.8.0", 3367 + ] 3368 + 3369 + [[package]] 3370 + name = "phf_codegen" 3371 + version = "0.11.3" 3372 + source = "registry+https://github.com/rust-lang/crates.io-index" 3373 + checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a" 3374 + dependencies = [ 3375 + "phf_generator 0.11.3", 3376 + "phf_shared 0.11.3", 3377 + ] 3378 + 3379 + [[package]] 3380 + name = "phf_generator" 3381 + version = "0.8.0" 3382 + source = "registry+https://github.com/rust-lang/crates.io-index" 3383 + checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526" 3384 + dependencies = [ 3385 + "phf_shared 0.8.0", 3386 + "rand 0.7.3", 3387 + ] 3388 + 3389 + [[package]] 3390 + name = "phf_generator" 3391 + version = "0.10.0" 3392 + source = "registry+https://github.com/rust-lang/crates.io-index" 3393 + checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" 3394 + dependencies = [ 3395 + "phf_shared 0.10.0", 3396 + "rand 0.8.5", 3397 + ] 3398 + 3399 + [[package]] 3400 + name = "phf_generator" 3401 + version = "0.11.3" 3402 + source = "registry+https://github.com/rust-lang/crates.io-index" 3403 + checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" 3404 + dependencies = [ 3405 + "phf_shared 0.11.3", 3406 + "rand 0.8.5", 3407 + ] 3408 + 3409 + [[package]] 3410 + name = "phf_macros" 3411 + version = "0.10.0" 3412 + source = "registry+https://github.com/rust-lang/crates.io-index" 3413 + checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0" 3414 + dependencies = [ 3415 + "phf_generator 0.10.0", 3416 + "phf_shared 0.10.0", 3417 + "proc-macro-hack", 3418 + "proc-macro2", 3419 + "quote", 3420 + "syn 1.0.109", 3421 + ] 3422 + 3423 + [[package]] 3424 + name = "phf_macros" 3425 + version = "0.11.3" 3426 + source = "registry+https://github.com/rust-lang/crates.io-index" 3427 + checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" 3428 + dependencies = [ 3429 + "phf_generator 0.11.3", 3430 + "phf_shared 0.11.3", 3431 + "proc-macro2", 3432 + "quote", 3433 + "syn 2.0.111", 3434 + ] 3435 + 3436 + [[package]] 3437 + name = "phf_shared" 3438 + version = "0.8.0" 3439 + source = "registry+https://github.com/rust-lang/crates.io-index" 3440 + checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" 3441 + dependencies = [ 3442 + "siphasher 0.3.11", 3443 + ] 3444 + 3445 + [[package]] 3446 + name = "phf_shared" 3447 + version = "0.10.0" 3448 + source = "registry+https://github.com/rust-lang/crates.io-index" 3449 + checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" 3450 + dependencies = [ 3451 + "siphasher 0.3.11", 3452 + ] 3453 + 3454 + [[package]] 3455 + name = "phf_shared" 3456 + version = "0.11.3" 3457 + source = "registry+https://github.com/rust-lang/crates.io-index" 3458 + checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" 3459 + dependencies = [ 3460 + "siphasher 1.0.1", 3461 + ] 3462 + 3463 + [[package]] 3464 + name = "pin-project-lite" 3465 + version = "0.2.16" 3466 + source = "registry+https://github.com/rust-lang/crates.io-index" 3467 + checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" 3468 + 3469 + [[package]] 3470 + name = "pin-utils" 3471 + version = "0.1.0" 3472 + source = "registry+https://github.com/rust-lang/crates.io-index" 3473 + checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 3474 + 3475 + [[package]] 3476 + name = "pkg-config" 3477 + version = "0.3.32" 3478 + source = "registry+https://github.com/rust-lang/crates.io-index" 3479 + checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" 3480 + 3481 + [[package]] 3482 + name = "plist" 3483 + version = "1.8.0" 3484 + source = "registry+https://github.com/rust-lang/crates.io-index" 3485 + checksum = "740ebea15c5d1428f910cd1a5f52cebf8d25006245ed8ade92702f4943d91e07" 3486 + dependencies = [ 3487 + "base64 0.22.1", 3488 + "indexmap 2.12.1", 3489 + "quick-xml", 3490 + "serde", 3491 + "time", 3492 + ] 3493 + 3494 + [[package]] 3495 + name = "png" 3496 + version = "0.17.16" 3497 + source = "registry+https://github.com/rust-lang/crates.io-index" 3498 + checksum = "82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526" 3499 + dependencies = [ 3500 + "bitflags 1.3.2", 3501 + "crc32fast", 3502 + "fdeflate", 3503 + "flate2", 3504 + "miniz_oxide", 3505 + ] 3506 + 3507 + [[package]] 3508 + name = "pollster" 3509 + version = "0.4.0" 3510 + source = "registry+https://github.com/rust-lang/crates.io-index" 3511 + checksum = "2f3a9f18d041e6d0e102a0a46750538147e5e8992d3b4873aaafee2520b00ce3" 3512 + 3513 + [[package]] 3514 + name = "portable-atomic" 3515 + version = "1.12.0" 3516 + source = "registry+https://github.com/rust-lang/crates.io-index" 3517 + checksum = "f59e70c4aef1e55797c2e8fd94a4f2a973fc972cfde0e0b05f683667b0cd39dd" 3518 + 3519 + [[package]] 3520 + name = "portable-atomic-util" 3521 + version = "0.2.4" 3522 + source = "registry+https://github.com/rust-lang/crates.io-index" 3523 + checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507" 3524 + dependencies = [ 3525 + "portable-atomic", 3526 + ] 3527 + 3528 + [[package]] 3529 + name = "potential_utf" 3530 + version = "0.1.4" 3531 + source = "registry+https://github.com/rust-lang/crates.io-index" 3532 + checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" 3533 + dependencies = [ 3534 + "zerovec", 3535 + ] 3536 + 3537 + [[package]] 3538 + name = "powerfmt" 3539 + version = "0.2.0" 3540 + source = "registry+https://github.com/rust-lang/crates.io-index" 3541 + checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" 3542 + 3543 + [[package]] 3544 + name = "ppv-lite86" 3545 + version = "0.2.21" 3546 + source = "registry+https://github.com/rust-lang/crates.io-index" 3547 + checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" 3548 + dependencies = [ 3549 + "zerocopy", 3550 + ] 3551 + 3552 + [[package]] 3553 + name = "precomputed-hash" 3554 + version = "0.1.1" 3555 + source = "registry+https://github.com/rust-lang/crates.io-index" 3556 + checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" 3557 + 3558 + [[package]] 3559 + name = "proc-macro-crate" 3560 + version = "1.3.1" 3561 + source = "registry+https://github.com/rust-lang/crates.io-index" 3562 + checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" 3563 + dependencies = [ 3564 + "once_cell", 3565 + "toml_edit 0.19.15", 3566 + ] 3567 + 3568 + [[package]] 3569 + name = "proc-macro-crate" 3570 + version = "2.0.2" 3571 + source = "registry+https://github.com/rust-lang/crates.io-index" 3572 + checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24" 3573 + dependencies = [ 3574 + "toml_datetime 0.6.3", 3575 + "toml_edit 0.20.2", 3576 + ] 3577 + 3578 + [[package]] 3579 + name = "proc-macro-crate" 3580 + version = "3.4.0" 3581 + source = "registry+https://github.com/rust-lang/crates.io-index" 3582 + checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" 3583 + dependencies = [ 3584 + "toml_edit 0.23.10+spec-1.0.0", 3585 + ] 3586 + 3587 + [[package]] 3588 + name = "proc-macro-error" 3589 + version = "1.0.4" 3590 + source = "registry+https://github.com/rust-lang/crates.io-index" 3591 + checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" 3592 + dependencies = [ 3593 + "proc-macro-error-attr", 3594 + "proc-macro2", 3595 + "quote", 3596 + "syn 1.0.109", 3597 + "version_check", 3598 + ] 3599 + 3600 + [[package]] 3601 + name = "proc-macro-error-attr" 3602 + version = "1.0.4" 3603 + source = "registry+https://github.com/rust-lang/crates.io-index" 3604 + checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" 3605 + dependencies = [ 3606 + "proc-macro2", 3607 + "quote", 3608 + "version_check", 3609 + ] 3610 + 3611 + [[package]] 3612 + name = "proc-macro-hack" 3613 + version = "0.5.20+deprecated" 3614 + source = "registry+https://github.com/rust-lang/crates.io-index" 3615 + checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" 3616 + 3617 + [[package]] 3618 + name = "proc-macro2" 3619 + version = "1.0.103" 3620 + source = "registry+https://github.com/rust-lang/crates.io-index" 3621 + checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" 3622 + dependencies = [ 3623 + "unicode-ident", 3624 + ] 3625 + 3626 + [[package]] 3627 + name = "prodash" 3628 + version = "30.0.1" 3629 + source = "registry+https://github.com/rust-lang/crates.io-index" 3630 + checksum = "5a6efc566849d3d9d737c5cb06cc50e48950ebe3d3f9d70631490fff3a07b139" 3631 + dependencies = [ 3632 + "parking_lot", 3633 + ] 3634 + 3635 + [[package]] 3636 + name = "prost" 3637 + version = "0.14.1" 3638 + source = "registry+https://github.com/rust-lang/crates.io-index" 3639 + checksum = "7231bd9b3d3d33c86b58adbac74b5ec0ad9f496b19d22801d773636feaa95f3d" 3640 + dependencies = [ 3641 + "bytes", 3642 + "prost-derive", 3643 + ] 3644 + 3645 + [[package]] 3646 + name = "prost-derive" 3647 + version = "0.14.1" 3648 + source = "registry+https://github.com/rust-lang/crates.io-index" 3649 + checksum = "9120690fafc389a67ba3803df527d0ec9cbbc9cc45e4cc20b332996dfb672425" 3650 + dependencies = [ 3651 + "anyhow", 3652 + "itertools", 3653 + "proc-macro2", 3654 + "quote", 3655 + "syn 2.0.111", 3656 + ] 3657 + 3658 + [[package]] 3659 + name = "quick-xml" 3660 + version = "0.38.4" 3661 + source = "registry+https://github.com/rust-lang/crates.io-index" 3662 + checksum = "b66c2058c55a409d601666cffe35f04333cf1013010882cec174a7467cd4e21c" 3663 + dependencies = [ 3664 + "memchr", 3665 + ] 3666 + 3667 + [[package]] 3668 + name = "quote" 3669 + version = "1.0.42" 3670 + source = "registry+https://github.com/rust-lang/crates.io-index" 3671 + checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" 3672 + dependencies = [ 3673 + "proc-macro2", 3674 + ] 3675 + 3676 + [[package]] 3677 + name = "r-efi" 3678 + version = "5.3.0" 3679 + source = "registry+https://github.com/rust-lang/crates.io-index" 3680 + checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" 3681 + 3682 + [[package]] 3683 + name = "rand" 3684 + version = "0.7.3" 3685 + source = "registry+https://github.com/rust-lang/crates.io-index" 3686 + checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" 3687 + dependencies = [ 3688 + "getrandom 0.1.16", 3689 + "libc", 3690 + "rand_chacha 0.2.2", 3691 + "rand_core 0.5.1", 3692 + "rand_hc", 3693 + "rand_pcg", 3694 + ] 3695 + 3696 + [[package]] 3697 + name = "rand" 3698 + version = "0.8.5" 3699 + source = "registry+https://github.com/rust-lang/crates.io-index" 3700 + checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 3701 + dependencies = [ 3702 + "libc", 3703 + "rand_chacha 0.3.1", 3704 + "rand_core 0.6.4", 3705 + ] 3706 + 3707 + [[package]] 3708 + name = "rand" 3709 + version = "0.9.2" 3710 + source = "registry+https://github.com/rust-lang/crates.io-index" 3711 + checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" 3712 + dependencies = [ 3713 + "rand_chacha 0.9.0", 3714 + "rand_core 0.9.3", 3715 + ] 3716 + 3717 + [[package]] 3718 + name = "rand_chacha" 3719 + version = "0.2.2" 3720 + source = "registry+https://github.com/rust-lang/crates.io-index" 3721 + checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" 3722 + dependencies = [ 3723 + "ppv-lite86", 3724 + "rand_core 0.5.1", 3725 + ] 3726 + 3727 + [[package]] 3728 + name = "rand_chacha" 3729 + version = "0.3.1" 3730 + source = "registry+https://github.com/rust-lang/crates.io-index" 3731 + checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 3732 + dependencies = [ 3733 + "ppv-lite86", 3734 + "rand_core 0.6.4", 3735 + ] 3736 + 3737 + [[package]] 3738 + name = "rand_chacha" 3739 + version = "0.9.0" 3740 + source = "registry+https://github.com/rust-lang/crates.io-index" 3741 + checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" 3742 + dependencies = [ 3743 + "ppv-lite86", 3744 + "rand_core 0.9.3", 3745 + ] 3746 + 3747 + [[package]] 3748 + name = "rand_core" 3749 + version = "0.5.1" 3750 + source = "registry+https://github.com/rust-lang/crates.io-index" 3751 + checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" 3752 + dependencies = [ 3753 + "getrandom 0.1.16", 3754 + ] 3755 + 3756 + [[package]] 3757 + name = "rand_core" 3758 + version = "0.6.4" 3759 + source = "registry+https://github.com/rust-lang/crates.io-index" 3760 + checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 3761 + dependencies = [ 3762 + "getrandom 0.2.16", 3763 + ] 3764 + 3765 + [[package]] 3766 + name = "rand_core" 3767 + version = "0.9.3" 3768 + source = "registry+https://github.com/rust-lang/crates.io-index" 3769 + checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" 3770 + dependencies = [ 3771 + "getrandom 0.3.4", 3772 + ] 3773 + 3774 + [[package]] 3775 + name = "rand_hc" 3776 + version = "0.2.0" 3777 + source = "registry+https://github.com/rust-lang/crates.io-index" 3778 + checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" 3779 + dependencies = [ 3780 + "rand_core 0.5.1", 3781 + ] 3782 + 3783 + [[package]] 3784 + name = "rand_pcg" 3785 + version = "0.2.1" 3786 + source = "registry+https://github.com/rust-lang/crates.io-index" 3787 + checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" 3788 + dependencies = [ 3789 + "rand_core 0.5.1", 3790 + ] 3791 + 3792 + [[package]] 3793 + name = "raw-window-handle" 3794 + version = "0.6.2" 3795 + source = "registry+https://github.com/rust-lang/crates.io-index" 3796 + checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" 3797 + 3798 + [[package]] 3799 + name = "rayon" 3800 + version = "1.11.0" 3801 + source = "registry+https://github.com/rust-lang/crates.io-index" 3802 + checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" 3803 + dependencies = [ 3804 + "either", 3805 + "rayon-core", 3806 + ] 3807 + 3808 + [[package]] 3809 + name = "rayon-core" 3810 + version = "1.13.0" 3811 + source = "registry+https://github.com/rust-lang/crates.io-index" 3812 + checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" 3813 + dependencies = [ 3814 + "crossbeam-deque", 3815 + "crossbeam-utils", 3816 + ] 3817 + 3818 + [[package]] 3819 + name = "redox_syscall" 3820 + version = "0.5.18" 3821 + source = "registry+https://github.com/rust-lang/crates.io-index" 3822 + checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" 3823 + dependencies = [ 3824 + "bitflags 2.10.0", 3825 + ] 3826 + 3827 + [[package]] 3828 + name = "redox_syscall" 3829 + version = "0.6.0" 3830 + source = "registry+https://github.com/rust-lang/crates.io-index" 3831 + checksum = "ec96166dafa0886eb81fe1c0a388bece180fbef2135f97c1e2cf8302e74b43b5" 3832 + dependencies = [ 3833 + "bitflags 2.10.0", 3834 + ] 3835 + 3836 + [[package]] 3837 + name = "redox_users" 3838 + version = "0.5.2" 3839 + source = "registry+https://github.com/rust-lang/crates.io-index" 3840 + checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" 3841 + dependencies = [ 3842 + "getrandom 0.2.16", 3843 + "libredox", 3844 + "thiserror 2.0.17", 3845 + ] 3846 + 3847 + [[package]] 3848 + name = "ref-cast" 3849 + version = "1.0.25" 3850 + source = "registry+https://github.com/rust-lang/crates.io-index" 3851 + checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" 3852 + dependencies = [ 3853 + "ref-cast-impl", 3854 + ] 3855 + 3856 + [[package]] 3857 + name = "ref-cast-impl" 3858 + version = "1.0.25" 3859 + source = "registry+https://github.com/rust-lang/crates.io-index" 3860 + checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" 3861 + dependencies = [ 3862 + "proc-macro2", 3863 + "quote", 3864 + "syn 2.0.111", 3865 + ] 3866 + 3867 + [[package]] 3868 + name = "regex" 3869 + version = "1.12.2" 3870 + source = "registry+https://github.com/rust-lang/crates.io-index" 3871 + checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" 3872 + dependencies = [ 3873 + "aho-corasick", 3874 + "memchr", 3875 + "regex-automata", 3876 + "regex-syntax", 3877 + ] 3878 + 3879 + [[package]] 3880 + name = "regex-automata" 3881 + version = "0.4.13" 3882 + source = "registry+https://github.com/rust-lang/crates.io-index" 3883 + checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" 3884 + dependencies = [ 3885 + "aho-corasick", 3886 + "memchr", 3887 + "regex-syntax", 3888 + ] 3889 + 3890 + [[package]] 3891 + name = "regex-syntax" 3892 + version = "0.8.8" 3893 + source = "registry+https://github.com/rust-lang/crates.io-index" 3894 + checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" 3895 + 3896 + [[package]] 3897 + name = "reqwest" 3898 + version = "0.12.26" 3899 + source = "registry+https://github.com/rust-lang/crates.io-index" 3900 + checksum = "3b4c14b2d9afca6a60277086b0cc6a6ae0b568f6f7916c943a8cdc79f8be240f" 3901 + dependencies = [ 3902 + "base64 0.22.1", 3903 + "bytes", 3904 + "futures-core", 3905 + "futures-util", 3906 + "http", 3907 + "http-body", 3908 + "http-body-util", 3909 + "hyper", 3910 + "hyper-util", 3911 + "js-sys", 3912 + "log", 3913 + "percent-encoding", 3914 + "pin-project-lite", 3915 + "serde", 3916 + "serde_json", 3917 + "serde_urlencoded", 3918 + "sync_wrapper", 3919 + "tokio", 3920 + "tokio-util", 3921 + "tower", 3922 + "tower-http", 3923 + "tower-service", 3924 + "url", 3925 + "wasm-bindgen", 3926 + "wasm-bindgen-futures", 3927 + "wasm-streams", 3928 + "web-sys", 3929 + ] 3930 + 3931 + [[package]] 3932 + name = "rustc_version" 3933 + version = "0.4.1" 3934 + source = "registry+https://github.com/rust-lang/crates.io-index" 3935 + checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" 3936 + dependencies = [ 3937 + "semver", 3938 + ] 3939 + 3940 + [[package]] 3941 + name = "rustix" 3942 + version = "1.1.2" 3943 + source = "registry+https://github.com/rust-lang/crates.io-index" 3944 + checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" 3945 + dependencies = [ 3946 + "bitflags 2.10.0", 3947 + "errno", 3948 + "libc", 3949 + "linux-raw-sys", 3950 + "windows-sys 0.61.2", 3951 + ] 3952 + 3953 + [[package]] 3954 + name = "rustversion" 3955 + version = "1.0.22" 3956 + source = "registry+https://github.com/rust-lang/crates.io-index" 3957 + checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" 3958 + 3959 + [[package]] 3960 + name = "ryu" 3961 + version = "1.0.20" 3962 + source = "registry+https://github.com/rust-lang/crates.io-index" 3963 + checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" 3964 + 3965 + [[package]] 3966 + name = "same-file" 3967 + version = "1.0.6" 3968 + source = "registry+https://github.com/rust-lang/crates.io-index" 3969 + checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" 3970 + dependencies = [ 3971 + "winapi-util", 3972 + ] 3973 + 3974 + [[package]] 3975 + name = "schemars" 3976 + version = "0.8.22" 3977 + source = "registry+https://github.com/rust-lang/crates.io-index" 3978 + checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" 3979 + dependencies = [ 3980 + "dyn-clone", 3981 + "indexmap 1.9.3", 3982 + "schemars_derive", 3983 + "serde", 3984 + "serde_json", 3985 + "url", 3986 + "uuid", 3987 + ] 3988 + 3989 + [[package]] 3990 + name = "schemars" 3991 + version = "0.9.0" 3992 + source = "registry+https://github.com/rust-lang/crates.io-index" 3993 + checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" 3994 + dependencies = [ 3995 + "dyn-clone", 3996 + "ref-cast", 3997 + "serde", 3998 + "serde_json", 3999 + ] 4000 + 4001 + [[package]] 4002 + name = "schemars" 4003 + version = "1.1.0" 4004 + source = "registry+https://github.com/rust-lang/crates.io-index" 4005 + checksum = "9558e172d4e8533736ba97870c4b2cd63f84b382a3d6eb063da41b91cce17289" 4006 + dependencies = [ 4007 + "dyn-clone", 4008 + "ref-cast", 4009 + "serde", 4010 + "serde_json", 4011 + ] 4012 + 4013 + [[package]] 4014 + name = "schemars_derive" 4015 + version = "0.8.22" 4016 + source = "registry+https://github.com/rust-lang/crates.io-index" 4017 + checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d" 4018 + dependencies = [ 4019 + "proc-macro2", 4020 + "quote", 4021 + "serde_derive_internals", 4022 + "syn 2.0.111", 4023 + ] 4024 + 4025 + [[package]] 4026 + name = "scopeguard" 4027 + version = "1.2.0" 4028 + source = "registry+https://github.com/rust-lang/crates.io-index" 4029 + checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 4030 + 4031 + [[package]] 4032 + name = "selectors" 4033 + version = "0.24.0" 4034 + source = "registry+https://github.com/rust-lang/crates.io-index" 4035 + checksum = "0c37578180969d00692904465fb7f6b3d50b9a2b952b87c23d0e2e5cb5013416" 4036 + dependencies = [ 4037 + "bitflags 1.3.2", 4038 + "cssparser", 4039 + "derive_more", 4040 + "fxhash", 4041 + "log", 4042 + "phf 0.8.0", 4043 + "phf_codegen 0.8.0", 4044 + "precomputed-hash", 4045 + "servo_arc", 4046 + "smallvec", 4047 + ] 4048 + 4049 + [[package]] 4050 + name = "semver" 4051 + version = "1.0.27" 4052 + source = "registry+https://github.com/rust-lang/crates.io-index" 4053 + checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" 4054 + dependencies = [ 4055 + "serde", 4056 + "serde_core", 4057 + ] 4058 + 4059 + [[package]] 4060 + name = "serde" 4061 + version = "1.0.228" 4062 + source = "registry+https://github.com/rust-lang/crates.io-index" 4063 + checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" 4064 + dependencies = [ 4065 + "serde_core", 4066 + "serde_derive", 4067 + ] 4068 + 4069 + [[package]] 4070 + name = "serde-untagged" 4071 + version = "0.1.9" 4072 + source = "registry+https://github.com/rust-lang/crates.io-index" 4073 + checksum = "f9faf48a4a2d2693be24c6289dbe26552776eb7737074e6722891fadbe6c5058" 4074 + dependencies = [ 4075 + "erased-serde", 4076 + "serde", 4077 + "serde_core", 4078 + "typeid", 4079 + ] 4080 + 4081 + [[package]] 4082 + name = "serde_core" 4083 + version = "1.0.228" 4084 + source = "registry+https://github.com/rust-lang/crates.io-index" 4085 + checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" 4086 + dependencies = [ 4087 + "serde_derive", 4088 + ] 4089 + 4090 + [[package]] 4091 + name = "serde_derive" 4092 + version = "1.0.228" 4093 + source = "registry+https://github.com/rust-lang/crates.io-index" 4094 + checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" 4095 + dependencies = [ 4096 + "proc-macro2", 4097 + "quote", 4098 + "syn 2.0.111", 4099 + ] 4100 + 4101 + [[package]] 4102 + name = "serde_derive_internals" 4103 + version = "0.29.1" 4104 + source = "registry+https://github.com/rust-lang/crates.io-index" 4105 + checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" 4106 + dependencies = [ 4107 + "proc-macro2", 4108 + "quote", 4109 + "syn 2.0.111", 4110 + ] 4111 + 4112 + [[package]] 4113 + name = "serde_json" 4114 + version = "1.0.145" 4115 + source = "registry+https://github.com/rust-lang/crates.io-index" 4116 + checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" 4117 + dependencies = [ 4118 + "itoa", 4119 + "memchr", 4120 + "ryu", 4121 + "serde", 4122 + "serde_core", 4123 + ] 4124 + 4125 + [[package]] 4126 + name = "serde_repr" 4127 + version = "0.1.20" 4128 + source = "registry+https://github.com/rust-lang/crates.io-index" 4129 + checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" 4130 + dependencies = [ 4131 + "proc-macro2", 4132 + "quote", 4133 + "syn 2.0.111", 4134 + ] 4135 + 4136 + [[package]] 4137 + name = "serde_spanned" 4138 + version = "0.6.9" 4139 + source = "registry+https://github.com/rust-lang/crates.io-index" 4140 + checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" 4141 + dependencies = [ 4142 + "serde", 4143 + ] 4144 + 4145 + [[package]] 4146 + name = "serde_spanned" 4147 + version = "1.0.4" 4148 + source = "registry+https://github.com/rust-lang/crates.io-index" 4149 + checksum = "f8bbf91e5a4d6315eee45e704372590b30e260ee83af6639d64557f51b067776" 4150 + dependencies = [ 4151 + "serde_core", 4152 + ] 4153 + 4154 + [[package]] 4155 + name = "serde_urlencoded" 4156 + version = "0.7.1" 4157 + source = "registry+https://github.com/rust-lang/crates.io-index" 4158 + checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" 4159 + dependencies = [ 4160 + "form_urlencoded", 4161 + "itoa", 4162 + "ryu", 4163 + "serde", 4164 + ] 4165 + 4166 + [[package]] 4167 + name = "serde_with" 4168 + version = "3.16.1" 4169 + source = "registry+https://github.com/rust-lang/crates.io-index" 4170 + checksum = "4fa237f2807440d238e0364a218270b98f767a00d3dada77b1c53ae88940e2e7" 4171 + dependencies = [ 4172 + "base64 0.22.1", 4173 + "chrono", 4174 + "hex", 4175 + "indexmap 1.9.3", 4176 + "indexmap 2.12.1", 4177 + "schemars 0.9.0", 4178 + "schemars 1.1.0", 4179 + "serde_core", 4180 + "serde_json", 4181 + "serde_with_macros", 4182 + "time", 4183 + ] 4184 + 4185 + [[package]] 4186 + name = "serde_with_macros" 4187 + version = "3.16.1" 4188 + source = "registry+https://github.com/rust-lang/crates.io-index" 4189 + checksum = "52a8e3ca0ca629121f70ab50f95249e5a6f925cc0f6ffe8256c45b728875706c" 4190 + dependencies = [ 4191 + "darling", 4192 + "proc-macro2", 4193 + "quote", 4194 + "syn 2.0.111", 4195 + ] 4196 + 4197 + [[package]] 4198 + name = "serialize-to-javascript" 4199 + version = "0.1.2" 4200 + source = "registry+https://github.com/rust-lang/crates.io-index" 4201 + checksum = "04f3666a07a197cdb77cdf306c32be9b7f598d7060d50cfd4d5aa04bfd92f6c5" 4202 + dependencies = [ 4203 + "serde", 4204 + "serde_json", 4205 + "serialize-to-javascript-impl", 4206 + ] 4207 + 4208 + [[package]] 4209 + name = "serialize-to-javascript-impl" 4210 + version = "0.1.2" 4211 + source = "registry+https://github.com/rust-lang/crates.io-index" 4212 + checksum = "772ee033c0916d670af7860b6e1ef7d658a4629a6d0b4c8c3e67f09b3765b75d" 4213 + dependencies = [ 4214 + "proc-macro2", 4215 + "quote", 4216 + "syn 2.0.111", 4217 + ] 4218 + 4219 + [[package]] 4220 + name = "servo_arc" 4221 + version = "0.2.0" 4222 + source = "registry+https://github.com/rust-lang/crates.io-index" 4223 + checksum = "d52aa42f8fdf0fed91e5ce7f23d8138441002fa31dca008acf47e6fd4721f741" 4224 + dependencies = [ 4225 + "nodrop", 4226 + "stable_deref_trait", 4227 + ] 4228 + 4229 + [[package]] 4230 + name = "sha1" 4231 + version = "0.10.6" 4232 + source = "registry+https://github.com/rust-lang/crates.io-index" 4233 + checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" 4234 + dependencies = [ 4235 + "cfg-if", 4236 + "cpufeatures", 4237 + "digest", 4238 + ] 4239 + 4240 + [[package]] 4241 + name = "sha1-checked" 4242 + version = "0.10.0" 4243 + source = "registry+https://github.com/rust-lang/crates.io-index" 4244 + checksum = "89f599ac0c323ebb1c6082821a54962b839832b03984598375bff3975b804423" 4245 + dependencies = [ 4246 + "digest", 4247 + "sha1", 4248 + ] 4249 + 4250 + [[package]] 4251 + name = "sha2" 4252 + version = "0.10.9" 4253 + source = "registry+https://github.com/rust-lang/crates.io-index" 4254 + checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" 4255 + dependencies = [ 4256 + "cfg-if", 4257 + "cpufeatures", 4258 + "digest", 4259 + ] 4260 + 4261 + [[package]] 4262 + name = "shared_child" 4263 + version = "1.1.1" 4264 + source = "registry+https://github.com/rust-lang/crates.io-index" 4265 + checksum = "1e362d9935bc50f019969e2f9ecd66786612daae13e8f277be7bfb66e8bed3f7" 4266 + dependencies = [ 4267 + "libc", 4268 + "sigchld", 4269 + "windows-sys 0.60.2", 4270 + ] 4271 + 4272 + [[package]] 4273 + name = "shell-words" 4274 + version = "1.1.1" 4275 + source = "registry+https://github.com/rust-lang/crates.io-index" 4276 + checksum = "dc6fe69c597f9c37bfeeeeeb33da3530379845f10be461a66d16d03eca2ded77" 4277 + 4278 + [[package]] 4279 + name = "shlex" 4280 + version = "1.3.0" 4281 + source = "registry+https://github.com/rust-lang/crates.io-index" 4282 + checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 4283 + 4284 + [[package]] 4285 + name = "sigchld" 4286 + version = "0.2.4" 4287 + source = "registry+https://github.com/rust-lang/crates.io-index" 4288 + checksum = "47106eded3c154e70176fc83df9737335c94ce22f821c32d17ed1db1f83badb1" 4289 + dependencies = [ 4290 + "libc", 4291 + "os_pipe", 4292 + "signal-hook", 4293 + ] 4294 + 4295 + [[package]] 4296 + name = "signal-hook" 4297 + version = "0.3.18" 4298 + source = "registry+https://github.com/rust-lang/crates.io-index" 4299 + checksum = "d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2" 4300 + dependencies = [ 4301 + "libc", 4302 + "signal-hook-registry", 4303 + ] 4304 + 4305 + [[package]] 4306 + name = "signal-hook-registry" 4307 + version = "1.4.7" 4308 + source = "registry+https://github.com/rust-lang/crates.io-index" 4309 + checksum = "7664a098b8e616bdfcc2dc0e9ac44eb231eedf41db4e9fe95d8d32ec728dedad" 4310 + dependencies = [ 4311 + "libc", 4312 + ] 4313 + 4314 + [[package]] 4315 + name = "simd-adler32" 4316 + version = "0.3.8" 4317 + source = "registry+https://github.com/rust-lang/crates.io-index" 4318 + checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" 4319 + 4320 + [[package]] 4321 + name = "similar" 4322 + version = "2.7.0" 4323 + source = "registry+https://github.com/rust-lang/crates.io-index" 4324 + checksum = "bbbb5d9659141646ae647b42fe094daf6c6192d1620870b449d9557f748b2daa" 4325 + 4326 + [[package]] 4327 + name = "siphasher" 4328 + version = "0.3.11" 4329 + source = "registry+https://github.com/rust-lang/crates.io-index" 4330 + checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" 4331 + 4332 + [[package]] 4333 + name = "siphasher" 4334 + version = "1.0.1" 4335 + source = "registry+https://github.com/rust-lang/crates.io-index" 4336 + checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" 4337 + 4338 + [[package]] 4339 + name = "slab" 4340 + version = "0.4.11" 4341 + source = "registry+https://github.com/rust-lang/crates.io-index" 4342 + checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" 4343 + 4344 + [[package]] 4345 + name = "smallvec" 4346 + version = "1.15.1" 4347 + source = "registry+https://github.com/rust-lang/crates.io-index" 4348 + checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" 4349 + dependencies = [ 4350 + "serde", 4351 + ] 4352 + 4353 + [[package]] 4354 + name = "socket2" 4355 + version = "0.6.1" 4356 + source = "registry+https://github.com/rust-lang/crates.io-index" 4357 + checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881" 4358 + dependencies = [ 4359 + "libc", 4360 + "windows-sys 0.60.2", 4361 + ] 4362 + 4363 + [[package]] 4364 + name = "softbuffer" 4365 + version = "0.4.8" 4366 + source = "registry+https://github.com/rust-lang/crates.io-index" 4367 + checksum = "aac18da81ebbf05109ab275b157c22a653bb3c12cf884450179942f81bcbf6c3" 4368 + dependencies = [ 4369 + "bytemuck", 4370 + "js-sys", 4371 + "ndk", 4372 + "objc2", 4373 + "objc2-core-foundation", 4374 + "objc2-core-graphics", 4375 + "objc2-foundation", 4376 + "objc2-quartz-core", 4377 + "raw-window-handle", 4378 + "redox_syscall 0.5.18", 4379 + "tracing", 4380 + "wasm-bindgen", 4381 + "web-sys", 4382 + "windows-sys 0.61.2", 4383 + ] 4384 + 4385 + [[package]] 4386 + name = "soup3" 4387 + version = "0.5.0" 4388 + source = "registry+https://github.com/rust-lang/crates.io-index" 4389 + checksum = "471f924a40f31251afc77450e781cb26d55c0b650842efafc9c6cbd2f7cc4f9f" 4390 + dependencies = [ 4391 + "futures-channel", 4392 + "gio", 4393 + "glib", 4394 + "libc", 4395 + "soup3-sys", 4396 + ] 4397 + 4398 + [[package]] 4399 + name = "soup3-sys" 4400 + version = "0.5.0" 4401 + source = "registry+https://github.com/rust-lang/crates.io-index" 4402 + checksum = "7ebe8950a680a12f24f15ebe1bf70db7af98ad242d9db43596ad3108aab86c27" 4403 + dependencies = [ 4404 + "gio-sys", 4405 + "glib-sys", 4406 + "gobject-sys", 4407 + "libc", 4408 + "system-deps", 4409 + ] 4410 + 4411 + [[package]] 4412 + name = "stable_deref_trait" 4413 + version = "1.2.1" 4414 + source = "registry+https://github.com/rust-lang/crates.io-index" 4415 + checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" 4416 + 4417 + [[package]] 4418 + name = "static_assertions" 4419 + version = "1.1.0" 4420 + source = "registry+https://github.com/rust-lang/crates.io-index" 4421 + checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" 4422 + 4423 + [[package]] 4424 + name = "string_cache" 4425 + version = "0.8.9" 4426 + source = "registry+https://github.com/rust-lang/crates.io-index" 4427 + checksum = "bf776ba3fa74f83bf4b63c3dcbbf82173db2632ed8452cb2d891d33f459de70f" 4428 + dependencies = [ 4429 + "new_debug_unreachable", 4430 + "parking_lot", 4431 + "phf_shared 0.11.3", 4432 + "precomputed-hash", 4433 + "serde", 4434 + ] 4435 + 4436 + [[package]] 4437 + name = "string_cache_codegen" 4438 + version = "0.5.4" 4439 + source = "registry+https://github.com/rust-lang/crates.io-index" 4440 + checksum = "c711928715f1fe0fe509c53b43e993a9a557babc2d0a3567d0a3006f1ac931a0" 4441 + dependencies = [ 4442 + "phf_generator 0.11.3", 4443 + "phf_shared 0.11.3", 4444 + "proc-macro2", 4445 + "quote", 4446 + ] 4447 + 4448 + [[package]] 4449 + name = "strsim" 4450 + version = "0.11.1" 4451 + source = "registry+https://github.com/rust-lang/crates.io-index" 4452 + checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" 4453 + 4454 + [[package]] 4455 + name = "subtle" 4456 + version = "2.6.1" 4457 + source = "registry+https://github.com/rust-lang/crates.io-index" 4458 + checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" 4459 + 4460 + [[package]] 4461 + name = "swift-rs" 4462 + version = "1.0.7" 4463 + source = "registry+https://github.com/rust-lang/crates.io-index" 4464 + checksum = "4057c98e2e852d51fdcfca832aac7b571f6b351ad159f9eda5db1655f8d0c4d7" 4465 + dependencies = [ 4466 + "base64 0.21.7", 4467 + "serde", 4468 + "serde_json", 4469 + ] 4470 + 4471 + [[package]] 4472 + name = "syn" 4473 + version = "1.0.109" 4474 + source = "registry+https://github.com/rust-lang/crates.io-index" 4475 + checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" 4476 + dependencies = [ 4477 + "proc-macro2", 4478 + "quote", 4479 + "unicode-ident", 4480 + ] 4481 + 4482 + [[package]] 4483 + name = "syn" 4484 + version = "2.0.111" 4485 + source = "registry+https://github.com/rust-lang/crates.io-index" 4486 + checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87" 4487 + dependencies = [ 4488 + "proc-macro2", 4489 + "quote", 4490 + "unicode-ident", 4491 + ] 4492 + 4493 + [[package]] 4494 + name = "sync_wrapper" 4495 + version = "1.0.2" 4496 + source = "registry+https://github.com/rust-lang/crates.io-index" 4497 + checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" 4498 + dependencies = [ 4499 + "futures-core", 4500 + ] 4501 + 4502 + [[package]] 4503 + name = "synstructure" 4504 + version = "0.13.2" 4505 + source = "registry+https://github.com/rust-lang/crates.io-index" 4506 + checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" 4507 + dependencies = [ 4508 + "proc-macro2", 4509 + "quote", 4510 + "syn 2.0.111", 4511 + ] 4512 + 4513 + [[package]] 4514 + name = "system-deps" 4515 + version = "6.2.2" 4516 + source = "registry+https://github.com/rust-lang/crates.io-index" 4517 + checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" 4518 + dependencies = [ 4519 + "cfg-expr", 4520 + "heck 0.5.0", 4521 + "pkg-config", 4522 + "toml 0.8.2", 4523 + "version-compare", 4524 + ] 4525 + 4526 + [[package]] 4527 + name = "tao" 4528 + version = "0.34.5" 4529 + source = "registry+https://github.com/rust-lang/crates.io-index" 4530 + checksum = "f3a753bdc39c07b192151523a3f77cd0394aa75413802c883a0f6f6a0e5ee2e7" 4531 + dependencies = [ 4532 + "bitflags 2.10.0", 4533 + "block2", 4534 + "core-foundation", 4535 + "core-graphics", 4536 + "crossbeam-channel", 4537 + "dispatch", 4538 + "dlopen2", 4539 + "dpi", 4540 + "gdkwayland-sys", 4541 + "gdkx11-sys", 4542 + "gtk", 4543 + "jni", 4544 + "lazy_static", 4545 + "libc", 4546 + "log", 4547 + "ndk", 4548 + "ndk-context", 4549 + "ndk-sys", 4550 + "objc2", 4551 + "objc2-app-kit", 4552 + "objc2-foundation", 4553 + "once_cell", 4554 + "parking_lot", 4555 + "raw-window-handle", 4556 + "scopeguard", 4557 + "tao-macros", 4558 + "unicode-segmentation", 4559 + "url", 4560 + "windows", 4561 + "windows-core 0.61.2", 4562 + "windows-version", 4563 + "x11-dl", 4564 + ] 4565 + 4566 + [[package]] 4567 + name = "tao-macros" 4568 + version = "0.1.3" 4569 + source = "registry+https://github.com/rust-lang/crates.io-index" 4570 + checksum = "f4e16beb8b2ac17db28eab8bca40e62dbfbb34c0fcdc6d9826b11b7b5d047dfd" 4571 + dependencies = [ 4572 + "proc-macro2", 4573 + "quote", 4574 + "syn 2.0.111", 4575 + ] 4576 + 4577 + [[package]] 4578 + name = "target-lexicon" 4579 + version = "0.12.16" 4580 + source = "registry+https://github.com/rust-lang/crates.io-index" 4581 + checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" 4582 + 4583 + [[package]] 4584 + name = "tatami-desktop" 4585 + version = "0.1.0" 4586 + dependencies = [ 4587 + "anyhow", 4588 + "futures", 4589 + "hex", 4590 + "hostname", 4591 + "jj-lib", 4592 + "pollster", 4593 + "serde", 4594 + "serde_json", 4595 + "similar", 4596 + "tauri", 4597 + "tauri-build", 4598 + "tauri-plugin-shell", 4599 + "tokio", 4600 + "toml_edit 0.23.10+spec-1.0.0", 4601 + ] 4602 + 4603 + [[package]] 4604 + name = "tauri" 4605 + version = "2.9.5" 4606 + source = "registry+https://github.com/rust-lang/crates.io-index" 4607 + checksum = "8a3868da5508446a7cd08956d523ac3edf0a8bc20bf7e4038f9a95c2800d2033" 4608 + dependencies = [ 4609 + "anyhow", 4610 + "bytes", 4611 + "cookie", 4612 + "dirs", 4613 + "dunce", 4614 + "embed_plist", 4615 + "getrandom 0.3.4", 4616 + "glob", 4617 + "gtk", 4618 + "heck 0.5.0", 4619 + "http", 4620 + "jni", 4621 + "libc", 4622 + "log", 4623 + "mime", 4624 + "muda", 4625 + "objc2", 4626 + "objc2-app-kit", 4627 + "objc2-foundation", 4628 + "objc2-ui-kit", 4629 + "objc2-web-kit", 4630 + "percent-encoding", 4631 + "plist", 4632 + "raw-window-handle", 4633 + "reqwest", 4634 + "serde", 4635 + "serde_json", 4636 + "serde_repr", 4637 + "serialize-to-javascript", 4638 + "swift-rs", 4639 + "tauri-build", 4640 + "tauri-macros", 4641 + "tauri-runtime", 4642 + "tauri-runtime-wry", 4643 + "tauri-utils", 4644 + "thiserror 2.0.17", 4645 + "tokio", 4646 + "tray-icon", 4647 + "url", 4648 + "webkit2gtk", 4649 + "webview2-com", 4650 + "window-vibrancy", 4651 + "windows", 4652 + ] 4653 + 4654 + [[package]] 4655 + name = "tauri-build" 4656 + version = "2.5.3" 4657 + source = "registry+https://github.com/rust-lang/crates.io-index" 4658 + checksum = "17fcb8819fd16463512a12f531d44826ce566f486d7ccd211c9c8cebdaec4e08" 4659 + dependencies = [ 4660 + "anyhow", 4661 + "cargo_toml", 4662 + "dirs", 4663 + "glob", 4664 + "heck 0.5.0", 4665 + "json-patch", 4666 + "schemars 0.8.22", 4667 + "semver", 4668 + "serde", 4669 + "serde_json", 4670 + "tauri-utils", 4671 + "tauri-winres", 4672 + "toml 0.9.10+spec-1.1.0", 4673 + "walkdir", 4674 + ] 4675 + 4676 + [[package]] 4677 + name = "tauri-codegen" 4678 + version = "2.5.2" 4679 + source = "registry+https://github.com/rust-lang/crates.io-index" 4680 + checksum = "9fa9844cefcf99554a16e0a278156ae73b0d8680bbc0e2ad1e4287aadd8489cf" 4681 + dependencies = [ 4682 + "base64 0.22.1", 4683 + "brotli", 4684 + "ico", 4685 + "json-patch", 4686 + "plist", 4687 + "png", 4688 + "proc-macro2", 4689 + "quote", 4690 + "semver", 4691 + "serde", 4692 + "serde_json", 4693 + "sha2", 4694 + "syn 2.0.111", 4695 + "tauri-utils", 4696 + "thiserror 2.0.17", 4697 + "time", 4698 + "url", 4699 + "uuid", 4700 + "walkdir", 4701 + ] 4702 + 4703 + [[package]] 4704 + name = "tauri-macros" 4705 + version = "2.5.2" 4706 + source = "registry+https://github.com/rust-lang/crates.io-index" 4707 + checksum = "3764a12f886d8245e66b7ee9b43ccc47883399be2019a61d80cf0f4117446fde" 4708 + dependencies = [ 4709 + "heck 0.5.0", 4710 + "proc-macro2", 4711 + "quote", 4712 + "syn 2.0.111", 4713 + "tauri-codegen", 4714 + "tauri-utils", 4715 + ] 4716 + 4717 + [[package]] 4718 + name = "tauri-plugin" 4719 + version = "2.5.2" 4720 + source = "registry+https://github.com/rust-lang/crates.io-index" 4721 + checksum = "0e1d0a4860b7ff570c891e1d2a586bf1ede205ff858fbc305e0b5ae5d14c1377" 4722 + dependencies = [ 4723 + "anyhow", 4724 + "glob", 4725 + "plist", 4726 + "schemars 0.8.22", 4727 + "serde", 4728 + "serde_json", 4729 + "tauri-utils", 4730 + "toml 0.9.10+spec-1.1.0", 4731 + "walkdir", 4732 + ] 4733 + 4734 + [[package]] 4735 + name = "tauri-plugin-shell" 4736 + version = "2.3.3" 4737 + source = "registry+https://github.com/rust-lang/crates.io-index" 4738 + checksum = "c374b6db45f2a8a304f0273a15080d98c70cde86178855fc24653ba657a1144c" 4739 + dependencies = [ 4740 + "encoding_rs", 4741 + "log", 4742 + "open", 4743 + "os_pipe", 4744 + "regex", 4745 + "schemars 0.8.22", 4746 + "serde", 4747 + "serde_json", 4748 + "shared_child", 4749 + "tauri", 4750 + "tauri-plugin", 4751 + "thiserror 2.0.17", 4752 + "tokio", 4753 + ] 4754 + 4755 + [[package]] 4756 + name = "tauri-runtime" 4757 + version = "2.9.2" 4758 + source = "registry+https://github.com/rust-lang/crates.io-index" 4759 + checksum = "87f766fe9f3d1efc4b59b17e7a891ad5ed195fa8d23582abb02e6c9a01137892" 4760 + dependencies = [ 4761 + "cookie", 4762 + "dpi", 4763 + "gtk", 4764 + "http", 4765 + "jni", 4766 + "objc2", 4767 + "objc2-ui-kit", 4768 + "objc2-web-kit", 4769 + "raw-window-handle", 4770 + "serde", 4771 + "serde_json", 4772 + "tauri-utils", 4773 + "thiserror 2.0.17", 4774 + "url", 4775 + "webkit2gtk", 4776 + "webview2-com", 4777 + "windows", 4778 + ] 4779 + 4780 + [[package]] 4781 + name = "tauri-runtime-wry" 4782 + version = "2.9.3" 4783 + source = "registry+https://github.com/rust-lang/crates.io-index" 4784 + checksum = "187a3f26f681bdf028f796ccf57cf478c1ee422c50128e5a0a6ebeb3f5910065" 4785 + dependencies = [ 4786 + "gtk", 4787 + "http", 4788 + "jni", 4789 + "log", 4790 + "objc2", 4791 + "objc2-app-kit", 4792 + "objc2-foundation", 4793 + "once_cell", 4794 + "percent-encoding", 4795 + "raw-window-handle", 4796 + "softbuffer", 4797 + "tao", 4798 + "tauri-runtime", 4799 + "tauri-utils", 4800 + "url", 4801 + "webkit2gtk", 4802 + "webview2-com", 4803 + "windows", 4804 + "wry", 4805 + ] 4806 + 4807 + [[package]] 4808 + name = "tauri-utils" 4809 + version = "2.8.1" 4810 + source = "registry+https://github.com/rust-lang/crates.io-index" 4811 + checksum = "76a423c51176eb3616ee9b516a9fa67fed5f0e78baaba680e44eb5dd2cc37490" 4812 + dependencies = [ 4813 + "anyhow", 4814 + "brotli", 4815 + "cargo_metadata", 4816 + "ctor", 4817 + "dunce", 4818 + "glob", 4819 + "html5ever", 4820 + "http", 4821 + "infer", 4822 + "json-patch", 4823 + "kuchikiki", 4824 + "log", 4825 + "memchr", 4826 + "phf 0.11.3", 4827 + "proc-macro2", 4828 + "quote", 4829 + "regex", 4830 + "schemars 0.8.22", 4831 + "semver", 4832 + "serde", 4833 + "serde-untagged", 4834 + "serde_json", 4835 + "serde_with", 4836 + "swift-rs", 4837 + "thiserror 2.0.17", 4838 + "toml 0.9.10+spec-1.1.0", 4839 + "url", 4840 + "urlpattern", 4841 + "uuid", 4842 + "walkdir", 4843 + ] 4844 + 4845 + [[package]] 4846 + name = "tauri-winres" 4847 + version = "0.3.5" 4848 + source = "registry+https://github.com/rust-lang/crates.io-index" 4849 + checksum = "1087b111fe2b005e42dbdc1990fc18593234238d47453b0c99b7de1c9ab2c1e0" 4850 + dependencies = [ 4851 + "dunce", 4852 + "embed-resource", 4853 + "toml 0.9.10+spec-1.1.0", 4854 + ] 4855 + 4856 + [[package]] 4857 + name = "tempfile" 4858 + version = "3.23.0" 4859 + source = "registry+https://github.com/rust-lang/crates.io-index" 4860 + checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" 4861 + dependencies = [ 4862 + "fastrand", 4863 + "getrandom 0.3.4", 4864 + "once_cell", 4865 + "rustix", 4866 + "windows-sys 0.61.2", 4867 + ] 4868 + 4869 + [[package]] 4870 + name = "tendril" 4871 + version = "0.4.3" 4872 + source = "registry+https://github.com/rust-lang/crates.io-index" 4873 + checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" 4874 + dependencies = [ 4875 + "futf", 4876 + "mac", 4877 + "utf-8", 4878 + ] 4879 + 4880 + [[package]] 4881 + name = "thiserror" 4882 + version = "1.0.69" 4883 + source = "registry+https://github.com/rust-lang/crates.io-index" 4884 + checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" 4885 + dependencies = [ 4886 + "thiserror-impl 1.0.69", 4887 + ] 4888 + 4889 + [[package]] 4890 + name = "thiserror" 4891 + version = "2.0.17" 4892 + source = "registry+https://github.com/rust-lang/crates.io-index" 4893 + checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" 4894 + dependencies = [ 4895 + "thiserror-impl 2.0.17", 4896 + ] 4897 + 4898 + [[package]] 4899 + name = "thiserror-impl" 4900 + version = "1.0.69" 4901 + source = "registry+https://github.com/rust-lang/crates.io-index" 4902 + checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" 4903 + dependencies = [ 4904 + "proc-macro2", 4905 + "quote", 4906 + "syn 2.0.111", 4907 + ] 4908 + 4909 + [[package]] 4910 + name = "thiserror-impl" 4911 + version = "2.0.17" 4912 + source = "registry+https://github.com/rust-lang/crates.io-index" 4913 + checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" 4914 + dependencies = [ 4915 + "proc-macro2", 4916 + "quote", 4917 + "syn 2.0.111", 4918 + ] 4919 + 4920 + [[package]] 4921 + name = "time" 4922 + version = "0.3.44" 4923 + source = "registry+https://github.com/rust-lang/crates.io-index" 4924 + checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" 4925 + dependencies = [ 4926 + "deranged", 4927 + "itoa", 4928 + "num-conv", 4929 + "powerfmt", 4930 + "serde", 4931 + "time-core", 4932 + "time-macros", 4933 + ] 4934 + 4935 + [[package]] 4936 + name = "time-core" 4937 + version = "0.1.6" 4938 + source = "registry+https://github.com/rust-lang/crates.io-index" 4939 + checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" 4940 + 4941 + [[package]] 4942 + name = "time-macros" 4943 + version = "0.2.24" 4944 + source = "registry+https://github.com/rust-lang/crates.io-index" 4945 + checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" 4946 + dependencies = [ 4947 + "num-conv", 4948 + "time-core", 4949 + ] 4950 + 4951 + [[package]] 4952 + name = "tinystr" 4953 + version = "0.8.2" 4954 + source = "registry+https://github.com/rust-lang/crates.io-index" 4955 + checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" 4956 + dependencies = [ 4957 + "displaydoc", 4958 + "zerovec", 4959 + ] 4960 + 4961 + [[package]] 4962 + name = "tinyvec" 4963 + version = "1.10.0" 4964 + source = "registry+https://github.com/rust-lang/crates.io-index" 4965 + checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" 4966 + dependencies = [ 4967 + "tinyvec_macros", 4968 + ] 4969 + 4970 + [[package]] 4971 + name = "tinyvec_macros" 4972 + version = "0.1.1" 4973 + source = "registry+https://github.com/rust-lang/crates.io-index" 4974 + checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 4975 + 4976 + [[package]] 4977 + name = "tokio" 4978 + version = "1.48.0" 4979 + source = "registry+https://github.com/rust-lang/crates.io-index" 4980 + checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408" 4981 + dependencies = [ 4982 + "bytes", 4983 + "libc", 4984 + "mio", 4985 + "pin-project-lite", 4986 + "socket2", 4987 + "windows-sys 0.61.2", 4988 + ] 4989 + 4990 + [[package]] 4991 + name = "tokio-util" 4992 + version = "0.7.17" 4993 + source = "registry+https://github.com/rust-lang/crates.io-index" 4994 + checksum = "2efa149fe76073d6e8fd97ef4f4eca7b67f599660115591483572e406e165594" 4995 + dependencies = [ 4996 + "bytes", 4997 + "futures-core", 4998 + "futures-sink", 4999 + "pin-project-lite", 5000 + "tokio", 5001 + ] 5002 + 5003 + [[package]] 5004 + name = "toml" 5005 + version = "0.8.2" 5006 + source = "registry+https://github.com/rust-lang/crates.io-index" 5007 + checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" 5008 + dependencies = [ 5009 + "serde", 5010 + "serde_spanned 0.6.9", 5011 + "toml_datetime 0.6.3", 5012 + "toml_edit 0.20.2", 5013 + ] 5014 + 5015 + [[package]] 5016 + name = "toml" 5017 + version = "0.9.10+spec-1.1.0" 5018 + source = "registry+https://github.com/rust-lang/crates.io-index" 5019 + checksum = "0825052159284a1a8b4d6c0c86cbc801f2da5afd2b225fa548c72f2e74002f48" 5020 + dependencies = [ 5021 + "indexmap 2.12.1", 5022 + "serde_core", 5023 + "serde_spanned 1.0.4", 5024 + "toml_datetime 0.7.5+spec-1.1.0", 5025 + "toml_parser", 5026 + "toml_writer", 5027 + "winnow 0.7.14", 5028 + ] 5029 + 5030 + [[package]] 5031 + name = "toml_datetime" 5032 + version = "0.6.3" 5033 + source = "registry+https://github.com/rust-lang/crates.io-index" 5034 + checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" 5035 + dependencies = [ 5036 + "serde", 5037 + ] 5038 + 5039 + [[package]] 5040 + name = "toml_datetime" 5041 + version = "0.7.5+spec-1.1.0" 5042 + source = "registry+https://github.com/rust-lang/crates.io-index" 5043 + checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" 5044 + dependencies = [ 5045 + "serde_core", 5046 + ] 5047 + 5048 + [[package]] 5049 + name = "toml_edit" 5050 + version = "0.19.15" 5051 + source = "registry+https://github.com/rust-lang/crates.io-index" 5052 + checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" 5053 + dependencies = [ 5054 + "indexmap 2.12.1", 5055 + "toml_datetime 0.6.3", 5056 + "winnow 0.5.40", 5057 + ] 5058 + 5059 + [[package]] 5060 + name = "toml_edit" 5061 + version = "0.20.2" 5062 + source = "registry+https://github.com/rust-lang/crates.io-index" 5063 + checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" 5064 + dependencies = [ 5065 + "indexmap 2.12.1", 5066 + "serde", 5067 + "serde_spanned 0.6.9", 5068 + "toml_datetime 0.6.3", 5069 + "winnow 0.5.40", 5070 + ] 5071 + 5072 + [[package]] 5073 + name = "toml_edit" 5074 + version = "0.23.10+spec-1.0.0" 5075 + source = "registry+https://github.com/rust-lang/crates.io-index" 5076 + checksum = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269" 5077 + dependencies = [ 5078 + "indexmap 2.12.1", 5079 + "serde_core", 5080 + "serde_spanned 1.0.4", 5081 + "toml_datetime 0.7.5+spec-1.1.0", 5082 + "toml_parser", 5083 + "toml_writer", 5084 + "winnow 0.7.14", 5085 + ] 5086 + 5087 + [[package]] 5088 + name = "toml_parser" 5089 + version = "1.0.6+spec-1.1.0" 5090 + source = "registry+https://github.com/rust-lang/crates.io-index" 5091 + checksum = "a3198b4b0a8e11f09dd03e133c0280504d0801269e9afa46362ffde1cbeebf44" 5092 + dependencies = [ 5093 + "winnow 0.7.14", 5094 + ] 5095 + 5096 + [[package]] 5097 + name = "toml_writer" 5098 + version = "1.0.6+spec-1.1.0" 5099 + source = "registry+https://github.com/rust-lang/crates.io-index" 5100 + checksum = "ab16f14aed21ee8bfd8ec22513f7287cd4a91aa92e44edfe2c17ddd004e92607" 5101 + 5102 + [[package]] 5103 + name = "tower" 5104 + version = "0.5.2" 5105 + source = "registry+https://github.com/rust-lang/crates.io-index" 5106 + checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" 5107 + dependencies = [ 5108 + "futures-core", 5109 + "futures-util", 5110 + "pin-project-lite", 5111 + "sync_wrapper", 5112 + "tokio", 5113 + "tower-layer", 5114 + "tower-service", 5115 + ] 5116 + 5117 + [[package]] 5118 + name = "tower-http" 5119 + version = "0.6.8" 5120 + source = "registry+https://github.com/rust-lang/crates.io-index" 5121 + checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" 5122 + dependencies = [ 5123 + "bitflags 2.10.0", 5124 + "bytes", 5125 + "futures-util", 5126 + "http", 5127 + "http-body", 5128 + "iri-string", 5129 + "pin-project-lite", 5130 + "tower", 5131 + "tower-layer", 5132 + "tower-service", 5133 + ] 5134 + 5135 + [[package]] 5136 + name = "tower-layer" 5137 + version = "0.3.3" 5138 + source = "registry+https://github.com/rust-lang/crates.io-index" 5139 + checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" 5140 + 5141 + [[package]] 5142 + name = "tower-service" 5143 + version = "0.3.3" 5144 + source = "registry+https://github.com/rust-lang/crates.io-index" 5145 + checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" 5146 + 5147 + [[package]] 5148 + name = "tracing" 5149 + version = "0.1.44" 5150 + source = "registry+https://github.com/rust-lang/crates.io-index" 5151 + checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" 5152 + dependencies = [ 5153 + "pin-project-lite", 5154 + "tracing-attributes", 5155 + "tracing-core", 5156 + ] 5157 + 5158 + [[package]] 5159 + name = "tracing-attributes" 5160 + version = "0.1.31" 5161 + source = "registry+https://github.com/rust-lang/crates.io-index" 5162 + checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" 5163 + dependencies = [ 5164 + "proc-macro2", 5165 + "quote", 5166 + "syn 2.0.111", 5167 + ] 5168 + 5169 + [[package]] 5170 + name = "tracing-core" 5171 + version = "0.1.36" 5172 + source = "registry+https://github.com/rust-lang/crates.io-index" 5173 + checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" 5174 + dependencies = [ 5175 + "once_cell", 5176 + ] 5177 + 5178 + [[package]] 5179 + name = "tray-icon" 5180 + version = "0.21.2" 5181 + source = "registry+https://github.com/rust-lang/crates.io-index" 5182 + checksum = "e3d5572781bee8e3f994d7467084e1b1fd7a93ce66bd480f8156ba89dee55a2b" 5183 + dependencies = [ 5184 + "crossbeam-channel", 5185 + "dirs", 5186 + "libappindicator", 5187 + "muda", 5188 + "objc2", 5189 + "objc2-app-kit", 5190 + "objc2-core-foundation", 5191 + "objc2-core-graphics", 5192 + "objc2-foundation", 5193 + "once_cell", 5194 + "png", 5195 + "serde", 5196 + "thiserror 2.0.17", 5197 + "windows-sys 0.60.2", 5198 + ] 5199 + 5200 + [[package]] 5201 + name = "try-lock" 5202 + version = "0.2.5" 5203 + source = "registry+https://github.com/rust-lang/crates.io-index" 5204 + checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" 5205 + 5206 + [[package]] 5207 + name = "typeid" 5208 + version = "1.0.3" 5209 + source = "registry+https://github.com/rust-lang/crates.io-index" 5210 + checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" 5211 + 5212 + [[package]] 5213 + name = "typenum" 5214 + version = "1.19.0" 5215 + source = "registry+https://github.com/rust-lang/crates.io-index" 5216 + checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" 5217 + 5218 + [[package]] 5219 + name = "ucd-trie" 5220 + version = "0.1.7" 5221 + source = "registry+https://github.com/rust-lang/crates.io-index" 5222 + checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" 5223 + 5224 + [[package]] 5225 + name = "uluru" 5226 + version = "3.1.0" 5227 + source = "registry+https://github.com/rust-lang/crates.io-index" 5228 + checksum = "7c8a2469e56e6e5095c82ccd3afb98dad95f7af7929aab6d8ba8d6e0f73657da" 5229 + dependencies = [ 5230 + "arrayvec", 5231 + ] 5232 + 5233 + [[package]] 5234 + name = "unic-char-property" 5235 + version = "0.9.0" 5236 + source = "registry+https://github.com/rust-lang/crates.io-index" 5237 + checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221" 5238 + dependencies = [ 5239 + "unic-char-range", 5240 + ] 5241 + 5242 + [[package]] 5243 + name = "unic-char-range" 5244 + version = "0.9.0" 5245 + source = "registry+https://github.com/rust-lang/crates.io-index" 5246 + checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc" 5247 + 5248 + [[package]] 5249 + name = "unic-common" 5250 + version = "0.9.0" 5251 + source = "registry+https://github.com/rust-lang/crates.io-index" 5252 + checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc" 5253 + 5254 + [[package]] 5255 + name = "unic-ucd-ident" 5256 + version = "0.9.0" 5257 + source = "registry+https://github.com/rust-lang/crates.io-index" 5258 + checksum = "e230a37c0381caa9219d67cf063aa3a375ffed5bf541a452db16e744bdab6987" 5259 + dependencies = [ 5260 + "unic-char-property", 5261 + "unic-char-range", 5262 + "unic-ucd-version", 5263 + ] 5264 + 5265 + [[package]] 5266 + name = "unic-ucd-version" 5267 + version = "0.9.0" 5268 + source = "registry+https://github.com/rust-lang/crates.io-index" 5269 + checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4" 5270 + dependencies = [ 5271 + "unic-common", 5272 + ] 5273 + 5274 + [[package]] 5275 + name = "unicode-bom" 5276 + version = "2.0.3" 5277 + source = "registry+https://github.com/rust-lang/crates.io-index" 5278 + checksum = "7eec5d1121208364f6793f7d2e222bf75a915c19557537745b195b253dd64217" 5279 + 5280 + [[package]] 5281 + name = "unicode-ident" 5282 + version = "1.0.22" 5283 + source = "registry+https://github.com/rust-lang/crates.io-index" 5284 + checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" 5285 + 5286 + [[package]] 5287 + name = "unicode-normalization" 5288 + version = "0.1.25" 5289 + source = "registry+https://github.com/rust-lang/crates.io-index" 5290 + checksum = "5fd4f6878c9cb28d874b009da9e8d183b5abc80117c40bbd187a1fde336be6e8" 5291 + dependencies = [ 5292 + "tinyvec", 5293 + ] 5294 + 5295 + [[package]] 5296 + name = "unicode-segmentation" 5297 + version = "1.12.0" 5298 + source = "registry+https://github.com/rust-lang/crates.io-index" 5299 + checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" 5300 + 5301 + [[package]] 5302 + name = "url" 5303 + version = "2.5.7" 5304 + source = "registry+https://github.com/rust-lang/crates.io-index" 5305 + checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" 5306 + dependencies = [ 5307 + "form_urlencoded", 5308 + "idna", 5309 + "percent-encoding", 5310 + "serde", 5311 + ] 5312 + 5313 + [[package]] 5314 + name = "urlpattern" 5315 + version = "0.3.0" 5316 + source = "registry+https://github.com/rust-lang/crates.io-index" 5317 + checksum = "70acd30e3aa1450bc2eece896ce2ad0d178e9c079493819301573dae3c37ba6d" 5318 + dependencies = [ 5319 + "regex", 5320 + "serde", 5321 + "unic-ucd-ident", 5322 + "url", 5323 + ] 5324 + 5325 + [[package]] 5326 + name = "utf-8" 5327 + version = "0.7.6" 5328 + source = "registry+https://github.com/rust-lang/crates.io-index" 5329 + checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" 5330 + 5331 + [[package]] 5332 + name = "utf8_iter" 5333 + version = "1.0.4" 5334 + source = "registry+https://github.com/rust-lang/crates.io-index" 5335 + checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" 5336 + 5337 + [[package]] 5338 + name = "uuid" 5339 + version = "1.19.0" 5340 + source = "registry+https://github.com/rust-lang/crates.io-index" 5341 + checksum = "e2e054861b4bd027cd373e18e8d8d8e6548085000e41290d95ce0c373a654b4a" 5342 + dependencies = [ 5343 + "getrandom 0.3.4", 5344 + "js-sys", 5345 + "serde_core", 5346 + "wasm-bindgen", 5347 + ] 5348 + 5349 + [[package]] 5350 + name = "version-compare" 5351 + version = "0.2.1" 5352 + source = "registry+https://github.com/rust-lang/crates.io-index" 5353 + checksum = "03c2856837ef78f57382f06b2b8563a2f512f7185d732608fd9176cb3b8edf0e" 5354 + 5355 + [[package]] 5356 + name = "version_check" 5357 + version = "0.9.5" 5358 + source = "registry+https://github.com/rust-lang/crates.io-index" 5359 + checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" 5360 + 5361 + [[package]] 5362 + name = "vswhom" 5363 + version = "0.1.0" 5364 + source = "registry+https://github.com/rust-lang/crates.io-index" 5365 + checksum = "be979b7f07507105799e854203b470ff7c78a1639e330a58f183b5fea574608b" 5366 + dependencies = [ 5367 + "libc", 5368 + "vswhom-sys", 5369 + ] 5370 + 5371 + [[package]] 5372 + name = "vswhom-sys" 5373 + version = "0.1.3" 5374 + source = "registry+https://github.com/rust-lang/crates.io-index" 5375 + checksum = "fb067e4cbd1ff067d1df46c9194b5de0e98efd2810bbc95c5d5e5f25a3231150" 5376 + dependencies = [ 5377 + "cc", 5378 + "libc", 5379 + ] 5380 + 5381 + [[package]] 5382 + name = "walkdir" 5383 + version = "2.5.0" 5384 + source = "registry+https://github.com/rust-lang/crates.io-index" 5385 + checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" 5386 + dependencies = [ 5387 + "same-file", 5388 + "winapi-util", 5389 + ] 5390 + 5391 + [[package]] 5392 + name = "want" 5393 + version = "0.3.1" 5394 + source = "registry+https://github.com/rust-lang/crates.io-index" 5395 + checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" 5396 + dependencies = [ 5397 + "try-lock", 5398 + ] 5399 + 5400 + [[package]] 5401 + name = "wasi" 5402 + version = "0.9.0+wasi-snapshot-preview1" 5403 + source = "registry+https://github.com/rust-lang/crates.io-index" 5404 + checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" 5405 + 5406 + [[package]] 5407 + name = "wasi" 5408 + version = "0.11.1+wasi-snapshot-preview1" 5409 + source = "registry+https://github.com/rust-lang/crates.io-index" 5410 + checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" 5411 + 5412 + [[package]] 5413 + name = "wasip2" 5414 + version = "1.0.1+wasi-0.2.4" 5415 + source = "registry+https://github.com/rust-lang/crates.io-index" 5416 + checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" 5417 + dependencies = [ 5418 + "wit-bindgen", 5419 + ] 5420 + 5421 + [[package]] 5422 + name = "wasm-bindgen" 5423 + version = "0.2.106" 5424 + source = "registry+https://github.com/rust-lang/crates.io-index" 5425 + checksum = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd" 5426 + dependencies = [ 5427 + "cfg-if", 5428 + "once_cell", 5429 + "rustversion", 5430 + "wasm-bindgen-macro", 5431 + "wasm-bindgen-shared", 5432 + ] 5433 + 5434 + [[package]] 5435 + name = "wasm-bindgen-futures" 5436 + version = "0.4.56" 5437 + source = "registry+https://github.com/rust-lang/crates.io-index" 5438 + checksum = "836d9622d604feee9e5de25ac10e3ea5f2d65b41eac0d9ce72eb5deae707ce7c" 5439 + dependencies = [ 5440 + "cfg-if", 5441 + "js-sys", 5442 + "once_cell", 5443 + "wasm-bindgen", 5444 + "web-sys", 5445 + ] 5446 + 5447 + [[package]] 5448 + name = "wasm-bindgen-macro" 5449 + version = "0.2.106" 5450 + source = "registry+https://github.com/rust-lang/crates.io-index" 5451 + checksum = "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3" 5452 + dependencies = [ 5453 + "quote", 5454 + "wasm-bindgen-macro-support", 5455 + ] 5456 + 5457 + [[package]] 5458 + name = "wasm-bindgen-macro-support" 5459 + version = "0.2.106" 5460 + source = "registry+https://github.com/rust-lang/crates.io-index" 5461 + checksum = "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40" 5462 + dependencies = [ 5463 + "bumpalo", 5464 + "proc-macro2", 5465 + "quote", 5466 + "syn 2.0.111", 5467 + "wasm-bindgen-shared", 5468 + ] 5469 + 5470 + [[package]] 5471 + name = "wasm-bindgen-shared" 5472 + version = "0.2.106" 5473 + source = "registry+https://github.com/rust-lang/crates.io-index" 5474 + checksum = "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4" 5475 + dependencies = [ 5476 + "unicode-ident", 5477 + ] 5478 + 5479 + [[package]] 5480 + name = "wasm-streams" 5481 + version = "0.4.2" 5482 + source = "registry+https://github.com/rust-lang/crates.io-index" 5483 + checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" 5484 + dependencies = [ 5485 + "futures-util", 5486 + "js-sys", 5487 + "wasm-bindgen", 5488 + "wasm-bindgen-futures", 5489 + "web-sys", 5490 + ] 5491 + 5492 + [[package]] 5493 + name = "web-sys" 5494 + version = "0.3.83" 5495 + source = "registry+https://github.com/rust-lang/crates.io-index" 5496 + checksum = "9b32828d774c412041098d182a8b38b16ea816958e07cf40eec2bc080ae137ac" 5497 + dependencies = [ 5498 + "js-sys", 5499 + "wasm-bindgen", 5500 + ] 5501 + 5502 + [[package]] 5503 + name = "webkit2gtk" 5504 + version = "2.0.1" 5505 + source = "registry+https://github.com/rust-lang/crates.io-index" 5506 + checksum = "76b1bc1e54c581da1e9f179d0b38512ba358fb1af2d634a1affe42e37172361a" 5507 + dependencies = [ 5508 + "bitflags 1.3.2", 5509 + "cairo-rs", 5510 + "gdk", 5511 + "gdk-sys", 5512 + "gio", 5513 + "gio-sys", 5514 + "glib", 5515 + "glib-sys", 5516 + "gobject-sys", 5517 + "gtk", 5518 + "gtk-sys", 5519 + "javascriptcore-rs", 5520 + "libc", 5521 + "once_cell", 5522 + "soup3", 5523 + "webkit2gtk-sys", 5524 + ] 5525 + 5526 + [[package]] 5527 + name = "webkit2gtk-sys" 5528 + version = "2.0.1" 5529 + source = "registry+https://github.com/rust-lang/crates.io-index" 5530 + checksum = "62daa38afc514d1f8f12b8693d30d5993ff77ced33ce30cd04deebc267a6d57c" 5531 + dependencies = [ 5532 + "bitflags 1.3.2", 5533 + "cairo-sys-rs", 5534 + "gdk-sys", 5535 + "gio-sys", 5536 + "glib-sys", 5537 + "gobject-sys", 5538 + "gtk-sys", 5539 + "javascriptcore-rs-sys", 5540 + "libc", 5541 + "pkg-config", 5542 + "soup3-sys", 5543 + "system-deps", 5544 + ] 5545 + 5546 + [[package]] 5547 + name = "webview2-com" 5548 + version = "0.38.0" 5549 + source = "registry+https://github.com/rust-lang/crates.io-index" 5550 + checksum = "d4ba622a989277ef3886dd5afb3e280e3dd6d974b766118950a08f8f678ad6a4" 5551 + dependencies = [ 5552 + "webview2-com-macros", 5553 + "webview2-com-sys", 5554 + "windows", 5555 + "windows-core 0.61.2", 5556 + "windows-implement", 5557 + "windows-interface", 5558 + ] 5559 + 5560 + [[package]] 5561 + name = "webview2-com-macros" 5562 + version = "0.8.0" 5563 + source = "registry+https://github.com/rust-lang/crates.io-index" 5564 + checksum = "1d228f15bba3b9d56dde8bddbee66fa24545bd17b48d5128ccf4a8742b18e431" 5565 + dependencies = [ 5566 + "proc-macro2", 5567 + "quote", 5568 + "syn 2.0.111", 5569 + ] 5570 + 5571 + [[package]] 5572 + name = "webview2-com-sys" 5573 + version = "0.38.0" 5574 + source = "registry+https://github.com/rust-lang/crates.io-index" 5575 + checksum = "36695906a1b53a3bf5c4289621efedac12b73eeb0b89e7e1a89b517302d5d75c" 5576 + dependencies = [ 5577 + "thiserror 2.0.17", 5578 + "windows", 5579 + "windows-core 0.61.2", 5580 + ] 5581 + 5582 + [[package]] 5583 + name = "winapi" 5584 + version = "0.3.9" 5585 + source = "registry+https://github.com/rust-lang/crates.io-index" 5586 + checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 5587 + dependencies = [ 5588 + "winapi-i686-pc-windows-gnu", 5589 + "winapi-x86_64-pc-windows-gnu", 5590 + ] 5591 + 5592 + [[package]] 5593 + name = "winapi-i686-pc-windows-gnu" 5594 + version = "0.4.0" 5595 + source = "registry+https://github.com/rust-lang/crates.io-index" 5596 + checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 5597 + 5598 + [[package]] 5599 + name = "winapi-util" 5600 + version = "0.1.11" 5601 + source = "registry+https://github.com/rust-lang/crates.io-index" 5602 + checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" 5603 + dependencies = [ 5604 + "windows-sys 0.61.2", 5605 + ] 5606 + 5607 + [[package]] 5608 + name = "winapi-x86_64-pc-windows-gnu" 5609 + version = "0.4.0" 5610 + source = "registry+https://github.com/rust-lang/crates.io-index" 5611 + checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 5612 + 5613 + [[package]] 5614 + name = "window-vibrancy" 5615 + version = "0.6.0" 5616 + source = "registry+https://github.com/rust-lang/crates.io-index" 5617 + checksum = "d9bec5a31f3f9362f2258fd0e9c9dd61a9ca432e7306cc78c444258f0dce9a9c" 5618 + dependencies = [ 5619 + "objc2", 5620 + "objc2-app-kit", 5621 + "objc2-core-foundation", 5622 + "objc2-foundation", 5623 + "raw-window-handle", 5624 + "windows-sys 0.59.0", 5625 + "windows-version", 5626 + ] 5627 + 5628 + [[package]] 5629 + name = "windows" 5630 + version = "0.61.3" 5631 + source = "registry+https://github.com/rust-lang/crates.io-index" 5632 + checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" 5633 + dependencies = [ 5634 + "windows-collections", 5635 + "windows-core 0.61.2", 5636 + "windows-future", 5637 + "windows-link 0.1.3", 5638 + "windows-numerics", 5639 + ] 5640 + 5641 + [[package]] 5642 + name = "windows-collections" 5643 + version = "0.2.0" 5644 + source = "registry+https://github.com/rust-lang/crates.io-index" 5645 + checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" 5646 + dependencies = [ 5647 + "windows-core 0.61.2", 5648 + ] 5649 + 5650 + [[package]] 5651 + name = "windows-core" 5652 + version = "0.61.2" 5653 + source = "registry+https://github.com/rust-lang/crates.io-index" 5654 + checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" 5655 + dependencies = [ 5656 + "windows-implement", 5657 + "windows-interface", 5658 + "windows-link 0.1.3", 5659 + "windows-result 0.3.4", 5660 + "windows-strings 0.4.2", 5661 + ] 5662 + 5663 + [[package]] 5664 + name = "windows-core" 5665 + version = "0.62.2" 5666 + source = "registry+https://github.com/rust-lang/crates.io-index" 5667 + checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" 5668 + dependencies = [ 5669 + "windows-implement", 5670 + "windows-interface", 5671 + "windows-link 0.2.1", 5672 + "windows-result 0.4.1", 5673 + "windows-strings 0.5.1", 5674 + ] 5675 + 5676 + [[package]] 5677 + name = "windows-future" 5678 + version = "0.2.1" 5679 + source = "registry+https://github.com/rust-lang/crates.io-index" 5680 + checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" 5681 + dependencies = [ 5682 + "windows-core 0.61.2", 5683 + "windows-link 0.1.3", 5684 + "windows-threading", 5685 + ] 5686 + 5687 + [[package]] 5688 + name = "windows-implement" 5689 + version = "0.60.2" 5690 + source = "registry+https://github.com/rust-lang/crates.io-index" 5691 + checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" 5692 + dependencies = [ 5693 + "proc-macro2", 5694 + "quote", 5695 + "syn 2.0.111", 5696 + ] 5697 + 5698 + [[package]] 5699 + name = "windows-interface" 5700 + version = "0.59.3" 5701 + source = "registry+https://github.com/rust-lang/crates.io-index" 5702 + checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" 5703 + dependencies = [ 5704 + "proc-macro2", 5705 + "quote", 5706 + "syn 2.0.111", 5707 + ] 5708 + 5709 + [[package]] 5710 + name = "windows-link" 5711 + version = "0.1.3" 5712 + source = "registry+https://github.com/rust-lang/crates.io-index" 5713 + checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" 5714 + 5715 + [[package]] 5716 + name = "windows-link" 5717 + version = "0.2.1" 5718 + source = "registry+https://github.com/rust-lang/crates.io-index" 5719 + checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" 5720 + 5721 + [[package]] 5722 + name = "windows-numerics" 5723 + version = "0.2.0" 5724 + source = "registry+https://github.com/rust-lang/crates.io-index" 5725 + checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" 5726 + dependencies = [ 5727 + "windows-core 0.61.2", 5728 + "windows-link 0.1.3", 5729 + ] 5730 + 5731 + [[package]] 5732 + name = "windows-result" 5733 + version = "0.3.4" 5734 + source = "registry+https://github.com/rust-lang/crates.io-index" 5735 + checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" 5736 + dependencies = [ 5737 + "windows-link 0.1.3", 5738 + ] 5739 + 5740 + [[package]] 5741 + name = "windows-result" 5742 + version = "0.4.1" 5743 + source = "registry+https://github.com/rust-lang/crates.io-index" 5744 + checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" 5745 + dependencies = [ 5746 + "windows-link 0.2.1", 5747 + ] 5748 + 5749 + [[package]] 5750 + name = "windows-strings" 5751 + version = "0.4.2" 5752 + source = "registry+https://github.com/rust-lang/crates.io-index" 5753 + checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" 5754 + dependencies = [ 5755 + "windows-link 0.1.3", 5756 + ] 5757 + 5758 + [[package]] 5759 + name = "windows-strings" 5760 + version = "0.5.1" 5761 + source = "registry+https://github.com/rust-lang/crates.io-index" 5762 + checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" 5763 + dependencies = [ 5764 + "windows-link 0.2.1", 5765 + ] 5766 + 5767 + [[package]] 5768 + name = "windows-sys" 5769 + version = "0.45.0" 5770 + source = "registry+https://github.com/rust-lang/crates.io-index" 5771 + checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" 5772 + dependencies = [ 5773 + "windows-targets 0.42.2", 5774 + ] 5775 + 5776 + [[package]] 5777 + name = "windows-sys" 5778 + version = "0.59.0" 5779 + source = "registry+https://github.com/rust-lang/crates.io-index" 5780 + checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" 5781 + dependencies = [ 5782 + "windows-targets 0.52.6", 5783 + ] 5784 + 5785 + [[package]] 5786 + name = "windows-sys" 5787 + version = "0.60.2" 5788 + source = "registry+https://github.com/rust-lang/crates.io-index" 5789 + checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" 5790 + dependencies = [ 5791 + "windows-targets 0.53.5", 5792 + ] 5793 + 5794 + [[package]] 5795 + name = "windows-sys" 5796 + version = "0.61.2" 5797 + source = "registry+https://github.com/rust-lang/crates.io-index" 5798 + checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" 5799 + dependencies = [ 5800 + "windows-link 0.2.1", 5801 + ] 5802 + 5803 + [[package]] 5804 + name = "windows-targets" 5805 + version = "0.42.2" 5806 + source = "registry+https://github.com/rust-lang/crates.io-index" 5807 + checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" 5808 + dependencies = [ 5809 + "windows_aarch64_gnullvm 0.42.2", 5810 + "windows_aarch64_msvc 0.42.2", 5811 + "windows_i686_gnu 0.42.2", 5812 + "windows_i686_msvc 0.42.2", 5813 + "windows_x86_64_gnu 0.42.2", 5814 + "windows_x86_64_gnullvm 0.42.2", 5815 + "windows_x86_64_msvc 0.42.2", 5816 + ] 5817 + 5818 + [[package]] 5819 + name = "windows-targets" 5820 + version = "0.52.6" 5821 + source = "registry+https://github.com/rust-lang/crates.io-index" 5822 + checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 5823 + dependencies = [ 5824 + "windows_aarch64_gnullvm 0.52.6", 5825 + "windows_aarch64_msvc 0.52.6", 5826 + "windows_i686_gnu 0.52.6", 5827 + "windows_i686_gnullvm 0.52.6", 5828 + "windows_i686_msvc 0.52.6", 5829 + "windows_x86_64_gnu 0.52.6", 5830 + "windows_x86_64_gnullvm 0.52.6", 5831 + "windows_x86_64_msvc 0.52.6", 5832 + ] 5833 + 5834 + [[package]] 5835 + name = "windows-targets" 5836 + version = "0.53.5" 5837 + source = "registry+https://github.com/rust-lang/crates.io-index" 5838 + checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" 5839 + dependencies = [ 5840 + "windows-link 0.2.1", 5841 + "windows_aarch64_gnullvm 0.53.1", 5842 + "windows_aarch64_msvc 0.53.1", 5843 + "windows_i686_gnu 0.53.1", 5844 + "windows_i686_gnullvm 0.53.1", 5845 + "windows_i686_msvc 0.53.1", 5846 + "windows_x86_64_gnu 0.53.1", 5847 + "windows_x86_64_gnullvm 0.53.1", 5848 + "windows_x86_64_msvc 0.53.1", 5849 + ] 5850 + 5851 + [[package]] 5852 + name = "windows-threading" 5853 + version = "0.1.0" 5854 + source = "registry+https://github.com/rust-lang/crates.io-index" 5855 + checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" 5856 + dependencies = [ 5857 + "windows-link 0.1.3", 5858 + ] 5859 + 5860 + [[package]] 5861 + name = "windows-version" 5862 + version = "0.1.7" 5863 + source = "registry+https://github.com/rust-lang/crates.io-index" 5864 + checksum = "e4060a1da109b9d0326b7262c8e12c84df67cc0dbc9e33cf49e01ccc2eb63631" 5865 + dependencies = [ 5866 + "windows-link 0.2.1", 5867 + ] 5868 + 5869 + [[package]] 5870 + name = "windows_aarch64_gnullvm" 5871 + version = "0.42.2" 5872 + source = "registry+https://github.com/rust-lang/crates.io-index" 5873 + checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" 5874 + 5875 + [[package]] 5876 + name = "windows_aarch64_gnullvm" 5877 + version = "0.52.6" 5878 + source = "registry+https://github.com/rust-lang/crates.io-index" 5879 + checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 5880 + 5881 + [[package]] 5882 + name = "windows_aarch64_gnullvm" 5883 + version = "0.53.1" 5884 + source = "registry+https://github.com/rust-lang/crates.io-index" 5885 + checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" 5886 + 5887 + [[package]] 5888 + name = "windows_aarch64_msvc" 5889 + version = "0.42.2" 5890 + source = "registry+https://github.com/rust-lang/crates.io-index" 5891 + checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" 5892 + 5893 + [[package]] 5894 + name = "windows_aarch64_msvc" 5895 + version = "0.52.6" 5896 + source = "registry+https://github.com/rust-lang/crates.io-index" 5897 + checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 5898 + 5899 + [[package]] 5900 + name = "windows_aarch64_msvc" 5901 + version = "0.53.1" 5902 + source = "registry+https://github.com/rust-lang/crates.io-index" 5903 + checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" 5904 + 5905 + [[package]] 5906 + name = "windows_i686_gnu" 5907 + version = "0.42.2" 5908 + source = "registry+https://github.com/rust-lang/crates.io-index" 5909 + checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" 5910 + 5911 + [[package]] 5912 + name = "windows_i686_gnu" 5913 + version = "0.52.6" 5914 + source = "registry+https://github.com/rust-lang/crates.io-index" 5915 + checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 5916 + 5917 + [[package]] 5918 + name = "windows_i686_gnu" 5919 + version = "0.53.1" 5920 + source = "registry+https://github.com/rust-lang/crates.io-index" 5921 + checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" 5922 + 5923 + [[package]] 5924 + name = "windows_i686_gnullvm" 5925 + version = "0.52.6" 5926 + source = "registry+https://github.com/rust-lang/crates.io-index" 5927 + checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 5928 + 5929 + [[package]] 5930 + name = "windows_i686_gnullvm" 5931 + version = "0.53.1" 5932 + source = "registry+https://github.com/rust-lang/crates.io-index" 5933 + checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" 5934 + 5935 + [[package]] 5936 + name = "windows_i686_msvc" 5937 + version = "0.42.2" 5938 + source = "registry+https://github.com/rust-lang/crates.io-index" 5939 + checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" 5940 + 5941 + [[package]] 5942 + name = "windows_i686_msvc" 5943 + version = "0.52.6" 5944 + source = "registry+https://github.com/rust-lang/crates.io-index" 5945 + checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 5946 + 5947 + [[package]] 5948 + name = "windows_i686_msvc" 5949 + version = "0.53.1" 5950 + source = "registry+https://github.com/rust-lang/crates.io-index" 5951 + checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" 5952 + 5953 + [[package]] 5954 + name = "windows_x86_64_gnu" 5955 + version = "0.42.2" 5956 + source = "registry+https://github.com/rust-lang/crates.io-index" 5957 + checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" 5958 + 5959 + [[package]] 5960 + name = "windows_x86_64_gnu" 5961 + version = "0.52.6" 5962 + source = "registry+https://github.com/rust-lang/crates.io-index" 5963 + checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 5964 + 5965 + [[package]] 5966 + name = "windows_x86_64_gnu" 5967 + version = "0.53.1" 5968 + source = "registry+https://github.com/rust-lang/crates.io-index" 5969 + checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" 5970 + 5971 + [[package]] 5972 + name = "windows_x86_64_gnullvm" 5973 + version = "0.42.2" 5974 + source = "registry+https://github.com/rust-lang/crates.io-index" 5975 + checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" 5976 + 5977 + [[package]] 5978 + name = "windows_x86_64_gnullvm" 5979 + version = "0.52.6" 5980 + source = "registry+https://github.com/rust-lang/crates.io-index" 5981 + checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 5982 + 5983 + [[package]] 5984 + name = "windows_x86_64_gnullvm" 5985 + version = "0.53.1" 5986 + source = "registry+https://github.com/rust-lang/crates.io-index" 5987 + checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" 5988 + 5989 + [[package]] 5990 + name = "windows_x86_64_msvc" 5991 + version = "0.42.2" 5992 + source = "registry+https://github.com/rust-lang/crates.io-index" 5993 + checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" 5994 + 5995 + [[package]] 5996 + name = "windows_x86_64_msvc" 5997 + version = "0.52.6" 5998 + source = "registry+https://github.com/rust-lang/crates.io-index" 5999 + checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 6000 + 6001 + [[package]] 6002 + name = "windows_x86_64_msvc" 6003 + version = "0.53.1" 6004 + source = "registry+https://github.com/rust-lang/crates.io-index" 6005 + checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" 6006 + 6007 + [[package]] 6008 + name = "winnow" 6009 + version = "0.5.40" 6010 + source = "registry+https://github.com/rust-lang/crates.io-index" 6011 + checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" 6012 + dependencies = [ 6013 + "memchr", 6014 + ] 6015 + 6016 + [[package]] 6017 + name = "winnow" 6018 + version = "0.7.14" 6019 + source = "registry+https://github.com/rust-lang/crates.io-index" 6020 + checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" 6021 + dependencies = [ 6022 + "memchr", 6023 + ] 6024 + 6025 + [[package]] 6026 + name = "winreg" 6027 + version = "0.55.0" 6028 + source = "registry+https://github.com/rust-lang/crates.io-index" 6029 + checksum = "cb5a765337c50e9ec252c2069be9bf91c7df47afb103b642ba3a53bf8101be97" 6030 + dependencies = [ 6031 + "cfg-if", 6032 + "windows-sys 0.59.0", 6033 + ] 6034 + 6035 + [[package]] 6036 + name = "wit-bindgen" 6037 + version = "0.46.0" 6038 + source = "registry+https://github.com/rust-lang/crates.io-index" 6039 + checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" 6040 + 6041 + [[package]] 6042 + name = "writeable" 6043 + version = "0.6.2" 6044 + source = "registry+https://github.com/rust-lang/crates.io-index" 6045 + checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" 6046 + 6047 + [[package]] 6048 + name = "wry" 6049 + version = "0.53.5" 6050 + source = "registry+https://github.com/rust-lang/crates.io-index" 6051 + checksum = "728b7d4c8ec8d81cab295e0b5b8a4c263c0d41a785fb8f8c4df284e5411140a2" 6052 + dependencies = [ 6053 + "base64 0.22.1", 6054 + "block2", 6055 + "cookie", 6056 + "crossbeam-channel", 6057 + "dirs", 6058 + "dpi", 6059 + "dunce", 6060 + "gdkx11", 6061 + "gtk", 6062 + "html5ever", 6063 + "http", 6064 + "javascriptcore-rs", 6065 + "jni", 6066 + "kuchikiki", 6067 + "libc", 6068 + "ndk", 6069 + "objc2", 6070 + "objc2-app-kit", 6071 + "objc2-core-foundation", 6072 + "objc2-foundation", 6073 + "objc2-ui-kit", 6074 + "objc2-web-kit", 6075 + "once_cell", 6076 + "percent-encoding", 6077 + "raw-window-handle", 6078 + "sha2", 6079 + "soup3", 6080 + "tao-macros", 6081 + "thiserror 2.0.17", 6082 + "url", 6083 + "webkit2gtk", 6084 + "webkit2gtk-sys", 6085 + "webview2-com", 6086 + "windows", 6087 + "windows-core 0.61.2", 6088 + "windows-version", 6089 + "x11-dl", 6090 + ] 6091 + 6092 + [[package]] 6093 + name = "x11" 6094 + version = "2.21.0" 6095 + source = "registry+https://github.com/rust-lang/crates.io-index" 6096 + checksum = "502da5464ccd04011667b11c435cb992822c2c0dbde1770c988480d312a0db2e" 6097 + dependencies = [ 6098 + "libc", 6099 + "pkg-config", 6100 + ] 6101 + 6102 + [[package]] 6103 + name = "x11-dl" 6104 + version = "2.21.0" 6105 + source = "registry+https://github.com/rust-lang/crates.io-index" 6106 + checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" 6107 + dependencies = [ 6108 + "libc", 6109 + "once_cell", 6110 + "pkg-config", 6111 + ] 6112 + 6113 + [[package]] 6114 + name = "yoke" 6115 + version = "0.8.1" 6116 + source = "registry+https://github.com/rust-lang/crates.io-index" 6117 + checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" 6118 + dependencies = [ 6119 + "stable_deref_trait", 6120 + "yoke-derive", 6121 + "zerofrom", 6122 + ] 6123 + 6124 + [[package]] 6125 + name = "yoke-derive" 6126 + version = "0.8.1" 6127 + source = "registry+https://github.com/rust-lang/crates.io-index" 6128 + checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" 6129 + dependencies = [ 6130 + "proc-macro2", 6131 + "quote", 6132 + "syn 2.0.111", 6133 + "synstructure", 6134 + ] 6135 + 6136 + [[package]] 6137 + name = "zerocopy" 6138 + version = "0.8.31" 6139 + source = "registry+https://github.com/rust-lang/crates.io-index" 6140 + checksum = "fd74ec98b9250adb3ca554bdde269adf631549f51d8a8f8f0a10b50f1cb298c3" 6141 + dependencies = [ 6142 + "zerocopy-derive", 6143 + ] 6144 + 6145 + [[package]] 6146 + name = "zerocopy-derive" 6147 + version = "0.8.31" 6148 + source = "registry+https://github.com/rust-lang/crates.io-index" 6149 + checksum = "d8a8d209fdf45cf5138cbb5a506f6b52522a25afccc534d1475dad8e31105c6a" 6150 + dependencies = [ 6151 + "proc-macro2", 6152 + "quote", 6153 + "syn 2.0.111", 6154 + ] 6155 + 6156 + [[package]] 6157 + name = "zerofrom" 6158 + version = "0.1.6" 6159 + source = "registry+https://github.com/rust-lang/crates.io-index" 6160 + checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" 6161 + dependencies = [ 6162 + "zerofrom-derive", 6163 + ] 6164 + 6165 + [[package]] 6166 + name = "zerofrom-derive" 6167 + version = "0.1.6" 6168 + source = "registry+https://github.com/rust-lang/crates.io-index" 6169 + checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" 6170 + dependencies = [ 6171 + "proc-macro2", 6172 + "quote", 6173 + "syn 2.0.111", 6174 + "synstructure", 6175 + ] 6176 + 6177 + [[package]] 6178 + name = "zerotrie" 6179 + version = "0.2.3" 6180 + source = "registry+https://github.com/rust-lang/crates.io-index" 6181 + checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" 6182 + dependencies = [ 6183 + "displaydoc", 6184 + "yoke", 6185 + "zerofrom", 6186 + ] 6187 + 6188 + [[package]] 6189 + name = "zerovec" 6190 + version = "0.11.5" 6191 + source = "registry+https://github.com/rust-lang/crates.io-index" 6192 + checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" 6193 + dependencies = [ 6194 + "yoke", 6195 + "zerofrom", 6196 + "zerovec-derive", 6197 + ] 6198 + 6199 + [[package]] 6200 + name = "zerovec-derive" 6201 + version = "0.11.2" 6202 + source = "registry+https://github.com/rust-lang/crates.io-index" 6203 + checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" 6204 + dependencies = [ 6205 + "proc-macro2", 6206 + "quote", 6207 + "syn 2.0.111", 6208 + ] 6209 + 6210 + [[package]] 6211 + name = "zlib-rs" 6212 + version = "0.5.4" 6213 + source = "registry+https://github.com/rust-lang/crates.io-index" 6214 + checksum = "51f936044d677be1a1168fae1d03b583a285a5dd9d8cbf7b24c23aa1fc775235"
+9
Cargo.toml
··· 1 + [workspace] 2 + resolver = "3" 3 + members = [ 4 + "apps/desktop/src-tauri", 5 + ] 6 + 7 + [workspace.package] 8 + version = "0.1.0" 9 + edition = "2024"
+10 -1
apps/desktop/src-tauri/Cargo.toml
··· 3 3 version = "0.1.0" 4 4 description = "Tatami - A Jujutsu GUI client" 5 5 authors = ["you"] 6 - edition = "2021" 6 + edition = "2024" 7 7 8 8 [lib] 9 9 name = "tatami_desktop_lib" ··· 17 17 tauri-plugin-shell = "2.0" 18 18 serde = { version = "1", features = ["derive"] } 19 19 serde_json = "1" 20 + anyhow = "1.0.100" 21 + futures = "0.3.31" 22 + hex = "0.4.3" 23 + jj-lib = "0.35.0" 24 + hostname = "0.4.2" 25 + pollster = "0.4.0" 26 + similar = "2.7.0" 27 + tokio = { version = "1.48.0", features = ["io-util"] } 28 + toml_edit = "0.23.9" 20 29 21 30 [target.'cfg(not(any(target_os = "android", target_os = "ios")))'.dependencies] 22 31 tauri-plugin-shell = "2.0"
+112 -1
apps/desktop/src-tauri/src/lib.rs
··· 1 + mod repo; 2 + 3 + use repo::diff; 4 + use repo::jj::JjRepo; 5 + use repo::log::Revision; 6 + use repo::status::WorkingCopyStatus; 7 + use serde::Serialize; 8 + use std::path::{Path, PathBuf}; 9 + 10 + #[derive(Serialize)] 11 + pub struct ChangedFile { 12 + pub path: String, 13 + pub status: String, 14 + } 15 + 16 + #[derive(Serialize)] 17 + pub struct DiffLine { 18 + pub line_type: String, 19 + pub content: String, 20 + pub old_line_number: Option<u32>, 21 + pub new_line_number: Option<u32>, 22 + } 23 + 24 + #[derive(Serialize)] 25 + pub struct DiffHunk { 26 + pub old_start: u32, 27 + pub old_count: u32, 28 + pub new_start: u32, 29 + pub new_count: u32, 30 + pub lines: Vec<DiffLine>, 31 + } 32 + 33 + #[derive(Serialize)] 34 + pub struct FileDiff { 35 + pub path: String, 36 + pub hunks: Vec<DiffHunk>, 37 + } 38 + 39 + #[tauri::command] 40 + fn find_repository(start_path: String) -> Option<String> { 41 + let path = PathBuf::from(&start_path); 42 + repo::find_jj_repo(&path).and_then(|p| p.to_str().map(String::from)) 43 + } 44 + 45 + #[tauri::command] 46 + async fn get_revisions(repo_path: String, limit: usize) -> Result<Vec<Revision>, String> { 47 + let path = Path::new(&repo_path); 48 + repo::log::fetch_log(path, limit).map_err(|e| format!("Failed to fetch log: {}", e)) 49 + } 50 + 51 + #[tauri::command] 52 + async fn get_status(repo_path: String) -> Result<WorkingCopyStatus, String> { 53 + let path = Path::new(&repo_path); 54 + repo::status::fetch_status(path).map_err(|e| format!("Failed to fetch status: {}", e)) 55 + } 56 + 57 + #[tauri::command] 58 + async fn get_file_diff( 59 + repo_path: String, 60 + change_id: String, 61 + file_path: String, 62 + ) -> Result<FileDiff, String> { 63 + let path = Path::new(&repo_path); 64 + let jj_repo = JjRepo::open(path).map_err(|e| format!("Failed to open repo: {}", e))?; 65 + 66 + let commit = jj_repo 67 + .get_commit(&change_id) 68 + .map_err(|e| format!("Failed to get commit: {}", e))?; 69 + 70 + let old_content = jj_repo 71 + .get_parent_file_content(&commit, &file_path) 72 + .unwrap_or_default(); 73 + 74 + let new_content = jj_repo 75 + .get_file_content(&commit, &file_path) 76 + .unwrap_or_default(); 77 + 78 + let file_diff = diff::compute_file_diff(&old_content, &new_content, file_path) 79 + .map_err(|e| format!("Failed to compute diff: {}", e))?; 80 + 81 + Ok(FileDiff { 82 + path: file_diff.path, 83 + hunks: file_diff 84 + .hunks 85 + .into_iter() 86 + .map(|h| DiffHunk { 87 + old_start: h.old_start, 88 + old_count: h.old_count, 89 + new_start: h.new_start, 90 + new_count: h.new_count, 91 + lines: h 92 + .lines 93 + .into_iter() 94 + .map(|l| DiffLine { 95 + line_type: l.line_type, 96 + content: l.content, 97 + old_line_number: l.old_line_number, 98 + new_line_number: l.new_line_number, 99 + }) 100 + .collect(), 101 + }) 102 + .collect(), 103 + }) 104 + } 105 + 1 106 #[tauri::command] 2 107 fn greet(name: &str) -> String { 3 108 format!("Hello, {}! Welcome to Tatami.", name) ··· 7 112 pub fn run() { 8 113 tauri::Builder::default() 9 114 .plugin(tauri_plugin_shell::init()) 10 - .invoke_handler(tauri::generate_handler![greet]) 115 + .invoke_handler(tauri::generate_handler![ 116 + greet, 117 + find_repository, 118 + get_revisions, 119 + get_status, 120 + get_file_diff 121 + ]) 11 122 .run(tauri::generate_context!()) 12 123 .expect("error while running tauri application"); 13 124 }
+86
apps/desktop/src-tauri/src/repo/diff.rs
··· 1 + use anyhow::Result; 2 + use similar::{ChangeTag, TextDiff}; 3 + 4 + #[derive(Clone, Debug, serde::Serialize)] 5 + pub struct FileDiff { 6 + pub path: String, 7 + pub hunks: Vec<DiffHunk>, 8 + } 9 + 10 + #[derive(Clone, Debug, serde::Serialize)] 11 + pub struct DiffHunk { 12 + pub old_start: u32, 13 + pub old_count: u32, 14 + pub new_start: u32, 15 + pub new_count: u32, 16 + pub lines: Vec<DiffLine>, 17 + } 18 + 19 + #[derive(Clone, Debug, serde::Serialize)] 20 + pub struct DiffLine { 21 + pub line_type: String, 22 + pub content: String, 23 + pub old_line_number: Option<u32>, 24 + pub new_line_number: Option<u32>, 25 + } 26 + 27 + pub fn compute_file_diff(old_content: &[u8], new_content: &[u8], path: String) -> Result<FileDiff> { 28 + let old_text = String::from_utf8_lossy(old_content); 29 + let new_text = String::from_utf8_lossy(new_content); 30 + 31 + let diff = TextDiff::from_lines(&old_text, &new_text); 32 + let mut lines = Vec::new(); 33 + let mut old_line_num = 1u32; 34 + let mut new_line_num = 1u32; 35 + 36 + for change in diff.iter_all_changes() { 37 + let content = change.to_string().trim_end_matches('\n').to_string(); 38 + let diff_line = match change.tag() { 39 + ChangeTag::Delete => { 40 + let line = DiffLine { 41 + line_type: "remove".to_string(), 42 + content, 43 + old_line_number: Some(old_line_num), 44 + new_line_number: None, 45 + }; 46 + old_line_num += 1; 47 + line 48 + } 49 + ChangeTag::Insert => { 50 + let line = DiffLine { 51 + line_type: "add".to_string(), 52 + content, 53 + old_line_number: None, 54 + new_line_number: Some(new_line_num), 55 + }; 56 + new_line_num += 1; 57 + line 58 + } 59 + ChangeTag::Equal => { 60 + let line = DiffLine { 61 + line_type: "context".to_string(), 62 + content, 63 + old_line_number: Some(old_line_num), 64 + new_line_number: Some(new_line_num), 65 + }; 66 + old_line_num += 1; 67 + new_line_num += 1; 68 + line 69 + } 70 + }; 71 + lines.push(diff_line); 72 + } 73 + 74 + let hunk = DiffHunk { 75 + old_start: 1, 76 + old_count: old_line_num - 1, 77 + new_start: 1, 78 + new_count: new_line_num - 1, 79 + lines, 80 + }; 81 + 82 + Ok(FileDiff { 83 + path, 84 + hunks: vec![hunk], 85 + }) 86 + }
+168
apps/desktop/src-tauri/src/repo/jj.rs
··· 1 + use anyhow::{Context, Result}; 2 + use jj_lib::backend::CommitId; 3 + use jj_lib::commit::Commit; 4 + use jj_lib::config::ConfigSource; 5 + use jj_lib::merged_tree::MergedTree; 6 + use jj_lib::object_id::{HexPrefix, PrefixResolution}; 7 + use jj_lib::repo::{Repo, StoreFactories}; 8 + use jj_lib::repo_path::RepoPath; 9 + use jj_lib::workspace::{default_working_copy_factories, Workspace}; 10 + use std::path::Path; 11 + use tokio::io::AsyncReadExt; 12 + 13 + pub struct JjRepo { 14 + workspace: Workspace, 15 + } 16 + 17 + impl JjRepo { 18 + pub fn open(path: &Path) -> Result<Self> { 19 + let config = Self::load_config()?; 20 + let user_settings = jj_lib::settings::UserSettings::from_config(config) 21 + .context("Failed to create user settings")?; 22 + let store_factories = StoreFactories::default(); 23 + let working_copy_factories = default_working_copy_factories(); 24 + 25 + let workspace = Workspace::load( 26 + &user_settings, 27 + path, 28 + &store_factories, 29 + &working_copy_factories, 30 + ) 31 + .context("Failed to load jj workspace")?; 32 + 33 + Ok(Self { workspace }) 34 + } 35 + 36 + fn load_config() -> Result<jj_lib::config::StackedConfig> { 37 + use jj_lib::config::{ConfigLayer, StackedConfig}; 38 + 39 + let mut config = StackedConfig::with_defaults(); 40 + 41 + let hostname = hostname::get() 42 + .map(|h| h.to_string_lossy().to_string()) 43 + .unwrap_or_else(|_| "localhost".to_string()); 44 + let username = std::env::var("USER").unwrap_or_else(|_| "user".to_string()); 45 + 46 + let env_defaults = format!( 47 + r#" 48 + [user] 49 + name = "{username}" 50 + email = "{username}@localhost" 51 + 52 + [operation] 53 + hostname = "{hostname}" 54 + username = "{username}" 55 + "# 56 + ); 57 + let env_doc: toml_edit::DocumentMut = env_defaults.parse().unwrap(); 58 + config.add_layer(ConfigLayer::with_data(ConfigSource::EnvBase, env_doc)); 59 + 60 + if let Ok(home) = std::env::var("HOME") { 61 + let xdg_config = std::env::var("XDG_CONFIG_HOME") 62 + .map(std::path::PathBuf::from) 63 + .unwrap_or_else(|_| Path::new(&home).join(".config")); 64 + 65 + let jj_config = xdg_config.join("jj/config.toml"); 66 + if jj_config.exists() { 67 + let _ = config.load_file(ConfigSource::User, &jj_config); 68 + } 69 + 70 + let legacy = Path::new(&home).join(".jjconfig.toml"); 71 + if legacy.exists() { 72 + let _ = config.load_file(ConfigSource::User, &legacy); 73 + } 74 + } 75 + 76 + Ok(config) 77 + } 78 + 79 + pub fn get_commit(&self, change_id: &str) -> Result<Commit> { 80 + let repo = self.workspace.repo_loader().load_at_head()?; 81 + let commit_id = self.resolve_change_id(repo.as_ref(), change_id)?; 82 + Ok(repo.store().get_commit(&commit_id)?) 83 + } 84 + 85 + pub fn get_parent_tree(&self, commit: &Commit) -> Result<MergedTree> { 86 + let repo = self.workspace.repo_loader().load_at_head()?; 87 + let parents = commit.parents(); 88 + let parent = parents.into_iter().next().context("Commit has no parent")?; 89 + let parent_commit = repo.store().get_commit(parent?.id())?; 90 + Ok(parent_commit.tree()?) 91 + } 92 + 93 + pub fn get_file_content(&self, commit: &Commit, path: &str) -> Result<Vec<u8>> { 94 + let repo_path = RepoPath::from_internal_string(path).context("Invalid path")?; 95 + let tree = commit.tree()?; 96 + let file_value = tree.path_value(repo_path)?; 97 + 98 + match file_value.into_resolved() { 99 + Ok(Some(value)) => { 100 + use jj_lib::backend::TreeValue; 101 + match value { 102 + TreeValue::File { id, .. } => { 103 + let repo = self.workspace.repo_loader().load_at_head()?; 104 + let mut reader = 105 + pollster::block_on(async { repo.store().read_file(repo_path, &id).await })?; 106 + let mut content = Vec::new(); 107 + pollster::block_on(async { reader.read_to_end(&mut content).await })?; 108 + Ok(content) 109 + } 110 + _ => Ok(Vec::new()), 111 + } 112 + } 113 + _ => Ok(Vec::new()), 114 + } 115 + } 116 + 117 + pub fn get_parent_file_content(&self, commit: &Commit, path: &str) -> Result<Vec<u8>> { 118 + let repo_path = RepoPath::from_internal_string(path).context("Invalid path")?; 119 + let repo = self.workspace.repo_loader().load_at_head()?; 120 + let parents = commit.parents(); 121 + let parent = parents.into_iter().next().context("Commit has no parent")?; 122 + let parent_commit = repo.store().get_commit(parent?.id())?; 123 + let parent_tree = parent_commit.tree()?; 124 + let file_value = parent_tree.path_value(repo_path)?; 125 + 126 + match file_value.into_resolved() { 127 + Ok(Some(value)) => { 128 + use jj_lib::backend::TreeValue; 129 + match value { 130 + TreeValue::File { id, .. } => { 131 + let mut reader = 132 + pollster::block_on(async { repo.store().read_file(repo_path, &id).await })?; 133 + let mut content = Vec::new(); 134 + pollster::block_on(async { reader.read_to_end(&mut content).await })?; 135 + Ok(content) 136 + } 137 + _ => Ok(Vec::new()), 138 + } 139 + } 140 + _ => Ok(Vec::new()), 141 + } 142 + } 143 + 144 + fn resolve_change_id(&self, repo: &impl Repo, change_id_prefix: &str) -> Result<CommitId> { 145 + let prefix = HexPrefix::try_from_reverse_hex(change_id_prefix) 146 + .context("Invalid change ID prefix format")?; 147 + 148 + let resolution = repo 149 + .resolve_change_id_prefix(&prefix) 150 + .context("Failed to resolve change ID")?; 151 + 152 + match resolution { 153 + PrefixResolution::SingleMatch(commit_ids) => { 154 + commit_ids.first().cloned().context("No commit ID found") 155 + } 156 + PrefixResolution::NoMatch => { 157 + anyhow::bail!("Change ID not found: {}", change_id_prefix) 158 + } 159 + PrefixResolution::AmbiguousMatch => { 160 + anyhow::bail!("Ambiguous change ID prefix: {}", change_id_prefix) 161 + } 162 + } 163 + } 164 + 165 + pub fn repo_loader(&self) -> &jj_lib::repo::RepoLoader { 166 + self.workspace.repo_loader() 167 + } 168 + }
+143
apps/desktop/src-tauri/src/repo/log.rs
··· 1 + use anyhow::{Context, Result}; 2 + use jj_lib::backend::CommitId; 3 + use jj_lib::commit::Commit; 4 + use jj_lib::object_id::ObjectId; 5 + use jj_lib::repo::Repo; 6 + use jj_lib::revset::RevsetExpression; 7 + use std::path::Path; 8 + 9 + use super::jj::JjRepo; 10 + 11 + #[derive(Clone, Debug, serde::Serialize)] 12 + pub struct Revision { 13 + pub commit_id: String, 14 + pub change_id: String, 15 + pub description: String, 16 + pub author: String, 17 + pub timestamp: String, 18 + pub is_working_copy: bool, 19 + pub is_immutable: bool, 20 + pub bookmarks: Vec<String>, 21 + } 22 + 23 + pub fn fetch_log(repo_path: &Path, limit: usize) -> Result<Vec<Revision>> { 24 + let jj_repo = JjRepo::open(repo_path)?; 25 + let repo = jj_repo.repo_loader().load_at_head()?; 26 + 27 + let revset_expression = RevsetExpression::all(); 28 + 29 + let revset = revset_expression 30 + .evaluate(repo.as_ref()) 31 + .context("Failed to evaluate revset")?; 32 + 33 + let commits: Vec<Commit> = revset 34 + .iter() 35 + .take(limit) 36 + .map(|commit_id_result| { 37 + let commit_id = commit_id_result?; 38 + repo.store() 39 + .get_commit(&commit_id) 40 + .context("Failed to get commit") 41 + }) 42 + .collect::<Result<Vec<_>>>()?; 43 + 44 + let wc_commit_id = repo.view().wc_commit_ids().iter().next().map(|(_, id)| id); 45 + 46 + let immutable_expression = RevsetExpression::root(); 47 + let immutable_revset = immutable_expression.evaluate(repo.as_ref())?; 48 + let immutable_ids: Vec<CommitId> = immutable_revset 49 + .iter() 50 + .collect::<Result<Vec<_>, _>>()?; 51 + 52 + let mut revisions = Vec::new(); 53 + 54 + for commit in commits { 55 + let commit_id = commit.id(); 56 + let change_id = commit.change_id(); 57 + let is_working_copy = wc_commit_id == Some(commit_id); 58 + let is_immutable = immutable_ids.contains(commit_id); 59 + 60 + let description = commit.description().to_string(); 61 + let first_line = description 62 + .lines() 63 + .next() 64 + .unwrap_or("(no description)") 65 + .to_string(); 66 + 67 + let author = commit.author(); 68 + let author_name = author.name.clone(); 69 + 70 + let timestamp = format_timestamp(&author.timestamp, change_id); 71 + 72 + let bookmarks = get_bookmarks_for_commit(repo.as_ref(), commit_id); 73 + 74 + revisions.push(Revision { 75 + commit_id: hex::encode(&commit_id.to_bytes()[..6]), 76 + change_id: format_change_id(change_id), 77 + description: first_line, 78 + author: author_name, 79 + timestamp, 80 + is_working_copy, 81 + is_immutable, 82 + bookmarks, 83 + }); 84 + } 85 + 86 + Ok(revisions) 87 + } 88 + 89 + fn format_change_id(change_id: &jj_lib::backend::ChangeId) -> String { 90 + let bytes = change_id.to_bytes(); 91 + let mut result = String::with_capacity(12); 92 + for &byte in &bytes[..6] { 93 + let c1 = (byte >> 4) as char; 94 + let c2 = (byte & 0x0f) as char; 95 + result.push(char::from_u32(b'z' as u32 - c1 as u32).unwrap()); 96 + result.push(char::from_u32(b'z' as u32 - c2 as u32).unwrap()); 97 + } 98 + result 99 + } 100 + 101 + fn format_timestamp(timestamp: &jj_lib::backend::Timestamp, change_id: &jj_lib::backend::ChangeId) -> String { 102 + let change_id_str = format_change_id(change_id); 103 + if change_id_str == "zzzzzzzz" { 104 + return "root".to_string(); 105 + } 106 + 107 + let now = std::time::SystemTime::now() 108 + .duration_since(std::time::UNIX_EPOCH) 109 + .unwrap() 110 + .as_millis() as i64; 111 + 112 + let diff_ms = now - timestamp.timestamp.0; 113 + let diff_seconds = diff_ms / 1000; 114 + 115 + if diff_seconds < 60 { 116 + format!("{} seconds ago", diff_seconds) 117 + } else if diff_seconds < 3600 { 118 + format!("{} minutes ago", diff_seconds / 60) 119 + } else if diff_seconds < 86400 { 120 + format!("{} hours ago", diff_seconds / 3600) 121 + } else if diff_seconds < 604800 { 122 + format!("{} days ago", diff_seconds / 86400) 123 + } else if diff_seconds < 2592000 { 124 + format!("{} weeks ago", diff_seconds / 604800) 125 + } else if diff_seconds < 31536000 { 126 + format!("{} months ago", diff_seconds / 2592000) 127 + } else { 128 + format!("{} years ago", diff_seconds / 31536000) 129 + } 130 + } 131 + 132 + fn get_bookmarks_for_commit(repo: &dyn Repo, commit_id: &CommitId) -> Vec<String> { 133 + let view = repo.view(); 134 + let mut bookmarks = Vec::new(); 135 + 136 + for (name, target) in view.local_bookmarks() { 137 + if target.added_ids().any(|id| id == commit_id) { 138 + bookmarks.push(name.as_str().to_string()); 139 + } 140 + } 141 + 142 + bookmarks 143 + }
+21
apps/desktop/src-tauri/src/repo/mod.rs
··· 1 + pub mod diff; 2 + pub mod jj; 3 + pub mod log; 4 + pub mod status; 5 + 6 + use std::path::PathBuf; 7 + 8 + pub fn find_jj_repo(start_path: &std::path::Path) -> Option<PathBuf> { 9 + let mut current = start_path.to_path_buf(); 10 + 11 + loop { 12 + let jj_dir = current.join(".jj"); 13 + if jj_dir.is_dir() { 14 + return Some(current); 15 + } 16 + 17 + if !current.pop() { 18 + return None; 19 + } 20 + } 21 + }
+101
apps/desktop/src-tauri/src/repo/status.rs
··· 1 + use anyhow::{Context, Result}; 2 + use jj_lib::backend::TreeValue; 3 + use jj_lib::matchers::EverythingMatcher; 4 + use jj_lib::object_id::ObjectId; 5 + use jj_lib::repo::Repo; 6 + use std::path::Path; 7 + 8 + use super::jj::JjRepo; 9 + 10 + #[derive(Clone, Debug, serde::Serialize)] 11 + pub struct WorkingCopyStatus { 12 + pub change_id: String, 13 + pub commit_id: String, 14 + pub description: String, 15 + pub files: Vec<ChangedFile>, 16 + } 17 + 18 + #[derive(Clone, Debug, serde::Serialize)] 19 + pub struct ChangedFile { 20 + pub path: String, 21 + pub status: String, 22 + } 23 + 24 + pub fn fetch_status(repo_path: &Path) -> Result<WorkingCopyStatus> { 25 + let jj_repo = JjRepo::open(repo_path)?; 26 + let repo = jj_repo.repo_loader().load_at_head()?; 27 + 28 + let wc_commit_id = repo 29 + .view() 30 + .wc_commit_ids() 31 + .iter() 32 + .next() 33 + .context("No working copy commit")? 34 + .1; 35 + 36 + let wc_commit = repo.store().get_commit(wc_commit_id)?; 37 + let change_id = wc_commit.change_id(); 38 + let description = wc_commit.description().to_string(); 39 + let first_line = description 40 + .lines() 41 + .next() 42 + .unwrap_or("(no description)") 43 + .to_string(); 44 + 45 + let parent_tree = { 46 + let parents = wc_commit.parents(); 47 + let parent = parents.into_iter().next().context("Commit has no parent")?; 48 + parent?.tree()? 49 + }; 50 + 51 + let wc_tree = wc_commit.tree()?; 52 + 53 + let matcher = EverythingMatcher; 54 + let mut diff_iter = parent_tree.diff_stream(&wc_tree, &matcher); 55 + 56 + let mut files = Vec::new(); 57 + 58 + pollster::block_on(async { 59 + use futures::StreamExt; 60 + while let Some(entry) = diff_iter.next().await { 61 + let path = entry.path; 62 + let path_str = path.as_internal_file_string(); 63 + 64 + let diff_values = entry.values?; 65 + let before = diff_values.before.removes().next().and_then(|v| v.as_ref()); 66 + let after = diff_values.after.adds().next().and_then(|v| v.as_ref()); 67 + 68 + let status = match (before, after) { 69 + (Some(TreeValue::File { .. }), Some(TreeValue::File { .. })) => "modified", 70 + (None, Some(_)) => "added", 71 + (Some(_), None) => "deleted", 72 + _ => continue, 73 + }; 74 + 75 + files.push(ChangedFile { 76 + path: path_str.to_string(), 77 + status: status.to_string(), 78 + }); 79 + } 80 + Ok::<(), anyhow::Error>(()) 81 + })?; 82 + 83 + Ok(WorkingCopyStatus { 84 + change_id: format_change_id(change_id), 85 + commit_id: hex::encode(&wc_commit_id.to_bytes()[..6]), 86 + description: first_line, 87 + files, 88 + }) 89 + } 90 + 91 + fn format_change_id(change_id: &jj_lib::backend::ChangeId) -> String { 92 + let bytes = change_id.to_bytes(); 93 + let mut result = String::with_capacity(12); 94 + for &byte in &bytes[..6] { 95 + let c1 = (byte >> 4) as char; 96 + let c2 = (byte & 0x0f) as char; 97 + result.push(char::from_u32(b'z' as u32 - c1 as u32).unwrap()); 98 + result.push(char::from_u32(b'z' as u32 - c2 as u32).unwrap()); 99 + } 100 + result 101 + }
+70
apps/desktop/src/tauri-commands.ts
··· 1 + import { invoke } from "@tauri-apps/api/core"; 2 + 3 + export interface Revision { 4 + commit_id: string; 5 + change_id: string; 6 + description: string; 7 + author: string; 8 + timestamp: string; 9 + is_working_copy: boolean; 10 + is_immutable: boolean; 11 + bookmarks: string[]; 12 + } 13 + 14 + export interface ChangedFile { 15 + path: string; 16 + status: "added" | "modified" | "deleted"; 17 + } 18 + 19 + export interface WorkingCopyStatus { 20 + repo_path: string; 21 + change_id: string; 22 + files: ChangedFile[]; 23 + } 24 + 25 + export interface DiffLine { 26 + line_type: "context" | "add" | "remove"; 27 + content: string; 28 + old_line_number: number | null; 29 + new_line_number: number | null; 30 + } 31 + 32 + export interface DiffHunk { 33 + old_start: number; 34 + old_count: number; 35 + new_start: number; 36 + new_count: number; 37 + lines: DiffLine[]; 38 + } 39 + 40 + export interface FileDiff { 41 + path: string; 42 + hunks: DiffHunk[]; 43 + } 44 + 45 + export async function findRepository( 46 + startPath: string 47 + ): Promise<string | null> { 48 + return invoke<string | null>("find_repository", { startPath }); 49 + } 50 + 51 + export async function getRevisions( 52 + repoPath: string, 53 + limit: number 54 + ): Promise<Revision[]> { 55 + return invoke<Revision[]>("get_revisions", { repoPath, limit }); 56 + } 57 + 58 + export async function getStatus( 59 + repoPath: string 60 + ): Promise<WorkingCopyStatus> { 61 + return invoke<WorkingCopyStatus>("get_status", { repoPath }); 62 + } 63 + 64 + export async function getFileDiff( 65 + repoPath: string, 66 + changeId: string, 67 + filePath: string 68 + ): Promise<FileDiff> { 69 + return invoke<FileDiff>("get_file_diff", { repoPath, changeId, filePath }); 70 + }