From c02471793474f215fcf1d0730778171032b47aef Mon Sep 17 00:00:00 2001 From: Ole-Morten Duesund Date: Mon, 16 Feb 2026 11:46:01 +0100 Subject: [PATCH] Initial implementation of Claude desktop app (Tauri v2) Standalone native desktop app wrapping claude.ai with: - Direct webview navigation to claude.ai (not iframe) - System tray with close-to-tray behavior - Native notification bridge (JS overrides browser Notification API) - Navigation filter allowing only Claude, Anthropic, and OAuth domains - External links open in system browser - Session persistence via WebKitGTK cookies/localStorage - Builds .deb and AppImage bundles Co-Authored-By: Claude Opus 4.6 --- .gitignore | 5 + package.json | 6 + src-tauri/Cargo.lock | 5455 +++++++++++++++++++++++++++ src-tauri/Cargo.toml | 20 + src-tauri/build.rs | 3 + src-tauri/capabilities/default.json | 20 + src-tauri/capabilities/remote.json | 16 + src-tauri/icons/128x128.png | Bin 0 -> 8761 bytes src-tauri/icons/128x128@2x.png | Bin 0 -> 17686 bytes src-tauri/icons/32x32.png | Bin 0 -> 2104 bytes src-tauri/icons/icon.icns | Bin 0 -> 13010 bytes src-tauri/icons/icon.ico | Bin 0 -> 105789 bytes src-tauri/icons/icon.png | Bin 0 -> 14392 bytes src-tauri/src/lib.rs | 187 + src-tauri/src/main.rs | 6 + src-tauri/tauri.conf.json | 34 + src/index.html | 5 + 17 files changed, 5757 insertions(+) create mode 100644 .gitignore create mode 100644 package.json create mode 100644 src-tauri/Cargo.lock create mode 100644 src-tauri/Cargo.toml create mode 100644 src-tauri/build.rs create mode 100644 src-tauri/capabilities/default.json create mode 100644 src-tauri/capabilities/remote.json create mode 100644 src-tauri/icons/128x128.png create mode 100644 src-tauri/icons/128x128@2x.png create mode 100644 src-tauri/icons/32x32.png create mode 100644 src-tauri/icons/icon.icns create mode 100644 src-tauri/icons/icon.ico create mode 100644 src-tauri/icons/icon.png create mode 100644 src-tauri/src/lib.rs create mode 100644 src-tauri/src/main.rs create mode 100644 src-tauri/tauri.conf.json create mode 100644 src/index.html diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c50f601 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +target/ +node_modules/ +gen/ +*.AppImage + diff --git a/package.json b/package.json new file mode 100644 index 0000000..16185cd --- /dev/null +++ b/package.json @@ -0,0 +1,6 @@ +{ + "name": "claude-app", + "version": "1.0.0", + "private": true, + "description": "Claude desktop app" +} diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock new file mode 100644 index 0000000..b086236 --- /dev/null +++ b/src-tauri/Cargo.lock @@ -0,0 +1,5455 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "adler2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" + +[[package]] +name = "aho-corasick" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" +dependencies = [ + "memchr", +] + +[[package]] +name = "alloc-no-stdlib" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" +dependencies = [ + "alloc-no-stdlib", +] + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anyhow" +version = "1.0.101" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f0e0fee31ef5ed1ba1316088939cea399010ed7731dba877ed44aeb407a75ea" + +[[package]] +name = "async-broadcast" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532" +dependencies = [ + "event-listener", + "event-listener-strategy", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-channel" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2" +dependencies = [ + "concurrent-queue", + "event-listener-strategy", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-executor" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c96bf972d85afc50bf5ab8fe2d54d1586b4e0b46c97c50a0c9e71e2f7bcd812a" +dependencies = [ + "async-task", + "concurrent-queue", + "fastrand", + "futures-lite", + "pin-project-lite", + "slab", +] + +[[package]] +name = "async-io" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "456b8a8feb6f42d237746d4b3e9a178494627745c3c56c6ea55d92ba50d026fc" +dependencies = [ + "autocfg", + "cfg-if", + "concurrent-queue", + "futures-io", + "futures-lite", + "parking", + "polling", + "rustix", + "slab", + "windows-sys 0.61.2", +] + +[[package]] +name = "async-lock" +version = "3.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290f7f2596bd5b78a9fec8088ccd89180d7f9f55b94b0576823bbbdc72ee8311" +dependencies = [ + "event-listener", + "event-listener-strategy", + "pin-project-lite", +] + +[[package]] +name = "async-process" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc50921ec0055cdd8a16de48773bfeec5c972598674347252c0399676be7da75" +dependencies = [ + "async-channel", + "async-io", + "async-lock", + "async-signal", + "async-task", + "blocking", + "cfg-if", + "event-listener", + "futures-lite", + "rustix", +] + +[[package]] +name = "async-recursion" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "async-signal" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43c070bbf59cd3570b6b2dd54cd772527c7c3620fce8be898406dd3ed6adc64c" +dependencies = [ + "async-io", + "async-lock", + "atomic-waker", + "cfg-if", + "futures-core", + "futures-io", + "rustix", + "signal-hook-registry", + "slab", + "windows-sys 0.61.2", +] + +[[package]] +name = "async-task" +version = "4.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" + +[[package]] +name = "async-trait" +version = "0.1.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "atk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "241b621213072e993be4f6f3a9e4b45f65b7e6faad43001be957184b7bb1824b" +dependencies = [ + "atk-sys", + "glib", + "libc", +] + +[[package]] +name = "atk-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5e48b684b0ca77d2bbadeef17424c2ea3c897d44d566a1617e7e8f30614d086" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "autocfg" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" +dependencies = [ + "serde_core", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block2" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5" +dependencies = [ + "objc2", +] + +[[package]] +name = "blocking" +version = "1.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e83f8d02be6967315521be875afa792a316e28d57b5a2d401897e2a7921b7f21" +dependencies = [ + "async-channel", + "async-task", + "futures-io", + "futures-lite", + "piper", +] + +[[package]] +name = "brotli" +version = "8.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bd8b9603c7aa97359dbd97ecf258968c95f3adddd6db2f7e7a5bef101c84560" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "874bb8112abecc98cbd6d81ea4fa7e94fb9449648c93cc89aa40c81c24d7de03" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + +[[package]] +name = "bumpalo" +version = "3.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510" + +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "byteorder-lite" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" + +[[package]] +name = "bytes" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" +dependencies = [ + "serde", +] + +[[package]] +name = "cairo-rs" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2" +dependencies = [ + "bitflags 2.11.0", + "cairo-sys-rs", + "glib", + "libc", + "once_cell", + "thiserror 1.0.69", +] + +[[package]] +name = "cairo-sys-rs" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + +[[package]] +name = "camino" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e629a66d692cb9ff1a1c664e41771b3dcaf961985a9774c0eb0bd1b51cf60a48" +dependencies = [ + "serde_core", +] + +[[package]] +name = "cargo-platform" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.19.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba" +dependencies = [ + "camino", + "cargo-platform", + "semver", + "serde", + "serde_json", + "thiserror 2.0.18", +] + +[[package]] +name = "cargo_toml" +version = "0.22.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "374b7c592d9c00c1f4972ea58390ac6b18cbb6ab79011f3bdc90a0b82ca06b77" +dependencies = [ + "serde", + "toml 0.9.12+spec-1.1.0", +] + +[[package]] +name = "cc" +version = "1.2.56" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aebf35691d1bfb0ac386a69bac2fde4dd276fb618cf8bf4f5318fe285e821bb2" +dependencies = [ + "find-msvc-tools", + "shlex", +] + +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + +[[package]] +name = "cfb" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38f2da7a0a2c4ccf0065be06397cc26a81f4e528be095826eee9d4adbb8c60f" +dependencies = [ + "byteorder", + "fnv", + "uuid", +] + +[[package]] +name = "cfg-expr" +version = "0.15.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" +dependencies = [ + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cfg-if" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" + +[[package]] +name = "chrono" +version = "0.4.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fac4744fb15ae8337dc853fee7fb3f4e48c0fbaa23d0afe49c447b4fab126118" +dependencies = [ + "iana-time-zone", + "num-traits", + "serde", + "windows-link 0.2.1", +] + +[[package]] +name = "claude-app" +version = "1.0.0" +dependencies = [ + "serde", + "serde_json", + "tauri", + "tauri-build", + "tauri-plugin-notification", + "tauri-plugin-opener", + "url", +] + +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + +[[package]] +name = "concurrent-queue" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "cookie" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ddef33a339a91ea89fb53151bd0a4689cfce27055c291dfa69945475d22c747" +dependencies = [ + "time", + "version_check", +] + +[[package]] +name = "core-foundation" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "core-graphics" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa95a34622365fa5bbf40b20b75dba8dfa8c94c734aea8ac9a5ca38af14316f1" +dependencies = [ + "bitflags 2.11.0", + "core-foundation", + "core-graphics-types", + "foreign-types", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" +dependencies = [ + "bitflags 2.11.0", + "core-foundation", + "libc", +] + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" + +[[package]] +name = "crypto-common" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "cssparser" +version = "0.29.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f93d03419cb5950ccfd3daf3ff1c7a36ace64609a1a8746d493df1ca0afde0fa" +dependencies = [ + "cssparser-macros", + "dtoa-short", + "itoa", + "matches", + "phf 0.10.1", + "proc-macro2", + "quote", + "smallvec", + "syn 1.0.109", +] + +[[package]] +name = "cssparser-macros" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" +dependencies = [ + "quote", + "syn 2.0.116", +] + +[[package]] +name = "ctor" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a2785755761f3ddc1492979ce1e48d2c00d09311c39e4466429188f3dd6501" +dependencies = [ + "quote", + "syn 2.0.116", +] + +[[package]] +name = "darling" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.116", +] + +[[package]] +name = "darling_macro" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "deranged" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc3dc5ad92c2e2d1c193bbbbdf2ea477cb81331de4f3103f267ca18368b988c4" +dependencies = [ + "powerfmt", + "serde_core", +] + +[[package]] +name = "derive_more" +version = "0.99.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6edb4b64a43d977b8e99788fe3a04d483834fba1215a7e02caa415b626497f7f" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "rustc_version", + "syn 2.0.116", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "dirs" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.61.2", +] + +[[package]] +name = "dispatch" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" + +[[package]] +name = "dispatch2" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec" +dependencies = [ + "bitflags 2.11.0", + "objc2", +] + +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "dlopen2" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e2c5bd4158e66d1e215c49b837e11d62f3267b30c92f1d171c4d3105e3dc4d4" +dependencies = [ + "dlopen2_derive", + "libc", + "once_cell", + "winapi", +] + +[[package]] +name = "dlopen2_derive" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fbbb781877580993a8707ec48672673ec7b81eeba04cfd2310bd28c08e47c8f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "dpi" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76" +dependencies = [ + "serde", +] + +[[package]] +name = "dtoa" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c3cf4824e2d5f025c7b531afcb2325364084a16806f6d47fbc1f5fbd9960590" + +[[package]] +name = "dtoa-short" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd1511a7b6a56299bd043a9c167a6d2bfb37bf84a6dfceaba651168adfb43c87" +dependencies = [ + "dtoa", +] + +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + +[[package]] +name = "dyn-clone" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" + +[[package]] +name = "embed-resource" +version = "3.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55a075fc573c64510038d7ee9abc7990635863992f83ebc52c8b433b8411a02e" +dependencies = [ + "cc", + "memchr", + "rustc_version", + "toml 0.9.12+spec-1.1.0", + "vswhom", + "winreg", +] + +[[package]] +name = "embed_plist" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" + +[[package]] +name = "endi" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66b7e2430c6dff6a955451e2cfc438f09cea1965a9d6f87f7e3b90decc014099" + +[[package]] +name = "enumflags2" +version = "0.7.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1027f7680c853e056ebcec683615fb6fbbc07dbaa13b4d5d9442b146ded4ecef" +dependencies = [ + "enumflags2_derive", + "serde", +] + +[[package]] +name = "enumflags2_derive" +version = "0.7.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "erased-serde" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89e8918065695684b2b0702da20382d5ae6065cf3327bc2d6436bd49a71ce9f3" +dependencies = [ + "serde", + "serde_core", + "typeid", +] + +[[package]] +name = "errno" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + +[[package]] +name = "event-listener" +version = "5.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener-strategy" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" +dependencies = [ + "event-listener", + "pin-project-lite", +] + +[[package]] +name = "fastrand" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" + +[[package]] +name = "fdeflate" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "field-offset" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" +dependencies = [ + "memoffset", + "rustc_version", +] + +[[package]] +name = "find-msvc-tools" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" + +[[package]] +name = "flate2" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + +[[package]] +name = "foreign-types" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" +dependencies = [ + "foreign-types-macros", + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-macros" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "foreign-types-shared" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" + +[[package]] +name = "form_urlencoded" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futf" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" +dependencies = [ + "mac", + "new_debug_unreachable", +] + +[[package]] +name = "futures-channel" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" + +[[package]] +name = "futures-executor" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" + +[[package]] +name = "futures-lite" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad" +dependencies = [ + "fastrand", + "futures-core", + "futures-io", + "parking", + "pin-project-lite", +] + +[[package]] +name = "futures-macro" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "futures-sink" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893" + +[[package]] +name = "futures-task" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" + +[[package]] +name = "futures-util" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" +dependencies = [ + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "slab", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "gdk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9f245958c627ac99d8e529166f9823fb3b838d1d41fd2b297af3075093c2691" +dependencies = [ + "cairo-rs", + "gdk-pixbuf", + "gdk-sys", + "gio", + "glib", + "libc", + "pango", +] + +[[package]] +name = "gdk-pixbuf" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50e1f5f1b0bfb830d6ccc8066d18db35c487b1b2b1e8589b5dfe9f07e8defaec" +dependencies = [ + "gdk-pixbuf-sys", + "gio", + "glib", + "libc", + "once_cell", +] + +[[package]] +name = "gdk-pixbuf-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gdk-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c2d13f38594ac1e66619e188c6d5a1adb98d11b2fcf7894fc416ad76aa2f3f7" +dependencies = [ + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "pkg-config", + "system-deps", +] + +[[package]] +name = "gdkwayland-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "140071d506d223f7572b9f09b5e155afbd77428cd5cc7af8f2694c41d98dfe69" +dependencies = [ + "gdk-sys", + "glib-sys", + "gobject-sys", + "libc", + "pkg-config", + "system-deps", +] + +[[package]] +name = "gdkx11" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3caa00e14351bebbc8183b3c36690327eb77c49abc2268dd4bd36b856db3fbfe" +dependencies = [ + "gdk", + "gdkx11-sys", + "gio", + "glib", + "libc", + "x11", +] + +[[package]] +name = "gdkx11-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e2e7445fe01ac26f11601db260dd8608fe172514eb63b3b5e261ea6b0f4428d" +dependencies = [ + "gdk-sys", + "glib-sys", + "libc", + "system-deps", + "x11", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.1+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" +dependencies = [ + "cfg-if", + "libc", + "r-efi", + "wasip2", +] + +[[package]] +name = "getrandom" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "139ef39800118c7683f2fd3c98c1b23c09ae076556b435f8e9064ae108aaeeec" +dependencies = [ + "cfg-if", + "libc", + "r-efi", + "wasip2", + "wasip3", +] + +[[package]] +name = "gio" +version = "0.18.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "gio-sys", + "glib", + "libc", + "once_cell", + "pin-project-lite", + "smallvec", + "thiserror 1.0.69", +] + +[[package]] +name = "gio-sys" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", + "winapi", +] + +[[package]] +name = "glib" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5" +dependencies = [ + "bitflags 2.11.0", + "futures-channel", + "futures-core", + "futures-executor", + "futures-task", + "futures-util", + "gio-sys", + "glib-macros", + "glib-sys", + "gobject-sys", + "libc", + "memchr", + "once_cell", + "smallvec", + "thiserror 1.0.69", +] + +[[package]] +name = "glib-macros" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc" +dependencies = [ + "heck 0.4.1", + "proc-macro-crate 2.0.2", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "glib-sys" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898" +dependencies = [ + "libc", + "system-deps", +] + +[[package]] +name = "glob" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" + +[[package]] +name = "gobject-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gtk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd56fb197bfc42bd5d2751f4f017d44ff59fbb58140c6b49f9b3b2bdab08506a" +dependencies = [ + "atk", + "cairo-rs", + "field-offset", + "futures-channel", + "gdk", + "gdk-pixbuf", + "gio", + "glib", + "gtk-sys", + "gtk3-macros", + "libc", + "pango", + "pkg-config", +] + +[[package]] +name = "gtk-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f29a1c21c59553eb7dd40e918be54dccd60c52b049b75119d5d96ce6b624414" +dependencies = [ + "atk-sys", + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "system-deps", +] + +[[package]] +name = "gtk3-macros" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52ff3c5b21f14f0736fed6dcfc0bfb4225ebf5725f3c0209edeec181e4d73e9d" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "foldhash", +] + +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "html5ever" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b7410cae13cbc75623c98ac4cbfd1f0bedddf3227afc24f370cf0f50a44a11c" +dependencies = [ + "log", + "mac", + "markup5ever", + "match_token", +] + +[[package]] +name = "http" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" +dependencies = [ + "bytes", + "itoa", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "hyper" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11" +dependencies = [ + "atomic-waker", + "bytes", + "futures-channel", + "futures-core", + "http", + "http-body", + "httparse", + "itoa", + "pin-project-lite", + "pin-utils", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-util" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-channel", + "futures-util", + "http", + "http-body", + "hyper", + "ipnet", + "libc", + "percent-encoding", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "log", + "wasm-bindgen", + "windows-core 0.62.2", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "ico" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e795dff5605e0f04bff85ca41b51a96b83e80b281e96231bcaaf1ac35103371" +dependencies = [ + "byteorder", + "png 0.17.16", +] + +[[package]] +name = "icu_collections" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" +dependencies = [ + "displaydoc", + "potential_utf", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locale_core" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_normalizer" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" +dependencies = [ + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" + +[[package]] +name = "icu_properties" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec" +dependencies = [ + "icu_collections", + "icu_locale_core", + "icu_properties_data", + "icu_provider", + "zerotrie", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af" + +[[package]] +name = "icu_provider" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" +dependencies = [ + "displaydoc", + "icu_locale_core", + "writeable", + "yoke", + "zerofrom", + "zerotrie", + "zerovec", +] + +[[package]] +name = "id-arena" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "image" +version = "0.25.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6506c6c10786659413faa717ceebcb8f70731c0a60cbae39795fdf114519c1a" +dependencies = [ + "bytemuck", + "byteorder-lite", + "moxcms", + "num-traits", + "png 0.18.1", +] + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" +dependencies = [ + "equivalent", + "hashbrown 0.16.1", + "serde", + "serde_core", +] + +[[package]] +name = "infer" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a588916bfdfd92e71cacef98a63d9b1f0d74d6599980d11894290e7ddefffcf7" +dependencies = [ + "cfb", +] + +[[package]] +name = "ipnet" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" + +[[package]] +name = "iri-string" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c91338f0783edbd6195decb37bae672fd3b165faffb89bf7b9e6942f8b1a731a" +dependencies = [ + "memchr", + "serde", +] + +[[package]] +name = "is-docker" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3" +dependencies = [ + "once_cell", +] + +[[package]] +name = "is-wsl" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5" +dependencies = [ + "is-docker", + "once_cell", +] + +[[package]] +name = "itoa" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" + +[[package]] +name = "javascriptcore-rs" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca5671e9ffce8ffba57afc24070e906da7fc4b1ba66f2cabebf61bf2ea257fcc" +dependencies = [ + "bitflags 1.3.2", + "glib", + "javascriptcore-rs-sys", +] + +[[package]] +name = "javascriptcore-rs-sys" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af1be78d14ffa4b75b66df31840478fef72b51f8c2465d4ca7c194da9f7a5124" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "jni" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" +dependencies = [ + "cesu8", + "cfg-if", + "combine", + "jni-sys", + "log", + "thiserror 1.0.69", + "walkdir", + "windows-sys 0.45.0", +] + +[[package]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" + +[[package]] +name = "js-sys" +version = "0.3.85" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3" +dependencies = [ + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "json-patch" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "863726d7afb6bc2590eeff7135d923545e5e964f004c2ccf8716c25e70a86f08" +dependencies = [ + "jsonptr", + "serde", + "serde_json", + "thiserror 1.0.69", +] + +[[package]] +name = "jsonptr" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dea2b27dd239b2556ed7a25ba842fe47fd602e7fc7433c2a8d6106d4d9edd70" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "keyboard-types" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a" +dependencies = [ + "bitflags 2.11.0", + "serde", + "unicode-segmentation", +] + +[[package]] +name = "kuchikiki" +version = "0.8.8-speedreader" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02cb977175687f33fa4afa0c95c112b987ea1443e5a51c8f8ff27dc618270cc2" +dependencies = [ + "cssparser", + "html5ever", + "indexmap 2.13.0", + "selectors", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "leb128fmt" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" + +[[package]] +name = "libappindicator" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03589b9607c868cc7ae54c0b2a22c8dc03dd41692d48f2d7df73615c6a95dc0a" +dependencies = [ + "glib", + "gtk", + "gtk-sys", + "libappindicator-sys", + "log", +] + +[[package]] +name = "libappindicator-sys" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e9ec52138abedcc58dc17a7c6c0c00a2bdb4f3427c7f63fa97fd0d859155caf" +dependencies = [ + "gtk-sys", + "libloading", + "once_cell", +] + +[[package]] +name = "libc" +version = "0.2.182" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112" + +[[package]] +name = "libloading" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +dependencies = [ + "cfg-if", + "winapi", +] + +[[package]] +name = "libredox" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616" +dependencies = [ + "bitflags 2.11.0", + "libc", +] + +[[package]] +name = "linux-raw-sys" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" + +[[package]] +name = "litemap" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" + +[[package]] +name = "lock_api" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" +dependencies = [ + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" + +[[package]] +name = "mac" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" + +[[package]] +name = "mac-notification-sys" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65fd3f75411f4725061682ed91f131946e912859d0044d39c4ec0aac818d7621" +dependencies = [ + "cc", + "objc2", + "objc2-foundation", + "time", +] + +[[package]] +name = "markup5ever" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7a7213d12e1864c0f002f52c2923d4556935a43dec5e71355c2760e0f6e7a18" +dependencies = [ + "log", + "phf 0.11.3", + "phf_codegen 0.11.3", + "string_cache", + "string_cache_codegen", + "tendril", +] + +[[package]] +name = "match_token" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88a9689d8d44bf9964484516275f5cd4c9b59457a6940c1d5d0ecbb94510a36b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "matches" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" + +[[package]] +name = "memchr" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" + +[[package]] +name = "memoffset" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" +dependencies = [ + "autocfg", +] + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "miniz_oxide" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" +dependencies = [ + "adler2", + "simd-adler32", +] + +[[package]] +name = "mio" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" +dependencies = [ + "libc", + "wasi 0.11.1+wasi-snapshot-preview1", + "windows-sys 0.61.2", +] + +[[package]] +name = "moxcms" +version = "0.7.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac9557c559cd6fc9867e122e20d2cbefc9ca29d80d027a8e39310920ed2f0a97" +dependencies = [ + "num-traits", + "pxfm", +] + +[[package]] +name = "muda" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01c1738382f66ed56b3b9c8119e794a2e23148ac8ea214eda86622d4cb9d415a" +dependencies = [ + "crossbeam-channel", + "dpi", + "gtk", + "keyboard-types", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", + "once_cell", + "png 0.17.16", + "serde", + "thiserror 2.0.18", + "windows-sys 0.60.2", +] + +[[package]] +name = "ndk" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" +dependencies = [ + "bitflags 2.11.0", + "jni-sys", + "log", + "ndk-sys", + "num_enum", + "raw-window-handle", + "thiserror 1.0.69", +] + +[[package]] +name = "ndk-context" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" + +[[package]] +name = "ndk-sys" +version = "0.6.0+11769913" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" +dependencies = [ + "jni-sys", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + +[[package]] +name = "nodrop" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" + +[[package]] +name = "notify-rust" +version = "4.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21af20a1b50be5ac5861f74af1a863da53a11c38684d9818d82f1c42f7fdc6c2" +dependencies = [ + "futures-lite", + "log", + "mac-notification-sys", + "serde", + "tauri-winrt-notification", + "zbus", +] + +[[package]] +name = "num-conv" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050" + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_enum" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1207a7e20ad57b847bbddc6776b968420d38292bbfe2089accff5e19e82454c" +dependencies = [ + "num_enum_derive", + "rustversion", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7" +dependencies = [ + "proc-macro-crate 3.4.0", + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "objc2" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c2599ce0ec54857b29ce62166b0ed9b4f6f1a70ccc9a71165b6154caca8c05" +dependencies = [ + "objc2-encode", + "objc2-exception-helper", +] + +[[package]] +name = "objc2-app-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c" +dependencies = [ + "bitflags 2.11.0", + "block2", + "libc", + "objc2", + "objc2-cloud-kit", + "objc2-core-data", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-core-image", + "objc2-core-text", + "objc2-core-video", + "objc2-foundation", + "objc2-quartz-core", +] + +[[package]] +name = "objc2-cloud-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73ad74d880bb43877038da939b7427bba67e9dd42004a18b809ba7d87cee241c" +dependencies = [ + "bitflags 2.11.0", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-data" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b402a653efbb5e82ce4df10683b6b28027616a2715e90009947d50b8dd298fa" +dependencies = [ + "bitflags 2.11.0", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-foundation" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" +dependencies = [ + "bitflags 2.11.0", + "dispatch2", + "objc2", +] + +[[package]] +name = "objc2-core-graphics" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807" +dependencies = [ + "bitflags 2.11.0", + "dispatch2", + "objc2", + "objc2-core-foundation", + "objc2-io-surface", +] + +[[package]] +name = "objc2-core-image" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5d563b38d2b97209f8e861173de434bd0214cf020e3423a52624cd1d989f006" +dependencies = [ + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-text" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cde0dfb48d25d2b4862161a4d5fcc0e3c24367869ad306b0c9ec0073bfed92d" +dependencies = [ + "bitflags 2.11.0", + "objc2", + "objc2-core-foundation", + "objc2-core-graphics", +] + +[[package]] +name = "objc2-core-video" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d425caf1df73233f29fd8a5c3e5edbc30d2d4307870f802d18f00d83dc5141a6" +dependencies = [ + "bitflags 2.11.0", + "objc2", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-io-surface", +] + +[[package]] +name = "objc2-encode" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" + +[[package]] +name = "objc2-exception-helper" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7a1c5fbb72d7735b076bb47b578523aedc40f3c439bea6dfd595c089d79d98a" +dependencies = [ + "cc", +] + +[[package]] +name = "objc2-foundation" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" +dependencies = [ + "bitflags 2.11.0", + "block2", + "libc", + "objc2", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-io-surface" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180788110936d59bab6bd83b6060ffdfffb3b922ba1396b312ae795e1de9d81d" +dependencies = [ + "bitflags 2.11.0", + "objc2", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-javascript-core" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a1e6550c4caed348956ce3370c9ffeca70bb1dbed4fa96112e7c6170e074586" +dependencies = [ + "objc2", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-quartz-core" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96c1358452b371bf9f104e21ec536d37a650eb10f7ee379fff67d2e08d537f1f" +dependencies = [ + "bitflags 2.11.0", + "objc2", + "objc2-core-foundation", + "objc2-foundation", +] + +[[package]] +name = "objc2-security" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "709fe137109bd1e8b5a99390f77a7d8b2961dafc1a1c5db8f2e60329ad6d895a" +dependencies = [ + "bitflags 2.11.0", + "objc2", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-ui-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d87d638e33c06f577498cbcc50491496a3ed4246998a7fbba7ccb98b1e7eab22" +dependencies = [ + "bitflags 2.11.0", + "objc2", + "objc2-core-foundation", + "objc2-foundation", +] + +[[package]] +name = "objc2-web-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2e5aaab980c433cf470df9d7af96a7b46a9d892d521a2cbbb2f8a4c16751e7f" +dependencies = [ + "bitflags 2.11.0", + "block2", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", + "objc2-javascript-core", + "objc2-security", +] + +[[package]] +name = "once_cell" +version = "1.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" + +[[package]] +name = "open" +version = "5.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43bb73a7fa3799b198970490a51174027ba0d4ec504b03cd08caf513d40024bc" +dependencies = [ + "dunce", + "is-wsl", + "libc", + "pathdiff", +] + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "ordered-stream" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50" +dependencies = [ + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "pango" +version = "0.18.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4" +dependencies = [ + "gio", + "glib", + "libc", + "once_cell", + "pango-sys", +] + +[[package]] +name = "pango-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "parking" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" + +[[package]] +name = "parking_lot" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-link 0.2.1", +] + +[[package]] +name = "pathdiff" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" + +[[package]] +name = "percent-encoding" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" + +[[package]] +name = "phf" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12" +dependencies = [ + "phf_shared 0.8.0", +] + +[[package]] +name = "phf" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" +dependencies = [ + "phf_macros 0.10.0", + "phf_shared 0.10.0", + "proc-macro-hack", +] + +[[package]] +name = "phf" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" +dependencies = [ + "phf_macros 0.11.3", + "phf_shared 0.11.3", +] + +[[package]] +name = "phf_codegen" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815" +dependencies = [ + "phf_generator 0.8.0", + "phf_shared 0.8.0", +] + +[[package]] +name = "phf_codegen" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a" +dependencies = [ + "phf_generator 0.11.3", + "phf_shared 0.11.3", +] + +[[package]] +name = "phf_generator" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526" +dependencies = [ + "phf_shared 0.8.0", + "rand 0.7.3", +] + +[[package]] +name = "phf_generator" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" +dependencies = [ + "phf_shared 0.10.0", + "rand 0.8.5", +] + +[[package]] +name = "phf_generator" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" +dependencies = [ + "phf_shared 0.11.3", + "rand 0.8.5", +] + +[[package]] +name = "phf_macros" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0" +dependencies = [ + "phf_generator 0.10.0", + "phf_shared 0.10.0", + "proc-macro-hack", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "phf_macros" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" +dependencies = [ + "phf_generator 0.11.3", + "phf_shared 0.11.3", + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "phf_shared" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" +dependencies = [ + "siphasher 0.3.11", +] + +[[package]] +name = "phf_shared" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +dependencies = [ + "siphasher 0.3.11", +] + +[[package]] +name = "phf_shared" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" +dependencies = [ + "siphasher 1.0.2", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "piper" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" +dependencies = [ + "atomic-waker", + "fastrand", + "futures-io", +] + +[[package]] +name = "pkg-config" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" + +[[package]] +name = "plist" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "740ebea15c5d1428f910cd1a5f52cebf8d25006245ed8ade92702f4943d91e07" +dependencies = [ + "base64 0.22.1", + "indexmap 2.13.0", + "quick-xml 0.38.4", + "serde", + "time", +] + +[[package]] +name = "png" +version = "0.17.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526" +dependencies = [ + "bitflags 1.3.2", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide", +] + +[[package]] +name = "png" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60769b8b31b2a9f263dae2776c37b1b28ae246943cf719eb6946a1db05128a61" +dependencies = [ + "bitflags 2.11.0", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide", +] + +[[package]] +name = "polling" +version = "3.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218" +dependencies = [ + "cfg-if", + "concurrent-queue", + "hermit-abi", + "pin-project-lite", + "rustix", + "windows-sys 0.61.2", +] + +[[package]] +name = "potential_utf" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" +dependencies = [ + "zerovec", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "prettyplease" +version = "0.2.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" +dependencies = [ + "proc-macro2", + "syn 2.0.116", +] + +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit 0.19.15", +] + +[[package]] +name = "proc-macro-crate" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24" +dependencies = [ + "toml_datetime 0.6.3", + "toml_edit 0.20.2", +] + +[[package]] +name = "proc-macro-crate" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" +dependencies = [ + "toml_edit 0.23.10+spec-1.0.0", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro-hack" +version = "0.5.20+deprecated" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" + +[[package]] +name = "proc-macro2" +version = "1.0.106" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "pxfm" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7186d3822593aa4393561d186d1393b3923e9d6163d3fbfd6e825e3e6cf3e6a8" +dependencies = [ + "num-traits", +] + +[[package]] +name = "quick-xml" +version = "0.37.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "331e97a1af0bf59823e6eadffe373d7b27f485be8748f71471c662c1f269b7fb" +dependencies = [ + "memchr", +] + +[[package]] +name = "quick-xml" +version = "0.38.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b66c2058c55a409d601666cffe35f04333cf1013010882cec174a7467cd4e21c" +dependencies = [ + "memchr", +] + +[[package]] +name = "quote" +version = "1.0.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", + "rand_pcg", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.5", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.5", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.17", +] + +[[package]] +name = "rand_core" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" +dependencies = [ + "getrandom 0.3.4", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "rand_pcg" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "raw-window-handle" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" + +[[package]] +name = "redox_syscall" +version = "0.5.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" +dependencies = [ + "bitflags 2.11.0", +] + +[[package]] +name = "redox_users" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" +dependencies = [ + "getrandom 0.2.17", + "libredox", + "thiserror 2.0.18", +] + +[[package]] +name = "ref-cast" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "regex" +version = "1.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a96887878f22d7bad8a3b6dc5b7440e0ada9a245242924394987b21cf2210a4c" + +[[package]] +name = "reqwest" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab3f43e3283ab1488b624b44b0e988d0acea0b3214e694730a055cb6b2efa801" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-core", + "futures-util", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-util", + "js-sys", + "log", + "percent-encoding", + "pin-project-lite", + "serde", + "serde_json", + "sync_wrapper", + "tokio", + "tokio-util", + "tower", + "tower-http", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", +] + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "146c9e247ccc180c1f61615433868c99f3de3ae256a30a43b49f67c2d9171f34" +dependencies = [ + "bitflags 2.11.0", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.61.2", +] + +[[package]] +name = "rustversion" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "schemars" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" +dependencies = [ + "dyn-clone", + "indexmap 1.9.3", + "schemars_derive", + "serde", + "serde_json", + "url", + "uuid", +] + +[[package]] +name = "schemars" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] + +[[package]] +name = "schemars" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2b42f36aa1cd011945615b92222f6bf73c599a102a300334cd7f8dbeec726cc" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 2.0.116", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "selectors" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c37578180969d00692904465fb7f6b3d50b9a2b952b87c23d0e2e5cb5013416" +dependencies = [ + "bitflags 1.3.2", + "cssparser", + "derive_more", + "fxhash", + "log", + "phf 0.8.0", + "phf_codegen 0.8.0", + "precomputed-hash", + "servo_arc", + "smallvec", +] + +[[package]] +name = "semver" +version = "1.0.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" +dependencies = [ + "serde", + "serde_core", +] + +[[package]] +name = "serde" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde-untagged" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9faf48a4a2d2693be24c6289dbe26552776eb7737074e6722891fadbe6c5058" +dependencies = [ + "erased-serde", + "serde", + "serde_core", + "typeid", +] + +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "serde_derive_internals" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "serde_json" +version = "1.0.149" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "serde_repr" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "serde_spanned" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_spanned" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8bbf91e5a4d6315eee45e704372590b30e260ee83af6639d64557f51b067776" +dependencies = [ + "serde_core", +] + +[[package]] +name = "serde_with" +version = "3.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fa237f2807440d238e0364a218270b98f767a00d3dada77b1c53ae88940e2e7" +dependencies = [ + "base64 0.22.1", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.13.0", + "schemars 0.9.0", + "schemars 1.2.1", + "serde_core", + "serde_json", + "serde_with_macros", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "3.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52a8e3ca0ca629121f70ab50f95249e5a6f925cc0f6ffe8256c45b728875706c" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "serialize-to-javascript" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04f3666a07a197cdb77cdf306c32be9b7f598d7060d50cfd4d5aa04bfd92f6c5" +dependencies = [ + "serde", + "serde_json", + "serialize-to-javascript-impl", +] + +[[package]] +name = "serialize-to-javascript-impl" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "772ee033c0916d670af7860b6e1ef7d658a4629a6d0b4c8c3e67f09b3765b75d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "servo_arc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52aa42f8fdf0fed91e5ce7f23d8138441002fa31dca008acf47e6fd4721f741" +dependencies = [ + "nodrop", + "stable_deref_trait", +] + +[[package]] +name = "sha2" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "signal-hook-registry" +version = "1.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" +dependencies = [ + "errno", + "libc", +] + +[[package]] +name = "simd-adler32" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "siphasher" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2aa850e253778c88a04c3d7323b043aeda9d3e30d5971937c1855769763678e" + +[[package]] +name = "slab" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" + +[[package]] +name = "smallvec" +version = "1.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" + +[[package]] +name = "socket2" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86f4aa3ad99f2088c990dfa82d367e19cb29268ed67c574d10d0a4bfe71f07e0" +dependencies = [ + "libc", + "windows-sys 0.60.2", +] + +[[package]] +name = "softbuffer" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aac18da81ebbf05109ab275b157c22a653bb3c12cf884450179942f81bcbf6c3" +dependencies = [ + "bytemuck", + "js-sys", + "ndk", + "objc2", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-foundation", + "objc2-quartz-core", + "raw-window-handle", + "redox_syscall", + "tracing", + "wasm-bindgen", + "web-sys", + "windows-sys 0.61.2", +] + +[[package]] +name = "soup3" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "471f924a40f31251afc77450e781cb26d55c0b650842efafc9c6cbd2f7cc4f9f" +dependencies = [ + "futures-channel", + "gio", + "glib", + "libc", + "soup3-sys", +] + +[[package]] +name = "soup3-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ebe8950a680a12f24f15ebe1bf70db7af98ad242d9db43596ad3108aab86c27" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" + +[[package]] +name = "string_cache" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf776ba3fa74f83bf4b63c3dcbbf82173db2632ed8452cb2d891d33f459de70f" +dependencies = [ + "new_debug_unreachable", + "parking_lot", + "phf_shared 0.11.3", + "precomputed-hash", + "serde", +] + +[[package]] +name = "string_cache_codegen" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c711928715f1fe0fe509c53b43e993a9a557babc2d0a3567d0a3006f1ac931a0" +dependencies = [ + "phf_generator 0.11.3", + "phf_shared 0.11.3", + "proc-macro2", + "quote", +] + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "swift-rs" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4057c98e2e852d51fdcfca832aac7b571f6b351ad159f9eda5db1655f8d0c4d7" +dependencies = [ + "base64 0.21.7", + "serde", + "serde_json", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.116" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3df424c70518695237746f84cede799c9c58fcb37450d7b23716568cc8bc69cb" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" +dependencies = [ + "futures-core", +] + +[[package]] +name = "synstructure" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "system-deps" +version = "6.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" +dependencies = [ + "cfg-expr", + "heck 0.5.0", + "pkg-config", + "toml 0.8.2", + "version-compare", +] + +[[package]] +name = "tao" +version = "0.34.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3a753bdc39c07b192151523a3f77cd0394aa75413802c883a0f6f6a0e5ee2e7" +dependencies = [ + "bitflags 2.11.0", + "block2", + "core-foundation", + "core-graphics", + "crossbeam-channel", + "dispatch", + "dlopen2", + "dpi", + "gdkwayland-sys", + "gdkx11-sys", + "gtk", + "jni", + "lazy_static", + "libc", + "log", + "ndk", + "ndk-context", + "ndk-sys", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "once_cell", + "parking_lot", + "raw-window-handle", + "scopeguard", + "tao-macros", + "unicode-segmentation", + "url", + "windows", + "windows-core 0.61.2", + "windows-version", + "x11-dl", +] + +[[package]] +name = "tao-macros" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4e16beb8b2ac17db28eab8bca40e62dbfbb34c0fcdc6d9826b11b7b5d047dfd" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "target-lexicon" +version = "0.12.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" + +[[package]] +name = "tauri" +version = "2.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "463ae8677aa6d0f063a900b9c41ecd4ac2b7ca82f0b058cc4491540e55b20129" +dependencies = [ + "anyhow", + "bytes", + "cookie", + "dirs", + "dunce", + "embed_plist", + "getrandom 0.3.4", + "glob", + "gtk", + "heck 0.5.0", + "http", + "image", + "jni", + "libc", + "log", + "mime", + "muda", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "objc2-ui-kit", + "objc2-web-kit", + "percent-encoding", + "plist", + "raw-window-handle", + "reqwest", + "serde", + "serde_json", + "serde_repr", + "serialize-to-javascript", + "swift-rs", + "tauri-build", + "tauri-macros", + "tauri-runtime", + "tauri-runtime-wry", + "tauri-utils", + "thiserror 2.0.18", + "tokio", + "tray-icon", + "url", + "webkit2gtk", + "webview2-com", + "window-vibrancy", + "windows", +] + +[[package]] +name = "tauri-build" +version = "2.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca7bd893329425df750813e95bd2b643d5369d929438da96d5bbb7cc2c918f74" +dependencies = [ + "anyhow", + "cargo_toml", + "dirs", + "glob", + "heck 0.5.0", + "json-patch", + "schemars 0.8.22", + "semver", + "serde", + "serde_json", + "tauri-utils", + "tauri-winres", + "toml 0.9.12+spec-1.1.0", + "walkdir", +] + +[[package]] +name = "tauri-codegen" +version = "2.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aac423e5859d9f9ccdd32e3cf6a5866a15bedbf25aa6630bcb2acde9468f6ae3" +dependencies = [ + "base64 0.22.1", + "brotli", + "ico", + "json-patch", + "plist", + "png 0.17.16", + "proc-macro2", + "quote", + "semver", + "serde", + "serde_json", + "sha2", + "syn 2.0.116", + "tauri-utils", + "thiserror 2.0.18", + "time", + "url", + "uuid", + "walkdir", +] + +[[package]] +name = "tauri-macros" +version = "2.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b6a1bd2861ff0c8766b1d38b32a6a410f6dc6532d4ef534c47cfb2236092f59" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.116", + "tauri-codegen", + "tauri-utils", +] + +[[package]] +name = "tauri-plugin" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "692a77abd8b8773e107a42ec0e05b767b8d2b7ece76ab36c6c3947e34df9f53f" +dependencies = [ + "anyhow", + "glob", + "plist", + "schemars 0.8.22", + "serde", + "serde_json", + "tauri-utils", + "toml 0.9.12+spec-1.1.0", + "walkdir", +] + +[[package]] +name = "tauri-plugin-notification" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01fc2c5ff41105bd1f7242d8201fdf3efd70749b82fa013a17f2126357d194cc" +dependencies = [ + "log", + "notify-rust", + "rand 0.9.2", + "serde", + "serde_json", + "serde_repr", + "tauri", + "tauri-plugin", + "thiserror 2.0.18", + "time", + "url", +] + +[[package]] +name = "tauri-plugin-opener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc624469b06f59f5a29f874bbc61a2ed737c0f9c23ef09855a292c389c42e83f" +dependencies = [ + "dunce", + "glob", + "objc2-app-kit", + "objc2-foundation", + "open", + "schemars 0.8.22", + "serde", + "serde_json", + "tauri", + "tauri-plugin", + "thiserror 2.0.18", + "url", + "windows", + "zbus", +] + +[[package]] +name = "tauri-runtime" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b885ffeac82b00f1f6fd292b6e5aabfa7435d537cef57d11e38a489956535651" +dependencies = [ + "cookie", + "dpi", + "gtk", + "http", + "jni", + "objc2", + "objc2-ui-kit", + "objc2-web-kit", + "raw-window-handle", + "serde", + "serde_json", + "tauri-utils", + "thiserror 2.0.18", + "url", + "webkit2gtk", + "webview2-com", + "windows", +] + +[[package]] +name = "tauri-runtime-wry" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5204682391625e867d16584fedc83fc292fb998814c9f7918605c789cd876314" +dependencies = [ + "gtk", + "http", + "jni", + "log", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "once_cell", + "percent-encoding", + "raw-window-handle", + "softbuffer", + "tao", + "tauri-runtime", + "tauri-utils", + "url", + "webkit2gtk", + "webview2-com", + "windows", + "wry", +] + +[[package]] +name = "tauri-utils" +version = "2.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcd169fccdff05eff2c1033210b9b94acd07a47e6fa9a3431cf09cfd4f01c87e" +dependencies = [ + "anyhow", + "brotli", + "cargo_metadata", + "ctor", + "dunce", + "glob", + "html5ever", + "http", + "infer", + "json-patch", + "kuchikiki", + "log", + "memchr", + "phf 0.11.3", + "proc-macro2", + "quote", + "regex", + "schemars 0.8.22", + "semver", + "serde", + "serde-untagged", + "serde_json", + "serde_with", + "swift-rs", + "thiserror 2.0.18", + "toml 0.9.12+spec-1.1.0", + "url", + "urlpattern", + "uuid", + "walkdir", +] + +[[package]] +name = "tauri-winres" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1087b111fe2b005e42dbdc1990fc18593234238d47453b0c99b7de1c9ab2c1e0" +dependencies = [ + "dunce", + "embed-resource", + "toml 0.9.12+spec-1.1.0", +] + +[[package]] +name = "tauri-winrt-notification" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b1e66e07de489fe43a46678dd0b8df65e0c973909df1b60ba33874e297ba9b9" +dependencies = [ + "quick-xml 0.37.5", + "thiserror 2.0.18", + "windows", + "windows-version", +] + +[[package]] +name = "tempfile" +version = "3.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0136791f7c95b1f6dd99f9cc786b91bb81c3800b639b3478e561ddb7be95e5f1" +dependencies = [ + "fastrand", + "getrandom 0.4.1", + "once_cell", + "rustix", + "windows-sys 0.61.2", +] + +[[package]] +name = "tendril" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" +dependencies = [ + "futf", + "mac", + "utf-8", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" +dependencies = [ + "thiserror-impl 2.0.18", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "time" +version = "0.3.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" +dependencies = [ + "deranged", + "itoa", + "num-conv", + "powerfmt", + "serde_core", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" + +[[package]] +name = "time-macros" +version = "0.2.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "tinystr" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tokio" +version = "1.49.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86" +dependencies = [ + "bytes", + "libc", + "mio", + "pin-project-lite", + "socket2", + "windows-sys 0.61.2", +] + +[[package]] +name = "tokio-util" +version = "0.7.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" +dependencies = [ + "serde", + "serde_spanned 0.6.9", + "toml_datetime 0.6.3", + "toml_edit 0.20.2", +] + +[[package]] +name = "toml" +version = "0.9.12+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf92845e79fc2e2def6a5d828f0801e29a2f8acc037becc5ab08595c7d5e9863" +dependencies = [ + "indexmap 2.13.0", + "serde_core", + "serde_spanned 1.0.4", + "toml_datetime 0.7.5+spec-1.1.0", + "toml_parser", + "toml_writer", + "winnow 0.7.14", +] + +[[package]] +name = "toml_datetime" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_datetime" +version = "0.7.5+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.13.0", + "toml_datetime 0.6.3", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" +dependencies = [ + "indexmap 2.13.0", + "serde", + "serde_spanned 0.6.9", + "toml_datetime 0.6.3", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.23.10+spec-1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269" +dependencies = [ + "indexmap 2.13.0", + "toml_datetime 0.7.5+spec-1.1.0", + "toml_parser", + "winnow 0.7.14", +] + +[[package]] +name = "toml_parser" +version = "1.0.8+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0742ff5ff03ea7e67c8ae6c93cac239e0d9784833362da3f9a9c1da8dfefcbdc" +dependencies = [ + "winnow 0.7.14", +] + +[[package]] +name = "toml_writer" +version = "1.0.6+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab16f14aed21ee8bfd8ec22513f7287cd4a91aa92e44edfe2c17ddd004e92607" + +[[package]] +name = "tower" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper", + "tokio", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-http" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" +dependencies = [ + "bitflags 2.11.0", + "bytes", + "futures-util", + "http", + "http-body", + "iri-string", + "pin-project-lite", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + +[[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + +[[package]] +name = "tracing" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "tracing-core" +version = "0.1.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" +dependencies = [ + "once_cell", +] + +[[package]] +name = "tray-icon" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e85aa143ceb072062fc4d6356c1b520a51d636e7bc8e77ec94be3608e5e80c" +dependencies = [ + "crossbeam-channel", + "dirs", + "libappindicator", + "muda", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-foundation", + "once_cell", + "png 0.17.16", + "serde", + "thiserror 2.0.18", + "windows-sys 0.60.2", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "typeid" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" + +[[package]] +name = "typenum" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" + +[[package]] +name = "uds_windows" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" +dependencies = [ + "memoffset", + "tempfile", + "winapi", +] + +[[package]] +name = "unic-char-property" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221" +dependencies = [ + "unic-char-range", +] + +[[package]] +name = "unic-char-range" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc" + +[[package]] +name = "unic-common" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc" + +[[package]] +name = "unic-ucd-ident" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e230a37c0381caa9219d67cf063aa3a375ffed5bf541a452db16e744bdab6987" +dependencies = [ + "unic-char-property", + "unic-char-range", + "unic-ucd-version", +] + +[[package]] +name = "unic-ucd-version" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4" +dependencies = [ + "unic-common", +] + +[[package]] +name = "unicode-ident" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" + +[[package]] +name = "unicode-segmentation" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" + +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + +[[package]] +name = "url" +version = "2.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", + "serde_derive", +] + +[[package]] +name = "urlpattern" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70acd30e3aa1450bc2eece896ce2ad0d178e9c079493819301573dae3c37ba6d" +dependencies = [ + "regex", + "serde", + "unic-ucd-ident", + "url", +] + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "uuid" +version = "1.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b672338555252d43fd2240c714dc444b8c6fb0a5c5335e65a07bba7742735ddb" +dependencies = [ + "getrandom 0.4.1", + "js-sys", + "serde_core", + "wasm-bindgen", +] + +[[package]] +name = "version-compare" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03c2856837ef78f57382f06b2b8563a2f512f7185d732608fd9176cb3b8edf0e" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "vswhom" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be979b7f07507105799e854203b470ff7c78a1639e330a58f183b5fea574608b" +dependencies = [ + "libc", + "vswhom-sys", +] + +[[package]] +name = "vswhom-sys" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb067e4cbd1ff067d1df46c9194b5de0e98efd2810bbc95c5d5e5f25a3231150" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "wasi" +version = "0.11.1+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" + +[[package]] +name = "wasip2" +version = "1.0.2+wasi-0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasip3" +version = "0.4.0+wasi-0.3.0-rc-2026-01-06" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.108" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70a6e77fd0ae8029c9ea0063f87c46fde723e7d887703d74ad2616d792e51e6f" +dependencies = [ + "cfg-if", + "futures-util", + "js-sys", + "once_cell", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.108" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.108" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55" +dependencies = [ + "bumpalo", + "proc-macro2", + "quote", + "syn 2.0.116", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.108" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "wasm-encoder" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" +dependencies = [ + "leb128fmt", + "wasmparser", +] + +[[package]] +name = "wasm-metadata" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" +dependencies = [ + "anyhow", + "indexmap 2.13.0", + "wasm-encoder", + "wasmparser", +] + +[[package]] +name = "wasm-streams" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1ec4f6517c9e11ae630e200b2b65d193279042e28edd4a2cda233e46670bbb" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "wasmparser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" +dependencies = [ + "bitflags 2.11.0", + "hashbrown 0.15.5", + "indexmap 2.13.0", + "semver", +] + +[[package]] +name = "web-sys" +version = "0.3.85" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "312e32e551d92129218ea9a2452120f4aabc03529ef03e4d0d82fb2780608598" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webkit2gtk" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1027150013530fb2eaf806408df88461ae4815a45c541c8975e61d6f2fc4793" +dependencies = [ + "bitflags 1.3.2", + "cairo-rs", + "gdk", + "gdk-sys", + "gio", + "gio-sys", + "glib", + "glib-sys", + "gobject-sys", + "gtk", + "gtk-sys", + "javascriptcore-rs", + "libc", + "once_cell", + "soup3", + "webkit2gtk-sys", +] + +[[package]] +name = "webkit2gtk-sys" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "916a5f65c2ef0dfe12fff695960a2ec3d4565359fdbb2e9943c974e06c734ea5" +dependencies = [ + "bitflags 1.3.2", + "cairo-sys-rs", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "gtk-sys", + "javascriptcore-rs-sys", + "libc", + "pkg-config", + "soup3-sys", + "system-deps", +] + +[[package]] +name = "webview2-com" +version = "0.38.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7130243a7a5b33c54a444e54842e6a9e133de08b5ad7b5861cd8ed9a6a5bc96a" +dependencies = [ + "webview2-com-macros", + "webview2-com-sys", + "windows", + "windows-core 0.61.2", + "windows-implement", + "windows-interface", +] + +[[package]] +name = "webview2-com-macros" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a921c1b6914c367b2b823cd4cde6f96beec77d30a939c8199bb377cf9b9b54" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "webview2-com-sys" +version = "0.38.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "381336cfffd772377d291702245447a5251a2ffa5bad679c99e61bc48bacbf9c" +dependencies = [ + "thiserror 2.0.18", + "windows", + "windows-core 0.61.2", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "window-vibrancy" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9bec5a31f3f9362f2258fd0e9c9dd61a9ca432e7306cc78c444258f0dce9a9c" +dependencies = [ + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", + "raw-window-handle", + "windows-sys 0.59.0", + "windows-version", +] + +[[package]] +name = "windows" +version = "0.61.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" +dependencies = [ + "windows-collections", + "windows-core 0.61.2", + "windows-future", + "windows-link 0.1.3", + "windows-numerics", +] + +[[package]] +name = "windows-collections" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" +dependencies = [ + "windows-core 0.61.2", +] + +[[package]] +name = "windows-core" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link 0.1.3", + "windows-result 0.3.4", + "windows-strings 0.4.2", +] + +[[package]] +name = "windows-core" +version = "0.62.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link 0.2.1", + "windows-result 0.4.1", + "windows-strings 0.5.1", +] + +[[package]] +name = "windows-future" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" +dependencies = [ + "windows-core 0.61.2", + "windows-link 0.1.3", + "windows-threading", +] + +[[package]] +name = "windows-implement" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "windows-interface" +version = "0.59.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "windows-link" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" + +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-numerics" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" +dependencies = [ + "windows-core 0.61.2", + "windows-link 0.1.3", +] + +[[package]] +name = "windows-result" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-result" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows-strings" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-strings" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.5", +] + +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm 0.52.6", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.53.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" +dependencies = [ + "windows-link 0.2.1", + "windows_aarch64_gnullvm 0.53.1", + "windows_aarch64_msvc 0.53.1", + "windows_i686_gnu 0.53.1", + "windows_i686_gnullvm 0.53.1", + "windows_i686_msvc 0.53.1", + "windows_x86_64_gnu 0.53.1", + "windows_x86_64_gnullvm 0.53.1", + "windows_x86_64_msvc 0.53.1", +] + +[[package]] +name = "windows-threading" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-version" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4060a1da109b9d0326b7262c8e12c84df67cc0dbc9e33cf49e01ccc2eb63631" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_i686_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.7.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.55.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb5a765337c50e9ec252c2069be9bf91c7df47afb103b642ba3a53bf8101be97" +dependencies = [ + "cfg-if", + "windows-sys 0.59.0", +] + +[[package]] +name = "wit-bindgen" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" +dependencies = [ + "wit-bindgen-rust-macro", +] + +[[package]] +name = "wit-bindgen-core" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" +dependencies = [ + "anyhow", + "heck 0.5.0", + "wit-parser", +] + +[[package]] +name = "wit-bindgen-rust" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" +dependencies = [ + "anyhow", + "heck 0.5.0", + "indexmap 2.13.0", + "prettyplease", + "syn 2.0.116", + "wasm-metadata", + "wit-bindgen-core", + "wit-component", +] + +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" +dependencies = [ + "anyhow", + "prettyplease", + "proc-macro2", + "quote", + "syn 2.0.116", + "wit-bindgen-core", + "wit-bindgen-rust", +] + +[[package]] +name = "wit-component" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" +dependencies = [ + "anyhow", + "bitflags 2.11.0", + "indexmap 2.13.0", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder", + "wasm-metadata", + "wasmparser", + "wit-parser", +] + +[[package]] +name = "wit-parser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" +dependencies = [ + "anyhow", + "id-arena", + "indexmap 2.13.0", + "log", + "semver", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser", +] + +[[package]] +name = "writeable" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" + +[[package]] +name = "wry" +version = "0.54.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb26159b420aa77684589a744ae9a9461a95395b848764ad12290a14d960a11a" +dependencies = [ + "base64 0.22.1", + "block2", + "cookie", + "crossbeam-channel", + "dirs", + "dpi", + "dunce", + "gdkx11", + "gtk", + "html5ever", + "http", + "javascriptcore-rs", + "jni", + "kuchikiki", + "libc", + "ndk", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", + "objc2-ui-kit", + "objc2-web-kit", + "once_cell", + "percent-encoding", + "raw-window-handle", + "sha2", + "soup3", + "tao-macros", + "thiserror 2.0.18", + "url", + "webkit2gtk", + "webkit2gtk-sys", + "webview2-com", + "windows", + "windows-core 0.61.2", + "windows-version", + "x11-dl", +] + +[[package]] +name = "x11" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "502da5464ccd04011667b11c435cb992822c2c0dbde1770c988480d312a0db2e" +dependencies = [ + "libc", + "pkg-config", +] + +[[package]] +name = "x11-dl" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" +dependencies = [ + "libc", + "once_cell", + "pkg-config", +] + +[[package]] +name = "yoke" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" +dependencies = [ + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", + "synstructure", +] + +[[package]] +name = "zbus" +version = "5.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfeff997a0aaa3eb20c4652baf788d2dfa6d2839a0ead0b3ff69ce2f9c4bdd1" +dependencies = [ + "async-broadcast", + "async-executor", + "async-io", + "async-lock", + "async-process", + "async-recursion", + "async-task", + "async-trait", + "blocking", + "enumflags2", + "event-listener", + "futures-core", + "futures-lite", + "hex", + "libc", + "ordered-stream", + "rustix", + "serde", + "serde_repr", + "tracing", + "uds_windows", + "uuid", + "windows-sys 0.61.2", + "winnow 0.7.14", + "zbus_macros", + "zbus_names", + "zvariant", +] + +[[package]] +name = "zbus_macros" +version = "5.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bbd5a90dbe8feee5b13def448427ae314ccd26a49cac47905cafefb9ff846f1" +dependencies = [ + "proc-macro-crate 3.4.0", + "proc-macro2", + "quote", + "syn 2.0.116", + "zbus_names", + "zvariant", + "zvariant_utils", +] + +[[package]] +name = "zbus_names" +version = "4.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffd8af6d5b78619bab301ff3c560a5bd22426150253db278f164d6cf3b72c50f" +dependencies = [ + "serde", + "winnow 0.7.14", + "zvariant", +] + +[[package]] +name = "zerocopy" +version = "0.8.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db6d35d663eadb6c932438e763b262fe1a70987f9ae936e60158176d710cae4a" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4122cd3169e94605190e77839c9a40d40ed048d305bfdc146e7df40ab0f3e517" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "zerofrom" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", + "synstructure", +] + +[[package]] +name = "zerotrie" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", +] + +[[package]] +name = "zerovec" +version = "0.11.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "zmij" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" + +[[package]] +name = "zvariant" +version = "5.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68b64ef4f40c7951337ddc7023dd03528a57a3ce3408ee9da5e948bd29b232c4" +dependencies = [ + "endi", + "enumflags2", + "serde", + "winnow 0.7.14", + "zvariant_derive", + "zvariant_utils", +] + +[[package]] +name = "zvariant_derive" +version = "5.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "484d5d975eb7afb52cc6b929c13d3719a20ad650fea4120e6310de3fc55e415c" +dependencies = [ + "proc-macro-crate 3.4.0", + "proc-macro2", + "quote", + "syn 2.0.116", + "zvariant_utils", +] + +[[package]] +name = "zvariant_utils" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f75c23a64ef8f40f13a6989991e643554d9bef1d682a281160cf0c1bc389c5e9" +dependencies = [ + "proc-macro2", + "quote", + "serde", + "syn 2.0.116", + "winnow 0.7.14", +] diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml new file mode 100644 index 0000000..afcb224 --- /dev/null +++ b/src-tauri/Cargo.toml @@ -0,0 +1,20 @@ +[package] +name = "claude-app" +version = "1.0.0" +description = "Claude desktop app" +edition = "2021" + +[build-dependencies] +tauri-build = { version = "2", features = [] } + +[dependencies] +tauri = { version = "2", features = ["tray-icon", "image-png"] } +tauri-plugin-notification = "2" +tauri-plugin-opener = "2" +serde = { version = "1", features = ["derive"] } +serde_json = "1" +url = "2" + +[features] +default = ["custom-protocol"] +custom-protocol = ["tauri/custom-protocol"] diff --git a/src-tauri/build.rs b/src-tauri/build.rs new file mode 100644 index 0000000..261851f --- /dev/null +++ b/src-tauri/build.rs @@ -0,0 +1,3 @@ +fn main() { + tauri_build::build(); +} diff --git a/src-tauri/capabilities/default.json b/src-tauri/capabilities/default.json new file mode 100644 index 0000000..8a4be11 --- /dev/null +++ b/src-tauri/capabilities/default.json @@ -0,0 +1,20 @@ +{ + "$schema": "../gen/schemas/desktop-schema.json", + "identifier": "default", + "description": "Default permissions for the main window", + "windows": ["main"], + "permissions": [ + "core:default", + "core:window:default", + "core:window:allow-close", + "core:window:allow-show", + "core:window:allow-hide", + "core:window:allow-set-focus", + "core:webview:default", + "opener:default", + "notification:default", + "notification:allow-is-permission-granted", + "notification:allow-request-permission", + "notification:allow-notify" + ] +} diff --git a/src-tauri/capabilities/remote.json b/src-tauri/capabilities/remote.json new file mode 100644 index 0000000..d6e2901 --- /dev/null +++ b/src-tauri/capabilities/remote.json @@ -0,0 +1,16 @@ +{ + "$schema": "../gen/schemas/desktop-schema.json", + "identifier": "remote", + "description": "Grants claude.ai IPC access for notifications", + "remote": { + "urls": ["https://claude.ai/*", "https://*.claude.ai/*"] + }, + "permissions": [ + "core:default", + "core:event:default", + "notification:default", + "notification:allow-is-permission-granted", + "notification:allow-request-permission", + "notification:allow-notify" + ] +} diff --git a/src-tauri/icons/128x128.png b/src-tauri/icons/128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..a324df07df08dadea9a146c212d40e6d8bdcfe3e GIT binary patch literal 8761 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 HEyMm7RFX9r literal 0 HcmV?d00001 diff --git a/src-tauri/icons/32x32.png b/src-tauri/icons/32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..3dfb03e570f595308f29d20bb2166606d964608b GIT binary patch literal 2104 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 L`$!yo_38fsbar|I literal 0 HcmV?d00001 diff --git a/src-tauri/icons/icon.png b/src-tauri/icons/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f4d58ede4c5c10ef633855f5c0ec419a65f31dc1 GIT binary patch literal 14392 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�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 literal 0 HcmV?d00001 diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs new file mode 100644 index 0000000..34047de --- /dev/null +++ b/src-tauri/src/lib.rs @@ -0,0 +1,187 @@ +use tauri::{ + image::Image, + menu::{Menu, MenuItem}, + tray::TrayIconBuilder, + webview::{NewWindowResponse, WebviewWindowBuilder}, + Manager, RunEvent, WebviewUrl, WindowEvent, +}; +use url::Url; + +/// JavaScript injected into every page load to bridge browser Notification API +/// to native notifications via Tauri IPC. +const NOTIFICATION_BRIDGE_JS: &str = r#" +(function() { + // Only override if __TAURI_INTERNALS__ is available + if (!window.__TAURI_INTERNALS__) return; + + const invoke = window.__TAURI_INTERNALS__.invoke; + + class TauriNotification { + constructor(title, options = {}) { + this.title = title; + this.body = options.body || ''; + invoke('send_notification', { title: this.title, body: this.body }); + } + + static get permission() { + return 'granted'; + } + + static requestPermission() { + return Promise.resolve('granted'); + } + } + + // Replace the browser Notification with our bridge + Object.defineProperty(window, 'Notification', { + value: TauriNotification, + writable: false, + configurable: false, + }); +})(); +"#; + +/// Tauri command invoked from JS to show a native notification. +#[tauri::command] +fn send_notification(app: tauri::AppHandle, title: String, body: String) { + use tauri_plugin_notification::NotificationExt; + let _ = app + .notification() + .builder() + .title(&title) + .body(&body) + .show(); +} + +/// Returns true if the URL should be allowed to load inside the app webview. +/// Allows claude.ai, Anthropic domains, and common OAuth providers. +fn is_allowed_navigation(url: &Url) -> bool { + let host = match url.host_str() { + Some(h) => h.to_lowercase(), + None => return false, + }; + + // Claude / Anthropic + if host == "claude.ai" || host.ends_with(".claude.ai") { + return true; + } + if host == "anthropic.com" || host.ends_with(".anthropic.com") { + return true; + } + + // Google OAuth + if host == "accounts.google.com" + || host.ends_with(".google.com") + || host.ends_with(".googleapis.com") + || host.ends_with(".gstatic.com") + { + return true; + } + + // Apple OAuth + if host == "appleid.apple.com" || host.ends_with(".apple.com") { + return true; + } + + // Allow about:blank and similar + if url.scheme() == "about" || url.scheme() == "data" || url.scheme() == "blob" { + return true; + } + + false +} + +pub fn run() { + let app = tauri::Builder::default() + .plugin(tauri_plugin_notification::init()) + .plugin(tauri_plugin_opener::init()) + .invoke_handler(tauri::generate_handler![send_notification]) + .setup(|app| { + // -- Create main window navigating directly to claude.ai -- + // + // on_navigation and on_new_window are builder methods, so they must + // be chained before .build(). The close-to-tray handler is set on + // the built window via on_window_event. + let webview_window = WebviewWindowBuilder::new( + app, + "main", + WebviewUrl::External("https://claude.ai".parse().unwrap()), + ) + .title("Claude") + .inner_size(1200.0, 800.0) + .min_inner_size(400.0, 300.0) + // Standard WebKit user agent so claude.ai serves the full experience + .user_agent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Safari/605.1.15") + .initialization_script(NOTIFICATION_BRIDGE_JS) + .zoom_hotkeys_enabled(true) + .enable_clipboard_access() + // Navigation filter: only allow approved domains in-app + .on_navigation(|url| is_allowed_navigation(url)) + // External links (target=_blank) open in system browser + .on_new_window(|url, _features| { + let _ = tauri_plugin_opener::open_url(url.as_str(), None::<&str>); + NewWindowResponse::Deny + }) + .build()?; + + // -- Close-to-tray: hide window instead of quitting -- + let win_clone = webview_window.clone(); + webview_window.on_window_event(move |event| { + if let WindowEvent::CloseRequested { api, .. } = event { + api.prevent_close(); + let _ = win_clone.hide(); + } + }); + + // -- System tray -- + let show_item = + MenuItem::with_id(app, "show", "Show Claude", true, None::<&str>)?; + let quit_item = + MenuItem::with_id(app, "quit", "Quit", true, None::<&str>)?; + let menu = Menu::with_items(app, &[&show_item, &quit_item])?; + + let tray_icon = Image::from_bytes(include_bytes!("../icons/32x32.png"))?; + + let tray_handle = app.handle().clone(); + TrayIconBuilder::new() + .icon(tray_icon) + .tooltip("Claude") + .menu(&menu) + .on_menu_event(move |app_handle, event| match event.id().as_ref() { + "show" => { + if let Some(win) = app_handle.get_webview_window("main") { + let _ = win.show(); + let _ = win.set_focus(); + } + } + "quit" => { + app_handle.exit(0); + } + _ => {} + }) + .on_tray_icon_event(move |_tray, event| { + if let tauri::tray::TrayIconEvent::Click { + button: tauri::tray::MouseButton::Left, + .. + } = event + { + if let Some(win) = tray_handle.get_webview_window("main") { + let _ = win.show(); + let _ = win.set_focus(); + } + } + }) + .build(app)?; + + Ok(()) + }) + .build(tauri::generate_context!()) + .expect("error building tauri application"); + + // -- Keep app alive when all windows are hidden -- + app.run(|_app, event| { + if let RunEvent::ExitRequested { api, .. } = event { + api.prevent_exit(); + } + }); +} diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs new file mode 100644 index 0000000..f0a03ee --- /dev/null +++ b/src-tauri/src/main.rs @@ -0,0 +1,6 @@ +// Prevents additional console window on Windows in release. +#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] + +fn main() { + claude_app::run(); +} diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json new file mode 100644 index 0000000..7f7065d --- /dev/null +++ b/src-tauri/tauri.conf.json @@ -0,0 +1,34 @@ +{ + "productName": "Claude", + "version": "1.0.0", + "identifier": "no.naiv.claude-app", + "build": { + "frontendDist": "../src" + }, + "app": { + "withGlobalTauri": true, + "windows": [], + "security": { + "dangerousDisableAssetCspModification": true, + "assetProtocol": { + "enable": false + } + } + }, + "bundle": { + "active": true, + "targets": ["deb", "appimage"], + "icon": [ + "icons/32x32.png", + "icons/128x128.png", + "icons/128x128@2x.png", + "icons/icon.icns", + "icons/icon.ico" + ], + "linux": { + "deb": { + "depends": ["libwebkit2gtk-4.1-0", "libayatana-appindicator3-1"] + } + } + } +} diff --git a/src/index.html b/src/index.html new file mode 100644 index 0000000..6569b71 --- /dev/null +++ b/src/index.html @@ -0,0 +1,5 @@ + + + + Loading... +