[READ-ONLY] Mirror of https://github.com/probablykasper/ferrum. Music library app for Mac, Linux and Windows ferrum.kasper.space
electron linux macos music music-library music-player napi windows
0

Configure Feed

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

Merge pull request #15 from probablykasper/mobile

authored by

Kasper and committed by
GitHub
(Mar 5, 2026, 2:54 PM +0100) 60a0efad 6a2f5d2d

+14405 -113
+60
.github/workflows/ci.yml
··· 39 39 - run: npm run build:web 40 40 - run: npm run electron-builder -- ${{ matrix.arg }} --publish never 41 41 - run: npm run generate-update-json 42 + build_android: 43 + runs-on: ubuntu-latest 44 + name: Android ${{ matrix.name }} 45 + strategy: 46 + matrix: 47 + include: 48 + - { name: arm64, arch: aarch64, tauri_target: aarch64 } 49 + - { name: x64, arch: x86_64, tauri_target: x86_64 } 50 + steps: 51 + - name: Checkout repository 52 + uses: actions/checkout@v4 53 + 54 + - name: Rust setup 55 + uses: dtolnay/rust-toolchain@stable 56 + 57 + - name: Node.js setup 58 + uses: actions/setup-node@v2 59 + with: 60 + node-version: 20 61 + 62 + - name: JDK 17 Setup 63 + uses: actions/setup-java@v4 64 + with: 65 + java-version: '17' 66 + distribution: 'temurin' 67 + 68 + - name: Android SDK Setup 69 + uses: android-actions/setup-android@v3 70 + 71 + - name: Android NDK Setup 72 + uses: nttld/setup-ndk@v1 73 + id: setup-ndk 74 + with: 75 + ndk-version: r26d 76 + link-to-sdk: true 77 + 78 + - name: Install Android targets 79 + run: rustup target add ${{ matrix.arch }}-linux-android 80 + 81 + - run: npm install 82 + working-directory: mobile 83 + 84 + - name: Android signing setup 85 + working-directory: mobile/src-tauri/gen/android 86 + run: | 87 + echo "keyAlias=${{ secrets.ANDROID_KEY_ALIAS }}" > keystore.properties 88 + echo "password=${{ secrets.ANDROID_KEY_PASSWORD }}" >> keystore.properties 89 + base64 -d <<< "${{ secrets.ANDROID_KEY_BASE64 }}" > $RUNNER_TEMP/keystore.jks 90 + echo "storeFile=$RUNNER_TEMP/keystore.jks" >> keystore.properties 91 + 92 + - name: Build 93 + # uploadWorkflowArtifacts and mobile are not released 94 + uses: tauri-apps/tauri-action@a1b01e690374452a209dd44f6de089dda9003d3d 95 + env: 96 + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 97 + with: 98 + projectPath: mobile 99 + uploadWorkflowArtifacts: true 100 + mobile: android 101 + args: --verbose --apk --split-per-abi --target ${{ matrix.tauri_target }}
+62
.github/workflows/release.yml
··· 51 51 run: gh release upload ${{ github.ref_name }} build/update.json 52 52 env: 53 53 GH_TOKEN: ${{ github.token }} 54 + release_android: 55 + runs-on: ubuntu-latest 56 + name: Android ${{ matrix.name }} 57 + strategy: 58 + matrix: 59 + include: 60 + - { name: arm64, target: aarch64-linux-android, args: --target aarch64 } 61 + - { name: x64, target: x86_64-linux-android, args: --target x86_64 } 62 + steps: 63 + - name: Checkout repository 64 + uses: actions/checkout@v4 65 + 66 + - name: Rust setup 67 + uses: dtolnay/rust-toolchain@stable 68 + 69 + - name: Node.js setup 70 + uses: actions/setup-node@v2 71 + with: 72 + node-version: 20 73 + 74 + - name: JDK 17 Setup 75 + uses: actions/setup-java@v4 76 + with: 77 + java-version: '17' 78 + distribution: 'temurin' 79 + 80 + - name: Android SDK Setup 81 + uses: android-actions/setup-android@v3 82 + 83 + - name: Android NDK Setup 84 + uses: nttld/setup-ndk@v1 85 + id: setup-ndk 86 + with: 87 + ndk-version: r26d 88 + link-to-sdk: true 89 + 90 + - name: Install Android targets 91 + run: rustup target add ${{ matrix.arch }}-linux-android 92 + 93 + - run: npm install 94 + working-directory: mobile 95 + 96 + - name: Android signing setup 97 + working-directory: mobile/src-tauri/gen/android 98 + run: | 99 + echo "keyAlias=${{ secrets.ANDROID_KEY_ALIAS }}" > keystore.properties 100 + echo "password=${{ secrets.ANDROID_KEY_PASSWORD }}" >> keystore.properties 101 + base64 -d <<< "${{ secrets.ANDROID_KEY_BASE64 }}" > $RUNNER_TEMP/keystore.jks 102 + echo "storeFile=$RUNNER_TEMP/keystore.jks" >> keystore.properties 103 + 104 + - name: Build 105 + # uploadWorkflowArtifacts and mobile are not released 106 + uses: tauri-apps/tauri-action@a1b01e690374452a209dd44f6de089dda9003d3d 107 + env: 108 + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 109 + with: 110 + projectPath: mobile 111 + uploadWorkflowArtifacts: true 112 + mobile: android 113 + releaseName: ${{ github.ref_name }} 114 + releaseDraft: true 115 + args: --verbose --apk --split-per-abi --target ${{ matrix.tauri_target }}
+2
.taurignore
··· 1 + mobile/* 2 + !mobile/src-tauri/
+4353 -81
Cargo.lock
··· 3 3 version = 4 4 4 5 5 [[package]] 6 + name = "Inflector" 7 + version = "0.11.4" 8 + source = "registry+https://github.com/rust-lang/crates.io-index" 9 + checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" 10 + 11 + [[package]] 6 12 name = "addr2line" 7 13 version = "0.24.2" 8 14 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 18 24 checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" 19 25 20 26 [[package]] 27 + name = "aho-corasick" 28 + version = "1.1.4" 29 + source = "registry+https://github.com/rust-lang/crates.io-index" 30 + checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" 31 + dependencies = [ 32 + "memchr", 33 + ] 34 + 35 + [[package]] 36 + name = "alloc-no-stdlib" 37 + version = "2.0.4" 38 + source = "registry+https://github.com/rust-lang/crates.io-index" 39 + checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" 40 + 41 + [[package]] 42 + name = "alloc-stdlib" 43 + version = "0.2.2" 44 + source = "registry+https://github.com/rust-lang/crates.io-index" 45 + checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" 46 + dependencies = [ 47 + "alloc-no-stdlib", 48 + ] 49 + 50 + [[package]] 21 51 name = "allocator-api2" 22 52 version = "0.2.21" 23 53 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 30 60 checksum = "d67c60c5f10f11c6ee04de72b2dd98bb9d2548cbc314d22a609bfa8bd9e87e8f" 31 61 32 62 [[package]] 63 + name = "android_log-sys" 64 + version = "0.3.2" 65 + source = "registry+https://github.com/rust-lang/crates.io-index" 66 + checksum = "84521a3cf562bc62942e294181d9eef17eb38ceb8c68677bc49f144e4c3d4f8d" 67 + 68 + [[package]] 69 + name = "android_logger" 70 + version = "0.15.1" 71 + source = "registry+https://github.com/rust-lang/crates.io-index" 72 + checksum = "dbb4e440d04be07da1f1bf44fb4495ebd58669372fe0cffa6e48595ac5bd88a3" 73 + dependencies = [ 74 + "android_log-sys", 75 + "env_filter", 76 + "log", 77 + ] 78 + 79 + [[package]] 33 80 name = "android_system_properties" 34 81 version = "0.1.5" 35 82 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 45 92 checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" 46 93 47 94 [[package]] 95 + name = "async-broadcast" 96 + version = "0.7.2" 97 + source = "registry+https://github.com/rust-lang/crates.io-index" 98 + checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532" 99 + dependencies = [ 100 + "event-listener", 101 + "event-listener-strategy", 102 + "futures-core", 103 + "pin-project-lite", 104 + ] 105 + 106 + [[package]] 107 + name = "async-channel" 108 + version = "2.5.0" 109 + source = "registry+https://github.com/rust-lang/crates.io-index" 110 + checksum = "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2" 111 + dependencies = [ 112 + "concurrent-queue", 113 + "event-listener-strategy", 114 + "futures-core", 115 + "pin-project-lite", 116 + ] 117 + 118 + [[package]] 119 + name = "async-executor" 120 + version = "1.14.0" 121 + source = "registry+https://github.com/rust-lang/crates.io-index" 122 + checksum = "c96bf972d85afc50bf5ab8fe2d54d1586b4e0b46c97c50a0c9e71e2f7bcd812a" 123 + dependencies = [ 124 + "async-task", 125 + "concurrent-queue", 126 + "fastrand", 127 + "futures-lite", 128 + "pin-project-lite", 129 + "slab", 130 + ] 131 + 132 + [[package]] 133 + name = "async-io" 134 + version = "2.6.0" 135 + source = "registry+https://github.com/rust-lang/crates.io-index" 136 + checksum = "456b8a8feb6f42d237746d4b3e9a178494627745c3c56c6ea55d92ba50d026fc" 137 + dependencies = [ 138 + "autocfg", 139 + "cfg-if", 140 + "concurrent-queue", 141 + "futures-io", 142 + "futures-lite", 143 + "parking", 144 + "polling", 145 + "rustix 1.1.2", 146 + "slab", 147 + "windows-sys 0.61.0", 148 + ] 149 + 150 + [[package]] 151 + name = "async-lock" 152 + version = "3.4.2" 153 + source = "registry+https://github.com/rust-lang/crates.io-index" 154 + checksum = "290f7f2596bd5b78a9fec8088ccd89180d7f9f55b94b0576823bbbdc72ee8311" 155 + dependencies = [ 156 + "event-listener", 157 + "event-listener-strategy", 158 + "pin-project-lite", 159 + ] 160 + 161 + [[package]] 162 + name = "async-process" 163 + version = "2.5.0" 164 + source = "registry+https://github.com/rust-lang/crates.io-index" 165 + checksum = "fc50921ec0055cdd8a16de48773bfeec5c972598674347252c0399676be7da75" 166 + dependencies = [ 167 + "async-channel", 168 + "async-io", 169 + "async-lock", 170 + "async-signal", 171 + "async-task", 172 + "blocking", 173 + "cfg-if", 174 + "event-listener", 175 + "futures-lite", 176 + "rustix 1.1.2", 177 + ] 178 + 179 + [[package]] 180 + name = "async-recursion" 181 + version = "1.1.1" 182 + source = "registry+https://github.com/rust-lang/crates.io-index" 183 + checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" 184 + dependencies = [ 185 + "proc-macro2", 186 + "quote", 187 + "syn 2.0.106", 188 + ] 189 + 190 + [[package]] 191 + name = "async-signal" 192 + version = "0.2.13" 193 + source = "registry+https://github.com/rust-lang/crates.io-index" 194 + checksum = "43c070bbf59cd3570b6b2dd54cd772527c7c3620fce8be898406dd3ed6adc64c" 195 + dependencies = [ 196 + "async-io", 197 + "async-lock", 198 + "atomic-waker", 199 + "cfg-if", 200 + "futures-core", 201 + "futures-io", 202 + "rustix 1.1.2", 203 + "signal-hook-registry", 204 + "slab", 205 + "windows-sys 0.61.0", 206 + ] 207 + 208 + [[package]] 209 + name = "async-task" 210 + version = "4.7.1" 211 + source = "registry+https://github.com/rust-lang/crates.io-index" 212 + checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" 213 + 214 + [[package]] 215 + name = "async-trait" 216 + version = "0.1.89" 217 + source = "registry+https://github.com/rust-lang/crates.io-index" 218 + checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" 219 + dependencies = [ 220 + "proc-macro2", 221 + "quote", 222 + "syn 2.0.106", 223 + ] 224 + 225 + [[package]] 226 + name = "atk" 227 + version = "0.18.2" 228 + source = "registry+https://github.com/rust-lang/crates.io-index" 229 + checksum = "241b621213072e993be4f6f3a9e4b45f65b7e6faad43001be957184b7bb1824b" 230 + dependencies = [ 231 + "atk-sys", 232 + "glib", 233 + "libc", 234 + ] 235 + 236 + [[package]] 237 + name = "atk-sys" 238 + version = "0.18.2" 239 + source = "registry+https://github.com/rust-lang/crates.io-index" 240 + checksum = "c5e48b684b0ca77d2bbadeef17424c2ea3c897d44d566a1617e7e8f30614d086" 241 + dependencies = [ 242 + "glib-sys", 243 + "gobject-sys", 244 + "libc", 245 + "system-deps", 246 + ] 247 + 248 + [[package]] 249 + name = "atomic-waker" 250 + version = "1.1.2" 251 + source = "registry+https://github.com/rust-lang/crates.io-index" 252 + checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" 253 + 254 + [[package]] 48 255 name = "atomicwrites" 49 256 version = "0.4.4" 50 257 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 78 285 79 286 [[package]] 80 287 name = "base64" 288 + version = "0.21.7" 289 + source = "registry+https://github.com/rust-lang/crates.io-index" 290 + checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" 291 + 292 + [[package]] 293 + name = "base64" 81 294 version = "0.22.1" 82 295 source = "registry+https://github.com/rust-lang/crates.io-index" 83 296 checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" 84 297 85 298 [[package]] 86 299 name = "bitflags" 300 + version = "1.3.2" 301 + source = "registry+https://github.com/rust-lang/crates.io-index" 302 + checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 303 + 304 + [[package]] 305 + name = "bitflags" 87 306 version = "2.9.4" 88 307 source = "registry+https://github.com/rust-lang/crates.io-index" 89 308 checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" 309 + dependencies = [ 310 + "serde", 311 + ] 312 + 313 + [[package]] 314 + name = "block-buffer" 315 + version = "0.10.4" 316 + source = "registry+https://github.com/rust-lang/crates.io-index" 317 + checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 318 + dependencies = [ 319 + "generic-array", 320 + ] 321 + 322 + [[package]] 323 + name = "block2" 324 + version = "0.5.1" 325 + source = "registry+https://github.com/rust-lang/crates.io-index" 326 + checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f" 327 + dependencies = [ 328 + "objc2 0.5.2", 329 + ] 330 + 331 + [[package]] 332 + name = "block2" 333 + version = "0.6.2" 334 + source = "registry+https://github.com/rust-lang/crates.io-index" 335 + checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5" 336 + dependencies = [ 337 + "objc2 0.6.2", 338 + ] 339 + 340 + [[package]] 341 + name = "blocking" 342 + version = "1.6.2" 343 + source = "registry+https://github.com/rust-lang/crates.io-index" 344 + checksum = "e83f8d02be6967315521be875afa792a316e28d57b5a2d401897e2a7921b7f21" 345 + dependencies = [ 346 + "async-channel", 347 + "async-task", 348 + "futures-io", 349 + "futures-lite", 350 + "piper", 351 + ] 352 + 353 + [[package]] 354 + name = "brotli" 355 + version = "8.0.2" 356 + source = "registry+https://github.com/rust-lang/crates.io-index" 357 + checksum = "4bd8b9603c7aa97359dbd97ecf258968c95f3adddd6db2f7e7a5bef101c84560" 358 + dependencies = [ 359 + "alloc-no-stdlib", 360 + "alloc-stdlib", 361 + "brotli-decompressor", 362 + ] 363 + 364 + [[package]] 365 + name = "brotli-decompressor" 366 + version = "5.0.0" 367 + source = "registry+https://github.com/rust-lang/crates.io-index" 368 + checksum = "874bb8112abecc98cbd6d81ea4fa7e94fb9449648c93cc89aa40c81c24d7de03" 369 + dependencies = [ 370 + "alloc-no-stdlib", 371 + "alloc-stdlib", 372 + ] 90 373 91 374 [[package]] 92 375 name = "bumpalo" ··· 113 396 checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" 114 397 115 398 [[package]] 399 + name = "bytes" 400 + version = "1.11.1" 401 + source = "registry+https://github.com/rust-lang/crates.io-index" 402 + checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" 403 + dependencies = [ 404 + "serde", 405 + ] 406 + 407 + [[package]] 408 + name = "cairo-rs" 409 + version = "0.18.5" 410 + source = "registry+https://github.com/rust-lang/crates.io-index" 411 + checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2" 412 + dependencies = [ 413 + "bitflags 2.9.4", 414 + "cairo-sys-rs", 415 + "glib", 416 + "libc", 417 + "once_cell", 418 + "thiserror 1.0.69", 419 + ] 420 + 421 + [[package]] 422 + name = "cairo-sys-rs" 423 + version = "0.18.2" 424 + source = "registry+https://github.com/rust-lang/crates.io-index" 425 + checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51" 426 + dependencies = [ 427 + "glib-sys", 428 + "libc", 429 + "system-deps", 430 + ] 431 + 432 + [[package]] 433 + name = "camino" 434 + version = "1.2.2" 435 + source = "registry+https://github.com/rust-lang/crates.io-index" 436 + checksum = "e629a66d692cb9ff1a1c664e41771b3dcaf961985a9774c0eb0bd1b51cf60a48" 437 + dependencies = [ 438 + "serde_core", 439 + ] 440 + 441 + [[package]] 442 + name = "cargo-platform" 443 + version = "0.1.9" 444 + source = "registry+https://github.com/rust-lang/crates.io-index" 445 + checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" 446 + dependencies = [ 447 + "serde", 448 + ] 449 + 450 + [[package]] 451 + name = "cargo_metadata" 452 + version = "0.19.2" 453 + source = "registry+https://github.com/rust-lang/crates.io-index" 454 + checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba" 455 + dependencies = [ 456 + "camino", 457 + "cargo-platform", 458 + "semver", 459 + "serde", 460 + "serde_json", 461 + "thiserror 2.0.16", 462 + ] 463 + 464 + [[package]] 465 + name = "cargo_toml" 466 + version = "0.22.3" 467 + source = "registry+https://github.com/rust-lang/crates.io-index" 468 + checksum = "374b7c592d9c00c1f4972ea58390ac6b18cbb6ab79011f3bdc90a0b82ca06b77" 469 + dependencies = [ 470 + "serde", 471 + "toml 0.9.12+spec-1.1.0", 472 + ] 473 + 474 + [[package]] 116 475 name = "cc" 117 476 version = "1.2.37" 118 477 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 123 482 ] 124 483 125 484 [[package]] 485 + name = "cesu8" 486 + version = "1.1.0" 487 + source = "registry+https://github.com/rust-lang/crates.io-index" 488 + checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" 489 + 490 + [[package]] 491 + name = "cfb" 492 + version = "0.7.3" 493 + source = "registry+https://github.com/rust-lang/crates.io-index" 494 + checksum = "d38f2da7a0a2c4ccf0065be06397cc26a81f4e528be095826eee9d4adbb8c60f" 495 + dependencies = [ 496 + "byteorder", 497 + "fnv", 498 + "uuid", 499 + ] 500 + 501 + [[package]] 502 + name = "cfg-expr" 503 + version = "0.15.8" 504 + source = "registry+https://github.com/rust-lang/crates.io-index" 505 + checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" 506 + dependencies = [ 507 + "smallvec", 508 + "target-lexicon", 509 + ] 510 + 511 + [[package]] 126 512 name = "cfg-if" 127 513 version = "1.0.3" 128 514 source = "registry+https://github.com/rust-lang/crates.io-index" 129 515 checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" 516 + 517 + [[package]] 518 + name = "cfg_aliases" 519 + version = "0.2.1" 520 + source = "registry+https://github.com/rust-lang/crates.io-index" 521 + checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" 130 522 131 523 [[package]] 132 524 name = "chrono" ··· 137 529 "iana-time-zone", 138 530 "js-sys", 139 531 "num-traits", 532 + "serde", 140 533 "wasm-bindgen", 141 534 "windows-link 0.2.0", 142 535 ] 143 536 144 537 [[package]] 538 + name = "combine" 539 + version = "4.6.7" 540 + source = "registry+https://github.com/rust-lang/crates.io-index" 541 + checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" 542 + dependencies = [ 543 + "bytes", 544 + "memchr", 545 + ] 546 + 547 + [[package]] 548 + name = "concurrent-queue" 549 + version = "2.5.0" 550 + source = "registry+https://github.com/rust-lang/crates.io-index" 551 + checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" 552 + dependencies = [ 553 + "crossbeam-utils", 554 + ] 555 + 556 + [[package]] 557 + name = "convert_case" 558 + version = "0.4.0" 559 + source = "registry+https://github.com/rust-lang/crates.io-index" 560 + checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" 561 + 562 + [[package]] 145 563 name = "convert_case" 146 564 version = "0.8.0" 147 565 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 151 569 ] 152 570 153 571 [[package]] 572 + name = "cookie" 573 + version = "0.18.1" 574 + source = "registry+https://github.com/rust-lang/crates.io-index" 575 + checksum = "4ddef33a339a91ea89fb53151bd0a4689cfce27055c291dfa69945475d22c747" 576 + dependencies = [ 577 + "time", 578 + "version_check", 579 + ] 580 + 581 + [[package]] 582 + name = "core-foundation" 583 + version = "0.10.1" 584 + source = "registry+https://github.com/rust-lang/crates.io-index" 585 + checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" 586 + dependencies = [ 587 + "core-foundation-sys", 588 + "libc", 589 + ] 590 + 591 + [[package]] 154 592 name = "core-foundation-sys" 155 593 version = "0.8.7" 156 594 source = "registry+https://github.com/rust-lang/crates.io-index" 157 595 checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" 158 596 159 597 [[package]] 598 + name = "core-graphics" 599 + version = "0.24.0" 600 + source = "registry+https://github.com/rust-lang/crates.io-index" 601 + checksum = "fa95a34622365fa5bbf40b20b75dba8dfa8c94c734aea8ac9a5ca38af14316f1" 602 + dependencies = [ 603 + "bitflags 2.9.4", 604 + "core-foundation", 605 + "core-graphics-types", 606 + "foreign-types", 607 + "libc", 608 + ] 609 + 610 + [[package]] 611 + name = "core-graphics-types" 612 + version = "0.2.0" 613 + source = "registry+https://github.com/rust-lang/crates.io-index" 614 + checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" 615 + dependencies = [ 616 + "bitflags 2.9.4", 617 + "core-foundation", 618 + "libc", 619 + ] 620 + 621 + [[package]] 622 + name = "cpufeatures" 623 + version = "0.2.17" 624 + source = "registry+https://github.com/rust-lang/crates.io-index" 625 + checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" 626 + dependencies = [ 627 + "libc", 628 + ] 629 + 630 + [[package]] 160 631 name = "crc32fast" 161 632 version = "1.5.0" 162 633 source = "registry+https://github.com/rust-lang/crates.io-index" 163 634 checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" 164 635 dependencies = [ 165 636 "cfg-if", 637 + ] 638 + 639 + [[package]] 640 + name = "crossbeam-channel" 641 + version = "0.5.15" 642 + source = "registry+https://github.com/rust-lang/crates.io-index" 643 + checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" 644 + dependencies = [ 645 + "crossbeam-utils", 166 646 ] 167 647 168 648 [[package]] ··· 191 671 checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" 192 672 193 673 [[package]] 674 + name = "crypto-common" 675 + version = "0.1.7" 676 + source = "registry+https://github.com/rust-lang/crates.io-index" 677 + checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" 678 + dependencies = [ 679 + "generic-array", 680 + "typenum", 681 + ] 682 + 683 + [[package]] 684 + name = "cssparser" 685 + version = "0.29.6" 686 + source = "registry+https://github.com/rust-lang/crates.io-index" 687 + checksum = "f93d03419cb5950ccfd3daf3ff1c7a36ace64609a1a8746d493df1ca0afde0fa" 688 + dependencies = [ 689 + "cssparser-macros", 690 + "dtoa-short", 691 + "itoa", 692 + "matches", 693 + "phf 0.10.1", 694 + "proc-macro2", 695 + "quote", 696 + "smallvec", 697 + "syn 1.0.109", 698 + ] 699 + 700 + [[package]] 701 + name = "cssparser-macros" 702 + version = "0.6.1" 703 + source = "registry+https://github.com/rust-lang/crates.io-index" 704 + checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" 705 + dependencies = [ 706 + "quote", 707 + "syn 2.0.106", 708 + ] 709 + 710 + [[package]] 711 + name = "ctor" 712 + version = "0.2.9" 713 + source = "registry+https://github.com/rust-lang/crates.io-index" 714 + checksum = "32a2785755761f3ddc1492979ce1e48d2c00d09311c39e4466429188f3dd6501" 715 + dependencies = [ 716 + "quote", 717 + "syn 2.0.106", 718 + ] 719 + 720 + [[package]] 194 721 name = "ctor" 195 722 version = "0.5.0" 196 723 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 207 734 checksum = "e2931af7e13dc045d8e9d26afccc6fa115d64e115c9c84b1166288b46f6782c2" 208 735 209 736 [[package]] 737 + name = "darling" 738 + version = "0.21.3" 739 + source = "registry+https://github.com/rust-lang/crates.io-index" 740 + checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" 741 + dependencies = [ 742 + "darling_core", 743 + "darling_macro", 744 + ] 745 + 746 + [[package]] 747 + name = "darling_core" 748 + version = "0.21.3" 749 + source = "registry+https://github.com/rust-lang/crates.io-index" 750 + checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" 751 + dependencies = [ 752 + "fnv", 753 + "ident_case", 754 + "proc-macro2", 755 + "quote", 756 + "strsim", 757 + "syn 2.0.106", 758 + ] 759 + 760 + [[package]] 761 + name = "darling_macro" 762 + version = "0.21.3" 763 + source = "registry+https://github.com/rust-lang/crates.io-index" 764 + checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" 765 + dependencies = [ 766 + "darling_core", 767 + "quote", 768 + "syn 2.0.106", 769 + ] 770 + 771 + [[package]] 210 772 name = "data-encoding" 211 773 version = "2.9.0" 212 774 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 223 785 ] 224 786 225 787 [[package]] 788 + name = "derive_more" 789 + version = "0.99.20" 790 + source = "registry+https://github.com/rust-lang/crates.io-index" 791 + checksum = "6edb4b64a43d977b8e99788fe3a04d483834fba1215a7e02caa415b626497f7f" 792 + dependencies = [ 793 + "convert_case 0.4.0", 794 + "proc-macro2", 795 + "quote", 796 + "rustc_version", 797 + "syn 2.0.106", 798 + ] 799 + 800 + [[package]] 801 + name = "digest" 802 + version = "0.10.7" 803 + source = "registry+https://github.com/rust-lang/crates.io-index" 804 + checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" 805 + dependencies = [ 806 + "block-buffer", 807 + "crypto-common", 808 + ] 809 + 810 + [[package]] 811 + name = "dirs" 812 + version = "6.0.0" 813 + source = "registry+https://github.com/rust-lang/crates.io-index" 814 + checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" 815 + dependencies = [ 816 + "dirs-sys", 817 + ] 818 + 819 + [[package]] 226 820 name = "dirs-next" 227 821 version = "2.0.0" 228 822 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 233 827 ] 234 828 235 829 [[package]] 830 + name = "dirs-sys" 831 + version = "0.5.0" 832 + source = "registry+https://github.com/rust-lang/crates.io-index" 833 + checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" 834 + dependencies = [ 835 + "libc", 836 + "option-ext", 837 + "redox_users 0.5.2", 838 + "windows-sys 0.61.0", 839 + ] 840 + 841 + [[package]] 236 842 name = "dirs-sys-next" 237 843 version = "0.1.2" 238 844 source = "registry+https://github.com/rust-lang/crates.io-index" 239 845 checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" 240 846 dependencies = [ 241 847 "libc", 242 - "redox_users", 848 + "redox_users 0.4.6", 243 849 "winapi", 244 850 ] 245 851 246 852 [[package]] 853 + name = "dispatch" 854 + version = "0.2.0" 855 + source = "registry+https://github.com/rust-lang/crates.io-index" 856 + checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" 857 + 858 + [[package]] 859 + name = "dispatch2" 860 + version = "0.3.1" 861 + source = "registry+https://github.com/rust-lang/crates.io-index" 862 + checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" 863 + dependencies = [ 864 + "bitflags 2.9.4", 865 + "block2 0.6.2", 866 + "libc", 867 + "objc2 0.6.2", 868 + ] 869 + 870 + [[package]] 247 871 name = "displaydoc" 248 872 version = "0.2.5" 249 873 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 251 875 dependencies = [ 252 876 "proc-macro2", 253 877 "quote", 254 - "syn", 878 + "syn 2.0.106", 879 + ] 880 + 881 + [[package]] 882 + name = "dlopen2" 883 + version = "0.8.2" 884 + source = "registry+https://github.com/rust-lang/crates.io-index" 885 + checksum = "5e2c5bd4158e66d1e215c49b837e11d62f3267b30c92f1d171c4d3105e3dc4d4" 886 + dependencies = [ 887 + "dlopen2_derive", 888 + "libc", 889 + "once_cell", 890 + "winapi", 891 + ] 892 + 893 + [[package]] 894 + name = "dlopen2_derive" 895 + version = "0.4.3" 896 + source = "registry+https://github.com/rust-lang/crates.io-index" 897 + checksum = "0fbbb781877580993a8707ec48672673ec7b81eeba04cfd2310bd28c08e47c8f" 898 + dependencies = [ 899 + "proc-macro2", 900 + "quote", 901 + "syn 2.0.106", 255 902 ] 256 903 257 904 [[package]] ··· 264 911 ] 265 912 266 913 [[package]] 914 + name = "dpi" 915 + version = "0.1.2" 916 + source = "registry+https://github.com/rust-lang/crates.io-index" 917 + checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76" 918 + dependencies = [ 919 + "serde", 920 + ] 921 + 922 + [[package]] 923 + name = "dtoa" 924 + version = "1.0.11" 925 + source = "registry+https://github.com/rust-lang/crates.io-index" 926 + checksum = "4c3cf4824e2d5f025c7b531afcb2325364084a16806f6d47fbc1f5fbd9960590" 927 + 928 + [[package]] 929 + name = "dtoa-short" 930 + version = "0.3.5" 931 + source = "registry+https://github.com/rust-lang/crates.io-index" 932 + checksum = "cd1511a7b6a56299bd043a9c167a6d2bfb37bf84a6dfceaba651168adfb43c87" 933 + dependencies = [ 934 + "dtoa", 935 + ] 936 + 937 + [[package]] 267 938 name = "dtor" 268 939 version = "0.1.0" 269 940 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 279 950 checksum = "f678cf4a922c215c63e0de95eb1ff08a958a81d47e485cf9da1e27bf6305cfa5" 280 951 281 952 [[package]] 953 + name = "dunce" 954 + version = "1.0.5" 955 + source = "registry+https://github.com/rust-lang/crates.io-index" 956 + checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" 957 + 958 + [[package]] 959 + name = "dyn-clone" 960 + version = "1.0.20" 961 + source = "registry+https://github.com/rust-lang/crates.io-index" 962 + checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" 963 + 964 + [[package]] 282 965 name = "either" 283 966 version = "1.15.0" 284 967 source = "registry+https://github.com/rust-lang/crates.io-index" 285 968 checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" 286 969 287 970 [[package]] 971 + name = "embed-resource" 972 + version = "3.0.6" 973 + source = "registry+https://github.com/rust-lang/crates.io-index" 974 + checksum = "55a075fc573c64510038d7ee9abc7990635863992f83ebc52c8b433b8411a02e" 975 + dependencies = [ 976 + "cc", 977 + "memchr", 978 + "rustc_version", 979 + "toml 0.9.12+spec-1.1.0", 980 + "vswhom", 981 + "winreg", 982 + ] 983 + 984 + [[package]] 985 + name = "embed_plist" 986 + version = "1.2.2" 987 + source = "registry+https://github.com/rust-lang/crates.io-index" 988 + checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" 989 + 990 + [[package]] 991 + name = "endi" 992 + version = "1.1.1" 993 + source = "registry+https://github.com/rust-lang/crates.io-index" 994 + checksum = "66b7e2430c6dff6a955451e2cfc438f09cea1965a9d6f87f7e3b90decc014099" 995 + 996 + [[package]] 997 + name = "enumflags2" 998 + version = "0.7.12" 999 + source = "registry+https://github.com/rust-lang/crates.io-index" 1000 + checksum = "1027f7680c853e056ebcec683615fb6fbbc07dbaa13b4d5d9442b146ded4ecef" 1001 + dependencies = [ 1002 + "enumflags2_derive", 1003 + "serde", 1004 + ] 1005 + 1006 + [[package]] 1007 + name = "enumflags2_derive" 1008 + version = "0.7.12" 1009 + source = "registry+https://github.com/rust-lang/crates.io-index" 1010 + checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827" 1011 + dependencies = [ 1012 + "proc-macro2", 1013 + "quote", 1014 + "syn 2.0.106", 1015 + ] 1016 + 1017 + [[package]] 1018 + name = "env_filter" 1019 + version = "0.1.4" 1020 + source = "registry+https://github.com/rust-lang/crates.io-index" 1021 + checksum = "1bf3c259d255ca70051b30e2e95b5446cdb8949ac4cd22c0d7fd634d89f568e2" 1022 + dependencies = [ 1023 + "log", 1024 + "regex", 1025 + ] 1026 + 1027 + [[package]] 288 1028 name = "equivalent" 289 1029 version = "1.0.2" 290 1030 source = "registry+https://github.com/rust-lang/crates.io-index" 291 1031 checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" 292 1032 293 1033 [[package]] 1034 + name = "erased-serde" 1035 + version = "0.4.10" 1036 + source = "registry+https://github.com/rust-lang/crates.io-index" 1037 + checksum = "d2add8a07dd6a8d93ff627029c51de145e12686fbc36ecb298ac22e74cf02dec" 1038 + dependencies = [ 1039 + "serde", 1040 + "serde_core", 1041 + "typeid", 1042 + ] 1043 + 1044 + [[package]] 294 1045 name = "errno" 295 1046 version = "0.3.14" 296 1047 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 301 1052 ] 302 1053 303 1054 [[package]] 1055 + name = "event-listener" 1056 + version = "5.4.1" 1057 + source = "registry+https://github.com/rust-lang/crates.io-index" 1058 + checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" 1059 + dependencies = [ 1060 + "concurrent-queue", 1061 + "parking", 1062 + "pin-project-lite", 1063 + ] 1064 + 1065 + [[package]] 1066 + name = "event-listener-strategy" 1067 + version = "0.5.4" 1068 + source = "registry+https://github.com/rust-lang/crates.io-index" 1069 + checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" 1070 + dependencies = [ 1071 + "event-listener", 1072 + "pin-project-lite", 1073 + ] 1074 + 1075 + [[package]] 304 1076 name = "fast_image_resize" 305 1077 version = "5.3.0" 306 1078 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 354 1126 "serde", 355 1127 "serde_json", 356 1128 "simd-json", 1129 + "specta", 357 1130 "time", 358 1131 "tokio", 359 1132 "trash", ··· 362 1135 ] 363 1136 364 1137 [[package]] 1138 + name = "ferrum_mobile" 1139 + version = "0.0.0" 1140 + dependencies = [ 1141 + "android_logger", 1142 + "anyhow", 1143 + "ferrum", 1144 + "log", 1145 + "serde", 1146 + "serde_json", 1147 + "simd-json", 1148 + "specta", 1149 + "specta-typescript", 1150 + "tauri", 1151 + "tauri-build", 1152 + "tauri-plugin-dialog", 1153 + "tauri-plugin-fs", 1154 + "tauri-plugin-opener", 1155 + "tauri-plugin-safe-area-insets-css", 1156 + "tauri-plugin-store", 1157 + "tauri-specta", 1158 + ] 1159 + 1160 + [[package]] 1161 + name = "field-offset" 1162 + version = "0.3.6" 1163 + source = "registry+https://github.com/rust-lang/crates.io-index" 1164 + checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" 1165 + dependencies = [ 1166 + "memoffset", 1167 + "rustc_version", 1168 + ] 1169 + 1170 + [[package]] 365 1171 name = "find-msvc-tools" 366 1172 version = "0.1.1" 367 1173 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 387 1193 ] 388 1194 389 1195 [[package]] 1196 + name = "fnv" 1197 + version = "1.0.7" 1198 + source = "registry+https://github.com/rust-lang/crates.io-index" 1199 + checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 1200 + 1201 + [[package]] 390 1202 name = "foldhash" 391 1203 version = "0.1.5" 392 1204 source = "registry+https://github.com/rust-lang/crates.io-index" 393 1205 checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" 394 1206 395 1207 [[package]] 1208 + name = "foreign-types" 1209 + version = "0.5.0" 1210 + source = "registry+https://github.com/rust-lang/crates.io-index" 1211 + checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" 1212 + dependencies = [ 1213 + "foreign-types-macros", 1214 + "foreign-types-shared", 1215 + ] 1216 + 1217 + [[package]] 1218 + name = "foreign-types-macros" 1219 + version = "0.2.3" 1220 + source = "registry+https://github.com/rust-lang/crates.io-index" 1221 + checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" 1222 + dependencies = [ 1223 + "proc-macro2", 1224 + "quote", 1225 + "syn 2.0.106", 1226 + ] 1227 + 1228 + [[package]] 1229 + name = "foreign-types-shared" 1230 + version = "0.3.1" 1231 + source = "registry+https://github.com/rust-lang/crates.io-index" 1232 + checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" 1233 + 1234 + [[package]] 396 1235 name = "form_urlencoded" 397 1236 version = "1.2.2" 398 1237 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 402 1241 ] 403 1242 404 1243 [[package]] 1244 + name = "futf" 1245 + version = "0.1.5" 1246 + source = "registry+https://github.com/rust-lang/crates.io-index" 1247 + checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" 1248 + dependencies = [ 1249 + "mac", 1250 + "new_debug_unreachable", 1251 + ] 1252 + 1253 + [[package]] 1254 + name = "futures-channel" 1255 + version = "0.3.32" 1256 + source = "registry+https://github.com/rust-lang/crates.io-index" 1257 + checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d" 1258 + dependencies = [ 1259 + "futures-core", 1260 + ] 1261 + 1262 + [[package]] 1263 + name = "futures-core" 1264 + version = "0.3.32" 1265 + source = "registry+https://github.com/rust-lang/crates.io-index" 1266 + checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" 1267 + 1268 + [[package]] 1269 + name = "futures-executor" 1270 + version = "0.3.32" 1271 + source = "registry+https://github.com/rust-lang/crates.io-index" 1272 + checksum = "baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d" 1273 + dependencies = [ 1274 + "futures-core", 1275 + "futures-task", 1276 + "futures-util", 1277 + ] 1278 + 1279 + [[package]] 1280 + name = "futures-io" 1281 + version = "0.3.32" 1282 + source = "registry+https://github.com/rust-lang/crates.io-index" 1283 + checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" 1284 + 1285 + [[package]] 1286 + name = "futures-lite" 1287 + version = "2.6.1" 1288 + source = "registry+https://github.com/rust-lang/crates.io-index" 1289 + checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad" 1290 + dependencies = [ 1291 + "fastrand", 1292 + "futures-core", 1293 + "futures-io", 1294 + "parking", 1295 + "pin-project-lite", 1296 + ] 1297 + 1298 + [[package]] 1299 + name = "futures-macro" 1300 + version = "0.3.32" 1301 + source = "registry+https://github.com/rust-lang/crates.io-index" 1302 + checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" 1303 + dependencies = [ 1304 + "proc-macro2", 1305 + "quote", 1306 + "syn 2.0.106", 1307 + ] 1308 + 1309 + [[package]] 1310 + name = "futures-sink" 1311 + version = "0.3.32" 1312 + source = "registry+https://github.com/rust-lang/crates.io-index" 1313 + checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893" 1314 + 1315 + [[package]] 1316 + name = "futures-task" 1317 + version = "0.3.32" 1318 + source = "registry+https://github.com/rust-lang/crates.io-index" 1319 + checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" 1320 + 1321 + [[package]] 1322 + name = "futures-util" 1323 + version = "0.3.32" 1324 + source = "registry+https://github.com/rust-lang/crates.io-index" 1325 + checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" 1326 + dependencies = [ 1327 + "futures-core", 1328 + "futures-io", 1329 + "futures-macro", 1330 + "futures-sink", 1331 + "futures-task", 1332 + "memchr", 1333 + "pin-project-lite", 1334 + "slab", 1335 + ] 1336 + 1337 + [[package]] 1338 + name = "fxhash" 1339 + version = "0.2.1" 1340 + source = "registry+https://github.com/rust-lang/crates.io-index" 1341 + checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" 1342 + dependencies = [ 1343 + "byteorder", 1344 + ] 1345 + 1346 + [[package]] 1347 + name = "gdk" 1348 + version = "0.18.2" 1349 + source = "registry+https://github.com/rust-lang/crates.io-index" 1350 + checksum = "d9f245958c627ac99d8e529166f9823fb3b838d1d41fd2b297af3075093c2691" 1351 + dependencies = [ 1352 + "cairo-rs", 1353 + "gdk-pixbuf", 1354 + "gdk-sys", 1355 + "gio", 1356 + "glib", 1357 + "libc", 1358 + "pango", 1359 + ] 1360 + 1361 + [[package]] 1362 + name = "gdk-pixbuf" 1363 + version = "0.18.5" 1364 + source = "registry+https://github.com/rust-lang/crates.io-index" 1365 + checksum = "50e1f5f1b0bfb830d6ccc8066d18db35c487b1b2b1e8589b5dfe9f07e8defaec" 1366 + dependencies = [ 1367 + "gdk-pixbuf-sys", 1368 + "gio", 1369 + "glib", 1370 + "libc", 1371 + "once_cell", 1372 + ] 1373 + 1374 + [[package]] 1375 + name = "gdk-pixbuf-sys" 1376 + version = "0.18.0" 1377 + source = "registry+https://github.com/rust-lang/crates.io-index" 1378 + checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7" 1379 + dependencies = [ 1380 + "gio-sys", 1381 + "glib-sys", 1382 + "gobject-sys", 1383 + "libc", 1384 + "system-deps", 1385 + ] 1386 + 1387 + [[package]] 1388 + name = "gdk-sys" 1389 + version = "0.18.2" 1390 + source = "registry+https://github.com/rust-lang/crates.io-index" 1391 + checksum = "5c2d13f38594ac1e66619e188c6d5a1adb98d11b2fcf7894fc416ad76aa2f3f7" 1392 + dependencies = [ 1393 + "cairo-sys-rs", 1394 + "gdk-pixbuf-sys", 1395 + "gio-sys", 1396 + "glib-sys", 1397 + "gobject-sys", 1398 + "libc", 1399 + "pango-sys", 1400 + "pkg-config", 1401 + "system-deps", 1402 + ] 1403 + 1404 + [[package]] 1405 + name = "gdkwayland-sys" 1406 + version = "0.18.2" 1407 + source = "registry+https://github.com/rust-lang/crates.io-index" 1408 + checksum = "140071d506d223f7572b9f09b5e155afbd77428cd5cc7af8f2694c41d98dfe69" 1409 + dependencies = [ 1410 + "gdk-sys", 1411 + "glib-sys", 1412 + "gobject-sys", 1413 + "libc", 1414 + "pkg-config", 1415 + "system-deps", 1416 + ] 1417 + 1418 + [[package]] 1419 + name = "gdkx11" 1420 + version = "0.18.2" 1421 + source = "registry+https://github.com/rust-lang/crates.io-index" 1422 + checksum = "3caa00e14351bebbc8183b3c36690327eb77c49abc2268dd4bd36b856db3fbfe" 1423 + dependencies = [ 1424 + "gdk", 1425 + "gdkx11-sys", 1426 + "gio", 1427 + "glib", 1428 + "libc", 1429 + "x11", 1430 + ] 1431 + 1432 + [[package]] 1433 + name = "gdkx11-sys" 1434 + version = "0.18.2" 1435 + source = "registry+https://github.com/rust-lang/crates.io-index" 1436 + checksum = "6e2e7445fe01ac26f11601db260dd8608fe172514eb63b3b5e261ea6b0f4428d" 1437 + dependencies = [ 1438 + "gdk-sys", 1439 + "glib-sys", 1440 + "libc", 1441 + "system-deps", 1442 + "x11", 1443 + ] 1444 + 1445 + [[package]] 1446 + name = "generic-array" 1447 + version = "0.14.7" 1448 + source = "registry+https://github.com/rust-lang/crates.io-index" 1449 + checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" 1450 + dependencies = [ 1451 + "typenum", 1452 + "version_check", 1453 + ] 1454 + 1455 + [[package]] 1456 + name = "getrandom" 1457 + version = "0.1.16" 1458 + source = "registry+https://github.com/rust-lang/crates.io-index" 1459 + checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" 1460 + dependencies = [ 1461 + "cfg-if", 1462 + "libc", 1463 + "wasi 0.9.0+wasi-snapshot-preview1", 1464 + ] 1465 + 1466 + [[package]] 405 1467 name = "getrandom" 406 1468 version = "0.2.16" 407 1469 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 420 1482 dependencies = [ 421 1483 "cfg-if", 422 1484 "libc", 423 - "r-efi", 1485 + "r-efi 5.3.0", 424 1486 "wasi 0.14.5+wasi-0.2.4", 425 1487 ] 426 1488 427 1489 [[package]] 1490 + name = "getrandom" 1491 + version = "0.4.2" 1492 + source = "registry+https://github.com/rust-lang/crates.io-index" 1493 + checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" 1494 + dependencies = [ 1495 + "cfg-if", 1496 + "libc", 1497 + "r-efi 6.0.0", 1498 + "wasip2", 1499 + "wasip3", 1500 + ] 1501 + 1502 + [[package]] 428 1503 name = "gimli" 429 1504 version = "0.31.1" 430 1505 source = "registry+https://github.com/rust-lang/crates.io-index" 431 1506 checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" 432 1507 433 1508 [[package]] 1509 + name = "gio" 1510 + version = "0.18.4" 1511 + source = "registry+https://github.com/rust-lang/crates.io-index" 1512 + checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73" 1513 + dependencies = [ 1514 + "futures-channel", 1515 + "futures-core", 1516 + "futures-io", 1517 + "futures-util", 1518 + "gio-sys", 1519 + "glib", 1520 + "libc", 1521 + "once_cell", 1522 + "pin-project-lite", 1523 + "smallvec", 1524 + "thiserror 1.0.69", 1525 + ] 1526 + 1527 + [[package]] 1528 + name = "gio-sys" 1529 + version = "0.18.1" 1530 + source = "registry+https://github.com/rust-lang/crates.io-index" 1531 + checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2" 1532 + dependencies = [ 1533 + "glib-sys", 1534 + "gobject-sys", 1535 + "libc", 1536 + "system-deps", 1537 + "winapi", 1538 + ] 1539 + 1540 + [[package]] 1541 + name = "glib" 1542 + version = "0.18.5" 1543 + source = "registry+https://github.com/rust-lang/crates.io-index" 1544 + checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5" 1545 + dependencies = [ 1546 + "bitflags 2.9.4", 1547 + "futures-channel", 1548 + "futures-core", 1549 + "futures-executor", 1550 + "futures-task", 1551 + "futures-util", 1552 + "gio-sys", 1553 + "glib-macros", 1554 + "glib-sys", 1555 + "gobject-sys", 1556 + "libc", 1557 + "memchr", 1558 + "once_cell", 1559 + "smallvec", 1560 + "thiserror 1.0.69", 1561 + ] 1562 + 1563 + [[package]] 1564 + name = "glib-macros" 1565 + version = "0.18.5" 1566 + source = "registry+https://github.com/rust-lang/crates.io-index" 1567 + checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc" 1568 + dependencies = [ 1569 + "heck 0.4.1", 1570 + "proc-macro-crate 2.0.2", 1571 + "proc-macro-error", 1572 + "proc-macro2", 1573 + "quote", 1574 + "syn 2.0.106", 1575 + ] 1576 + 1577 + [[package]] 1578 + name = "glib-sys" 1579 + version = "0.18.1" 1580 + source = "registry+https://github.com/rust-lang/crates.io-index" 1581 + checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898" 1582 + dependencies = [ 1583 + "libc", 1584 + "system-deps", 1585 + ] 1586 + 1587 + [[package]] 1588 + name = "glob" 1589 + version = "0.3.3" 1590 + source = "registry+https://github.com/rust-lang/crates.io-index" 1591 + checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" 1592 + 1593 + [[package]] 1594 + name = "gobject-sys" 1595 + version = "0.18.0" 1596 + source = "registry+https://github.com/rust-lang/crates.io-index" 1597 + checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44" 1598 + dependencies = [ 1599 + "glib-sys", 1600 + "libc", 1601 + "system-deps", 1602 + ] 1603 + 1604 + [[package]] 1605 + name = "gtk" 1606 + version = "0.18.2" 1607 + source = "registry+https://github.com/rust-lang/crates.io-index" 1608 + checksum = "fd56fb197bfc42bd5d2751f4f017d44ff59fbb58140c6b49f9b3b2bdab08506a" 1609 + dependencies = [ 1610 + "atk", 1611 + "cairo-rs", 1612 + "field-offset", 1613 + "futures-channel", 1614 + "gdk", 1615 + "gdk-pixbuf", 1616 + "gio", 1617 + "glib", 1618 + "gtk-sys", 1619 + "gtk3-macros", 1620 + "libc", 1621 + "pango", 1622 + "pkg-config", 1623 + ] 1624 + 1625 + [[package]] 1626 + name = "gtk-sys" 1627 + version = "0.18.2" 1628 + source = "registry+https://github.com/rust-lang/crates.io-index" 1629 + checksum = "8f29a1c21c59553eb7dd40e918be54dccd60c52b049b75119d5d96ce6b624414" 1630 + dependencies = [ 1631 + "atk-sys", 1632 + "cairo-sys-rs", 1633 + "gdk-pixbuf-sys", 1634 + "gdk-sys", 1635 + "gio-sys", 1636 + "glib-sys", 1637 + "gobject-sys", 1638 + "libc", 1639 + "pango-sys", 1640 + "system-deps", 1641 + ] 1642 + 1643 + [[package]] 1644 + name = "gtk3-macros" 1645 + version = "0.18.2" 1646 + source = "registry+https://github.com/rust-lang/crates.io-index" 1647 + checksum = "52ff3c5b21f14f0736fed6dcfc0bfb4225ebf5725f3c0209edeec181e4d73e9d" 1648 + dependencies = [ 1649 + "proc-macro-crate 1.3.1", 1650 + "proc-macro-error", 1651 + "proc-macro2", 1652 + "quote", 1653 + "syn 2.0.106", 1654 + ] 1655 + 1656 + [[package]] 434 1657 name = "halfbrown" 435 1658 version = "0.3.0" 436 1659 source = "registry+https://github.com/rust-lang/crates.io-index" 437 1660 checksum = "aa2c385c6df70fd180bbb673d93039dbd2cd34e41d782600bdf6e1ca7bce39aa" 438 1661 dependencies = [ 439 - "hashbrown", 1662 + "hashbrown 0.15.5", 440 1663 "serde", 441 1664 ] 442 1665 443 1666 [[package]] 444 1667 name = "hashbrown" 1668 + version = "0.12.3" 1669 + source = "registry+https://github.com/rust-lang/crates.io-index" 1670 + checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" 1671 + 1672 + [[package]] 1673 + name = "hashbrown" 445 1674 version = "0.15.5" 446 1675 source = "registry+https://github.com/rust-lang/crates.io-index" 447 1676 checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" ··· 452 1681 ] 453 1682 454 1683 [[package]] 1684 + name = "hashbrown" 1685 + version = "0.16.1" 1686 + source = "registry+https://github.com/rust-lang/crates.io-index" 1687 + checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" 1688 + 1689 + [[package]] 1690 + name = "heck" 1691 + version = "0.4.1" 1692 + source = "registry+https://github.com/rust-lang/crates.io-index" 1693 + checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" 1694 + 1695 + [[package]] 1696 + name = "heck" 1697 + version = "0.5.0" 1698 + source = "registry+https://github.com/rust-lang/crates.io-index" 1699 + checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" 1700 + 1701 + [[package]] 1702 + name = "hermit-abi" 1703 + version = "0.5.2" 1704 + source = "registry+https://github.com/rust-lang/crates.io-index" 1705 + checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" 1706 + 1707 + [[package]] 1708 + name = "hex" 1709 + version = "0.4.3" 1710 + source = "registry+https://github.com/rust-lang/crates.io-index" 1711 + checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" 1712 + 1713 + [[package]] 1714 + name = "html5ever" 1715 + version = "0.29.1" 1716 + source = "registry+https://github.com/rust-lang/crates.io-index" 1717 + checksum = "3b7410cae13cbc75623c98ac4cbfd1f0bedddf3227afc24f370cf0f50a44a11c" 1718 + dependencies = [ 1719 + "log", 1720 + "mac", 1721 + "markup5ever", 1722 + "match_token", 1723 + ] 1724 + 1725 + [[package]] 1726 + name = "http" 1727 + version = "1.4.0" 1728 + source = "registry+https://github.com/rust-lang/crates.io-index" 1729 + checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" 1730 + dependencies = [ 1731 + "bytes", 1732 + "itoa", 1733 + ] 1734 + 1735 + [[package]] 1736 + name = "http-body" 1737 + version = "1.0.1" 1738 + source = "registry+https://github.com/rust-lang/crates.io-index" 1739 + checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" 1740 + dependencies = [ 1741 + "bytes", 1742 + "http", 1743 + ] 1744 + 1745 + [[package]] 1746 + name = "http-body-util" 1747 + version = "0.1.3" 1748 + source = "registry+https://github.com/rust-lang/crates.io-index" 1749 + checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" 1750 + dependencies = [ 1751 + "bytes", 1752 + "futures-core", 1753 + "http", 1754 + "http-body", 1755 + "pin-project-lite", 1756 + ] 1757 + 1758 + [[package]] 1759 + name = "httparse" 1760 + version = "1.10.1" 1761 + source = "registry+https://github.com/rust-lang/crates.io-index" 1762 + checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" 1763 + 1764 + [[package]] 1765 + name = "hyper" 1766 + version = "1.8.1" 1767 + source = "registry+https://github.com/rust-lang/crates.io-index" 1768 + checksum = "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11" 1769 + dependencies = [ 1770 + "atomic-waker", 1771 + "bytes", 1772 + "futures-channel", 1773 + "futures-core", 1774 + "http", 1775 + "http-body", 1776 + "httparse", 1777 + "itoa", 1778 + "pin-project-lite", 1779 + "pin-utils", 1780 + "smallvec", 1781 + "tokio", 1782 + "want", 1783 + ] 1784 + 1785 + [[package]] 1786 + name = "hyper-util" 1787 + version = "0.1.20" 1788 + source = "registry+https://github.com/rust-lang/crates.io-index" 1789 + checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" 1790 + dependencies = [ 1791 + "base64 0.22.1", 1792 + "bytes", 1793 + "futures-channel", 1794 + "futures-util", 1795 + "http", 1796 + "http-body", 1797 + "hyper", 1798 + "ipnet", 1799 + "libc", 1800 + "percent-encoding", 1801 + "pin-project-lite", 1802 + "socket2", 1803 + "tokio", 1804 + "tower-service", 1805 + "tracing", 1806 + ] 1807 + 1808 + [[package]] 455 1809 name = "iana-time-zone" 456 1810 version = "0.1.64" 457 1811 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 473 1827 checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" 474 1828 dependencies = [ 475 1829 "cc", 1830 + ] 1831 + 1832 + [[package]] 1833 + name = "ico" 1834 + version = "0.5.0" 1835 + source = "registry+https://github.com/rust-lang/crates.io-index" 1836 + checksum = "3e795dff5605e0f04bff85ca41b51a96b83e80b281e96231bcaaf1ac35103371" 1837 + dependencies = [ 1838 + "byteorder", 1839 + "png 0.17.16", 476 1840 ] 477 1841 478 1842 [[package]] ··· 562 1926 ] 563 1927 564 1928 [[package]] 1929 + name = "id-arena" 1930 + version = "2.3.0" 1931 + source = "registry+https://github.com/rust-lang/crates.io-index" 1932 + checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" 1933 + 1934 + [[package]] 1935 + name = "ident_case" 1936 + version = "1.0.1" 1937 + source = "registry+https://github.com/rust-lang/crates.io-index" 1938 + checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" 1939 + 1940 + [[package]] 565 1941 name = "idna" 566 1942 version = "1.1.0" 567 1943 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 592 1968 "byteorder-lite", 593 1969 "moxcms", 594 1970 "num-traits", 595 - "png", 1971 + "png 0.18.0", 596 1972 "zune-core", 597 1973 "zune-jpeg", 598 1974 ] 599 1975 600 1976 [[package]] 601 1977 name = "indexmap" 602 - version = "2.11.1" 1978 + version = "1.9.3" 603 1979 source = "registry+https://github.com/rust-lang/crates.io-index" 604 - checksum = "206a8042aec68fa4a62e8d3f7aa4ceb508177d9324faf261e1959e495b7a1921" 1980 + checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" 1981 + dependencies = [ 1982 + "autocfg", 1983 + "hashbrown 0.12.3", 1984 + "serde", 1985 + ] 1986 + 1987 + [[package]] 1988 + name = "indexmap" 1989 + version = "2.13.0" 1990 + source = "registry+https://github.com/rust-lang/crates.io-index" 1991 + checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" 605 1992 dependencies = [ 606 1993 "equivalent", 607 - "hashbrown", 1994 + "hashbrown 0.16.1", 1995 + "serde", 1996 + "serde_core", 1997 + ] 1998 + 1999 + [[package]] 2000 + name = "infer" 2001 + version = "0.19.0" 2002 + source = "registry+https://github.com/rust-lang/crates.io-index" 2003 + checksum = "a588916bfdfd92e71cacef98a63d9b1f0d74d6599980d11894290e7ddefffcf7" 2004 + dependencies = [ 2005 + "cfb", 608 2006 ] 609 2007 610 2008 [[package]] ··· 613 2011 source = "registry+https://github.com/rust-lang/crates.io-index" 614 2012 checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" 615 2013 dependencies = [ 616 - "bitflags", 2014 + "bitflags 2.9.4", 617 2015 "cfg-if", 618 2016 "libc", 619 2017 ] 620 2018 621 2019 [[package]] 2020 + name = "ipnet" 2021 + version = "2.12.0" 2022 + source = "registry+https://github.com/rust-lang/crates.io-index" 2023 + checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" 2024 + 2025 + [[package]] 2026 + name = "iri-string" 2027 + version = "0.7.10" 2028 + source = "registry+https://github.com/rust-lang/crates.io-index" 2029 + checksum = "c91338f0783edbd6195decb37bae672fd3b165faffb89bf7b9e6942f8b1a731a" 2030 + dependencies = [ 2031 + "memchr", 2032 + "serde", 2033 + ] 2034 + 2035 + [[package]] 2036 + name = "is-docker" 2037 + version = "0.2.0" 2038 + source = "registry+https://github.com/rust-lang/crates.io-index" 2039 + checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3" 2040 + dependencies = [ 2041 + "once_cell", 2042 + ] 2043 + 2044 + [[package]] 2045 + name = "is-wsl" 2046 + version = "0.4.0" 2047 + source = "registry+https://github.com/rust-lang/crates.io-index" 2048 + checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5" 2049 + dependencies = [ 2050 + "is-docker", 2051 + "once_cell", 2052 + ] 2053 + 2054 + [[package]] 622 2055 name = "itoa" 623 2056 version = "1.0.15" 624 2057 source = "registry+https://github.com/rust-lang/crates.io-index" 625 2058 checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" 626 2059 627 2060 [[package]] 2061 + name = "javascriptcore-rs" 2062 + version = "1.1.2" 2063 + source = "registry+https://github.com/rust-lang/crates.io-index" 2064 + checksum = "ca5671e9ffce8ffba57afc24070e906da7fc4b1ba66f2cabebf61bf2ea257fcc" 2065 + dependencies = [ 2066 + "bitflags 1.3.2", 2067 + "glib", 2068 + "javascriptcore-rs-sys", 2069 + ] 2070 + 2071 + [[package]] 2072 + name = "javascriptcore-rs-sys" 2073 + version = "1.1.1" 2074 + source = "registry+https://github.com/rust-lang/crates.io-index" 2075 + checksum = "af1be78d14ffa4b75b66df31840478fef72b51f8c2465d4ca7c194da9f7a5124" 2076 + dependencies = [ 2077 + "glib-sys", 2078 + "gobject-sys", 2079 + "libc", 2080 + "system-deps", 2081 + ] 2082 + 2083 + [[package]] 2084 + name = "jni" 2085 + version = "0.21.1" 2086 + source = "registry+https://github.com/rust-lang/crates.io-index" 2087 + checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" 2088 + dependencies = [ 2089 + "cesu8", 2090 + "cfg-if", 2091 + "combine", 2092 + "jni-sys", 2093 + "log", 2094 + "thiserror 1.0.69", 2095 + "walkdir", 2096 + "windows-sys 0.45.0", 2097 + ] 2098 + 2099 + [[package]] 2100 + name = "jni-sys" 2101 + version = "0.3.0" 2102 + source = "registry+https://github.com/rust-lang/crates.io-index" 2103 + checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" 2104 + 2105 + [[package]] 628 2106 name = "js-sys" 629 - version = "0.3.78" 2107 + version = "0.3.91" 630 2108 source = "registry+https://github.com/rust-lang/crates.io-index" 631 - checksum = "0c0b063578492ceec17683ef2f8c5e89121fbd0b172cbc280635ab7567db2738" 2109 + checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c" 632 2110 dependencies = [ 633 2111 "once_cell", 634 2112 "wasm-bindgen", 635 2113 ] 636 2114 637 2115 [[package]] 2116 + name = "json-patch" 2117 + version = "3.0.1" 2118 + source = "registry+https://github.com/rust-lang/crates.io-index" 2119 + checksum = "863726d7afb6bc2590eeff7135d923545e5e964f004c2ccf8716c25e70a86f08" 2120 + dependencies = [ 2121 + "jsonptr", 2122 + "serde", 2123 + "serde_json", 2124 + "thiserror 1.0.69", 2125 + ] 2126 + 2127 + [[package]] 2128 + name = "jsonptr" 2129 + version = "0.6.3" 2130 + source = "registry+https://github.com/rust-lang/crates.io-index" 2131 + checksum = "5dea2b27dd239b2556ed7a25ba842fe47fd602e7fc7433c2a8d6106d4d9edd70" 2132 + dependencies = [ 2133 + "serde", 2134 + "serde_json", 2135 + ] 2136 + 2137 + [[package]] 2138 + name = "keyboard-types" 2139 + version = "0.7.0" 2140 + source = "registry+https://github.com/rust-lang/crates.io-index" 2141 + checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a" 2142 + dependencies = [ 2143 + "bitflags 2.9.4", 2144 + "serde", 2145 + "unicode-segmentation", 2146 + ] 2147 + 2148 + [[package]] 2149 + name = "kuchikiki" 2150 + version = "0.8.8-speedreader" 2151 + source = "registry+https://github.com/rust-lang/crates.io-index" 2152 + checksum = "02cb977175687f33fa4afa0c95c112b987ea1443e5a51c8f8ff27dc618270cc2" 2153 + dependencies = [ 2154 + "cssparser", 2155 + "html5ever", 2156 + "indexmap 2.13.0", 2157 + "selectors", 2158 + ] 2159 + 2160 + [[package]] 638 2161 name = "lazy_static" 639 2162 version = "1.5.0" 640 2163 source = "registry+https://github.com/rust-lang/crates.io-index" 641 2164 checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" 642 2165 643 2166 [[package]] 2167 + name = "leb128fmt" 2168 + version = "0.1.0" 2169 + source = "registry+https://github.com/rust-lang/crates.io-index" 2170 + checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" 2171 + 2172 + [[package]] 2173 + name = "libappindicator" 2174 + version = "0.9.0" 2175 + source = "registry+https://github.com/rust-lang/crates.io-index" 2176 + checksum = "03589b9607c868cc7ae54c0b2a22c8dc03dd41692d48f2d7df73615c6a95dc0a" 2177 + dependencies = [ 2178 + "glib", 2179 + "gtk", 2180 + "gtk-sys", 2181 + "libappindicator-sys", 2182 + "log", 2183 + ] 2184 + 2185 + [[package]] 2186 + name = "libappindicator-sys" 2187 + version = "0.9.0" 2188 + source = "registry+https://github.com/rust-lang/crates.io-index" 2189 + checksum = "6e9ec52138abedcc58dc17a7c6c0c00a2bdb4f3427c7f63fa97fd0d859155caf" 2190 + dependencies = [ 2191 + "gtk-sys", 2192 + "libloading 0.7.4", 2193 + "once_cell", 2194 + ] 2195 + 2196 + [[package]] 644 2197 name = "libc" 645 2198 version = "0.2.175" 646 2199 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 648 2201 649 2202 [[package]] 650 2203 name = "libloading" 2204 + version = "0.7.4" 2205 + source = "registry+https://github.com/rust-lang/crates.io-index" 2206 + checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" 2207 + dependencies = [ 2208 + "cfg-if", 2209 + "winapi", 2210 + ] 2211 + 2212 + [[package]] 2213 + name = "libloading" 651 2214 version = "0.8.8" 652 2215 source = "registry+https://github.com/rust-lang/crates.io-index" 653 2216 checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667" ··· 672 2235 source = "registry+https://github.com/rust-lang/crates.io-index" 673 2236 checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb" 674 2237 dependencies = [ 675 - "bitflags", 2238 + "bitflags 2.9.4", 676 2239 "libc", 677 2240 ] 678 2241 ··· 710 2273 checksum = "f5e54036fe321fd421e10d732f155734c4e4afd610dd556d9a82833ab3ee0bed" 711 2274 712 2275 [[package]] 2276 + name = "lock_api" 2277 + version = "0.4.14" 2278 + source = "registry+https://github.com/rust-lang/crates.io-index" 2279 + checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" 2280 + dependencies = [ 2281 + "scopeguard", 2282 + ] 2283 + 2284 + [[package]] 713 2285 name = "lofty" 714 2286 version = "0.22.4" 715 2287 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 732 2304 dependencies = [ 733 2305 "proc-macro2", 734 2306 "quote", 735 - "syn", 2307 + "syn 2.0.106", 736 2308 ] 737 2309 738 2310 [[package]] 739 2311 name = "log" 740 - version = "0.4.28" 2312 + version = "0.4.29" 2313 + source = "registry+https://github.com/rust-lang/crates.io-index" 2314 + checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" 2315 + 2316 + [[package]] 2317 + name = "mac" 2318 + version = "0.1.1" 2319 + source = "registry+https://github.com/rust-lang/crates.io-index" 2320 + checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" 2321 + 2322 + [[package]] 2323 + name = "markup5ever" 2324 + version = "0.14.1" 2325 + source = "registry+https://github.com/rust-lang/crates.io-index" 2326 + checksum = "c7a7213d12e1864c0f002f52c2923d4556935a43dec5e71355c2760e0f6e7a18" 2327 + dependencies = [ 2328 + "log", 2329 + "phf 0.11.3", 2330 + "phf_codegen 0.11.3", 2331 + "string_cache", 2332 + "string_cache_codegen", 2333 + "tendril", 2334 + ] 2335 + 2336 + [[package]] 2337 + name = "match_token" 2338 + version = "0.1.0" 2339 + source = "registry+https://github.com/rust-lang/crates.io-index" 2340 + checksum = "88a9689d8d44bf9964484516275f5cd4c9b59457a6940c1d5d0ecbb94510a36b" 2341 + dependencies = [ 2342 + "proc-macro2", 2343 + "quote", 2344 + "syn 2.0.106", 2345 + ] 2346 + 2347 + [[package]] 2348 + name = "matches" 2349 + version = "0.1.10" 741 2350 source = "registry+https://github.com/rust-lang/crates.io-index" 742 - checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" 2351 + checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" 743 2352 744 2353 [[package]] 745 2354 name = "memchr" ··· 748 2357 checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" 749 2358 750 2359 [[package]] 2360 + name = "memoffset" 2361 + version = "0.9.1" 2362 + source = "registry+https://github.com/rust-lang/crates.io-index" 2363 + checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" 2364 + dependencies = [ 2365 + "autocfg", 2366 + ] 2367 + 2368 + [[package]] 751 2369 name = "mimalloc" 752 2370 version = "0.1.48" 753 2371 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 755 2373 dependencies = [ 756 2374 "libmimalloc-sys", 757 2375 ] 2376 + 2377 + [[package]] 2378 + name = "mime" 2379 + version = "0.3.17" 2380 + source = "registry+https://github.com/rust-lang/crates.io-index" 2381 + checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 758 2382 759 2383 [[package]] 760 2384 name = "miniz_oxide" ··· 788 2412 ] 789 2413 790 2414 [[package]] 2415 + name = "muda" 2416 + version = "0.17.1" 2417 + source = "registry+https://github.com/rust-lang/crates.io-index" 2418 + checksum = "01c1738382f66ed56b3b9c8119e794a2e23148ac8ea214eda86622d4cb9d415a" 2419 + dependencies = [ 2420 + "crossbeam-channel", 2421 + "dpi", 2422 + "gtk", 2423 + "keyboard-types", 2424 + "objc2 0.6.2", 2425 + "objc2-app-kit", 2426 + "objc2-core-foundation", 2427 + "objc2-foundation 0.3.1", 2428 + "once_cell", 2429 + "png 0.17.16", 2430 + "serde", 2431 + "thiserror 2.0.16", 2432 + "windows-sys 0.60.2", 2433 + ] 2434 + 2435 + [[package]] 791 2436 name = "nanoid" 792 2437 version = "0.4.0" 793 2438 source = "registry+https://github.com/rust-lang/crates.io-index" 794 2439 checksum = "3ffa00dec017b5b1a8b7cf5e2c008bfda1aa7e0697ac1508b491fdf2622fb4d8" 795 2440 dependencies = [ 796 - "rand", 2441 + "rand 0.8.5", 797 2442 ] 798 2443 799 2444 [[package]] ··· 803 2448 checksum = "f1b74e3dce5230795bb4d2821b941706dee733c7308752507254b0497f39cad7" 804 2449 dependencies = [ 805 2450 "anyhow", 806 - "bitflags", 807 - "ctor", 2451 + "bitflags 2.9.4", 2452 + "ctor 0.5.0", 808 2453 "napi-build", 809 2454 "napi-sys", 810 2455 "nohash-hasher", ··· 826 2471 source = "registry+https://github.com/rust-lang/crates.io-index" 827 2472 checksum = "7552d5a579b834614bbd496db5109f1b9f1c758f08224b0dee1e408333adf0d0" 828 2473 dependencies = [ 829 - "convert_case", 830 - "ctor", 2474 + "convert_case 0.8.0", 2475 + "ctor 0.5.0", 831 2476 "napi-derive-backend", 832 2477 "proc-macro2", 833 2478 "quote", 834 - "syn", 2479 + "syn 2.0.106", 835 2480 ] 836 2481 837 2482 [[package]] ··· 840 2485 source = "registry+https://github.com/rust-lang/crates.io-index" 841 2486 checksum = "5f6a81ac7486b70f2532a289603340862c06eea5a1e650c1ffeda2ce1238516a" 842 2487 dependencies = [ 843 - "convert_case", 2488 + "convert_case 0.8.0", 844 2489 "proc-macro2", 845 2490 "quote", 846 2491 "semver", 847 - "syn", 2492 + "syn 2.0.106", 848 2493 ] 849 2494 850 2495 [[package]] ··· 853 2498 source = "registry+https://github.com/rust-lang/crates.io-index" 854 2499 checksum = "3e4e7135a8f97aa0f1509cce21a8a1f9dcec1b50d8dee006b48a5adb69a9d64d" 855 2500 dependencies = [ 856 - "libloading", 2501 + "libloading 0.8.8", 857 2502 ] 858 2503 859 2504 [[package]] 2505 + name = "ndk" 2506 + version = "0.9.0" 2507 + source = "registry+https://github.com/rust-lang/crates.io-index" 2508 + checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" 2509 + dependencies = [ 2510 + "bitflags 2.9.4", 2511 + "jni-sys", 2512 + "log", 2513 + "ndk-sys", 2514 + "num_enum", 2515 + "raw-window-handle", 2516 + "thiserror 1.0.69", 2517 + ] 2518 + 2519 + [[package]] 2520 + name = "ndk-context" 2521 + version = "0.1.1" 2522 + source = "registry+https://github.com/rust-lang/crates.io-index" 2523 + checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" 2524 + 2525 + [[package]] 2526 + name = "ndk-sys" 2527 + version = "0.6.0+11769913" 2528 + source = "registry+https://github.com/rust-lang/crates.io-index" 2529 + checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" 2530 + dependencies = [ 2531 + "jni-sys", 2532 + ] 2533 + 2534 + [[package]] 2535 + name = "new_debug_unreachable" 2536 + version = "1.0.6" 2537 + source = "registry+https://github.com/rust-lang/crates.io-index" 2538 + checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" 2539 + 2540 + [[package]] 2541 + name = "nodrop" 2542 + version = "0.1.14" 2543 + source = "registry+https://github.com/rust-lang/crates.io-index" 2544 + checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" 2545 + 2546 + [[package]] 860 2547 name = "nohash-hasher" 861 2548 version = "0.2.0" 862 2549 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 878 2565 ] 879 2566 880 2567 [[package]] 2568 + name = "num_enum" 2569 + version = "0.7.5" 2570 + source = "registry+https://github.com/rust-lang/crates.io-index" 2571 + checksum = "b1207a7e20ad57b847bbddc6776b968420d38292bbfe2089accff5e19e82454c" 2572 + dependencies = [ 2573 + "num_enum_derive", 2574 + "rustversion", 2575 + ] 2576 + 2577 + [[package]] 2578 + name = "num_enum_derive" 2579 + version = "0.7.5" 2580 + source = "registry+https://github.com/rust-lang/crates.io-index" 2581 + checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7" 2582 + dependencies = [ 2583 + "proc-macro-crate 3.4.0", 2584 + "proc-macro2", 2585 + "quote", 2586 + "syn 2.0.106", 2587 + ] 2588 + 2589 + [[package]] 2590 + name = "objc-sys" 2591 + version = "0.3.5" 2592 + source = "registry+https://github.com/rust-lang/crates.io-index" 2593 + checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310" 2594 + 2595 + [[package]] 2596 + name = "objc2" 2597 + version = "0.5.2" 2598 + source = "registry+https://github.com/rust-lang/crates.io-index" 2599 + checksum = "46a785d4eeff09c14c487497c162e92766fbb3e4059a71840cecc03d9a50b804" 2600 + dependencies = [ 2601 + "objc-sys", 2602 + "objc2-encode", 2603 + ] 2604 + 2605 + [[package]] 881 2606 name = "objc2" 882 2607 version = "0.6.2" 883 2608 source = "registry+https://github.com/rust-lang/crates.io-index" 884 2609 checksum = "561f357ba7f3a2a61563a186a163d0a3a5247e1089524a3981d49adb775078bc" 885 2610 dependencies = [ 886 2611 "objc2-encode", 2612 + "objc2-exception-helper", 2613 + ] 2614 + 2615 + [[package]] 2616 + name = "objc2-app-kit" 2617 + version = "0.3.1" 2618 + source = "registry+https://github.com/rust-lang/crates.io-index" 2619 + checksum = "e6f29f568bec459b0ddff777cec4fe3fd8666d82d5a40ebd0ff7e66134f89bcc" 2620 + dependencies = [ 2621 + "bitflags 2.9.4", 2622 + "block2 0.6.2", 2623 + "libc", 2624 + "objc2 0.6.2", 2625 + "objc2-cloud-kit", 2626 + "objc2-core-data", 2627 + "objc2-core-foundation", 2628 + "objc2-core-graphics", 2629 + "objc2-core-image", 2630 + "objc2-foundation 0.3.1", 2631 + "objc2-quartz-core 0.3.1", 2632 + ] 2633 + 2634 + [[package]] 2635 + name = "objc2-cloud-kit" 2636 + version = "0.3.1" 2637 + source = "registry+https://github.com/rust-lang/crates.io-index" 2638 + checksum = "17614fdcd9b411e6ff1117dfb1d0150f908ba83a7df81b1f118005fe0a8ea15d" 2639 + dependencies = [ 2640 + "bitflags 2.9.4", 2641 + "objc2 0.6.2", 2642 + "objc2-foundation 0.3.1", 2643 + ] 2644 + 2645 + [[package]] 2646 + name = "objc2-core-data" 2647 + version = "0.3.1" 2648 + source = "registry+https://github.com/rust-lang/crates.io-index" 2649 + checksum = "291fbbf7d29287518e8686417cf7239c74700fd4b607623140a7d4a3c834329d" 2650 + dependencies = [ 2651 + "bitflags 2.9.4", 2652 + "objc2 0.6.2", 2653 + "objc2-foundation 0.3.1", 2654 + ] 2655 + 2656 + [[package]] 2657 + name = "objc2-core-foundation" 2658 + version = "0.3.2" 2659 + source = "registry+https://github.com/rust-lang/crates.io-index" 2660 + checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" 2661 + dependencies = [ 2662 + "bitflags 2.9.4", 2663 + "dispatch2", 2664 + "objc2 0.6.2", 2665 + ] 2666 + 2667 + [[package]] 2668 + name = "objc2-core-graphics" 2669 + version = "0.3.2" 2670 + source = "registry+https://github.com/rust-lang/crates.io-index" 2671 + checksum = "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807" 2672 + dependencies = [ 2673 + "bitflags 2.9.4", 2674 + "dispatch2", 2675 + "objc2 0.6.2", 2676 + "objc2-core-foundation", 2677 + "objc2-io-surface", 2678 + ] 2679 + 2680 + [[package]] 2681 + name = "objc2-core-image" 2682 + version = "0.3.1" 2683 + source = "registry+https://github.com/rust-lang/crates.io-index" 2684 + checksum = "79b3dc0cc4386b6ccf21c157591b34a7f44c8e75b064f85502901ab2188c007e" 2685 + dependencies = [ 2686 + "objc2 0.6.2", 2687 + "objc2-foundation 0.3.1", 887 2688 ] 888 2689 889 2690 [[package]] ··· 893 2694 checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" 894 2695 895 2696 [[package]] 2697 + name = "objc2-exception-helper" 2698 + version = "0.1.1" 2699 + source = "registry+https://github.com/rust-lang/crates.io-index" 2700 + checksum = "c7a1c5fbb72d7735b076bb47b578523aedc40f3c439bea6dfd595c089d79d98a" 2701 + dependencies = [ 2702 + "cc", 2703 + ] 2704 + 2705 + [[package]] 2706 + name = "objc2-foundation" 2707 + version = "0.2.2" 2708 + source = "registry+https://github.com/rust-lang/crates.io-index" 2709 + checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" 2710 + dependencies = [ 2711 + "bitflags 2.9.4", 2712 + "block2 0.5.1", 2713 + "libc", 2714 + "objc2 0.5.2", 2715 + ] 2716 + 2717 + [[package]] 896 2718 name = "objc2-foundation" 897 2719 version = "0.3.1" 898 2720 source = "registry+https://github.com/rust-lang/crates.io-index" 899 2721 checksum = "900831247d2fe1a09a683278e5384cfb8c80c79fe6b166f9d14bfdde0ea1b03c" 900 2722 dependencies = [ 901 - "bitflags", 902 - "objc2", 2723 + "bitflags 2.9.4", 2724 + "block2 0.6.2", 2725 + "libc", 2726 + "objc2 0.6.2", 2727 + "objc2-core-foundation", 2728 + ] 2729 + 2730 + [[package]] 2731 + name = "objc2-io-surface" 2732 + version = "0.3.2" 2733 + source = "registry+https://github.com/rust-lang/crates.io-index" 2734 + checksum = "180788110936d59bab6bd83b6060ffdfffb3b922ba1396b312ae795e1de9d81d" 2735 + dependencies = [ 2736 + "bitflags 2.9.4", 2737 + "objc2 0.6.2", 2738 + "objc2-core-foundation", 2739 + ] 2740 + 2741 + [[package]] 2742 + name = "objc2-javascript-core" 2743 + version = "0.3.2" 2744 + source = "registry+https://github.com/rust-lang/crates.io-index" 2745 + checksum = "2a1e6550c4caed348956ce3370c9ffeca70bb1dbed4fa96112e7c6170e074586" 2746 + dependencies = [ 2747 + "objc2 0.6.2", 2748 + "objc2-core-foundation", 2749 + ] 2750 + 2751 + [[package]] 2752 + name = "objc2-metal" 2753 + version = "0.2.2" 2754 + source = "registry+https://github.com/rust-lang/crates.io-index" 2755 + checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" 2756 + dependencies = [ 2757 + "bitflags 2.9.4", 2758 + "block2 0.5.1", 2759 + "objc2 0.5.2", 2760 + "objc2-foundation 0.2.2", 2761 + ] 2762 + 2763 + [[package]] 2764 + name = "objc2-quartz-core" 2765 + version = "0.2.2" 2766 + source = "registry+https://github.com/rust-lang/crates.io-index" 2767 + checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" 2768 + dependencies = [ 2769 + "bitflags 2.9.4", 2770 + "block2 0.5.1", 2771 + "objc2 0.5.2", 2772 + "objc2-foundation 0.2.2", 2773 + "objc2-metal", 2774 + ] 2775 + 2776 + [[package]] 2777 + name = "objc2-quartz-core" 2778 + version = "0.3.1" 2779 + source = "registry+https://github.com/rust-lang/crates.io-index" 2780 + checksum = "90ffb6a0cd5f182dc964334388560b12a57f7b74b3e2dec5e2722aa2dfb2ccd5" 2781 + dependencies = [ 2782 + "bitflags 2.9.4", 2783 + "objc2 0.6.2", 2784 + "objc2-foundation 0.3.1", 2785 + ] 2786 + 2787 + [[package]] 2788 + name = "objc2-security" 2789 + version = "0.3.2" 2790 + source = "registry+https://github.com/rust-lang/crates.io-index" 2791 + checksum = "709fe137109bd1e8b5a99390f77a7d8b2961dafc1a1c5db8f2e60329ad6d895a" 2792 + dependencies = [ 2793 + "bitflags 2.9.4", 2794 + "objc2 0.6.2", 2795 + "objc2-core-foundation", 2796 + ] 2797 + 2798 + [[package]] 2799 + name = "objc2-ui-kit" 2800 + version = "0.3.1" 2801 + source = "registry+https://github.com/rust-lang/crates.io-index" 2802 + checksum = "25b1312ad7bc8a0e92adae17aa10f90aae1fb618832f9b993b022b591027daed" 2803 + dependencies = [ 2804 + "bitflags 2.9.4", 2805 + "objc2 0.6.2", 2806 + "objc2-core-foundation", 2807 + "objc2-foundation 0.3.1", 2808 + ] 2809 + 2810 + [[package]] 2811 + name = "objc2-web-kit" 2812 + version = "0.3.1" 2813 + source = "registry+https://github.com/rust-lang/crates.io-index" 2814 + checksum = "91672909de8b1ce1c2252e95bbee8c1649c9ad9d14b9248b3d7b4c47903c47ad" 2815 + dependencies = [ 2816 + "bitflags 2.9.4", 2817 + "block2 0.6.2", 2818 + "objc2 0.6.2", 2819 + "objc2-app-kit", 2820 + "objc2-core-foundation", 2821 + "objc2-foundation 0.3.1", 2822 + "objc2-javascript-core", 2823 + "objc2-security", 903 2824 ] 904 2825 905 2826 [[package]] ··· 927 2848 checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" 928 2849 929 2850 [[package]] 2851 + name = "open" 2852 + version = "5.3.3" 2853 + source = "registry+https://github.com/rust-lang/crates.io-index" 2854 + checksum = "43bb73a7fa3799b198970490a51174027ba0d4ec504b03cd08caf513d40024bc" 2855 + dependencies = [ 2856 + "dunce", 2857 + "is-wsl", 2858 + "libc", 2859 + "pathdiff", 2860 + ] 2861 + 2862 + [[package]] 2863 + name = "option-ext" 2864 + version = "0.2.0" 2865 + source = "registry+https://github.com/rust-lang/crates.io-index" 2866 + checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" 2867 + 2868 + [[package]] 2869 + name = "ordered-stream" 2870 + version = "0.2.0" 2871 + source = "registry+https://github.com/rust-lang/crates.io-index" 2872 + checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50" 2873 + dependencies = [ 2874 + "futures-core", 2875 + "pin-project-lite", 2876 + ] 2877 + 2878 + [[package]] 2879 + name = "pango" 2880 + version = "0.18.3" 2881 + source = "registry+https://github.com/rust-lang/crates.io-index" 2882 + checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4" 2883 + dependencies = [ 2884 + "gio", 2885 + "glib", 2886 + "libc", 2887 + "once_cell", 2888 + "pango-sys", 2889 + ] 2890 + 2891 + [[package]] 2892 + name = "pango-sys" 2893 + version = "0.18.0" 2894 + source = "registry+https://github.com/rust-lang/crates.io-index" 2895 + checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5" 2896 + dependencies = [ 2897 + "glib-sys", 2898 + "gobject-sys", 2899 + "libc", 2900 + "system-deps", 2901 + ] 2902 + 2903 + [[package]] 2904 + name = "parking" 2905 + version = "2.2.1" 2906 + source = "registry+https://github.com/rust-lang/crates.io-index" 2907 + checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" 2908 + 2909 + [[package]] 2910 + name = "parking_lot" 2911 + version = "0.12.5" 2912 + source = "registry+https://github.com/rust-lang/crates.io-index" 2913 + checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" 2914 + dependencies = [ 2915 + "lock_api", 2916 + "parking_lot_core", 2917 + ] 2918 + 2919 + [[package]] 2920 + name = "parking_lot_core" 2921 + version = "0.9.12" 2922 + source = "registry+https://github.com/rust-lang/crates.io-index" 2923 + checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" 2924 + dependencies = [ 2925 + "cfg-if", 2926 + "libc", 2927 + "redox_syscall", 2928 + "smallvec", 2929 + "windows-link 0.2.0", 2930 + ] 2931 + 2932 + [[package]] 930 2933 name = "paste" 931 2934 version = "1.0.15" 932 2935 source = "registry+https://github.com/rust-lang/crates.io-index" 933 2936 checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" 934 2937 935 2938 [[package]] 2939 + name = "pathdiff" 2940 + version = "0.2.3" 2941 + source = "registry+https://github.com/rust-lang/crates.io-index" 2942 + checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" 2943 + 2944 + [[package]] 936 2945 name = "percent-encoding" 937 2946 version = "2.3.2" 938 2947 source = "registry+https://github.com/rust-lang/crates.io-index" 939 2948 checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" 940 2949 941 2950 [[package]] 2951 + name = "phf" 2952 + version = "0.8.0" 2953 + source = "registry+https://github.com/rust-lang/crates.io-index" 2954 + checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12" 2955 + dependencies = [ 2956 + "phf_shared 0.8.0", 2957 + ] 2958 + 2959 + [[package]] 2960 + name = "phf" 2961 + version = "0.10.1" 2962 + source = "registry+https://github.com/rust-lang/crates.io-index" 2963 + checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" 2964 + dependencies = [ 2965 + "phf_macros 0.10.0", 2966 + "phf_shared 0.10.0", 2967 + "proc-macro-hack", 2968 + ] 2969 + 2970 + [[package]] 2971 + name = "phf" 2972 + version = "0.11.3" 2973 + source = "registry+https://github.com/rust-lang/crates.io-index" 2974 + checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" 2975 + dependencies = [ 2976 + "phf_macros 0.11.3", 2977 + "phf_shared 0.11.3", 2978 + ] 2979 + 2980 + [[package]] 2981 + name = "phf_codegen" 2982 + version = "0.8.0" 2983 + source = "registry+https://github.com/rust-lang/crates.io-index" 2984 + checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815" 2985 + dependencies = [ 2986 + "phf_generator 0.8.0", 2987 + "phf_shared 0.8.0", 2988 + ] 2989 + 2990 + [[package]] 2991 + name = "phf_codegen" 2992 + version = "0.11.3" 2993 + source = "registry+https://github.com/rust-lang/crates.io-index" 2994 + checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a" 2995 + dependencies = [ 2996 + "phf_generator 0.11.3", 2997 + "phf_shared 0.11.3", 2998 + ] 2999 + 3000 + [[package]] 3001 + name = "phf_generator" 3002 + version = "0.8.0" 3003 + source = "registry+https://github.com/rust-lang/crates.io-index" 3004 + checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526" 3005 + dependencies = [ 3006 + "phf_shared 0.8.0", 3007 + "rand 0.7.3", 3008 + ] 3009 + 3010 + [[package]] 3011 + name = "phf_generator" 3012 + version = "0.10.0" 3013 + source = "registry+https://github.com/rust-lang/crates.io-index" 3014 + checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" 3015 + dependencies = [ 3016 + "phf_shared 0.10.0", 3017 + "rand 0.8.5", 3018 + ] 3019 + 3020 + [[package]] 3021 + name = "phf_generator" 3022 + version = "0.11.3" 3023 + source = "registry+https://github.com/rust-lang/crates.io-index" 3024 + checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" 3025 + dependencies = [ 3026 + "phf_shared 0.11.3", 3027 + "rand 0.8.5", 3028 + ] 3029 + 3030 + [[package]] 3031 + name = "phf_macros" 3032 + version = "0.10.0" 3033 + source = "registry+https://github.com/rust-lang/crates.io-index" 3034 + checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0" 3035 + dependencies = [ 3036 + "phf_generator 0.10.0", 3037 + "phf_shared 0.10.0", 3038 + "proc-macro-hack", 3039 + "proc-macro2", 3040 + "quote", 3041 + "syn 1.0.109", 3042 + ] 3043 + 3044 + [[package]] 3045 + name = "phf_macros" 3046 + version = "0.11.3" 3047 + source = "registry+https://github.com/rust-lang/crates.io-index" 3048 + checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" 3049 + dependencies = [ 3050 + "phf_generator 0.11.3", 3051 + "phf_shared 0.11.3", 3052 + "proc-macro2", 3053 + "quote", 3054 + "syn 2.0.106", 3055 + ] 3056 + 3057 + [[package]] 3058 + name = "phf_shared" 3059 + version = "0.8.0" 3060 + source = "registry+https://github.com/rust-lang/crates.io-index" 3061 + checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" 3062 + dependencies = [ 3063 + "siphasher 0.3.11", 3064 + ] 3065 + 3066 + [[package]] 3067 + name = "phf_shared" 3068 + version = "0.10.0" 3069 + source = "registry+https://github.com/rust-lang/crates.io-index" 3070 + checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" 3071 + dependencies = [ 3072 + "siphasher 0.3.11", 3073 + ] 3074 + 3075 + [[package]] 3076 + name = "phf_shared" 3077 + version = "0.11.3" 3078 + source = "registry+https://github.com/rust-lang/crates.io-index" 3079 + checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" 3080 + dependencies = [ 3081 + "siphasher 1.0.2", 3082 + ] 3083 + 3084 + [[package]] 942 3085 name = "pin-project-lite" 943 3086 version = "0.2.16" 944 3087 source = "registry+https://github.com/rust-lang/crates.io-index" 945 3088 checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" 946 3089 947 3090 [[package]] 3091 + name = "pin-utils" 3092 + version = "0.1.0" 3093 + source = "registry+https://github.com/rust-lang/crates.io-index" 3094 + checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 3095 + 3096 + [[package]] 3097 + name = "piper" 3098 + version = "0.2.5" 3099 + source = "registry+https://github.com/rust-lang/crates.io-index" 3100 + checksum = "c835479a4443ded371d6c535cbfd8d31ad92c5d23ae9770a61bc155e4992a3c1" 3101 + dependencies = [ 3102 + "atomic-waker", 3103 + "fastrand", 3104 + "futures-io", 3105 + ] 3106 + 3107 + [[package]] 3108 + name = "pkg-config" 3109 + version = "0.3.32" 3110 + source = "registry+https://github.com/rust-lang/crates.io-index" 3111 + checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" 3112 + 3113 + [[package]] 948 3114 name = "plist" 949 3115 version = "1.7.4" 950 3116 source = "registry+https://github.com/rust-lang/crates.io-index" 951 3117 checksum = "3af6b589e163c5a788fab00ce0c0366f6efbb9959c2f9874b224936af7fce7e1" 952 3118 dependencies = [ 953 - "base64", 954 - "indexmap", 3119 + "base64 0.22.1", 3120 + "indexmap 2.13.0", 955 3121 "quick-xml", 956 3122 "serde", 957 3123 "time", 3124 + ] 3125 + 3126 + [[package]] 3127 + name = "png" 3128 + version = "0.17.16" 3129 + source = "registry+https://github.com/rust-lang/crates.io-index" 3130 + checksum = "82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526" 3131 + dependencies = [ 3132 + "bitflags 1.3.2", 3133 + "crc32fast", 3134 + "fdeflate", 3135 + "flate2", 3136 + "miniz_oxide", 958 3137 ] 959 3138 960 3139 [[package]] ··· 963 3142 source = "registry+https://github.com/rust-lang/crates.io-index" 964 3143 checksum = "97baced388464909d42d89643fe4361939af9b7ce7a31ee32a168f832a70f2a0" 965 3144 dependencies = [ 966 - "bitflags", 3145 + "bitflags 2.9.4", 967 3146 "crc32fast", 968 3147 "fdeflate", 969 3148 "flate2", 970 3149 "miniz_oxide", 3150 + ] 3151 + 3152 + [[package]] 3153 + name = "polling" 3154 + version = "3.11.0" 3155 + source = "registry+https://github.com/rust-lang/crates.io-index" 3156 + checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218" 3157 + dependencies = [ 3158 + "cfg-if", 3159 + "concurrent-queue", 3160 + "hermit-abi", 3161 + "pin-project-lite", 3162 + "rustix 1.1.2", 3163 + "windows-sys 0.61.0", 971 3164 ] 972 3165 973 3166 [[package]] ··· 995 3188 ] 996 3189 997 3190 [[package]] 3191 + name = "precomputed-hash" 3192 + version = "0.1.1" 3193 + source = "registry+https://github.com/rust-lang/crates.io-index" 3194 + checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" 3195 + 3196 + [[package]] 3197 + name = "prettyplease" 3198 + version = "0.2.37" 3199 + source = "registry+https://github.com/rust-lang/crates.io-index" 3200 + checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" 3201 + dependencies = [ 3202 + "proc-macro2", 3203 + "syn 2.0.106", 3204 + ] 3205 + 3206 + [[package]] 3207 + name = "proc-macro-crate" 3208 + version = "1.3.1" 3209 + source = "registry+https://github.com/rust-lang/crates.io-index" 3210 + checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" 3211 + dependencies = [ 3212 + "once_cell", 3213 + "toml_edit 0.19.15", 3214 + ] 3215 + 3216 + [[package]] 3217 + name = "proc-macro-crate" 3218 + version = "2.0.2" 3219 + source = "registry+https://github.com/rust-lang/crates.io-index" 3220 + checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24" 3221 + dependencies = [ 3222 + "toml_datetime 0.6.3", 3223 + "toml_edit 0.20.2", 3224 + ] 3225 + 3226 + [[package]] 3227 + name = "proc-macro-crate" 3228 + version = "3.4.0" 3229 + source = "registry+https://github.com/rust-lang/crates.io-index" 3230 + checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" 3231 + dependencies = [ 3232 + "toml_edit 0.23.10+spec-1.0.0", 3233 + ] 3234 + 3235 + [[package]] 3236 + name = "proc-macro-error" 3237 + version = "1.0.4" 3238 + source = "registry+https://github.com/rust-lang/crates.io-index" 3239 + checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" 3240 + dependencies = [ 3241 + "proc-macro-error-attr", 3242 + "proc-macro2", 3243 + "quote", 3244 + "syn 1.0.109", 3245 + "version_check", 3246 + ] 3247 + 3248 + [[package]] 3249 + name = "proc-macro-error-attr" 3250 + version = "1.0.4" 3251 + source = "registry+https://github.com/rust-lang/crates.io-index" 3252 + checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" 3253 + dependencies = [ 3254 + "proc-macro2", 3255 + "quote", 3256 + "version_check", 3257 + ] 3258 + 3259 + [[package]] 3260 + name = "proc-macro-hack" 3261 + version = "0.5.20+deprecated" 3262 + source = "registry+https://github.com/rust-lang/crates.io-index" 3263 + checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" 3264 + 3265 + [[package]] 998 3266 name = "proc-macro2" 999 3267 version = "1.0.101" 1000 3268 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1037 3305 checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" 1038 3306 1039 3307 [[package]] 3308 + name = "r-efi" 3309 + version = "6.0.0" 3310 + source = "registry+https://github.com/rust-lang/crates.io-index" 3311 + checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" 3312 + 3313 + [[package]] 3314 + name = "rand" 3315 + version = "0.7.3" 3316 + source = "registry+https://github.com/rust-lang/crates.io-index" 3317 + checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" 3318 + dependencies = [ 3319 + "getrandom 0.1.16", 3320 + "libc", 3321 + "rand_chacha 0.2.2", 3322 + "rand_core 0.5.1", 3323 + "rand_hc", 3324 + "rand_pcg", 3325 + ] 3326 + 3327 + [[package]] 1040 3328 name = "rand" 1041 3329 version = "0.8.5" 1042 3330 source = "registry+https://github.com/rust-lang/crates.io-index" 1043 3331 checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 1044 3332 dependencies = [ 1045 3333 "libc", 1046 - "rand_chacha", 1047 - "rand_core", 3334 + "rand_chacha 0.3.1", 3335 + "rand_core 0.6.4", 3336 + ] 3337 + 3338 + [[package]] 3339 + name = "rand_chacha" 3340 + version = "0.2.2" 3341 + source = "registry+https://github.com/rust-lang/crates.io-index" 3342 + checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" 3343 + dependencies = [ 3344 + "ppv-lite86", 3345 + "rand_core 0.5.1", 1048 3346 ] 1049 3347 1050 3348 [[package]] ··· 1054 3352 checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 1055 3353 dependencies = [ 1056 3354 "ppv-lite86", 1057 - "rand_core", 3355 + "rand_core 0.6.4", 3356 + ] 3357 + 3358 + [[package]] 3359 + name = "rand_core" 3360 + version = "0.5.1" 3361 + source = "registry+https://github.com/rust-lang/crates.io-index" 3362 + checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" 3363 + dependencies = [ 3364 + "getrandom 0.1.16", 1058 3365 ] 1059 3366 1060 3367 [[package]] ··· 1067 3374 ] 1068 3375 1069 3376 [[package]] 3377 + name = "rand_hc" 3378 + version = "0.2.0" 3379 + source = "registry+https://github.com/rust-lang/crates.io-index" 3380 + checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" 3381 + dependencies = [ 3382 + "rand_core 0.5.1", 3383 + ] 3384 + 3385 + [[package]] 3386 + name = "rand_pcg" 3387 + version = "0.2.1" 3388 + source = "registry+https://github.com/rust-lang/crates.io-index" 3389 + checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" 3390 + dependencies = [ 3391 + "rand_core 0.5.1", 3392 + ] 3393 + 3394 + [[package]] 3395 + name = "raw-window-handle" 3396 + version = "0.6.2" 3397 + source = "registry+https://github.com/rust-lang/crates.io-index" 3398 + checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" 3399 + 3400 + [[package]] 1070 3401 name = "rayon" 1071 3402 version = "1.11.0" 1072 3403 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1096 3427 ] 1097 3428 1098 3429 [[package]] 3430 + name = "redox_syscall" 3431 + version = "0.5.18" 3432 + source = "registry+https://github.com/rust-lang/crates.io-index" 3433 + checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" 3434 + dependencies = [ 3435 + "bitflags 2.9.4", 3436 + ] 3437 + 3438 + [[package]] 1099 3439 name = "redox_users" 1100 3440 version = "0.4.6" 1101 3441 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1107 3447 ] 1108 3448 1109 3449 [[package]] 3450 + name = "redox_users" 3451 + version = "0.5.2" 3452 + source = "registry+https://github.com/rust-lang/crates.io-index" 3453 + checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" 3454 + dependencies = [ 3455 + "getrandom 0.2.16", 3456 + "libredox", 3457 + "thiserror 2.0.16", 3458 + ] 3459 + 3460 + [[package]] 1110 3461 name = "ref-cast" 1111 3462 version = "1.0.24" 1112 3463 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1123 3474 dependencies = [ 1124 3475 "proc-macro2", 1125 3476 "quote", 1126 - "syn", 3477 + "syn 2.0.106", 3478 + ] 3479 + 3480 + [[package]] 3481 + name = "regex" 3482 + version = "1.12.3" 3483 + source = "registry+https://github.com/rust-lang/crates.io-index" 3484 + checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" 3485 + dependencies = [ 3486 + "aho-corasick", 3487 + "memchr", 3488 + "regex-automata", 3489 + "regex-syntax", 3490 + ] 3491 + 3492 + [[package]] 3493 + name = "regex-automata" 3494 + version = "0.4.14" 3495 + source = "registry+https://github.com/rust-lang/crates.io-index" 3496 + checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" 3497 + dependencies = [ 3498 + "aho-corasick", 3499 + "memchr", 3500 + "regex-syntax", 3501 + ] 3502 + 3503 + [[package]] 3504 + name = "regex-syntax" 3505 + version = "0.8.10" 3506 + source = "registry+https://github.com/rust-lang/crates.io-index" 3507 + checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" 3508 + 3509 + [[package]] 3510 + name = "reqwest" 3511 + version = "0.13.2" 3512 + source = "registry+https://github.com/rust-lang/crates.io-index" 3513 + checksum = "ab3f43e3283ab1488b624b44b0e988d0acea0b3214e694730a055cb6b2efa801" 3514 + dependencies = [ 3515 + "base64 0.22.1", 3516 + "bytes", 3517 + "futures-core", 3518 + "futures-util", 3519 + "http", 3520 + "http-body", 3521 + "http-body-util", 3522 + "hyper", 3523 + "hyper-util", 3524 + "js-sys", 3525 + "log", 3526 + "percent-encoding", 3527 + "pin-project-lite", 3528 + "serde", 3529 + "serde_json", 3530 + "sync_wrapper", 3531 + "tokio", 3532 + "tokio-util", 3533 + "tower", 3534 + "tower-http", 3535 + "tower-service", 3536 + "url", 3537 + "wasm-bindgen", 3538 + "wasm-bindgen-futures", 3539 + "wasm-streams", 3540 + "web-sys", 3541 + ] 3542 + 3543 + [[package]] 3544 + name = "rfd" 3545 + version = "0.16.0" 3546 + source = "registry+https://github.com/rust-lang/crates.io-index" 3547 + checksum = "a15ad77d9e70a92437d8f74c35d99b4e4691128df018833e99f90bcd36152672" 3548 + dependencies = [ 3549 + "block2 0.6.2", 3550 + "dispatch2", 3551 + "glib-sys", 3552 + "gobject-sys", 3553 + "gtk-sys", 3554 + "js-sys", 3555 + "log", 3556 + "objc2 0.6.2", 3557 + "objc2-app-kit", 3558 + "objc2-core-foundation", 3559 + "objc2-foundation 0.3.1", 3560 + "raw-window-handle", 3561 + "wasm-bindgen", 3562 + "wasm-bindgen-futures", 3563 + "web-sys", 3564 + "windows-sys 0.60.2", 1127 3565 ] 1128 3566 1129 3567 [[package]] ··· 1137 3575 version = "2.1.1" 1138 3576 source = "registry+https://github.com/rust-lang/crates.io-index" 1139 3577 checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" 3578 + 3579 + [[package]] 3580 + name = "rustc_version" 3581 + version = "0.4.1" 3582 + source = "registry+https://github.com/rust-lang/crates.io-index" 3583 + checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" 3584 + dependencies = [ 3585 + "semver", 3586 + ] 1140 3587 1141 3588 [[package]] 1142 3589 name = "rustix" ··· 1144 3591 source = "registry+https://github.com/rust-lang/crates.io-index" 1145 3592 checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" 1146 3593 dependencies = [ 1147 - "bitflags", 3594 + "bitflags 2.9.4", 1148 3595 "errno", 1149 3596 "libc", 1150 3597 "linux-raw-sys 0.4.15", ··· 1157 3604 source = "registry+https://github.com/rust-lang/crates.io-index" 1158 3605 checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" 1159 3606 dependencies = [ 1160 - "bitflags", 3607 + "bitflags 2.9.4", 1161 3608 "errno", 1162 3609 "libc", 1163 3610 "linux-raw-sys 0.11.0", ··· 1177 3624 checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" 1178 3625 1179 3626 [[package]] 3627 + name = "same-file" 3628 + version = "1.0.6" 3629 + source = "registry+https://github.com/rust-lang/crates.io-index" 3630 + checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" 3631 + dependencies = [ 3632 + "winapi-util", 3633 + ] 3634 + 3635 + [[package]] 3636 + name = "schemars" 3637 + version = "0.8.22" 3638 + source = "registry+https://github.com/rust-lang/crates.io-index" 3639 + checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" 3640 + dependencies = [ 3641 + "dyn-clone", 3642 + "indexmap 1.9.3", 3643 + "schemars_derive", 3644 + "serde", 3645 + "serde_json", 3646 + "url", 3647 + "uuid", 3648 + ] 3649 + 3650 + [[package]] 3651 + name = "schemars" 3652 + version = "0.9.0" 3653 + source = "registry+https://github.com/rust-lang/crates.io-index" 3654 + checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" 3655 + dependencies = [ 3656 + "dyn-clone", 3657 + "ref-cast", 3658 + "serde", 3659 + "serde_json", 3660 + ] 3661 + 3662 + [[package]] 3663 + name = "schemars" 3664 + version = "1.2.1" 3665 + source = "registry+https://github.com/rust-lang/crates.io-index" 3666 + checksum = "a2b42f36aa1cd011945615b92222f6bf73c599a102a300334cd7f8dbeec726cc" 3667 + dependencies = [ 3668 + "dyn-clone", 3669 + "ref-cast", 3670 + "serde", 3671 + "serde_json", 3672 + ] 3673 + 3674 + [[package]] 3675 + name = "schemars_derive" 3676 + version = "0.8.22" 3677 + source = "registry+https://github.com/rust-lang/crates.io-index" 3678 + checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d" 3679 + dependencies = [ 3680 + "proc-macro2", 3681 + "quote", 3682 + "serde_derive_internals", 3683 + "syn 2.0.106", 3684 + ] 3685 + 3686 + [[package]] 1180 3687 name = "scopeguard" 1181 3688 version = "1.2.0" 1182 3689 source = "registry+https://github.com/rust-lang/crates.io-index" 1183 3690 checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 1184 3691 1185 3692 [[package]] 3693 + name = "selectors" 3694 + version = "0.24.0" 3695 + source = "registry+https://github.com/rust-lang/crates.io-index" 3696 + checksum = "0c37578180969d00692904465fb7f6b3d50b9a2b952b87c23d0e2e5cb5013416" 3697 + dependencies = [ 3698 + "bitflags 1.3.2", 3699 + "cssparser", 3700 + "derive_more", 3701 + "fxhash", 3702 + "log", 3703 + "phf 0.8.0", 3704 + "phf_codegen 0.8.0", 3705 + "precomputed-hash", 3706 + "servo_arc", 3707 + "smallvec", 3708 + ] 3709 + 3710 + [[package]] 1186 3711 name = "semver" 1187 3712 version = "1.0.26" 1188 3713 source = "registry+https://github.com/rust-lang/crates.io-index" 1189 3714 checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" 3715 + dependencies = [ 3716 + "serde", 3717 + ] 1190 3718 1191 3719 [[package]] 1192 3720 name = "serde" 1193 - version = "1.0.221" 3721 + version = "1.0.228" 1194 3722 source = "registry+https://github.com/rust-lang/crates.io-index" 1195 - checksum = "341877e04a22458705eb4e131a1508483c877dca2792b3781d4e5d8a6019ec43" 3723 + checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" 1196 3724 dependencies = [ 1197 3725 "serde_core", 1198 3726 "serde_derive", 1199 3727 ] 1200 3728 1201 3729 [[package]] 3730 + name = "serde-untagged" 3731 + version = "0.1.9" 3732 + source = "registry+https://github.com/rust-lang/crates.io-index" 3733 + checksum = "f9faf48a4a2d2693be24c6289dbe26552776eb7737074e6722891fadbe6c5058" 3734 + dependencies = [ 3735 + "erased-serde", 3736 + "serde", 3737 + "serde_core", 3738 + "typeid", 3739 + ] 3740 + 3741 + [[package]] 1202 3742 name = "serde_core" 1203 - version = "1.0.221" 3743 + version = "1.0.228" 1204 3744 source = "registry+https://github.com/rust-lang/crates.io-index" 1205 - checksum = "0c459bc0a14c840cb403fc14b148620de1e0778c96ecd6e0c8c3cacb6d8d00fe" 3745 + checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" 1206 3746 dependencies = [ 1207 3747 "serde_derive", 1208 3748 ] 1209 3749 1210 3750 [[package]] 1211 3751 name = "serde_derive" 1212 - version = "1.0.221" 3752 + version = "1.0.228" 3753 + source = "registry+https://github.com/rust-lang/crates.io-index" 3754 + checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" 3755 + dependencies = [ 3756 + "proc-macro2", 3757 + "quote", 3758 + "syn 2.0.106", 3759 + ] 3760 + 3761 + [[package]] 3762 + name = "serde_derive_internals" 3763 + version = "0.29.1" 1213 3764 source = "registry+https://github.com/rust-lang/crates.io-index" 1214 - checksum = "d6185cf75117e20e62b1ff867b9518577271e58abe0037c40bb4794969355ab0" 3765 + checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" 1215 3766 dependencies = [ 1216 3767 "proc-macro2", 1217 3768 "quote", 1218 - "syn", 3769 + "syn 2.0.106", 1219 3770 ] 1220 3771 1221 3772 [[package]] 1222 3773 name = "serde_json" 1223 - version = "1.0.144" 3774 + version = "1.0.149" 1224 3775 source = "registry+https://github.com/rust-lang/crates.io-index" 1225 - checksum = "56177480b00303e689183f110b4e727bb4211d692c62d4fcd16d02be93077d40" 3776 + checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" 1226 3777 dependencies = [ 1227 3778 "itoa", 1228 3779 "memchr", 1229 - "ryu", 3780 + "serde", 3781 + "serde_core", 3782 + "zmij", 3783 + ] 3784 + 3785 + [[package]] 3786 + name = "serde_repr" 3787 + version = "0.1.20" 3788 + source = "registry+https://github.com/rust-lang/crates.io-index" 3789 + checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" 3790 + dependencies = [ 3791 + "proc-macro2", 3792 + "quote", 3793 + "syn 2.0.106", 3794 + ] 3795 + 3796 + [[package]] 3797 + name = "serde_spanned" 3798 + version = "0.6.9" 3799 + source = "registry+https://github.com/rust-lang/crates.io-index" 3800 + checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" 3801 + dependencies = [ 3802 + "serde", 3803 + ] 3804 + 3805 + [[package]] 3806 + name = "serde_spanned" 3807 + version = "1.0.4" 3808 + source = "registry+https://github.com/rust-lang/crates.io-index" 3809 + checksum = "f8bbf91e5a4d6315eee45e704372590b30e260ee83af6639d64557f51b067776" 3810 + dependencies = [ 1230 3811 "serde_core", 1231 3812 ] 1232 3813 1233 3814 [[package]] 3815 + name = "serde_with" 3816 + version = "3.17.0" 3817 + source = "registry+https://github.com/rust-lang/crates.io-index" 3818 + checksum = "381b283ce7bc6b476d903296fb59d0d36633652b633b27f64db4fb46dcbfc3b9" 3819 + dependencies = [ 3820 + "base64 0.22.1", 3821 + "chrono", 3822 + "hex", 3823 + "indexmap 1.9.3", 3824 + "indexmap 2.13.0", 3825 + "schemars 0.9.0", 3826 + "schemars 1.2.1", 3827 + "serde_core", 3828 + "serde_json", 3829 + "serde_with_macros", 3830 + "time", 3831 + ] 3832 + 3833 + [[package]] 3834 + name = "serde_with_macros" 3835 + version = "3.17.0" 3836 + source = "registry+https://github.com/rust-lang/crates.io-index" 3837 + checksum = "a6d4e30573c8cb306ed6ab1dca8423eec9a463ea0e155f45399455e0368b27e0" 3838 + dependencies = [ 3839 + "darling", 3840 + "proc-macro2", 3841 + "quote", 3842 + "syn 2.0.106", 3843 + ] 3844 + 3845 + [[package]] 3846 + name = "serialize-to-javascript" 3847 + version = "0.1.2" 3848 + source = "registry+https://github.com/rust-lang/crates.io-index" 3849 + checksum = "04f3666a07a197cdb77cdf306c32be9b7f598d7060d50cfd4d5aa04bfd92f6c5" 3850 + dependencies = [ 3851 + "serde", 3852 + "serde_json", 3853 + "serialize-to-javascript-impl", 3854 + ] 3855 + 3856 + [[package]] 3857 + name = "serialize-to-javascript-impl" 3858 + version = "0.1.2" 3859 + source = "registry+https://github.com/rust-lang/crates.io-index" 3860 + checksum = "772ee033c0916d670af7860b6e1ef7d658a4629a6d0b4c8c3e67f09b3765b75d" 3861 + dependencies = [ 3862 + "proc-macro2", 3863 + "quote", 3864 + "syn 2.0.106", 3865 + ] 3866 + 3867 + [[package]] 3868 + name = "servo_arc" 3869 + version = "0.2.0" 3870 + source = "registry+https://github.com/rust-lang/crates.io-index" 3871 + checksum = "d52aa42f8fdf0fed91e5ce7f23d8138441002fa31dca008acf47e6fd4721f741" 3872 + dependencies = [ 3873 + "nodrop", 3874 + "stable_deref_trait", 3875 + ] 3876 + 3877 + [[package]] 3878 + name = "sha2" 3879 + version = "0.10.9" 3880 + source = "registry+https://github.com/rust-lang/crates.io-index" 3881 + checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" 3882 + dependencies = [ 3883 + "cfg-if", 3884 + "cpufeatures", 3885 + "digest", 3886 + ] 3887 + 3888 + [[package]] 1234 3889 name = "shlex" 1235 3890 version = "1.3.0" 1236 3891 source = "registry+https://github.com/rust-lang/crates.io-index" 1237 3892 checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 3893 + 3894 + [[package]] 3895 + name = "signal-hook-registry" 3896 + version = "1.4.8" 3897 + source = "registry+https://github.com/rust-lang/crates.io-index" 3898 + checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" 3899 + dependencies = [ 3900 + "errno", 3901 + "libc", 3902 + ] 1238 3903 1239 3904 [[package]] 1240 3905 name = "simd-adler32" ··· 1263 3928 checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" 1264 3929 1265 3930 [[package]] 3931 + name = "siphasher" 3932 + version = "0.3.11" 3933 + source = "registry+https://github.com/rust-lang/crates.io-index" 3934 + checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" 3935 + 3936 + [[package]] 3937 + name = "siphasher" 3938 + version = "1.0.2" 3939 + source = "registry+https://github.com/rust-lang/crates.io-index" 3940 + checksum = "b2aa850e253778c88a04c3d7323b043aeda9d3e30d5971937c1855769763678e" 3941 + 3942 + [[package]] 1266 3943 name = "slab" 1267 3944 version = "0.4.11" 1268 3945 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1275 3952 checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" 1276 3953 1277 3954 [[package]] 3955 + name = "socket2" 3956 + version = "0.6.2" 3957 + source = "registry+https://github.com/rust-lang/crates.io-index" 3958 + checksum = "86f4aa3ad99f2088c990dfa82d367e19cb29268ed67c574d10d0a4bfe71f07e0" 3959 + dependencies = [ 3960 + "libc", 3961 + "windows-sys 0.60.2", 3962 + ] 3963 + 3964 + [[package]] 3965 + name = "softbuffer" 3966 + version = "0.4.6" 3967 + source = "registry+https://github.com/rust-lang/crates.io-index" 3968 + checksum = "18051cdd562e792cad055119e0cdb2cfc137e44e3987532e0f9659a77931bb08" 3969 + dependencies = [ 3970 + "bytemuck", 3971 + "cfg_aliases", 3972 + "core-graphics", 3973 + "foreign-types", 3974 + "js-sys", 3975 + "log", 3976 + "objc2 0.5.2", 3977 + "objc2-foundation 0.2.2", 3978 + "objc2-quartz-core 0.2.2", 3979 + "raw-window-handle", 3980 + "redox_syscall", 3981 + "wasm-bindgen", 3982 + "web-sys", 3983 + "windows-sys 0.59.0", 3984 + ] 3985 + 3986 + [[package]] 3987 + name = "soup3" 3988 + version = "0.5.0" 3989 + source = "registry+https://github.com/rust-lang/crates.io-index" 3990 + checksum = "471f924a40f31251afc77450e781cb26d55c0b650842efafc9c6cbd2f7cc4f9f" 3991 + dependencies = [ 3992 + "futures-channel", 3993 + "gio", 3994 + "glib", 3995 + "libc", 3996 + "soup3-sys", 3997 + ] 3998 + 3999 + [[package]] 4000 + name = "soup3-sys" 4001 + version = "0.5.0" 4002 + source = "registry+https://github.com/rust-lang/crates.io-index" 4003 + checksum = "7ebe8950a680a12f24f15ebe1bf70db7af98ad242d9db43596ad3108aab86c27" 4004 + dependencies = [ 4005 + "gio-sys", 4006 + "glib-sys", 4007 + "gobject-sys", 4008 + "libc", 4009 + "system-deps", 4010 + ] 4011 + 4012 + [[package]] 4013 + name = "specta" 4014 + version = "2.0.0-rc.22" 4015 + source = "registry+https://github.com/rust-lang/crates.io-index" 4016 + checksum = "ab7f01e9310a820edd31c80fde3cae445295adde21a3f9416517d7d65015b971" 4017 + dependencies = [ 4018 + "paste", 4019 + "specta-macros", 4020 + "thiserror 1.0.69", 4021 + ] 4022 + 4023 + [[package]] 4024 + name = "specta-macros" 4025 + version = "2.0.0-rc.18" 4026 + source = "registry+https://github.com/rust-lang/crates.io-index" 4027 + checksum = "c0074b9e30ed84c6924eb63ad8d2fe71cdc82628525d84b1fcb1f2fd40676517" 4028 + dependencies = [ 4029 + "Inflector", 4030 + "proc-macro2", 4031 + "quote", 4032 + "syn 2.0.106", 4033 + ] 4034 + 4035 + [[package]] 4036 + name = "specta-serde" 4037 + version = "0.0.9" 4038 + source = "registry+https://github.com/rust-lang/crates.io-index" 4039 + checksum = "77216504061374659e7245eac53d30c7b3e5fe64b88da97c753e7184b0781e63" 4040 + dependencies = [ 4041 + "specta", 4042 + "thiserror 1.0.69", 4043 + ] 4044 + 4045 + [[package]] 4046 + name = "specta-typescript" 4047 + version = "0.0.9" 4048 + source = "registry+https://github.com/rust-lang/crates.io-index" 4049 + checksum = "3220a0c365e51e248ac98eab5a6a32f544ff6f961906f09d3ee10903a4f52b2d" 4050 + dependencies = [ 4051 + "specta", 4052 + "specta-serde", 4053 + "thiserror 1.0.69", 4054 + ] 4055 + 4056 + [[package]] 1278 4057 name = "stable_deref_trait" 1279 4058 version = "1.2.0" 1280 4059 source = "registry+https://github.com/rust-lang/crates.io-index" 1281 4060 checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" 4061 + 4062 + [[package]] 4063 + name = "string_cache" 4064 + version = "0.8.9" 4065 + source = "registry+https://github.com/rust-lang/crates.io-index" 4066 + checksum = "bf776ba3fa74f83bf4b63c3dcbbf82173db2632ed8452cb2d891d33f459de70f" 4067 + dependencies = [ 4068 + "new_debug_unreachable", 4069 + "parking_lot", 4070 + "phf_shared 0.11.3", 4071 + "precomputed-hash", 4072 + "serde", 4073 + ] 4074 + 4075 + [[package]] 4076 + name = "string_cache_codegen" 4077 + version = "0.5.4" 4078 + source = "registry+https://github.com/rust-lang/crates.io-index" 4079 + checksum = "c711928715f1fe0fe509c53b43e993a9a557babc2d0a3567d0a3006f1ac931a0" 4080 + dependencies = [ 4081 + "phf_generator 0.11.3", 4082 + "phf_shared 0.11.3", 4083 + "proc-macro2", 4084 + "quote", 4085 + ] 4086 + 4087 + [[package]] 4088 + name = "strsim" 4089 + version = "0.11.1" 4090 + source = "registry+https://github.com/rust-lang/crates.io-index" 4091 + checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" 4092 + 4093 + [[package]] 4094 + name = "swift-rs" 4095 + version = "1.0.7" 4096 + source = "registry+https://github.com/rust-lang/crates.io-index" 4097 + checksum = "4057c98e2e852d51fdcfca832aac7b571f6b351ad159f9eda5db1655f8d0c4d7" 4098 + dependencies = [ 4099 + "base64 0.21.7", 4100 + "serde", 4101 + "serde_json", 4102 + ] 4103 + 4104 + [[package]] 4105 + name = "syn" 4106 + version = "1.0.109" 4107 + source = "registry+https://github.com/rust-lang/crates.io-index" 4108 + checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" 4109 + dependencies = [ 4110 + "proc-macro2", 4111 + "quote", 4112 + "unicode-ident", 4113 + ] 1282 4114 1283 4115 [[package]] 1284 4116 name = "syn" ··· 1292 4124 ] 1293 4125 1294 4126 [[package]] 4127 + name = "sync_wrapper" 4128 + version = "1.0.2" 4129 + source = "registry+https://github.com/rust-lang/crates.io-index" 4130 + checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" 4131 + dependencies = [ 4132 + "futures-core", 4133 + ] 4134 + 4135 + [[package]] 1295 4136 name = "synstructure" 1296 4137 version = "0.13.2" 1297 4138 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1299 4140 dependencies = [ 1300 4141 "proc-macro2", 1301 4142 "quote", 1302 - "syn", 4143 + "syn 2.0.106", 4144 + ] 4145 + 4146 + [[package]] 4147 + name = "system-deps" 4148 + version = "6.2.2" 4149 + source = "registry+https://github.com/rust-lang/crates.io-index" 4150 + checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" 4151 + dependencies = [ 4152 + "cfg-expr", 4153 + "heck 0.5.0", 4154 + "pkg-config", 4155 + "toml 0.8.2", 4156 + "version-compare", 4157 + ] 4158 + 4159 + [[package]] 4160 + name = "tao" 4161 + version = "0.34.5" 4162 + source = "registry+https://github.com/rust-lang/crates.io-index" 4163 + checksum = "f3a753bdc39c07b192151523a3f77cd0394aa75413802c883a0f6f6a0e5ee2e7" 4164 + dependencies = [ 4165 + "bitflags 2.9.4", 4166 + "block2 0.6.2", 4167 + "core-foundation", 4168 + "core-graphics", 4169 + "crossbeam-channel", 4170 + "dispatch", 4171 + "dlopen2", 4172 + "dpi", 4173 + "gdkwayland-sys", 4174 + "gdkx11-sys", 4175 + "gtk", 4176 + "jni", 4177 + "lazy_static", 4178 + "libc", 4179 + "log", 4180 + "ndk", 4181 + "ndk-context", 4182 + "ndk-sys", 4183 + "objc2 0.6.2", 4184 + "objc2-app-kit", 4185 + "objc2-foundation 0.3.1", 4186 + "once_cell", 4187 + "parking_lot", 4188 + "raw-window-handle", 4189 + "scopeguard", 4190 + "tao-macros", 4191 + "unicode-segmentation", 4192 + "url", 4193 + "windows 0.61.3", 4194 + "windows-core 0.61.2", 4195 + "windows-version", 4196 + "x11-dl", 4197 + ] 4198 + 4199 + [[package]] 4200 + name = "tao-macros" 4201 + version = "0.1.3" 4202 + source = "registry+https://github.com/rust-lang/crates.io-index" 4203 + checksum = "f4e16beb8b2ac17db28eab8bca40e62dbfbb34c0fcdc6d9826b11b7b5d047dfd" 4204 + dependencies = [ 4205 + "proc-macro2", 4206 + "quote", 4207 + "syn 2.0.106", 4208 + ] 4209 + 4210 + [[package]] 4211 + name = "target-lexicon" 4212 + version = "0.12.16" 4213 + source = "registry+https://github.com/rust-lang/crates.io-index" 4214 + checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" 4215 + 4216 + [[package]] 4217 + name = "tauri" 4218 + version = "2.10.2" 4219 + source = "registry+https://github.com/rust-lang/crates.io-index" 4220 + checksum = "463ae8677aa6d0f063a900b9c41ecd4ac2b7ca82f0b058cc4491540e55b20129" 4221 + dependencies = [ 4222 + "anyhow", 4223 + "bytes", 4224 + "cookie", 4225 + "dirs", 4226 + "dunce", 4227 + "embed_plist", 4228 + "getrandom 0.3.3", 4229 + "glob", 4230 + "gtk", 4231 + "heck 0.5.0", 4232 + "http", 4233 + "jni", 4234 + "libc", 4235 + "log", 4236 + "mime", 4237 + "muda", 4238 + "objc2 0.6.2", 4239 + "objc2-app-kit", 4240 + "objc2-foundation 0.3.1", 4241 + "objc2-ui-kit", 4242 + "objc2-web-kit", 4243 + "percent-encoding", 4244 + "plist", 4245 + "raw-window-handle", 4246 + "reqwest", 4247 + "serde", 4248 + "serde_json", 4249 + "serde_repr", 4250 + "serialize-to-javascript", 4251 + "specta", 4252 + "swift-rs", 4253 + "tauri-build", 4254 + "tauri-macros", 4255 + "tauri-runtime", 4256 + "tauri-runtime-wry", 4257 + "tauri-utils", 4258 + "thiserror 2.0.16", 4259 + "tokio", 4260 + "tray-icon", 4261 + "url", 4262 + "webkit2gtk", 4263 + "webview2-com", 4264 + "window-vibrancy", 4265 + "windows 0.61.3", 4266 + ] 4267 + 4268 + [[package]] 4269 + name = "tauri-build" 4270 + version = "2.5.5" 4271 + source = "registry+https://github.com/rust-lang/crates.io-index" 4272 + checksum = "ca7bd893329425df750813e95bd2b643d5369d929438da96d5bbb7cc2c918f74" 4273 + dependencies = [ 4274 + "anyhow", 4275 + "cargo_toml", 4276 + "dirs", 4277 + "glob", 4278 + "heck 0.5.0", 4279 + "json-patch", 4280 + "schemars 0.8.22", 4281 + "semver", 4282 + "serde", 4283 + "serde_json", 4284 + "tauri-utils", 4285 + "tauri-winres", 4286 + "toml 0.9.12+spec-1.1.0", 4287 + "walkdir", 4288 + ] 4289 + 4290 + [[package]] 4291 + name = "tauri-codegen" 4292 + version = "2.5.4" 4293 + source = "registry+https://github.com/rust-lang/crates.io-index" 4294 + checksum = "aac423e5859d9f9ccdd32e3cf6a5866a15bedbf25aa6630bcb2acde9468f6ae3" 4295 + dependencies = [ 4296 + "base64 0.22.1", 4297 + "brotli", 4298 + "ico", 4299 + "json-patch", 4300 + "plist", 4301 + "png 0.17.16", 4302 + "proc-macro2", 4303 + "quote", 4304 + "semver", 4305 + "serde", 4306 + "serde_json", 4307 + "sha2", 4308 + "syn 2.0.106", 4309 + "tauri-utils", 4310 + "thiserror 2.0.16", 4311 + "time", 4312 + "url", 4313 + "uuid", 4314 + "walkdir", 4315 + ] 4316 + 4317 + [[package]] 4318 + name = "tauri-macros" 4319 + version = "2.5.4" 4320 + source = "registry+https://github.com/rust-lang/crates.io-index" 4321 + checksum = "1b6a1bd2861ff0c8766b1d38b32a6a410f6dc6532d4ef534c47cfb2236092f59" 4322 + dependencies = [ 4323 + "heck 0.5.0", 4324 + "proc-macro2", 4325 + "quote", 4326 + "syn 2.0.106", 4327 + "tauri-codegen", 4328 + "tauri-utils", 4329 + ] 4330 + 4331 + [[package]] 4332 + name = "tauri-plugin" 4333 + version = "2.5.3" 4334 + source = "registry+https://github.com/rust-lang/crates.io-index" 4335 + checksum = "692a77abd8b8773e107a42ec0e05b767b8d2b7ece76ab36c6c3947e34df9f53f" 4336 + dependencies = [ 4337 + "anyhow", 4338 + "glob", 4339 + "plist", 4340 + "schemars 0.8.22", 4341 + "serde", 4342 + "serde_json", 4343 + "tauri-utils", 4344 + "toml 0.9.12+spec-1.1.0", 4345 + "walkdir", 4346 + ] 4347 + 4348 + [[package]] 4349 + name = "tauri-plugin-dialog" 4350 + version = "2.6.0" 4351 + source = "registry+https://github.com/rust-lang/crates.io-index" 4352 + checksum = "9204b425d9be8d12aa60c2a83a289cf7d1caae40f57f336ed1155b3a5c0e359b" 4353 + dependencies = [ 4354 + "log", 4355 + "raw-window-handle", 4356 + "rfd", 4357 + "serde", 4358 + "serde_json", 4359 + "tauri", 4360 + "tauri-plugin", 4361 + "tauri-plugin-fs", 4362 + "thiserror 2.0.16", 4363 + "url", 4364 + ] 4365 + 4366 + [[package]] 4367 + name = "tauri-plugin-fs" 4368 + version = "2.4.5" 4369 + source = "registry+https://github.com/rust-lang/crates.io-index" 4370 + checksum = "ed390cc669f937afeb8b28032ce837bac8ea023d975a2e207375ec05afaf1804" 4371 + dependencies = [ 4372 + "anyhow", 4373 + "dunce", 4374 + "glob", 4375 + "percent-encoding", 4376 + "schemars 0.8.22", 4377 + "serde", 4378 + "serde_json", 4379 + "serde_repr", 4380 + "tauri", 4381 + "tauri-plugin", 4382 + "tauri-utils", 4383 + "thiserror 2.0.16", 4384 + "toml 0.9.12+spec-1.1.0", 4385 + "url", 4386 + ] 4387 + 4388 + [[package]] 4389 + name = "tauri-plugin-opener" 4390 + version = "2.5.3" 4391 + source = "registry+https://github.com/rust-lang/crates.io-index" 4392 + checksum = "fc624469b06f59f5a29f874bbc61a2ed737c0f9c23ef09855a292c389c42e83f" 4393 + dependencies = [ 4394 + "dunce", 4395 + "glob", 4396 + "objc2-app-kit", 4397 + "objc2-foundation 0.3.1", 4398 + "open", 4399 + "schemars 0.8.22", 4400 + "serde", 4401 + "serde_json", 4402 + "tauri", 4403 + "tauri-plugin", 4404 + "thiserror 2.0.16", 4405 + "url", 4406 + "windows 0.61.3", 4407 + "zbus", 4408 + ] 4409 + 4410 + [[package]] 4411 + name = "tauri-plugin-safe-area-insets-css" 4412 + version = "0.2.0" 4413 + source = "registry+https://github.com/rust-lang/crates.io-index" 4414 + checksum = "245c374d1f8b4f68b4b14596a8d4252c3410eb0591685cc21d2d34158aab3949" 4415 + dependencies = [ 4416 + "serde", 4417 + "tauri", 4418 + "tauri-plugin", 4419 + "thiserror 2.0.16", 4420 + ] 4421 + 4422 + [[package]] 4423 + name = "tauri-plugin-store" 4424 + version = "2.4.2" 4425 + source = "registry+https://github.com/rust-lang/crates.io-index" 4426 + checksum = "5ca1a8ff83c269b115e98726ffc13f9e548a10161544a92ad121d6d0a96e16ea" 4427 + dependencies = [ 4428 + "dunce", 4429 + "serde", 4430 + "serde_json", 4431 + "tauri", 4432 + "tauri-plugin", 4433 + "thiserror 2.0.16", 4434 + "tokio", 4435 + "tracing", 4436 + ] 4437 + 4438 + [[package]] 4439 + name = "tauri-runtime" 4440 + version = "2.10.0" 4441 + source = "registry+https://github.com/rust-lang/crates.io-index" 4442 + checksum = "b885ffeac82b00f1f6fd292b6e5aabfa7435d537cef57d11e38a489956535651" 4443 + dependencies = [ 4444 + "cookie", 4445 + "dpi", 4446 + "gtk", 4447 + "http", 4448 + "jni", 4449 + "objc2 0.6.2", 4450 + "objc2-ui-kit", 4451 + "objc2-web-kit", 4452 + "raw-window-handle", 4453 + "serde", 4454 + "serde_json", 4455 + "tauri-utils", 4456 + "thiserror 2.0.16", 4457 + "url", 4458 + "webkit2gtk", 4459 + "webview2-com", 4460 + "windows 0.61.3", 4461 + ] 4462 + 4463 + [[package]] 4464 + name = "tauri-runtime-wry" 4465 + version = "2.10.0" 4466 + source = "registry+https://github.com/rust-lang/crates.io-index" 4467 + checksum = "5204682391625e867d16584fedc83fc292fb998814c9f7918605c789cd876314" 4468 + dependencies = [ 4469 + "gtk", 4470 + "http", 4471 + "jni", 4472 + "log", 4473 + "objc2 0.6.2", 4474 + "objc2-app-kit", 4475 + "objc2-foundation 0.3.1", 4476 + "once_cell", 4477 + "percent-encoding", 4478 + "raw-window-handle", 4479 + "softbuffer", 4480 + "tao", 4481 + "tauri-runtime", 4482 + "tauri-utils", 4483 + "url", 4484 + "webkit2gtk", 4485 + "webview2-com", 4486 + "windows 0.61.3", 4487 + "wry", 4488 + ] 4489 + 4490 + [[package]] 4491 + name = "tauri-specta" 4492 + version = "2.0.0-rc.21" 4493 + source = "registry+https://github.com/rust-lang/crates.io-index" 4494 + checksum = "b23c0132dd3cf6064e5cd919b82b3f47780e9280e7b5910babfe139829b76655" 4495 + dependencies = [ 4496 + "heck 0.5.0", 4497 + "serde", 4498 + "serde_json", 4499 + "specta", 4500 + "specta-typescript", 4501 + "tauri", 4502 + "tauri-specta-macros", 4503 + "thiserror 2.0.16", 4504 + ] 4505 + 4506 + [[package]] 4507 + name = "tauri-specta-macros" 4508 + version = "2.0.0-rc.16" 4509 + source = "registry+https://github.com/rust-lang/crates.io-index" 4510 + checksum = "7a4aa93823e07859546aa796b8a5d608190cd8037a3a5dce3eb63d491c34bda8" 4511 + dependencies = [ 4512 + "heck 0.5.0", 4513 + "proc-macro2", 4514 + "quote", 4515 + "syn 2.0.106", 4516 + ] 4517 + 4518 + [[package]] 4519 + name = "tauri-utils" 4520 + version = "2.8.2" 4521 + source = "registry+https://github.com/rust-lang/crates.io-index" 4522 + checksum = "fcd169fccdff05eff2c1033210b9b94acd07a47e6fa9a3431cf09cfd4f01c87e" 4523 + dependencies = [ 4524 + "anyhow", 4525 + "brotli", 4526 + "cargo_metadata", 4527 + "ctor 0.2.9", 4528 + "dunce", 4529 + "glob", 4530 + "html5ever", 4531 + "http", 4532 + "infer", 4533 + "json-patch", 4534 + "kuchikiki", 4535 + "log", 4536 + "memchr", 4537 + "phf 0.11.3", 4538 + "proc-macro2", 4539 + "quote", 4540 + "regex", 4541 + "schemars 0.8.22", 4542 + "semver", 4543 + "serde", 4544 + "serde-untagged", 4545 + "serde_json", 4546 + "serde_with", 4547 + "swift-rs", 4548 + "thiserror 2.0.16", 4549 + "toml 0.9.12+spec-1.1.0", 4550 + "url", 4551 + "urlpattern", 4552 + "uuid", 4553 + "walkdir", 4554 + ] 4555 + 4556 + [[package]] 4557 + name = "tauri-winres" 4558 + version = "0.3.5" 4559 + source = "registry+https://github.com/rust-lang/crates.io-index" 4560 + checksum = "1087b111fe2b005e42dbdc1990fc18593234238d47453b0c99b7de1c9ab2c1e0" 4561 + dependencies = [ 4562 + "dunce", 4563 + "embed-resource", 4564 + "toml 0.9.12+spec-1.1.0", 1303 4565 ] 1304 4566 1305 4567 [[package]] ··· 1316 4578 ] 1317 4579 1318 4580 [[package]] 4581 + name = "tendril" 4582 + version = "0.4.3" 4583 + source = "registry+https://github.com/rust-lang/crates.io-index" 4584 + checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" 4585 + dependencies = [ 4586 + "futf", 4587 + "mac", 4588 + "utf-8", 4589 + ] 4590 + 4591 + [[package]] 1319 4592 name = "thiserror" 1320 4593 version = "1.0.69" 1321 4594 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1341 4614 dependencies = [ 1342 4615 "proc-macro2", 1343 4616 "quote", 1344 - "syn", 4617 + "syn 2.0.106", 1345 4618 ] 1346 4619 1347 4620 [[package]] ··· 1352 4625 dependencies = [ 1353 4626 "proc-macro2", 1354 4627 "quote", 1355 - "syn", 4628 + "syn 2.0.106", 1356 4629 ] 1357 4630 1358 4631 [[package]] ··· 1417 4690 checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" 1418 4691 dependencies = [ 1419 4692 "backtrace", 4693 + "bytes", 1420 4694 "io-uring", 1421 4695 "libc", 1422 4696 "mio", 1423 4697 "pin-project-lite", 1424 4698 "slab", 4699 + "socket2", 1425 4700 "tokio-macros", 4701 + "windows-sys 0.59.0", 1426 4702 ] 1427 4703 1428 4704 [[package]] ··· 1433 4709 dependencies = [ 1434 4710 "proc-macro2", 1435 4711 "quote", 1436 - "syn", 4712 + "syn 2.0.106", 4713 + ] 4714 + 4715 + [[package]] 4716 + name = "tokio-util" 4717 + version = "0.7.18" 4718 + source = "registry+https://github.com/rust-lang/crates.io-index" 4719 + checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" 4720 + dependencies = [ 4721 + "bytes", 4722 + "futures-core", 4723 + "futures-sink", 4724 + "pin-project-lite", 4725 + "tokio", 4726 + ] 4727 + 4728 + [[package]] 4729 + name = "toml" 4730 + version = "0.8.2" 4731 + source = "registry+https://github.com/rust-lang/crates.io-index" 4732 + checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" 4733 + dependencies = [ 4734 + "serde", 4735 + "serde_spanned 0.6.9", 4736 + "toml_datetime 0.6.3", 4737 + "toml_edit 0.20.2", 4738 + ] 4739 + 4740 + [[package]] 4741 + name = "toml" 4742 + version = "0.9.12+spec-1.1.0" 4743 + source = "registry+https://github.com/rust-lang/crates.io-index" 4744 + checksum = "cf92845e79fc2e2def6a5d828f0801e29a2f8acc037becc5ab08595c7d5e9863" 4745 + dependencies = [ 4746 + "indexmap 2.13.0", 4747 + "serde_core", 4748 + "serde_spanned 1.0.4", 4749 + "toml_datetime 0.7.5+spec-1.1.0", 4750 + "toml_parser", 4751 + "toml_writer", 4752 + "winnow 0.7.14", 4753 + ] 4754 + 4755 + [[package]] 4756 + name = "toml_datetime" 4757 + version = "0.6.3" 4758 + source = "registry+https://github.com/rust-lang/crates.io-index" 4759 + checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" 4760 + dependencies = [ 4761 + "serde", 4762 + ] 4763 + 4764 + [[package]] 4765 + name = "toml_datetime" 4766 + version = "0.7.5+spec-1.1.0" 4767 + source = "registry+https://github.com/rust-lang/crates.io-index" 4768 + checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" 4769 + dependencies = [ 4770 + "serde_core", 4771 + ] 4772 + 4773 + [[package]] 4774 + name = "toml_edit" 4775 + version = "0.19.15" 4776 + source = "registry+https://github.com/rust-lang/crates.io-index" 4777 + checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" 4778 + dependencies = [ 4779 + "indexmap 2.13.0", 4780 + "toml_datetime 0.6.3", 4781 + "winnow 0.5.40", 4782 + ] 4783 + 4784 + [[package]] 4785 + name = "toml_edit" 4786 + version = "0.20.2" 4787 + source = "registry+https://github.com/rust-lang/crates.io-index" 4788 + checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" 4789 + dependencies = [ 4790 + "indexmap 2.13.0", 4791 + "serde", 4792 + "serde_spanned 0.6.9", 4793 + "toml_datetime 0.6.3", 4794 + "winnow 0.5.40", 4795 + ] 4796 + 4797 + [[package]] 4798 + name = "toml_edit" 4799 + version = "0.23.10+spec-1.0.0" 4800 + source = "registry+https://github.com/rust-lang/crates.io-index" 4801 + checksum = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269" 4802 + dependencies = [ 4803 + "indexmap 2.13.0", 4804 + "toml_datetime 0.7.5+spec-1.1.0", 4805 + "toml_parser", 4806 + "winnow 0.7.14", 4807 + ] 4808 + 4809 + [[package]] 4810 + name = "toml_parser" 4811 + version = "1.0.9+spec-1.1.0" 4812 + source = "registry+https://github.com/rust-lang/crates.io-index" 4813 + checksum = "702d4415e08923e7e1ef96cd5727c0dfed80b4d2fa25db9647fe5eb6f7c5a4c4" 4814 + dependencies = [ 4815 + "winnow 0.7.14", 4816 + ] 4817 + 4818 + [[package]] 4819 + name = "toml_writer" 4820 + version = "1.0.6+spec-1.1.0" 4821 + source = "registry+https://github.com/rust-lang/crates.io-index" 4822 + checksum = "ab16f14aed21ee8bfd8ec22513f7287cd4a91aa92e44edfe2c17ddd004e92607" 4823 + 4824 + [[package]] 4825 + name = "tower" 4826 + version = "0.5.3" 4827 + source = "registry+https://github.com/rust-lang/crates.io-index" 4828 + checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" 4829 + dependencies = [ 4830 + "futures-core", 4831 + "futures-util", 4832 + "pin-project-lite", 4833 + "sync_wrapper", 4834 + "tokio", 4835 + "tower-layer", 4836 + "tower-service", 4837 + ] 4838 + 4839 + [[package]] 4840 + name = "tower-http" 4841 + version = "0.6.8" 4842 + source = "registry+https://github.com/rust-lang/crates.io-index" 4843 + checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" 4844 + dependencies = [ 4845 + "bitflags 2.9.4", 4846 + "bytes", 4847 + "futures-util", 4848 + "http", 4849 + "http-body", 4850 + "iri-string", 4851 + "pin-project-lite", 4852 + "tower", 4853 + "tower-layer", 4854 + "tower-service", 4855 + ] 4856 + 4857 + [[package]] 4858 + name = "tower-layer" 4859 + version = "0.3.3" 4860 + source = "registry+https://github.com/rust-lang/crates.io-index" 4861 + checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" 4862 + 4863 + [[package]] 4864 + name = "tower-service" 4865 + version = "0.3.3" 4866 + source = "registry+https://github.com/rust-lang/crates.io-index" 4867 + checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" 4868 + 4869 + [[package]] 4870 + name = "tracing" 4871 + version = "0.1.44" 4872 + source = "registry+https://github.com/rust-lang/crates.io-index" 4873 + checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" 4874 + dependencies = [ 4875 + "pin-project-lite", 4876 + "tracing-attributes", 4877 + "tracing-core", 4878 + ] 4879 + 4880 + [[package]] 4881 + name = "tracing-attributes" 4882 + version = "0.1.31" 4883 + source = "registry+https://github.com/rust-lang/crates.io-index" 4884 + checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" 4885 + dependencies = [ 4886 + "proc-macro2", 4887 + "quote", 4888 + "syn 2.0.106", 4889 + ] 4890 + 4891 + [[package]] 4892 + name = "tracing-core" 4893 + version = "0.1.36" 4894 + source = "registry+https://github.com/rust-lang/crates.io-index" 4895 + checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" 4896 + dependencies = [ 4897 + "once_cell", 1437 4898 ] 1438 4899 1439 4900 [[package]] ··· 1445 4906 "chrono", 1446 4907 "libc", 1447 4908 "log", 1448 - "objc2", 1449 - "objc2-foundation", 4909 + "objc2 0.6.2", 4910 + "objc2-foundation 0.3.1", 1450 4911 "once_cell", 1451 4912 "percent-encoding", 1452 4913 "scopeguard", 1453 4914 "urlencoding", 1454 - "windows", 4915 + "windows 0.56.0", 4916 + ] 4917 + 4918 + [[package]] 4919 + name = "tray-icon" 4920 + version = "0.21.3" 4921 + source = "registry+https://github.com/rust-lang/crates.io-index" 4922 + checksum = "a5e85aa143ceb072062fc4d6356c1b520a51d636e7bc8e77ec94be3608e5e80c" 4923 + dependencies = [ 4924 + "crossbeam-channel", 4925 + "dirs", 4926 + "libappindicator", 4927 + "muda", 4928 + "objc2 0.6.2", 4929 + "objc2-app-kit", 4930 + "objc2-core-foundation", 4931 + "objc2-core-graphics", 4932 + "objc2-foundation 0.3.1", 4933 + "once_cell", 4934 + "png 0.17.16", 4935 + "serde", 4936 + "thiserror 2.0.16", 4937 + "windows-sys 0.60.2", 4938 + ] 4939 + 4940 + [[package]] 4941 + name = "try-lock" 4942 + version = "0.2.5" 4943 + source = "registry+https://github.com/rust-lang/crates.io-index" 4944 + checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" 4945 + 4946 + [[package]] 4947 + name = "typeid" 4948 + version = "1.0.3" 4949 + source = "registry+https://github.com/rust-lang/crates.io-index" 4950 + checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" 4951 + 4952 + [[package]] 4953 + name = "typenum" 4954 + version = "1.19.0" 4955 + source = "registry+https://github.com/rust-lang/crates.io-index" 4956 + checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" 4957 + 4958 + [[package]] 4959 + name = "uds_windows" 4960 + version = "1.1.0" 4961 + source = "registry+https://github.com/rust-lang/crates.io-index" 4962 + checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" 4963 + dependencies = [ 4964 + "memoffset", 4965 + "tempfile", 4966 + "winapi", 4967 + ] 4968 + 4969 + [[package]] 4970 + name = "unic-char-property" 4971 + version = "0.9.0" 4972 + source = "registry+https://github.com/rust-lang/crates.io-index" 4973 + checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221" 4974 + dependencies = [ 4975 + "unic-char-range", 4976 + ] 4977 + 4978 + [[package]] 4979 + name = "unic-char-range" 4980 + version = "0.9.0" 4981 + source = "registry+https://github.com/rust-lang/crates.io-index" 4982 + checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc" 4983 + 4984 + [[package]] 4985 + name = "unic-common" 4986 + version = "0.9.0" 4987 + source = "registry+https://github.com/rust-lang/crates.io-index" 4988 + checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc" 4989 + 4990 + [[package]] 4991 + name = "unic-ucd-ident" 4992 + version = "0.9.0" 4993 + source = "registry+https://github.com/rust-lang/crates.io-index" 4994 + checksum = "e230a37c0381caa9219d67cf063aa3a375ffed5bf541a452db16e744bdab6987" 4995 + dependencies = [ 4996 + "unic-char-property", 4997 + "unic-char-range", 4998 + "unic-ucd-version", 4999 + ] 5000 + 5001 + [[package]] 5002 + name = "unic-ucd-version" 5003 + version = "0.9.0" 5004 + source = "registry+https://github.com/rust-lang/crates.io-index" 5005 + checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4" 5006 + dependencies = [ 5007 + "unic-common", 1455 5008 ] 1456 5009 1457 5010 [[package]] ··· 1476 5029 checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" 1477 5030 1478 5031 [[package]] 5032 + name = "unicode-xid" 5033 + version = "0.2.6" 5034 + source = "registry+https://github.com/rust-lang/crates.io-index" 5035 + checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" 5036 + 5037 + [[package]] 1479 5038 name = "url" 1480 5039 version = "2.5.7" 1481 5040 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1494 5053 checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" 1495 5054 1496 5055 [[package]] 5056 + name = "urlpattern" 5057 + version = "0.3.0" 5058 + source = "registry+https://github.com/rust-lang/crates.io-index" 5059 + checksum = "70acd30e3aa1450bc2eece896ce2ad0d178e9c079493819301573dae3c37ba6d" 5060 + dependencies = [ 5061 + "regex", 5062 + "serde", 5063 + "unic-ucd-ident", 5064 + "url", 5065 + ] 5066 + 5067 + [[package]] 5068 + name = "utf-8" 5069 + version = "0.7.6" 5070 + source = "registry+https://github.com/rust-lang/crates.io-index" 5071 + checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" 5072 + 5073 + [[package]] 1497 5074 name = "utf8_iter" 1498 5075 version = "1.0.4" 1499 5076 source = "registry+https://github.com/rust-lang/crates.io-index" 1500 5077 checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" 1501 5078 1502 5079 [[package]] 5080 + name = "uuid" 5081 + version = "1.21.0" 5082 + source = "registry+https://github.com/rust-lang/crates.io-index" 5083 + checksum = "b672338555252d43fd2240c714dc444b8c6fb0a5c5335e65a07bba7742735ddb" 5084 + dependencies = [ 5085 + "getrandom 0.4.2", 5086 + "js-sys", 5087 + "serde_core", 5088 + "wasm-bindgen", 5089 + ] 5090 + 5091 + [[package]] 1503 5092 name = "value-trait" 1504 5093 version = "0.11.0" 1505 5094 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1512 5101 ] 1513 5102 1514 5103 [[package]] 5104 + name = "version-compare" 5105 + version = "0.2.1" 5106 + source = "registry+https://github.com/rust-lang/crates.io-index" 5107 + checksum = "03c2856837ef78f57382f06b2b8563a2f512f7185d732608fd9176cb3b8edf0e" 5108 + 5109 + [[package]] 5110 + name = "version_check" 5111 + version = "0.9.5" 5112 + source = "registry+https://github.com/rust-lang/crates.io-index" 5113 + checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" 5114 + 5115 + [[package]] 5116 + name = "vswhom" 5117 + version = "0.1.0" 5118 + source = "registry+https://github.com/rust-lang/crates.io-index" 5119 + checksum = "be979b7f07507105799e854203b470ff7c78a1639e330a58f183b5fea574608b" 5120 + dependencies = [ 5121 + "libc", 5122 + "vswhom-sys", 5123 + ] 5124 + 5125 + [[package]] 5126 + name = "vswhom-sys" 5127 + version = "0.1.3" 5128 + source = "registry+https://github.com/rust-lang/crates.io-index" 5129 + checksum = "fb067e4cbd1ff067d1df46c9194b5de0e98efd2810bbc95c5d5e5f25a3231150" 5130 + dependencies = [ 5131 + "cc", 5132 + "libc", 5133 + ] 5134 + 5135 + [[package]] 5136 + name = "walkdir" 5137 + version = "2.5.0" 5138 + source = "registry+https://github.com/rust-lang/crates.io-index" 5139 + checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" 5140 + dependencies = [ 5141 + "same-file", 5142 + "winapi-util", 5143 + ] 5144 + 5145 + [[package]] 5146 + name = "want" 5147 + version = "0.3.1" 5148 + source = "registry+https://github.com/rust-lang/crates.io-index" 5149 + checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" 5150 + dependencies = [ 5151 + "try-lock", 5152 + ] 5153 + 5154 + [[package]] 5155 + name = "wasi" 5156 + version = "0.9.0+wasi-snapshot-preview1" 5157 + source = "registry+https://github.com/rust-lang/crates.io-index" 5158 + checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" 5159 + 5160 + [[package]] 1515 5161 name = "wasi" 1516 5162 version = "0.11.1+wasi-snapshot-preview1" 1517 5163 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1532 5178 source = "registry+https://github.com/rust-lang/crates.io-index" 1533 5179 checksum = "03fa2761397e5bd52002cd7e73110c71af2109aca4e521a9f40473fe685b0a24" 1534 5180 dependencies = [ 1535 - "wit-bindgen", 5181 + "wit-bindgen 0.45.1", 5182 + ] 5183 + 5184 + [[package]] 5185 + name = "wasip3" 5186 + version = "0.4.0+wasi-0.3.0-rc-2026-01-06" 5187 + source = "registry+https://github.com/rust-lang/crates.io-index" 5188 + checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" 5189 + dependencies = [ 5190 + "wit-bindgen 0.51.0", 1536 5191 ] 1537 5192 1538 5193 [[package]] 1539 5194 name = "wasm-bindgen" 1540 - version = "0.2.101" 5195 + version = "0.2.114" 1541 5196 source = "registry+https://github.com/rust-lang/crates.io-index" 1542 - checksum = "7e14915cadd45b529bb8d1f343c4ed0ac1de926144b746e2710f9cd05df6603b" 5197 + checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e" 1543 5198 dependencies = [ 1544 5199 "cfg-if", 1545 5200 "once_cell", ··· 1549 5204 ] 1550 5205 1551 5206 [[package]] 1552 - name = "wasm-bindgen-backend" 1553 - version = "0.2.101" 5207 + name = "wasm-bindgen-futures" 5208 + version = "0.4.64" 1554 5209 source = "registry+https://github.com/rust-lang/crates.io-index" 1555 - checksum = "e28d1ba982ca7923fd01448d5c30c6864d0a14109560296a162f80f305fb93bb" 5210 + checksum = "e9c5522b3a28661442748e09d40924dfb9ca614b21c00d3fd135720e48b67db8" 1556 5211 dependencies = [ 1557 - "bumpalo", 1558 - "log", 1559 - "proc-macro2", 1560 - "quote", 1561 - "syn", 1562 - "wasm-bindgen-shared", 5212 + "cfg-if", 5213 + "futures-util", 5214 + "js-sys", 5215 + "once_cell", 5216 + "wasm-bindgen", 5217 + "web-sys", 1563 5218 ] 1564 5219 1565 5220 [[package]] 1566 5221 name = "wasm-bindgen-macro" 1567 - version = "0.2.101" 5222 + version = "0.2.114" 1568 5223 source = "registry+https://github.com/rust-lang/crates.io-index" 1569 - checksum = "7c3d463ae3eff775b0c45df9da45d68837702ac35af998361e2c84e7c5ec1b0d" 5224 + checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6" 1570 5225 dependencies = [ 1571 5226 "quote", 1572 5227 "wasm-bindgen-macro-support", ··· 1574 5229 1575 5230 [[package]] 1576 5231 name = "wasm-bindgen-macro-support" 1577 - version = "0.2.101" 5232 + version = "0.2.114" 1578 5233 source = "registry+https://github.com/rust-lang/crates.io-index" 1579 - checksum = "7bb4ce89b08211f923caf51d527662b75bdc9c9c7aab40f86dcb9fb85ac552aa" 5234 + checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3" 1580 5235 dependencies = [ 5236 + "bumpalo", 1581 5237 "proc-macro2", 1582 5238 "quote", 1583 - "syn", 1584 - "wasm-bindgen-backend", 5239 + "syn 2.0.106", 1585 5240 "wasm-bindgen-shared", 1586 5241 ] 1587 5242 1588 5243 [[package]] 1589 5244 name = "wasm-bindgen-shared" 1590 - version = "0.2.101" 5245 + version = "0.2.114" 1591 5246 source = "registry+https://github.com/rust-lang/crates.io-index" 1592 - checksum = "f143854a3b13752c6950862c906306adb27c7e839f7414cec8fea35beab624c1" 5247 + checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16" 1593 5248 dependencies = [ 1594 5249 "unicode-ident", 1595 5250 ] 1596 5251 1597 5252 [[package]] 5253 + name = "wasm-encoder" 5254 + version = "0.244.0" 5255 + source = "registry+https://github.com/rust-lang/crates.io-index" 5256 + checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" 5257 + dependencies = [ 5258 + "leb128fmt", 5259 + "wasmparser", 5260 + ] 5261 + 5262 + [[package]] 5263 + name = "wasm-metadata" 5264 + version = "0.244.0" 5265 + source = "registry+https://github.com/rust-lang/crates.io-index" 5266 + checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" 5267 + dependencies = [ 5268 + "anyhow", 5269 + "indexmap 2.13.0", 5270 + "wasm-encoder", 5271 + "wasmparser", 5272 + ] 5273 + 5274 + [[package]] 5275 + name = "wasm-streams" 5276 + version = "0.5.0" 5277 + source = "registry+https://github.com/rust-lang/crates.io-index" 5278 + checksum = "9d1ec4f6517c9e11ae630e200b2b65d193279042e28edd4a2cda233e46670bbb" 5279 + dependencies = [ 5280 + "futures-util", 5281 + "js-sys", 5282 + "wasm-bindgen", 5283 + "wasm-bindgen-futures", 5284 + "web-sys", 5285 + ] 5286 + 5287 + [[package]] 5288 + name = "wasmparser" 5289 + version = "0.244.0" 5290 + source = "registry+https://github.com/rust-lang/crates.io-index" 5291 + checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" 5292 + dependencies = [ 5293 + "bitflags 2.9.4", 5294 + "hashbrown 0.15.5", 5295 + "indexmap 2.13.0", 5296 + "semver", 5297 + ] 5298 + 5299 + [[package]] 5300 + name = "web-sys" 5301 + version = "0.3.91" 5302 + source = "registry+https://github.com/rust-lang/crates.io-index" 5303 + checksum = "854ba17bb104abfb26ba36da9729addc7ce7f06f5c0f90f3c391f8461cca21f9" 5304 + dependencies = [ 5305 + "js-sys", 5306 + "wasm-bindgen", 5307 + ] 5308 + 5309 + [[package]] 5310 + name = "webkit2gtk" 5311 + version = "2.0.2" 5312 + source = "registry+https://github.com/rust-lang/crates.io-index" 5313 + checksum = "a1027150013530fb2eaf806408df88461ae4815a45c541c8975e61d6f2fc4793" 5314 + dependencies = [ 5315 + "bitflags 1.3.2", 5316 + "cairo-rs", 5317 + "gdk", 5318 + "gdk-sys", 5319 + "gio", 5320 + "gio-sys", 5321 + "glib", 5322 + "glib-sys", 5323 + "gobject-sys", 5324 + "gtk", 5325 + "gtk-sys", 5326 + "javascriptcore-rs", 5327 + "libc", 5328 + "once_cell", 5329 + "soup3", 5330 + "webkit2gtk-sys", 5331 + ] 5332 + 5333 + [[package]] 5334 + name = "webkit2gtk-sys" 5335 + version = "2.0.2" 5336 + source = "registry+https://github.com/rust-lang/crates.io-index" 5337 + checksum = "916a5f65c2ef0dfe12fff695960a2ec3d4565359fdbb2e9943c974e06c734ea5" 5338 + dependencies = [ 5339 + "bitflags 1.3.2", 5340 + "cairo-sys-rs", 5341 + "gdk-sys", 5342 + "gio-sys", 5343 + "glib-sys", 5344 + "gobject-sys", 5345 + "gtk-sys", 5346 + "javascriptcore-rs-sys", 5347 + "libc", 5348 + "pkg-config", 5349 + "soup3-sys", 5350 + "system-deps", 5351 + ] 5352 + 5353 + [[package]] 5354 + name = "webview2-com" 5355 + version = "0.38.2" 5356 + source = "registry+https://github.com/rust-lang/crates.io-index" 5357 + checksum = "7130243a7a5b33c54a444e54842e6a9e133de08b5ad7b5861cd8ed9a6a5bc96a" 5358 + dependencies = [ 5359 + "webview2-com-macros", 5360 + "webview2-com-sys", 5361 + "windows 0.61.3", 5362 + "windows-core 0.61.2", 5363 + "windows-implement 0.60.0", 5364 + "windows-interface 0.59.1", 5365 + ] 5366 + 5367 + [[package]] 5368 + name = "webview2-com-macros" 5369 + version = "0.8.1" 5370 + source = "registry+https://github.com/rust-lang/crates.io-index" 5371 + checksum = "67a921c1b6914c367b2b823cd4cde6f96beec77d30a939c8199bb377cf9b9b54" 5372 + dependencies = [ 5373 + "proc-macro2", 5374 + "quote", 5375 + "syn 2.0.106", 5376 + ] 5377 + 5378 + [[package]] 5379 + name = "webview2-com-sys" 5380 + version = "0.38.2" 5381 + source = "registry+https://github.com/rust-lang/crates.io-index" 5382 + checksum = "381336cfffd772377d291702245447a5251a2ffa5bad679c99e61bc48bacbf9c" 5383 + dependencies = [ 5384 + "thiserror 2.0.16", 5385 + "windows 0.61.3", 5386 + "windows-core 0.61.2", 5387 + ] 5388 + 5389 + [[package]] 1598 5390 name = "winapi" 1599 5391 version = "0.3.9" 1600 5392 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1611 5403 checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 1612 5404 1613 5405 [[package]] 5406 + name = "winapi-util" 5407 + version = "0.1.11" 5408 + source = "registry+https://github.com/rust-lang/crates.io-index" 5409 + checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" 5410 + dependencies = [ 5411 + "windows-sys 0.61.0", 5412 + ] 5413 + 5414 + [[package]] 1614 5415 name = "winapi-x86_64-pc-windows-gnu" 1615 5416 version = "0.4.0" 1616 5417 source = "registry+https://github.com/rust-lang/crates.io-index" 1617 5418 checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 1618 5419 1619 5420 [[package]] 5421 + name = "window-vibrancy" 5422 + version = "0.6.0" 5423 + source = "registry+https://github.com/rust-lang/crates.io-index" 5424 + checksum = "d9bec5a31f3f9362f2258fd0e9c9dd61a9ca432e7306cc78c444258f0dce9a9c" 5425 + dependencies = [ 5426 + "objc2 0.6.2", 5427 + "objc2-app-kit", 5428 + "objc2-core-foundation", 5429 + "objc2-foundation 0.3.1", 5430 + "raw-window-handle", 5431 + "windows-sys 0.59.0", 5432 + "windows-version", 5433 + ] 5434 + 5435 + [[package]] 1620 5436 name = "windows" 1621 5437 version = "0.56.0" 1622 5438 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1627 5443 ] 1628 5444 1629 5445 [[package]] 5446 + name = "windows" 5447 + version = "0.61.3" 5448 + source = "registry+https://github.com/rust-lang/crates.io-index" 5449 + checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" 5450 + dependencies = [ 5451 + "windows-collections", 5452 + "windows-core 0.61.2", 5453 + "windows-future", 5454 + "windows-link 0.1.3", 5455 + "windows-numerics", 5456 + ] 5457 + 5458 + [[package]] 5459 + name = "windows-collections" 5460 + version = "0.2.0" 5461 + source = "registry+https://github.com/rust-lang/crates.io-index" 5462 + checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" 5463 + dependencies = [ 5464 + "windows-core 0.61.2", 5465 + ] 5466 + 5467 + [[package]] 1630 5468 name = "windows-core" 1631 5469 version = "0.56.0" 1632 5470 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1640 5478 1641 5479 [[package]] 1642 5480 name = "windows-core" 5481 + version = "0.61.2" 5482 + source = "registry+https://github.com/rust-lang/crates.io-index" 5483 + checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" 5484 + dependencies = [ 5485 + "windows-implement 0.60.0", 5486 + "windows-interface 0.59.1", 5487 + "windows-link 0.1.3", 5488 + "windows-result 0.3.4", 5489 + "windows-strings 0.4.2", 5490 + ] 5491 + 5492 + [[package]] 5493 + name = "windows-core" 1643 5494 version = "0.62.0" 1644 5495 source = "registry+https://github.com/rust-lang/crates.io-index" 1645 5496 checksum = "57fe7168f7de578d2d8a05b07fd61870d2e73b4020e9f49aa00da8471723497c" ··· 1648 5499 "windows-interface 0.59.1", 1649 5500 "windows-link 0.2.0", 1650 5501 "windows-result 0.4.0", 1651 - "windows-strings", 5502 + "windows-strings 0.5.0", 5503 + ] 5504 + 5505 + [[package]] 5506 + name = "windows-future" 5507 + version = "0.2.1" 5508 + source = "registry+https://github.com/rust-lang/crates.io-index" 5509 + checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" 5510 + dependencies = [ 5511 + "windows-core 0.61.2", 5512 + "windows-link 0.1.3", 5513 + "windows-threading", 1652 5514 ] 1653 5515 1654 5516 [[package]] ··· 1659 5521 dependencies = [ 1660 5522 "proc-macro2", 1661 5523 "quote", 1662 - "syn", 5524 + "syn 2.0.106", 1663 5525 ] 1664 5526 1665 5527 [[package]] ··· 1670 5532 dependencies = [ 1671 5533 "proc-macro2", 1672 5534 "quote", 1673 - "syn", 5535 + "syn 2.0.106", 1674 5536 ] 1675 5537 1676 5538 [[package]] ··· 1681 5543 dependencies = [ 1682 5544 "proc-macro2", 1683 5545 "quote", 1684 - "syn", 5546 + "syn 2.0.106", 1685 5547 ] 1686 5548 1687 5549 [[package]] ··· 1692 5554 dependencies = [ 1693 5555 "proc-macro2", 1694 5556 "quote", 1695 - "syn", 5557 + "syn 2.0.106", 1696 5558 ] 1697 5559 1698 5560 [[package]] ··· 1708 5570 checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65" 1709 5571 1710 5572 [[package]] 5573 + name = "windows-numerics" 5574 + version = "0.2.0" 5575 + source = "registry+https://github.com/rust-lang/crates.io-index" 5576 + checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" 5577 + dependencies = [ 5578 + "windows-core 0.61.2", 5579 + "windows-link 0.1.3", 5580 + ] 5581 + 5582 + [[package]] 1711 5583 name = "windows-result" 1712 5584 version = "0.1.2" 1713 5585 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1718 5590 1719 5591 [[package]] 1720 5592 name = "windows-result" 5593 + version = "0.3.4" 5594 + source = "registry+https://github.com/rust-lang/crates.io-index" 5595 + checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" 5596 + dependencies = [ 5597 + "windows-link 0.1.3", 5598 + ] 5599 + 5600 + [[package]] 5601 + name = "windows-result" 1721 5602 version = "0.4.0" 1722 5603 source = "registry+https://github.com/rust-lang/crates.io-index" 1723 5604 checksum = "7084dcc306f89883455a206237404d3eaf961e5bd7e0f312f7c91f57eb44167f" ··· 1727 5608 1728 5609 [[package]] 1729 5610 name = "windows-strings" 5611 + version = "0.4.2" 5612 + source = "registry+https://github.com/rust-lang/crates.io-index" 5613 + checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" 5614 + dependencies = [ 5615 + "windows-link 0.1.3", 5616 + ] 5617 + 5618 + [[package]] 5619 + name = "windows-strings" 1730 5620 version = "0.5.0" 1731 5621 source = "registry+https://github.com/rust-lang/crates.io-index" 1732 5622 checksum = "7218c655a553b0bed4426cf54b20d7ba363ef543b52d515b3e48d7fd55318dda" 1733 5623 dependencies = [ 1734 5624 "windows-link 0.2.0", 5625 + ] 5626 + 5627 + [[package]] 5628 + name = "windows-sys" 5629 + version = "0.45.0" 5630 + source = "registry+https://github.com/rust-lang/crates.io-index" 5631 + checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" 5632 + dependencies = [ 5633 + "windows-targets 0.42.2", 1735 5634 ] 1736 5635 1737 5636 [[package]] ··· 1754 5653 1755 5654 [[package]] 1756 5655 name = "windows-sys" 5656 + version = "0.60.2" 5657 + source = "registry+https://github.com/rust-lang/crates.io-index" 5658 + checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" 5659 + dependencies = [ 5660 + "windows-targets 0.53.3", 5661 + ] 5662 + 5663 + [[package]] 5664 + name = "windows-sys" 1757 5665 version = "0.61.0" 1758 5666 source = "registry+https://github.com/rust-lang/crates.io-index" 1759 5667 checksum = "e201184e40b2ede64bc2ea34968b28e33622acdbbf37104f0e4a33f7abe657aa" ··· 1763 5671 1764 5672 [[package]] 1765 5673 name = "windows-targets" 5674 + version = "0.42.2" 5675 + source = "registry+https://github.com/rust-lang/crates.io-index" 5676 + checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" 5677 + dependencies = [ 5678 + "windows_aarch64_gnullvm 0.42.2", 5679 + "windows_aarch64_msvc 0.42.2", 5680 + "windows_i686_gnu 0.42.2", 5681 + "windows_i686_msvc 0.42.2", 5682 + "windows_x86_64_gnu 0.42.2", 5683 + "windows_x86_64_gnullvm 0.42.2", 5684 + "windows_x86_64_msvc 0.42.2", 5685 + ] 5686 + 5687 + [[package]] 5688 + name = "windows-targets" 1766 5689 version = "0.52.6" 1767 5690 source = "registry+https://github.com/rust-lang/crates.io-index" 1768 5691 checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" ··· 1795 5718 ] 1796 5719 1797 5720 [[package]] 5721 + name = "windows-threading" 5722 + version = "0.1.0" 5723 + source = "registry+https://github.com/rust-lang/crates.io-index" 5724 + checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" 5725 + dependencies = [ 5726 + "windows-link 0.1.3", 5727 + ] 5728 + 5729 + [[package]] 5730 + name = "windows-version" 5731 + version = "0.1.6" 5732 + source = "registry+https://github.com/rust-lang/crates.io-index" 5733 + checksum = "700dad7c058606087f6fdc1f88da5841e06da40334413c6cd4367b25ef26d24e" 5734 + dependencies = [ 5735 + "windows-link 0.2.0", 5736 + ] 5737 + 5738 + [[package]] 5739 + name = "windows_aarch64_gnullvm" 5740 + version = "0.42.2" 5741 + source = "registry+https://github.com/rust-lang/crates.io-index" 5742 + checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" 5743 + 5744 + [[package]] 1798 5745 name = "windows_aarch64_gnullvm" 1799 5746 version = "0.52.6" 1800 5747 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1808 5755 1809 5756 [[package]] 1810 5757 name = "windows_aarch64_msvc" 5758 + version = "0.42.2" 5759 + source = "registry+https://github.com/rust-lang/crates.io-index" 5760 + checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" 5761 + 5762 + [[package]] 5763 + name = "windows_aarch64_msvc" 1811 5764 version = "0.52.6" 1812 5765 source = "registry+https://github.com/rust-lang/crates.io-index" 1813 5766 checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" ··· 1817 5770 version = "0.53.0" 1818 5771 source = "registry+https://github.com/rust-lang/crates.io-index" 1819 5772 checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" 5773 + 5774 + [[package]] 5775 + name = "windows_i686_gnu" 5776 + version = "0.42.2" 5777 + source = "registry+https://github.com/rust-lang/crates.io-index" 5778 + checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" 1820 5779 1821 5780 [[package]] 1822 5781 name = "windows_i686_gnu" ··· 1844 5803 1845 5804 [[package]] 1846 5805 name = "windows_i686_msvc" 5806 + version = "0.42.2" 5807 + source = "registry+https://github.com/rust-lang/crates.io-index" 5808 + checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" 5809 + 5810 + [[package]] 5811 + name = "windows_i686_msvc" 1847 5812 version = "0.52.6" 1848 5813 source = "registry+https://github.com/rust-lang/crates.io-index" 1849 5814 checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" ··· 1856 5821 1857 5822 [[package]] 1858 5823 name = "windows_x86_64_gnu" 5824 + version = "0.42.2" 5825 + source = "registry+https://github.com/rust-lang/crates.io-index" 5826 + checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" 5827 + 5828 + [[package]] 5829 + name = "windows_x86_64_gnu" 1859 5830 version = "0.52.6" 1860 5831 source = "registry+https://github.com/rust-lang/crates.io-index" 1861 5832 checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" ··· 1868 5839 1869 5840 [[package]] 1870 5841 name = "windows_x86_64_gnullvm" 5842 + version = "0.42.2" 5843 + source = "registry+https://github.com/rust-lang/crates.io-index" 5844 + checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" 5845 + 5846 + [[package]] 5847 + name = "windows_x86_64_gnullvm" 1871 5848 version = "0.52.6" 1872 5849 source = "registry+https://github.com/rust-lang/crates.io-index" 1873 5850 checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" ··· 1880 5857 1881 5858 [[package]] 1882 5859 name = "windows_x86_64_msvc" 5860 + version = "0.42.2" 5861 + source = "registry+https://github.com/rust-lang/crates.io-index" 5862 + checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" 5863 + 5864 + [[package]] 5865 + name = "windows_x86_64_msvc" 1883 5866 version = "0.52.6" 1884 5867 source = "registry+https://github.com/rust-lang/crates.io-index" 1885 5868 checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" ··· 1891 5874 checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" 1892 5875 1893 5876 [[package]] 5877 + name = "winnow" 5878 + version = "0.5.40" 5879 + source = "registry+https://github.com/rust-lang/crates.io-index" 5880 + checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" 5881 + dependencies = [ 5882 + "memchr", 5883 + ] 5884 + 5885 + [[package]] 5886 + name = "winnow" 5887 + version = "0.7.14" 5888 + source = "registry+https://github.com/rust-lang/crates.io-index" 5889 + checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" 5890 + dependencies = [ 5891 + "memchr", 5892 + ] 5893 + 5894 + [[package]] 5895 + name = "winreg" 5896 + version = "0.55.0" 5897 + source = "registry+https://github.com/rust-lang/crates.io-index" 5898 + checksum = "cb5a765337c50e9ec252c2069be9bf91c7df47afb103b642ba3a53bf8101be97" 5899 + dependencies = [ 5900 + "cfg-if", 5901 + "windows-sys 0.59.0", 5902 + ] 5903 + 5904 + [[package]] 1894 5905 name = "wit-bindgen" 1895 5906 version = "0.45.1" 1896 5907 source = "registry+https://github.com/rust-lang/crates.io-index" 1897 5908 checksum = "5c573471f125075647d03df72e026074b7203790d41351cd6edc96f46bcccd36" 1898 5909 1899 5910 [[package]] 5911 + name = "wit-bindgen" 5912 + version = "0.51.0" 5913 + source = "registry+https://github.com/rust-lang/crates.io-index" 5914 + checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" 5915 + dependencies = [ 5916 + "wit-bindgen-rust-macro", 5917 + ] 5918 + 5919 + [[package]] 5920 + name = "wit-bindgen-core" 5921 + version = "0.51.0" 5922 + source = "registry+https://github.com/rust-lang/crates.io-index" 5923 + checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" 5924 + dependencies = [ 5925 + "anyhow", 5926 + "heck 0.5.0", 5927 + "wit-parser", 5928 + ] 5929 + 5930 + [[package]] 5931 + name = "wit-bindgen-rust" 5932 + version = "0.51.0" 5933 + source = "registry+https://github.com/rust-lang/crates.io-index" 5934 + checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" 5935 + dependencies = [ 5936 + "anyhow", 5937 + "heck 0.5.0", 5938 + "indexmap 2.13.0", 5939 + "prettyplease", 5940 + "syn 2.0.106", 5941 + "wasm-metadata", 5942 + "wit-bindgen-core", 5943 + "wit-component", 5944 + ] 5945 + 5946 + [[package]] 5947 + name = "wit-bindgen-rust-macro" 5948 + version = "0.51.0" 5949 + source = "registry+https://github.com/rust-lang/crates.io-index" 5950 + checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" 5951 + dependencies = [ 5952 + "anyhow", 5953 + "prettyplease", 5954 + "proc-macro2", 5955 + "quote", 5956 + "syn 2.0.106", 5957 + "wit-bindgen-core", 5958 + "wit-bindgen-rust", 5959 + ] 5960 + 5961 + [[package]] 5962 + name = "wit-component" 5963 + version = "0.244.0" 5964 + source = "registry+https://github.com/rust-lang/crates.io-index" 5965 + checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" 5966 + dependencies = [ 5967 + "anyhow", 5968 + "bitflags 2.9.4", 5969 + "indexmap 2.13.0", 5970 + "log", 5971 + "serde", 5972 + "serde_derive", 5973 + "serde_json", 5974 + "wasm-encoder", 5975 + "wasm-metadata", 5976 + "wasmparser", 5977 + "wit-parser", 5978 + ] 5979 + 5980 + [[package]] 5981 + name = "wit-parser" 5982 + version = "0.244.0" 5983 + source = "registry+https://github.com/rust-lang/crates.io-index" 5984 + checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" 5985 + dependencies = [ 5986 + "anyhow", 5987 + "id-arena", 5988 + "indexmap 2.13.0", 5989 + "log", 5990 + "semver", 5991 + "serde", 5992 + "serde_derive", 5993 + "serde_json", 5994 + "unicode-xid", 5995 + "wasmparser", 5996 + ] 5997 + 5998 + [[package]] 1900 5999 name = "writeable" 1901 6000 version = "0.6.1" 1902 6001 source = "registry+https://github.com/rust-lang/crates.io-index" 1903 6002 checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" 1904 6003 1905 6004 [[package]] 6005 + name = "wry" 6006 + version = "0.54.2" 6007 + source = "registry+https://github.com/rust-lang/crates.io-index" 6008 + checksum = "bb26159b420aa77684589a744ae9a9461a95395b848764ad12290a14d960a11a" 6009 + dependencies = [ 6010 + "base64 0.22.1", 6011 + "block2 0.6.2", 6012 + "cookie", 6013 + "crossbeam-channel", 6014 + "dirs", 6015 + "dpi", 6016 + "dunce", 6017 + "gdkx11", 6018 + "gtk", 6019 + "html5ever", 6020 + "http", 6021 + "javascriptcore-rs", 6022 + "jni", 6023 + "kuchikiki", 6024 + "libc", 6025 + "ndk", 6026 + "objc2 0.6.2", 6027 + "objc2-app-kit", 6028 + "objc2-core-foundation", 6029 + "objc2-foundation 0.3.1", 6030 + "objc2-ui-kit", 6031 + "objc2-web-kit", 6032 + "once_cell", 6033 + "percent-encoding", 6034 + "raw-window-handle", 6035 + "sha2", 6036 + "soup3", 6037 + "tao-macros", 6038 + "thiserror 2.0.16", 6039 + "url", 6040 + "webkit2gtk", 6041 + "webkit2gtk-sys", 6042 + "webview2-com", 6043 + "windows 0.61.3", 6044 + "windows-core 0.61.2", 6045 + "windows-version", 6046 + "x11-dl", 6047 + ] 6048 + 6049 + [[package]] 6050 + name = "x11" 6051 + version = "2.21.0" 6052 + source = "registry+https://github.com/rust-lang/crates.io-index" 6053 + checksum = "502da5464ccd04011667b11c435cb992822c2c0dbde1770c988480d312a0db2e" 6054 + dependencies = [ 6055 + "libc", 6056 + "pkg-config", 6057 + ] 6058 + 6059 + [[package]] 6060 + name = "x11-dl" 6061 + version = "2.21.0" 6062 + source = "registry+https://github.com/rust-lang/crates.io-index" 6063 + checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" 6064 + dependencies = [ 6065 + "libc", 6066 + "once_cell", 6067 + "pkg-config", 6068 + ] 6069 + 6070 + [[package]] 1906 6071 name = "yoke" 1907 6072 version = "0.8.0" 1908 6073 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1922 6087 dependencies = [ 1923 6088 "proc-macro2", 1924 6089 "quote", 1925 - "syn", 6090 + "syn 2.0.106", 1926 6091 "synstructure", 1927 6092 ] 1928 6093 1929 6094 [[package]] 6095 + name = "zbus" 6096 + version = "5.14.0" 6097 + source = "registry+https://github.com/rust-lang/crates.io-index" 6098 + checksum = "ca82f95dbd3943a40a53cfded6c2d0a2ca26192011846a1810c4256ef92c60bc" 6099 + dependencies = [ 6100 + "async-broadcast", 6101 + "async-executor", 6102 + "async-io", 6103 + "async-lock", 6104 + "async-process", 6105 + "async-recursion", 6106 + "async-task", 6107 + "async-trait", 6108 + "blocking", 6109 + "enumflags2", 6110 + "event-listener", 6111 + "futures-core", 6112 + "futures-lite", 6113 + "hex", 6114 + "libc", 6115 + "ordered-stream", 6116 + "rustix 1.1.2", 6117 + "serde", 6118 + "serde_repr", 6119 + "tracing", 6120 + "uds_windows", 6121 + "uuid", 6122 + "windows-sys 0.61.0", 6123 + "winnow 0.7.14", 6124 + "zbus_macros", 6125 + "zbus_names", 6126 + "zvariant", 6127 + ] 6128 + 6129 + [[package]] 6130 + name = "zbus_macros" 6131 + version = "5.14.0" 6132 + source = "registry+https://github.com/rust-lang/crates.io-index" 6133 + checksum = "897e79616e84aac4b2c46e9132a4f63b93105d54fe8c0e8f6bffc21fa8d49222" 6134 + dependencies = [ 6135 + "proc-macro-crate 3.4.0", 6136 + "proc-macro2", 6137 + "quote", 6138 + "syn 2.0.106", 6139 + "zbus_names", 6140 + "zvariant", 6141 + "zvariant_utils", 6142 + ] 6143 + 6144 + [[package]] 6145 + name = "zbus_names" 6146 + version = "4.3.1" 6147 + source = "registry+https://github.com/rust-lang/crates.io-index" 6148 + checksum = "ffd8af6d5b78619bab301ff3c560a5bd22426150253db278f164d6cf3b72c50f" 6149 + dependencies = [ 6150 + "serde", 6151 + "winnow 0.7.14", 6152 + "zvariant", 6153 + ] 6154 + 6155 + [[package]] 1930 6156 name = "zerocopy" 1931 6157 version = "0.8.27" 1932 6158 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1943 6169 dependencies = [ 1944 6170 "proc-macro2", 1945 6171 "quote", 1946 - "syn", 6172 + "syn 2.0.106", 1947 6173 ] 1948 6174 1949 6175 [[package]] ··· 1963 6189 dependencies = [ 1964 6190 "proc-macro2", 1965 6191 "quote", 1966 - "syn", 6192 + "syn 2.0.106", 1967 6193 "synstructure", 1968 6194 ] 1969 6195 ··· 1997 6223 dependencies = [ 1998 6224 "proc-macro2", 1999 6225 "quote", 2000 - "syn", 6226 + "syn 2.0.106", 2001 6227 ] 2002 6228 2003 6229 [[package]] 6230 + name = "zmij" 6231 + version = "1.0.21" 6232 + source = "registry+https://github.com/rust-lang/crates.io-index" 6233 + checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" 6234 + 6235 + [[package]] 2004 6236 name = "zune-core" 2005 6237 version = "0.4.12" 2006 6238 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2014 6246 dependencies = [ 2015 6247 "zune-core", 2016 6248 ] 6249 + 6250 + [[package]] 6251 + name = "zvariant" 6252 + version = "5.10.0" 6253 + source = "registry+https://github.com/rust-lang/crates.io-index" 6254 + checksum = "5708299b21903bbe348e94729f22c49c55d04720a004aa350f1f9c122fd2540b" 6255 + dependencies = [ 6256 + "endi", 6257 + "enumflags2", 6258 + "serde", 6259 + "winnow 0.7.14", 6260 + "zvariant_derive", 6261 + "zvariant_utils", 6262 + ] 6263 + 6264 + [[package]] 6265 + name = "zvariant_derive" 6266 + version = "5.10.0" 6267 + source = "registry+https://github.com/rust-lang/crates.io-index" 6268 + checksum = "5b59b012ebe9c46656f9cc08d8da8b4c726510aef12559da3e5f1bf72780752c" 6269 + dependencies = [ 6270 + "proc-macro-crate 3.4.0", 6271 + "proc-macro2", 6272 + "quote", 6273 + "syn 2.0.106", 6274 + "zvariant_utils", 6275 + ] 6276 + 6277 + [[package]] 6278 + name = "zvariant_utils" 6279 + version = "3.3.0" 6280 + source = "registry+https://github.com/rust-lang/crates.io-index" 6281 + checksum = "f75c23a64ef8f40f13a6989991e643554d9bef1d682a281160cf0c1bc389c5e9" 6282 + dependencies = [ 6283 + "proc-macro2", 6284 + "quote", 6285 + "serde", 6286 + "syn 2.0.106", 6287 + "winnow 0.7.14", 6288 + ]
+17 -4
Cargo.toml
··· 5 5 edition = "2024" 6 6 exclude = ["artifacts.json"] 7 7 8 + [workspace] 9 + members = [ 10 + ".", 11 + "mobile/src-tauri" 12 + ] 13 + 8 14 [lib] 9 15 path = "src-native/lib.rs" 10 - crate-type = ["cdylib"] 16 + crate-type = ["cdylib", "rlib"] # rlib is for mobile 11 17 12 18 [build-dependencies] 13 19 napi-build = "2.2" 14 20 21 + [features] 22 + default = ["napi-rs"] 23 + napi-rs = ["napi", "napi-derive"] 24 + 15 25 [dependencies] 16 26 napi = { version = "3.3", features = [ 17 27 "serde-json", ··· 19 29 "tokio_rt", 20 30 "async", 21 31 "anyhow", 22 - ] } 23 - napi-derive = "3.2" 32 + ], optional = true } 33 + napi-derive = { version = "3.2", optional = true} 24 34 serde = { version = "1.0", features = ["derive"] } 25 35 lofty = "0.22" 26 36 serde_json = "1.0" ··· 28 38 alphanumeric-sort = "1.5" 29 39 linked-hash-map = { version = "0.5", features = ["serde_impl"] } 30 40 atomicwrites = "0.4" 31 - trash = "5.1" 32 41 plist = "1.5" 33 42 tokio = { version = "1.28", features = ["macros"] } 34 43 time = { version = "0.3", features = ["serde", "serde-well-known"] } ··· 47 56 chrono = "0.4.42" 48 57 simd-json = "0.16.0" 49 58 mimalloc = "0.1.48" 59 + specta = { version = "=2.0.0-rc.22", features = ["derive"] } 60 + 61 + [target.'cfg(not(target_os = "android"))'.dependencies] 62 + trash = "5.1"
+1
build.rs
··· 1 1 extern crate napi_build; 2 2 3 3 fn main() { 4 + #[cfg(not(target_os = "android"))] 4 5 napi_build::setup(); 5 6 }
+10
mobile/.gitignore
··· 1 + .DS_Store 2 + node_modules 3 + /build 4 + /.svelte-kit 5 + /package 6 + .env 7 + .env.* 8 + !.env.example 9 + vite.config.js.timestamp-* 10 + vite.config.ts.timestamp-*
+7
mobile/README.md
··· 1 + # Tauri + SvelteKit + TypeScript 2 + 3 + This template should help get you started developing with Tauri, SvelteKit and TypeScript in Vite. 4 + 5 + ## Recommended IDE Setup 6 + 7 + [VS Code](https://code.visualstudio.com/) + [Svelte](https://marketplace.visualstudio.com/items?itemName=svelte.svelte-vscode) + [Tauri](https://marketplace.visualstudio.com/items?itemName=tauri-apps.tauri-vscode) + [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer).
+114
mobile/bindings.ts
··· 1 + 2 + // This file was generated by [tauri-specta](https://github.com/oscartbeaumont/tauri-specta). Do not edit this file manually. 3 + 4 + /** user-defined commands **/ 5 + 6 + 7 + export const commands = { 8 + async errorPopup(msg: string) : Promise<void> { 9 + await TAURI_INVOKE("error_popup", { msg }); 10 + }, 11 + async loadLibrary(libraryJson: string) : Promise<Result<LibraryTauri, string>> { 12 + try { 13 + return { status: "ok", data: await TAURI_INVOKE("load_library", { libraryJson }) }; 14 + } catch (e) { 15 + if(e instanceof Error) throw e; 16 + else return { status: "error", error: e as any }; 17 + } 18 + } 19 + } 20 + 21 + /** user-defined events **/ 22 + 23 + 24 + 25 + /** user-defined constants **/ 26 + 27 + 28 + 29 + /** user-defined types **/ 30 + 31 + export type CountObject = { count: string; fromDate: string; toDate: string } 32 + export type Folder = { id: string; name: string; description?: string | null; liked: boolean; disliked: boolean; 33 + /** 34 + * For example "itunes" 35 + */ 36 + importedFrom?: string | null; 37 + /** 38 + * For example iTunes Persistent ID 39 + */ 40 + originalId?: string | null; dateImported?: string | null; dateCreated?: string | null; children: string[] } 41 + export type LibraryTauri = { tracks: Partial<{ [key in string]: Track }>; track_item_ids: Partial<{ [key in string]: number }>; track_lists: Partial<{ [key in string]: TrackList }> } 42 + export type Playlist = { id: string; name: string; description?: string | null; liked: boolean; disliked: boolean; importedFrom?: string | null; originalId?: string | null; dateImported?: string | null; dateCreated?: string | null; tracks: number[] } 43 + export type Special = { id: string; name: SpecialTrackListName; dateCreated: string; children: string[] } 44 + export type SpecialTrackListName = "Root" 45 + export type Track = { size: string; duration: number; bitrate: number; sampleRate: number; file: string; dateModified: string; dateAdded: string; name: string; importedFrom?: string | null; 46 + /** 47 + * Imported ID, like iTunes Persistent ID 48 + */ 49 + originalId?: string | null; artist?: string; composer?: string | null; sortName?: string | null; sortArtist?: string | null; sortComposer?: string | null; genre?: string | null; rating?: number | null; year?: string | null; bpm?: number | null; comments?: string | null; grouping?: string | null; liked?: boolean | null; disliked?: boolean | null; disabled?: boolean | null; compilation?: boolean | null; albumName?: string | null; albumArtist?: string | null; sortAlbumName?: string | null; sortAlbumArtist?: string | null; trackNum?: number | null; trackCount?: number | null; discNum?: number | null; discCount?: number | null; dateImported?: string | null; playCount?: number | null; plays?: string[] | null; playsImported?: CountObject[] | null; skipCount?: number | null; skips?: string[] | null; skipsImported?: CountObject[] | null; 50 + /** 51 + * -100 to 100 52 + */ 53 + volume?: number | null } 54 + export type TrackList = ({ type: "playlist" } & Playlist) | ({ type: "folder" } & Folder) | ({ type: "special" } & Special) 55 + 56 + /** tauri-specta globals **/ 57 + 58 + import { 59 + invoke as TAURI_INVOKE, 60 + Channel as TAURI_CHANNEL, 61 + } from "@tauri-apps/api/core"; 62 + import * as TAURI_API_EVENT from "@tauri-apps/api/event"; 63 + import { type WebviewWindow as __WebviewWindow__ } from "@tauri-apps/api/webviewWindow"; 64 + 65 + type __EventObj__<T> = { 66 + listen: ( 67 + cb: TAURI_API_EVENT.EventCallback<T>, 68 + ) => ReturnType<typeof TAURI_API_EVENT.listen<T>>; 69 + once: ( 70 + cb: TAURI_API_EVENT.EventCallback<T>, 71 + ) => ReturnType<typeof TAURI_API_EVENT.once<T>>; 72 + emit: null extends T 73 + ? (payload?: T) => ReturnType<typeof TAURI_API_EVENT.emit> 74 + : (payload: T) => ReturnType<typeof TAURI_API_EVENT.emit>; 75 + }; 76 + 77 + export type Result<T, E> = 78 + | { status: "ok"; data: T } 79 + | { status: "error"; error: E }; 80 + 81 + function __makeEvents__<T extends Record<string, any>>( 82 + mappings: Record<keyof T, string>, 83 + ) { 84 + return new Proxy( 85 + {} as unknown as { 86 + [K in keyof T]: __EventObj__<T[K]> & { 87 + (handle: __WebviewWindow__): __EventObj__<T[K]>; 88 + }; 89 + }, 90 + { 91 + get: (_, event) => { 92 + const name = mappings[event as keyof T]; 93 + 94 + return new Proxy((() => {}) as any, { 95 + apply: (_, __, [window]: [__WebviewWindow__]) => ({ 96 + listen: (arg: any) => window.listen(name, arg), 97 + once: (arg: any) => window.once(name, arg), 98 + emit: (arg: any) => window.emit(name, arg), 99 + }), 100 + get: (_, command: keyof __EventObj__<any>) => { 101 + switch (command) { 102 + case "listen": 103 + return (arg: any) => TAURI_API_EVENT.listen(name, arg); 104 + case "once": 105 + return (arg: any) => TAURI_API_EVENT.once(name, arg); 106 + case "emit": 107 + return (arg: any) => TAURI_API_EVENT.emit(name, arg); 108 + } 109 + }, 110 + }); 111 + }, 112 + }, 113 + ); 114 + }
+2513
mobile/package-lock.json
··· 1 + { 2 + "name": "ferrum", 3 + "version": "0.1.0", 4 + "lockfileVersion": 3, 5 + "requires": true, 6 + "packages": { 7 + "": { 8 + "name": "ferrum", 9 + "version": "0.1.0", 10 + "license": "MIT", 11 + "dependencies": { 12 + "@tauri-apps/api": "^2", 13 + "@tauri-apps/plugin-dialog": "^2.6.0", 14 + "@tauri-apps/plugin-fs": "^2.4.5", 15 + "@tauri-apps/plugin-opener": "^2", 16 + "@tauri-apps/plugin-store": "^2.4.2" 17 + }, 18 + "devDependencies": { 19 + "@saurl/tauri-plugin-safe-area-insets-css-api": "^0.1.0", 20 + "@sveltejs/adapter-static": "^3.0.6", 21 + "@sveltejs/kit": "^2.9.0", 22 + "@sveltejs/vite-plugin-svelte": "^5.0.0", 23 + "@tailwindcss/vite": "^4.1.18", 24 + "@tauri-apps/cli": "^2", 25 + "svelte": "^5.0.0", 26 + "svelte-check": "^4.0.0", 27 + "tailwindcss": "^4.1.18", 28 + "typescript": "~5.6.2", 29 + "vite": "^6.0.3" 30 + } 31 + }, 32 + "node_modules/@esbuild/aix-ppc64": { 33 + "version": "0.25.12", 34 + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", 35 + "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", 36 + "cpu": [ 37 + "ppc64" 38 + ], 39 + "dev": true, 40 + "license": "MIT", 41 + "optional": true, 42 + "os": [ 43 + "aix" 44 + ], 45 + "engines": { 46 + "node": ">=18" 47 + } 48 + }, 49 + "node_modules/@esbuild/android-arm": { 50 + "version": "0.25.12", 51 + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", 52 + "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", 53 + "cpu": [ 54 + "arm" 55 + ], 56 + "dev": true, 57 + "license": "MIT", 58 + "optional": true, 59 + "os": [ 60 + "android" 61 + ], 62 + "engines": { 63 + "node": ">=18" 64 + } 65 + }, 66 + "node_modules/@esbuild/android-arm64": { 67 + "version": "0.25.12", 68 + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", 69 + "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", 70 + "cpu": [ 71 + "arm64" 72 + ], 73 + "dev": true, 74 + "license": "MIT", 75 + "optional": true, 76 + "os": [ 77 + "android" 78 + ], 79 + "engines": { 80 + "node": ">=18" 81 + } 82 + }, 83 + "node_modules/@esbuild/android-x64": { 84 + "version": "0.25.12", 85 + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", 86 + "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", 87 + "cpu": [ 88 + "x64" 89 + ], 90 + "dev": true, 91 + "license": "MIT", 92 + "optional": true, 93 + "os": [ 94 + "android" 95 + ], 96 + "engines": { 97 + "node": ">=18" 98 + } 99 + }, 100 + "node_modules/@esbuild/darwin-arm64": { 101 + "version": "0.25.12", 102 + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", 103 + "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", 104 + "cpu": [ 105 + "arm64" 106 + ], 107 + "dev": true, 108 + "license": "MIT", 109 + "optional": true, 110 + "os": [ 111 + "darwin" 112 + ], 113 + "engines": { 114 + "node": ">=18" 115 + } 116 + }, 117 + "node_modules/@esbuild/darwin-x64": { 118 + "version": "0.25.12", 119 + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", 120 + "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", 121 + "cpu": [ 122 + "x64" 123 + ], 124 + "dev": true, 125 + "license": "MIT", 126 + "optional": true, 127 + "os": [ 128 + "darwin" 129 + ], 130 + "engines": { 131 + "node": ">=18" 132 + } 133 + }, 134 + "node_modules/@esbuild/freebsd-arm64": { 135 + "version": "0.25.12", 136 + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", 137 + "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", 138 + "cpu": [ 139 + "arm64" 140 + ], 141 + "dev": true, 142 + "license": "MIT", 143 + "optional": true, 144 + "os": [ 145 + "freebsd" 146 + ], 147 + "engines": { 148 + "node": ">=18" 149 + } 150 + }, 151 + "node_modules/@esbuild/freebsd-x64": { 152 + "version": "0.25.12", 153 + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", 154 + "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", 155 + "cpu": [ 156 + "x64" 157 + ], 158 + "dev": true, 159 + "license": "MIT", 160 + "optional": true, 161 + "os": [ 162 + "freebsd" 163 + ], 164 + "engines": { 165 + "node": ">=18" 166 + } 167 + }, 168 + "node_modules/@esbuild/linux-arm": { 169 + "version": "0.25.12", 170 + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", 171 + "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", 172 + "cpu": [ 173 + "arm" 174 + ], 175 + "dev": true, 176 + "license": "MIT", 177 + "optional": true, 178 + "os": [ 179 + "linux" 180 + ], 181 + "engines": { 182 + "node": ">=18" 183 + } 184 + }, 185 + "node_modules/@esbuild/linux-arm64": { 186 + "version": "0.25.12", 187 + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", 188 + "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", 189 + "cpu": [ 190 + "arm64" 191 + ], 192 + "dev": true, 193 + "license": "MIT", 194 + "optional": true, 195 + "os": [ 196 + "linux" 197 + ], 198 + "engines": { 199 + "node": ">=18" 200 + } 201 + }, 202 + "node_modules/@esbuild/linux-ia32": { 203 + "version": "0.25.12", 204 + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", 205 + "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", 206 + "cpu": [ 207 + "ia32" 208 + ], 209 + "dev": true, 210 + "license": "MIT", 211 + "optional": true, 212 + "os": [ 213 + "linux" 214 + ], 215 + "engines": { 216 + "node": ">=18" 217 + } 218 + }, 219 + "node_modules/@esbuild/linux-loong64": { 220 + "version": "0.25.12", 221 + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", 222 + "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", 223 + "cpu": [ 224 + "loong64" 225 + ], 226 + "dev": true, 227 + "license": "MIT", 228 + "optional": true, 229 + "os": [ 230 + "linux" 231 + ], 232 + "engines": { 233 + "node": ">=18" 234 + } 235 + }, 236 + "node_modules/@esbuild/linux-mips64el": { 237 + "version": "0.25.12", 238 + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", 239 + "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", 240 + "cpu": [ 241 + "mips64el" 242 + ], 243 + "dev": true, 244 + "license": "MIT", 245 + "optional": true, 246 + "os": [ 247 + "linux" 248 + ], 249 + "engines": { 250 + "node": ">=18" 251 + } 252 + }, 253 + "node_modules/@esbuild/linux-ppc64": { 254 + "version": "0.25.12", 255 + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", 256 + "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", 257 + "cpu": [ 258 + "ppc64" 259 + ], 260 + "dev": true, 261 + "license": "MIT", 262 + "optional": true, 263 + "os": [ 264 + "linux" 265 + ], 266 + "engines": { 267 + "node": ">=18" 268 + } 269 + }, 270 + "node_modules/@esbuild/linux-riscv64": { 271 + "version": "0.25.12", 272 + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", 273 + "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", 274 + "cpu": [ 275 + "riscv64" 276 + ], 277 + "dev": true, 278 + "license": "MIT", 279 + "optional": true, 280 + "os": [ 281 + "linux" 282 + ], 283 + "engines": { 284 + "node": ">=18" 285 + } 286 + }, 287 + "node_modules/@esbuild/linux-s390x": { 288 + "version": "0.25.12", 289 + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", 290 + "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", 291 + "cpu": [ 292 + "s390x" 293 + ], 294 + "dev": true, 295 + "license": "MIT", 296 + "optional": true, 297 + "os": [ 298 + "linux" 299 + ], 300 + "engines": { 301 + "node": ">=18" 302 + } 303 + }, 304 + "node_modules/@esbuild/linux-x64": { 305 + "version": "0.25.12", 306 + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", 307 + "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", 308 + "cpu": [ 309 + "x64" 310 + ], 311 + "dev": true, 312 + "license": "MIT", 313 + "optional": true, 314 + "os": [ 315 + "linux" 316 + ], 317 + "engines": { 318 + "node": ">=18" 319 + } 320 + }, 321 + "node_modules/@esbuild/netbsd-arm64": { 322 + "version": "0.25.12", 323 + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", 324 + "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", 325 + "cpu": [ 326 + "arm64" 327 + ], 328 + "dev": true, 329 + "license": "MIT", 330 + "optional": true, 331 + "os": [ 332 + "netbsd" 333 + ], 334 + "engines": { 335 + "node": ">=18" 336 + } 337 + }, 338 + "node_modules/@esbuild/netbsd-x64": { 339 + "version": "0.25.12", 340 + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", 341 + "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", 342 + "cpu": [ 343 + "x64" 344 + ], 345 + "dev": true, 346 + "license": "MIT", 347 + "optional": true, 348 + "os": [ 349 + "netbsd" 350 + ], 351 + "engines": { 352 + "node": ">=18" 353 + } 354 + }, 355 + "node_modules/@esbuild/openbsd-arm64": { 356 + "version": "0.25.12", 357 + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", 358 + "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", 359 + "cpu": [ 360 + "arm64" 361 + ], 362 + "dev": true, 363 + "license": "MIT", 364 + "optional": true, 365 + "os": [ 366 + "openbsd" 367 + ], 368 + "engines": { 369 + "node": ">=18" 370 + } 371 + }, 372 + "node_modules/@esbuild/openbsd-x64": { 373 + "version": "0.25.12", 374 + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", 375 + "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", 376 + "cpu": [ 377 + "x64" 378 + ], 379 + "dev": true, 380 + "license": "MIT", 381 + "optional": true, 382 + "os": [ 383 + "openbsd" 384 + ], 385 + "engines": { 386 + "node": ">=18" 387 + } 388 + }, 389 + "node_modules/@esbuild/openharmony-arm64": { 390 + "version": "0.25.12", 391 + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", 392 + "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", 393 + "cpu": [ 394 + "arm64" 395 + ], 396 + "dev": true, 397 + "license": "MIT", 398 + "optional": true, 399 + "os": [ 400 + "openharmony" 401 + ], 402 + "engines": { 403 + "node": ">=18" 404 + } 405 + }, 406 + "node_modules/@esbuild/sunos-x64": { 407 + "version": "0.25.12", 408 + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", 409 + "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", 410 + "cpu": [ 411 + "x64" 412 + ], 413 + "dev": true, 414 + "license": "MIT", 415 + "optional": true, 416 + "os": [ 417 + "sunos" 418 + ], 419 + "engines": { 420 + "node": ">=18" 421 + } 422 + }, 423 + "node_modules/@esbuild/win32-arm64": { 424 + "version": "0.25.12", 425 + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", 426 + "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", 427 + "cpu": [ 428 + "arm64" 429 + ], 430 + "dev": true, 431 + "license": "MIT", 432 + "optional": true, 433 + "os": [ 434 + "win32" 435 + ], 436 + "engines": { 437 + "node": ">=18" 438 + } 439 + }, 440 + "node_modules/@esbuild/win32-ia32": { 441 + "version": "0.25.12", 442 + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", 443 + "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", 444 + "cpu": [ 445 + "ia32" 446 + ], 447 + "dev": true, 448 + "license": "MIT", 449 + "optional": true, 450 + "os": [ 451 + "win32" 452 + ], 453 + "engines": { 454 + "node": ">=18" 455 + } 456 + }, 457 + "node_modules/@esbuild/win32-x64": { 458 + "version": "0.25.12", 459 + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", 460 + "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", 461 + "cpu": [ 462 + "x64" 463 + ], 464 + "dev": true, 465 + "license": "MIT", 466 + "optional": true, 467 + "os": [ 468 + "win32" 469 + ], 470 + "engines": { 471 + "node": ">=18" 472 + } 473 + }, 474 + "node_modules/@jridgewell/gen-mapping": { 475 + "version": "0.3.13", 476 + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", 477 + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", 478 + "dev": true, 479 + "license": "MIT", 480 + "dependencies": { 481 + "@jridgewell/sourcemap-codec": "^1.5.0", 482 + "@jridgewell/trace-mapping": "^0.3.24" 483 + } 484 + }, 485 + "node_modules/@jridgewell/remapping": { 486 + "version": "2.3.5", 487 + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", 488 + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", 489 + "dev": true, 490 + "license": "MIT", 491 + "dependencies": { 492 + "@jridgewell/gen-mapping": "^0.3.5", 493 + "@jridgewell/trace-mapping": "^0.3.24" 494 + } 495 + }, 496 + "node_modules/@jridgewell/resolve-uri": { 497 + "version": "3.1.2", 498 + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", 499 + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", 500 + "dev": true, 501 + "license": "MIT", 502 + "engines": { 503 + "node": ">=6.0.0" 504 + } 505 + }, 506 + "node_modules/@jridgewell/sourcemap-codec": { 507 + "version": "1.5.5", 508 + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", 509 + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", 510 + "dev": true, 511 + "license": "MIT" 512 + }, 513 + "node_modules/@jridgewell/trace-mapping": { 514 + "version": "0.3.31", 515 + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", 516 + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", 517 + "dev": true, 518 + "license": "MIT", 519 + "dependencies": { 520 + "@jridgewell/resolve-uri": "^3.1.0", 521 + "@jridgewell/sourcemap-codec": "^1.4.14" 522 + } 523 + }, 524 + "node_modules/@polka/url": { 525 + "version": "1.0.0-next.29", 526 + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz", 527 + "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==", 528 + "dev": true, 529 + "license": "MIT" 530 + }, 531 + "node_modules/@rollup/rollup-android-arm-eabi": { 532 + "version": "4.59.0", 533 + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.59.0.tgz", 534 + "integrity": "sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==", 535 + "cpu": [ 536 + "arm" 537 + ], 538 + "dev": true, 539 + "license": "MIT", 540 + "optional": true, 541 + "os": [ 542 + "android" 543 + ] 544 + }, 545 + "node_modules/@rollup/rollup-android-arm64": { 546 + "version": "4.59.0", 547 + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.59.0.tgz", 548 + "integrity": "sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==", 549 + "cpu": [ 550 + "arm64" 551 + ], 552 + "dev": true, 553 + "license": "MIT", 554 + "optional": true, 555 + "os": [ 556 + "android" 557 + ] 558 + }, 559 + "node_modules/@rollup/rollup-darwin-arm64": { 560 + "version": "4.59.0", 561 + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.59.0.tgz", 562 + "integrity": "sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==", 563 + "cpu": [ 564 + "arm64" 565 + ], 566 + "dev": true, 567 + "license": "MIT", 568 + "optional": true, 569 + "os": [ 570 + "darwin" 571 + ] 572 + }, 573 + "node_modules/@rollup/rollup-darwin-x64": { 574 + "version": "4.59.0", 575 + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.59.0.tgz", 576 + "integrity": "sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==", 577 + "cpu": [ 578 + "x64" 579 + ], 580 + "dev": true, 581 + "license": "MIT", 582 + "optional": true, 583 + "os": [ 584 + "darwin" 585 + ] 586 + }, 587 + "node_modules/@rollup/rollup-freebsd-arm64": { 588 + "version": "4.59.0", 589 + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.59.0.tgz", 590 + "integrity": "sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==", 591 + "cpu": [ 592 + "arm64" 593 + ], 594 + "dev": true, 595 + "license": "MIT", 596 + "optional": true, 597 + "os": [ 598 + "freebsd" 599 + ] 600 + }, 601 + "node_modules/@rollup/rollup-freebsd-x64": { 602 + "version": "4.59.0", 603 + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.59.0.tgz", 604 + "integrity": "sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==", 605 + "cpu": [ 606 + "x64" 607 + ], 608 + "dev": true, 609 + "license": "MIT", 610 + "optional": true, 611 + "os": [ 612 + "freebsd" 613 + ] 614 + }, 615 + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { 616 + "version": "4.59.0", 617 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.59.0.tgz", 618 + "integrity": "sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==", 619 + "cpu": [ 620 + "arm" 621 + ], 622 + "dev": true, 623 + "license": "MIT", 624 + "optional": true, 625 + "os": [ 626 + "linux" 627 + ] 628 + }, 629 + "node_modules/@rollup/rollup-linux-arm-musleabihf": { 630 + "version": "4.59.0", 631 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.59.0.tgz", 632 + "integrity": "sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==", 633 + "cpu": [ 634 + "arm" 635 + ], 636 + "dev": true, 637 + "license": "MIT", 638 + "optional": true, 639 + "os": [ 640 + "linux" 641 + ] 642 + }, 643 + "node_modules/@rollup/rollup-linux-arm64-gnu": { 644 + "version": "4.59.0", 645 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.59.0.tgz", 646 + "integrity": "sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==", 647 + "cpu": [ 648 + "arm64" 649 + ], 650 + "dev": true, 651 + "license": "MIT", 652 + "optional": true, 653 + "os": [ 654 + "linux" 655 + ] 656 + }, 657 + "node_modules/@rollup/rollup-linux-arm64-musl": { 658 + "version": "4.59.0", 659 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.59.0.tgz", 660 + "integrity": "sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==", 661 + "cpu": [ 662 + "arm64" 663 + ], 664 + "dev": true, 665 + "license": "MIT", 666 + "optional": true, 667 + "os": [ 668 + "linux" 669 + ] 670 + }, 671 + "node_modules/@rollup/rollup-linux-loong64-gnu": { 672 + "version": "4.59.0", 673 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.59.0.tgz", 674 + "integrity": "sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==", 675 + "cpu": [ 676 + "loong64" 677 + ], 678 + "dev": true, 679 + "license": "MIT", 680 + "optional": true, 681 + "os": [ 682 + "linux" 683 + ] 684 + }, 685 + "node_modules/@rollup/rollup-linux-loong64-musl": { 686 + "version": "4.59.0", 687 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.59.0.tgz", 688 + "integrity": "sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==", 689 + "cpu": [ 690 + "loong64" 691 + ], 692 + "dev": true, 693 + "license": "MIT", 694 + "optional": true, 695 + "os": [ 696 + "linux" 697 + ] 698 + }, 699 + "node_modules/@rollup/rollup-linux-ppc64-gnu": { 700 + "version": "4.59.0", 701 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.59.0.tgz", 702 + "integrity": "sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==", 703 + "cpu": [ 704 + "ppc64" 705 + ], 706 + "dev": true, 707 + "license": "MIT", 708 + "optional": true, 709 + "os": [ 710 + "linux" 711 + ] 712 + }, 713 + "node_modules/@rollup/rollup-linux-ppc64-musl": { 714 + "version": "4.59.0", 715 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.59.0.tgz", 716 + "integrity": "sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==", 717 + "cpu": [ 718 + "ppc64" 719 + ], 720 + "dev": true, 721 + "license": "MIT", 722 + "optional": true, 723 + "os": [ 724 + "linux" 725 + ] 726 + }, 727 + "node_modules/@rollup/rollup-linux-riscv64-gnu": { 728 + "version": "4.59.0", 729 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.59.0.tgz", 730 + "integrity": "sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==", 731 + "cpu": [ 732 + "riscv64" 733 + ], 734 + "dev": true, 735 + "license": "MIT", 736 + "optional": true, 737 + "os": [ 738 + "linux" 739 + ] 740 + }, 741 + "node_modules/@rollup/rollup-linux-riscv64-musl": { 742 + "version": "4.59.0", 743 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.59.0.tgz", 744 + "integrity": "sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==", 745 + "cpu": [ 746 + "riscv64" 747 + ], 748 + "dev": true, 749 + "license": "MIT", 750 + "optional": true, 751 + "os": [ 752 + "linux" 753 + ] 754 + }, 755 + "node_modules/@rollup/rollup-linux-s390x-gnu": { 756 + "version": "4.59.0", 757 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.59.0.tgz", 758 + "integrity": "sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==", 759 + "cpu": [ 760 + "s390x" 761 + ], 762 + "dev": true, 763 + "license": "MIT", 764 + "optional": true, 765 + "os": [ 766 + "linux" 767 + ] 768 + }, 769 + "node_modules/@rollup/rollup-linux-x64-gnu": { 770 + "version": "4.59.0", 771 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.59.0.tgz", 772 + "integrity": "sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==", 773 + "cpu": [ 774 + "x64" 775 + ], 776 + "dev": true, 777 + "license": "MIT", 778 + "optional": true, 779 + "os": [ 780 + "linux" 781 + ] 782 + }, 783 + "node_modules/@rollup/rollup-linux-x64-musl": { 784 + "version": "4.59.0", 785 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.59.0.tgz", 786 + "integrity": "sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==", 787 + "cpu": [ 788 + "x64" 789 + ], 790 + "dev": true, 791 + "license": "MIT", 792 + "optional": true, 793 + "os": [ 794 + "linux" 795 + ] 796 + }, 797 + "node_modules/@rollup/rollup-openbsd-x64": { 798 + "version": "4.59.0", 799 + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.59.0.tgz", 800 + "integrity": "sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==", 801 + "cpu": [ 802 + "x64" 803 + ], 804 + "dev": true, 805 + "license": "MIT", 806 + "optional": true, 807 + "os": [ 808 + "openbsd" 809 + ] 810 + }, 811 + "node_modules/@rollup/rollup-openharmony-arm64": { 812 + "version": "4.59.0", 813 + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.59.0.tgz", 814 + "integrity": "sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==", 815 + "cpu": [ 816 + "arm64" 817 + ], 818 + "dev": true, 819 + "license": "MIT", 820 + "optional": true, 821 + "os": [ 822 + "openharmony" 823 + ] 824 + }, 825 + "node_modules/@rollup/rollup-win32-arm64-msvc": { 826 + "version": "4.59.0", 827 + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.59.0.tgz", 828 + "integrity": "sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==", 829 + "cpu": [ 830 + "arm64" 831 + ], 832 + "dev": true, 833 + "license": "MIT", 834 + "optional": true, 835 + "os": [ 836 + "win32" 837 + ] 838 + }, 839 + "node_modules/@rollup/rollup-win32-ia32-msvc": { 840 + "version": "4.59.0", 841 + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.59.0.tgz", 842 + "integrity": "sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==", 843 + "cpu": [ 844 + "ia32" 845 + ], 846 + "dev": true, 847 + "license": "MIT", 848 + "optional": true, 849 + "os": [ 850 + "win32" 851 + ] 852 + }, 853 + "node_modules/@rollup/rollup-win32-x64-gnu": { 854 + "version": "4.59.0", 855 + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.59.0.tgz", 856 + "integrity": "sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==", 857 + "cpu": [ 858 + "x64" 859 + ], 860 + "dev": true, 861 + "license": "MIT", 862 + "optional": true, 863 + "os": [ 864 + "win32" 865 + ] 866 + }, 867 + "node_modules/@rollup/rollup-win32-x64-msvc": { 868 + "version": "4.59.0", 869 + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.59.0.tgz", 870 + "integrity": "sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==", 871 + "cpu": [ 872 + "x64" 873 + ], 874 + "dev": true, 875 + "license": "MIT", 876 + "optional": true, 877 + "os": [ 878 + "win32" 879 + ] 880 + }, 881 + "node_modules/@saurl/tauri-plugin-safe-area-insets-css-api": { 882 + "version": "0.1.0", 883 + "resolved": "https://registry.npmjs.org/@saurl/tauri-plugin-safe-area-insets-css-api/-/tauri-plugin-safe-area-insets-css-api-0.1.0.tgz", 884 + "integrity": "sha512-cZbOexV7OSBvgGECrqInA7daoCRLG5wGcUy/zrRIDaqXVKP6THdLWwsC5Ho6UD0lsxr8O4+zd1PPFJwrlHxTYg==", 885 + "dev": true, 886 + "dependencies": { 887 + "@tauri-apps/api": "^2.5.0" 888 + } 889 + }, 890 + "node_modules/@standard-schema/spec": { 891 + "version": "1.1.0", 892 + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", 893 + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", 894 + "dev": true, 895 + "license": "MIT" 896 + }, 897 + "node_modules/@sveltejs/acorn-typescript": { 898 + "version": "1.0.9", 899 + "resolved": "https://registry.npmjs.org/@sveltejs/acorn-typescript/-/acorn-typescript-1.0.9.tgz", 900 + "integrity": "sha512-lVJX6qEgs/4DOcRTpo56tmKzVPtoWAaVbL4hfO7t7NVwl9AAXzQR6cihesW1BmNMPl+bK6dreu2sOKBP2Q9CIA==", 901 + "dev": true, 902 + "license": "MIT", 903 + "peerDependencies": { 904 + "acorn": "^8.9.0" 905 + } 906 + }, 907 + "node_modules/@sveltejs/adapter-static": { 908 + "version": "3.0.10", 909 + "resolved": "https://registry.npmjs.org/@sveltejs/adapter-static/-/adapter-static-3.0.10.tgz", 910 + "integrity": "sha512-7D9lYFWJmB7zxZyTE/qxjksvMqzMuYrrsyh1f4AlZqeZeACPRySjbC3aFiY55wb1tWUaKOQG9PVbm74JcN2Iew==", 911 + "dev": true, 912 + "license": "MIT", 913 + "peerDependencies": { 914 + "@sveltejs/kit": "^2.0.0" 915 + } 916 + }, 917 + "node_modules/@sveltejs/kit": { 918 + "version": "2.53.4", 919 + "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.53.4.tgz", 920 + "integrity": "sha512-iAIPEahFgDJJyvz8g0jP08KvqnM6JvdW8YfsygZ+pMeMvyM2zssWMltcsotETvjSZ82G3VlitgDtBIvpQSZrTA==", 921 + "dev": true, 922 + "license": "MIT", 923 + "peer": true, 924 + "dependencies": { 925 + "@standard-schema/spec": "^1.0.0", 926 + "@sveltejs/acorn-typescript": "^1.0.5", 927 + "@types/cookie": "^0.6.0", 928 + "acorn": "^8.14.1", 929 + "cookie": "^0.6.0", 930 + "devalue": "^5.6.3", 931 + "esm-env": "^1.2.2", 932 + "kleur": "^4.1.5", 933 + "magic-string": "^0.30.5", 934 + "mrmime": "^2.0.0", 935 + "set-cookie-parser": "^3.0.0", 936 + "sirv": "^3.0.0" 937 + }, 938 + "bin": { 939 + "svelte-kit": "svelte-kit.js" 940 + }, 941 + "engines": { 942 + "node": ">=18.13" 943 + }, 944 + "peerDependencies": { 945 + "@opentelemetry/api": "^1.0.0", 946 + "@sveltejs/vite-plugin-svelte": "^3.0.0 || ^4.0.0-next.1 || ^5.0.0 || ^6.0.0-next.0 || ^7.0.0", 947 + "svelte": "^4.0.0 || ^5.0.0-next.0", 948 + "typescript": "^5.3.3", 949 + "vite": "^5.0.3 || ^6.0.0 || ^7.0.0-beta.0 || ^8.0.0" 950 + }, 951 + "peerDependenciesMeta": { 952 + "@opentelemetry/api": { 953 + "optional": true 954 + }, 955 + "typescript": { 956 + "optional": true 957 + } 958 + } 959 + }, 960 + "node_modules/@sveltejs/vite-plugin-svelte": { 961 + "version": "5.1.1", 962 + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-5.1.1.tgz", 963 + "integrity": "sha512-Y1Cs7hhTc+a5E9Va/xwKlAJoariQyHY+5zBgCZg4PFWNYQ1nMN9sjK1zhw1gK69DuqVP++sht/1GZg1aRwmAXQ==", 964 + "dev": true, 965 + "license": "MIT", 966 + "peer": true, 967 + "dependencies": { 968 + "@sveltejs/vite-plugin-svelte-inspector": "^4.0.1", 969 + "debug": "^4.4.1", 970 + "deepmerge": "^4.3.1", 971 + "kleur": "^4.1.5", 972 + "magic-string": "^0.30.17", 973 + "vitefu": "^1.0.6" 974 + }, 975 + "engines": { 976 + "node": "^18.0.0 || ^20.0.0 || >=22" 977 + }, 978 + "peerDependencies": { 979 + "svelte": "^5.0.0", 980 + "vite": "^6.0.0" 981 + } 982 + }, 983 + "node_modules/@sveltejs/vite-plugin-svelte-inspector": { 984 + "version": "4.0.1", 985 + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-4.0.1.tgz", 986 + "integrity": "sha512-J/Nmb2Q2y7mck2hyCX4ckVHcR5tu2J+MtBEQqpDrrgELZ2uvraQcK/ioCV61AqkdXFgriksOKIceDcQmqnGhVw==", 987 + "dev": true, 988 + "license": "MIT", 989 + "dependencies": { 990 + "debug": "^4.3.7" 991 + }, 992 + "engines": { 993 + "node": "^18.0.0 || ^20.0.0 || >=22" 994 + }, 995 + "peerDependencies": { 996 + "@sveltejs/vite-plugin-svelte": "^5.0.0", 997 + "svelte": "^5.0.0", 998 + "vite": "^6.0.0" 999 + } 1000 + }, 1001 + "node_modules/@tailwindcss/node": { 1002 + "version": "4.2.1", 1003 + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.2.1.tgz", 1004 + "integrity": "sha512-jlx6sLk4EOwO6hHe1oCGm1Q4AN/s0rSrTTPBGPM0/RQ6Uylwq17FuU8IeJJKEjtc6K6O07zsvP+gDO6MMWo7pg==", 1005 + "dev": true, 1006 + "license": "MIT", 1007 + "dependencies": { 1008 + "@jridgewell/remapping": "^2.3.5", 1009 + "enhanced-resolve": "^5.19.0", 1010 + "jiti": "^2.6.1", 1011 + "lightningcss": "1.31.1", 1012 + "magic-string": "^0.30.21", 1013 + "source-map-js": "^1.2.1", 1014 + "tailwindcss": "4.2.1" 1015 + } 1016 + }, 1017 + "node_modules/@tailwindcss/oxide": { 1018 + "version": "4.2.1", 1019 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.2.1.tgz", 1020 + "integrity": "sha512-yv9jeEFWnjKCI6/T3Oq50yQEOqmpmpfzG1hcZsAOaXFQPfzWprWrlHSdGPEF3WQTi8zu8ohC9Mh9J470nT5pUw==", 1021 + "dev": true, 1022 + "license": "MIT", 1023 + "engines": { 1024 + "node": ">= 20" 1025 + }, 1026 + "optionalDependencies": { 1027 + "@tailwindcss/oxide-android-arm64": "4.2.1", 1028 + "@tailwindcss/oxide-darwin-arm64": "4.2.1", 1029 + "@tailwindcss/oxide-darwin-x64": "4.2.1", 1030 + "@tailwindcss/oxide-freebsd-x64": "4.2.1", 1031 + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.2.1", 1032 + "@tailwindcss/oxide-linux-arm64-gnu": "4.2.1", 1033 + "@tailwindcss/oxide-linux-arm64-musl": "4.2.1", 1034 + "@tailwindcss/oxide-linux-x64-gnu": "4.2.1", 1035 + "@tailwindcss/oxide-linux-x64-musl": "4.2.1", 1036 + "@tailwindcss/oxide-wasm32-wasi": "4.2.1", 1037 + "@tailwindcss/oxide-win32-arm64-msvc": "4.2.1", 1038 + "@tailwindcss/oxide-win32-x64-msvc": "4.2.1" 1039 + } 1040 + }, 1041 + "node_modules/@tailwindcss/oxide-android-arm64": { 1042 + "version": "4.2.1", 1043 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.2.1.tgz", 1044 + "integrity": "sha512-eZ7G1Zm5EC8OOKaesIKuw77jw++QJ2lL9N+dDpdQiAB/c/B2wDh0QPFHbkBVrXnwNugvrbJFk1gK2SsVjwWReg==", 1045 + "cpu": [ 1046 + "arm64" 1047 + ], 1048 + "dev": true, 1049 + "license": "MIT", 1050 + "optional": true, 1051 + "os": [ 1052 + "android" 1053 + ], 1054 + "engines": { 1055 + "node": ">= 20" 1056 + } 1057 + }, 1058 + "node_modules/@tailwindcss/oxide-darwin-arm64": { 1059 + "version": "4.2.1", 1060 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.2.1.tgz", 1061 + "integrity": "sha512-q/LHkOstoJ7pI1J0q6djesLzRvQSIfEto148ppAd+BVQK0JYjQIFSK3JgYZJa+Yzi0DDa52ZsQx2rqytBnf8Hw==", 1062 + "cpu": [ 1063 + "arm64" 1064 + ], 1065 + "dev": true, 1066 + "license": "MIT", 1067 + "optional": true, 1068 + "os": [ 1069 + "darwin" 1070 + ], 1071 + "engines": { 1072 + "node": ">= 20" 1073 + } 1074 + }, 1075 + "node_modules/@tailwindcss/oxide-darwin-x64": { 1076 + "version": "4.2.1", 1077 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.2.1.tgz", 1078 + "integrity": "sha512-/f/ozlaXGY6QLbpvd/kFTro2l18f7dHKpB+ieXz+Cijl4Mt9AI2rTrpq7V+t04nK+j9XBQHnSMdeQRhbGyt6fw==", 1079 + "cpu": [ 1080 + "x64" 1081 + ], 1082 + "dev": true, 1083 + "license": "MIT", 1084 + "optional": true, 1085 + "os": [ 1086 + "darwin" 1087 + ], 1088 + "engines": { 1089 + "node": ">= 20" 1090 + } 1091 + }, 1092 + "node_modules/@tailwindcss/oxide-freebsd-x64": { 1093 + "version": "4.2.1", 1094 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.2.1.tgz", 1095 + "integrity": "sha512-5e/AkgYJT/cpbkys/OU2Ei2jdETCLlifwm7ogMC7/hksI2fC3iiq6OcXwjibcIjPung0kRtR3TxEITkqgn0TcA==", 1096 + "cpu": [ 1097 + "x64" 1098 + ], 1099 + "dev": true, 1100 + "license": "MIT", 1101 + "optional": true, 1102 + "os": [ 1103 + "freebsd" 1104 + ], 1105 + "engines": { 1106 + "node": ">= 20" 1107 + } 1108 + }, 1109 + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { 1110 + "version": "4.2.1", 1111 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.2.1.tgz", 1112 + "integrity": "sha512-Uny1EcVTTmerCKt/1ZuKTkb0x8ZaiuYucg2/kImO5A5Y/kBz41/+j0gxUZl+hTF3xkWpDmHX+TaWhOtba2Fyuw==", 1113 + "cpu": [ 1114 + "arm" 1115 + ], 1116 + "dev": true, 1117 + "license": "MIT", 1118 + "optional": true, 1119 + "os": [ 1120 + "linux" 1121 + ], 1122 + "engines": { 1123 + "node": ">= 20" 1124 + } 1125 + }, 1126 + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { 1127 + "version": "4.2.1", 1128 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.2.1.tgz", 1129 + "integrity": "sha512-CTrwomI+c7n6aSSQlsPL0roRiNMDQ/YzMD9EjcR+H4f0I1SQ8QqIuPnsVp7QgMkC1Qi8rtkekLkOFjo7OlEFRQ==", 1130 + "cpu": [ 1131 + "arm64" 1132 + ], 1133 + "dev": true, 1134 + "license": "MIT", 1135 + "optional": true, 1136 + "os": [ 1137 + "linux" 1138 + ], 1139 + "engines": { 1140 + "node": ">= 20" 1141 + } 1142 + }, 1143 + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { 1144 + "version": "4.2.1", 1145 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.2.1.tgz", 1146 + "integrity": "sha512-WZA0CHRL/SP1TRbA5mp9htsppSEkWuQ4KsSUumYQnyl8ZdT39ntwqmz4IUHGN6p4XdSlYfJwM4rRzZLShHsGAQ==", 1147 + "cpu": [ 1148 + "arm64" 1149 + ], 1150 + "dev": true, 1151 + "license": "MIT", 1152 + "optional": true, 1153 + "os": [ 1154 + "linux" 1155 + ], 1156 + "engines": { 1157 + "node": ">= 20" 1158 + } 1159 + }, 1160 + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { 1161 + "version": "4.2.1", 1162 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.2.1.tgz", 1163 + "integrity": "sha512-qMFzxI2YlBOLW5PhblzuSWlWfwLHaneBE0xHzLrBgNtqN6mWfs+qYbhryGSXQjFYB1Dzf5w+LN5qbUTPhW7Y5g==", 1164 + "cpu": [ 1165 + "x64" 1166 + ], 1167 + "dev": true, 1168 + "license": "MIT", 1169 + "optional": true, 1170 + "os": [ 1171 + "linux" 1172 + ], 1173 + "engines": { 1174 + "node": ">= 20" 1175 + } 1176 + }, 1177 + "node_modules/@tailwindcss/oxide-linux-x64-musl": { 1178 + "version": "4.2.1", 1179 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.2.1.tgz", 1180 + "integrity": "sha512-5r1X2FKnCMUPlXTWRYpHdPYUY6a1Ar/t7P24OuiEdEOmms5lyqjDRvVY1yy9Rmioh+AunQ0rWiOTPE8F9A3v5g==", 1181 + "cpu": [ 1182 + "x64" 1183 + ], 1184 + "dev": true, 1185 + "license": "MIT", 1186 + "optional": true, 1187 + "os": [ 1188 + "linux" 1189 + ], 1190 + "engines": { 1191 + "node": ">= 20" 1192 + } 1193 + }, 1194 + "node_modules/@tailwindcss/oxide-wasm32-wasi": { 1195 + "version": "4.2.1", 1196 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.2.1.tgz", 1197 + "integrity": "sha512-MGFB5cVPvshR85MTJkEvqDUnuNoysrsRxd6vnk1Lf2tbiqNlXpHYZqkqOQalydienEWOHHFyyuTSYRsLfxFJ2Q==", 1198 + "bundleDependencies": [ 1199 + "@napi-rs/wasm-runtime", 1200 + "@emnapi/core", 1201 + "@emnapi/runtime", 1202 + "@tybys/wasm-util", 1203 + "@emnapi/wasi-threads", 1204 + "tslib" 1205 + ], 1206 + "cpu": [ 1207 + "wasm32" 1208 + ], 1209 + "dev": true, 1210 + "license": "MIT", 1211 + "optional": true, 1212 + "dependencies": { 1213 + "@emnapi/core": "^1.8.1", 1214 + "@emnapi/runtime": "^1.8.1", 1215 + "@emnapi/wasi-threads": "^1.1.0", 1216 + "@napi-rs/wasm-runtime": "^1.1.1", 1217 + "@tybys/wasm-util": "^0.10.1", 1218 + "tslib": "^2.8.1" 1219 + }, 1220 + "engines": { 1221 + "node": ">=14.0.0" 1222 + } 1223 + }, 1224 + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { 1225 + "version": "4.2.1", 1226 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.2.1.tgz", 1227 + "integrity": "sha512-YlUEHRHBGnCMh4Nj4GnqQyBtsshUPdiNroZj8VPkvTZSoHsilRCwXcVKnG9kyi0ZFAS/3u+qKHBdDc81SADTRA==", 1228 + "cpu": [ 1229 + "arm64" 1230 + ], 1231 + "dev": true, 1232 + "license": "MIT", 1233 + "optional": true, 1234 + "os": [ 1235 + "win32" 1236 + ], 1237 + "engines": { 1238 + "node": ">= 20" 1239 + } 1240 + }, 1241 + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { 1242 + "version": "4.2.1", 1243 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.2.1.tgz", 1244 + "integrity": "sha512-rbO34G5sMWWyrN/idLeVxAZgAKWrn5LiR3/I90Q9MkA67s6T1oB0xtTe+0heoBvHSpbU9Mk7i6uwJnpo4u21XQ==", 1245 + "cpu": [ 1246 + "x64" 1247 + ], 1248 + "dev": true, 1249 + "license": "MIT", 1250 + "optional": true, 1251 + "os": [ 1252 + "win32" 1253 + ], 1254 + "engines": { 1255 + "node": ">= 20" 1256 + } 1257 + }, 1258 + "node_modules/@tailwindcss/vite": { 1259 + "version": "4.2.1", 1260 + "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.2.1.tgz", 1261 + "integrity": "sha512-TBf2sJjYeb28jD2U/OhwdW0bbOsxkWPwQ7SrqGf9sVcoYwZj7rkXljroBO9wKBut9XnmQLXanuDUeqQK0lGg/w==", 1262 + "dev": true, 1263 + "license": "MIT", 1264 + "dependencies": { 1265 + "@tailwindcss/node": "4.2.1", 1266 + "@tailwindcss/oxide": "4.2.1", 1267 + "tailwindcss": "4.2.1" 1268 + }, 1269 + "peerDependencies": { 1270 + "vite": "^5.2.0 || ^6 || ^7" 1271 + } 1272 + }, 1273 + "node_modules/@tauri-apps/api": { 1274 + "version": "2.10.1", 1275 + "resolved": "https://registry.npmjs.org/@tauri-apps/api/-/api-2.10.1.tgz", 1276 + "integrity": "sha512-hKL/jWf293UDSUN09rR69hrToyIXBb8CjGaWC7gfinvnQrBVvnLr08FeFi38gxtugAVyVcTa5/FD/Xnkb1siBw==", 1277 + "license": "Apache-2.0 OR MIT", 1278 + "funding": { 1279 + "type": "opencollective", 1280 + "url": "https://opencollective.com/tauri" 1281 + } 1282 + }, 1283 + "node_modules/@tauri-apps/cli": { 1284 + "version": "2.10.0", 1285 + "resolved": "https://registry.npmjs.org/@tauri-apps/cli/-/cli-2.10.0.tgz", 1286 + "integrity": "sha512-ZwT0T+7bw4+DPCSWzmviwq5XbXlM0cNoleDKOYPFYqcZqeKY31KlpoMW/MOON/tOFBPgi31a2v3w9gliqwL2+Q==", 1287 + "dev": true, 1288 + "license": "Apache-2.0 OR MIT", 1289 + "bin": { 1290 + "tauri": "tauri.js" 1291 + }, 1292 + "engines": { 1293 + "node": ">= 10" 1294 + }, 1295 + "funding": { 1296 + "type": "opencollective", 1297 + "url": "https://opencollective.com/tauri" 1298 + }, 1299 + "optionalDependencies": { 1300 + "@tauri-apps/cli-darwin-arm64": "2.10.0", 1301 + "@tauri-apps/cli-darwin-x64": "2.10.0", 1302 + "@tauri-apps/cli-linux-arm-gnueabihf": "2.10.0", 1303 + "@tauri-apps/cli-linux-arm64-gnu": "2.10.0", 1304 + "@tauri-apps/cli-linux-arm64-musl": "2.10.0", 1305 + "@tauri-apps/cli-linux-riscv64-gnu": "2.10.0", 1306 + "@tauri-apps/cli-linux-x64-gnu": "2.10.0", 1307 + "@tauri-apps/cli-linux-x64-musl": "2.10.0", 1308 + "@tauri-apps/cli-win32-arm64-msvc": "2.10.0", 1309 + "@tauri-apps/cli-win32-ia32-msvc": "2.10.0", 1310 + "@tauri-apps/cli-win32-x64-msvc": "2.10.0" 1311 + } 1312 + }, 1313 + "node_modules/@tauri-apps/cli-darwin-arm64": { 1314 + "version": "2.10.0", 1315 + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-2.10.0.tgz", 1316 + "integrity": "sha512-avqHD4HRjrMamE/7R/kzJPcAJnZs0IIS+1nkDP5b+TNBn3py7N2aIo9LIpy+VQq0AkN8G5dDpZtOOBkmWt/zjA==", 1317 + "cpu": [ 1318 + "arm64" 1319 + ], 1320 + "dev": true, 1321 + "license": "Apache-2.0 OR MIT", 1322 + "optional": true, 1323 + "os": [ 1324 + "darwin" 1325 + ], 1326 + "engines": { 1327 + "node": ">= 10" 1328 + } 1329 + }, 1330 + "node_modules/@tauri-apps/cli-darwin-x64": { 1331 + "version": "2.10.0", 1332 + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-2.10.0.tgz", 1333 + "integrity": "sha512-keDmlvJRStzVFjZTd0xYkBONLtgBC9eMTpmXnBXzsHuawV2q9PvDo2x6D5mhuoMVrJ9QWjgaPKBBCFks4dK71Q==", 1334 + "cpu": [ 1335 + "x64" 1336 + ], 1337 + "dev": true, 1338 + "license": "Apache-2.0 OR MIT", 1339 + "optional": true, 1340 + "os": [ 1341 + "darwin" 1342 + ], 1343 + "engines": { 1344 + "node": ">= 10" 1345 + } 1346 + }, 1347 + "node_modules/@tauri-apps/cli-linux-arm-gnueabihf": { 1348 + "version": "2.10.0", 1349 + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-2.10.0.tgz", 1350 + "integrity": "sha512-e5u0VfLZsMAC9iHaOEANumgl6lfnJx0Dtjkd8IJpysZ8jp0tJ6wrIkto2OzQgzcYyRCKgX72aKE0PFgZputA8g==", 1351 + "cpu": [ 1352 + "arm" 1353 + ], 1354 + "dev": true, 1355 + "license": "Apache-2.0 OR MIT", 1356 + "optional": true, 1357 + "os": [ 1358 + "linux" 1359 + ], 1360 + "engines": { 1361 + "node": ">= 10" 1362 + } 1363 + }, 1364 + "node_modules/@tauri-apps/cli-linux-arm64-gnu": { 1365 + "version": "2.10.0", 1366 + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-2.10.0.tgz", 1367 + "integrity": "sha512-YrYYk2dfmBs5m+OIMCrb+JH/oo+4FtlpcrTCgiFYc7vcs6m3QDd1TTyWu0u01ewsCtK2kOdluhr/zKku+KP7HA==", 1368 + "cpu": [ 1369 + "arm64" 1370 + ], 1371 + "dev": true, 1372 + "license": "Apache-2.0 OR MIT", 1373 + "optional": true, 1374 + "os": [ 1375 + "linux" 1376 + ], 1377 + "engines": { 1378 + "node": ">= 10" 1379 + } 1380 + }, 1381 + "node_modules/@tauri-apps/cli-linux-arm64-musl": { 1382 + "version": "2.10.0", 1383 + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.10.0.tgz", 1384 + "integrity": "sha512-GUoPdVJmrJRIXFfW3Rkt+eGK9ygOdyISACZfC/bCSfOnGt8kNdQIQr5WRH9QUaTVFIwxMlQyV3m+yXYP+xhSVA==", 1385 + "cpu": [ 1386 + "arm64" 1387 + ], 1388 + "dev": true, 1389 + "license": "Apache-2.0 OR MIT", 1390 + "optional": true, 1391 + "os": [ 1392 + "linux" 1393 + ], 1394 + "engines": { 1395 + "node": ">= 10" 1396 + } 1397 + }, 1398 + "node_modules/@tauri-apps/cli-linux-riscv64-gnu": { 1399 + "version": "2.10.0", 1400 + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-riscv64-gnu/-/cli-linux-riscv64-gnu-2.10.0.tgz", 1401 + "integrity": "sha512-JO7s3TlSxshwsoKNCDkyvsx5gw2QAs/Y2GbR5UE2d5kkU138ATKoPOtxn8G1fFT1aDW4LH0rYAAfBpGkDyJJnw==", 1402 + "cpu": [ 1403 + "riscv64" 1404 + ], 1405 + "dev": true, 1406 + "license": "Apache-2.0 OR MIT", 1407 + "optional": true, 1408 + "os": [ 1409 + "linux" 1410 + ], 1411 + "engines": { 1412 + "node": ">= 10" 1413 + } 1414 + }, 1415 + "node_modules/@tauri-apps/cli-linux-x64-gnu": { 1416 + "version": "2.10.0", 1417 + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-2.10.0.tgz", 1418 + "integrity": "sha512-Uvh4SUUp4A6DVRSMWjelww0GnZI3PlVy7VS+DRF5napKuIehVjGl9XD0uKoCoxwAQBLctvipyEK+pDXpJeoHng==", 1419 + "cpu": [ 1420 + "x64" 1421 + ], 1422 + "dev": true, 1423 + "license": "Apache-2.0 OR MIT", 1424 + "optional": true, 1425 + "os": [ 1426 + "linux" 1427 + ], 1428 + "engines": { 1429 + "node": ">= 10" 1430 + } 1431 + }, 1432 + "node_modules/@tauri-apps/cli-linux-x64-musl": { 1433 + "version": "2.10.0", 1434 + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-2.10.0.tgz", 1435 + "integrity": "sha512-AP0KRK6bJuTpQ8kMNWvhIpKUkQJfcPFeba7QshOQZjJ8wOS6emwTN4K5g/d3AbCMo0RRdnZWwu67MlmtJyxC1Q==", 1436 + "cpu": [ 1437 + "x64" 1438 + ], 1439 + "dev": true, 1440 + "license": "Apache-2.0 OR MIT", 1441 + "optional": true, 1442 + "os": [ 1443 + "linux" 1444 + ], 1445 + "engines": { 1446 + "node": ">= 10" 1447 + } 1448 + }, 1449 + "node_modules/@tauri-apps/cli-win32-arm64-msvc": { 1450 + "version": "2.10.0", 1451 + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-arm64-msvc/-/cli-win32-arm64-msvc-2.10.0.tgz", 1452 + "integrity": "sha512-97DXVU3dJystrq7W41IX+82JEorLNY+3+ECYxvXWqkq7DBN6FsA08x/EFGE8N/b0LTOui9X2dvpGGoeZKKV08g==", 1453 + "cpu": [ 1454 + "arm64" 1455 + ], 1456 + "dev": true, 1457 + "license": "Apache-2.0 OR MIT", 1458 + "optional": true, 1459 + "os": [ 1460 + "win32" 1461 + ], 1462 + "engines": { 1463 + "node": ">= 10" 1464 + } 1465 + }, 1466 + "node_modules/@tauri-apps/cli-win32-ia32-msvc": { 1467 + "version": "2.10.0", 1468 + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-2.10.0.tgz", 1469 + "integrity": "sha512-EHyQ1iwrWy1CwMalEm9z2a6L5isQ121pe7FcA2xe4VWMJp+GHSDDGvbTv/OPdkt2Lyr7DAZBpZHM6nvlHXEc4A==", 1470 + "cpu": [ 1471 + "ia32" 1472 + ], 1473 + "dev": true, 1474 + "license": "Apache-2.0 OR MIT", 1475 + "optional": true, 1476 + "os": [ 1477 + "win32" 1478 + ], 1479 + "engines": { 1480 + "node": ">= 10" 1481 + } 1482 + }, 1483 + "node_modules/@tauri-apps/cli-win32-x64-msvc": { 1484 + "version": "2.10.0", 1485 + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-2.10.0.tgz", 1486 + "integrity": "sha512-NTpyQxkpzGmU6ceWBTY2xRIEaS0ZLbVx1HE1zTA3TY/pV3+cPoPPOs+7YScr4IMzXMtOw7tLw5LEXo5oIG3qaQ==", 1487 + "cpu": [ 1488 + "x64" 1489 + ], 1490 + "dev": true, 1491 + "license": "Apache-2.0 OR MIT", 1492 + "optional": true, 1493 + "os": [ 1494 + "win32" 1495 + ], 1496 + "engines": { 1497 + "node": ">= 10" 1498 + } 1499 + }, 1500 + "node_modules/@tauri-apps/plugin-dialog": { 1501 + "version": "2.6.0", 1502 + "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-dialog/-/plugin-dialog-2.6.0.tgz", 1503 + "integrity": "sha512-q4Uq3eY87TdcYzXACiYSPhmpBA76shgmQswGkSVio4C82Sz2W4iehe9TnKYwbq7weHiL88Yw19XZm7v28+Micg==", 1504 + "license": "MIT OR Apache-2.0", 1505 + "dependencies": { 1506 + "@tauri-apps/api": "^2.8.0" 1507 + } 1508 + }, 1509 + "node_modules/@tauri-apps/plugin-fs": { 1510 + "version": "2.4.5", 1511 + "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-fs/-/plugin-fs-2.4.5.tgz", 1512 + "integrity": "sha512-dVxWWGE6VrOxC7/jlhyE+ON/Cc2REJlM35R3PJX3UvFw2XwYhLGQVAIyrehenDdKjotipjYEVc4YjOl3qq90fA==", 1513 + "license": "MIT OR Apache-2.0", 1514 + "dependencies": { 1515 + "@tauri-apps/api": "^2.8.0" 1516 + } 1517 + }, 1518 + "node_modules/@tauri-apps/plugin-opener": { 1519 + "version": "2.5.3", 1520 + "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-opener/-/plugin-opener-2.5.3.tgz", 1521 + "integrity": "sha512-CCcUltXMOfUEArbf3db3kCE7Ggy1ExBEBl51Ko2ODJ6GDYHRp1nSNlQm5uNCFY5k7/ufaK5Ib3Du/Zir19IYQQ==", 1522 + "license": "MIT OR Apache-2.0", 1523 + "dependencies": { 1524 + "@tauri-apps/api": "^2.8.0" 1525 + } 1526 + }, 1527 + "node_modules/@tauri-apps/plugin-store": { 1528 + "version": "2.4.2", 1529 + "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-store/-/plugin-store-2.4.2.tgz", 1530 + "integrity": "sha512-0ClHS50Oq9HEvLPhNzTNFxbWVOqoAp3dRvtewQBeqfIQ0z5m3JRnOISIn2ZVPCrQC0MyGyhTS9DWhHjpigQE7A==", 1531 + "license": "MIT OR Apache-2.0", 1532 + "dependencies": { 1533 + "@tauri-apps/api": "^2.8.0" 1534 + } 1535 + }, 1536 + "node_modules/@types/cookie": { 1537 + "version": "0.6.0", 1538 + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", 1539 + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", 1540 + "dev": true, 1541 + "license": "MIT" 1542 + }, 1543 + "node_modules/@types/estree": { 1544 + "version": "1.0.8", 1545 + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", 1546 + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", 1547 + "dev": true, 1548 + "license": "MIT" 1549 + }, 1550 + "node_modules/@types/trusted-types": { 1551 + "version": "2.0.7", 1552 + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", 1553 + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", 1554 + "dev": true, 1555 + "license": "MIT" 1556 + }, 1557 + "node_modules/acorn": { 1558 + "version": "8.16.0", 1559 + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", 1560 + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", 1561 + "dev": true, 1562 + "license": "MIT", 1563 + "peer": true, 1564 + "bin": { 1565 + "acorn": "bin/acorn" 1566 + }, 1567 + "engines": { 1568 + "node": ">=0.4.0" 1569 + } 1570 + }, 1571 + "node_modules/aria-query": { 1572 + "version": "5.3.1", 1573 + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.1.tgz", 1574 + "integrity": "sha512-Z/ZeOgVl7bcSYZ/u/rh0fOpvEpq//LZmdbkXyc7syVzjPAhfOa9ebsdTSjEBDU4vs5nC98Kfduj1uFo0qyET3g==", 1575 + "dev": true, 1576 + "license": "Apache-2.0", 1577 + "engines": { 1578 + "node": ">= 0.4" 1579 + } 1580 + }, 1581 + "node_modules/axobject-query": { 1582 + "version": "4.1.0", 1583 + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", 1584 + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", 1585 + "dev": true, 1586 + "license": "Apache-2.0", 1587 + "engines": { 1588 + "node": ">= 0.4" 1589 + } 1590 + }, 1591 + "node_modules/chokidar": { 1592 + "version": "4.0.3", 1593 + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", 1594 + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", 1595 + "dev": true, 1596 + "license": "MIT", 1597 + "dependencies": { 1598 + "readdirp": "^4.0.1" 1599 + }, 1600 + "engines": { 1601 + "node": ">= 14.16.0" 1602 + }, 1603 + "funding": { 1604 + "url": "https://paulmillr.com/funding/" 1605 + } 1606 + }, 1607 + "node_modules/clsx": { 1608 + "version": "2.1.1", 1609 + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", 1610 + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", 1611 + "dev": true, 1612 + "license": "MIT", 1613 + "engines": { 1614 + "node": ">=6" 1615 + } 1616 + }, 1617 + "node_modules/cookie": { 1618 + "version": "0.6.0", 1619 + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", 1620 + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", 1621 + "dev": true, 1622 + "license": "MIT", 1623 + "engines": { 1624 + "node": ">= 0.6" 1625 + } 1626 + }, 1627 + "node_modules/debug": { 1628 + "version": "4.4.3", 1629 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", 1630 + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", 1631 + "dev": true, 1632 + "license": "MIT", 1633 + "dependencies": { 1634 + "ms": "^2.1.3" 1635 + }, 1636 + "engines": { 1637 + "node": ">=6.0" 1638 + }, 1639 + "peerDependenciesMeta": { 1640 + "supports-color": { 1641 + "optional": true 1642 + } 1643 + } 1644 + }, 1645 + "node_modules/deepmerge": { 1646 + "version": "4.3.1", 1647 + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", 1648 + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", 1649 + "dev": true, 1650 + "license": "MIT", 1651 + "engines": { 1652 + "node": ">=0.10.0" 1653 + } 1654 + }, 1655 + "node_modules/detect-libc": { 1656 + "version": "2.1.2", 1657 + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", 1658 + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", 1659 + "dev": true, 1660 + "license": "Apache-2.0", 1661 + "engines": { 1662 + "node": ">=8" 1663 + } 1664 + }, 1665 + "node_modules/devalue": { 1666 + "version": "5.6.3", 1667 + "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.6.3.tgz", 1668 + "integrity": "sha512-nc7XjUU/2Lb+SvEFVGcWLiKkzfw8+qHI7zn8WYXKkLMgfGSHbgCEaR6bJpev8Cm6Rmrb19Gfd/tZvGqx9is3wg==", 1669 + "dev": true, 1670 + "license": "MIT" 1671 + }, 1672 + "node_modules/enhanced-resolve": { 1673 + "version": "5.20.0", 1674 + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.20.0.tgz", 1675 + "integrity": "sha512-/ce7+jQ1PQ6rVXwe+jKEg5hW5ciicHwIQUagZkp6IufBoY3YDgdTTY1azVs0qoRgVmvsNB+rbjLJxDAeHHtwsQ==", 1676 + "dev": true, 1677 + "license": "MIT", 1678 + "dependencies": { 1679 + "graceful-fs": "^4.2.4", 1680 + "tapable": "^2.3.0" 1681 + }, 1682 + "engines": { 1683 + "node": ">=10.13.0" 1684 + } 1685 + }, 1686 + "node_modules/esbuild": { 1687 + "version": "0.25.12", 1688 + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", 1689 + "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", 1690 + "dev": true, 1691 + "hasInstallScript": true, 1692 + "license": "MIT", 1693 + "bin": { 1694 + "esbuild": "bin/esbuild" 1695 + }, 1696 + "engines": { 1697 + "node": ">=18" 1698 + }, 1699 + "optionalDependencies": { 1700 + "@esbuild/aix-ppc64": "0.25.12", 1701 + "@esbuild/android-arm": "0.25.12", 1702 + "@esbuild/android-arm64": "0.25.12", 1703 + "@esbuild/android-x64": "0.25.12", 1704 + "@esbuild/darwin-arm64": "0.25.12", 1705 + "@esbuild/darwin-x64": "0.25.12", 1706 + "@esbuild/freebsd-arm64": "0.25.12", 1707 + "@esbuild/freebsd-x64": "0.25.12", 1708 + "@esbuild/linux-arm": "0.25.12", 1709 + "@esbuild/linux-arm64": "0.25.12", 1710 + "@esbuild/linux-ia32": "0.25.12", 1711 + "@esbuild/linux-loong64": "0.25.12", 1712 + "@esbuild/linux-mips64el": "0.25.12", 1713 + "@esbuild/linux-ppc64": "0.25.12", 1714 + "@esbuild/linux-riscv64": "0.25.12", 1715 + "@esbuild/linux-s390x": "0.25.12", 1716 + "@esbuild/linux-x64": "0.25.12", 1717 + "@esbuild/netbsd-arm64": "0.25.12", 1718 + "@esbuild/netbsd-x64": "0.25.12", 1719 + "@esbuild/openbsd-arm64": "0.25.12", 1720 + "@esbuild/openbsd-x64": "0.25.12", 1721 + "@esbuild/openharmony-arm64": "0.25.12", 1722 + "@esbuild/sunos-x64": "0.25.12", 1723 + "@esbuild/win32-arm64": "0.25.12", 1724 + "@esbuild/win32-ia32": "0.25.12", 1725 + "@esbuild/win32-x64": "0.25.12" 1726 + } 1727 + }, 1728 + "node_modules/esm-env": { 1729 + "version": "1.2.2", 1730 + "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.2.2.tgz", 1731 + "integrity": "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==", 1732 + "dev": true, 1733 + "license": "MIT" 1734 + }, 1735 + "node_modules/esrap": { 1736 + "version": "2.2.3", 1737 + "resolved": "https://registry.npmjs.org/esrap/-/esrap-2.2.3.tgz", 1738 + "integrity": "sha512-8fOS+GIGCQZl/ZIlhl59htOlms6U8NvX6ZYgYHpRU/b6tVSh3uHkOHZikl3D4cMbYM0JlpBe+p/BkZEi8J9XIQ==", 1739 + "dev": true, 1740 + "license": "MIT", 1741 + "dependencies": { 1742 + "@jridgewell/sourcemap-codec": "^1.4.15" 1743 + } 1744 + }, 1745 + "node_modules/fdir": { 1746 + "version": "6.5.0", 1747 + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", 1748 + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", 1749 + "dev": true, 1750 + "license": "MIT", 1751 + "engines": { 1752 + "node": ">=12.0.0" 1753 + }, 1754 + "peerDependencies": { 1755 + "picomatch": "^3 || ^4" 1756 + }, 1757 + "peerDependenciesMeta": { 1758 + "picomatch": { 1759 + "optional": true 1760 + } 1761 + } 1762 + }, 1763 + "node_modules/fsevents": { 1764 + "version": "2.3.3", 1765 + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", 1766 + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", 1767 + "dev": true, 1768 + "hasInstallScript": true, 1769 + "license": "MIT", 1770 + "optional": true, 1771 + "os": [ 1772 + "darwin" 1773 + ], 1774 + "engines": { 1775 + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 1776 + } 1777 + }, 1778 + "node_modules/graceful-fs": { 1779 + "version": "4.2.11", 1780 + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", 1781 + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", 1782 + "dev": true, 1783 + "license": "ISC" 1784 + }, 1785 + "node_modules/is-reference": { 1786 + "version": "3.0.3", 1787 + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz", 1788 + "integrity": "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==", 1789 + "dev": true, 1790 + "license": "MIT", 1791 + "dependencies": { 1792 + "@types/estree": "^1.0.6" 1793 + } 1794 + }, 1795 + "node_modules/jiti": { 1796 + "version": "2.6.1", 1797 + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", 1798 + "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", 1799 + "dev": true, 1800 + "license": "MIT", 1801 + "bin": { 1802 + "jiti": "lib/jiti-cli.mjs" 1803 + } 1804 + }, 1805 + "node_modules/kleur": { 1806 + "version": "4.1.5", 1807 + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", 1808 + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", 1809 + "dev": true, 1810 + "license": "MIT", 1811 + "engines": { 1812 + "node": ">=6" 1813 + } 1814 + }, 1815 + "node_modules/lightningcss": { 1816 + "version": "1.31.1", 1817 + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.31.1.tgz", 1818 + "integrity": "sha512-l51N2r93WmGUye3WuFoN5k10zyvrVs0qfKBhyC5ogUQ6Ew6JUSswh78mbSO+IU3nTWsyOArqPCcShdQSadghBQ==", 1819 + "dev": true, 1820 + "license": "MPL-2.0", 1821 + "dependencies": { 1822 + "detect-libc": "^2.0.3" 1823 + }, 1824 + "engines": { 1825 + "node": ">= 12.0.0" 1826 + }, 1827 + "funding": { 1828 + "type": "opencollective", 1829 + "url": "https://opencollective.com/parcel" 1830 + }, 1831 + "optionalDependencies": { 1832 + "lightningcss-android-arm64": "1.31.1", 1833 + "lightningcss-darwin-arm64": "1.31.1", 1834 + "lightningcss-darwin-x64": "1.31.1", 1835 + "lightningcss-freebsd-x64": "1.31.1", 1836 + "lightningcss-linux-arm-gnueabihf": "1.31.1", 1837 + "lightningcss-linux-arm64-gnu": "1.31.1", 1838 + "lightningcss-linux-arm64-musl": "1.31.1", 1839 + "lightningcss-linux-x64-gnu": "1.31.1", 1840 + "lightningcss-linux-x64-musl": "1.31.1", 1841 + "lightningcss-win32-arm64-msvc": "1.31.1", 1842 + "lightningcss-win32-x64-msvc": "1.31.1" 1843 + } 1844 + }, 1845 + "node_modules/lightningcss-android-arm64": { 1846 + "version": "1.31.1", 1847 + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.31.1.tgz", 1848 + "integrity": "sha512-HXJF3x8w9nQ4jbXRiNppBCqeZPIAfUo8zE/kOEGbW5NZvGc/K7nMxbhIr+YlFlHW5mpbg/YFPdbnCh1wAXCKFg==", 1849 + "cpu": [ 1850 + "arm64" 1851 + ], 1852 + "dev": true, 1853 + "license": "MPL-2.0", 1854 + "optional": true, 1855 + "os": [ 1856 + "android" 1857 + ], 1858 + "engines": { 1859 + "node": ">= 12.0.0" 1860 + }, 1861 + "funding": { 1862 + "type": "opencollective", 1863 + "url": "https://opencollective.com/parcel" 1864 + } 1865 + }, 1866 + "node_modules/lightningcss-darwin-arm64": { 1867 + "version": "1.31.1", 1868 + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.31.1.tgz", 1869 + "integrity": "sha512-02uTEqf3vIfNMq3h/z2cJfcOXnQ0GRwQrkmPafhueLb2h7mqEidiCzkE4gBMEH65abHRiQvhdcQ+aP0D0g67sg==", 1870 + "cpu": [ 1871 + "arm64" 1872 + ], 1873 + "dev": true, 1874 + "license": "MPL-2.0", 1875 + "optional": true, 1876 + "os": [ 1877 + "darwin" 1878 + ], 1879 + "engines": { 1880 + "node": ">= 12.0.0" 1881 + }, 1882 + "funding": { 1883 + "type": "opencollective", 1884 + "url": "https://opencollective.com/parcel" 1885 + } 1886 + }, 1887 + "node_modules/lightningcss-darwin-x64": { 1888 + "version": "1.31.1", 1889 + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.31.1.tgz", 1890 + "integrity": "sha512-1ObhyoCY+tGxtsz1lSx5NXCj3nirk0Y0kB/g8B8DT+sSx4G9djitg9ejFnjb3gJNWo7qXH4DIy2SUHvpoFwfTA==", 1891 + "cpu": [ 1892 + "x64" 1893 + ], 1894 + "dev": true, 1895 + "license": "MPL-2.0", 1896 + "optional": true, 1897 + "os": [ 1898 + "darwin" 1899 + ], 1900 + "engines": { 1901 + "node": ">= 12.0.0" 1902 + }, 1903 + "funding": { 1904 + "type": "opencollective", 1905 + "url": "https://opencollective.com/parcel" 1906 + } 1907 + }, 1908 + "node_modules/lightningcss-freebsd-x64": { 1909 + "version": "1.31.1", 1910 + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.31.1.tgz", 1911 + "integrity": "sha512-1RINmQKAItO6ISxYgPwszQE1BrsVU5aB45ho6O42mu96UiZBxEXsuQ7cJW4zs4CEodPUioj/QrXW1r9pLUM74A==", 1912 + "cpu": [ 1913 + "x64" 1914 + ], 1915 + "dev": true, 1916 + "license": "MPL-2.0", 1917 + "optional": true, 1918 + "os": [ 1919 + "freebsd" 1920 + ], 1921 + "engines": { 1922 + "node": ">= 12.0.0" 1923 + }, 1924 + "funding": { 1925 + "type": "opencollective", 1926 + "url": "https://opencollective.com/parcel" 1927 + } 1928 + }, 1929 + "node_modules/lightningcss-linux-arm-gnueabihf": { 1930 + "version": "1.31.1", 1931 + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.31.1.tgz", 1932 + "integrity": "sha512-OOCm2//MZJ87CdDK62rZIu+aw9gBv4azMJuA8/KB74wmfS3lnC4yoPHm0uXZ/dvNNHmnZnB8XLAZzObeG0nS1g==", 1933 + "cpu": [ 1934 + "arm" 1935 + ], 1936 + "dev": true, 1937 + "license": "MPL-2.0", 1938 + "optional": true, 1939 + "os": [ 1940 + "linux" 1941 + ], 1942 + "engines": { 1943 + "node": ">= 12.0.0" 1944 + }, 1945 + "funding": { 1946 + "type": "opencollective", 1947 + "url": "https://opencollective.com/parcel" 1948 + } 1949 + }, 1950 + "node_modules/lightningcss-linux-arm64-gnu": { 1951 + "version": "1.31.1", 1952 + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.31.1.tgz", 1953 + "integrity": "sha512-WKyLWztD71rTnou4xAD5kQT+982wvca7E6QoLpoawZ1gP9JM0GJj4Tp5jMUh9B3AitHbRZ2/H3W5xQmdEOUlLg==", 1954 + "cpu": [ 1955 + "arm64" 1956 + ], 1957 + "dev": true, 1958 + "license": "MPL-2.0", 1959 + "optional": true, 1960 + "os": [ 1961 + "linux" 1962 + ], 1963 + "engines": { 1964 + "node": ">= 12.0.0" 1965 + }, 1966 + "funding": { 1967 + "type": "opencollective", 1968 + "url": "https://opencollective.com/parcel" 1969 + } 1970 + }, 1971 + "node_modules/lightningcss-linux-arm64-musl": { 1972 + "version": "1.31.1", 1973 + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.31.1.tgz", 1974 + "integrity": "sha512-mVZ7Pg2zIbe3XlNbZJdjs86YViQFoJSpc41CbVmKBPiGmC4YrfeOyz65ms2qpAobVd7WQsbW4PdsSJEMymyIMg==", 1975 + "cpu": [ 1976 + "arm64" 1977 + ], 1978 + "dev": true, 1979 + "license": "MPL-2.0", 1980 + "optional": true, 1981 + "os": [ 1982 + "linux" 1983 + ], 1984 + "engines": { 1985 + "node": ">= 12.0.0" 1986 + }, 1987 + "funding": { 1988 + "type": "opencollective", 1989 + "url": "https://opencollective.com/parcel" 1990 + } 1991 + }, 1992 + "node_modules/lightningcss-linux-x64-gnu": { 1993 + "version": "1.31.1", 1994 + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.31.1.tgz", 1995 + "integrity": "sha512-xGlFWRMl+0KvUhgySdIaReQdB4FNudfUTARn7q0hh/V67PVGCs3ADFjw+6++kG1RNd0zdGRlEKa+T13/tQjPMA==", 1996 + "cpu": [ 1997 + "x64" 1998 + ], 1999 + "dev": true, 2000 + "license": "MPL-2.0", 2001 + "optional": true, 2002 + "os": [ 2003 + "linux" 2004 + ], 2005 + "engines": { 2006 + "node": ">= 12.0.0" 2007 + }, 2008 + "funding": { 2009 + "type": "opencollective", 2010 + "url": "https://opencollective.com/parcel" 2011 + } 2012 + }, 2013 + "node_modules/lightningcss-linux-x64-musl": { 2014 + "version": "1.31.1", 2015 + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.31.1.tgz", 2016 + "integrity": "sha512-eowF8PrKHw9LpoZii5tdZwnBcYDxRw2rRCyvAXLi34iyeYfqCQNA9rmUM0ce62NlPhCvof1+9ivRaTY6pSKDaA==", 2017 + "cpu": [ 2018 + "x64" 2019 + ], 2020 + "dev": true, 2021 + "license": "MPL-2.0", 2022 + "optional": true, 2023 + "os": [ 2024 + "linux" 2025 + ], 2026 + "engines": { 2027 + "node": ">= 12.0.0" 2028 + }, 2029 + "funding": { 2030 + "type": "opencollective", 2031 + "url": "https://opencollective.com/parcel" 2032 + } 2033 + }, 2034 + "node_modules/lightningcss-win32-arm64-msvc": { 2035 + "version": "1.31.1", 2036 + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.31.1.tgz", 2037 + "integrity": "sha512-aJReEbSEQzx1uBlQizAOBSjcmr9dCdL3XuC/6HLXAxmtErsj2ICo5yYggg1qOODQMtnjNQv2UHb9NpOuFtYe4w==", 2038 + "cpu": [ 2039 + "arm64" 2040 + ], 2041 + "dev": true, 2042 + "license": "MPL-2.0", 2043 + "optional": true, 2044 + "os": [ 2045 + "win32" 2046 + ], 2047 + "engines": { 2048 + "node": ">= 12.0.0" 2049 + }, 2050 + "funding": { 2051 + "type": "opencollective", 2052 + "url": "https://opencollective.com/parcel" 2053 + } 2054 + }, 2055 + "node_modules/lightningcss-win32-x64-msvc": { 2056 + "version": "1.31.1", 2057 + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.31.1.tgz", 2058 + "integrity": "sha512-I9aiFrbd7oYHwlnQDqr1Roz+fTz61oDDJX7n9tYF9FJymH1cIN1DtKw3iYt6b8WZgEjoNwVSncwF4wx/ZedMhw==", 2059 + "cpu": [ 2060 + "x64" 2061 + ], 2062 + "dev": true, 2063 + "license": "MPL-2.0", 2064 + "optional": true, 2065 + "os": [ 2066 + "win32" 2067 + ], 2068 + "engines": { 2069 + "node": ">= 12.0.0" 2070 + }, 2071 + "funding": { 2072 + "type": "opencollective", 2073 + "url": "https://opencollective.com/parcel" 2074 + } 2075 + }, 2076 + "node_modules/locate-character": { 2077 + "version": "3.0.0", 2078 + "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", 2079 + "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", 2080 + "dev": true, 2081 + "license": "MIT" 2082 + }, 2083 + "node_modules/magic-string": { 2084 + "version": "0.30.21", 2085 + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", 2086 + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", 2087 + "dev": true, 2088 + "license": "MIT", 2089 + "dependencies": { 2090 + "@jridgewell/sourcemap-codec": "^1.5.5" 2091 + } 2092 + }, 2093 + "node_modules/mri": { 2094 + "version": "1.2.0", 2095 + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", 2096 + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", 2097 + "dev": true, 2098 + "license": "MIT", 2099 + "engines": { 2100 + "node": ">=4" 2101 + } 2102 + }, 2103 + "node_modules/mrmime": { 2104 + "version": "2.0.1", 2105 + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", 2106 + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", 2107 + "dev": true, 2108 + "license": "MIT", 2109 + "engines": { 2110 + "node": ">=10" 2111 + } 2112 + }, 2113 + "node_modules/ms": { 2114 + "version": "2.1.3", 2115 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 2116 + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", 2117 + "dev": true, 2118 + "license": "MIT" 2119 + }, 2120 + "node_modules/nanoid": { 2121 + "version": "3.3.11", 2122 + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", 2123 + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", 2124 + "dev": true, 2125 + "funding": [ 2126 + { 2127 + "type": "github", 2128 + "url": "https://github.com/sponsors/ai" 2129 + } 2130 + ], 2131 + "license": "MIT", 2132 + "bin": { 2133 + "nanoid": "bin/nanoid.cjs" 2134 + }, 2135 + "engines": { 2136 + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 2137 + } 2138 + }, 2139 + "node_modules/picocolors": { 2140 + "version": "1.1.1", 2141 + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", 2142 + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", 2143 + "dev": true, 2144 + "license": "ISC" 2145 + }, 2146 + "node_modules/picomatch": { 2147 + "version": "4.0.3", 2148 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", 2149 + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", 2150 + "dev": true, 2151 + "license": "MIT", 2152 + "peer": true, 2153 + "engines": { 2154 + "node": ">=12" 2155 + }, 2156 + "funding": { 2157 + "url": "https://github.com/sponsors/jonschlinkert" 2158 + } 2159 + }, 2160 + "node_modules/postcss": { 2161 + "version": "8.5.6", 2162 + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", 2163 + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", 2164 + "dev": true, 2165 + "funding": [ 2166 + { 2167 + "type": "opencollective", 2168 + "url": "https://opencollective.com/postcss/" 2169 + }, 2170 + { 2171 + "type": "tidelift", 2172 + "url": "https://tidelift.com/funding/github/npm/postcss" 2173 + }, 2174 + { 2175 + "type": "github", 2176 + "url": "https://github.com/sponsors/ai" 2177 + } 2178 + ], 2179 + "license": "MIT", 2180 + "dependencies": { 2181 + "nanoid": "^3.3.11", 2182 + "picocolors": "^1.1.1", 2183 + "source-map-js": "^1.2.1" 2184 + }, 2185 + "engines": { 2186 + "node": "^10 || ^12 || >=14" 2187 + } 2188 + }, 2189 + "node_modules/readdirp": { 2190 + "version": "4.1.2", 2191 + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", 2192 + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", 2193 + "dev": true, 2194 + "license": "MIT", 2195 + "engines": { 2196 + "node": ">= 14.18.0" 2197 + }, 2198 + "funding": { 2199 + "type": "individual", 2200 + "url": "https://paulmillr.com/funding/" 2201 + } 2202 + }, 2203 + "node_modules/rollup": { 2204 + "version": "4.59.0", 2205 + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.59.0.tgz", 2206 + "integrity": "sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==", 2207 + "dev": true, 2208 + "license": "MIT", 2209 + "dependencies": { 2210 + "@types/estree": "1.0.8" 2211 + }, 2212 + "bin": { 2213 + "rollup": "dist/bin/rollup" 2214 + }, 2215 + "engines": { 2216 + "node": ">=18.0.0", 2217 + "npm": ">=8.0.0" 2218 + }, 2219 + "optionalDependencies": { 2220 + "@rollup/rollup-android-arm-eabi": "4.59.0", 2221 + "@rollup/rollup-android-arm64": "4.59.0", 2222 + "@rollup/rollup-darwin-arm64": "4.59.0", 2223 + "@rollup/rollup-darwin-x64": "4.59.0", 2224 + "@rollup/rollup-freebsd-arm64": "4.59.0", 2225 + "@rollup/rollup-freebsd-x64": "4.59.0", 2226 + "@rollup/rollup-linux-arm-gnueabihf": "4.59.0", 2227 + "@rollup/rollup-linux-arm-musleabihf": "4.59.0", 2228 + "@rollup/rollup-linux-arm64-gnu": "4.59.0", 2229 + "@rollup/rollup-linux-arm64-musl": "4.59.0", 2230 + "@rollup/rollup-linux-loong64-gnu": "4.59.0", 2231 + "@rollup/rollup-linux-loong64-musl": "4.59.0", 2232 + "@rollup/rollup-linux-ppc64-gnu": "4.59.0", 2233 + "@rollup/rollup-linux-ppc64-musl": "4.59.0", 2234 + "@rollup/rollup-linux-riscv64-gnu": "4.59.0", 2235 + "@rollup/rollup-linux-riscv64-musl": "4.59.0", 2236 + "@rollup/rollup-linux-s390x-gnu": "4.59.0", 2237 + "@rollup/rollup-linux-x64-gnu": "4.59.0", 2238 + "@rollup/rollup-linux-x64-musl": "4.59.0", 2239 + "@rollup/rollup-openbsd-x64": "4.59.0", 2240 + "@rollup/rollup-openharmony-arm64": "4.59.0", 2241 + "@rollup/rollup-win32-arm64-msvc": "4.59.0", 2242 + "@rollup/rollup-win32-ia32-msvc": "4.59.0", 2243 + "@rollup/rollup-win32-x64-gnu": "4.59.0", 2244 + "@rollup/rollup-win32-x64-msvc": "4.59.0", 2245 + "fsevents": "~2.3.2" 2246 + } 2247 + }, 2248 + "node_modules/sade": { 2249 + "version": "1.8.1", 2250 + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", 2251 + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", 2252 + "dev": true, 2253 + "license": "MIT", 2254 + "dependencies": { 2255 + "mri": "^1.1.0" 2256 + }, 2257 + "engines": { 2258 + "node": ">=6" 2259 + } 2260 + }, 2261 + "node_modules/set-cookie-parser": { 2262 + "version": "3.0.1", 2263 + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-3.0.1.tgz", 2264 + "integrity": "sha512-n7Z7dXZhJbwuAHhNzkTti6Aw9QDDjZtm3JTpTGATIdNzdQz5GuFs22w90BcvF4INfnrL5xrX3oGsuqO5Dx3A1Q==", 2265 + "dev": true, 2266 + "license": "MIT" 2267 + }, 2268 + "node_modules/sirv": { 2269 + "version": "3.0.2", 2270 + "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.2.tgz", 2271 + "integrity": "sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==", 2272 + "dev": true, 2273 + "license": "MIT", 2274 + "dependencies": { 2275 + "@polka/url": "^1.0.0-next.24", 2276 + "mrmime": "^2.0.0", 2277 + "totalist": "^3.0.0" 2278 + }, 2279 + "engines": { 2280 + "node": ">=18" 2281 + } 2282 + }, 2283 + "node_modules/source-map-js": { 2284 + "version": "1.2.1", 2285 + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", 2286 + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", 2287 + "dev": true, 2288 + "license": "BSD-3-Clause", 2289 + "engines": { 2290 + "node": ">=0.10.0" 2291 + } 2292 + }, 2293 + "node_modules/svelte": { 2294 + "version": "5.53.6", 2295 + "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.53.6.tgz", 2296 + "integrity": "sha512-lP5DGF3oDDI9fhHcSpaBiJEkFLuS16h92DhM1L5K1lFm0WjOmUh1i2sNkBBk8rkxJRpob0dBE75jRfUzGZUOGA==", 2297 + "dev": true, 2298 + "license": "MIT", 2299 + "peer": true, 2300 + "dependencies": { 2301 + "@jridgewell/remapping": "^2.3.4", 2302 + "@jridgewell/sourcemap-codec": "^1.5.0", 2303 + "@sveltejs/acorn-typescript": "^1.0.5", 2304 + "@types/estree": "^1.0.5", 2305 + "@types/trusted-types": "^2.0.7", 2306 + "acorn": "^8.12.1", 2307 + "aria-query": "5.3.1", 2308 + "axobject-query": "^4.1.0", 2309 + "clsx": "^2.1.1", 2310 + "devalue": "^5.6.3", 2311 + "esm-env": "^1.2.1", 2312 + "esrap": "^2.2.2", 2313 + "is-reference": "^3.0.3", 2314 + "locate-character": "^3.0.0", 2315 + "magic-string": "^0.30.11", 2316 + "zimmerframe": "^1.1.2" 2317 + }, 2318 + "engines": { 2319 + "node": ">=18" 2320 + } 2321 + }, 2322 + "node_modules/svelte-check": { 2323 + "version": "4.4.4", 2324 + "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-4.4.4.tgz", 2325 + "integrity": "sha512-F1pGqXc710Oi/wTI4d/x7d6lgPwwfx1U6w3Q35n4xsC2e8C/yN2sM1+mWxjlMcpAfWucjlq4vPi+P4FZ8a14sQ==", 2326 + "dev": true, 2327 + "license": "MIT", 2328 + "dependencies": { 2329 + "@jridgewell/trace-mapping": "^0.3.25", 2330 + "chokidar": "^4.0.1", 2331 + "fdir": "^6.2.0", 2332 + "picocolors": "^1.0.0", 2333 + "sade": "^1.7.4" 2334 + }, 2335 + "bin": { 2336 + "svelte-check": "bin/svelte-check" 2337 + }, 2338 + "engines": { 2339 + "node": ">= 18.0.0" 2340 + }, 2341 + "peerDependencies": { 2342 + "svelte": "^4.0.0 || ^5.0.0-next.0", 2343 + "typescript": ">=5.0.0" 2344 + } 2345 + }, 2346 + "node_modules/tailwindcss": { 2347 + "version": "4.2.1", 2348 + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.2.1.tgz", 2349 + "integrity": "sha512-/tBrSQ36vCleJkAOsy9kbNTgaxvGbyOamC30PRePTQe/o1MFwEKHQk4Cn7BNGaPtjp+PuUrByJehM1hgxfq4sw==", 2350 + "dev": true, 2351 + "license": "MIT" 2352 + }, 2353 + "node_modules/tapable": { 2354 + "version": "2.3.0", 2355 + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", 2356 + "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", 2357 + "dev": true, 2358 + "license": "MIT", 2359 + "engines": { 2360 + "node": ">=6" 2361 + }, 2362 + "funding": { 2363 + "type": "opencollective", 2364 + "url": "https://opencollective.com/webpack" 2365 + } 2366 + }, 2367 + "node_modules/tinyglobby": { 2368 + "version": "0.2.15", 2369 + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", 2370 + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", 2371 + "dev": true, 2372 + "license": "MIT", 2373 + "dependencies": { 2374 + "fdir": "^6.5.0", 2375 + "picomatch": "^4.0.3" 2376 + }, 2377 + "engines": { 2378 + "node": ">=12.0.0" 2379 + }, 2380 + "funding": { 2381 + "url": "https://github.com/sponsors/SuperchupuDev" 2382 + } 2383 + }, 2384 + "node_modules/totalist": { 2385 + "version": "3.0.1", 2386 + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", 2387 + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", 2388 + "dev": true, 2389 + "license": "MIT", 2390 + "engines": { 2391 + "node": ">=6" 2392 + } 2393 + }, 2394 + "node_modules/typescript": { 2395 + "version": "5.6.3", 2396 + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", 2397 + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", 2398 + "dev": true, 2399 + "license": "Apache-2.0", 2400 + "peer": true, 2401 + "bin": { 2402 + "tsc": "bin/tsc", 2403 + "tsserver": "bin/tsserver" 2404 + }, 2405 + "engines": { 2406 + "node": ">=14.17" 2407 + } 2408 + }, 2409 + "node_modules/vite": { 2410 + "version": "6.4.1", 2411 + "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz", 2412 + "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==", 2413 + "dev": true, 2414 + "license": "MIT", 2415 + "peer": true, 2416 + "dependencies": { 2417 + "esbuild": "^0.25.0", 2418 + "fdir": "^6.4.4", 2419 + "picomatch": "^4.0.2", 2420 + "postcss": "^8.5.3", 2421 + "rollup": "^4.34.9", 2422 + "tinyglobby": "^0.2.13" 2423 + }, 2424 + "bin": { 2425 + "vite": "bin/vite.js" 2426 + }, 2427 + "engines": { 2428 + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" 2429 + }, 2430 + "funding": { 2431 + "url": "https://github.com/vitejs/vite?sponsor=1" 2432 + }, 2433 + "optionalDependencies": { 2434 + "fsevents": "~2.3.3" 2435 + }, 2436 + "peerDependencies": { 2437 + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", 2438 + "jiti": ">=1.21.0", 2439 + "less": "*", 2440 + "lightningcss": "^1.21.0", 2441 + "sass": "*", 2442 + "sass-embedded": "*", 2443 + "stylus": "*", 2444 + "sugarss": "*", 2445 + "terser": "^5.16.0", 2446 + "tsx": "^4.8.1", 2447 + "yaml": "^2.4.2" 2448 + }, 2449 + "peerDependenciesMeta": { 2450 + "@types/node": { 2451 + "optional": true 2452 + }, 2453 + "jiti": { 2454 + "optional": true 2455 + }, 2456 + "less": { 2457 + "optional": true 2458 + }, 2459 + "lightningcss": { 2460 + "optional": true 2461 + }, 2462 + "sass": { 2463 + "optional": true 2464 + }, 2465 + "sass-embedded": { 2466 + "optional": true 2467 + }, 2468 + "stylus": { 2469 + "optional": true 2470 + }, 2471 + "sugarss": { 2472 + "optional": true 2473 + }, 2474 + "terser": { 2475 + "optional": true 2476 + }, 2477 + "tsx": { 2478 + "optional": true 2479 + }, 2480 + "yaml": { 2481 + "optional": true 2482 + } 2483 + } 2484 + }, 2485 + "node_modules/vitefu": { 2486 + "version": "1.1.2", 2487 + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.1.2.tgz", 2488 + "integrity": "sha512-zpKATdUbzbsycPFBN71nS2uzBUQiVnFoOrr2rvqv34S1lcAgMKKkjWleLGeiJlZ8lwCXvtWaRn7R3ZC16SYRuw==", 2489 + "dev": true, 2490 + "license": "MIT", 2491 + "workspaces": [ 2492 + "tests/deps/*", 2493 + "tests/projects/*", 2494 + "tests/projects/workspace/packages/*" 2495 + ], 2496 + "peerDependencies": { 2497 + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-beta.0" 2498 + }, 2499 + "peerDependenciesMeta": { 2500 + "vite": { 2501 + "optional": true 2502 + } 2503 + } 2504 + }, 2505 + "node_modules/zimmerframe": { 2506 + "version": "1.1.4", 2507 + "resolved": "https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.4.tgz", 2508 + "integrity": "sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==", 2509 + "dev": true, 2510 + "license": "MIT" 2511 + } 2512 + } 2513 + }
+39
mobile/package.json
··· 1 + { 2 + "name": "ferrum", 3 + "version": "0.1.0", 4 + "description": "", 5 + "type": "module", 6 + "scripts": { 7 + "dev": "tauri dev", 8 + "dev-android": "cargo tauri android dev", 9 + "dev:web": "vite dev", 10 + "build": "tauri build", 11 + "build-android": "tauri android build", 12 + "build:web": "vite build", 13 + "lint": "svelte-check --tsconfig ./tsconfig.json && eslint src && prettier --check src", 14 + "format": "eslint --fix src && prettier --write src", 15 + "tauri": "tauri", 16 + "gen-types": "cargo run -p ferrum_mobile --bin export_ts" 17 + }, 18 + "license": "MIT", 19 + "dependencies": { 20 + "@tauri-apps/api": "^2", 21 + "@tauri-apps/plugin-dialog": "^2.6.0", 22 + "@tauri-apps/plugin-fs": "^2.4.5", 23 + "@tauri-apps/plugin-opener": "^2", 24 + "@tauri-apps/plugin-store": "^2.4.2" 25 + }, 26 + "devDependencies": { 27 + "@saurl/tauri-plugin-safe-area-insets-css-api": "^0.1.0", 28 + "@sveltejs/adapter-static": "^3.0.6", 29 + "@sveltejs/kit": "^2.9.0", 30 + "@sveltejs/vite-plugin-svelte": "^5.0.0", 31 + "@tailwindcss/vite": "^4.1.18", 32 + "@tauri-apps/cli": "^2", 33 + "svelte": "^5.0.0", 34 + "svelte-check": "^4.0.0", 35 + "tailwindcss": "^4.1.18", 36 + "typescript": "~5.6.2", 37 + "vite": "^6.0.3" 38 + } 39 + }
+7
mobile/src-tauri/.gitignore
··· 1 + # Generated by Cargo 2 + # will have compiled files and executables 3 + /target/ 4 + 5 + # Generated by Tauri 6 + # will have schema files for capabilities auto-completion 7 + /gen/schemas
+5305
mobile/src-tauri/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 = "android_system_properties" 37 + version = "0.1.5" 38 + source = "registry+https://github.com/rust-lang/crates.io-index" 39 + checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" 40 + dependencies = [ 41 + "libc", 42 + ] 43 + 44 + [[package]] 45 + name = "anyhow" 46 + version = "1.0.102" 47 + source = "registry+https://github.com/rust-lang/crates.io-index" 48 + checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" 49 + 50 + [[package]] 51 + name = "async-broadcast" 52 + version = "0.7.2" 53 + source = "registry+https://github.com/rust-lang/crates.io-index" 54 + checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532" 55 + dependencies = [ 56 + "event-listener", 57 + "event-listener-strategy", 58 + "futures-core", 59 + "pin-project-lite", 60 + ] 61 + 62 + [[package]] 63 + name = "async-channel" 64 + version = "2.5.0" 65 + source = "registry+https://github.com/rust-lang/crates.io-index" 66 + checksum = "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2" 67 + dependencies = [ 68 + "concurrent-queue", 69 + "event-listener-strategy", 70 + "futures-core", 71 + "pin-project-lite", 72 + ] 73 + 74 + [[package]] 75 + name = "async-executor" 76 + version = "1.14.0" 77 + source = "registry+https://github.com/rust-lang/crates.io-index" 78 + checksum = "c96bf972d85afc50bf5ab8fe2d54d1586b4e0b46c97c50a0c9e71e2f7bcd812a" 79 + dependencies = [ 80 + "async-task", 81 + "concurrent-queue", 82 + "fastrand", 83 + "futures-lite", 84 + "pin-project-lite", 85 + "slab", 86 + ] 87 + 88 + [[package]] 89 + name = "async-io" 90 + version = "2.6.0" 91 + source = "registry+https://github.com/rust-lang/crates.io-index" 92 + checksum = "456b8a8feb6f42d237746d4b3e9a178494627745c3c56c6ea55d92ba50d026fc" 93 + dependencies = [ 94 + "autocfg", 95 + "cfg-if", 96 + "concurrent-queue", 97 + "futures-io", 98 + "futures-lite", 99 + "parking", 100 + "polling", 101 + "rustix", 102 + "slab", 103 + "windows-sys 0.61.2", 104 + ] 105 + 106 + [[package]] 107 + name = "async-lock" 108 + version = "3.4.2" 109 + source = "registry+https://github.com/rust-lang/crates.io-index" 110 + checksum = "290f7f2596bd5b78a9fec8088ccd89180d7f9f55b94b0576823bbbdc72ee8311" 111 + dependencies = [ 112 + "event-listener", 113 + "event-listener-strategy", 114 + "pin-project-lite", 115 + ] 116 + 117 + [[package]] 118 + name = "async-process" 119 + version = "2.5.0" 120 + source = "registry+https://github.com/rust-lang/crates.io-index" 121 + checksum = "fc50921ec0055cdd8a16de48773bfeec5c972598674347252c0399676be7da75" 122 + dependencies = [ 123 + "async-channel", 124 + "async-io", 125 + "async-lock", 126 + "async-signal", 127 + "async-task", 128 + "blocking", 129 + "cfg-if", 130 + "event-listener", 131 + "futures-lite", 132 + "rustix", 133 + ] 134 + 135 + [[package]] 136 + name = "async-recursion" 137 + version = "1.1.1" 138 + source = "registry+https://github.com/rust-lang/crates.io-index" 139 + checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" 140 + dependencies = [ 141 + "proc-macro2", 142 + "quote", 143 + "syn 2.0.117", 144 + ] 145 + 146 + [[package]] 147 + name = "async-signal" 148 + version = "0.2.13" 149 + source = "registry+https://github.com/rust-lang/crates.io-index" 150 + checksum = "43c070bbf59cd3570b6b2dd54cd772527c7c3620fce8be898406dd3ed6adc64c" 151 + dependencies = [ 152 + "async-io", 153 + "async-lock", 154 + "atomic-waker", 155 + "cfg-if", 156 + "futures-core", 157 + "futures-io", 158 + "rustix", 159 + "signal-hook-registry", 160 + "slab", 161 + "windows-sys 0.61.2", 162 + ] 163 + 164 + [[package]] 165 + name = "async-task" 166 + version = "4.7.1" 167 + source = "registry+https://github.com/rust-lang/crates.io-index" 168 + checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" 169 + 170 + [[package]] 171 + name = "async-trait" 172 + version = "0.1.89" 173 + source = "registry+https://github.com/rust-lang/crates.io-index" 174 + checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" 175 + dependencies = [ 176 + "proc-macro2", 177 + "quote", 178 + "syn 2.0.117", 179 + ] 180 + 181 + [[package]] 182 + name = "atk" 183 + version = "0.18.2" 184 + source = "registry+https://github.com/rust-lang/crates.io-index" 185 + checksum = "241b621213072e993be4f6f3a9e4b45f65b7e6faad43001be957184b7bb1824b" 186 + dependencies = [ 187 + "atk-sys", 188 + "glib", 189 + "libc", 190 + ] 191 + 192 + [[package]] 193 + name = "atk-sys" 194 + version = "0.18.2" 195 + source = "registry+https://github.com/rust-lang/crates.io-index" 196 + checksum = "c5e48b684b0ca77d2bbadeef17424c2ea3c897d44d566a1617e7e8f30614d086" 197 + dependencies = [ 198 + "glib-sys", 199 + "gobject-sys", 200 + "libc", 201 + "system-deps", 202 + ] 203 + 204 + [[package]] 205 + name = "atomic-waker" 206 + version = "1.1.2" 207 + source = "registry+https://github.com/rust-lang/crates.io-index" 208 + checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" 209 + 210 + [[package]] 211 + name = "autocfg" 212 + version = "1.5.0" 213 + source = "registry+https://github.com/rust-lang/crates.io-index" 214 + checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" 215 + 216 + [[package]] 217 + name = "base64" 218 + version = "0.21.7" 219 + source = "registry+https://github.com/rust-lang/crates.io-index" 220 + checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" 221 + 222 + [[package]] 223 + name = "base64" 224 + version = "0.22.1" 225 + source = "registry+https://github.com/rust-lang/crates.io-index" 226 + checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" 227 + 228 + [[package]] 229 + name = "bitflags" 230 + version = "1.3.2" 231 + source = "registry+https://github.com/rust-lang/crates.io-index" 232 + checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 233 + 234 + [[package]] 235 + name = "bitflags" 236 + version = "2.11.0" 237 + source = "registry+https://github.com/rust-lang/crates.io-index" 238 + checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" 239 + dependencies = [ 240 + "serde_core", 241 + ] 242 + 243 + [[package]] 244 + name = "block-buffer" 245 + version = "0.10.4" 246 + source = "registry+https://github.com/rust-lang/crates.io-index" 247 + checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 248 + dependencies = [ 249 + "generic-array", 250 + ] 251 + 252 + [[package]] 253 + name = "block2" 254 + version = "0.6.2" 255 + source = "registry+https://github.com/rust-lang/crates.io-index" 256 + checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5" 257 + dependencies = [ 258 + "objc2", 259 + ] 260 + 261 + [[package]] 262 + name = "blocking" 263 + version = "1.6.2" 264 + source = "registry+https://github.com/rust-lang/crates.io-index" 265 + checksum = "e83f8d02be6967315521be875afa792a316e28d57b5a2d401897e2a7921b7f21" 266 + dependencies = [ 267 + "async-channel", 268 + "async-task", 269 + "futures-io", 270 + "futures-lite", 271 + "piper", 272 + ] 273 + 274 + [[package]] 275 + name = "brotli" 276 + version = "8.0.2" 277 + source = "registry+https://github.com/rust-lang/crates.io-index" 278 + checksum = "4bd8b9603c7aa97359dbd97ecf258968c95f3adddd6db2f7e7a5bef101c84560" 279 + dependencies = [ 280 + "alloc-no-stdlib", 281 + "alloc-stdlib", 282 + "brotli-decompressor", 283 + ] 284 + 285 + [[package]] 286 + name = "brotli-decompressor" 287 + version = "5.0.0" 288 + source = "registry+https://github.com/rust-lang/crates.io-index" 289 + checksum = "874bb8112abecc98cbd6d81ea4fa7e94fb9449648c93cc89aa40c81c24d7de03" 290 + dependencies = [ 291 + "alloc-no-stdlib", 292 + "alloc-stdlib", 293 + ] 294 + 295 + [[package]] 296 + name = "bumpalo" 297 + version = "3.20.2" 298 + source = "registry+https://github.com/rust-lang/crates.io-index" 299 + checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" 300 + 301 + [[package]] 302 + name = "bytemuck" 303 + version = "1.25.0" 304 + source = "registry+https://github.com/rust-lang/crates.io-index" 305 + checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" 306 + 307 + [[package]] 308 + name = "byteorder" 309 + version = "1.5.0" 310 + source = "registry+https://github.com/rust-lang/crates.io-index" 311 + checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" 312 + 313 + [[package]] 314 + name = "bytes" 315 + version = "1.11.1" 316 + source = "registry+https://github.com/rust-lang/crates.io-index" 317 + checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" 318 + dependencies = [ 319 + "serde", 320 + ] 321 + 322 + [[package]] 323 + name = "cairo-rs" 324 + version = "0.18.5" 325 + source = "registry+https://github.com/rust-lang/crates.io-index" 326 + checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2" 327 + dependencies = [ 328 + "bitflags 2.11.0", 329 + "cairo-sys-rs", 330 + "glib", 331 + "libc", 332 + "once_cell", 333 + "thiserror 1.0.69", 334 + ] 335 + 336 + [[package]] 337 + name = "cairo-sys-rs" 338 + version = "0.18.2" 339 + source = "registry+https://github.com/rust-lang/crates.io-index" 340 + checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51" 341 + dependencies = [ 342 + "glib-sys", 343 + "libc", 344 + "system-deps", 345 + ] 346 + 347 + [[package]] 348 + name = "camino" 349 + version = "1.2.2" 350 + source = "registry+https://github.com/rust-lang/crates.io-index" 351 + checksum = "e629a66d692cb9ff1a1c664e41771b3dcaf961985a9774c0eb0bd1b51cf60a48" 352 + dependencies = [ 353 + "serde_core", 354 + ] 355 + 356 + [[package]] 357 + name = "cargo-platform" 358 + version = "0.1.9" 359 + source = "registry+https://github.com/rust-lang/crates.io-index" 360 + checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" 361 + dependencies = [ 362 + "serde", 363 + ] 364 + 365 + [[package]] 366 + name = "cargo_metadata" 367 + version = "0.19.2" 368 + source = "registry+https://github.com/rust-lang/crates.io-index" 369 + checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba" 370 + dependencies = [ 371 + "camino", 372 + "cargo-platform", 373 + "semver", 374 + "serde", 375 + "serde_json", 376 + "thiserror 2.0.18", 377 + ] 378 + 379 + [[package]] 380 + name = "cargo_toml" 381 + version = "0.22.3" 382 + source = "registry+https://github.com/rust-lang/crates.io-index" 383 + checksum = "374b7c592d9c00c1f4972ea58390ac6b18cbb6ab79011f3bdc90a0b82ca06b77" 384 + dependencies = [ 385 + "serde", 386 + "toml 0.9.12+spec-1.1.0", 387 + ] 388 + 389 + [[package]] 390 + name = "cc" 391 + version = "1.2.56" 392 + source = "registry+https://github.com/rust-lang/crates.io-index" 393 + checksum = "aebf35691d1bfb0ac386a69bac2fde4dd276fb618cf8bf4f5318fe285e821bb2" 394 + dependencies = [ 395 + "find-msvc-tools", 396 + "shlex", 397 + ] 398 + 399 + [[package]] 400 + name = "cesu8" 401 + version = "1.1.0" 402 + source = "registry+https://github.com/rust-lang/crates.io-index" 403 + checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" 404 + 405 + [[package]] 406 + name = "cfb" 407 + version = "0.7.3" 408 + source = "registry+https://github.com/rust-lang/crates.io-index" 409 + checksum = "d38f2da7a0a2c4ccf0065be06397cc26a81f4e528be095826eee9d4adbb8c60f" 410 + dependencies = [ 411 + "byteorder", 412 + "fnv", 413 + "uuid", 414 + ] 415 + 416 + [[package]] 417 + name = "cfg-expr" 418 + version = "0.15.8" 419 + source = "registry+https://github.com/rust-lang/crates.io-index" 420 + checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" 421 + dependencies = [ 422 + "smallvec", 423 + "target-lexicon", 424 + ] 425 + 426 + [[package]] 427 + name = "cfg-if" 428 + version = "1.0.4" 429 + source = "registry+https://github.com/rust-lang/crates.io-index" 430 + checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" 431 + 432 + [[package]] 433 + name = "chrono" 434 + version = "0.4.44" 435 + source = "registry+https://github.com/rust-lang/crates.io-index" 436 + checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" 437 + dependencies = [ 438 + "iana-time-zone", 439 + "num-traits", 440 + "serde", 441 + "windows-link 0.2.1", 442 + ] 443 + 444 + [[package]] 445 + name = "combine" 446 + version = "4.6.7" 447 + source = "registry+https://github.com/rust-lang/crates.io-index" 448 + checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" 449 + dependencies = [ 450 + "bytes", 451 + "memchr", 452 + ] 453 + 454 + [[package]] 455 + name = "concurrent-queue" 456 + version = "2.5.0" 457 + source = "registry+https://github.com/rust-lang/crates.io-index" 458 + checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" 459 + dependencies = [ 460 + "crossbeam-utils", 461 + ] 462 + 463 + [[package]] 464 + name = "convert_case" 465 + version = "0.4.0" 466 + source = "registry+https://github.com/rust-lang/crates.io-index" 467 + checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" 468 + 469 + [[package]] 470 + name = "cookie" 471 + version = "0.18.1" 472 + source = "registry+https://github.com/rust-lang/crates.io-index" 473 + checksum = "4ddef33a339a91ea89fb53151bd0a4689cfce27055c291dfa69945475d22c747" 474 + dependencies = [ 475 + "time", 476 + "version_check", 477 + ] 478 + 479 + [[package]] 480 + name = "core-foundation" 481 + version = "0.10.1" 482 + source = "registry+https://github.com/rust-lang/crates.io-index" 483 + checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" 484 + dependencies = [ 485 + "core-foundation-sys", 486 + "libc", 487 + ] 488 + 489 + [[package]] 490 + name = "core-foundation-sys" 491 + version = "0.8.7" 492 + source = "registry+https://github.com/rust-lang/crates.io-index" 493 + checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" 494 + 495 + [[package]] 496 + name = "core-graphics" 497 + version = "0.24.0" 498 + source = "registry+https://github.com/rust-lang/crates.io-index" 499 + checksum = "fa95a34622365fa5bbf40b20b75dba8dfa8c94c734aea8ac9a5ca38af14316f1" 500 + dependencies = [ 501 + "bitflags 2.11.0", 502 + "core-foundation", 503 + "core-graphics-types", 504 + "foreign-types", 505 + "libc", 506 + ] 507 + 508 + [[package]] 509 + name = "core-graphics-types" 510 + version = "0.2.0" 511 + source = "registry+https://github.com/rust-lang/crates.io-index" 512 + checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" 513 + dependencies = [ 514 + "bitflags 2.11.0", 515 + "core-foundation", 516 + "libc", 517 + ] 518 + 519 + [[package]] 520 + name = "cpufeatures" 521 + version = "0.2.17" 522 + source = "registry+https://github.com/rust-lang/crates.io-index" 523 + checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" 524 + dependencies = [ 525 + "libc", 526 + ] 527 + 528 + [[package]] 529 + name = "crc32fast" 530 + version = "1.5.0" 531 + source = "registry+https://github.com/rust-lang/crates.io-index" 532 + checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" 533 + dependencies = [ 534 + "cfg-if", 535 + ] 536 + 537 + [[package]] 538 + name = "crossbeam-channel" 539 + version = "0.5.15" 540 + source = "registry+https://github.com/rust-lang/crates.io-index" 541 + checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" 542 + dependencies = [ 543 + "crossbeam-utils", 544 + ] 545 + 546 + [[package]] 547 + name = "crossbeam-utils" 548 + version = "0.8.21" 549 + source = "registry+https://github.com/rust-lang/crates.io-index" 550 + checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" 551 + 552 + [[package]] 553 + name = "crypto-common" 554 + version = "0.1.7" 555 + source = "registry+https://github.com/rust-lang/crates.io-index" 556 + checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" 557 + dependencies = [ 558 + "generic-array", 559 + "typenum", 560 + ] 561 + 562 + [[package]] 563 + name = "cssparser" 564 + version = "0.29.6" 565 + source = "registry+https://github.com/rust-lang/crates.io-index" 566 + checksum = "f93d03419cb5950ccfd3daf3ff1c7a36ace64609a1a8746d493df1ca0afde0fa" 567 + dependencies = [ 568 + "cssparser-macros", 569 + "dtoa-short", 570 + "itoa", 571 + "matches", 572 + "phf 0.10.1", 573 + "proc-macro2", 574 + "quote", 575 + "smallvec", 576 + "syn 1.0.109", 577 + ] 578 + 579 + [[package]] 580 + name = "cssparser-macros" 581 + version = "0.6.1" 582 + source = "registry+https://github.com/rust-lang/crates.io-index" 583 + checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" 584 + dependencies = [ 585 + "quote", 586 + "syn 2.0.117", 587 + ] 588 + 589 + [[package]] 590 + name = "ctor" 591 + version = "0.2.9" 592 + source = "registry+https://github.com/rust-lang/crates.io-index" 593 + checksum = "32a2785755761f3ddc1492979ce1e48d2c00d09311c39e4466429188f3dd6501" 594 + dependencies = [ 595 + "quote", 596 + "syn 2.0.117", 597 + ] 598 + 599 + [[package]] 600 + name = "darling" 601 + version = "0.21.3" 602 + source = "registry+https://github.com/rust-lang/crates.io-index" 603 + checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" 604 + dependencies = [ 605 + "darling_core", 606 + "darling_macro", 607 + ] 608 + 609 + [[package]] 610 + name = "darling_core" 611 + version = "0.21.3" 612 + source = "registry+https://github.com/rust-lang/crates.io-index" 613 + checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" 614 + dependencies = [ 615 + "fnv", 616 + "ident_case", 617 + "proc-macro2", 618 + "quote", 619 + "strsim", 620 + "syn 2.0.117", 621 + ] 622 + 623 + [[package]] 624 + name = "darling_macro" 625 + version = "0.21.3" 626 + source = "registry+https://github.com/rust-lang/crates.io-index" 627 + checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" 628 + dependencies = [ 629 + "darling_core", 630 + "quote", 631 + "syn 2.0.117", 632 + ] 633 + 634 + [[package]] 635 + name = "deranged" 636 + version = "0.5.8" 637 + source = "registry+https://github.com/rust-lang/crates.io-index" 638 + checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" 639 + dependencies = [ 640 + "powerfmt", 641 + "serde_core", 642 + ] 643 + 644 + [[package]] 645 + name = "derive_more" 646 + version = "0.99.20" 647 + source = "registry+https://github.com/rust-lang/crates.io-index" 648 + checksum = "6edb4b64a43d977b8e99788fe3a04d483834fba1215a7e02caa415b626497f7f" 649 + dependencies = [ 650 + "convert_case", 651 + "proc-macro2", 652 + "quote", 653 + "rustc_version", 654 + "syn 2.0.117", 655 + ] 656 + 657 + [[package]] 658 + name = "digest" 659 + version = "0.10.7" 660 + source = "registry+https://github.com/rust-lang/crates.io-index" 661 + checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" 662 + dependencies = [ 663 + "block-buffer", 664 + "crypto-common", 665 + ] 666 + 667 + [[package]] 668 + name = "dirs" 669 + version = "6.0.0" 670 + source = "registry+https://github.com/rust-lang/crates.io-index" 671 + checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" 672 + dependencies = [ 673 + "dirs-sys", 674 + ] 675 + 676 + [[package]] 677 + name = "dirs-sys" 678 + version = "0.5.0" 679 + source = "registry+https://github.com/rust-lang/crates.io-index" 680 + checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" 681 + dependencies = [ 682 + "libc", 683 + "option-ext", 684 + "redox_users", 685 + "windows-sys 0.61.2", 686 + ] 687 + 688 + [[package]] 689 + name = "dispatch" 690 + version = "0.2.0" 691 + source = "registry+https://github.com/rust-lang/crates.io-index" 692 + checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" 693 + 694 + [[package]] 695 + name = "dispatch2" 696 + version = "0.3.1" 697 + source = "registry+https://github.com/rust-lang/crates.io-index" 698 + checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" 699 + dependencies = [ 700 + "bitflags 2.11.0", 701 + "objc2", 702 + ] 703 + 704 + [[package]] 705 + name = "displaydoc" 706 + version = "0.2.5" 707 + source = "registry+https://github.com/rust-lang/crates.io-index" 708 + checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" 709 + dependencies = [ 710 + "proc-macro2", 711 + "quote", 712 + "syn 2.0.117", 713 + ] 714 + 715 + [[package]] 716 + name = "dlopen2" 717 + version = "0.8.2" 718 + source = "registry+https://github.com/rust-lang/crates.io-index" 719 + checksum = "5e2c5bd4158e66d1e215c49b837e11d62f3267b30c92f1d171c4d3105e3dc4d4" 720 + dependencies = [ 721 + "dlopen2_derive", 722 + "libc", 723 + "once_cell", 724 + "winapi", 725 + ] 726 + 727 + [[package]] 728 + name = "dlopen2_derive" 729 + version = "0.4.3" 730 + source = "registry+https://github.com/rust-lang/crates.io-index" 731 + checksum = "0fbbb781877580993a8707ec48672673ec7b81eeba04cfd2310bd28c08e47c8f" 732 + dependencies = [ 733 + "proc-macro2", 734 + "quote", 735 + "syn 2.0.117", 736 + ] 737 + 738 + [[package]] 739 + name = "dpi" 740 + version = "0.1.2" 741 + source = "registry+https://github.com/rust-lang/crates.io-index" 742 + checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76" 743 + dependencies = [ 744 + "serde", 745 + ] 746 + 747 + [[package]] 748 + name = "dtoa" 749 + version = "1.0.11" 750 + source = "registry+https://github.com/rust-lang/crates.io-index" 751 + checksum = "4c3cf4824e2d5f025c7b531afcb2325364084a16806f6d47fbc1f5fbd9960590" 752 + 753 + [[package]] 754 + name = "dtoa-short" 755 + version = "0.3.5" 756 + source = "registry+https://github.com/rust-lang/crates.io-index" 757 + checksum = "cd1511a7b6a56299bd043a9c167a6d2bfb37bf84a6dfceaba651168adfb43c87" 758 + dependencies = [ 759 + "dtoa", 760 + ] 761 + 762 + [[package]] 763 + name = "dunce" 764 + version = "1.0.5" 765 + source = "registry+https://github.com/rust-lang/crates.io-index" 766 + checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" 767 + 768 + [[package]] 769 + name = "dyn-clone" 770 + version = "1.0.20" 771 + source = "registry+https://github.com/rust-lang/crates.io-index" 772 + checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" 773 + 774 + [[package]] 775 + name = "embed-resource" 776 + version = "3.0.6" 777 + source = "registry+https://github.com/rust-lang/crates.io-index" 778 + checksum = "55a075fc573c64510038d7ee9abc7990635863992f83ebc52c8b433b8411a02e" 779 + dependencies = [ 780 + "cc", 781 + "memchr", 782 + "rustc_version", 783 + "toml 0.9.12+spec-1.1.0", 784 + "vswhom", 785 + "winreg", 786 + ] 787 + 788 + [[package]] 789 + name = "embed_plist" 790 + version = "1.2.2" 791 + source = "registry+https://github.com/rust-lang/crates.io-index" 792 + checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" 793 + 794 + [[package]] 795 + name = "endi" 796 + version = "1.1.1" 797 + source = "registry+https://github.com/rust-lang/crates.io-index" 798 + checksum = "66b7e2430c6dff6a955451e2cfc438f09cea1965a9d6f87f7e3b90decc014099" 799 + 800 + [[package]] 801 + name = "enumflags2" 802 + version = "0.7.12" 803 + source = "registry+https://github.com/rust-lang/crates.io-index" 804 + checksum = "1027f7680c853e056ebcec683615fb6fbbc07dbaa13b4d5d9442b146ded4ecef" 805 + dependencies = [ 806 + "enumflags2_derive", 807 + "serde", 808 + ] 809 + 810 + [[package]] 811 + name = "enumflags2_derive" 812 + version = "0.7.12" 813 + source = "registry+https://github.com/rust-lang/crates.io-index" 814 + checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827" 815 + dependencies = [ 816 + "proc-macro2", 817 + "quote", 818 + "syn 2.0.117", 819 + ] 820 + 821 + [[package]] 822 + name = "equivalent" 823 + version = "1.0.2" 824 + source = "registry+https://github.com/rust-lang/crates.io-index" 825 + checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" 826 + 827 + [[package]] 828 + name = "erased-serde" 829 + version = "0.4.9" 830 + source = "registry+https://github.com/rust-lang/crates.io-index" 831 + checksum = "89e8918065695684b2b0702da20382d5ae6065cf3327bc2d6436bd49a71ce9f3" 832 + dependencies = [ 833 + "serde", 834 + "serde_core", 835 + "typeid", 836 + ] 837 + 838 + [[package]] 839 + name = "errno" 840 + version = "0.3.14" 841 + source = "registry+https://github.com/rust-lang/crates.io-index" 842 + checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" 843 + dependencies = [ 844 + "libc", 845 + "windows-sys 0.61.2", 846 + ] 847 + 848 + [[package]] 849 + name = "event-listener" 850 + version = "5.4.1" 851 + source = "registry+https://github.com/rust-lang/crates.io-index" 852 + checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" 853 + dependencies = [ 854 + "concurrent-queue", 855 + "parking", 856 + "pin-project-lite", 857 + ] 858 + 859 + [[package]] 860 + name = "event-listener-strategy" 861 + version = "0.5.4" 862 + source = "registry+https://github.com/rust-lang/crates.io-index" 863 + checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" 864 + dependencies = [ 865 + "event-listener", 866 + "pin-project-lite", 867 + ] 868 + 869 + [[package]] 870 + name = "fastrand" 871 + version = "2.3.0" 872 + source = "registry+https://github.com/rust-lang/crates.io-index" 873 + checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" 874 + 875 + [[package]] 876 + name = "fdeflate" 877 + version = "0.3.7" 878 + source = "registry+https://github.com/rust-lang/crates.io-index" 879 + checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c" 880 + dependencies = [ 881 + "simd-adler32", 882 + ] 883 + 884 + [[package]] 885 + name = "ferrum" 886 + version = "0.1.0" 887 + dependencies = [ 888 + "serde", 889 + "serde_json", 890 + "tauri", 891 + "tauri-build", 892 + "tauri-plugin-opener", 893 + ] 894 + 895 + [[package]] 896 + name = "field-offset" 897 + version = "0.3.6" 898 + source = "registry+https://github.com/rust-lang/crates.io-index" 899 + checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" 900 + dependencies = [ 901 + "memoffset", 902 + "rustc_version", 903 + ] 904 + 905 + [[package]] 906 + name = "find-msvc-tools" 907 + version = "0.1.9" 908 + source = "registry+https://github.com/rust-lang/crates.io-index" 909 + checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" 910 + 911 + [[package]] 912 + name = "flate2" 913 + version = "1.1.9" 914 + source = "registry+https://github.com/rust-lang/crates.io-index" 915 + checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" 916 + dependencies = [ 917 + "crc32fast", 918 + "miniz_oxide", 919 + ] 920 + 921 + [[package]] 922 + name = "fnv" 923 + version = "1.0.7" 924 + source = "registry+https://github.com/rust-lang/crates.io-index" 925 + checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 926 + 927 + [[package]] 928 + name = "foldhash" 929 + version = "0.1.5" 930 + source = "registry+https://github.com/rust-lang/crates.io-index" 931 + checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" 932 + 933 + [[package]] 934 + name = "foreign-types" 935 + version = "0.5.0" 936 + source = "registry+https://github.com/rust-lang/crates.io-index" 937 + checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" 938 + dependencies = [ 939 + "foreign-types-macros", 940 + "foreign-types-shared", 941 + ] 942 + 943 + [[package]] 944 + name = "foreign-types-macros" 945 + version = "0.2.3" 946 + source = "registry+https://github.com/rust-lang/crates.io-index" 947 + checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" 948 + dependencies = [ 949 + "proc-macro2", 950 + "quote", 951 + "syn 2.0.117", 952 + ] 953 + 954 + [[package]] 955 + name = "foreign-types-shared" 956 + version = "0.3.1" 957 + source = "registry+https://github.com/rust-lang/crates.io-index" 958 + checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" 959 + 960 + [[package]] 961 + name = "form_urlencoded" 962 + version = "1.2.2" 963 + source = "registry+https://github.com/rust-lang/crates.io-index" 964 + checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" 965 + dependencies = [ 966 + "percent-encoding", 967 + ] 968 + 969 + [[package]] 970 + name = "futf" 971 + version = "0.1.5" 972 + source = "registry+https://github.com/rust-lang/crates.io-index" 973 + checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" 974 + dependencies = [ 975 + "mac", 976 + "new_debug_unreachable", 977 + ] 978 + 979 + [[package]] 980 + name = "futures-channel" 981 + version = "0.3.32" 982 + source = "registry+https://github.com/rust-lang/crates.io-index" 983 + checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d" 984 + dependencies = [ 985 + "futures-core", 986 + ] 987 + 988 + [[package]] 989 + name = "futures-core" 990 + version = "0.3.32" 991 + source = "registry+https://github.com/rust-lang/crates.io-index" 992 + checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" 993 + 994 + [[package]] 995 + name = "futures-executor" 996 + version = "0.3.32" 997 + source = "registry+https://github.com/rust-lang/crates.io-index" 998 + checksum = "baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d" 999 + dependencies = [ 1000 + "futures-core", 1001 + "futures-task", 1002 + "futures-util", 1003 + ] 1004 + 1005 + [[package]] 1006 + name = "futures-io" 1007 + version = "0.3.32" 1008 + source = "registry+https://github.com/rust-lang/crates.io-index" 1009 + checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" 1010 + 1011 + [[package]] 1012 + name = "futures-lite" 1013 + version = "2.6.1" 1014 + source = "registry+https://github.com/rust-lang/crates.io-index" 1015 + checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad" 1016 + dependencies = [ 1017 + "fastrand", 1018 + "futures-core", 1019 + "futures-io", 1020 + "parking", 1021 + "pin-project-lite", 1022 + ] 1023 + 1024 + [[package]] 1025 + name = "futures-macro" 1026 + version = "0.3.32" 1027 + source = "registry+https://github.com/rust-lang/crates.io-index" 1028 + checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" 1029 + dependencies = [ 1030 + "proc-macro2", 1031 + "quote", 1032 + "syn 2.0.117", 1033 + ] 1034 + 1035 + [[package]] 1036 + name = "futures-sink" 1037 + version = "0.3.32" 1038 + source = "registry+https://github.com/rust-lang/crates.io-index" 1039 + checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893" 1040 + 1041 + [[package]] 1042 + name = "futures-task" 1043 + version = "0.3.32" 1044 + source = "registry+https://github.com/rust-lang/crates.io-index" 1045 + checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" 1046 + 1047 + [[package]] 1048 + name = "futures-util" 1049 + version = "0.3.32" 1050 + source = "registry+https://github.com/rust-lang/crates.io-index" 1051 + checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" 1052 + dependencies = [ 1053 + "futures-core", 1054 + "futures-io", 1055 + "futures-macro", 1056 + "futures-sink", 1057 + "futures-task", 1058 + "memchr", 1059 + "pin-project-lite", 1060 + "slab", 1061 + ] 1062 + 1063 + [[package]] 1064 + name = "fxhash" 1065 + version = "0.2.1" 1066 + source = "registry+https://github.com/rust-lang/crates.io-index" 1067 + checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" 1068 + dependencies = [ 1069 + "byteorder", 1070 + ] 1071 + 1072 + [[package]] 1073 + name = "gdk" 1074 + version = "0.18.2" 1075 + source = "registry+https://github.com/rust-lang/crates.io-index" 1076 + checksum = "d9f245958c627ac99d8e529166f9823fb3b838d1d41fd2b297af3075093c2691" 1077 + dependencies = [ 1078 + "cairo-rs", 1079 + "gdk-pixbuf", 1080 + "gdk-sys", 1081 + "gio", 1082 + "glib", 1083 + "libc", 1084 + "pango", 1085 + ] 1086 + 1087 + [[package]] 1088 + name = "gdk-pixbuf" 1089 + version = "0.18.5" 1090 + source = "registry+https://github.com/rust-lang/crates.io-index" 1091 + checksum = "50e1f5f1b0bfb830d6ccc8066d18db35c487b1b2b1e8589b5dfe9f07e8defaec" 1092 + dependencies = [ 1093 + "gdk-pixbuf-sys", 1094 + "gio", 1095 + "glib", 1096 + "libc", 1097 + "once_cell", 1098 + ] 1099 + 1100 + [[package]] 1101 + name = "gdk-pixbuf-sys" 1102 + version = "0.18.0" 1103 + source = "registry+https://github.com/rust-lang/crates.io-index" 1104 + checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7" 1105 + dependencies = [ 1106 + "gio-sys", 1107 + "glib-sys", 1108 + "gobject-sys", 1109 + "libc", 1110 + "system-deps", 1111 + ] 1112 + 1113 + [[package]] 1114 + name = "gdk-sys" 1115 + version = "0.18.2" 1116 + source = "registry+https://github.com/rust-lang/crates.io-index" 1117 + checksum = "5c2d13f38594ac1e66619e188c6d5a1adb98d11b2fcf7894fc416ad76aa2f3f7" 1118 + dependencies = [ 1119 + "cairo-sys-rs", 1120 + "gdk-pixbuf-sys", 1121 + "gio-sys", 1122 + "glib-sys", 1123 + "gobject-sys", 1124 + "libc", 1125 + "pango-sys", 1126 + "pkg-config", 1127 + "system-deps", 1128 + ] 1129 + 1130 + [[package]] 1131 + name = "gdkwayland-sys" 1132 + version = "0.18.2" 1133 + source = "registry+https://github.com/rust-lang/crates.io-index" 1134 + checksum = "140071d506d223f7572b9f09b5e155afbd77428cd5cc7af8f2694c41d98dfe69" 1135 + dependencies = [ 1136 + "gdk-sys", 1137 + "glib-sys", 1138 + "gobject-sys", 1139 + "libc", 1140 + "pkg-config", 1141 + "system-deps", 1142 + ] 1143 + 1144 + [[package]] 1145 + name = "gdkx11" 1146 + version = "0.18.2" 1147 + source = "registry+https://github.com/rust-lang/crates.io-index" 1148 + checksum = "3caa00e14351bebbc8183b3c36690327eb77c49abc2268dd4bd36b856db3fbfe" 1149 + dependencies = [ 1150 + "gdk", 1151 + "gdkx11-sys", 1152 + "gio", 1153 + "glib", 1154 + "libc", 1155 + "x11", 1156 + ] 1157 + 1158 + [[package]] 1159 + name = "gdkx11-sys" 1160 + version = "0.18.2" 1161 + source = "registry+https://github.com/rust-lang/crates.io-index" 1162 + checksum = "6e2e7445fe01ac26f11601db260dd8608fe172514eb63b3b5e261ea6b0f4428d" 1163 + dependencies = [ 1164 + "gdk-sys", 1165 + "glib-sys", 1166 + "libc", 1167 + "system-deps", 1168 + "x11", 1169 + ] 1170 + 1171 + [[package]] 1172 + name = "generic-array" 1173 + version = "0.14.7" 1174 + source = "registry+https://github.com/rust-lang/crates.io-index" 1175 + checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" 1176 + dependencies = [ 1177 + "typenum", 1178 + "version_check", 1179 + ] 1180 + 1181 + [[package]] 1182 + name = "getrandom" 1183 + version = "0.1.16" 1184 + source = "registry+https://github.com/rust-lang/crates.io-index" 1185 + checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" 1186 + dependencies = [ 1187 + "cfg-if", 1188 + "libc", 1189 + "wasi 0.9.0+wasi-snapshot-preview1", 1190 + ] 1191 + 1192 + [[package]] 1193 + name = "getrandom" 1194 + version = "0.2.17" 1195 + source = "registry+https://github.com/rust-lang/crates.io-index" 1196 + checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" 1197 + dependencies = [ 1198 + "cfg-if", 1199 + "libc", 1200 + "wasi 0.11.1+wasi-snapshot-preview1", 1201 + ] 1202 + 1203 + [[package]] 1204 + name = "getrandom" 1205 + version = "0.3.4" 1206 + source = "registry+https://github.com/rust-lang/crates.io-index" 1207 + checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" 1208 + dependencies = [ 1209 + "cfg-if", 1210 + "libc", 1211 + "r-efi", 1212 + "wasip2", 1213 + ] 1214 + 1215 + [[package]] 1216 + name = "getrandom" 1217 + version = "0.4.1" 1218 + source = "registry+https://github.com/rust-lang/crates.io-index" 1219 + checksum = "139ef39800118c7683f2fd3c98c1b23c09ae076556b435f8e9064ae108aaeeec" 1220 + dependencies = [ 1221 + "cfg-if", 1222 + "libc", 1223 + "r-efi", 1224 + "wasip2", 1225 + "wasip3", 1226 + ] 1227 + 1228 + [[package]] 1229 + name = "gio" 1230 + version = "0.18.4" 1231 + source = "registry+https://github.com/rust-lang/crates.io-index" 1232 + checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73" 1233 + dependencies = [ 1234 + "futures-channel", 1235 + "futures-core", 1236 + "futures-io", 1237 + "futures-util", 1238 + "gio-sys", 1239 + "glib", 1240 + "libc", 1241 + "once_cell", 1242 + "pin-project-lite", 1243 + "smallvec", 1244 + "thiserror 1.0.69", 1245 + ] 1246 + 1247 + [[package]] 1248 + name = "gio-sys" 1249 + version = "0.18.1" 1250 + source = "registry+https://github.com/rust-lang/crates.io-index" 1251 + checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2" 1252 + dependencies = [ 1253 + "glib-sys", 1254 + "gobject-sys", 1255 + "libc", 1256 + "system-deps", 1257 + "winapi", 1258 + ] 1259 + 1260 + [[package]] 1261 + name = "glib" 1262 + version = "0.18.5" 1263 + source = "registry+https://github.com/rust-lang/crates.io-index" 1264 + checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5" 1265 + dependencies = [ 1266 + "bitflags 2.11.0", 1267 + "futures-channel", 1268 + "futures-core", 1269 + "futures-executor", 1270 + "futures-task", 1271 + "futures-util", 1272 + "gio-sys", 1273 + "glib-macros", 1274 + "glib-sys", 1275 + "gobject-sys", 1276 + "libc", 1277 + "memchr", 1278 + "once_cell", 1279 + "smallvec", 1280 + "thiserror 1.0.69", 1281 + ] 1282 + 1283 + [[package]] 1284 + name = "glib-macros" 1285 + version = "0.18.5" 1286 + source = "registry+https://github.com/rust-lang/crates.io-index" 1287 + checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc" 1288 + dependencies = [ 1289 + "heck 0.4.1", 1290 + "proc-macro-crate 2.0.2", 1291 + "proc-macro-error", 1292 + "proc-macro2", 1293 + "quote", 1294 + "syn 2.0.117", 1295 + ] 1296 + 1297 + [[package]] 1298 + name = "glib-sys" 1299 + version = "0.18.1" 1300 + source = "registry+https://github.com/rust-lang/crates.io-index" 1301 + checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898" 1302 + dependencies = [ 1303 + "libc", 1304 + "system-deps", 1305 + ] 1306 + 1307 + [[package]] 1308 + name = "glob" 1309 + version = "0.3.3" 1310 + source = "registry+https://github.com/rust-lang/crates.io-index" 1311 + checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" 1312 + 1313 + [[package]] 1314 + name = "gobject-sys" 1315 + version = "0.18.0" 1316 + source = "registry+https://github.com/rust-lang/crates.io-index" 1317 + checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44" 1318 + dependencies = [ 1319 + "glib-sys", 1320 + "libc", 1321 + "system-deps", 1322 + ] 1323 + 1324 + [[package]] 1325 + name = "gtk" 1326 + version = "0.18.2" 1327 + source = "registry+https://github.com/rust-lang/crates.io-index" 1328 + checksum = "fd56fb197bfc42bd5d2751f4f017d44ff59fbb58140c6b49f9b3b2bdab08506a" 1329 + dependencies = [ 1330 + "atk", 1331 + "cairo-rs", 1332 + "field-offset", 1333 + "futures-channel", 1334 + "gdk", 1335 + "gdk-pixbuf", 1336 + "gio", 1337 + "glib", 1338 + "gtk-sys", 1339 + "gtk3-macros", 1340 + "libc", 1341 + "pango", 1342 + "pkg-config", 1343 + ] 1344 + 1345 + [[package]] 1346 + name = "gtk-sys" 1347 + version = "0.18.2" 1348 + source = "registry+https://github.com/rust-lang/crates.io-index" 1349 + checksum = "8f29a1c21c59553eb7dd40e918be54dccd60c52b049b75119d5d96ce6b624414" 1350 + dependencies = [ 1351 + "atk-sys", 1352 + "cairo-sys-rs", 1353 + "gdk-pixbuf-sys", 1354 + "gdk-sys", 1355 + "gio-sys", 1356 + "glib-sys", 1357 + "gobject-sys", 1358 + "libc", 1359 + "pango-sys", 1360 + "system-deps", 1361 + ] 1362 + 1363 + [[package]] 1364 + name = "gtk3-macros" 1365 + version = "0.18.2" 1366 + source = "registry+https://github.com/rust-lang/crates.io-index" 1367 + checksum = "52ff3c5b21f14f0736fed6dcfc0bfb4225ebf5725f3c0209edeec181e4d73e9d" 1368 + dependencies = [ 1369 + "proc-macro-crate 1.3.1", 1370 + "proc-macro-error", 1371 + "proc-macro2", 1372 + "quote", 1373 + "syn 2.0.117", 1374 + ] 1375 + 1376 + [[package]] 1377 + name = "hashbrown" 1378 + version = "0.12.3" 1379 + source = "registry+https://github.com/rust-lang/crates.io-index" 1380 + checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" 1381 + 1382 + [[package]] 1383 + name = "hashbrown" 1384 + version = "0.15.5" 1385 + source = "registry+https://github.com/rust-lang/crates.io-index" 1386 + checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" 1387 + dependencies = [ 1388 + "foldhash", 1389 + ] 1390 + 1391 + [[package]] 1392 + name = "hashbrown" 1393 + version = "0.16.1" 1394 + source = "registry+https://github.com/rust-lang/crates.io-index" 1395 + checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" 1396 + 1397 + [[package]] 1398 + name = "heck" 1399 + version = "0.4.1" 1400 + source = "registry+https://github.com/rust-lang/crates.io-index" 1401 + checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" 1402 + 1403 + [[package]] 1404 + name = "heck" 1405 + version = "0.5.0" 1406 + source = "registry+https://github.com/rust-lang/crates.io-index" 1407 + checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" 1408 + 1409 + [[package]] 1410 + name = "hermit-abi" 1411 + version = "0.5.2" 1412 + source = "registry+https://github.com/rust-lang/crates.io-index" 1413 + checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" 1414 + 1415 + [[package]] 1416 + name = "hex" 1417 + version = "0.4.3" 1418 + source = "registry+https://github.com/rust-lang/crates.io-index" 1419 + checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" 1420 + 1421 + [[package]] 1422 + name = "html5ever" 1423 + version = "0.29.1" 1424 + source = "registry+https://github.com/rust-lang/crates.io-index" 1425 + checksum = "3b7410cae13cbc75623c98ac4cbfd1f0bedddf3227afc24f370cf0f50a44a11c" 1426 + dependencies = [ 1427 + "log", 1428 + "mac", 1429 + "markup5ever", 1430 + "match_token", 1431 + ] 1432 + 1433 + [[package]] 1434 + name = "http" 1435 + version = "1.4.0" 1436 + source = "registry+https://github.com/rust-lang/crates.io-index" 1437 + checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" 1438 + dependencies = [ 1439 + "bytes", 1440 + "itoa", 1441 + ] 1442 + 1443 + [[package]] 1444 + name = "http-body" 1445 + version = "1.0.1" 1446 + source = "registry+https://github.com/rust-lang/crates.io-index" 1447 + checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" 1448 + dependencies = [ 1449 + "bytes", 1450 + "http", 1451 + ] 1452 + 1453 + [[package]] 1454 + name = "http-body-util" 1455 + version = "0.1.3" 1456 + source = "registry+https://github.com/rust-lang/crates.io-index" 1457 + checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" 1458 + dependencies = [ 1459 + "bytes", 1460 + "futures-core", 1461 + "http", 1462 + "http-body", 1463 + "pin-project-lite", 1464 + ] 1465 + 1466 + [[package]] 1467 + name = "httparse" 1468 + version = "1.10.1" 1469 + source = "registry+https://github.com/rust-lang/crates.io-index" 1470 + checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" 1471 + 1472 + [[package]] 1473 + name = "hyper" 1474 + version = "1.8.1" 1475 + source = "registry+https://github.com/rust-lang/crates.io-index" 1476 + checksum = "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11" 1477 + dependencies = [ 1478 + "atomic-waker", 1479 + "bytes", 1480 + "futures-channel", 1481 + "futures-core", 1482 + "http", 1483 + "http-body", 1484 + "httparse", 1485 + "itoa", 1486 + "pin-project-lite", 1487 + "pin-utils", 1488 + "smallvec", 1489 + "tokio", 1490 + "want", 1491 + ] 1492 + 1493 + [[package]] 1494 + name = "hyper-util" 1495 + version = "0.1.20" 1496 + source = "registry+https://github.com/rust-lang/crates.io-index" 1497 + checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" 1498 + dependencies = [ 1499 + "base64 0.22.1", 1500 + "bytes", 1501 + "futures-channel", 1502 + "futures-util", 1503 + "http", 1504 + "http-body", 1505 + "hyper", 1506 + "ipnet", 1507 + "libc", 1508 + "percent-encoding", 1509 + "pin-project-lite", 1510 + "socket2", 1511 + "tokio", 1512 + "tower-service", 1513 + "tracing", 1514 + ] 1515 + 1516 + [[package]] 1517 + name = "iana-time-zone" 1518 + version = "0.1.65" 1519 + source = "registry+https://github.com/rust-lang/crates.io-index" 1520 + checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" 1521 + dependencies = [ 1522 + "android_system_properties", 1523 + "core-foundation-sys", 1524 + "iana-time-zone-haiku", 1525 + "js-sys", 1526 + "log", 1527 + "wasm-bindgen", 1528 + "windows-core 0.62.2", 1529 + ] 1530 + 1531 + [[package]] 1532 + name = "iana-time-zone-haiku" 1533 + version = "0.1.2" 1534 + source = "registry+https://github.com/rust-lang/crates.io-index" 1535 + checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" 1536 + dependencies = [ 1537 + "cc", 1538 + ] 1539 + 1540 + [[package]] 1541 + name = "ico" 1542 + version = "0.5.0" 1543 + source = "registry+https://github.com/rust-lang/crates.io-index" 1544 + checksum = "3e795dff5605e0f04bff85ca41b51a96b83e80b281e96231bcaaf1ac35103371" 1545 + dependencies = [ 1546 + "byteorder", 1547 + "png", 1548 + ] 1549 + 1550 + [[package]] 1551 + name = "icu_collections" 1552 + version = "2.1.1" 1553 + source = "registry+https://github.com/rust-lang/crates.io-index" 1554 + checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" 1555 + dependencies = [ 1556 + "displaydoc", 1557 + "potential_utf", 1558 + "yoke", 1559 + "zerofrom", 1560 + "zerovec", 1561 + ] 1562 + 1563 + [[package]] 1564 + name = "icu_locale_core" 1565 + version = "2.1.1" 1566 + source = "registry+https://github.com/rust-lang/crates.io-index" 1567 + checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" 1568 + dependencies = [ 1569 + "displaydoc", 1570 + "litemap", 1571 + "tinystr", 1572 + "writeable", 1573 + "zerovec", 1574 + ] 1575 + 1576 + [[package]] 1577 + name = "icu_normalizer" 1578 + version = "2.1.1" 1579 + source = "registry+https://github.com/rust-lang/crates.io-index" 1580 + checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" 1581 + dependencies = [ 1582 + "icu_collections", 1583 + "icu_normalizer_data", 1584 + "icu_properties", 1585 + "icu_provider", 1586 + "smallvec", 1587 + "zerovec", 1588 + ] 1589 + 1590 + [[package]] 1591 + name = "icu_normalizer_data" 1592 + version = "2.1.1" 1593 + source = "registry+https://github.com/rust-lang/crates.io-index" 1594 + checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" 1595 + 1596 + [[package]] 1597 + name = "icu_properties" 1598 + version = "2.1.2" 1599 + source = "registry+https://github.com/rust-lang/crates.io-index" 1600 + checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec" 1601 + dependencies = [ 1602 + "icu_collections", 1603 + "icu_locale_core", 1604 + "icu_properties_data", 1605 + "icu_provider", 1606 + "zerotrie", 1607 + "zerovec", 1608 + ] 1609 + 1610 + [[package]] 1611 + name = "icu_properties_data" 1612 + version = "2.1.2" 1613 + source = "registry+https://github.com/rust-lang/crates.io-index" 1614 + checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af" 1615 + 1616 + [[package]] 1617 + name = "icu_provider" 1618 + version = "2.1.1" 1619 + source = "registry+https://github.com/rust-lang/crates.io-index" 1620 + checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" 1621 + dependencies = [ 1622 + "displaydoc", 1623 + "icu_locale_core", 1624 + "writeable", 1625 + "yoke", 1626 + "zerofrom", 1627 + "zerotrie", 1628 + "zerovec", 1629 + ] 1630 + 1631 + [[package]] 1632 + name = "id-arena" 1633 + version = "2.3.0" 1634 + source = "registry+https://github.com/rust-lang/crates.io-index" 1635 + checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" 1636 + 1637 + [[package]] 1638 + name = "ident_case" 1639 + version = "1.0.1" 1640 + source = "registry+https://github.com/rust-lang/crates.io-index" 1641 + checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" 1642 + 1643 + [[package]] 1644 + name = "idna" 1645 + version = "1.1.0" 1646 + source = "registry+https://github.com/rust-lang/crates.io-index" 1647 + checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" 1648 + dependencies = [ 1649 + "idna_adapter", 1650 + "smallvec", 1651 + "utf8_iter", 1652 + ] 1653 + 1654 + [[package]] 1655 + name = "idna_adapter" 1656 + version = "1.2.1" 1657 + source = "registry+https://github.com/rust-lang/crates.io-index" 1658 + checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" 1659 + dependencies = [ 1660 + "icu_normalizer", 1661 + "icu_properties", 1662 + ] 1663 + 1664 + [[package]] 1665 + name = "indexmap" 1666 + version = "1.9.3" 1667 + source = "registry+https://github.com/rust-lang/crates.io-index" 1668 + checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" 1669 + dependencies = [ 1670 + "autocfg", 1671 + "hashbrown 0.12.3", 1672 + "serde", 1673 + ] 1674 + 1675 + [[package]] 1676 + name = "indexmap" 1677 + version = "2.13.0" 1678 + source = "registry+https://github.com/rust-lang/crates.io-index" 1679 + checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" 1680 + dependencies = [ 1681 + "equivalent", 1682 + "hashbrown 0.16.1", 1683 + "serde", 1684 + "serde_core", 1685 + ] 1686 + 1687 + [[package]] 1688 + name = "infer" 1689 + version = "0.19.0" 1690 + source = "registry+https://github.com/rust-lang/crates.io-index" 1691 + checksum = "a588916bfdfd92e71cacef98a63d9b1f0d74d6599980d11894290e7ddefffcf7" 1692 + dependencies = [ 1693 + "cfb", 1694 + ] 1695 + 1696 + [[package]] 1697 + name = "ipnet" 1698 + version = "2.11.0" 1699 + source = "registry+https://github.com/rust-lang/crates.io-index" 1700 + checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" 1701 + 1702 + [[package]] 1703 + name = "iri-string" 1704 + version = "0.7.10" 1705 + source = "registry+https://github.com/rust-lang/crates.io-index" 1706 + checksum = "c91338f0783edbd6195decb37bae672fd3b165faffb89bf7b9e6942f8b1a731a" 1707 + dependencies = [ 1708 + "memchr", 1709 + "serde", 1710 + ] 1711 + 1712 + [[package]] 1713 + name = "is-docker" 1714 + version = "0.2.0" 1715 + source = "registry+https://github.com/rust-lang/crates.io-index" 1716 + checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3" 1717 + dependencies = [ 1718 + "once_cell", 1719 + ] 1720 + 1721 + [[package]] 1722 + name = "is-wsl" 1723 + version = "0.4.0" 1724 + source = "registry+https://github.com/rust-lang/crates.io-index" 1725 + checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5" 1726 + dependencies = [ 1727 + "is-docker", 1728 + "once_cell", 1729 + ] 1730 + 1731 + [[package]] 1732 + name = "itoa" 1733 + version = "1.0.17" 1734 + source = "registry+https://github.com/rust-lang/crates.io-index" 1735 + checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" 1736 + 1737 + [[package]] 1738 + name = "javascriptcore-rs" 1739 + version = "1.1.2" 1740 + source = "registry+https://github.com/rust-lang/crates.io-index" 1741 + checksum = "ca5671e9ffce8ffba57afc24070e906da7fc4b1ba66f2cabebf61bf2ea257fcc" 1742 + dependencies = [ 1743 + "bitflags 1.3.2", 1744 + "glib", 1745 + "javascriptcore-rs-sys", 1746 + ] 1747 + 1748 + [[package]] 1749 + name = "javascriptcore-rs-sys" 1750 + version = "1.1.1" 1751 + source = "registry+https://github.com/rust-lang/crates.io-index" 1752 + checksum = "af1be78d14ffa4b75b66df31840478fef72b51f8c2465d4ca7c194da9f7a5124" 1753 + dependencies = [ 1754 + "glib-sys", 1755 + "gobject-sys", 1756 + "libc", 1757 + "system-deps", 1758 + ] 1759 + 1760 + [[package]] 1761 + name = "jni" 1762 + version = "0.21.1" 1763 + source = "registry+https://github.com/rust-lang/crates.io-index" 1764 + checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" 1765 + dependencies = [ 1766 + "cesu8", 1767 + "cfg-if", 1768 + "combine", 1769 + "jni-sys", 1770 + "log", 1771 + "thiserror 1.0.69", 1772 + "walkdir", 1773 + "windows-sys 0.45.0", 1774 + ] 1775 + 1776 + [[package]] 1777 + name = "jni-sys" 1778 + version = "0.3.0" 1779 + source = "registry+https://github.com/rust-lang/crates.io-index" 1780 + checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" 1781 + 1782 + [[package]] 1783 + name = "js-sys" 1784 + version = "0.3.91" 1785 + source = "registry+https://github.com/rust-lang/crates.io-index" 1786 + checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c" 1787 + dependencies = [ 1788 + "once_cell", 1789 + "wasm-bindgen", 1790 + ] 1791 + 1792 + [[package]] 1793 + name = "json-patch" 1794 + version = "3.0.1" 1795 + source = "registry+https://github.com/rust-lang/crates.io-index" 1796 + checksum = "863726d7afb6bc2590eeff7135d923545e5e964f004c2ccf8716c25e70a86f08" 1797 + dependencies = [ 1798 + "jsonptr", 1799 + "serde", 1800 + "serde_json", 1801 + "thiserror 1.0.69", 1802 + ] 1803 + 1804 + [[package]] 1805 + name = "jsonptr" 1806 + version = "0.6.3" 1807 + source = "registry+https://github.com/rust-lang/crates.io-index" 1808 + checksum = "5dea2b27dd239b2556ed7a25ba842fe47fd602e7fc7433c2a8d6106d4d9edd70" 1809 + dependencies = [ 1810 + "serde", 1811 + "serde_json", 1812 + ] 1813 + 1814 + [[package]] 1815 + name = "keyboard-types" 1816 + version = "0.7.0" 1817 + source = "registry+https://github.com/rust-lang/crates.io-index" 1818 + checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a" 1819 + dependencies = [ 1820 + "bitflags 2.11.0", 1821 + "serde", 1822 + "unicode-segmentation", 1823 + ] 1824 + 1825 + [[package]] 1826 + name = "kuchikiki" 1827 + version = "0.8.8-speedreader" 1828 + source = "registry+https://github.com/rust-lang/crates.io-index" 1829 + checksum = "02cb977175687f33fa4afa0c95c112b987ea1443e5a51c8f8ff27dc618270cc2" 1830 + dependencies = [ 1831 + "cssparser", 1832 + "html5ever", 1833 + "indexmap 2.13.0", 1834 + "selectors", 1835 + ] 1836 + 1837 + [[package]] 1838 + name = "lazy_static" 1839 + version = "1.5.0" 1840 + source = "registry+https://github.com/rust-lang/crates.io-index" 1841 + checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" 1842 + 1843 + [[package]] 1844 + name = "leb128fmt" 1845 + version = "0.1.0" 1846 + source = "registry+https://github.com/rust-lang/crates.io-index" 1847 + checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" 1848 + 1849 + [[package]] 1850 + name = "libappindicator" 1851 + version = "0.9.0" 1852 + source = "registry+https://github.com/rust-lang/crates.io-index" 1853 + checksum = "03589b9607c868cc7ae54c0b2a22c8dc03dd41692d48f2d7df73615c6a95dc0a" 1854 + dependencies = [ 1855 + "glib", 1856 + "gtk", 1857 + "gtk-sys", 1858 + "libappindicator-sys", 1859 + "log", 1860 + ] 1861 + 1862 + [[package]] 1863 + name = "libappindicator-sys" 1864 + version = "0.9.0" 1865 + source = "registry+https://github.com/rust-lang/crates.io-index" 1866 + checksum = "6e9ec52138abedcc58dc17a7c6c0c00a2bdb4f3427c7f63fa97fd0d859155caf" 1867 + dependencies = [ 1868 + "gtk-sys", 1869 + "libloading", 1870 + "once_cell", 1871 + ] 1872 + 1873 + [[package]] 1874 + name = "libc" 1875 + version = "0.2.182" 1876 + source = "registry+https://github.com/rust-lang/crates.io-index" 1877 + checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112" 1878 + 1879 + [[package]] 1880 + name = "libloading" 1881 + version = "0.7.4" 1882 + source = "registry+https://github.com/rust-lang/crates.io-index" 1883 + checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" 1884 + dependencies = [ 1885 + "cfg-if", 1886 + "winapi", 1887 + ] 1888 + 1889 + [[package]] 1890 + name = "libredox" 1891 + version = "0.1.14" 1892 + source = "registry+https://github.com/rust-lang/crates.io-index" 1893 + checksum = "1744e39d1d6a9948f4f388969627434e31128196de472883b39f148769bfe30a" 1894 + dependencies = [ 1895 + "libc", 1896 + ] 1897 + 1898 + [[package]] 1899 + name = "linux-raw-sys" 1900 + version = "0.12.1" 1901 + source = "registry+https://github.com/rust-lang/crates.io-index" 1902 + checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" 1903 + 1904 + [[package]] 1905 + name = "litemap" 1906 + version = "0.8.1" 1907 + source = "registry+https://github.com/rust-lang/crates.io-index" 1908 + checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" 1909 + 1910 + [[package]] 1911 + name = "lock_api" 1912 + version = "0.4.14" 1913 + source = "registry+https://github.com/rust-lang/crates.io-index" 1914 + checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" 1915 + dependencies = [ 1916 + "scopeguard", 1917 + ] 1918 + 1919 + [[package]] 1920 + name = "log" 1921 + version = "0.4.29" 1922 + source = "registry+https://github.com/rust-lang/crates.io-index" 1923 + checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" 1924 + 1925 + [[package]] 1926 + name = "mac" 1927 + version = "0.1.1" 1928 + source = "registry+https://github.com/rust-lang/crates.io-index" 1929 + checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" 1930 + 1931 + [[package]] 1932 + name = "markup5ever" 1933 + version = "0.14.1" 1934 + source = "registry+https://github.com/rust-lang/crates.io-index" 1935 + checksum = "c7a7213d12e1864c0f002f52c2923d4556935a43dec5e71355c2760e0f6e7a18" 1936 + dependencies = [ 1937 + "log", 1938 + "phf 0.11.3", 1939 + "phf_codegen 0.11.3", 1940 + "string_cache", 1941 + "string_cache_codegen", 1942 + "tendril", 1943 + ] 1944 + 1945 + [[package]] 1946 + name = "match_token" 1947 + version = "0.1.0" 1948 + source = "registry+https://github.com/rust-lang/crates.io-index" 1949 + checksum = "88a9689d8d44bf9964484516275f5cd4c9b59457a6940c1d5d0ecbb94510a36b" 1950 + dependencies = [ 1951 + "proc-macro2", 1952 + "quote", 1953 + "syn 2.0.117", 1954 + ] 1955 + 1956 + [[package]] 1957 + name = "matches" 1958 + version = "0.1.10" 1959 + source = "registry+https://github.com/rust-lang/crates.io-index" 1960 + checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" 1961 + 1962 + [[package]] 1963 + name = "memchr" 1964 + version = "2.8.0" 1965 + source = "registry+https://github.com/rust-lang/crates.io-index" 1966 + checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" 1967 + 1968 + [[package]] 1969 + name = "memoffset" 1970 + version = "0.9.1" 1971 + source = "registry+https://github.com/rust-lang/crates.io-index" 1972 + checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" 1973 + dependencies = [ 1974 + "autocfg", 1975 + ] 1976 + 1977 + [[package]] 1978 + name = "mime" 1979 + version = "0.3.17" 1980 + source = "registry+https://github.com/rust-lang/crates.io-index" 1981 + checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 1982 + 1983 + [[package]] 1984 + name = "miniz_oxide" 1985 + version = "0.8.9" 1986 + source = "registry+https://github.com/rust-lang/crates.io-index" 1987 + checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" 1988 + dependencies = [ 1989 + "adler2", 1990 + "simd-adler32", 1991 + ] 1992 + 1993 + [[package]] 1994 + name = "mio" 1995 + version = "1.1.1" 1996 + source = "registry+https://github.com/rust-lang/crates.io-index" 1997 + checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" 1998 + dependencies = [ 1999 + "libc", 2000 + "wasi 0.11.1+wasi-snapshot-preview1", 2001 + "windows-sys 0.61.2", 2002 + ] 2003 + 2004 + [[package]] 2005 + name = "muda" 2006 + version = "0.17.1" 2007 + source = "registry+https://github.com/rust-lang/crates.io-index" 2008 + checksum = "01c1738382f66ed56b3b9c8119e794a2e23148ac8ea214eda86622d4cb9d415a" 2009 + dependencies = [ 2010 + "crossbeam-channel", 2011 + "dpi", 2012 + "gtk", 2013 + "keyboard-types", 2014 + "objc2", 2015 + "objc2-app-kit", 2016 + "objc2-core-foundation", 2017 + "objc2-foundation", 2018 + "once_cell", 2019 + "png", 2020 + "serde", 2021 + "thiserror 2.0.18", 2022 + "windows-sys 0.60.2", 2023 + ] 2024 + 2025 + [[package]] 2026 + name = "ndk" 2027 + version = "0.9.0" 2028 + source = "registry+https://github.com/rust-lang/crates.io-index" 2029 + checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" 2030 + dependencies = [ 2031 + "bitflags 2.11.0", 2032 + "jni-sys", 2033 + "log", 2034 + "ndk-sys", 2035 + "num_enum", 2036 + "raw-window-handle", 2037 + "thiserror 1.0.69", 2038 + ] 2039 + 2040 + [[package]] 2041 + name = "ndk-context" 2042 + version = "0.1.1" 2043 + source = "registry+https://github.com/rust-lang/crates.io-index" 2044 + checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" 2045 + 2046 + [[package]] 2047 + name = "ndk-sys" 2048 + version = "0.6.0+11769913" 2049 + source = "registry+https://github.com/rust-lang/crates.io-index" 2050 + checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" 2051 + dependencies = [ 2052 + "jni-sys", 2053 + ] 2054 + 2055 + [[package]] 2056 + name = "new_debug_unreachable" 2057 + version = "1.0.6" 2058 + source = "registry+https://github.com/rust-lang/crates.io-index" 2059 + checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" 2060 + 2061 + [[package]] 2062 + name = "nodrop" 2063 + version = "0.1.14" 2064 + source = "registry+https://github.com/rust-lang/crates.io-index" 2065 + checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" 2066 + 2067 + [[package]] 2068 + name = "num-conv" 2069 + version = "0.2.0" 2070 + source = "registry+https://github.com/rust-lang/crates.io-index" 2071 + checksum = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050" 2072 + 2073 + [[package]] 2074 + name = "num-traits" 2075 + version = "0.2.19" 2076 + source = "registry+https://github.com/rust-lang/crates.io-index" 2077 + checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" 2078 + dependencies = [ 2079 + "autocfg", 2080 + ] 2081 + 2082 + [[package]] 2083 + name = "num_enum" 2084 + version = "0.7.5" 2085 + source = "registry+https://github.com/rust-lang/crates.io-index" 2086 + checksum = "b1207a7e20ad57b847bbddc6776b968420d38292bbfe2089accff5e19e82454c" 2087 + dependencies = [ 2088 + "num_enum_derive", 2089 + "rustversion", 2090 + ] 2091 + 2092 + [[package]] 2093 + name = "num_enum_derive" 2094 + version = "0.7.5" 2095 + source = "registry+https://github.com/rust-lang/crates.io-index" 2096 + checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7" 2097 + dependencies = [ 2098 + "proc-macro-crate 3.4.0", 2099 + "proc-macro2", 2100 + "quote", 2101 + "syn 2.0.117", 2102 + ] 2103 + 2104 + [[package]] 2105 + name = "objc2" 2106 + version = "0.6.4" 2107 + source = "registry+https://github.com/rust-lang/crates.io-index" 2108 + checksum = "3a12a8ed07aefc768292f076dc3ac8c48f3781c8f2d5851dd3d98950e8c5a89f" 2109 + dependencies = [ 2110 + "objc2-encode", 2111 + "objc2-exception-helper", 2112 + ] 2113 + 2114 + [[package]] 2115 + name = "objc2-app-kit" 2116 + version = "0.3.2" 2117 + source = "registry+https://github.com/rust-lang/crates.io-index" 2118 + checksum = "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c" 2119 + dependencies = [ 2120 + "bitflags 2.11.0", 2121 + "block2", 2122 + "libc", 2123 + "objc2", 2124 + "objc2-cloud-kit", 2125 + "objc2-core-data", 2126 + "objc2-core-foundation", 2127 + "objc2-core-graphics", 2128 + "objc2-core-image", 2129 + "objc2-core-text", 2130 + "objc2-core-video", 2131 + "objc2-foundation", 2132 + "objc2-quartz-core", 2133 + ] 2134 + 2135 + [[package]] 2136 + name = "objc2-cloud-kit" 2137 + version = "0.3.2" 2138 + source = "registry+https://github.com/rust-lang/crates.io-index" 2139 + checksum = "73ad74d880bb43877038da939b7427bba67e9dd42004a18b809ba7d87cee241c" 2140 + dependencies = [ 2141 + "bitflags 2.11.0", 2142 + "objc2", 2143 + "objc2-foundation", 2144 + ] 2145 + 2146 + [[package]] 2147 + name = "objc2-core-data" 2148 + version = "0.3.2" 2149 + source = "registry+https://github.com/rust-lang/crates.io-index" 2150 + checksum = "0b402a653efbb5e82ce4df10683b6b28027616a2715e90009947d50b8dd298fa" 2151 + dependencies = [ 2152 + "bitflags 2.11.0", 2153 + "objc2", 2154 + "objc2-foundation", 2155 + ] 2156 + 2157 + [[package]] 2158 + name = "objc2-core-foundation" 2159 + version = "0.3.2" 2160 + source = "registry+https://github.com/rust-lang/crates.io-index" 2161 + checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" 2162 + dependencies = [ 2163 + "bitflags 2.11.0", 2164 + "dispatch2", 2165 + "objc2", 2166 + ] 2167 + 2168 + [[package]] 2169 + name = "objc2-core-graphics" 2170 + version = "0.3.2" 2171 + source = "registry+https://github.com/rust-lang/crates.io-index" 2172 + checksum = "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807" 2173 + dependencies = [ 2174 + "bitflags 2.11.0", 2175 + "dispatch2", 2176 + "objc2", 2177 + "objc2-core-foundation", 2178 + "objc2-io-surface", 2179 + ] 2180 + 2181 + [[package]] 2182 + name = "objc2-core-image" 2183 + version = "0.3.2" 2184 + source = "registry+https://github.com/rust-lang/crates.io-index" 2185 + checksum = "e5d563b38d2b97209f8e861173de434bd0214cf020e3423a52624cd1d989f006" 2186 + dependencies = [ 2187 + "objc2", 2188 + "objc2-foundation", 2189 + ] 2190 + 2191 + [[package]] 2192 + name = "objc2-core-text" 2193 + version = "0.3.2" 2194 + source = "registry+https://github.com/rust-lang/crates.io-index" 2195 + checksum = "0cde0dfb48d25d2b4862161a4d5fcc0e3c24367869ad306b0c9ec0073bfed92d" 2196 + dependencies = [ 2197 + "bitflags 2.11.0", 2198 + "objc2", 2199 + "objc2-core-foundation", 2200 + "objc2-core-graphics", 2201 + ] 2202 + 2203 + [[package]] 2204 + name = "objc2-core-video" 2205 + version = "0.3.2" 2206 + source = "registry+https://github.com/rust-lang/crates.io-index" 2207 + checksum = "d425caf1df73233f29fd8a5c3e5edbc30d2d4307870f802d18f00d83dc5141a6" 2208 + dependencies = [ 2209 + "bitflags 2.11.0", 2210 + "objc2", 2211 + "objc2-core-foundation", 2212 + "objc2-core-graphics", 2213 + "objc2-io-surface", 2214 + ] 2215 + 2216 + [[package]] 2217 + name = "objc2-encode" 2218 + version = "4.1.0" 2219 + source = "registry+https://github.com/rust-lang/crates.io-index" 2220 + checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" 2221 + 2222 + [[package]] 2223 + name = "objc2-exception-helper" 2224 + version = "0.1.1" 2225 + source = "registry+https://github.com/rust-lang/crates.io-index" 2226 + checksum = "c7a1c5fbb72d7735b076bb47b578523aedc40f3c439bea6dfd595c089d79d98a" 2227 + dependencies = [ 2228 + "cc", 2229 + ] 2230 + 2231 + [[package]] 2232 + name = "objc2-foundation" 2233 + version = "0.3.2" 2234 + source = "registry+https://github.com/rust-lang/crates.io-index" 2235 + checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" 2236 + dependencies = [ 2237 + "bitflags 2.11.0", 2238 + "block2", 2239 + "libc", 2240 + "objc2", 2241 + "objc2-core-foundation", 2242 + ] 2243 + 2244 + [[package]] 2245 + name = "objc2-io-surface" 2246 + version = "0.3.2" 2247 + source = "registry+https://github.com/rust-lang/crates.io-index" 2248 + checksum = "180788110936d59bab6bd83b6060ffdfffb3b922ba1396b312ae795e1de9d81d" 2249 + dependencies = [ 2250 + "bitflags 2.11.0", 2251 + "objc2", 2252 + "objc2-core-foundation", 2253 + ] 2254 + 2255 + [[package]] 2256 + name = "objc2-javascript-core" 2257 + version = "0.3.2" 2258 + source = "registry+https://github.com/rust-lang/crates.io-index" 2259 + checksum = "2a1e6550c4caed348956ce3370c9ffeca70bb1dbed4fa96112e7c6170e074586" 2260 + dependencies = [ 2261 + "objc2", 2262 + "objc2-core-foundation", 2263 + ] 2264 + 2265 + [[package]] 2266 + name = "objc2-quartz-core" 2267 + version = "0.3.2" 2268 + source = "registry+https://github.com/rust-lang/crates.io-index" 2269 + checksum = "96c1358452b371bf9f104e21ec536d37a650eb10f7ee379fff67d2e08d537f1f" 2270 + dependencies = [ 2271 + "bitflags 2.11.0", 2272 + "objc2", 2273 + "objc2-core-foundation", 2274 + "objc2-foundation", 2275 + ] 2276 + 2277 + [[package]] 2278 + name = "objc2-security" 2279 + version = "0.3.2" 2280 + source = "registry+https://github.com/rust-lang/crates.io-index" 2281 + checksum = "709fe137109bd1e8b5a99390f77a7d8b2961dafc1a1c5db8f2e60329ad6d895a" 2282 + dependencies = [ 2283 + "bitflags 2.11.0", 2284 + "objc2", 2285 + "objc2-core-foundation", 2286 + ] 2287 + 2288 + [[package]] 2289 + name = "objc2-ui-kit" 2290 + version = "0.3.2" 2291 + source = "registry+https://github.com/rust-lang/crates.io-index" 2292 + checksum = "d87d638e33c06f577498cbcc50491496a3ed4246998a7fbba7ccb98b1e7eab22" 2293 + dependencies = [ 2294 + "bitflags 2.11.0", 2295 + "objc2", 2296 + "objc2-core-foundation", 2297 + "objc2-foundation", 2298 + ] 2299 + 2300 + [[package]] 2301 + name = "objc2-web-kit" 2302 + version = "0.3.2" 2303 + source = "registry+https://github.com/rust-lang/crates.io-index" 2304 + checksum = "b2e5aaab980c433cf470df9d7af96a7b46a9d892d521a2cbbb2f8a4c16751e7f" 2305 + dependencies = [ 2306 + "bitflags 2.11.0", 2307 + "block2", 2308 + "objc2", 2309 + "objc2-app-kit", 2310 + "objc2-core-foundation", 2311 + "objc2-foundation", 2312 + "objc2-javascript-core", 2313 + "objc2-security", 2314 + ] 2315 + 2316 + [[package]] 2317 + name = "once_cell" 2318 + version = "1.21.3" 2319 + source = "registry+https://github.com/rust-lang/crates.io-index" 2320 + checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" 2321 + 2322 + [[package]] 2323 + name = "open" 2324 + version = "5.3.3" 2325 + source = "registry+https://github.com/rust-lang/crates.io-index" 2326 + checksum = "43bb73a7fa3799b198970490a51174027ba0d4ec504b03cd08caf513d40024bc" 2327 + dependencies = [ 2328 + "dunce", 2329 + "is-wsl", 2330 + "libc", 2331 + "pathdiff", 2332 + ] 2333 + 2334 + [[package]] 2335 + name = "option-ext" 2336 + version = "0.2.0" 2337 + source = "registry+https://github.com/rust-lang/crates.io-index" 2338 + checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" 2339 + 2340 + [[package]] 2341 + name = "ordered-stream" 2342 + version = "0.2.0" 2343 + source = "registry+https://github.com/rust-lang/crates.io-index" 2344 + checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50" 2345 + dependencies = [ 2346 + "futures-core", 2347 + "pin-project-lite", 2348 + ] 2349 + 2350 + [[package]] 2351 + name = "pango" 2352 + version = "0.18.3" 2353 + source = "registry+https://github.com/rust-lang/crates.io-index" 2354 + checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4" 2355 + dependencies = [ 2356 + "gio", 2357 + "glib", 2358 + "libc", 2359 + "once_cell", 2360 + "pango-sys", 2361 + ] 2362 + 2363 + [[package]] 2364 + name = "pango-sys" 2365 + version = "0.18.0" 2366 + source = "registry+https://github.com/rust-lang/crates.io-index" 2367 + checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5" 2368 + dependencies = [ 2369 + "glib-sys", 2370 + "gobject-sys", 2371 + "libc", 2372 + "system-deps", 2373 + ] 2374 + 2375 + [[package]] 2376 + name = "parking" 2377 + version = "2.2.1" 2378 + source = "registry+https://github.com/rust-lang/crates.io-index" 2379 + checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" 2380 + 2381 + [[package]] 2382 + name = "parking_lot" 2383 + version = "0.12.5" 2384 + source = "registry+https://github.com/rust-lang/crates.io-index" 2385 + checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" 2386 + dependencies = [ 2387 + "lock_api", 2388 + "parking_lot_core", 2389 + ] 2390 + 2391 + [[package]] 2392 + name = "parking_lot_core" 2393 + version = "0.9.12" 2394 + source = "registry+https://github.com/rust-lang/crates.io-index" 2395 + checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" 2396 + dependencies = [ 2397 + "cfg-if", 2398 + "libc", 2399 + "redox_syscall", 2400 + "smallvec", 2401 + "windows-link 0.2.1", 2402 + ] 2403 + 2404 + [[package]] 2405 + name = "pathdiff" 2406 + version = "0.2.3" 2407 + source = "registry+https://github.com/rust-lang/crates.io-index" 2408 + checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" 2409 + 2410 + [[package]] 2411 + name = "percent-encoding" 2412 + version = "2.3.2" 2413 + source = "registry+https://github.com/rust-lang/crates.io-index" 2414 + checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" 2415 + 2416 + [[package]] 2417 + name = "phf" 2418 + version = "0.8.0" 2419 + source = "registry+https://github.com/rust-lang/crates.io-index" 2420 + checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12" 2421 + dependencies = [ 2422 + "phf_shared 0.8.0", 2423 + ] 2424 + 2425 + [[package]] 2426 + name = "phf" 2427 + version = "0.10.1" 2428 + source = "registry+https://github.com/rust-lang/crates.io-index" 2429 + checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" 2430 + dependencies = [ 2431 + "phf_macros 0.10.0", 2432 + "phf_shared 0.10.0", 2433 + "proc-macro-hack", 2434 + ] 2435 + 2436 + [[package]] 2437 + name = "phf" 2438 + version = "0.11.3" 2439 + source = "registry+https://github.com/rust-lang/crates.io-index" 2440 + checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" 2441 + dependencies = [ 2442 + "phf_macros 0.11.3", 2443 + "phf_shared 0.11.3", 2444 + ] 2445 + 2446 + [[package]] 2447 + name = "phf_codegen" 2448 + version = "0.8.0" 2449 + source = "registry+https://github.com/rust-lang/crates.io-index" 2450 + checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815" 2451 + dependencies = [ 2452 + "phf_generator 0.8.0", 2453 + "phf_shared 0.8.0", 2454 + ] 2455 + 2456 + [[package]] 2457 + name = "phf_codegen" 2458 + version = "0.11.3" 2459 + source = "registry+https://github.com/rust-lang/crates.io-index" 2460 + checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a" 2461 + dependencies = [ 2462 + "phf_generator 0.11.3", 2463 + "phf_shared 0.11.3", 2464 + ] 2465 + 2466 + [[package]] 2467 + name = "phf_generator" 2468 + version = "0.8.0" 2469 + source = "registry+https://github.com/rust-lang/crates.io-index" 2470 + checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526" 2471 + dependencies = [ 2472 + "phf_shared 0.8.0", 2473 + "rand 0.7.3", 2474 + ] 2475 + 2476 + [[package]] 2477 + name = "phf_generator" 2478 + version = "0.10.0" 2479 + source = "registry+https://github.com/rust-lang/crates.io-index" 2480 + checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" 2481 + dependencies = [ 2482 + "phf_shared 0.10.0", 2483 + "rand 0.8.5", 2484 + ] 2485 + 2486 + [[package]] 2487 + name = "phf_generator" 2488 + version = "0.11.3" 2489 + source = "registry+https://github.com/rust-lang/crates.io-index" 2490 + checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" 2491 + dependencies = [ 2492 + "phf_shared 0.11.3", 2493 + "rand 0.8.5", 2494 + ] 2495 + 2496 + [[package]] 2497 + name = "phf_macros" 2498 + version = "0.10.0" 2499 + source = "registry+https://github.com/rust-lang/crates.io-index" 2500 + checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0" 2501 + dependencies = [ 2502 + "phf_generator 0.10.0", 2503 + "phf_shared 0.10.0", 2504 + "proc-macro-hack", 2505 + "proc-macro2", 2506 + "quote", 2507 + "syn 1.0.109", 2508 + ] 2509 + 2510 + [[package]] 2511 + name = "phf_macros" 2512 + version = "0.11.3" 2513 + source = "registry+https://github.com/rust-lang/crates.io-index" 2514 + checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" 2515 + dependencies = [ 2516 + "phf_generator 0.11.3", 2517 + "phf_shared 0.11.3", 2518 + "proc-macro2", 2519 + "quote", 2520 + "syn 2.0.117", 2521 + ] 2522 + 2523 + [[package]] 2524 + name = "phf_shared" 2525 + version = "0.8.0" 2526 + source = "registry+https://github.com/rust-lang/crates.io-index" 2527 + checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" 2528 + dependencies = [ 2529 + "siphasher 0.3.11", 2530 + ] 2531 + 2532 + [[package]] 2533 + name = "phf_shared" 2534 + version = "0.10.0" 2535 + source = "registry+https://github.com/rust-lang/crates.io-index" 2536 + checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" 2537 + dependencies = [ 2538 + "siphasher 0.3.11", 2539 + ] 2540 + 2541 + [[package]] 2542 + name = "phf_shared" 2543 + version = "0.11.3" 2544 + source = "registry+https://github.com/rust-lang/crates.io-index" 2545 + checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" 2546 + dependencies = [ 2547 + "siphasher 1.0.2", 2548 + ] 2549 + 2550 + [[package]] 2551 + name = "pin-project-lite" 2552 + version = "0.2.17" 2553 + source = "registry+https://github.com/rust-lang/crates.io-index" 2554 + checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" 2555 + 2556 + [[package]] 2557 + name = "pin-utils" 2558 + version = "0.1.0" 2559 + source = "registry+https://github.com/rust-lang/crates.io-index" 2560 + checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 2561 + 2562 + [[package]] 2563 + name = "piper" 2564 + version = "0.2.5" 2565 + source = "registry+https://github.com/rust-lang/crates.io-index" 2566 + checksum = "c835479a4443ded371d6c535cbfd8d31ad92c5d23ae9770a61bc155e4992a3c1" 2567 + dependencies = [ 2568 + "atomic-waker", 2569 + "fastrand", 2570 + "futures-io", 2571 + ] 2572 + 2573 + [[package]] 2574 + name = "pkg-config" 2575 + version = "0.3.32" 2576 + source = "registry+https://github.com/rust-lang/crates.io-index" 2577 + checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" 2578 + 2579 + [[package]] 2580 + name = "plist" 2581 + version = "1.8.0" 2582 + source = "registry+https://github.com/rust-lang/crates.io-index" 2583 + checksum = "740ebea15c5d1428f910cd1a5f52cebf8d25006245ed8ade92702f4943d91e07" 2584 + dependencies = [ 2585 + "base64 0.22.1", 2586 + "indexmap 2.13.0", 2587 + "quick-xml", 2588 + "serde", 2589 + "time", 2590 + ] 2591 + 2592 + [[package]] 2593 + name = "png" 2594 + version = "0.17.16" 2595 + source = "registry+https://github.com/rust-lang/crates.io-index" 2596 + checksum = "82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526" 2597 + dependencies = [ 2598 + "bitflags 1.3.2", 2599 + "crc32fast", 2600 + "fdeflate", 2601 + "flate2", 2602 + "miniz_oxide", 2603 + ] 2604 + 2605 + [[package]] 2606 + name = "polling" 2607 + version = "3.11.0" 2608 + source = "registry+https://github.com/rust-lang/crates.io-index" 2609 + checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218" 2610 + dependencies = [ 2611 + "cfg-if", 2612 + "concurrent-queue", 2613 + "hermit-abi", 2614 + "pin-project-lite", 2615 + "rustix", 2616 + "windows-sys 0.61.2", 2617 + ] 2618 + 2619 + [[package]] 2620 + name = "potential_utf" 2621 + version = "0.1.4" 2622 + source = "registry+https://github.com/rust-lang/crates.io-index" 2623 + checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" 2624 + dependencies = [ 2625 + "zerovec", 2626 + ] 2627 + 2628 + [[package]] 2629 + name = "powerfmt" 2630 + version = "0.2.0" 2631 + source = "registry+https://github.com/rust-lang/crates.io-index" 2632 + checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" 2633 + 2634 + [[package]] 2635 + name = "ppv-lite86" 2636 + version = "0.2.21" 2637 + source = "registry+https://github.com/rust-lang/crates.io-index" 2638 + checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" 2639 + dependencies = [ 2640 + "zerocopy", 2641 + ] 2642 + 2643 + [[package]] 2644 + name = "precomputed-hash" 2645 + version = "0.1.1" 2646 + source = "registry+https://github.com/rust-lang/crates.io-index" 2647 + checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" 2648 + 2649 + [[package]] 2650 + name = "prettyplease" 2651 + version = "0.2.37" 2652 + source = "registry+https://github.com/rust-lang/crates.io-index" 2653 + checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" 2654 + dependencies = [ 2655 + "proc-macro2", 2656 + "syn 2.0.117", 2657 + ] 2658 + 2659 + [[package]] 2660 + name = "proc-macro-crate" 2661 + version = "1.3.1" 2662 + source = "registry+https://github.com/rust-lang/crates.io-index" 2663 + checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" 2664 + dependencies = [ 2665 + "once_cell", 2666 + "toml_edit 0.19.15", 2667 + ] 2668 + 2669 + [[package]] 2670 + name = "proc-macro-crate" 2671 + version = "2.0.2" 2672 + source = "registry+https://github.com/rust-lang/crates.io-index" 2673 + checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24" 2674 + dependencies = [ 2675 + "toml_datetime 0.6.3", 2676 + "toml_edit 0.20.2", 2677 + ] 2678 + 2679 + [[package]] 2680 + name = "proc-macro-crate" 2681 + version = "3.4.0" 2682 + source = "registry+https://github.com/rust-lang/crates.io-index" 2683 + checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" 2684 + dependencies = [ 2685 + "toml_edit 0.23.10+spec-1.0.0", 2686 + ] 2687 + 2688 + [[package]] 2689 + name = "proc-macro-error" 2690 + version = "1.0.4" 2691 + source = "registry+https://github.com/rust-lang/crates.io-index" 2692 + checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" 2693 + dependencies = [ 2694 + "proc-macro-error-attr", 2695 + "proc-macro2", 2696 + "quote", 2697 + "syn 1.0.109", 2698 + "version_check", 2699 + ] 2700 + 2701 + [[package]] 2702 + name = "proc-macro-error-attr" 2703 + version = "1.0.4" 2704 + source = "registry+https://github.com/rust-lang/crates.io-index" 2705 + checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" 2706 + dependencies = [ 2707 + "proc-macro2", 2708 + "quote", 2709 + "version_check", 2710 + ] 2711 + 2712 + [[package]] 2713 + name = "proc-macro-hack" 2714 + version = "0.5.20+deprecated" 2715 + source = "registry+https://github.com/rust-lang/crates.io-index" 2716 + checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" 2717 + 2718 + [[package]] 2719 + name = "proc-macro2" 2720 + version = "1.0.106" 2721 + source = "registry+https://github.com/rust-lang/crates.io-index" 2722 + checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" 2723 + dependencies = [ 2724 + "unicode-ident", 2725 + ] 2726 + 2727 + [[package]] 2728 + name = "quick-xml" 2729 + version = "0.38.4" 2730 + source = "registry+https://github.com/rust-lang/crates.io-index" 2731 + checksum = "b66c2058c55a409d601666cffe35f04333cf1013010882cec174a7467cd4e21c" 2732 + dependencies = [ 2733 + "memchr", 2734 + ] 2735 + 2736 + [[package]] 2737 + name = "quote" 2738 + version = "1.0.44" 2739 + source = "registry+https://github.com/rust-lang/crates.io-index" 2740 + checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4" 2741 + dependencies = [ 2742 + "proc-macro2", 2743 + ] 2744 + 2745 + [[package]] 2746 + name = "r-efi" 2747 + version = "5.3.0" 2748 + source = "registry+https://github.com/rust-lang/crates.io-index" 2749 + checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" 2750 + 2751 + [[package]] 2752 + name = "rand" 2753 + version = "0.7.3" 2754 + source = "registry+https://github.com/rust-lang/crates.io-index" 2755 + checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" 2756 + dependencies = [ 2757 + "getrandom 0.1.16", 2758 + "libc", 2759 + "rand_chacha 0.2.2", 2760 + "rand_core 0.5.1", 2761 + "rand_hc", 2762 + "rand_pcg", 2763 + ] 2764 + 2765 + [[package]] 2766 + name = "rand" 2767 + version = "0.8.5" 2768 + source = "registry+https://github.com/rust-lang/crates.io-index" 2769 + checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 2770 + dependencies = [ 2771 + "libc", 2772 + "rand_chacha 0.3.1", 2773 + "rand_core 0.6.4", 2774 + ] 2775 + 2776 + [[package]] 2777 + name = "rand_chacha" 2778 + version = "0.2.2" 2779 + source = "registry+https://github.com/rust-lang/crates.io-index" 2780 + checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" 2781 + dependencies = [ 2782 + "ppv-lite86", 2783 + "rand_core 0.5.1", 2784 + ] 2785 + 2786 + [[package]] 2787 + name = "rand_chacha" 2788 + version = "0.3.1" 2789 + source = "registry+https://github.com/rust-lang/crates.io-index" 2790 + checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 2791 + dependencies = [ 2792 + "ppv-lite86", 2793 + "rand_core 0.6.4", 2794 + ] 2795 + 2796 + [[package]] 2797 + name = "rand_core" 2798 + version = "0.5.1" 2799 + source = "registry+https://github.com/rust-lang/crates.io-index" 2800 + checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" 2801 + dependencies = [ 2802 + "getrandom 0.1.16", 2803 + ] 2804 + 2805 + [[package]] 2806 + name = "rand_core" 2807 + version = "0.6.4" 2808 + source = "registry+https://github.com/rust-lang/crates.io-index" 2809 + checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 2810 + dependencies = [ 2811 + "getrandom 0.2.17", 2812 + ] 2813 + 2814 + [[package]] 2815 + name = "rand_hc" 2816 + version = "0.2.0" 2817 + source = "registry+https://github.com/rust-lang/crates.io-index" 2818 + checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" 2819 + dependencies = [ 2820 + "rand_core 0.5.1", 2821 + ] 2822 + 2823 + [[package]] 2824 + name = "rand_pcg" 2825 + version = "0.2.1" 2826 + source = "registry+https://github.com/rust-lang/crates.io-index" 2827 + checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" 2828 + dependencies = [ 2829 + "rand_core 0.5.1", 2830 + ] 2831 + 2832 + [[package]] 2833 + name = "raw-window-handle" 2834 + version = "0.6.2" 2835 + source = "registry+https://github.com/rust-lang/crates.io-index" 2836 + checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" 2837 + 2838 + [[package]] 2839 + name = "redox_syscall" 2840 + version = "0.5.18" 2841 + source = "registry+https://github.com/rust-lang/crates.io-index" 2842 + checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" 2843 + dependencies = [ 2844 + "bitflags 2.11.0", 2845 + ] 2846 + 2847 + [[package]] 2848 + name = "redox_users" 2849 + version = "0.5.2" 2850 + source = "registry+https://github.com/rust-lang/crates.io-index" 2851 + checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" 2852 + dependencies = [ 2853 + "getrandom 0.2.17", 2854 + "libredox", 2855 + "thiserror 2.0.18", 2856 + ] 2857 + 2858 + [[package]] 2859 + name = "ref-cast" 2860 + version = "1.0.25" 2861 + source = "registry+https://github.com/rust-lang/crates.io-index" 2862 + checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" 2863 + dependencies = [ 2864 + "ref-cast-impl", 2865 + ] 2866 + 2867 + [[package]] 2868 + name = "ref-cast-impl" 2869 + version = "1.0.25" 2870 + source = "registry+https://github.com/rust-lang/crates.io-index" 2871 + checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" 2872 + dependencies = [ 2873 + "proc-macro2", 2874 + "quote", 2875 + "syn 2.0.117", 2876 + ] 2877 + 2878 + [[package]] 2879 + name = "regex" 2880 + version = "1.12.3" 2881 + source = "registry+https://github.com/rust-lang/crates.io-index" 2882 + checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" 2883 + dependencies = [ 2884 + "aho-corasick", 2885 + "memchr", 2886 + "regex-automata", 2887 + "regex-syntax", 2888 + ] 2889 + 2890 + [[package]] 2891 + name = "regex-automata" 2892 + version = "0.4.14" 2893 + source = "registry+https://github.com/rust-lang/crates.io-index" 2894 + checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" 2895 + dependencies = [ 2896 + "aho-corasick", 2897 + "memchr", 2898 + "regex-syntax", 2899 + ] 2900 + 2901 + [[package]] 2902 + name = "regex-syntax" 2903 + version = "0.8.10" 2904 + source = "registry+https://github.com/rust-lang/crates.io-index" 2905 + checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" 2906 + 2907 + [[package]] 2908 + name = "reqwest" 2909 + version = "0.13.2" 2910 + source = "registry+https://github.com/rust-lang/crates.io-index" 2911 + checksum = "ab3f43e3283ab1488b624b44b0e988d0acea0b3214e694730a055cb6b2efa801" 2912 + dependencies = [ 2913 + "base64 0.22.1", 2914 + "bytes", 2915 + "futures-core", 2916 + "futures-util", 2917 + "http", 2918 + "http-body", 2919 + "http-body-util", 2920 + "hyper", 2921 + "hyper-util", 2922 + "js-sys", 2923 + "log", 2924 + "percent-encoding", 2925 + "pin-project-lite", 2926 + "serde", 2927 + "serde_json", 2928 + "sync_wrapper", 2929 + "tokio", 2930 + "tokio-util", 2931 + "tower", 2932 + "tower-http", 2933 + "tower-service", 2934 + "url", 2935 + "wasm-bindgen", 2936 + "wasm-bindgen-futures", 2937 + "wasm-streams", 2938 + "web-sys", 2939 + ] 2940 + 2941 + [[package]] 2942 + name = "rustc_version" 2943 + version = "0.4.1" 2944 + source = "registry+https://github.com/rust-lang/crates.io-index" 2945 + checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" 2946 + dependencies = [ 2947 + "semver", 2948 + ] 2949 + 2950 + [[package]] 2951 + name = "rustix" 2952 + version = "1.1.4" 2953 + source = "registry+https://github.com/rust-lang/crates.io-index" 2954 + checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" 2955 + dependencies = [ 2956 + "bitflags 2.11.0", 2957 + "errno", 2958 + "libc", 2959 + "linux-raw-sys", 2960 + "windows-sys 0.61.2", 2961 + ] 2962 + 2963 + [[package]] 2964 + name = "rustversion" 2965 + version = "1.0.22" 2966 + source = "registry+https://github.com/rust-lang/crates.io-index" 2967 + checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" 2968 + 2969 + [[package]] 2970 + name = "same-file" 2971 + version = "1.0.6" 2972 + source = "registry+https://github.com/rust-lang/crates.io-index" 2973 + checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" 2974 + dependencies = [ 2975 + "winapi-util", 2976 + ] 2977 + 2978 + [[package]] 2979 + name = "schemars" 2980 + version = "0.8.22" 2981 + source = "registry+https://github.com/rust-lang/crates.io-index" 2982 + checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" 2983 + dependencies = [ 2984 + "dyn-clone", 2985 + "indexmap 1.9.3", 2986 + "schemars_derive", 2987 + "serde", 2988 + "serde_json", 2989 + "url", 2990 + "uuid", 2991 + ] 2992 + 2993 + [[package]] 2994 + name = "schemars" 2995 + version = "0.9.0" 2996 + source = "registry+https://github.com/rust-lang/crates.io-index" 2997 + checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" 2998 + dependencies = [ 2999 + "dyn-clone", 3000 + "ref-cast", 3001 + "serde", 3002 + "serde_json", 3003 + ] 3004 + 3005 + [[package]] 3006 + name = "schemars" 3007 + version = "1.2.1" 3008 + source = "registry+https://github.com/rust-lang/crates.io-index" 3009 + checksum = "a2b42f36aa1cd011945615b92222f6bf73c599a102a300334cd7f8dbeec726cc" 3010 + dependencies = [ 3011 + "dyn-clone", 3012 + "ref-cast", 3013 + "serde", 3014 + "serde_json", 3015 + ] 3016 + 3017 + [[package]] 3018 + name = "schemars_derive" 3019 + version = "0.8.22" 3020 + source = "registry+https://github.com/rust-lang/crates.io-index" 3021 + checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d" 3022 + dependencies = [ 3023 + "proc-macro2", 3024 + "quote", 3025 + "serde_derive_internals", 3026 + "syn 2.0.117", 3027 + ] 3028 + 3029 + [[package]] 3030 + name = "scopeguard" 3031 + version = "1.2.0" 3032 + source = "registry+https://github.com/rust-lang/crates.io-index" 3033 + checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 3034 + 3035 + [[package]] 3036 + name = "selectors" 3037 + version = "0.24.0" 3038 + source = "registry+https://github.com/rust-lang/crates.io-index" 3039 + checksum = "0c37578180969d00692904465fb7f6b3d50b9a2b952b87c23d0e2e5cb5013416" 3040 + dependencies = [ 3041 + "bitflags 1.3.2", 3042 + "cssparser", 3043 + "derive_more", 3044 + "fxhash", 3045 + "log", 3046 + "phf 0.8.0", 3047 + "phf_codegen 0.8.0", 3048 + "precomputed-hash", 3049 + "servo_arc", 3050 + "smallvec", 3051 + ] 3052 + 3053 + [[package]] 3054 + name = "semver" 3055 + version = "1.0.27" 3056 + source = "registry+https://github.com/rust-lang/crates.io-index" 3057 + checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" 3058 + dependencies = [ 3059 + "serde", 3060 + "serde_core", 3061 + ] 3062 + 3063 + [[package]] 3064 + name = "serde" 3065 + version = "1.0.228" 3066 + source = "registry+https://github.com/rust-lang/crates.io-index" 3067 + checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" 3068 + dependencies = [ 3069 + "serde_core", 3070 + "serde_derive", 3071 + ] 3072 + 3073 + [[package]] 3074 + name = "serde-untagged" 3075 + version = "0.1.9" 3076 + source = "registry+https://github.com/rust-lang/crates.io-index" 3077 + checksum = "f9faf48a4a2d2693be24c6289dbe26552776eb7737074e6722891fadbe6c5058" 3078 + dependencies = [ 3079 + "erased-serde", 3080 + "serde", 3081 + "serde_core", 3082 + "typeid", 3083 + ] 3084 + 3085 + [[package]] 3086 + name = "serde_core" 3087 + version = "1.0.228" 3088 + source = "registry+https://github.com/rust-lang/crates.io-index" 3089 + checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" 3090 + dependencies = [ 3091 + "serde_derive", 3092 + ] 3093 + 3094 + [[package]] 3095 + name = "serde_derive" 3096 + version = "1.0.228" 3097 + source = "registry+https://github.com/rust-lang/crates.io-index" 3098 + checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" 3099 + dependencies = [ 3100 + "proc-macro2", 3101 + "quote", 3102 + "syn 2.0.117", 3103 + ] 3104 + 3105 + [[package]] 3106 + name = "serde_derive_internals" 3107 + version = "0.29.1" 3108 + source = "registry+https://github.com/rust-lang/crates.io-index" 3109 + checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" 3110 + dependencies = [ 3111 + "proc-macro2", 3112 + "quote", 3113 + "syn 2.0.117", 3114 + ] 3115 + 3116 + [[package]] 3117 + name = "serde_json" 3118 + version = "1.0.149" 3119 + source = "registry+https://github.com/rust-lang/crates.io-index" 3120 + checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" 3121 + dependencies = [ 3122 + "itoa", 3123 + "memchr", 3124 + "serde", 3125 + "serde_core", 3126 + "zmij", 3127 + ] 3128 + 3129 + [[package]] 3130 + name = "serde_repr" 3131 + version = "0.1.20" 3132 + source = "registry+https://github.com/rust-lang/crates.io-index" 3133 + checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" 3134 + dependencies = [ 3135 + "proc-macro2", 3136 + "quote", 3137 + "syn 2.0.117", 3138 + ] 3139 + 3140 + [[package]] 3141 + name = "serde_spanned" 3142 + version = "0.6.9" 3143 + source = "registry+https://github.com/rust-lang/crates.io-index" 3144 + checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" 3145 + dependencies = [ 3146 + "serde", 3147 + ] 3148 + 3149 + [[package]] 3150 + name = "serde_spanned" 3151 + version = "1.0.4" 3152 + source = "registry+https://github.com/rust-lang/crates.io-index" 3153 + checksum = "f8bbf91e5a4d6315eee45e704372590b30e260ee83af6639d64557f51b067776" 3154 + dependencies = [ 3155 + "serde_core", 3156 + ] 3157 + 3158 + [[package]] 3159 + name = "serde_with" 3160 + version = "3.17.0" 3161 + source = "registry+https://github.com/rust-lang/crates.io-index" 3162 + checksum = "381b283ce7bc6b476d903296fb59d0d36633652b633b27f64db4fb46dcbfc3b9" 3163 + dependencies = [ 3164 + "base64 0.22.1", 3165 + "chrono", 3166 + "hex", 3167 + "indexmap 1.9.3", 3168 + "indexmap 2.13.0", 3169 + "schemars 0.9.0", 3170 + "schemars 1.2.1", 3171 + "serde_core", 3172 + "serde_json", 3173 + "serde_with_macros", 3174 + "time", 3175 + ] 3176 + 3177 + [[package]] 3178 + name = "serde_with_macros" 3179 + version = "3.17.0" 3180 + source = "registry+https://github.com/rust-lang/crates.io-index" 3181 + checksum = "a6d4e30573c8cb306ed6ab1dca8423eec9a463ea0e155f45399455e0368b27e0" 3182 + dependencies = [ 3183 + "darling", 3184 + "proc-macro2", 3185 + "quote", 3186 + "syn 2.0.117", 3187 + ] 3188 + 3189 + [[package]] 3190 + name = "serialize-to-javascript" 3191 + version = "0.1.2" 3192 + source = "registry+https://github.com/rust-lang/crates.io-index" 3193 + checksum = "04f3666a07a197cdb77cdf306c32be9b7f598d7060d50cfd4d5aa04bfd92f6c5" 3194 + dependencies = [ 3195 + "serde", 3196 + "serde_json", 3197 + "serialize-to-javascript-impl", 3198 + ] 3199 + 3200 + [[package]] 3201 + name = "serialize-to-javascript-impl" 3202 + version = "0.1.2" 3203 + source = "registry+https://github.com/rust-lang/crates.io-index" 3204 + checksum = "772ee033c0916d670af7860b6e1ef7d658a4629a6d0b4c8c3e67f09b3765b75d" 3205 + dependencies = [ 3206 + "proc-macro2", 3207 + "quote", 3208 + "syn 2.0.117", 3209 + ] 3210 + 3211 + [[package]] 3212 + name = "servo_arc" 3213 + version = "0.2.0" 3214 + source = "registry+https://github.com/rust-lang/crates.io-index" 3215 + checksum = "d52aa42f8fdf0fed91e5ce7f23d8138441002fa31dca008acf47e6fd4721f741" 3216 + dependencies = [ 3217 + "nodrop", 3218 + "stable_deref_trait", 3219 + ] 3220 + 3221 + [[package]] 3222 + name = "sha2" 3223 + version = "0.10.9" 3224 + source = "registry+https://github.com/rust-lang/crates.io-index" 3225 + checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" 3226 + dependencies = [ 3227 + "cfg-if", 3228 + "cpufeatures", 3229 + "digest", 3230 + ] 3231 + 3232 + [[package]] 3233 + name = "shlex" 3234 + version = "1.3.0" 3235 + source = "registry+https://github.com/rust-lang/crates.io-index" 3236 + checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 3237 + 3238 + [[package]] 3239 + name = "signal-hook-registry" 3240 + version = "1.4.8" 3241 + source = "registry+https://github.com/rust-lang/crates.io-index" 3242 + checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" 3243 + dependencies = [ 3244 + "errno", 3245 + "libc", 3246 + ] 3247 + 3248 + [[package]] 3249 + name = "simd-adler32" 3250 + version = "0.3.8" 3251 + source = "registry+https://github.com/rust-lang/crates.io-index" 3252 + checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" 3253 + 3254 + [[package]] 3255 + name = "siphasher" 3256 + version = "0.3.11" 3257 + source = "registry+https://github.com/rust-lang/crates.io-index" 3258 + checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" 3259 + 3260 + [[package]] 3261 + name = "siphasher" 3262 + version = "1.0.2" 3263 + source = "registry+https://github.com/rust-lang/crates.io-index" 3264 + checksum = "b2aa850e253778c88a04c3d7323b043aeda9d3e30d5971937c1855769763678e" 3265 + 3266 + [[package]] 3267 + name = "slab" 3268 + version = "0.4.12" 3269 + source = "registry+https://github.com/rust-lang/crates.io-index" 3270 + checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" 3271 + 3272 + [[package]] 3273 + name = "smallvec" 3274 + version = "1.15.1" 3275 + source = "registry+https://github.com/rust-lang/crates.io-index" 3276 + checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" 3277 + 3278 + [[package]] 3279 + name = "socket2" 3280 + version = "0.6.2" 3281 + source = "registry+https://github.com/rust-lang/crates.io-index" 3282 + checksum = "86f4aa3ad99f2088c990dfa82d367e19cb29268ed67c574d10d0a4bfe71f07e0" 3283 + dependencies = [ 3284 + "libc", 3285 + "windows-sys 0.60.2", 3286 + ] 3287 + 3288 + [[package]] 3289 + name = "softbuffer" 3290 + version = "0.4.8" 3291 + source = "registry+https://github.com/rust-lang/crates.io-index" 3292 + checksum = "aac18da81ebbf05109ab275b157c22a653bb3c12cf884450179942f81bcbf6c3" 3293 + dependencies = [ 3294 + "bytemuck", 3295 + "js-sys", 3296 + "ndk", 3297 + "objc2", 3298 + "objc2-core-foundation", 3299 + "objc2-core-graphics", 3300 + "objc2-foundation", 3301 + "objc2-quartz-core", 3302 + "raw-window-handle", 3303 + "redox_syscall", 3304 + "tracing", 3305 + "wasm-bindgen", 3306 + "web-sys", 3307 + "windows-sys 0.61.2", 3308 + ] 3309 + 3310 + [[package]] 3311 + name = "soup3" 3312 + version = "0.5.0" 3313 + source = "registry+https://github.com/rust-lang/crates.io-index" 3314 + checksum = "471f924a40f31251afc77450e781cb26d55c0b650842efafc9c6cbd2f7cc4f9f" 3315 + dependencies = [ 3316 + "futures-channel", 3317 + "gio", 3318 + "glib", 3319 + "libc", 3320 + "soup3-sys", 3321 + ] 3322 + 3323 + [[package]] 3324 + name = "soup3-sys" 3325 + version = "0.5.0" 3326 + source = "registry+https://github.com/rust-lang/crates.io-index" 3327 + checksum = "7ebe8950a680a12f24f15ebe1bf70db7af98ad242d9db43596ad3108aab86c27" 3328 + dependencies = [ 3329 + "gio-sys", 3330 + "glib-sys", 3331 + "gobject-sys", 3332 + "libc", 3333 + "system-deps", 3334 + ] 3335 + 3336 + [[package]] 3337 + name = "stable_deref_trait" 3338 + version = "1.2.1" 3339 + source = "registry+https://github.com/rust-lang/crates.io-index" 3340 + checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" 3341 + 3342 + [[package]] 3343 + name = "string_cache" 3344 + version = "0.8.9" 3345 + source = "registry+https://github.com/rust-lang/crates.io-index" 3346 + checksum = "bf776ba3fa74f83bf4b63c3dcbbf82173db2632ed8452cb2d891d33f459de70f" 3347 + dependencies = [ 3348 + "new_debug_unreachable", 3349 + "parking_lot", 3350 + "phf_shared 0.11.3", 3351 + "precomputed-hash", 3352 + "serde", 3353 + ] 3354 + 3355 + [[package]] 3356 + name = "string_cache_codegen" 3357 + version = "0.5.4" 3358 + source = "registry+https://github.com/rust-lang/crates.io-index" 3359 + checksum = "c711928715f1fe0fe509c53b43e993a9a557babc2d0a3567d0a3006f1ac931a0" 3360 + dependencies = [ 3361 + "phf_generator 0.11.3", 3362 + "phf_shared 0.11.3", 3363 + "proc-macro2", 3364 + "quote", 3365 + ] 3366 + 3367 + [[package]] 3368 + name = "strsim" 3369 + version = "0.11.1" 3370 + source = "registry+https://github.com/rust-lang/crates.io-index" 3371 + checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" 3372 + 3373 + [[package]] 3374 + name = "swift-rs" 3375 + version = "1.0.7" 3376 + source = "registry+https://github.com/rust-lang/crates.io-index" 3377 + checksum = "4057c98e2e852d51fdcfca832aac7b571f6b351ad159f9eda5db1655f8d0c4d7" 3378 + dependencies = [ 3379 + "base64 0.21.7", 3380 + "serde", 3381 + "serde_json", 3382 + ] 3383 + 3384 + [[package]] 3385 + name = "syn" 3386 + version = "1.0.109" 3387 + source = "registry+https://github.com/rust-lang/crates.io-index" 3388 + checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" 3389 + dependencies = [ 3390 + "proc-macro2", 3391 + "quote", 3392 + "unicode-ident", 3393 + ] 3394 + 3395 + [[package]] 3396 + name = "syn" 3397 + version = "2.0.117" 3398 + source = "registry+https://github.com/rust-lang/crates.io-index" 3399 + checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" 3400 + dependencies = [ 3401 + "proc-macro2", 3402 + "quote", 3403 + "unicode-ident", 3404 + ] 3405 + 3406 + [[package]] 3407 + name = "sync_wrapper" 3408 + version = "1.0.2" 3409 + source = "registry+https://github.com/rust-lang/crates.io-index" 3410 + checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" 3411 + dependencies = [ 3412 + "futures-core", 3413 + ] 3414 + 3415 + [[package]] 3416 + name = "synstructure" 3417 + version = "0.13.2" 3418 + source = "registry+https://github.com/rust-lang/crates.io-index" 3419 + checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" 3420 + dependencies = [ 3421 + "proc-macro2", 3422 + "quote", 3423 + "syn 2.0.117", 3424 + ] 3425 + 3426 + [[package]] 3427 + name = "system-deps" 3428 + version = "6.2.2" 3429 + source = "registry+https://github.com/rust-lang/crates.io-index" 3430 + checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" 3431 + dependencies = [ 3432 + "cfg-expr", 3433 + "heck 0.5.0", 3434 + "pkg-config", 3435 + "toml 0.8.2", 3436 + "version-compare", 3437 + ] 3438 + 3439 + [[package]] 3440 + name = "tao" 3441 + version = "0.34.5" 3442 + source = "registry+https://github.com/rust-lang/crates.io-index" 3443 + checksum = "f3a753bdc39c07b192151523a3f77cd0394aa75413802c883a0f6f6a0e5ee2e7" 3444 + dependencies = [ 3445 + "bitflags 2.11.0", 3446 + "block2", 3447 + "core-foundation", 3448 + "core-graphics", 3449 + "crossbeam-channel", 3450 + "dispatch", 3451 + "dlopen2", 3452 + "dpi", 3453 + "gdkwayland-sys", 3454 + "gdkx11-sys", 3455 + "gtk", 3456 + "jni", 3457 + "lazy_static", 3458 + "libc", 3459 + "log", 3460 + "ndk", 3461 + "ndk-context", 3462 + "ndk-sys", 3463 + "objc2", 3464 + "objc2-app-kit", 3465 + "objc2-foundation", 3466 + "once_cell", 3467 + "parking_lot", 3468 + "raw-window-handle", 3469 + "scopeguard", 3470 + "tao-macros", 3471 + "unicode-segmentation", 3472 + "url", 3473 + "windows", 3474 + "windows-core 0.61.2", 3475 + "windows-version", 3476 + "x11-dl", 3477 + ] 3478 + 3479 + [[package]] 3480 + name = "tao-macros" 3481 + version = "0.1.3" 3482 + source = "registry+https://github.com/rust-lang/crates.io-index" 3483 + checksum = "f4e16beb8b2ac17db28eab8bca40e62dbfbb34c0fcdc6d9826b11b7b5d047dfd" 3484 + dependencies = [ 3485 + "proc-macro2", 3486 + "quote", 3487 + "syn 2.0.117", 3488 + ] 3489 + 3490 + [[package]] 3491 + name = "target-lexicon" 3492 + version = "0.12.16" 3493 + source = "registry+https://github.com/rust-lang/crates.io-index" 3494 + checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" 3495 + 3496 + [[package]] 3497 + name = "tauri" 3498 + version = "2.10.2" 3499 + source = "registry+https://github.com/rust-lang/crates.io-index" 3500 + checksum = "463ae8677aa6d0f063a900b9c41ecd4ac2b7ca82f0b058cc4491540e55b20129" 3501 + dependencies = [ 3502 + "anyhow", 3503 + "bytes", 3504 + "cookie", 3505 + "dirs", 3506 + "dunce", 3507 + "embed_plist", 3508 + "getrandom 0.3.4", 3509 + "glob", 3510 + "gtk", 3511 + "heck 0.5.0", 3512 + "http", 3513 + "jni", 3514 + "libc", 3515 + "log", 3516 + "mime", 3517 + "muda", 3518 + "objc2", 3519 + "objc2-app-kit", 3520 + "objc2-foundation", 3521 + "objc2-ui-kit", 3522 + "objc2-web-kit", 3523 + "percent-encoding", 3524 + "plist", 3525 + "raw-window-handle", 3526 + "reqwest", 3527 + "serde", 3528 + "serde_json", 3529 + "serde_repr", 3530 + "serialize-to-javascript", 3531 + "swift-rs", 3532 + "tauri-build", 3533 + "tauri-macros", 3534 + "tauri-runtime", 3535 + "tauri-runtime-wry", 3536 + "tauri-utils", 3537 + "thiserror 2.0.18", 3538 + "tokio", 3539 + "tray-icon", 3540 + "url", 3541 + "webkit2gtk", 3542 + "webview2-com", 3543 + "window-vibrancy", 3544 + "windows", 3545 + ] 3546 + 3547 + [[package]] 3548 + name = "tauri-build" 3549 + version = "2.5.5" 3550 + source = "registry+https://github.com/rust-lang/crates.io-index" 3551 + checksum = "ca7bd893329425df750813e95bd2b643d5369d929438da96d5bbb7cc2c918f74" 3552 + dependencies = [ 3553 + "anyhow", 3554 + "cargo_toml", 3555 + "dirs", 3556 + "glob", 3557 + "heck 0.5.0", 3558 + "json-patch", 3559 + "schemars 0.8.22", 3560 + "semver", 3561 + "serde", 3562 + "serde_json", 3563 + "tauri-utils", 3564 + "tauri-winres", 3565 + "toml 0.9.12+spec-1.1.0", 3566 + "walkdir", 3567 + ] 3568 + 3569 + [[package]] 3570 + name = "tauri-codegen" 3571 + version = "2.5.4" 3572 + source = "registry+https://github.com/rust-lang/crates.io-index" 3573 + checksum = "aac423e5859d9f9ccdd32e3cf6a5866a15bedbf25aa6630bcb2acde9468f6ae3" 3574 + dependencies = [ 3575 + "base64 0.22.1", 3576 + "brotli", 3577 + "ico", 3578 + "json-patch", 3579 + "plist", 3580 + "png", 3581 + "proc-macro2", 3582 + "quote", 3583 + "semver", 3584 + "serde", 3585 + "serde_json", 3586 + "sha2", 3587 + "syn 2.0.117", 3588 + "tauri-utils", 3589 + "thiserror 2.0.18", 3590 + "time", 3591 + "url", 3592 + "uuid", 3593 + "walkdir", 3594 + ] 3595 + 3596 + [[package]] 3597 + name = "tauri-macros" 3598 + version = "2.5.4" 3599 + source = "registry+https://github.com/rust-lang/crates.io-index" 3600 + checksum = "1b6a1bd2861ff0c8766b1d38b32a6a410f6dc6532d4ef534c47cfb2236092f59" 3601 + dependencies = [ 3602 + "heck 0.5.0", 3603 + "proc-macro2", 3604 + "quote", 3605 + "syn 2.0.117", 3606 + "tauri-codegen", 3607 + "tauri-utils", 3608 + ] 3609 + 3610 + [[package]] 3611 + name = "tauri-plugin" 3612 + version = "2.5.3" 3613 + source = "registry+https://github.com/rust-lang/crates.io-index" 3614 + checksum = "692a77abd8b8773e107a42ec0e05b767b8d2b7ece76ab36c6c3947e34df9f53f" 3615 + dependencies = [ 3616 + "anyhow", 3617 + "glob", 3618 + "plist", 3619 + "schemars 0.8.22", 3620 + "serde", 3621 + "serde_json", 3622 + "tauri-utils", 3623 + "toml 0.9.12+spec-1.1.0", 3624 + "walkdir", 3625 + ] 3626 + 3627 + [[package]] 3628 + name = "tauri-plugin-opener" 3629 + version = "2.5.3" 3630 + source = "registry+https://github.com/rust-lang/crates.io-index" 3631 + checksum = "fc624469b06f59f5a29f874bbc61a2ed737c0f9c23ef09855a292c389c42e83f" 3632 + dependencies = [ 3633 + "dunce", 3634 + "glob", 3635 + "objc2-app-kit", 3636 + "objc2-foundation", 3637 + "open", 3638 + "schemars 0.8.22", 3639 + "serde", 3640 + "serde_json", 3641 + "tauri", 3642 + "tauri-plugin", 3643 + "thiserror 2.0.18", 3644 + "url", 3645 + "windows", 3646 + "zbus", 3647 + ] 3648 + 3649 + [[package]] 3650 + name = "tauri-runtime" 3651 + version = "2.10.0" 3652 + source = "registry+https://github.com/rust-lang/crates.io-index" 3653 + checksum = "b885ffeac82b00f1f6fd292b6e5aabfa7435d537cef57d11e38a489956535651" 3654 + dependencies = [ 3655 + "cookie", 3656 + "dpi", 3657 + "gtk", 3658 + "http", 3659 + "jni", 3660 + "objc2", 3661 + "objc2-ui-kit", 3662 + "objc2-web-kit", 3663 + "raw-window-handle", 3664 + "serde", 3665 + "serde_json", 3666 + "tauri-utils", 3667 + "thiserror 2.0.18", 3668 + "url", 3669 + "webkit2gtk", 3670 + "webview2-com", 3671 + "windows", 3672 + ] 3673 + 3674 + [[package]] 3675 + name = "tauri-runtime-wry" 3676 + version = "2.10.0" 3677 + source = "registry+https://github.com/rust-lang/crates.io-index" 3678 + checksum = "5204682391625e867d16584fedc83fc292fb998814c9f7918605c789cd876314" 3679 + dependencies = [ 3680 + "gtk", 3681 + "http", 3682 + "jni", 3683 + "log", 3684 + "objc2", 3685 + "objc2-app-kit", 3686 + "objc2-foundation", 3687 + "once_cell", 3688 + "percent-encoding", 3689 + "raw-window-handle", 3690 + "softbuffer", 3691 + "tao", 3692 + "tauri-runtime", 3693 + "tauri-utils", 3694 + "url", 3695 + "webkit2gtk", 3696 + "webview2-com", 3697 + "windows", 3698 + "wry", 3699 + ] 3700 + 3701 + [[package]] 3702 + name = "tauri-utils" 3703 + version = "2.8.2" 3704 + source = "registry+https://github.com/rust-lang/crates.io-index" 3705 + checksum = "fcd169fccdff05eff2c1033210b9b94acd07a47e6fa9a3431cf09cfd4f01c87e" 3706 + dependencies = [ 3707 + "anyhow", 3708 + "brotli", 3709 + "cargo_metadata", 3710 + "ctor", 3711 + "dunce", 3712 + "glob", 3713 + "html5ever", 3714 + "http", 3715 + "infer", 3716 + "json-patch", 3717 + "kuchikiki", 3718 + "log", 3719 + "memchr", 3720 + "phf 0.11.3", 3721 + "proc-macro2", 3722 + "quote", 3723 + "regex", 3724 + "schemars 0.8.22", 3725 + "semver", 3726 + "serde", 3727 + "serde-untagged", 3728 + "serde_json", 3729 + "serde_with", 3730 + "swift-rs", 3731 + "thiserror 2.0.18", 3732 + "toml 0.9.12+spec-1.1.0", 3733 + "url", 3734 + "urlpattern", 3735 + "uuid", 3736 + "walkdir", 3737 + ] 3738 + 3739 + [[package]] 3740 + name = "tauri-winres" 3741 + version = "0.3.5" 3742 + source = "registry+https://github.com/rust-lang/crates.io-index" 3743 + checksum = "1087b111fe2b005e42dbdc1990fc18593234238d47453b0c99b7de1c9ab2c1e0" 3744 + dependencies = [ 3745 + "dunce", 3746 + "embed-resource", 3747 + "toml 0.9.12+spec-1.1.0", 3748 + ] 3749 + 3750 + [[package]] 3751 + name = "tempfile" 3752 + version = "3.26.0" 3753 + source = "registry+https://github.com/rust-lang/crates.io-index" 3754 + checksum = "82a72c767771b47409d2345987fda8628641887d5466101319899796367354a0" 3755 + dependencies = [ 3756 + "fastrand", 3757 + "getrandom 0.4.1", 3758 + "once_cell", 3759 + "rustix", 3760 + "windows-sys 0.61.2", 3761 + ] 3762 + 3763 + [[package]] 3764 + name = "tendril" 3765 + version = "0.4.3" 3766 + source = "registry+https://github.com/rust-lang/crates.io-index" 3767 + checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" 3768 + dependencies = [ 3769 + "futf", 3770 + "mac", 3771 + "utf-8", 3772 + ] 3773 + 3774 + [[package]] 3775 + name = "thiserror" 3776 + version = "1.0.69" 3777 + source = "registry+https://github.com/rust-lang/crates.io-index" 3778 + checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" 3779 + dependencies = [ 3780 + "thiserror-impl 1.0.69", 3781 + ] 3782 + 3783 + [[package]] 3784 + name = "thiserror" 3785 + version = "2.0.18" 3786 + source = "registry+https://github.com/rust-lang/crates.io-index" 3787 + checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" 3788 + dependencies = [ 3789 + "thiserror-impl 2.0.18", 3790 + ] 3791 + 3792 + [[package]] 3793 + name = "thiserror-impl" 3794 + version = "1.0.69" 3795 + source = "registry+https://github.com/rust-lang/crates.io-index" 3796 + checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" 3797 + dependencies = [ 3798 + "proc-macro2", 3799 + "quote", 3800 + "syn 2.0.117", 3801 + ] 3802 + 3803 + [[package]] 3804 + name = "thiserror-impl" 3805 + version = "2.0.18" 3806 + source = "registry+https://github.com/rust-lang/crates.io-index" 3807 + checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" 3808 + dependencies = [ 3809 + "proc-macro2", 3810 + "quote", 3811 + "syn 2.0.117", 3812 + ] 3813 + 3814 + [[package]] 3815 + name = "time" 3816 + version = "0.3.47" 3817 + source = "registry+https://github.com/rust-lang/crates.io-index" 3818 + checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" 3819 + dependencies = [ 3820 + "deranged", 3821 + "itoa", 3822 + "num-conv", 3823 + "powerfmt", 3824 + "serde_core", 3825 + "time-core", 3826 + "time-macros", 3827 + ] 3828 + 3829 + [[package]] 3830 + name = "time-core" 3831 + version = "0.1.8" 3832 + source = "registry+https://github.com/rust-lang/crates.io-index" 3833 + checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" 3834 + 3835 + [[package]] 3836 + name = "time-macros" 3837 + version = "0.2.27" 3838 + source = "registry+https://github.com/rust-lang/crates.io-index" 3839 + checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215" 3840 + dependencies = [ 3841 + "num-conv", 3842 + "time-core", 3843 + ] 3844 + 3845 + [[package]] 3846 + name = "tinystr" 3847 + version = "0.8.2" 3848 + source = "registry+https://github.com/rust-lang/crates.io-index" 3849 + checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" 3850 + dependencies = [ 3851 + "displaydoc", 3852 + "zerovec", 3853 + ] 3854 + 3855 + [[package]] 3856 + name = "tokio" 3857 + version = "1.49.0" 3858 + source = "registry+https://github.com/rust-lang/crates.io-index" 3859 + checksum = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86" 3860 + dependencies = [ 3861 + "bytes", 3862 + "libc", 3863 + "mio", 3864 + "pin-project-lite", 3865 + "socket2", 3866 + "windows-sys 0.61.2", 3867 + ] 3868 + 3869 + [[package]] 3870 + name = "tokio-util" 3871 + version = "0.7.18" 3872 + source = "registry+https://github.com/rust-lang/crates.io-index" 3873 + checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" 3874 + dependencies = [ 3875 + "bytes", 3876 + "futures-core", 3877 + "futures-sink", 3878 + "pin-project-lite", 3879 + "tokio", 3880 + ] 3881 + 3882 + [[package]] 3883 + name = "toml" 3884 + version = "0.8.2" 3885 + source = "registry+https://github.com/rust-lang/crates.io-index" 3886 + checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" 3887 + dependencies = [ 3888 + "serde", 3889 + "serde_spanned 0.6.9", 3890 + "toml_datetime 0.6.3", 3891 + "toml_edit 0.20.2", 3892 + ] 3893 + 3894 + [[package]] 3895 + name = "toml" 3896 + version = "0.9.12+spec-1.1.0" 3897 + source = "registry+https://github.com/rust-lang/crates.io-index" 3898 + checksum = "cf92845e79fc2e2def6a5d828f0801e29a2f8acc037becc5ab08595c7d5e9863" 3899 + dependencies = [ 3900 + "indexmap 2.13.0", 3901 + "serde_core", 3902 + "serde_spanned 1.0.4", 3903 + "toml_datetime 0.7.5+spec-1.1.0", 3904 + "toml_parser", 3905 + "toml_writer", 3906 + "winnow 0.7.14", 3907 + ] 3908 + 3909 + [[package]] 3910 + name = "toml_datetime" 3911 + version = "0.6.3" 3912 + source = "registry+https://github.com/rust-lang/crates.io-index" 3913 + checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" 3914 + dependencies = [ 3915 + "serde", 3916 + ] 3917 + 3918 + [[package]] 3919 + name = "toml_datetime" 3920 + version = "0.7.5+spec-1.1.0" 3921 + source = "registry+https://github.com/rust-lang/crates.io-index" 3922 + checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" 3923 + dependencies = [ 3924 + "serde_core", 3925 + ] 3926 + 3927 + [[package]] 3928 + name = "toml_edit" 3929 + version = "0.19.15" 3930 + source = "registry+https://github.com/rust-lang/crates.io-index" 3931 + checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" 3932 + dependencies = [ 3933 + "indexmap 2.13.0", 3934 + "toml_datetime 0.6.3", 3935 + "winnow 0.5.40", 3936 + ] 3937 + 3938 + [[package]] 3939 + name = "toml_edit" 3940 + version = "0.20.2" 3941 + source = "registry+https://github.com/rust-lang/crates.io-index" 3942 + checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" 3943 + dependencies = [ 3944 + "indexmap 2.13.0", 3945 + "serde", 3946 + "serde_spanned 0.6.9", 3947 + "toml_datetime 0.6.3", 3948 + "winnow 0.5.40", 3949 + ] 3950 + 3951 + [[package]] 3952 + name = "toml_edit" 3953 + version = "0.23.10+spec-1.0.0" 3954 + source = "registry+https://github.com/rust-lang/crates.io-index" 3955 + checksum = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269" 3956 + dependencies = [ 3957 + "indexmap 2.13.0", 3958 + "toml_datetime 0.7.5+spec-1.1.0", 3959 + "toml_parser", 3960 + "winnow 0.7.14", 3961 + ] 3962 + 3963 + [[package]] 3964 + name = "toml_parser" 3965 + version = "1.0.9+spec-1.1.0" 3966 + source = "registry+https://github.com/rust-lang/crates.io-index" 3967 + checksum = "702d4415e08923e7e1ef96cd5727c0dfed80b4d2fa25db9647fe5eb6f7c5a4c4" 3968 + dependencies = [ 3969 + "winnow 0.7.14", 3970 + ] 3971 + 3972 + [[package]] 3973 + name = "toml_writer" 3974 + version = "1.0.6+spec-1.1.0" 3975 + source = "registry+https://github.com/rust-lang/crates.io-index" 3976 + checksum = "ab16f14aed21ee8bfd8ec22513f7287cd4a91aa92e44edfe2c17ddd004e92607" 3977 + 3978 + [[package]] 3979 + name = "tower" 3980 + version = "0.5.3" 3981 + source = "registry+https://github.com/rust-lang/crates.io-index" 3982 + checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" 3983 + dependencies = [ 3984 + "futures-core", 3985 + "futures-util", 3986 + "pin-project-lite", 3987 + "sync_wrapper", 3988 + "tokio", 3989 + "tower-layer", 3990 + "tower-service", 3991 + ] 3992 + 3993 + [[package]] 3994 + name = "tower-http" 3995 + version = "0.6.8" 3996 + source = "registry+https://github.com/rust-lang/crates.io-index" 3997 + checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" 3998 + dependencies = [ 3999 + "bitflags 2.11.0", 4000 + "bytes", 4001 + "futures-util", 4002 + "http", 4003 + "http-body", 4004 + "iri-string", 4005 + "pin-project-lite", 4006 + "tower", 4007 + "tower-layer", 4008 + "tower-service", 4009 + ] 4010 + 4011 + [[package]] 4012 + name = "tower-layer" 4013 + version = "0.3.3" 4014 + source = "registry+https://github.com/rust-lang/crates.io-index" 4015 + checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" 4016 + 4017 + [[package]] 4018 + name = "tower-service" 4019 + version = "0.3.3" 4020 + source = "registry+https://github.com/rust-lang/crates.io-index" 4021 + checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" 4022 + 4023 + [[package]] 4024 + name = "tracing" 4025 + version = "0.1.44" 4026 + source = "registry+https://github.com/rust-lang/crates.io-index" 4027 + checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" 4028 + dependencies = [ 4029 + "pin-project-lite", 4030 + "tracing-attributes", 4031 + "tracing-core", 4032 + ] 4033 + 4034 + [[package]] 4035 + name = "tracing-attributes" 4036 + version = "0.1.31" 4037 + source = "registry+https://github.com/rust-lang/crates.io-index" 4038 + checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" 4039 + dependencies = [ 4040 + "proc-macro2", 4041 + "quote", 4042 + "syn 2.0.117", 4043 + ] 4044 + 4045 + [[package]] 4046 + name = "tracing-core" 4047 + version = "0.1.36" 4048 + source = "registry+https://github.com/rust-lang/crates.io-index" 4049 + checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" 4050 + dependencies = [ 4051 + "once_cell", 4052 + ] 4053 + 4054 + [[package]] 4055 + name = "tray-icon" 4056 + version = "0.21.3" 4057 + source = "registry+https://github.com/rust-lang/crates.io-index" 4058 + checksum = "a5e85aa143ceb072062fc4d6356c1b520a51d636e7bc8e77ec94be3608e5e80c" 4059 + dependencies = [ 4060 + "crossbeam-channel", 4061 + "dirs", 4062 + "libappindicator", 4063 + "muda", 4064 + "objc2", 4065 + "objc2-app-kit", 4066 + "objc2-core-foundation", 4067 + "objc2-core-graphics", 4068 + "objc2-foundation", 4069 + "once_cell", 4070 + "png", 4071 + "serde", 4072 + "thiserror 2.0.18", 4073 + "windows-sys 0.60.2", 4074 + ] 4075 + 4076 + [[package]] 4077 + name = "try-lock" 4078 + version = "0.2.5" 4079 + source = "registry+https://github.com/rust-lang/crates.io-index" 4080 + checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" 4081 + 4082 + [[package]] 4083 + name = "typeid" 4084 + version = "1.0.3" 4085 + source = "registry+https://github.com/rust-lang/crates.io-index" 4086 + checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" 4087 + 4088 + [[package]] 4089 + name = "typenum" 4090 + version = "1.19.0" 4091 + source = "registry+https://github.com/rust-lang/crates.io-index" 4092 + checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" 4093 + 4094 + [[package]] 4095 + name = "uds_windows" 4096 + version = "1.1.0" 4097 + source = "registry+https://github.com/rust-lang/crates.io-index" 4098 + checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" 4099 + dependencies = [ 4100 + "memoffset", 4101 + "tempfile", 4102 + "winapi", 4103 + ] 4104 + 4105 + [[package]] 4106 + name = "unic-char-property" 4107 + version = "0.9.0" 4108 + source = "registry+https://github.com/rust-lang/crates.io-index" 4109 + checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221" 4110 + dependencies = [ 4111 + "unic-char-range", 4112 + ] 4113 + 4114 + [[package]] 4115 + name = "unic-char-range" 4116 + version = "0.9.0" 4117 + source = "registry+https://github.com/rust-lang/crates.io-index" 4118 + checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc" 4119 + 4120 + [[package]] 4121 + name = "unic-common" 4122 + version = "0.9.0" 4123 + source = "registry+https://github.com/rust-lang/crates.io-index" 4124 + checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc" 4125 + 4126 + [[package]] 4127 + name = "unic-ucd-ident" 4128 + version = "0.9.0" 4129 + source = "registry+https://github.com/rust-lang/crates.io-index" 4130 + checksum = "e230a37c0381caa9219d67cf063aa3a375ffed5bf541a452db16e744bdab6987" 4131 + dependencies = [ 4132 + "unic-char-property", 4133 + "unic-char-range", 4134 + "unic-ucd-version", 4135 + ] 4136 + 4137 + [[package]] 4138 + name = "unic-ucd-version" 4139 + version = "0.9.0" 4140 + source = "registry+https://github.com/rust-lang/crates.io-index" 4141 + checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4" 4142 + dependencies = [ 4143 + "unic-common", 4144 + ] 4145 + 4146 + [[package]] 4147 + name = "unicode-ident" 4148 + version = "1.0.24" 4149 + source = "registry+https://github.com/rust-lang/crates.io-index" 4150 + checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" 4151 + 4152 + [[package]] 4153 + name = "unicode-segmentation" 4154 + version = "1.12.0" 4155 + source = "registry+https://github.com/rust-lang/crates.io-index" 4156 + checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" 4157 + 4158 + [[package]] 4159 + name = "unicode-xid" 4160 + version = "0.2.6" 4161 + source = "registry+https://github.com/rust-lang/crates.io-index" 4162 + checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" 4163 + 4164 + [[package]] 4165 + name = "url" 4166 + version = "2.5.8" 4167 + source = "registry+https://github.com/rust-lang/crates.io-index" 4168 + checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" 4169 + dependencies = [ 4170 + "form_urlencoded", 4171 + "idna", 4172 + "percent-encoding", 4173 + "serde", 4174 + "serde_derive", 4175 + ] 4176 + 4177 + [[package]] 4178 + name = "urlpattern" 4179 + version = "0.3.0" 4180 + source = "registry+https://github.com/rust-lang/crates.io-index" 4181 + checksum = "70acd30e3aa1450bc2eece896ce2ad0d178e9c079493819301573dae3c37ba6d" 4182 + dependencies = [ 4183 + "regex", 4184 + "serde", 4185 + "unic-ucd-ident", 4186 + "url", 4187 + ] 4188 + 4189 + [[package]] 4190 + name = "utf-8" 4191 + version = "0.7.6" 4192 + source = "registry+https://github.com/rust-lang/crates.io-index" 4193 + checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" 4194 + 4195 + [[package]] 4196 + name = "utf8_iter" 4197 + version = "1.0.4" 4198 + source = "registry+https://github.com/rust-lang/crates.io-index" 4199 + checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" 4200 + 4201 + [[package]] 4202 + name = "uuid" 4203 + version = "1.21.0" 4204 + source = "registry+https://github.com/rust-lang/crates.io-index" 4205 + checksum = "b672338555252d43fd2240c714dc444b8c6fb0a5c5335e65a07bba7742735ddb" 4206 + dependencies = [ 4207 + "getrandom 0.4.1", 4208 + "js-sys", 4209 + "serde_core", 4210 + "wasm-bindgen", 4211 + ] 4212 + 4213 + [[package]] 4214 + name = "version-compare" 4215 + version = "0.2.1" 4216 + source = "registry+https://github.com/rust-lang/crates.io-index" 4217 + checksum = "03c2856837ef78f57382f06b2b8563a2f512f7185d732608fd9176cb3b8edf0e" 4218 + 4219 + [[package]] 4220 + name = "version_check" 4221 + version = "0.9.5" 4222 + source = "registry+https://github.com/rust-lang/crates.io-index" 4223 + checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" 4224 + 4225 + [[package]] 4226 + name = "vswhom" 4227 + version = "0.1.0" 4228 + source = "registry+https://github.com/rust-lang/crates.io-index" 4229 + checksum = "be979b7f07507105799e854203b470ff7c78a1639e330a58f183b5fea574608b" 4230 + dependencies = [ 4231 + "libc", 4232 + "vswhom-sys", 4233 + ] 4234 + 4235 + [[package]] 4236 + name = "vswhom-sys" 4237 + version = "0.1.3" 4238 + source = "registry+https://github.com/rust-lang/crates.io-index" 4239 + checksum = "fb067e4cbd1ff067d1df46c9194b5de0e98efd2810bbc95c5d5e5f25a3231150" 4240 + dependencies = [ 4241 + "cc", 4242 + "libc", 4243 + ] 4244 + 4245 + [[package]] 4246 + name = "walkdir" 4247 + version = "2.5.0" 4248 + source = "registry+https://github.com/rust-lang/crates.io-index" 4249 + checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" 4250 + dependencies = [ 4251 + "same-file", 4252 + "winapi-util", 4253 + ] 4254 + 4255 + [[package]] 4256 + name = "want" 4257 + version = "0.3.1" 4258 + source = "registry+https://github.com/rust-lang/crates.io-index" 4259 + checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" 4260 + dependencies = [ 4261 + "try-lock", 4262 + ] 4263 + 4264 + [[package]] 4265 + name = "wasi" 4266 + version = "0.9.0+wasi-snapshot-preview1" 4267 + source = "registry+https://github.com/rust-lang/crates.io-index" 4268 + checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" 4269 + 4270 + [[package]] 4271 + name = "wasi" 4272 + version = "0.11.1+wasi-snapshot-preview1" 4273 + source = "registry+https://github.com/rust-lang/crates.io-index" 4274 + checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" 4275 + 4276 + [[package]] 4277 + name = "wasip2" 4278 + version = "1.0.2+wasi-0.2.9" 4279 + source = "registry+https://github.com/rust-lang/crates.io-index" 4280 + checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" 4281 + dependencies = [ 4282 + "wit-bindgen", 4283 + ] 4284 + 4285 + [[package]] 4286 + name = "wasip3" 4287 + version = "0.4.0+wasi-0.3.0-rc-2026-01-06" 4288 + source = "registry+https://github.com/rust-lang/crates.io-index" 4289 + checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" 4290 + dependencies = [ 4291 + "wit-bindgen", 4292 + ] 4293 + 4294 + [[package]] 4295 + name = "wasm-bindgen" 4296 + version = "0.2.114" 4297 + source = "registry+https://github.com/rust-lang/crates.io-index" 4298 + checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e" 4299 + dependencies = [ 4300 + "cfg-if", 4301 + "once_cell", 4302 + "rustversion", 4303 + "wasm-bindgen-macro", 4304 + "wasm-bindgen-shared", 4305 + ] 4306 + 4307 + [[package]] 4308 + name = "wasm-bindgen-futures" 4309 + version = "0.4.64" 4310 + source = "registry+https://github.com/rust-lang/crates.io-index" 4311 + checksum = "e9c5522b3a28661442748e09d40924dfb9ca614b21c00d3fd135720e48b67db8" 4312 + dependencies = [ 4313 + "cfg-if", 4314 + "futures-util", 4315 + "js-sys", 4316 + "once_cell", 4317 + "wasm-bindgen", 4318 + "web-sys", 4319 + ] 4320 + 4321 + [[package]] 4322 + name = "wasm-bindgen-macro" 4323 + version = "0.2.114" 4324 + source = "registry+https://github.com/rust-lang/crates.io-index" 4325 + checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6" 4326 + dependencies = [ 4327 + "quote", 4328 + "wasm-bindgen-macro-support", 4329 + ] 4330 + 4331 + [[package]] 4332 + name = "wasm-bindgen-macro-support" 4333 + version = "0.2.114" 4334 + source = "registry+https://github.com/rust-lang/crates.io-index" 4335 + checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3" 4336 + dependencies = [ 4337 + "bumpalo", 4338 + "proc-macro2", 4339 + "quote", 4340 + "syn 2.0.117", 4341 + "wasm-bindgen-shared", 4342 + ] 4343 + 4344 + [[package]] 4345 + name = "wasm-bindgen-shared" 4346 + version = "0.2.114" 4347 + source = "registry+https://github.com/rust-lang/crates.io-index" 4348 + checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16" 4349 + dependencies = [ 4350 + "unicode-ident", 4351 + ] 4352 + 4353 + [[package]] 4354 + name = "wasm-encoder" 4355 + version = "0.244.0" 4356 + source = "registry+https://github.com/rust-lang/crates.io-index" 4357 + checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" 4358 + dependencies = [ 4359 + "leb128fmt", 4360 + "wasmparser", 4361 + ] 4362 + 4363 + [[package]] 4364 + name = "wasm-metadata" 4365 + version = "0.244.0" 4366 + source = "registry+https://github.com/rust-lang/crates.io-index" 4367 + checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" 4368 + dependencies = [ 4369 + "anyhow", 4370 + "indexmap 2.13.0", 4371 + "wasm-encoder", 4372 + "wasmparser", 4373 + ] 4374 + 4375 + [[package]] 4376 + name = "wasm-streams" 4377 + version = "0.5.0" 4378 + source = "registry+https://github.com/rust-lang/crates.io-index" 4379 + checksum = "9d1ec4f6517c9e11ae630e200b2b65d193279042e28edd4a2cda233e46670bbb" 4380 + dependencies = [ 4381 + "futures-util", 4382 + "js-sys", 4383 + "wasm-bindgen", 4384 + "wasm-bindgen-futures", 4385 + "web-sys", 4386 + ] 4387 + 4388 + [[package]] 4389 + name = "wasmparser" 4390 + version = "0.244.0" 4391 + source = "registry+https://github.com/rust-lang/crates.io-index" 4392 + checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" 4393 + dependencies = [ 4394 + "bitflags 2.11.0", 4395 + "hashbrown 0.15.5", 4396 + "indexmap 2.13.0", 4397 + "semver", 4398 + ] 4399 + 4400 + [[package]] 4401 + name = "web-sys" 4402 + version = "0.3.91" 4403 + source = "registry+https://github.com/rust-lang/crates.io-index" 4404 + checksum = "854ba17bb104abfb26ba36da9729addc7ce7f06f5c0f90f3c391f8461cca21f9" 4405 + dependencies = [ 4406 + "js-sys", 4407 + "wasm-bindgen", 4408 + ] 4409 + 4410 + [[package]] 4411 + name = "webkit2gtk" 4412 + version = "2.0.2" 4413 + source = "registry+https://github.com/rust-lang/crates.io-index" 4414 + checksum = "a1027150013530fb2eaf806408df88461ae4815a45c541c8975e61d6f2fc4793" 4415 + dependencies = [ 4416 + "bitflags 1.3.2", 4417 + "cairo-rs", 4418 + "gdk", 4419 + "gdk-sys", 4420 + "gio", 4421 + "gio-sys", 4422 + "glib", 4423 + "glib-sys", 4424 + "gobject-sys", 4425 + "gtk", 4426 + "gtk-sys", 4427 + "javascriptcore-rs", 4428 + "libc", 4429 + "once_cell", 4430 + "soup3", 4431 + "webkit2gtk-sys", 4432 + ] 4433 + 4434 + [[package]] 4435 + name = "webkit2gtk-sys" 4436 + version = "2.0.2" 4437 + source = "registry+https://github.com/rust-lang/crates.io-index" 4438 + checksum = "916a5f65c2ef0dfe12fff695960a2ec3d4565359fdbb2e9943c974e06c734ea5" 4439 + dependencies = [ 4440 + "bitflags 1.3.2", 4441 + "cairo-sys-rs", 4442 + "gdk-sys", 4443 + "gio-sys", 4444 + "glib-sys", 4445 + "gobject-sys", 4446 + "gtk-sys", 4447 + "javascriptcore-rs-sys", 4448 + "libc", 4449 + "pkg-config", 4450 + "soup3-sys", 4451 + "system-deps", 4452 + ] 4453 + 4454 + [[package]] 4455 + name = "webview2-com" 4456 + version = "0.38.2" 4457 + source = "registry+https://github.com/rust-lang/crates.io-index" 4458 + checksum = "7130243a7a5b33c54a444e54842e6a9e133de08b5ad7b5861cd8ed9a6a5bc96a" 4459 + dependencies = [ 4460 + "webview2-com-macros", 4461 + "webview2-com-sys", 4462 + "windows", 4463 + "windows-core 0.61.2", 4464 + "windows-implement", 4465 + "windows-interface", 4466 + ] 4467 + 4468 + [[package]] 4469 + name = "webview2-com-macros" 4470 + version = "0.8.1" 4471 + source = "registry+https://github.com/rust-lang/crates.io-index" 4472 + checksum = "67a921c1b6914c367b2b823cd4cde6f96beec77d30a939c8199bb377cf9b9b54" 4473 + dependencies = [ 4474 + "proc-macro2", 4475 + "quote", 4476 + "syn 2.0.117", 4477 + ] 4478 + 4479 + [[package]] 4480 + name = "webview2-com-sys" 4481 + version = "0.38.2" 4482 + source = "registry+https://github.com/rust-lang/crates.io-index" 4483 + checksum = "381336cfffd772377d291702245447a5251a2ffa5bad679c99e61bc48bacbf9c" 4484 + dependencies = [ 4485 + "thiserror 2.0.18", 4486 + "windows", 4487 + "windows-core 0.61.2", 4488 + ] 4489 + 4490 + [[package]] 4491 + name = "winapi" 4492 + version = "0.3.9" 4493 + source = "registry+https://github.com/rust-lang/crates.io-index" 4494 + checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 4495 + dependencies = [ 4496 + "winapi-i686-pc-windows-gnu", 4497 + "winapi-x86_64-pc-windows-gnu", 4498 + ] 4499 + 4500 + [[package]] 4501 + name = "winapi-i686-pc-windows-gnu" 4502 + version = "0.4.0" 4503 + source = "registry+https://github.com/rust-lang/crates.io-index" 4504 + checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 4505 + 4506 + [[package]] 4507 + name = "winapi-util" 4508 + version = "0.1.11" 4509 + source = "registry+https://github.com/rust-lang/crates.io-index" 4510 + checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" 4511 + dependencies = [ 4512 + "windows-sys 0.61.2", 4513 + ] 4514 + 4515 + [[package]] 4516 + name = "winapi-x86_64-pc-windows-gnu" 4517 + version = "0.4.0" 4518 + source = "registry+https://github.com/rust-lang/crates.io-index" 4519 + checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 4520 + 4521 + [[package]] 4522 + name = "window-vibrancy" 4523 + version = "0.6.0" 4524 + source = "registry+https://github.com/rust-lang/crates.io-index" 4525 + checksum = "d9bec5a31f3f9362f2258fd0e9c9dd61a9ca432e7306cc78c444258f0dce9a9c" 4526 + dependencies = [ 4527 + "objc2", 4528 + "objc2-app-kit", 4529 + "objc2-core-foundation", 4530 + "objc2-foundation", 4531 + "raw-window-handle", 4532 + "windows-sys 0.59.0", 4533 + "windows-version", 4534 + ] 4535 + 4536 + [[package]] 4537 + name = "windows" 4538 + version = "0.61.3" 4539 + source = "registry+https://github.com/rust-lang/crates.io-index" 4540 + checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" 4541 + dependencies = [ 4542 + "windows-collections", 4543 + "windows-core 0.61.2", 4544 + "windows-future", 4545 + "windows-link 0.1.3", 4546 + "windows-numerics", 4547 + ] 4548 + 4549 + [[package]] 4550 + name = "windows-collections" 4551 + version = "0.2.0" 4552 + source = "registry+https://github.com/rust-lang/crates.io-index" 4553 + checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" 4554 + dependencies = [ 4555 + "windows-core 0.61.2", 4556 + ] 4557 + 4558 + [[package]] 4559 + name = "windows-core" 4560 + version = "0.61.2" 4561 + source = "registry+https://github.com/rust-lang/crates.io-index" 4562 + checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" 4563 + dependencies = [ 4564 + "windows-implement", 4565 + "windows-interface", 4566 + "windows-link 0.1.3", 4567 + "windows-result 0.3.4", 4568 + "windows-strings 0.4.2", 4569 + ] 4570 + 4571 + [[package]] 4572 + name = "windows-core" 4573 + version = "0.62.2" 4574 + source = "registry+https://github.com/rust-lang/crates.io-index" 4575 + checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" 4576 + dependencies = [ 4577 + "windows-implement", 4578 + "windows-interface", 4579 + "windows-link 0.2.1", 4580 + "windows-result 0.4.1", 4581 + "windows-strings 0.5.1", 4582 + ] 4583 + 4584 + [[package]] 4585 + name = "windows-future" 4586 + version = "0.2.1" 4587 + source = "registry+https://github.com/rust-lang/crates.io-index" 4588 + checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" 4589 + dependencies = [ 4590 + "windows-core 0.61.2", 4591 + "windows-link 0.1.3", 4592 + "windows-threading", 4593 + ] 4594 + 4595 + [[package]] 4596 + name = "windows-implement" 4597 + version = "0.60.2" 4598 + source = "registry+https://github.com/rust-lang/crates.io-index" 4599 + checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" 4600 + dependencies = [ 4601 + "proc-macro2", 4602 + "quote", 4603 + "syn 2.0.117", 4604 + ] 4605 + 4606 + [[package]] 4607 + name = "windows-interface" 4608 + version = "0.59.3" 4609 + source = "registry+https://github.com/rust-lang/crates.io-index" 4610 + checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" 4611 + dependencies = [ 4612 + "proc-macro2", 4613 + "quote", 4614 + "syn 2.0.117", 4615 + ] 4616 + 4617 + [[package]] 4618 + name = "windows-link" 4619 + version = "0.1.3" 4620 + source = "registry+https://github.com/rust-lang/crates.io-index" 4621 + checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" 4622 + 4623 + [[package]] 4624 + name = "windows-link" 4625 + version = "0.2.1" 4626 + source = "registry+https://github.com/rust-lang/crates.io-index" 4627 + checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" 4628 + 4629 + [[package]] 4630 + name = "windows-numerics" 4631 + version = "0.2.0" 4632 + source = "registry+https://github.com/rust-lang/crates.io-index" 4633 + checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" 4634 + dependencies = [ 4635 + "windows-core 0.61.2", 4636 + "windows-link 0.1.3", 4637 + ] 4638 + 4639 + [[package]] 4640 + name = "windows-result" 4641 + version = "0.3.4" 4642 + source = "registry+https://github.com/rust-lang/crates.io-index" 4643 + checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" 4644 + dependencies = [ 4645 + "windows-link 0.1.3", 4646 + ] 4647 + 4648 + [[package]] 4649 + name = "windows-result" 4650 + version = "0.4.1" 4651 + source = "registry+https://github.com/rust-lang/crates.io-index" 4652 + checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" 4653 + dependencies = [ 4654 + "windows-link 0.2.1", 4655 + ] 4656 + 4657 + [[package]] 4658 + name = "windows-strings" 4659 + version = "0.4.2" 4660 + source = "registry+https://github.com/rust-lang/crates.io-index" 4661 + checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" 4662 + dependencies = [ 4663 + "windows-link 0.1.3", 4664 + ] 4665 + 4666 + [[package]] 4667 + name = "windows-strings" 4668 + version = "0.5.1" 4669 + source = "registry+https://github.com/rust-lang/crates.io-index" 4670 + checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" 4671 + dependencies = [ 4672 + "windows-link 0.2.1", 4673 + ] 4674 + 4675 + [[package]] 4676 + name = "windows-sys" 4677 + version = "0.45.0" 4678 + source = "registry+https://github.com/rust-lang/crates.io-index" 4679 + checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" 4680 + dependencies = [ 4681 + "windows-targets 0.42.2", 4682 + ] 4683 + 4684 + [[package]] 4685 + name = "windows-sys" 4686 + version = "0.59.0" 4687 + source = "registry+https://github.com/rust-lang/crates.io-index" 4688 + checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" 4689 + dependencies = [ 4690 + "windows-targets 0.52.6", 4691 + ] 4692 + 4693 + [[package]] 4694 + name = "windows-sys" 4695 + version = "0.60.2" 4696 + source = "registry+https://github.com/rust-lang/crates.io-index" 4697 + checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" 4698 + dependencies = [ 4699 + "windows-targets 0.53.5", 4700 + ] 4701 + 4702 + [[package]] 4703 + name = "windows-sys" 4704 + version = "0.61.2" 4705 + source = "registry+https://github.com/rust-lang/crates.io-index" 4706 + checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" 4707 + dependencies = [ 4708 + "windows-link 0.2.1", 4709 + ] 4710 + 4711 + [[package]] 4712 + name = "windows-targets" 4713 + version = "0.42.2" 4714 + source = "registry+https://github.com/rust-lang/crates.io-index" 4715 + checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" 4716 + dependencies = [ 4717 + "windows_aarch64_gnullvm 0.42.2", 4718 + "windows_aarch64_msvc 0.42.2", 4719 + "windows_i686_gnu 0.42.2", 4720 + "windows_i686_msvc 0.42.2", 4721 + "windows_x86_64_gnu 0.42.2", 4722 + "windows_x86_64_gnullvm 0.42.2", 4723 + "windows_x86_64_msvc 0.42.2", 4724 + ] 4725 + 4726 + [[package]] 4727 + name = "windows-targets" 4728 + version = "0.52.6" 4729 + source = "registry+https://github.com/rust-lang/crates.io-index" 4730 + checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 4731 + dependencies = [ 4732 + "windows_aarch64_gnullvm 0.52.6", 4733 + "windows_aarch64_msvc 0.52.6", 4734 + "windows_i686_gnu 0.52.6", 4735 + "windows_i686_gnullvm 0.52.6", 4736 + "windows_i686_msvc 0.52.6", 4737 + "windows_x86_64_gnu 0.52.6", 4738 + "windows_x86_64_gnullvm 0.52.6", 4739 + "windows_x86_64_msvc 0.52.6", 4740 + ] 4741 + 4742 + [[package]] 4743 + name = "windows-targets" 4744 + version = "0.53.5" 4745 + source = "registry+https://github.com/rust-lang/crates.io-index" 4746 + checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" 4747 + dependencies = [ 4748 + "windows-link 0.2.1", 4749 + "windows_aarch64_gnullvm 0.53.1", 4750 + "windows_aarch64_msvc 0.53.1", 4751 + "windows_i686_gnu 0.53.1", 4752 + "windows_i686_gnullvm 0.53.1", 4753 + "windows_i686_msvc 0.53.1", 4754 + "windows_x86_64_gnu 0.53.1", 4755 + "windows_x86_64_gnullvm 0.53.1", 4756 + "windows_x86_64_msvc 0.53.1", 4757 + ] 4758 + 4759 + [[package]] 4760 + name = "windows-threading" 4761 + version = "0.1.0" 4762 + source = "registry+https://github.com/rust-lang/crates.io-index" 4763 + checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" 4764 + dependencies = [ 4765 + "windows-link 0.1.3", 4766 + ] 4767 + 4768 + [[package]] 4769 + name = "windows-version" 4770 + version = "0.1.7" 4771 + source = "registry+https://github.com/rust-lang/crates.io-index" 4772 + checksum = "e4060a1da109b9d0326b7262c8e12c84df67cc0dbc9e33cf49e01ccc2eb63631" 4773 + dependencies = [ 4774 + "windows-link 0.2.1", 4775 + ] 4776 + 4777 + [[package]] 4778 + name = "windows_aarch64_gnullvm" 4779 + version = "0.42.2" 4780 + source = "registry+https://github.com/rust-lang/crates.io-index" 4781 + checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" 4782 + 4783 + [[package]] 4784 + name = "windows_aarch64_gnullvm" 4785 + version = "0.52.6" 4786 + source = "registry+https://github.com/rust-lang/crates.io-index" 4787 + checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 4788 + 4789 + [[package]] 4790 + name = "windows_aarch64_gnullvm" 4791 + version = "0.53.1" 4792 + source = "registry+https://github.com/rust-lang/crates.io-index" 4793 + checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" 4794 + 4795 + [[package]] 4796 + name = "windows_aarch64_msvc" 4797 + version = "0.42.2" 4798 + source = "registry+https://github.com/rust-lang/crates.io-index" 4799 + checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" 4800 + 4801 + [[package]] 4802 + name = "windows_aarch64_msvc" 4803 + version = "0.52.6" 4804 + source = "registry+https://github.com/rust-lang/crates.io-index" 4805 + checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 4806 + 4807 + [[package]] 4808 + name = "windows_aarch64_msvc" 4809 + version = "0.53.1" 4810 + source = "registry+https://github.com/rust-lang/crates.io-index" 4811 + checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" 4812 + 4813 + [[package]] 4814 + name = "windows_i686_gnu" 4815 + version = "0.42.2" 4816 + source = "registry+https://github.com/rust-lang/crates.io-index" 4817 + checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" 4818 + 4819 + [[package]] 4820 + name = "windows_i686_gnu" 4821 + version = "0.52.6" 4822 + source = "registry+https://github.com/rust-lang/crates.io-index" 4823 + checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 4824 + 4825 + [[package]] 4826 + name = "windows_i686_gnu" 4827 + version = "0.53.1" 4828 + source = "registry+https://github.com/rust-lang/crates.io-index" 4829 + checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" 4830 + 4831 + [[package]] 4832 + name = "windows_i686_gnullvm" 4833 + version = "0.52.6" 4834 + source = "registry+https://github.com/rust-lang/crates.io-index" 4835 + checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 4836 + 4837 + [[package]] 4838 + name = "windows_i686_gnullvm" 4839 + version = "0.53.1" 4840 + source = "registry+https://github.com/rust-lang/crates.io-index" 4841 + checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" 4842 + 4843 + [[package]] 4844 + name = "windows_i686_msvc" 4845 + version = "0.42.2" 4846 + source = "registry+https://github.com/rust-lang/crates.io-index" 4847 + checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" 4848 + 4849 + [[package]] 4850 + name = "windows_i686_msvc" 4851 + version = "0.52.6" 4852 + source = "registry+https://github.com/rust-lang/crates.io-index" 4853 + checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 4854 + 4855 + [[package]] 4856 + name = "windows_i686_msvc" 4857 + version = "0.53.1" 4858 + source = "registry+https://github.com/rust-lang/crates.io-index" 4859 + checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" 4860 + 4861 + [[package]] 4862 + name = "windows_x86_64_gnu" 4863 + version = "0.42.2" 4864 + source = "registry+https://github.com/rust-lang/crates.io-index" 4865 + checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" 4866 + 4867 + [[package]] 4868 + name = "windows_x86_64_gnu" 4869 + version = "0.52.6" 4870 + source = "registry+https://github.com/rust-lang/crates.io-index" 4871 + checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 4872 + 4873 + [[package]] 4874 + name = "windows_x86_64_gnu" 4875 + version = "0.53.1" 4876 + source = "registry+https://github.com/rust-lang/crates.io-index" 4877 + checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" 4878 + 4879 + [[package]] 4880 + name = "windows_x86_64_gnullvm" 4881 + version = "0.42.2" 4882 + source = "registry+https://github.com/rust-lang/crates.io-index" 4883 + checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" 4884 + 4885 + [[package]] 4886 + name = "windows_x86_64_gnullvm" 4887 + version = "0.52.6" 4888 + source = "registry+https://github.com/rust-lang/crates.io-index" 4889 + checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 4890 + 4891 + [[package]] 4892 + name = "windows_x86_64_gnullvm" 4893 + version = "0.53.1" 4894 + source = "registry+https://github.com/rust-lang/crates.io-index" 4895 + checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" 4896 + 4897 + [[package]] 4898 + name = "windows_x86_64_msvc" 4899 + version = "0.42.2" 4900 + source = "registry+https://github.com/rust-lang/crates.io-index" 4901 + checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" 4902 + 4903 + [[package]] 4904 + name = "windows_x86_64_msvc" 4905 + version = "0.52.6" 4906 + source = "registry+https://github.com/rust-lang/crates.io-index" 4907 + checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 4908 + 4909 + [[package]] 4910 + name = "windows_x86_64_msvc" 4911 + version = "0.53.1" 4912 + source = "registry+https://github.com/rust-lang/crates.io-index" 4913 + checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" 4914 + 4915 + [[package]] 4916 + name = "winnow" 4917 + version = "0.5.40" 4918 + source = "registry+https://github.com/rust-lang/crates.io-index" 4919 + checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" 4920 + dependencies = [ 4921 + "memchr", 4922 + ] 4923 + 4924 + [[package]] 4925 + name = "winnow" 4926 + version = "0.7.14" 4927 + source = "registry+https://github.com/rust-lang/crates.io-index" 4928 + checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" 4929 + dependencies = [ 4930 + "memchr", 4931 + ] 4932 + 4933 + [[package]] 4934 + name = "winreg" 4935 + version = "0.55.0" 4936 + source = "registry+https://github.com/rust-lang/crates.io-index" 4937 + checksum = "cb5a765337c50e9ec252c2069be9bf91c7df47afb103b642ba3a53bf8101be97" 4938 + dependencies = [ 4939 + "cfg-if", 4940 + "windows-sys 0.59.0", 4941 + ] 4942 + 4943 + [[package]] 4944 + name = "wit-bindgen" 4945 + version = "0.51.0" 4946 + source = "registry+https://github.com/rust-lang/crates.io-index" 4947 + checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" 4948 + dependencies = [ 4949 + "wit-bindgen-rust-macro", 4950 + ] 4951 + 4952 + [[package]] 4953 + name = "wit-bindgen-core" 4954 + version = "0.51.0" 4955 + source = "registry+https://github.com/rust-lang/crates.io-index" 4956 + checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" 4957 + dependencies = [ 4958 + "anyhow", 4959 + "heck 0.5.0", 4960 + "wit-parser", 4961 + ] 4962 + 4963 + [[package]] 4964 + name = "wit-bindgen-rust" 4965 + version = "0.51.0" 4966 + source = "registry+https://github.com/rust-lang/crates.io-index" 4967 + checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" 4968 + dependencies = [ 4969 + "anyhow", 4970 + "heck 0.5.0", 4971 + "indexmap 2.13.0", 4972 + "prettyplease", 4973 + "syn 2.0.117", 4974 + "wasm-metadata", 4975 + "wit-bindgen-core", 4976 + "wit-component", 4977 + ] 4978 + 4979 + [[package]] 4980 + name = "wit-bindgen-rust-macro" 4981 + version = "0.51.0" 4982 + source = "registry+https://github.com/rust-lang/crates.io-index" 4983 + checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" 4984 + dependencies = [ 4985 + "anyhow", 4986 + "prettyplease", 4987 + "proc-macro2", 4988 + "quote", 4989 + "syn 2.0.117", 4990 + "wit-bindgen-core", 4991 + "wit-bindgen-rust", 4992 + ] 4993 + 4994 + [[package]] 4995 + name = "wit-component" 4996 + version = "0.244.0" 4997 + source = "registry+https://github.com/rust-lang/crates.io-index" 4998 + checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" 4999 + dependencies = [ 5000 + "anyhow", 5001 + "bitflags 2.11.0", 5002 + "indexmap 2.13.0", 5003 + "log", 5004 + "serde", 5005 + "serde_derive", 5006 + "serde_json", 5007 + "wasm-encoder", 5008 + "wasm-metadata", 5009 + "wasmparser", 5010 + "wit-parser", 5011 + ] 5012 + 5013 + [[package]] 5014 + name = "wit-parser" 5015 + version = "0.244.0" 5016 + source = "registry+https://github.com/rust-lang/crates.io-index" 5017 + checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" 5018 + dependencies = [ 5019 + "anyhow", 5020 + "id-arena", 5021 + "indexmap 2.13.0", 5022 + "log", 5023 + "semver", 5024 + "serde", 5025 + "serde_derive", 5026 + "serde_json", 5027 + "unicode-xid", 5028 + "wasmparser", 5029 + ] 5030 + 5031 + [[package]] 5032 + name = "writeable" 5033 + version = "0.6.2" 5034 + source = "registry+https://github.com/rust-lang/crates.io-index" 5035 + checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" 5036 + 5037 + [[package]] 5038 + name = "wry" 5039 + version = "0.54.2" 5040 + source = "registry+https://github.com/rust-lang/crates.io-index" 5041 + checksum = "bb26159b420aa77684589a744ae9a9461a95395b848764ad12290a14d960a11a" 5042 + dependencies = [ 5043 + "base64 0.22.1", 5044 + "block2", 5045 + "cookie", 5046 + "crossbeam-channel", 5047 + "dirs", 5048 + "dpi", 5049 + "dunce", 5050 + "gdkx11", 5051 + "gtk", 5052 + "html5ever", 5053 + "http", 5054 + "javascriptcore-rs", 5055 + "jni", 5056 + "kuchikiki", 5057 + "libc", 5058 + "ndk", 5059 + "objc2", 5060 + "objc2-app-kit", 5061 + "objc2-core-foundation", 5062 + "objc2-foundation", 5063 + "objc2-ui-kit", 5064 + "objc2-web-kit", 5065 + "once_cell", 5066 + "percent-encoding", 5067 + "raw-window-handle", 5068 + "sha2", 5069 + "soup3", 5070 + "tao-macros", 5071 + "thiserror 2.0.18", 5072 + "url", 5073 + "webkit2gtk", 5074 + "webkit2gtk-sys", 5075 + "webview2-com", 5076 + "windows", 5077 + "windows-core 0.61.2", 5078 + "windows-version", 5079 + "x11-dl", 5080 + ] 5081 + 5082 + [[package]] 5083 + name = "x11" 5084 + version = "2.21.0" 5085 + source = "registry+https://github.com/rust-lang/crates.io-index" 5086 + checksum = "502da5464ccd04011667b11c435cb992822c2c0dbde1770c988480d312a0db2e" 5087 + dependencies = [ 5088 + "libc", 5089 + "pkg-config", 5090 + ] 5091 + 5092 + [[package]] 5093 + name = "x11-dl" 5094 + version = "2.21.0" 5095 + source = "registry+https://github.com/rust-lang/crates.io-index" 5096 + checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" 5097 + dependencies = [ 5098 + "libc", 5099 + "once_cell", 5100 + "pkg-config", 5101 + ] 5102 + 5103 + [[package]] 5104 + name = "yoke" 5105 + version = "0.8.1" 5106 + source = "registry+https://github.com/rust-lang/crates.io-index" 5107 + checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" 5108 + dependencies = [ 5109 + "stable_deref_trait", 5110 + "yoke-derive", 5111 + "zerofrom", 5112 + ] 5113 + 5114 + [[package]] 5115 + name = "yoke-derive" 5116 + version = "0.8.1" 5117 + source = "registry+https://github.com/rust-lang/crates.io-index" 5118 + checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" 5119 + dependencies = [ 5120 + "proc-macro2", 5121 + "quote", 5122 + "syn 2.0.117", 5123 + "synstructure", 5124 + ] 5125 + 5126 + [[package]] 5127 + name = "zbus" 5128 + version = "5.14.0" 5129 + source = "registry+https://github.com/rust-lang/crates.io-index" 5130 + checksum = "ca82f95dbd3943a40a53cfded6c2d0a2ca26192011846a1810c4256ef92c60bc" 5131 + dependencies = [ 5132 + "async-broadcast", 5133 + "async-executor", 5134 + "async-io", 5135 + "async-lock", 5136 + "async-process", 5137 + "async-recursion", 5138 + "async-task", 5139 + "async-trait", 5140 + "blocking", 5141 + "enumflags2", 5142 + "event-listener", 5143 + "futures-core", 5144 + "futures-lite", 5145 + "hex", 5146 + "libc", 5147 + "ordered-stream", 5148 + "rustix", 5149 + "serde", 5150 + "serde_repr", 5151 + "tracing", 5152 + "uds_windows", 5153 + "uuid", 5154 + "windows-sys 0.61.2", 5155 + "winnow 0.7.14", 5156 + "zbus_macros", 5157 + "zbus_names", 5158 + "zvariant", 5159 + ] 5160 + 5161 + [[package]] 5162 + name = "zbus_macros" 5163 + version = "5.14.0" 5164 + source = "registry+https://github.com/rust-lang/crates.io-index" 5165 + checksum = "897e79616e84aac4b2c46e9132a4f63b93105d54fe8c0e8f6bffc21fa8d49222" 5166 + dependencies = [ 5167 + "proc-macro-crate 3.4.0", 5168 + "proc-macro2", 5169 + "quote", 5170 + "syn 2.0.117", 5171 + "zbus_names", 5172 + "zvariant", 5173 + "zvariant_utils", 5174 + ] 5175 + 5176 + [[package]] 5177 + name = "zbus_names" 5178 + version = "4.3.1" 5179 + source = "registry+https://github.com/rust-lang/crates.io-index" 5180 + checksum = "ffd8af6d5b78619bab301ff3c560a5bd22426150253db278f164d6cf3b72c50f" 5181 + dependencies = [ 5182 + "serde", 5183 + "winnow 0.7.14", 5184 + "zvariant", 5185 + ] 5186 + 5187 + [[package]] 5188 + name = "zerocopy" 5189 + version = "0.8.40" 5190 + source = "registry+https://github.com/rust-lang/crates.io-index" 5191 + checksum = "a789c6e490b576db9f7e6b6d661bcc9799f7c0ac8352f56ea20193b2681532e5" 5192 + dependencies = [ 5193 + "zerocopy-derive", 5194 + ] 5195 + 5196 + [[package]] 5197 + name = "zerocopy-derive" 5198 + version = "0.8.40" 5199 + source = "registry+https://github.com/rust-lang/crates.io-index" 5200 + checksum = "f65c489a7071a749c849713807783f70672b28094011623e200cb86dcb835953" 5201 + dependencies = [ 5202 + "proc-macro2", 5203 + "quote", 5204 + "syn 2.0.117", 5205 + ] 5206 + 5207 + [[package]] 5208 + name = "zerofrom" 5209 + version = "0.1.6" 5210 + source = "registry+https://github.com/rust-lang/crates.io-index" 5211 + checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" 5212 + dependencies = [ 5213 + "zerofrom-derive", 5214 + ] 5215 + 5216 + [[package]] 5217 + name = "zerofrom-derive" 5218 + version = "0.1.6" 5219 + source = "registry+https://github.com/rust-lang/crates.io-index" 5220 + checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" 5221 + dependencies = [ 5222 + "proc-macro2", 5223 + "quote", 5224 + "syn 2.0.117", 5225 + "synstructure", 5226 + ] 5227 + 5228 + [[package]] 5229 + name = "zerotrie" 5230 + version = "0.2.3" 5231 + source = "registry+https://github.com/rust-lang/crates.io-index" 5232 + checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" 5233 + dependencies = [ 5234 + "displaydoc", 5235 + "yoke", 5236 + "zerofrom", 5237 + ] 5238 + 5239 + [[package]] 5240 + name = "zerovec" 5241 + version = "0.11.5" 5242 + source = "registry+https://github.com/rust-lang/crates.io-index" 5243 + checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" 5244 + dependencies = [ 5245 + "yoke", 5246 + "zerofrom", 5247 + "zerovec-derive", 5248 + ] 5249 + 5250 + [[package]] 5251 + name = "zerovec-derive" 5252 + version = "0.11.2" 5253 + source = "registry+https://github.com/rust-lang/crates.io-index" 5254 + checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" 5255 + dependencies = [ 5256 + "proc-macro2", 5257 + "quote", 5258 + "syn 2.0.117", 5259 + ] 5260 + 5261 + [[package]] 5262 + name = "zmij" 5263 + version = "1.0.21" 5264 + source = "registry+https://github.com/rust-lang/crates.io-index" 5265 + checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" 5266 + 5267 + [[package]] 5268 + name = "zvariant" 5269 + version = "5.10.0" 5270 + source = "registry+https://github.com/rust-lang/crates.io-index" 5271 + checksum = "5708299b21903bbe348e94729f22c49c55d04720a004aa350f1f9c122fd2540b" 5272 + dependencies = [ 5273 + "endi", 5274 + "enumflags2", 5275 + "serde", 5276 + "winnow 0.7.14", 5277 + "zvariant_derive", 5278 + "zvariant_utils", 5279 + ] 5280 + 5281 + [[package]] 5282 + name = "zvariant_derive" 5283 + version = "5.10.0" 5284 + source = "registry+https://github.com/rust-lang/crates.io-index" 5285 + checksum = "5b59b012ebe9c46656f9cc08d8da8b4c726510aef12559da3e5f1bf72780752c" 5286 + dependencies = [ 5287 + "proc-macro-crate 3.4.0", 5288 + "proc-macro2", 5289 + "quote", 5290 + "syn 2.0.117", 5291 + "zvariant_utils", 5292 + ] 5293 + 5294 + [[package]] 5295 + name = "zvariant_utils" 5296 + version = "3.3.0" 5297 + source = "registry+https://github.com/rust-lang/crates.io-index" 5298 + checksum = "f75c23a64ef8f40f13a6989991e643554d9bef1d682a281160cf0c1bc389c5e9" 5299 + dependencies = [ 5300 + "proc-macro2", 5301 + "quote", 5302 + "serde", 5303 + "syn 2.0.117", 5304 + "winnow 0.7.14", 5305 + ]
+36
mobile/src-tauri/Cargo.toml
··· 1 + [package] 2 + name = "ferrum_mobile" 3 + edition = "2024" 4 + default-run = "ferrum_mobile" 5 + 6 + # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 7 + 8 + [lib] 9 + # The `_lib` suffix may seem redundant but it is necessary 10 + # to make the lib name unique and wouldn't conflict with the bin name. 11 + # This seems to be only an issue on Windows, see https://github.com/rust-lang/cargo/issues/8519 12 + name = "ferrum_lib" 13 + crate-type = ["staticlib", "cdylib", "rlib"] 14 + 15 + [build-dependencies] 16 + tauri-build = { version = "2", features = [] } 17 + 18 + [dependencies] 19 + tauri = { version = "2", features = ["devtools"] } 20 + tauri-plugin-opener = "2" 21 + serde = { version = "1", features = ["derive"] } 22 + serde_json = "1" 23 + ferrum = { path = "../../", default-features = false } 24 + anyhow = "1.0.89" 25 + tauri-specta = { version = "=2.0.0-rc.21", features = ["derive", "typescript"] } 26 + specta-typescript = "0.0.9" 27 + specta = "=2.0.0-rc.22" 28 + tauri-plugin-dialog = "2" 29 + simd-json = "0.16.0" 30 + tauri-plugin-fs = "2" 31 + tauri-plugin-store = "2" 32 + tauri-plugin-safe-area-insets-css = "0.2.0" 33 + 34 + [target.'cfg(target_os = "android")'.dependencies] 35 + android_logger = "0.15.1" 36 + log = "0.4.29"
+3
mobile/src-tauri/build.rs
··· 1 + fn main() { 2 + tauri_build::build() 3 + }
+14
mobile/src-tauri/capabilities/default.json
··· 1 + { 2 + "$schema": "../gen/schemas/desktop-schema.json", 3 + "identifier": "default", 4 + "description": "Capability for the main window", 5 + "windows": ["main"], 6 + "permissions": [ 7 + "core:default", 8 + "opener:default", 9 + "dialog:default", 10 + "fs:default", 11 + "store:default", 12 + "safe-area-insets-css:default" 13 + ] 14 + }
+12
mobile/src-tauri/gen/android/.editorconfig
··· 1 + # EditorConfig is awesome: https://EditorConfig.org 2 + 3 + # top-most EditorConfig file 4 + root = true 5 + 6 + [*] 7 + indent_style = space 8 + indent_size = 2 9 + end_of_line = lf 10 + charset = utf-8 11 + trim_trailing_whitespace = false 12 + insert_final_newline = false
+19
mobile/src-tauri/gen/android/.gitignore
··· 1 + *.iml 2 + .gradle 3 + /local.properties 4 + /.idea/caches 5 + /.idea/libraries 6 + /.idea/modules.xml 7 + /.idea/workspace.xml 8 + /.idea/navEditor.xml 9 + /.idea/assetWizardSettings.xml 10 + .DS_Store 11 + build 12 + /captures 13 + .externalNativeBuild 14 + .cxx 15 + local.properties 16 + key.properties 17 + 18 + /.tauri 19 + /tauri.settings.gradle
+6
mobile/src-tauri/gen/android/app/.gitignore
··· 1 + /src/main/java/space/kasper/ferrum/generated 2 + /src/main/jniLibs/**/*.so 3 + /src/main/assets/tauri.conf.json 4 + /tauri.build.gradle.kts 5 + /proguard-tauri.pro 6 + /tauri.properties
+86
mobile/src-tauri/gen/android/app/build.gradle.kts
··· 1 + import java.io.FileInputStream 2 + import java.util.Properties 3 + 4 + plugins { 5 + id("com.android.application") 6 + id("org.jetbrains.kotlin.android") 7 + id("rust") 8 + } 9 + 10 + val tauriProperties = Properties().apply { 11 + val propFile = file("tauri.properties") 12 + if (propFile.exists()) { 13 + propFile.inputStream().use { load(it) } 14 + } 15 + } 16 + 17 + android { 18 + compileSdk = 36 19 + namespace = "space.kasper.ferrum" 20 + defaultConfig { 21 + manifestPlaceholders["usesCleartextTraffic"] = "false" 22 + applicationId = "space.kasper.ferrum" 23 + minSdk = 24 24 + targetSdk = 36 25 + versionCode = tauriProperties.getProperty("tauri.android.versionCode", "1").toInt() 26 + versionName = tauriProperties.getProperty("tauri.android.versionName", "1.0") 27 + } 28 + signingConfigs { 29 + create("release") { 30 + val keystorePropertiesFile = rootProject.file("keystore.properties") 31 + val keystoreProperties = Properties() 32 + if (keystorePropertiesFile.exists()) { 33 + keystoreProperties.load(FileInputStream(keystorePropertiesFile)) 34 + } 35 + 36 + keyAlias = keystoreProperties["keyAlias"] as String 37 + keyPassword = keystoreProperties["password"] as String 38 + storeFile = file(keystoreProperties["storeFile"] as String) 39 + storePassword = keystoreProperties["password"] as String 40 + } 41 + } 42 + buildTypes { 43 + getByName("debug") { 44 + manifestPlaceholders["usesCleartextTraffic"] = "true" 45 + isDebuggable = true 46 + isJniDebuggable = true 47 + isMinifyEnabled = false 48 + packaging { jniLibs.keepDebugSymbols.add("*/arm64-v8a/*.so") 49 + jniLibs.keepDebugSymbols.add("*/armeabi-v7a/*.so") 50 + jniLibs.keepDebugSymbols.add("*/x86/*.so") 51 + jniLibs.keepDebugSymbols.add("*/x86_64/*.so") 52 + } 53 + } 54 + getByName("release") { 55 + signingConfig = signingConfigs.getByName("release") 56 + isMinifyEnabled = true 57 + proguardFiles( 58 + *fileTree(".") { include("**/*.pro") } 59 + .plus(getDefaultProguardFile("proguard-android-optimize.txt")) 60 + .toList().toTypedArray() 61 + ) 62 + } 63 + } 64 + kotlinOptions { 65 + jvmTarget = "1.8" 66 + } 67 + buildFeatures { 68 + buildConfig = true 69 + } 70 + } 71 + 72 + rust { 73 + rootDirRel = "../../../" 74 + } 75 + 76 + dependencies { 77 + implementation("androidx.webkit:webkit:1.14.0") 78 + implementation("androidx.appcompat:appcompat:1.7.1") 79 + implementation("androidx.activity:activity-ktx:1.10.1") 80 + implementation("com.google.android.material:material:1.12.0") 81 + testImplementation("junit:junit:4.13.2") 82 + androidTestImplementation("androidx.test.ext:junit:1.1.4") 83 + androidTestImplementation("androidx.test.espresso:espresso-core:3.5.0") 84 + } 85 + 86 + apply(from = "tauri.build.gradle.kts")
+21
mobile/src-tauri/gen/android/app/proguard-rules.pro
··· 1 + # Add project specific ProGuard rules here. 2 + # You can control the set of applied configuration files using the 3 + # proguardFiles setting in build.gradle. 4 + # 5 + # For more details, see 6 + # http://developer.android.com/guide/developing/tools/proguard.html 7 + 8 + # If your project uses WebView with JS, uncomment the following 9 + # and specify the fully qualified class name to the JavaScript interface 10 + # class: 11 + #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 + # public *; 13 + #} 14 + 15 + # Uncomment this to preserve the line number information for 16 + # debugging stack traces. 17 + #-keepattributes SourceFile,LineNumberTable 18 + 19 + # If you keep the line number information, uncomment this to 20 + # hide the original source file name. 21 + #-renamesourcefileattribute SourceFile
+37
mobile/src-tauri/gen/android/app/src/main/AndroidManifest.xml
··· 1 + <?xml version="1.0" encoding="utf-8"?> 2 + <manifest xmlns:android="http://schemas.android.com/apk/res/android"> 3 + <uses-permission android:name="android.permission.INTERNET" /> 4 + 5 + <!-- AndroidTV support --> 6 + <uses-feature android:name="android.software.leanback" android:required="false" /> 7 + 8 + <application 9 + android:icon="@mipmap/ic_launcher" 10 + android:label="@string/app_name" 11 + android:theme="@style/Theme.ferrum" 12 + android:usesCleartextTraffic="${usesCleartextTraffic}"> 13 + <activity 14 + android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|smallestScreenSize|screenLayout|uiMode" 15 + android:launchMode="singleTask" 16 + android:label="@string/main_activity_title" 17 + android:name=".MainActivity" 18 + android:exported="true"> 19 + <intent-filter> 20 + <action android:name="android.intent.action.MAIN" /> 21 + <category android:name="android.intent.category.LAUNCHER" /> 22 + <!-- AndroidTV support --> 23 + <category android:name="android.intent.category.LEANBACK_LAUNCHER" /> 24 + </intent-filter> 25 + </activity> 26 + 27 + <provider 28 + android:name="androidx.core.content.FileProvider" 29 + android:authorities="${applicationId}.fileprovider" 30 + android:exported="false" 31 + android:grantUriPermissions="true"> 32 + <meta-data 33 + android:name="android.support.FILE_PROVIDER_PATHS" 34 + android:resource="@xml/file_paths" /> 35 + </provider> 36 + </application> 37 + </manifest>
+11
mobile/src-tauri/gen/android/app/src/main/java/space/kasper/ferrum/MainActivity.kt
··· 1 + package space.kasper.ferrum 2 + 3 + import android.os.Bundle 4 + import androidx.activity.enableEdgeToEdge 5 + 6 + class MainActivity : TauriActivity() { 7 + override fun onCreate(savedInstanceState: Bundle?) { 8 + enableEdgeToEdge() 9 + super.onCreate(savedInstanceState) 10 + } 11 + }
+30
mobile/src-tauri/gen/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
··· 1 + <vector xmlns:android="http://schemas.android.com/apk/res/android" 2 + xmlns:aapt="http://schemas.android.com/aapt" 3 + android:width="108dp" 4 + android:height="108dp" 5 + android:viewportWidth="108" 6 + android:viewportHeight="108"> 7 + <path android:pathData="M31,63.928c0,0 6.4,-11 12.1,-13.1c7.2,-2.6 26,-1.4 26,-1.4l38.1,38.1L107,108.928l-32,-1L31,63.928z"> 8 + <aapt:attr name="android:fillColor"> 9 + <gradient 10 + android:endX="85.84757" 11 + android:endY="92.4963" 12 + android:startX="42.9492" 13 + android:startY="49.59793" 14 + android:type="linear"> 15 + <item 16 + android:color="#44000000" 17 + android:offset="0.0" /> 18 + <item 19 + android:color="#00000000" 20 + android:offset="1.0" /> 21 + </gradient> 22 + </aapt:attr> 23 + </path> 24 + <path 25 + android:fillColor="#FFFFFF" 26 + android:fillType="nonZero" 27 + android:pathData="M65.3,45.828l3.8,-6.6c0.2,-0.4 0.1,-0.9 -0.3,-1.1c-0.4,-0.2 -0.9,-0.1 -1.1,0.3l-3.9,6.7c-6.3,-2.8 -13.4,-2.8 -19.7,0l-3.9,-6.7c-0.2,-0.4 -0.7,-0.5 -1.1,-0.3C38.8,38.328 38.7,38.828 38.9,39.228l3.8,6.6C36.2,49.428 31.7,56.028 31,63.928h46C76.3,56.028 71.8,49.428 65.3,45.828zM43.4,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2c-0.3,-0.7 -0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C45.3,56.528 44.5,57.328 43.4,57.328L43.4,57.328zM64.6,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2s-0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C66.5,56.528 65.6,57.328 64.6,57.328L64.6,57.328z" 28 + android:strokeWidth="1" 29 + android:strokeColor="#00000000" /> 30 + </vector>
+170
mobile/src-tauri/gen/android/app/src/main/res/drawable/ic_launcher_background.xml
··· 1 + <?xml version="1.0" encoding="utf-8"?> 2 + <vector xmlns:android="http://schemas.android.com/apk/res/android" 3 + android:width="108dp" 4 + android:height="108dp" 5 + android:viewportWidth="108" 6 + android:viewportHeight="108"> 7 + <path 8 + android:fillColor="#3DDC84" 9 + android:pathData="M0,0h108v108h-108z" /> 10 + <path 11 + android:fillColor="#00000000" 12 + android:pathData="M9,0L9,108" 13 + android:strokeWidth="0.8" 14 + android:strokeColor="#33FFFFFF" /> 15 + <path 16 + android:fillColor="#00000000" 17 + android:pathData="M19,0L19,108" 18 + android:strokeWidth="0.8" 19 + android:strokeColor="#33FFFFFF" /> 20 + <path 21 + android:fillColor="#00000000" 22 + android:pathData="M29,0L29,108" 23 + android:strokeWidth="0.8" 24 + android:strokeColor="#33FFFFFF" /> 25 + <path 26 + android:fillColor="#00000000" 27 + android:pathData="M39,0L39,108" 28 + android:strokeWidth="0.8" 29 + android:strokeColor="#33FFFFFF" /> 30 + <path 31 + android:fillColor="#00000000" 32 + android:pathData="M49,0L49,108" 33 + android:strokeWidth="0.8" 34 + android:strokeColor="#33FFFFFF" /> 35 + <path 36 + android:fillColor="#00000000" 37 + android:pathData="M59,0L59,108" 38 + android:strokeWidth="0.8" 39 + android:strokeColor="#33FFFFFF" /> 40 + <path 41 + android:fillColor="#00000000" 42 + android:pathData="M69,0L69,108" 43 + android:strokeWidth="0.8" 44 + android:strokeColor="#33FFFFFF" /> 45 + <path 46 + android:fillColor="#00000000" 47 + android:pathData="M79,0L79,108" 48 + android:strokeWidth="0.8" 49 + android:strokeColor="#33FFFFFF" /> 50 + <path 51 + android:fillColor="#00000000" 52 + android:pathData="M89,0L89,108" 53 + android:strokeWidth="0.8" 54 + android:strokeColor="#33FFFFFF" /> 55 + <path 56 + android:fillColor="#00000000" 57 + android:pathData="M99,0L99,108" 58 + android:strokeWidth="0.8" 59 + android:strokeColor="#33FFFFFF" /> 60 + <path 61 + android:fillColor="#00000000" 62 + android:pathData="M0,9L108,9" 63 + android:strokeWidth="0.8" 64 + android:strokeColor="#33FFFFFF" /> 65 + <path 66 + android:fillColor="#00000000" 67 + android:pathData="M0,19L108,19" 68 + android:strokeWidth="0.8" 69 + android:strokeColor="#33FFFFFF" /> 70 + <path 71 + android:fillColor="#00000000" 72 + android:pathData="M0,29L108,29" 73 + android:strokeWidth="0.8" 74 + android:strokeColor="#33FFFFFF" /> 75 + <path 76 + android:fillColor="#00000000" 77 + android:pathData="M0,39L108,39" 78 + android:strokeWidth="0.8" 79 + android:strokeColor="#33FFFFFF" /> 80 + <path 81 + android:fillColor="#00000000" 82 + android:pathData="M0,49L108,49" 83 + android:strokeWidth="0.8" 84 + android:strokeColor="#33FFFFFF" /> 85 + <path 86 + android:fillColor="#00000000" 87 + android:pathData="M0,59L108,59" 88 + android:strokeWidth="0.8" 89 + android:strokeColor="#33FFFFFF" /> 90 + <path 91 + android:fillColor="#00000000" 92 + android:pathData="M0,69L108,69" 93 + android:strokeWidth="0.8" 94 + android:strokeColor="#33FFFFFF" /> 95 + <path 96 + android:fillColor="#00000000" 97 + android:pathData="M0,79L108,79" 98 + android:strokeWidth="0.8" 99 + android:strokeColor="#33FFFFFF" /> 100 + <path 101 + android:fillColor="#00000000" 102 + android:pathData="M0,89L108,89" 103 + android:strokeWidth="0.8" 104 + android:strokeColor="#33FFFFFF" /> 105 + <path 106 + android:fillColor="#00000000" 107 + android:pathData="M0,99L108,99" 108 + android:strokeWidth="0.8" 109 + android:strokeColor="#33FFFFFF" /> 110 + <path 111 + android:fillColor="#00000000" 112 + android:pathData="M19,29L89,29" 113 + android:strokeWidth="0.8" 114 + android:strokeColor="#33FFFFFF" /> 115 + <path 116 + android:fillColor="#00000000" 117 + android:pathData="M19,39L89,39" 118 + android:strokeWidth="0.8" 119 + android:strokeColor="#33FFFFFF" /> 120 + <path 121 + android:fillColor="#00000000" 122 + android:pathData="M19,49L89,49" 123 + android:strokeWidth="0.8" 124 + android:strokeColor="#33FFFFFF" /> 125 + <path 126 + android:fillColor="#00000000" 127 + android:pathData="M19,59L89,59" 128 + android:strokeWidth="0.8" 129 + android:strokeColor="#33FFFFFF" /> 130 + <path 131 + android:fillColor="#00000000" 132 + android:pathData="M19,69L89,69" 133 + android:strokeWidth="0.8" 134 + android:strokeColor="#33FFFFFF" /> 135 + <path 136 + android:fillColor="#00000000" 137 + android:pathData="M19,79L89,79" 138 + android:strokeWidth="0.8" 139 + android:strokeColor="#33FFFFFF" /> 140 + <path 141 + android:fillColor="#00000000" 142 + android:pathData="M29,19L29,89" 143 + android:strokeWidth="0.8" 144 + android:strokeColor="#33FFFFFF" /> 145 + <path 146 + android:fillColor="#00000000" 147 + android:pathData="M39,19L39,89" 148 + android:strokeWidth="0.8" 149 + android:strokeColor="#33FFFFFF" /> 150 + <path 151 + android:fillColor="#00000000" 152 + android:pathData="M49,19L49,89" 153 + android:strokeWidth="0.8" 154 + android:strokeColor="#33FFFFFF" /> 155 + <path 156 + android:fillColor="#00000000" 157 + android:pathData="M59,19L59,89" 158 + android:strokeWidth="0.8" 159 + android:strokeColor="#33FFFFFF" /> 160 + <path 161 + android:fillColor="#00000000" 162 + android:pathData="M69,19L69,89" 163 + android:strokeWidth="0.8" 164 + android:strokeColor="#33FFFFFF" /> 165 + <path 166 + android:fillColor="#00000000" 167 + android:pathData="M79,19L79,89" 168 + android:strokeWidth="0.8" 169 + android:strokeColor="#33FFFFFF" /> 170 + </vector>
+18
mobile/src-tauri/gen/android/app/src/main/res/layout/activity_main.xml
··· 1 + <?xml version="1.0" encoding="utf-8"?> 2 + <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 + xmlns:app="http://schemas.android.com/apk/res-auto" 4 + xmlns:tools="http://schemas.android.com/tools" 5 + android:layout_width="match_parent" 6 + android:layout_height="match_parent" 7 + tools:context=".MainActivity"> 8 + 9 + <TextView 10 + android:layout_width="wrap_content" 11 + android:layout_height="wrap_content" 12 + android:text="Hello World!" 13 + app:layout_constraintBottom_toBottomOf="parent" 14 + app:layout_constraintLeft_toLeftOf="parent" 15 + app:layout_constraintRight_toRightOf="parent" 16 + app:layout_constraintTop_toTopOf="parent" /> 17 + 18 + </androidx.constraintlayout.widget.ConstraintLayout>
+5
mobile/src-tauri/gen/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
··· 1 + <?xml version="1.0" encoding="utf-8"?> 2 + <adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> 3 + <foreground android:drawable="@mipmap/ic_launcher_foreground"/> 4 + <background android:drawable="@color/ic_launcher_background"/> 5 + </adaptive-icon>
mobile/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher.png

This is a binary file and will not be displayed.

mobile/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png

This is a binary file and will not be displayed.

mobile/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png

This is a binary file and will not be displayed.

mobile/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher.png

This is a binary file and will not be displayed.

mobile/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png

This is a binary file and will not be displayed.

mobile/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png

This is a binary file and will not be displayed.

mobile/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png

This is a binary file and will not be displayed.

mobile/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png

This is a binary file and will not be displayed.

mobile/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png

This is a binary file and will not be displayed.

mobile/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png

This is a binary file and will not be displayed.

mobile/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png

This is a binary file and will not be displayed.

mobile/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png

This is a binary file and will not be displayed.

mobile/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png

This is a binary file and will not be displayed.

mobile/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png

This is a binary file and will not be displayed.

mobile/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png

This is a binary file and will not be displayed.

+6
mobile/src-tauri/gen/android/app/src/main/res/values-night/themes.xml
··· 1 + <resources xmlns:tools="http://schemas.android.com/tools"> 2 + <!-- Base application theme. --> 3 + <style name="Theme.ferrum" parent="Theme.MaterialComponents.DayNight.NoActionBar"> 4 + <!-- Customize your theme here. --> 5 + </style> 6 + </resources>
+10
mobile/src-tauri/gen/android/app/src/main/res/values/colors.xml
··· 1 + <?xml version="1.0" encoding="utf-8"?> 2 + <resources> 3 + <color name="purple_200">#FFBB86FC</color> 4 + <color name="purple_500">#FF6200EE</color> 5 + <color name="purple_700">#FF3700B3</color> 6 + <color name="teal_200">#FF03DAC5</color> 7 + <color name="teal_700">#FF018786</color> 8 + <color name="black">#FF000000</color> 9 + <color name="white">#FFFFFFFF</color> 10 + </resources>
+4
mobile/src-tauri/gen/android/app/src/main/res/values/ic_launcher_background.xml
··· 1 + <?xml version="1.0" encoding="utf-8"?> 2 + <resources> 3 + <color name="ic_launcher_background">#fff</color> 4 + </resources>
+4
mobile/src-tauri/gen/android/app/src/main/res/values/strings.xml
··· 1 + <resources> 2 + <string name="app_name">ferrum</string> 3 + <string name="main_activity_title">ferrum</string> 4 + </resources>
+6
mobile/src-tauri/gen/android/app/src/main/res/values/themes.xml
··· 1 + <resources xmlns:tools="http://schemas.android.com/tools"> 2 + <!-- Base application theme. --> 3 + <style name="Theme.ferrum" parent="Theme.MaterialComponents.DayNight.NoActionBar"> 4 + <!-- Customize your theme here. --> 5 + </style> 6 + </resources>
+5
mobile/src-tauri/gen/android/app/src/main/res/xml/file_paths.xml
··· 1 + <?xml version="1.0" encoding="utf-8"?> 2 + <paths xmlns:android="http://schemas.android.com/apk/res/android"> 3 + <external-path name="my_images" path="." /> 4 + <cache-path name="my_cache_images" path="." /> 5 + </paths>
+22
mobile/src-tauri/gen/android/build.gradle.kts
··· 1 + buildscript { 2 + repositories { 3 + google() 4 + mavenCentral() 5 + } 6 + dependencies { 7 + classpath("com.android.tools.build:gradle:8.11.0") 8 + classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.25") 9 + } 10 + } 11 + 12 + allprojects { 13 + repositories { 14 + google() 15 + mavenCentral() 16 + } 17 + } 18 + 19 + tasks.register("clean").configure { 20 + delete("build") 21 + } 22 +
+23
mobile/src-tauri/gen/android/buildSrc/build.gradle.kts
··· 1 + plugins { 2 + `kotlin-dsl` 3 + } 4 + 5 + gradlePlugin { 6 + plugins { 7 + create("pluginsForCoolKids") { 8 + id = "rust" 9 + implementationClass = "RustPlugin" 10 + } 11 + } 12 + } 13 + 14 + repositories { 15 + google() 16 + mavenCentral() 17 + } 18 + 19 + dependencies { 20 + compileOnly(gradleApi()) 21 + implementation("com.android.tools.build:gradle:8.11.0") 22 + } 23 +
+68
mobile/src-tauri/gen/android/buildSrc/src/main/java/space/kasper/ferrum/kotlin/BuildTask.kt
··· 1 + import java.io.File 2 + import org.apache.tools.ant.taskdefs.condition.Os 3 + import org.gradle.api.DefaultTask 4 + import org.gradle.api.GradleException 5 + import org.gradle.api.logging.LogLevel 6 + import org.gradle.api.tasks.Input 7 + import org.gradle.api.tasks.TaskAction 8 + 9 + open class BuildTask : DefaultTask() { 10 + @Input 11 + var rootDirRel: String? = null 12 + @Input 13 + var target: String? = null 14 + @Input 15 + var release: Boolean? = null 16 + 17 + @TaskAction 18 + fun assemble() { 19 + val executable = """npm"""; 20 + try { 21 + runTauriCli(executable) 22 + } catch (e: Exception) { 23 + if (Os.isFamily(Os.FAMILY_WINDOWS)) { 24 + // Try different Windows-specific extensions 25 + val fallbacks = listOf( 26 + "$executable.exe", 27 + "$executable.cmd", 28 + "$executable.bat", 29 + ) 30 + 31 + var lastException: Exception = e 32 + for (fallback in fallbacks) { 33 + try { 34 + runTauriCli(fallback) 35 + return 36 + } catch (fallbackException: Exception) { 37 + lastException = fallbackException 38 + } 39 + } 40 + throw lastException 41 + } else { 42 + throw e; 43 + } 44 + } 45 + } 46 + 47 + fun runTauriCli(executable: String) { 48 + val rootDirRel = rootDirRel ?: throw GradleException("rootDirRel cannot be null") 49 + val target = target ?: throw GradleException("target cannot be null") 50 + val release = release ?: throw GradleException("release cannot be null") 51 + val args = listOf("run", "--", "tauri", "android", "android-studio-script"); 52 + 53 + project.exec { 54 + workingDir(File(project.projectDir, rootDirRel)) 55 + executable(executable) 56 + args(args) 57 + if (project.logger.isEnabled(LogLevel.DEBUG)) { 58 + args("-vv") 59 + } else if (project.logger.isEnabled(LogLevel.INFO)) { 60 + args("-v") 61 + } 62 + if (release) { 63 + args("--release") 64 + } 65 + args(listOf("--target", target)) 66 + }.assertNormalExitValue() 67 + } 68 + }
+85
mobile/src-tauri/gen/android/buildSrc/src/main/java/space/kasper/ferrum/kotlin/RustPlugin.kt
··· 1 + import com.android.build.api.dsl.ApplicationExtension 2 + import org.gradle.api.DefaultTask 3 + import org.gradle.api.Plugin 4 + import org.gradle.api.Project 5 + import org.gradle.kotlin.dsl.configure 6 + import org.gradle.kotlin.dsl.get 7 + 8 + const val TASK_GROUP = "rust" 9 + 10 + open class Config { 11 + lateinit var rootDirRel: String 12 + } 13 + 14 + open class RustPlugin : Plugin<Project> { 15 + private lateinit var config: Config 16 + 17 + override fun apply(project: Project) = with(project) { 18 + config = extensions.create("rust", Config::class.java) 19 + 20 + val defaultAbiList = listOf("arm64-v8a", "armeabi-v7a", "x86", "x86_64"); 21 + val abiList = (findProperty("abiList") as? String)?.split(',') ?: defaultAbiList 22 + 23 + val defaultArchList = listOf("arm64", "arm", "x86", "x86_64"); 24 + val archList = (findProperty("archList") as? String)?.split(',') ?: defaultArchList 25 + 26 + val targetsList = (findProperty("targetList") as? String)?.split(',') ?: listOf("aarch64", "armv7", "i686", "x86_64") 27 + 28 + extensions.configure<ApplicationExtension> { 29 + @Suppress("UnstableApiUsage") 30 + flavorDimensions.add("abi") 31 + productFlavors { 32 + create("universal") { 33 + dimension = "abi" 34 + ndk { 35 + abiFilters += abiList 36 + } 37 + } 38 + defaultArchList.forEachIndexed { index, arch -> 39 + create(arch) { 40 + dimension = "abi" 41 + ndk { 42 + abiFilters.add(defaultAbiList[index]) 43 + } 44 + } 45 + } 46 + } 47 + } 48 + 49 + afterEvaluate { 50 + for (profile in listOf("debug", "release")) { 51 + val profileCapitalized = profile.replaceFirstChar { it.uppercase() } 52 + val buildTask = tasks.maybeCreate( 53 + "rustBuildUniversal$profileCapitalized", 54 + DefaultTask::class.java 55 + ).apply { 56 + group = TASK_GROUP 57 + description = "Build dynamic library in $profile mode for all targets" 58 + } 59 + 60 + tasks["mergeUniversal${profileCapitalized}JniLibFolders"].dependsOn(buildTask) 61 + 62 + for (targetPair in targetsList.withIndex()) { 63 + val targetName = targetPair.value 64 + val targetArch = archList[targetPair.index] 65 + val targetArchCapitalized = targetArch.replaceFirstChar { it.uppercase() } 66 + val targetBuildTask = project.tasks.maybeCreate( 67 + "rustBuild$targetArchCapitalized$profileCapitalized", 68 + BuildTask::class.java 69 + ).apply { 70 + group = TASK_GROUP 71 + description = "Build dynamic library in $profile mode for $targetArch" 72 + rootDirRel = config.rootDirRel 73 + target = targetName 74 + release = profile == "release" 75 + } 76 + 77 + buildTask.dependsOn(targetBuildTask) 78 + tasks["merge$targetArchCapitalized${profileCapitalized}JniLibFolders"].dependsOn( 79 + targetBuildTask 80 + ) 81 + } 82 + } 83 + } 84 + } 85 + }
+24
mobile/src-tauri/gen/android/gradle.properties
··· 1 + # Project-wide Gradle settings. 2 + # IDE (e.g. Android Studio) users: 3 + # Gradle settings configured through the IDE *will override* 4 + # any settings specified in this file. 5 + # For more details on how to configure your build environment visit 6 + # http://www.gradle.org/docs/current/userguide/build_environment.html 7 + # Specifies the JVM arguments used for the daemon process. 8 + # The setting is particularly useful for tweaking memory settings. 9 + org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 10 + # When configured, Gradle will run in incubating parallel mode. 11 + # This option should only be used with decoupled projects. More details, visit 12 + # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 13 + # org.gradle.parallel=true 14 + # AndroidX package structure to make it clearer which packages are bundled with the 15 + # Android operating system, and which are packaged with your app"s APK 16 + # https://developer.android.com/topic/libraries/support-library/androidx-rn 17 + android.useAndroidX=true 18 + # Kotlin code style for this project: "official" or "obsolete": 19 + kotlin.code.style=official 20 + # Enables namespacing of each library's R class so that its R class includes only the 21 + # resources declared in the library itself and none from the library's dependencies, 22 + # thereby reducing the size of the R class for that library 23 + android.nonTransitiveRClass=true 24 + android.nonFinalResIds=false
mobile/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.jar

This is a binary file and will not be displayed.

+6
mobile/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties
··· 1 + #Tue May 10 19:22:52 CST 2022 2 + distributionBase=GRADLE_USER_HOME 3 + distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip 4 + distributionPath=wrapper/dists 5 + zipStorePath=wrapper/dists 6 + zipStoreBase=GRADLE_USER_HOME
+185
mobile/src-tauri/gen/android/gradlew
··· 1 + #!/usr/bin/env sh 2 + 3 + # 4 + # Copyright 2015 the original author or authors. 5 + # 6 + # Licensed under the Apache License, Version 2.0 (the "License"); 7 + # you may not use this file except in compliance with the License. 8 + # You may obtain a copy of the License at 9 + # 10 + # https://www.apache.org/licenses/LICENSE-2.0 11 + # 12 + # Unless required by applicable law or agreed to in writing, software 13 + # distributed under the License is distributed on an "AS IS" BASIS, 14 + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 + # See the License for the specific language governing permissions and 16 + # limitations under the License. 17 + # 18 + 19 + ############################################################################## 20 + ## 21 + ## Gradle start up script for UN*X 22 + ## 23 + ############################################################################## 24 + 25 + # Attempt to set APP_HOME 26 + # Resolve links: $0 may be a link 27 + PRG="$0" 28 + # Need this for relative symlinks. 29 + while [ -h "$PRG" ] ; do 30 + ls=`ls -ld "$PRG"` 31 + link=`expr "$ls" : '.*-> \(.*\)$'` 32 + if expr "$link" : '/.*' > /dev/null; then 33 + PRG="$link" 34 + else 35 + PRG=`dirname "$PRG"`"/$link" 36 + fi 37 + done 38 + SAVED="`pwd`" 39 + cd "`dirname \"$PRG\"`/" >/dev/null 40 + APP_HOME="`pwd -P`" 41 + cd "$SAVED" >/dev/null 42 + 43 + APP_NAME="Gradle" 44 + APP_BASE_NAME=`basename "$0"` 45 + 46 + # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 47 + DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' 48 + 49 + # Use the maximum available, or set MAX_FD != -1 to use that value. 50 + MAX_FD="maximum" 51 + 52 + warn () { 53 + echo "$*" 54 + } 55 + 56 + die () { 57 + echo 58 + echo "$*" 59 + echo 60 + exit 1 61 + } 62 + 63 + # OS specific support (must be 'true' or 'false'). 64 + cygwin=false 65 + msys=false 66 + darwin=false 67 + nonstop=false 68 + case "`uname`" in 69 + CYGWIN* ) 70 + cygwin=true 71 + ;; 72 + Darwin* ) 73 + darwin=true 74 + ;; 75 + MINGW* ) 76 + msys=true 77 + ;; 78 + NONSTOP* ) 79 + nonstop=true 80 + ;; 81 + esac 82 + 83 + CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar 84 + 85 + 86 + # Determine the Java command to use to start the JVM. 87 + if [ -n "$JAVA_HOME" ] ; then 88 + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 89 + # IBM's JDK on AIX uses strange locations for the executables 90 + JAVACMD="$JAVA_HOME/jre/sh/java" 91 + else 92 + JAVACMD="$JAVA_HOME/bin/java" 93 + fi 94 + if [ ! -x "$JAVACMD" ] ; then 95 + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME 96 + 97 + Please set the JAVA_HOME variable in your environment to match the 98 + location of your Java installation." 99 + fi 100 + else 101 + JAVACMD="java" 102 + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 103 + 104 + Please set the JAVA_HOME variable in your environment to match the 105 + location of your Java installation." 106 + fi 107 + 108 + # Increase the maximum file descriptors if we can. 109 + if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then 110 + MAX_FD_LIMIT=`ulimit -H -n` 111 + if [ $? -eq 0 ] ; then 112 + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then 113 + MAX_FD="$MAX_FD_LIMIT" 114 + fi 115 + ulimit -n $MAX_FD 116 + if [ $? -ne 0 ] ; then 117 + warn "Could not set maximum file descriptor limit: $MAX_FD" 118 + fi 119 + else 120 + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" 121 + fi 122 + fi 123 + 124 + # For Darwin, add options to specify how the application appears in the dock 125 + if $darwin; then 126 + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" 127 + fi 128 + 129 + # For Cygwin or MSYS, switch paths to Windows format before running java 130 + if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then 131 + APP_HOME=`cygpath --path --mixed "$APP_HOME"` 132 + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` 133 + 134 + JAVACMD=`cygpath --unix "$JAVACMD"` 135 + 136 + # We build the pattern for arguments to be converted via cygpath 137 + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` 138 + SEP="" 139 + for dir in $ROOTDIRSRAW ; do 140 + ROOTDIRS="$ROOTDIRS$SEP$dir" 141 + SEP="|" 142 + done 143 + OURCYGPATTERN="(^($ROOTDIRS))" 144 + # Add a user-defined pattern to the cygpath arguments 145 + if [ "$GRADLE_CYGPATTERN" != "" ] ; then 146 + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" 147 + fi 148 + # Now convert the arguments - kludge to limit ourselves to /bin/sh 149 + i=0 150 + for arg in "$@" ; do 151 + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` 152 + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option 153 + 154 + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition 155 + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` 156 + else 157 + eval `echo args$i`="\"$arg\"" 158 + fi 159 + i=`expr $i + 1` 160 + done 161 + case $i in 162 + 0) set -- ;; 163 + 1) set -- "$args0" ;; 164 + 2) set -- "$args0" "$args1" ;; 165 + 3) set -- "$args0" "$args1" "$args2" ;; 166 + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; 167 + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; 168 + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; 169 + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; 170 + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; 171 + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; 172 + esac 173 + fi 174 + 175 + # Escape application args 176 + save () { 177 + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done 178 + echo " " 179 + } 180 + APP_ARGS=`save "$@"` 181 + 182 + # Collect all arguments for the java command, following the shell quoting and substitution rules 183 + eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" 184 + 185 + exec "$JAVACMD" "$@"
+89
mobile/src-tauri/gen/android/gradlew.bat
··· 1 + @rem 2 + @rem Copyright 2015 the original author or authors. 3 + @rem 4 + @rem Licensed under the Apache License, Version 2.0 (the "License"); 5 + @rem you may not use this file except in compliance with the License. 6 + @rem You may obtain a copy of the License at 7 + @rem 8 + @rem https://www.apache.org/licenses/LICENSE-2.0 9 + @rem 10 + @rem Unless required by applicable law or agreed to in writing, software 11 + @rem distributed under the License is distributed on an "AS IS" BASIS, 12 + @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 + @rem See the License for the specific language governing permissions and 14 + @rem limitations under the License. 15 + @rem 16 + 17 + @if "%DEBUG%" == "" @echo off 18 + @rem ########################################################################## 19 + @rem 20 + @rem Gradle startup script for Windows 21 + @rem 22 + @rem ########################################################################## 23 + 24 + @rem Set local scope for the variables with windows NT shell 25 + if "%OS%"=="Windows_NT" setlocal 26 + 27 + set DIRNAME=%~dp0 28 + if "%DIRNAME%" == "" set DIRNAME=. 29 + set APP_BASE_NAME=%~n0 30 + set APP_HOME=%DIRNAME% 31 + 32 + @rem Resolve any "." and ".." in APP_HOME to make it shorter. 33 + for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi 34 + 35 + @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 36 + set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" 37 + 38 + @rem Find java.exe 39 + if defined JAVA_HOME goto findJavaFromJavaHome 40 + 41 + set JAVA_EXE=java.exe 42 + %JAVA_EXE% -version >NUL 2>&1 43 + if "%ERRORLEVEL%" == "0" goto execute 44 + 45 + echo. 46 + echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 47 + echo. 48 + echo Please set the JAVA_HOME variable in your environment to match the 49 + echo location of your Java installation. 50 + 51 + goto fail 52 + 53 + :findJavaFromJavaHome 54 + set JAVA_HOME=%JAVA_HOME:"=% 55 + set JAVA_EXE=%JAVA_HOME%/bin/java.exe 56 + 57 + if exist "%JAVA_EXE%" goto execute 58 + 59 + echo. 60 + echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 61 + echo. 62 + echo Please set the JAVA_HOME variable in your environment to match the 63 + echo location of your Java installation. 64 + 65 + goto fail 66 + 67 + :execute 68 + @rem Setup the command line 69 + 70 + set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 71 + 72 + 73 + @rem Execute Gradle 74 + "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* 75 + 76 + :end 77 + @rem End local scope for the variables with windows NT shell 78 + if "%ERRORLEVEL%"=="0" goto mainEnd 79 + 80 + :fail 81 + rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 82 + rem the _cmd.exe /c_ return code! 83 + if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 84 + exit /b 1 85 + 86 + :mainEnd 87 + if "%OS%"=="Windows_NT" endlocal 88 + 89 + :omega
+3
mobile/src-tauri/gen/android/keystore.properties
··· 1 + keyAlias=placeholder 2 + password=placeholder 3 + storeFile=placeholder
+3
mobile/src-tauri/gen/android/settings.gradle
··· 1 + include ':app' 2 + 3 + apply from: 'tauri.settings.gradle'
mobile/src-tauri/icons/128x128.png

This is a binary file and will not be displayed.

mobile/src-tauri/icons/128x128@2x.png

This is a binary file and will not be displayed.

mobile/src-tauri/icons/32x32.png

This is a binary file and will not be displayed.

mobile/src-tauri/icons/64x64.png

This is a binary file and will not be displayed.

mobile/src-tauri/icons/Square107x107Logo.png

This is a binary file and will not be displayed.

mobile/src-tauri/icons/Square142x142Logo.png

This is a binary file and will not be displayed.

mobile/src-tauri/icons/Square150x150Logo.png

This is a binary file and will not be displayed.

mobile/src-tauri/icons/Square284x284Logo.png

This is a binary file and will not be displayed.

mobile/src-tauri/icons/Square30x30Logo.png

This is a binary file and will not be displayed.

mobile/src-tauri/icons/Square310x310Logo.png

This is a binary file and will not be displayed.

mobile/src-tauri/icons/Square44x44Logo.png

This is a binary file and will not be displayed.

mobile/src-tauri/icons/Square71x71Logo.png

This is a binary file and will not be displayed.

mobile/src-tauri/icons/Square89x89Logo.png

This is a binary file and will not be displayed.

mobile/src-tauri/icons/StoreLogo.png

This is a binary file and will not be displayed.

mobile/src-tauri/icons/icon.icns

This is a binary file and will not be displayed.

mobile/src-tauri/icons/icon.ico

This is a binary file and will not be displayed.

mobile/src-tauri/icons/icon.png

This is a binary file and will not be displayed.

mobile/src-tauri/icons/ios/AppIcon-20x20@1x.png

This is a binary file and will not be displayed.

mobile/src-tauri/icons/ios/AppIcon-20x20@2x-1.png

This is a binary file and will not be displayed.

mobile/src-tauri/icons/ios/AppIcon-20x20@2x.png

This is a binary file and will not be displayed.

mobile/src-tauri/icons/ios/AppIcon-20x20@3x.png

This is a binary file and will not be displayed.

mobile/src-tauri/icons/ios/AppIcon-29x29@1x.png

This is a binary file and will not be displayed.

mobile/src-tauri/icons/ios/AppIcon-29x29@2x-1.png

This is a binary file and will not be displayed.

mobile/src-tauri/icons/ios/AppIcon-29x29@2x.png

This is a binary file and will not be displayed.

mobile/src-tauri/icons/ios/AppIcon-29x29@3x.png

This is a binary file and will not be displayed.

mobile/src-tauri/icons/ios/AppIcon-40x40@1x.png

This is a binary file and will not be displayed.

mobile/src-tauri/icons/ios/AppIcon-40x40@2x-1.png

This is a binary file and will not be displayed.

mobile/src-tauri/icons/ios/AppIcon-40x40@2x.png

This is a binary file and will not be displayed.

mobile/src-tauri/icons/ios/AppIcon-40x40@3x.png

This is a binary file and will not be displayed.

mobile/src-tauri/icons/ios/AppIcon-512@2x.png

This is a binary file and will not be displayed.

mobile/src-tauri/icons/ios/AppIcon-60x60@2x.png

This is a binary file and will not be displayed.

mobile/src-tauri/icons/ios/AppIcon-60x60@3x.png

This is a binary file and will not be displayed.

mobile/src-tauri/icons/ios/AppIcon-76x76@1x.png

This is a binary file and will not be displayed.

mobile/src-tauri/icons/ios/AppIcon-76x76@2x.png

This is a binary file and will not be displayed.

mobile/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png

This is a binary file and will not be displayed.

+5
mobile/src-tauri/src/bin/export_ts.rs
··· 1 + use ferrum_lib::gen_types; 2 + 3 + pub fn main() { 4 + gen_types(); 5 + }
+108
mobile/src-tauri/src/lib.rs
··· 1 + use anyhow::bail; 2 + use ferrum::library_types::{ItemId, TrackID, VersionedLibrary}; 3 + use ferrum::library_types::{Library, Track, TrackList, TrackListID}; 4 + use serde::Serialize; 5 + use specta::Type; 6 + use std::collections::HashMap; 7 + use std::time::Instant; 8 + use tauri_plugin_dialog::{DialogExt, MessageDialogKind}; 9 + use tauri_specta::Builder; 10 + 11 + #[tauri::command] 12 + #[specta::specta] 13 + fn error_popup(app_handle: tauri::AppHandle, msg: String) { 14 + eprintln!("Error: {}", msg); 15 + 16 + app_handle 17 + .dialog() 18 + .message(&msg) 19 + .kind(MessageDialogKind::Error) 20 + .title("Error") 21 + .show(|_| {}); 22 + } 23 + 24 + fn load_library_from_file(library_json: &str) -> anyhow::Result<Library> { 25 + let now = Instant::now(); 26 + 27 + let mut json_bytes = library_json.as_bytes().to_vec(); 28 + 29 + let versioned_library: VersionedLibrary = match simd_json::from_slice(&mut json_bytes) { 30 + Ok(lib) => { 31 + println!("Parsed library: {}ms", now.elapsed().as_millis()); 32 + lib 33 + } 34 + Err(err) => { 35 + bail!("Error parsing library: {}", err); 36 + } 37 + }; 38 + let now = Instant::now(); 39 + 40 + let library = versioned_library.upgrade().init_libary(); 41 + println!("Initialized library: {}ms", now.elapsed().as_millis()); 42 + Ok(library) 43 + } 44 + 45 + #[derive(Serialize, Type)] 46 + pub struct LibraryTauri { 47 + tracks: HashMap<TrackID, Track>, 48 + track_item_ids: HashMap<TrackID, ItemId>, 49 + track_lists: HashMap<TrackListID, TrackList>, 50 + } 51 + 52 + #[tauri::command] 53 + #[specta::specta] 54 + fn load_library(library_json: String) -> Result<LibraryTauri, String> { 55 + let library = match load_library_from_file(&library_json) { 56 + Ok(library) => library, 57 + Err(err) => return Err(err.to_string()), 58 + }; 59 + 60 + let library_tauri = LibraryTauri { 61 + tracks: library.get_tracks().clone().into_iter().collect(), 62 + track_item_ids: library.get_track_item_ids().clone().into_iter().collect(), 63 + track_lists: library.trackLists.into_iter().collect(), 64 + }; 65 + 66 + Ok(library_tauri) 67 + } 68 + 69 + pub fn gen_types() -> Builder { 70 + let specta_builder = tauri_specta::Builder::<tauri::Wry>::new() 71 + .commands(tauri_specta::collect_commands![error_popup, load_library]); 72 + 73 + #[cfg(all(debug_assertions, not(target_os = "android")))] 74 + #[cfg(debug_assertions)] 75 + specta_builder 76 + .export( 77 + specta_typescript::Typescript::default() 78 + .bigint(specta_typescript::BigIntExportBehavior::String), 79 + std::path::PathBuf::from(env!("CARGO_MANIFEST_DIR")) 80 + .parent() // if this Rust file is inside src-tauri 81 + .unwrap() 82 + .join("bindings.ts"), 83 + ) 84 + .expect("Failed to export typescript bindings"); 85 + specta_builder 86 + } 87 + 88 + #[cfg_attr(mobile, tauri::mobile_entry_point)] 89 + pub fn run() { 90 + #[cfg(target_os = "android")] 91 + android_logger::init_once( 92 + android_logger::Config::default() 93 + .with_max_level(log::LevelFilter::Trace) 94 + .with_tag("{{app.name}}"), 95 + ); 96 + 97 + let specta_builder = gen_types(); 98 + 99 + tauri::Builder::default() 100 + .plugin(tauri_plugin_store::Builder::new().build()) 101 + .plugin(tauri_plugin_fs::init()) 102 + .plugin(tauri_plugin_dialog::init()) 103 + .plugin(tauri_plugin_opener::init()) 104 + .plugin(tauri_plugin_safe_area_insets_css::init()) 105 + .invoke_handler(specta_builder.invoke_handler()) 106 + .run(tauri::generate_context!()) 107 + .expect("error while running tauri application"); 108 + }
+6
mobile/src-tauri/src/main.rs
··· 1 + // Prevents additional console window on Windows in release, DO NOT REMOVE!! 2 + #![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] 3 + 4 + fn main() { 5 + ferrum_lib::run() 6 + }
+35
mobile/src-tauri/tauri.conf.json
··· 1 + { 2 + "$schema": "https://schema.tauri.app/config/2", 3 + "productName": "ferrum", 4 + "version": "0.1.0", 5 + "identifier": "space.kasper.ferrum", 6 + "build": { 7 + "beforeDevCommand": "npm run dev:web", 8 + "devUrl": "http://localhost:1420", 9 + "beforeBuildCommand": "npm run build:web", 10 + "frontendDist": "../build" 11 + }, 12 + "app": { 13 + "windows": [ 14 + { 15 + "title": "ferrum", 16 + "width": 800, 17 + "height": 600 18 + } 19 + ], 20 + "security": { 21 + "csp": null 22 + } 23 + }, 24 + "bundle": { 25 + "active": true, 26 + "targets": "all", 27 + "icon": [ 28 + "icons/32x32.png", 29 + "icons/128x128.png", 30 + "icons/128x128@2x.png", 31 + "icons/icon.icns", 32 + "icons/icon.ico" 33 + ] 34 + } 35 + }
+13
mobile/src/app.html
··· 1 + <!doctype html> 2 + <html lang="en"> 3 + <head> 4 + <meta charset="utf-8" /> 5 + <link rel="icon" href="%sveltekit.assets%/favicon.png" /> 6 + <meta name="viewport" content="width=device-width, initial-scale=1" /> 7 + <title>Tauri + SvelteKit + Typescript App</title> 8 + %sveltekit.head% 9 + </head> 10 + <body data-sveltekit-preload-data="hover"> 11 + <div style="display: contents">%sveltekit.body%</div> 12 + </body> 13 + </html>
+20
mobile/src/lib/commands.ts
··· 1 + import { commands } from '../../bindings' 2 + 3 + export default new Proxy({} as typeof commands, { 4 + get: 5 + (_, property: string) => 6 + async (...args: unknown[]) => { 7 + try { 8 + // eslint-disable-next-line @typescript-eslint/no-explicit-any 9 + const result = await (commands as any)[property](...args) 10 + if (result && 'status' in result && result.status === 'error') { 11 + throw new Error(result.error) 12 + } 13 + 14 + return result 15 + } catch (e) { 16 + commands.errorPopup(String(e)) 17 + throw e 18 + } 19 + }, 20 + })
+7
mobile/src/routes/+layout.svelte
··· 1 + <script lang="ts"> 2 + import './layout.css' 3 + 4 + const { children } = $props() 5 + </script> 6 + 7 + {@render children()}
+5
mobile/src/routes/+layout.ts
··· 1 + // Tauri doesn't have a Node.js server to do proper SSR 2 + // so we use adapter-static with a fallback to index.html to put the site in SPA mode 3 + // See: https://svelte.dev/docs/kit/single-page-apps 4 + // See: https://v2.tauri.app/start/frontend/sveltekit/ for more info 5 + export const ssr = false
+89
mobile/src/routes/+page.svelte
··· 1 + <script lang="ts"> 2 + import commands from '$lib/commands' 3 + import { open } from '@tauri-apps/plugin-dialog' 4 + import type { LibraryTauri } from '../../bindings' 5 + import { readTextFile } from '@tauri-apps/plugin-fs' 6 + import Library from './Library.svelte' 7 + import { Store } from '@tauri-apps/plugin-store' 8 + import '@saurl/tauri-plugin-safe-area-insets-css-api' 9 + 10 + let loading = $state(false) 11 + let error = $state('') 12 + 13 + const store = await Store.load('settings.json') 14 + let library = $state<LibraryTauri | null>(null) 15 + 16 + const saved_library_path = await store.get('library_path') 17 + if (typeof saved_library_path === 'string') { 18 + load_library(saved_library_path) 19 + } 20 + 21 + async function open_library() { 22 + const path = await open({ 23 + filters: [{ name: 'JSON', extensions: ['json'] }], 24 + }) 25 + if (path) { 26 + load_library(path) 27 + } 28 + } 29 + async function load_library(path: string) { 30 + loading = true 31 + library = null 32 + error = '' 33 + try { 34 + const contents = await readTextFile(path) 35 + const result = await commands.loadLibrary(contents) 36 + if (result.status === 'ok') { 37 + library = result.data 38 + store.set('library_path', path) 39 + store.save() 40 + } else { 41 + error = result.error 42 + } 43 + } catch (e) { 44 + error = e instanceof Error ? e.message : 'Failed to load library' 45 + } finally { 46 + loading = false 47 + } 48 + } 49 + </script> 50 + 51 + <div 52 + class="flex h-screen flex-col overflow-hidden bg-white text-sm text-neutral-800 scheme-light-dark dark:bg-neutral-950 dark:text-neutral-200 pt-[env(safe-area-inset-top)] pb-[env(safe-area-inset-bottom)]" 53 + style:padding-top='var(--safe-area-inset-top)' 54 + style:padding-bottom='var(--safe-area-inset-bottom)' 55 + 56 + > 57 + {#if error} 58 + <div class="shrink-0 border-b border-red-900 bg-red-950 px-4 py-2.5 text-xs text-red-400"> 59 + ⚠ {error} 60 + </div> 61 + {/if} 62 + 63 + {#snippet open_button()} 64 + <button 65 + type="button" 66 + onclick={open_library} 67 + disabled={loading} 68 + class="shrink-0 rounded-lg bg-neutral-900 px-3 py-1.5 text-xs font-semibold text-neutral-100 transition-colors hover:bg-neutral-700 disabled:cursor-not-allowed disabled:opacity-40 dark:bg-neutral-100 dark:text-neutral-900 dark:hover:bg-white" 69 + > 70 + {loading ? 'Loading…' : 'Open'} 71 + </button> 72 + {/snippet} 73 + 74 + {#if library} 75 + <Library {library} {open_button} /> 76 + {:else} 77 + <div 78 + class="flex flex-1 flex-col items-center justify-center gap-4 px-8 text-center text-neutral-400 dark:text-neutral-700" 79 + > 80 + <span class="text-5xl">♪</span> 81 + <div> 82 + <p class="font-medium text-neutral-500 dark:text-neutral-500">No library loaded</p> 83 + <div class="mt-4"> 84 + {@render open_button()} 85 + </div> 86 + </div> 87 + </div> 88 + {/if} 89 + </div>
+461
mobile/src/routes/Library.svelte
··· 1 + <script lang="ts"> 2 + import type { Snippet } from 'svelte' 3 + import { goto } from '$app/navigation' 4 + import { page } from '$app/state' 5 + import type { Track, TrackList, Playlist, Folder, Special, LibraryTauri } from '../../bindings' 6 + import { resolve } from '$app/paths' 7 + 8 + type sort_key_type = 'name' | 'artist' | 'dateAdded' | 'playCount' 9 + type sort_dir_type = 'asc' | 'desc' 10 + type active_filter_type = { kind: 'all' } | { kind: 'liked' } | { kind: 'genre'; value: string } 11 + type view_type = { kind: 'browser'; folder_id: string } | { kind: 'tracks'; playlist_id: string } 12 + 13 + const { library, open_button } = $props<{ 14 + library: LibraryTauri | null 15 + open_button: Snippet<[]> 16 + }>() 17 + let error = $state('') 18 + let search_query = $state('') 19 + let sort_key = $state<sort_key_type>('name') 20 + let sort_dir = $state<sort_dir_type>('asc') 21 + let active_filter = $state<active_filter_type>({ kind: 'all' }) 22 + 23 + // ── View derived from URL search params ──────────────────────────────────── 24 + const view = $derived<view_type>( 25 + page.url.searchParams.get('view') === 'tracks' 26 + ? { kind: 'tracks', playlist_id: page.url.searchParams.get('id') ?? 'root' } 27 + : { kind: 'browser', folder_id: page.url.searchParams.get('id') ?? 'root' }, 28 + ) 29 + 30 + // ── Helpers ──────────────────────────────────────────────────────────────── 31 + 32 + function get_tracklist(id: string): TrackList | null { 33 + return library?.track_lists?.[id] ?? null 34 + } 35 + 36 + function get_special(id: string): (Special & { type: 'special' }) | null { 37 + const tl = get_tracklist(id) 38 + return tl?.type === 'special' ? tl : null 39 + } 40 + 41 + function get_folder(id: string): (Folder & { type: 'folder' }) | null { 42 + const tl = get_tracklist(id) 43 + return tl?.type === 'folder' ? tl : null 44 + } 45 + 46 + function get_playlist(id: string): (Playlist & { type: 'playlist' }) | null { 47 + const tl = get_tracklist(id) 48 + return tl?.type === 'playlist' ? tl : null 49 + } 50 + 51 + function get_children(folder_id: string): string[] { 52 + const special = get_special(folder_id) 53 + if (special) return special.children 54 + return get_folder(folder_id)?.children ?? [] 55 + } 56 + 57 + function node_name(id: string): string { 58 + const tl = get_tracklist(id) 59 + if (!tl) return 'Unknown' 60 + if (tl.type === 'special') return 'Library' 61 + return tl.name 62 + } 63 + 64 + function count_tracks_in(id: string): number { 65 + const tl = get_tracklist(id) 66 + if (!tl) return 0 67 + if (tl.type === 'playlist') return tl.tracks.length 68 + const children = tl.type === 'folder' ? tl.children : tl.type === 'special' ? tl.children : [] 69 + return children.reduce((sum, child_id) => sum + count_tracks_in(child_id), 0) 70 + } 71 + 72 + // ── Navigation ───────────────────────────────────────────────────────────── 73 + 74 + function open_folder(id: string) { 75 + // eslint-disable-next-line svelte/no-navigation-without-resolve 76 + goto(resolve('/') + `?view=browser&id=${id}`) 77 + } 78 + 79 + function open_playlist(id: string) { 80 + search_query = '' 81 + active_filter = { kind: 'all' } 82 + // eslint-disable-next-line svelte/no-navigation-without-resolve 83 + goto(resolve('/') + `?view=tracks&id=${id}`) 84 + } 85 + 86 + // ── Derived / async data ────────────────────────────────────────────────── 87 + 88 + const current_children = $derived(view.kind === 'browser' ? get_children(view.folder_id) : []) 89 + 90 + // Playlist.tracks is typed as number[] in the bindings, but serialize_playlist_ids 91 + // in Rust serializes them back to track ID strings over the wire. 92 + const playlist_tracks = $derived.by(() => { 93 + if (view.kind !== 'tracks') return [] 94 + const playlist = get_playlist(view.playlist_id) 95 + if (!playlist) { 96 + console.error('[Library] no playlist found for id', view.playlist_id) 97 + return [] 98 + } 99 + const track_ids = playlist.tracks as unknown as string[] 100 + const resolved = track_ids 101 + .map((track_id) => { 102 + const track = library?.tracks?.[track_id] 103 + if (track === undefined) console.error('[Library] no track for track_id', track_id) 104 + return track 105 + }) 106 + .filter((t): t is Track => t !== undefined) 107 + return resolved 108 + }) 109 + 110 + const genres = $derived( 111 + [ 112 + ...new Set( 113 + playlist_tracks 114 + .map((t) => t.genre) 115 + .filter((g): g is string => g !== null && g !== undefined), 116 + ), 117 + ].sort(), 118 + ) 119 + 120 + const filtered_tracks = $derived( 121 + playlist_tracks 122 + .filter((t) => { 123 + if (active_filter.kind === 'liked') return t.liked === true 124 + if (active_filter.kind === 'genre') return t.genre === active_filter.value 125 + return true 126 + }) 127 + .filter((t) => { 128 + if (!search_query) return true 129 + const q = search_query.toLowerCase() 130 + return ( 131 + t.name.toLowerCase().includes(q) || 132 + (t.artist?.toLowerCase().includes(q) ?? false) || 133 + (t.albumName?.toLowerCase().includes(q) ?? false) 134 + ) 135 + }) 136 + .sort((a, b) => { 137 + let av: string | number 138 + let bv: string | number 139 + if (sort_key === 'name') { 140 + av = a.name 141 + bv = b.name 142 + } else if (sort_key === 'artist') { 143 + av = a.artist ?? '' 144 + bv = b.artist ?? '' 145 + } else if (sort_key === 'dateAdded') { 146 + av = a.dateAdded 147 + bv = b.dateAdded 148 + } else { 149 + av = a.playCount ?? 0 150 + bv = b.playCount ?? 0 151 + } 152 + if (av < bv) return sort_dir === 'asc' ? -1 : 1 153 + if (av > bv) return sort_dir === 'asc' ? 1 : -1 154 + return 0 155 + }), 156 + ) 157 + 158 + // ── Formatting ───────────────────────────────────────────────────────────── 159 + 160 + function toggle_sort(key: sort_key_type) { 161 + if (sort_key === key) sort_dir = sort_dir === 'asc' ? 'desc' : 'asc' 162 + else { 163 + sort_key = key 164 + sort_dir = 'asc' 165 + } 166 + } 167 + 168 + function sort_indicator(key: sort_key_type): string { 169 + if (sort_key !== key) return '' 170 + return sort_dir === 'asc' ? ' ↑' : ' ↓' 171 + } 172 + 173 + function format_duration(seconds: number): string { 174 + const s = Math.floor(seconds) 175 + return `${Math.floor(s / 60)}:${String(s % 60).padStart(2, '0')}` 176 + } 177 + </script> 178 + 179 + <div 180 + class="flex h-screen flex-col overflow-hidden bg-white text-sm text-neutral-800 dark:bg-neutral-950 dark:text-neutral-200" 181 + > 182 + <!-- Header --> 183 + <header 184 + class="flex shrink-0 items-center gap-2 border-b border-neutral-200 px-4 py-3 dark:border-neutral-800" 185 + > 186 + {#if page.url.searchParams.has('id')} 187 + <button 188 + type="button" 189 + onclick={() => history.back()} 190 + class="flex h-8 w-8 shrink-0 items-center justify-center rounded-lg text-xl text-neutral-500 transition-colors hover:bg-neutral-100 hover:text-neutral-900 dark:text-neutral-400 dark:hover:bg-neutral-800 dark:hover:text-neutral-100" 191 + aria-label="Back">‹</button 192 + > 193 + {/if} 194 + 195 + <div class="min-w-0 flex-1"> 196 + {#if view.kind === 'browser'} 197 + <p class="truncate leading-tight font-semibold text-neutral-900 dark:text-neutral-100"> 198 + {node_name(view.folder_id)} 199 + </p> 200 + {:else if view.kind === 'tracks'} 201 + <p class="truncate leading-tight font-semibold text-neutral-900 dark:text-neutral-100"> 202 + {node_name(view.playlist_id)} 203 + </p> 204 + {/if} 205 + </div> 206 + 207 + {@render open_button()} 208 + </header> 209 + 210 + {#if error} 211 + <div 212 + class="shrink-0 border-b border-red-200 bg-red-50 px-4 py-2.5 text-xs text-red-600 dark:border-red-900 dark:bg-red-950 dark:text-red-400" 213 + > 214 + ⚠ {error} 215 + </div> 216 + {/if} 217 + 218 + <!-- ── Browser view ───────────────────────────────────────────────────── --> 219 + {#if view.kind === 'browser'} 220 + <div class="flex-1 overflow-y-auto"> 221 + {#if current_children.length > 0} 222 + <ul class="divide-y divide-neutral-200 dark:divide-neutral-900"> 223 + {#each current_children as child_id} 224 + {@const tl = get_tracklist(child_id)} 225 + {#if tl?.type === 'folder'} 226 + <li> 227 + <button 228 + type="button" 229 + onclick={() => open_folder(child_id)} 230 + class="flex w-full items-center gap-3 px-4 py-3.5 text-left transition-colors hover:bg-neutral-100/50 active:bg-neutral-100 dark:hover:bg-neutral-800/50 dark:active:bg-neutral-800" 231 + > 232 + <span class="w-7 shrink-0 text-center text-neutral-500 select-none"> 233 + <svg 234 + style="padding: 1px" 235 + xmlns="http://www.w3.org/2000/svg" 236 + height="22px" 237 + viewBox="0 0 24 24" 238 + width="22px" 239 + fill="currentColor" 240 + ><path d="M0 0h24v24H0V0z" fill="none" /><path 241 + d="M9.17 6l2 2H20v10H4V6h5.17M10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z" 242 + /></svg 243 + > 244 + </span> 245 + <div class="min-w-0 flex-1"> 246 + <p class="truncate font-medium text-neutral-900 dark:text-neutral-100"> 247 + {tl.name} 248 + </p> 249 + <p class="mt-0.5 text-xs text-neutral-500"> 250 + {tl.children.length} 251 + {tl.children.length === 1 ? 'item' : 'items'} · {count_tracks_in(child_id)} tracks 252 + </p> 253 + </div> 254 + <span class="text-lg text-neutral-400 select-none dark:text-neutral-700">›</span> 255 + </button> 256 + </li> 257 + {:else if tl?.type === 'playlist'} 258 + <li> 259 + <button 260 + type="button" 261 + onclick={() => open_playlist(child_id)} 262 + class="flex w-full items-center gap-3 px-4 py-3.5 text-left transition-colors hover:bg-neutral-100/50 active:bg-neutral-100 dark:hover:bg-neutral-800/50 dark:active:bg-neutral-800" 263 + > 264 + <span class="w-7 shrink-0 text-center text-neutral-500 select-none"> 265 + <svg 266 + style="transform: translateX(2px)" 267 + xmlns="http://www.w3.org/2000/svg" 268 + height="24px" 269 + viewBox="0 0 24 24" 270 + width="24px" 271 + fill="currentColor" 272 + ><path 273 + d="M5 10h10c.55 0 1 .45 1 1s-.45 1-1 1H5c-.55 0-1-.45-1-1s.45-1 1-1zm0-4h10c.55 0 1 .45 1 1s-.45 1-1 1H5c-.55 0-1-.45-1-1s.45-1 1-1zm0 8h6c.55 0 1 .45 1 1s-.45 1-1 1H5c-.55 0-1-.45-1-1s.45-1 1-1zm9 .88v4.23c0 .39.42.63.76.43l3.53-2.12c.32-.19.32-.66 0-.86l-3.53-2.12c-.34-.19-.76.05-.76.44z" 274 + /></svg 275 + > 276 + </span> 277 + <div class="min-w-0 flex-1"> 278 + <p class="truncate font-medium text-neutral-900 dark:text-neutral-100"> 279 + {tl.name} 280 + </p> 281 + <p class="mt-0.5 text-xs text-neutral-500"> 282 + {tl.tracks.length} 283 + {tl.tracks.length === 1 ? 'track' : 'tracks'}{tl.liked ? ' · ♥' : ''} 284 + </p> 285 + </div> 286 + <span class="text-lg text-neutral-400 select-none dark:text-neutral-700">›</span> 287 + </button> 288 + </li> 289 + {/if} 290 + {/each} 291 + </ul> 292 + {:else} 293 + <div 294 + class="flex h-32 items-center justify-center text-xs text-neutral-400 dark:text-neutral-700" 295 + > 296 + This folder is empty 297 + </div> 298 + {/if} 299 + </div> 300 + 301 + <!-- ── Tracks view ────────────────────────────────────────────────────── --> 302 + {:else if view.kind === 'tracks'} 303 + <div class="shrink-0 border-b border-neutral-200 dark:border-neutral-800"> 304 + <div class="no-scrollbar flex items-center gap-1.5 overflow-x-auto px-4 py-2"> 305 + <div class="relative shrink-0"> 306 + <span 307 + class="pointer-events-none absolute top-1/2 left-2.5 -translate-y-1/2 text-xs text-neutral-500 select-none" 308 + >⌕</span 309 + > 310 + <input 311 + type="search" 312 + placeholder="Search…" 313 + bind:value={search_query} 314 + class="w-32 rounded-lg border border-neutral-300 bg-neutral-100 py-1.5 pr-3 pl-7 text-xs text-neutral-800 placeholder-neutral-400 transition-colors outline-none focus:border-neutral-400 dark:border-neutral-700 dark:bg-neutral-800 dark:text-neutral-200 dark:placeholder-neutral-600 dark:focus:border-neutral-500" 315 + /> 316 + </div> 317 + <div class="mx-0.5 h-4 w-px shrink-0 bg-neutral-100 dark:bg-neutral-800"></div> 318 + <button 319 + type="button" 320 + onclick={() => toggle_sort('name')} 321 + class="shrink-0 rounded border px-2.5 py-1 text-xs transition-colors {sort_key === 'name' 322 + ? 'border-neutral-400 bg-neutral-200 text-neutral-900 dark:border-neutral-600 dark:bg-neutral-700 dark:text-neutral-100' 323 + : 'border-neutral-300 text-neutral-500 hover:text-neutral-600 dark:border-neutral-700 dark:hover:text-neutral-300'}" 324 + > 325 + Name{sort_indicator('name')} 326 + </button> 327 + <button 328 + type="button" 329 + onclick={() => toggle_sort('artist')} 330 + class="shrink-0 rounded border px-2.5 py-1 text-xs transition-colors {sort_key === 331 + 'artist' 332 + ? 'border-neutral-400 bg-neutral-200 text-neutral-900 dark:border-neutral-600 dark:bg-neutral-700 dark:text-neutral-100' 333 + : 'border-neutral-300 text-neutral-500 hover:text-neutral-600 dark:border-neutral-700 dark:hover:text-neutral-300'}" 334 + > 335 + Artist{sort_indicator('artist')} 336 + </button> 337 + <button 338 + type="button" 339 + onclick={() => toggle_sort('dateAdded')} 340 + class="shrink-0 rounded border px-2.5 py-1 text-xs transition-colors {sort_key === 341 + 'dateAdded' 342 + ? 'border-neutral-400 bg-neutral-200 text-neutral-900 dark:border-neutral-600 dark:bg-neutral-700 dark:text-neutral-100' 343 + : 'border-neutral-300 text-neutral-500 hover:text-neutral-600 dark:border-neutral-700 dark:hover:text-neutral-300'}" 344 + > 345 + Date{sort_indicator('dateAdded')} 346 + </button> 347 + <button 348 + type="button" 349 + onclick={() => toggle_sort('playCount')} 350 + class="shrink-0 rounded border px-2.5 py-1 text-xs transition-colors {sort_key === 351 + 'playCount' 352 + ? 'border-neutral-400 bg-neutral-200 text-neutral-900 dark:border-neutral-600 dark:bg-neutral-700 dark:text-neutral-100' 353 + : 'border-neutral-300 text-neutral-500 hover:text-neutral-600 dark:border-neutral-700 dark:hover:text-neutral-300'}" 354 + > 355 + Plays{sort_indicator('playCount')} 356 + </button> 357 + <span 358 + class="ml-auto shrink-0 pl-1 text-xs text-neutral-400 tabular-nums dark:text-neutral-600" 359 + > 360 + {filtered_tracks.length}/{playlist_tracks.length} 361 + </span> 362 + </div> 363 + 364 + <div class="no-scrollbar flex items-center gap-1.5 overflow-x-auto px-4 pb-2"> 365 + <button 366 + type="button" 367 + onclick={() => (active_filter = { kind: 'all' })} 368 + class="shrink-0 rounded-full border px-2.5 py-1 text-xs transition-colors {active_filter.kind === 369 + 'all' 370 + ? 'border-neutral-200 bg-neutral-200 font-semibold text-neutral-900' 371 + : 'border-neutral-300 text-neutral-500 hover:text-neutral-600 dark:border-neutral-700 dark:hover:text-neutral-300'}" 372 + > 373 + All 374 + </button> 375 + <button 376 + type="button" 377 + onclick={() => (active_filter = { kind: 'liked' })} 378 + class="shrink-0 rounded-full border px-2.5 py-1 text-xs transition-colors {active_filter.kind === 379 + 'liked' 380 + ? 'border-rose-300 bg-rose-100 font-semibold text-rose-700 dark:border-rose-700 dark:bg-rose-900 dark:text-rose-200' 381 + : 'border-neutral-300 text-neutral-500 hover:text-neutral-600 dark:border-neutral-700 dark:hover:text-neutral-300'}" 382 + > 383 + ♥ Liked 384 + </button> 385 + {#each genres as genre} 386 + <button 387 + type="button" 388 + onclick={() => (active_filter = { kind: 'genre', value: genre })} 389 + class="shrink-0 rounded-full border px-2.5 py-1 text-xs transition-colors {active_filter.kind === 390 + 'genre' && active_filter.value === genre 391 + ? 'border-neutral-400 bg-neutral-200 font-semibold text-neutral-900 dark:border-neutral-600 dark:bg-neutral-700 dark:text-neutral-100' 392 + : 'border-neutral-300 text-neutral-500 hover:text-neutral-600 dark:border-neutral-700 dark:hover:text-neutral-300'}" 393 + > 394 + {genre} 395 + </button> 396 + {/each} 397 + </div> 398 + </div> 399 + 400 + <div class="flex-1 overflow-y-auto"> 401 + {#if filtered_tracks.length > 0} 402 + <ul class="divide-y divide-neutral-200 dark:divide-neutral-900"> 403 + {#each filtered_tracks as track} 404 + <li class="flex items-center gap-3 px-4 py-3 transition-colors"> 405 + <div class="min-w-0 flex-1"> 406 + <p class="truncate font-medium text-neutral-900 dark:text-neutral-100"> 407 + {track.name} 408 + </p> 409 + <p class="mt-0.5 truncate text-xs text-neutral-500"> 410 + {track.artist ?? 'Unknown Artist'} 411 + {#if track.albumName} 412 + <span class="text-neutral-400 dark:text-neutral-700"> · </span>{track.albumName} 413 + {/if} 414 + </p> 415 + <div class="mt-1 flex items-center gap-2"> 416 + {#if track.genre} 417 + <span 418 + class="rounded bg-neutral-100 px-1.5 py-px text-xs text-neutral-500 dark:bg-neutral-800" 419 + >{track.genre}</span 420 + > 421 + {/if} 422 + {#if track.year} 423 + <span class="text-xs text-neutral-400 dark:text-neutral-700">{track.year}</span> 424 + {/if} 425 + </div> 426 + </div> 427 + <div 428 + class="flex shrink-0 flex-col items-end gap-1 text-xs text-neutral-400 tabular-nums dark:text-neutral-600" 429 + > 430 + <span>{format_duration(track.duration)}</span> 431 + {#if track.playCount} 432 + <span>{track.playCount} plays</span> 433 + {/if} 434 + {#if track.liked} 435 + <span class="text-rose-500">♥</span> 436 + {/if} 437 + </div> 438 + </li> 439 + {/each} 440 + </ul> 441 + {:else} 442 + <div 443 + class="flex h-full flex-col items-center justify-center gap-3 px-8 text-center text-neutral-400 dark:text-neutral-700" 444 + > 445 + <span class="text-4xl">⌕</span> 446 + <p class="text-xs">No tracks match your search or filter</p> 447 + </div> 448 + {/if} 449 + </div> 450 + {/if} 451 + </div> 452 + 453 + <style> 454 + .no-scrollbar::-webkit-scrollbar { 455 + display: none; 456 + } 457 + .no-scrollbar { 458 + -ms-overflow-style: none; 459 + scrollbar-width: none; 460 + } 461 + </style>
+5
mobile/src/routes/layout.css
··· 1 + @import 'tailwindcss'; 2 + 3 + @theme { 4 + --default-transition-timing-function: cubic-bezier(0.33, 1, 0.68, 1); /* cubic-out */ 5 + }
mobile/static/favicon.png

This is a binary file and will not be displayed.

+1
mobile/static/svelte.svg
··· 1 + <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="26.6" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 308"><path fill="#FF3E00" d="M239.682 40.707C211.113-.182 154.69-12.301 113.895 13.69L42.247 59.356a82.198 82.198 0 0 0-37.135 55.056a86.566 86.566 0 0 0 8.536 55.576a82.425 82.425 0 0 0-12.296 30.719a87.596 87.596 0 0 0 14.964 66.244c28.574 40.893 84.997 53.007 125.787 27.016l71.648-45.664a82.182 82.182 0 0 0 37.135-55.057a86.601 86.601 0 0 0-8.53-55.577a82.409 82.409 0 0 0 12.29-30.718a87.573 87.573 0 0 0-14.963-66.244"></path><path fill="#FFF" d="M106.889 270.841c-23.102 6.007-47.497-3.036-61.103-22.648a52.685 52.685 0 0 1-9.003-39.85a49.978 49.978 0 0 1 1.713-6.693l1.35-4.115l3.671 2.697a92.447 92.447 0 0 0 28.036 14.007l2.663.808l-.245 2.659a16.067 16.067 0 0 0 2.89 10.656a17.143 17.143 0 0 0 18.397 6.828a15.786 15.786 0 0 0 4.403-1.935l71.67-45.672a14.922 14.922 0 0 0 6.734-9.977a15.923 15.923 0 0 0-2.713-12.011a17.156 17.156 0 0 0-18.404-6.832a15.78 15.78 0 0 0-4.396 1.933l-27.35 17.434a52.298 52.298 0 0 1-14.553 6.391c-23.101 6.007-47.497-3.036-61.101-22.649a52.681 52.681 0 0 1-9.004-39.849a49.428 49.428 0 0 1 22.34-33.114l71.664-45.677a52.218 52.218 0 0 1 14.563-6.398c23.101-6.007 47.497 3.036 61.101 22.648a52.685 52.685 0 0 1 9.004 39.85a50.559 50.559 0 0 1-1.713 6.692l-1.35 4.116l-3.67-2.693a92.373 92.373 0 0 0-28.037-14.013l-2.664-.809l.246-2.658a16.099 16.099 0 0 0-2.89-10.656a17.143 17.143 0 0 0-18.398-6.828a15.786 15.786 0 0 0-4.402 1.935l-71.67 45.674a14.898 14.898 0 0 0-6.73 9.975a15.9 15.9 0 0 0 2.709 12.012a17.156 17.156 0 0 0 18.404 6.832a15.841 15.841 0 0 0 4.402-1.935l27.345-17.427a52.147 52.147 0 0 1 14.552-6.397c23.101-6.006 47.497 3.037 61.102 22.65a52.681 52.681 0 0 1 9.003 39.848a49.453 49.453 0 0 1-22.34 33.12l-71.664 45.673a52.218 52.218 0 0 1-14.563 6.398"></path></svg>
+6
mobile/static/tauri.svg
··· 1 + <svg width="206" height="231" viewBox="0 0 206 231" fill="none" xmlns="http://www.w3.org/2000/svg"> 2 + <path d="M143.143 84C143.143 96.1503 133.293 106 121.143 106C108.992 106 99.1426 96.1503 99.1426 84C99.1426 71.8497 108.992 62 121.143 62C133.293 62 143.143 71.8497 143.143 84Z" fill="#FFC131"/> 3 + <ellipse cx="84.1426" cy="147" rx="22" ry="22" transform="rotate(180 84.1426 147)" fill="#24C8DB"/> 4 + <path fill-rule="evenodd" clip-rule="evenodd" d="M166.738 154.548C157.86 160.286 148.023 164.269 137.757 166.341C139.858 160.282 141 153.774 141 147C141 144.543 140.85 142.121 140.558 139.743C144.975 138.204 149.215 136.139 153.183 133.575C162.73 127.404 170.292 118.608 174.961 108.244C179.63 97.8797 181.207 86.3876 179.502 75.1487C177.798 63.9098 172.884 53.4021 165.352 44.8883C157.82 36.3744 147.99 30.2165 137.042 27.1546C126.095 24.0926 114.496 24.2568 103.64 27.6274C92.7839 30.998 83.1319 37.4317 75.8437 46.1553C74.9102 47.2727 74.0206 48.4216 73.176 49.5993C61.9292 50.8488 51.0363 54.0318 40.9629 58.9556C44.2417 48.4586 49.5653 38.6591 56.679 30.1442C67.0505 17.7298 80.7861 8.57426 96.2354 3.77762C111.685 -1.01901 128.19 -1.25267 143.769 3.10474C159.348 7.46215 173.337 16.2252 184.056 28.3411C194.775 40.457 201.767 55.4101 204.193 71.404C206.619 87.3978 204.374 103.752 197.73 118.501C191.086 133.25 180.324 145.767 166.738 154.548ZM41.9631 74.275L62.5557 76.8042C63.0459 72.813 63.9401 68.9018 65.2138 65.1274C57.0465 67.0016 49.2088 70.087 41.9631 74.275Z" fill="#FFC131"/> 5 + <path fill-rule="evenodd" clip-rule="evenodd" d="M38.4045 76.4519C47.3493 70.6709 57.2677 66.6712 67.6171 64.6132C65.2774 70.9669 64 77.8343 64 85.0001C64 87.1434 64.1143 89.26 64.3371 91.3442C60.0093 92.8732 55.8533 94.9092 51.9599 97.4256C42.4128 103.596 34.8505 112.392 30.1816 122.756C25.5126 133.12 23.9357 144.612 25.6403 155.851C27.3449 167.09 32.2584 177.598 39.7906 186.112C47.3227 194.626 57.153 200.784 68.1003 203.846C79.0476 206.907 90.6462 206.743 101.502 203.373C112.359 200.002 122.011 193.568 129.299 184.845C130.237 183.722 131.131 182.567 131.979 181.383C143.235 180.114 154.132 176.91 164.205 171.962C160.929 182.49 155.596 192.319 148.464 200.856C138.092 213.27 124.357 222.426 108.907 227.222C93.458 232.019 76.9524 232.253 61.3736 227.895C45.7948 223.538 31.8055 214.775 21.0867 202.659C10.3679 190.543 3.37557 175.59 0.949823 159.596C-1.47592 143.602 0.768139 127.248 7.41237 112.499C14.0566 97.7497 24.8183 85.2327 38.4045 76.4519ZM163.062 156.711L163.062 156.711C162.954 156.773 162.846 156.835 162.738 156.897C162.846 156.835 162.954 156.773 163.062 156.711Z" fill="#24C8DB"/> 6 + </svg>
+1
mobile/static/vite.svg
··· 1 + <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
+23
mobile/svelte.config.js
··· 1 + // Tauri doesn't have a Node.js server to do proper SSR 2 + // so we use adapter-static with a fallback to index.html to put the site in SPA mode 3 + // See: https://svelte.dev/docs/kit/single-page-apps 4 + // See: https://v2.tauri.app/start/frontend/sveltekit/ for more info 5 + import adapter from '@sveltejs/adapter-static' 6 + import { vitePreprocess } from '@sveltejs/vite-plugin-svelte' 7 + 8 + /** @type {import('@sveltejs/kit').Config} */ 9 + const config = { 10 + preprocess: vitePreprocess(), 11 + kit: { 12 + adapter: adapter({ 13 + fallback: 'index.html', 14 + }), 15 + }, 16 + compilerOptions: { 17 + experimental: { 18 + async: true, 19 + }, 20 + }, 21 + } 22 + 23 + export default config
+19
mobile/tsconfig.json
··· 1 + { 2 + "extends": "./.svelte-kit/tsconfig.json", 3 + "compilerOptions": { 4 + "allowJs": true, 5 + "checkJs": true, 6 + "esModuleInterop": true, 7 + "forceConsistentCasingInFileNames": true, 8 + "resolveJsonModule": true, 9 + "skipLibCheck": true, 10 + "sourceMap": true, 11 + "strict": true, 12 + "moduleResolution": "bundler" 13 + } 14 + // Path aliases are handled by https://svelte.dev/docs/kit/configuration#alias 15 + // except $lib which is handled by https://svelte.dev/docs/kit/configuration#files 16 + // 17 + // If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes 18 + // from the referenced tsconfig.json - TypeScript does not merge them in 19 + }
+27
mobile/vite.config.ts
··· 1 + import tailwindcss from '@tailwindcss/vite' 2 + import { defineConfig } from 'vite' 3 + import { sveltekit } from '@sveltejs/kit/vite' 4 + 5 + const host = process.env.TAURI_DEV_HOST 6 + 7 + // https://vite.dev/config/ 8 + export default defineConfig(async () => ({ 9 + plugins: [tailwindcss(), sveltekit()], 10 + // Vite options tailored for Tauri development and only applied in `tauri dev` or `tauri build` 11 + // 12 + // 1. prevent Vite from obscuring rust errors 13 + clearScreen: false, 14 + 15 + // 2. tauri expects a fixed port, fail if that port is not available 16 + server: { 17 + port: 1420, 18 + strictPort: true, 19 + host: host || false, 20 + hmr: host ? { protocol: 'ws', host, port: 1421 } : undefined, 21 + fs: { allow: ['./bindings.ts'] }, 22 + watch: { 23 + // 3. tell Vite to ignore watching `src-tauri` 24 + ignored: ['**/src-tauri/**'], 25 + }, 26 + }, 27 + }))
+2
package.json
··· 10 10 "latest-release-api-url": "https://api.github.com/repos/probablykasper/ferrum/releases/latest", 11 11 "scripts": { 12 12 "dev": "npm run napi:dev && vite dev", 13 + "dev-android": "cd mobile && cargo tauri android dev", 13 14 "dev-prod": "npm run napi && npm run build:web && APP_ENV=prod vite dev", 14 15 "dev-release": "npm run napi && vite dev", 15 16 "napi": "napi build --output-dir ferrum-addon --dts addon.d.ts --release", 16 17 "napi:dev": "napi build --output-dir ferrum-addon --dts addon.d.ts", 17 18 "build": "npm run napi && npm run build:web && electron-builder && npm run generate-update-json", 18 19 "build:web": "vite build", 20 + "build-android": "cd mobile && cargo tauri android dev", 19 21 "electron-builder": "electron-builder", 20 22 "generate-update-json": "node ./generate-update-json.mjs", 21 23 "preview": "LOCAL_DATA=./src-native/appdata/local_data LIBRARY=./src-native/appdata/Library ./build/app/mac/Ferrum.app/Contents/MacOS/Ferrum",
+19 -2
src-native/lib.rs
··· 1 + #[cfg(feature = "napi-rs")] 1 2 use anyhow::{Context, Result}; 2 3 use mimalloc::MiMalloc; 4 + #[cfg(feature = "napi-rs")] 3 5 use serde::de::DeserializeOwned; 6 + #[cfg(feature = "napi-rs")] 4 7 use std::fs::File; 8 + #[cfg(feature = "napi-rs")] 5 9 use std::io::BufReader; 6 10 use std::time::{SystemTime, UNIX_EPOCH}; 7 11 ··· 9 13 #[global_allocator] 10 14 static GLOBAL: MiMalloc = MiMalloc; 11 15 16 + #[cfg(feature = "napi-rs")] 12 17 #[macro_use] 13 18 extern crate napi_derive; 14 19 20 + #[cfg(feature = "napi-rs")] 15 21 mod data; 22 + #[cfg(feature = "napi-rs")] 16 23 mod data_js; 24 + #[cfg(feature = "napi-rs")] 17 25 mod filter; 26 + #[cfg(feature = "napi-rs")] 18 27 mod itunes_import; 19 - mod library; 20 - mod library_types; 28 + pub mod library; 29 + pub mod library_types; 30 + #[cfg(feature = "napi-rs")] 21 31 mod page; 32 + #[cfg(feature = "napi-rs")] 22 33 mod playlists; 34 + #[cfg(feature = "napi-rs")] 23 35 mod sort; 36 + #[cfg(feature = "napi-rs")] 24 37 mod tracks; 38 + #[cfg(feature = "napi-rs")] 25 39 mod view_options; 26 40 27 41 fn get_now_timestamp() -> i64 { ··· 32 46 return timestamp; 33 47 } 34 48 49 + #[cfg(feature = "napi-rs")] 35 50 fn sys_time_to_timestamp(sys_time: &SystemTime) -> i64 { 36 51 let timestamp = match sys_time.duration_since(UNIX_EPOCH) { 37 52 Ok(n) => n.as_millis() as i64, ··· 40 55 return timestamp; 41 56 } 42 57 58 + #[cfg(feature = "napi-rs")] 43 59 fn str_to_option(s: String) -> Option<String> { 44 60 match s.as_str() { 45 61 "" => None, ··· 47 63 } 48 64 } 49 65 66 + #[cfg(feature = "napi-rs")] 50 67 fn path_to_json<J>(path: &str) -> Result<J> 51 68 where 52 69 J: DeserializeOwned,
+20 -4
src-native/library.rs
··· 1 + #[cfg(feature = "napi-rs")] 1 2 use crate::data::Data; 3 + #[cfg(feature = "napi-rs")] 2 4 use crate::data_js::get_data; 3 5 use crate::library_types::{Library, VersionedLibrary}; 4 6 use anyhow::{Context, Result, bail}; 7 + #[cfg(feature = "napi-rs")] 5 8 use napi::Env; 6 9 use serde_json::{Value, json}; 7 - use std::fs::{File, create_dir_all}; 10 + use std::fs::File; 11 + #[cfg(feature = "napi-rs")] 12 + use std::fs::create_dir_all; 8 13 use std::io::{ErrorKind, Read, Seek, SeekFrom}; 14 + #[cfg(feature = "napi-rs")] 9 15 use std::path::PathBuf; 10 16 use std::time::Instant; 11 17 18 + #[cfg(feature = "napi-rs")] 12 19 #[derive(Clone)] 13 20 #[napi(object)] 14 21 pub struct Paths { ··· 22 29 pub view_options_file: String, 23 30 pub logs_dir: String, 24 31 } 32 + #[cfg(feature = "napi-rs")] 25 33 impl Paths { 26 34 fn ensure_dirs_exists(&self) -> Result<()> { 27 35 create_dir_all(&self.library_dir)?; ··· 36 44 } 37 45 } 38 46 47 + #[cfg(feature = "napi-rs")] 39 48 pub fn load_library(paths: &Paths) -> Result<Library> { 40 - let now = Instant::now(); 41 - 42 49 paths 43 50 .ensure_dirs_exists() 44 51 .context("Error ensuring folder exists")?; 45 52 println!("Loading library at path: {}", paths.library_dir); 46 53 47 - let mut library_file = match File::open(&paths.library_json) { 54 + load_library_from_file(&paths.library_json) 55 + } 56 + 57 + pub fn load_library_from_file(library_json: &str) -> Result<Library> { 58 + let now = Instant::now(); 59 + 60 + let mut library_file = match File::open(&library_json) { 48 61 Ok(file) => file, 49 62 Err(err) => match err.kind() { 50 63 ErrorKind::NotFound => return Ok(Library::new()), ··· 117 130 Bool, 118 131 } 119 132 133 + #[cfg(feature = "napi-rs")] 120 134 #[napi(js_name = "get_default_sort_desc")] 121 135 #[allow(dead_code)] 122 136 pub fn get_default_sort_desc(field: String) -> Result<bool> { ··· 175 189 return Ok(field); 176 190 } 177 191 192 + #[cfg(feature = "napi-rs")] 178 193 #[napi(js_name = "get_genres")] 179 194 #[allow(dead_code)] 180 195 pub fn get_genres(env: Env) -> Vec<String> { ··· 183 198 genres.clone() 184 199 } 185 200 201 + #[cfg(feature = "napi-rs")] 186 202 #[napi(js_name = "get_artists")] 187 203 #[allow(dead_code)] 188 204 pub fn get_artists(env: Env) -> Vec<String> {
+17 -13
src-native/library_types.rs
··· 1 1 #![allow(non_snake_case)] 2 2 3 3 use crate::get_now_timestamp; 4 + #[cfg(feature = "napi-rs")] 4 5 use crate::library::Paths; 6 + #[cfg(feature = "napi-rs")] 5 7 use crate::playlists::{delete_file, remove_from_all_playlists}; 6 8 use anyhow::{Context, Result, bail}; 7 9 use linked_hash_map::{Entry, LinkedHashMap}; 8 10 use nanoid::nanoid; 9 11 use serde::{Deserialize, Serialize}; 12 + use specta::Type; 10 13 use std::borrow::Cow; 11 14 use std::collections::HashSet; 12 15 use std::sync::RwLock; ··· 138 141 track_id_map.push(id.clone()); 139 142 self.track_item_ids.insert(id, item_id); 140 143 } 144 + #[cfg(feature = "napi-rs")] 141 145 pub fn delete_track_and_file(&mut self, id: &TrackID, paths: &Paths) -> Result<()> { 142 146 let file_path = { 143 147 let track = self.get_track(id)?; ··· 282 286 /// (track id, start time, duration) 283 287 pub type PlayTime = (TrackID, MsSinceUnixEpoch, i64); 284 288 285 - #[derive(Serialize, Deserialize, Clone, Debug)] 286 - #[napi(object)] 289 + #[derive(Serialize, Deserialize, Clone, Debug, Type)] 290 + #[cfg_attr(feature = "napi", napi(object))] 287 291 pub struct Track { 288 292 pub size: i64, 289 293 pub duration: f64, ··· 373 377 } 374 378 } 375 379 376 - #[derive(Serialize, Deserialize, Clone, Debug)] 377 - #[napi(object)] 380 + #[derive(Serialize, Deserialize, Clone, Debug, Type)] 381 + #[cfg_attr(feature = "napi", napi(object))] 378 382 pub struct CountObject { 379 383 pub count: i64, 380 384 pub fromDate: MsSinceUnixEpoch, 381 385 pub toDate: MsSinceUnixEpoch, 382 386 } 383 387 384 - #[derive(Serialize, Deserialize, Clone, Debug)] 388 + #[derive(Serialize, Deserialize, Clone, Debug, Type)] 385 389 #[serde(tag = "type")] 386 390 pub enum TrackList { 387 391 #[serde(rename = "playlist")] ··· 446 450 // playlist_track_id_map[playlist_item_id as usize].clone() 447 451 // } 448 452 449 - #[derive(Serialize, Deserialize, Clone, Debug)] 450 - #[napi(object)] 453 + #[derive(Serialize, Deserialize, Clone, Debug, Type)] 454 + #[cfg_attr(feature = "napi", napi(object))] 451 455 pub struct Playlist { 452 456 pub id: TrackListID, 453 457 pub name: String, ··· 498 502 track_ids.serialize(serializer) 499 503 } 500 504 501 - #[derive(Serialize, Deserialize, Clone, Debug)] 502 - #[napi(object)] 505 + #[derive(Serialize, Deserialize, Clone, Debug, Type)] 506 + #[cfg_attr(feature = "napi", napi(object))] 503 507 pub struct Folder { 504 508 pub id: TrackListID, 505 509 pub name: String, ··· 522 526 pub children: Vec<TrackListID>, 523 527 } 524 528 525 - #[derive(Serialize, Deserialize, Clone, Debug)] 526 - #[napi(object)] 529 + #[derive(Serialize, Deserialize, Clone, Debug, Type)] 530 + #[cfg_attr(feature = "napi", napi(object))] 527 531 pub struct Special { 528 532 pub id: TrackListID, 529 533 pub name: SpecialTrackListName, ··· 531 535 pub children: Vec<TrackListID>, 532 536 } 533 537 534 - #[derive(Serialize, Deserialize, Clone, Debug)] 538 + #[derive(Serialize, Deserialize, Clone, Debug, Type)] 535 539 #[non_exhaustive] 536 - #[napi] 540 + #[cfg_attr(feature = "napi-rs", napi)] 537 541 pub enum SpecialTrackListName { 538 542 Root, 539 543 }
+11 -7
src-native/playlists.rs
··· 203 203 } 204 204 205 205 pub fn delete_file(path: &PathBuf) -> Result<()> { 206 - #[allow(unused_mut)] 207 - let mut trash_context = trash::TrashContext::new(); 206 + if cfg!(target_os = "android") { 207 + bail!("Unsupported"); 208 + } else { 209 + #[allow(unused_mut)] 210 + let mut trash_context = trash::TrashContext::new(); 208 211 209 - #[cfg(target_os = "macos")] 210 - trash_context.set_delete_method(trash::macos::DeleteMethod::NsFileManager); 212 + #[cfg(target_os = "macos")] 213 + trash_context.set_delete_method(trash::macos::DeleteMethod::NsFileManager); 211 214 212 - trash_context 213 - .delete(&path) 214 - .with_context(|| format!("Failed moving file to trash: {}", path.to_string_lossy())) 215 + trash_context 216 + .delete(&path) 217 + .with_context(|| format!("Failed moving file to trash: {}", path.to_string_lossy())) 218 + } 215 219 } 216 220 217 221 #[napi(js_name = "delete_tracks_with_item_ids")]
+3 -1
src-native/tracks/cover.rs
··· 52 52 Ok(()) 53 53 } 54 54 55 + #[cfg(feature = "napi-rs")] 55 56 #[napi(js_name = "close_cache_db")] 56 57 #[allow(dead_code)] 57 58 pub async fn close_cache_db() -> napi::Result<()> { ··· 135 136 } 136 137 137 138 /// Returns `None` if the file does not have an image 139 + #[cfg(feature = "napi-rs")] 138 140 #[napi(js_name = "read_small_cover_async")] 139 141 #[allow(dead_code)] 140 142 pub async fn read_small_cover_async( ··· 236 238 Ok(img_bytes) 237 239 } 238 240 239 - #[napi(js_name = "read_cover_async")] 241 + #[cfg_attr(feature = "napi-rs", napi(js_name = "read_cover_async"))] 240 242 #[allow(dead_code)] 241 243 pub async fn read_cover_async(file_path: String, index: u16) -> Result<Option<Buffer>> { 242 244 let file_path = PathBuf::from(file_path);
+1 -1
src-native/tracks/md.rs
··· 9 9 use std::fs; 10 10 11 11 #[derive(Serialize, Deserialize, Debug)] 12 - #[napi(object)] 12 + #[cfg_attr(feature = "napi-rs", napi(object))] 13 13 pub struct TrackMD { 14 14 pub name: String, 15 15 pub artist: String,