diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index d9b11bd74..03edd3023 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -1,6 +1,6 @@ # Nightly builds. Mirrors the build matrix and build/signing steps of # release.yml — keep cert/NDK/toolchain bumps, secret names, and the -# truly-portable AppImage + portable-Windows steps in sync between the two. +# Linux CEF + portable-Windows steps in sync between the two. # # Differences from release.yml: this workflow (1) stamps a nightly version # `-` (Asia/Shanghai), (2) publishes to Cloudflare R2 only (no @@ -218,37 +218,10 @@ jobs: pnpm tauri signer sign $arm64_apk # ──────────────────────────── DESKTOP ──────────────────────────── - # Linux uses the truly-portable AppImage tauri CLI fork (mirrors - # release.yml). The nightly version is patched BEFORE `tauri build` so the - # bundle filenames carry the stamp. - # - # PINNED to a rev, not the branch tip: on 2026-07-31 the fork rewrote the - # sharun bundler to re-download quick-sharun.sh on EVERY build instead of - # only when it is missing from the cache. That defeated the cache seed - # below, so both Linux legs pulled the moving main-branch script again and - # hung under Xvfb until the 45min step timeout (#4906). This rev is the - # last one that keeps the cache check, and it built every nightly through - # 2026-07-30. Bump it only together with a Linux AppImage build check. - - name: Override tauri-cli with custom AppImage format (Linux) - if: matrix.config.release == 'linux' - run: cargo install tauri-cli --git https://github.com/tauri-apps/tauri --rev 162626969b382d52faebdf6c7264460bd9a47d1f --force - - # The truly-portable AppImage bundler at the rev pinned above downloads - # quick-sharun.sh from Anylinux-AppImages@main ONLY when it is not already - # in the tauri tools cache. An upstream strace-mode change (2026-06-29) - # made bundling launch the app under Xvfb and hang forever, timing out the - # Linux legs (#4906). Seed the cache with the last known-good revision so - # the bundler never fetches the moving main-branch script. - - name: pin quick-sharun.sh for AppImage bundling (Linux) - if: matrix.config.release == 'linux' - run: | - set -euo pipefail - cache_dir="${XDG_CACHE_HOME:-$HOME/.cache}/tauri" - mkdir -p "$cache_dir" - curl -fsSL --retry 3 -o "$cache_dir/quick-sharun.sh" \ - "https://raw.githubusercontent.com/pkgforge-dev/Anylinux-AppImages/b3a9e985cdedf7efa81d172f182cd13983743147/useful-tools/quick-sharun.sh" - chmod +x "$cache_dir/quick-sharun.sh" - + # Linux ships on the CEF runtime: `pnpm tauri` (mirrors release.yml; see + # apps/readest-app/scripts/tauri.mjs) runs the feat/cef tauri CLI there. + # The nightly version is patched BEFORE `tauri build` so the bundle + # filenames carry the stamp. - name: build desktop bundles if: matrix.config.release != 'android' shell: bash @@ -258,7 +231,8 @@ jobs: # latest.json for ALL platforms (#4906). timeout-minutes: 45 env: - TAURI_BUNDLER_NEW_APPIMAGE_FORMAT: 'true' + # See release.yml: keep quick-sharun from running the app under Xvfb. + STRACE_MODE: '0' TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }} TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }} APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }} @@ -272,13 +246,7 @@ jobs: version="${{ needs.compute-version.outputs.nightly_version }}" node -e "const f='apps/readest-app/package.json';const j=require('./'+f);j.version='${version}';require('fs').writeFileSync(f, JSON.stringify(j,null,2)+'\n')" cd apps/readest-app - # On Linux use the cargo `tauri` CLI (the truly-portable AppImage fork - # installed above); elsewhere the npm @tauri-apps/cli. - if [ "${{ matrix.config.release }}" = "linux" ]; then - cargo tauri build ${{ matrix.config.args }} - else - pnpm tauri build ${{ matrix.config.args }} - fi + pnpm tauri build ${{ matrix.config.args }} # Portable Windows build: rebuild with NEXT_PUBLIC_PORTABLE_APP=true and # ship the raw exe (mirrors release.yml). Runs after the NSIS build above. @@ -409,7 +377,7 @@ jobs: add_entry "$portable_name" "$portable_name" "$portable_key" ;; linux) - # Truly-portable AppImage: bundle/appimage/Readest__.AppImage + # CEF (sharun) AppImage: bundle/appimage/Readest__.AppImage if [ "$arch" = "x86_64" ]; then appimage_name="Readest_${version}_amd64.AppImage" key="linux-x86_64-appimage" @@ -417,7 +385,7 @@ jobs: appimage_name="Readest_${version}_aarch64.AppImage" key="linux-aarch64-appimage" fi - # The Linux leg builds with `cargo tauri build` WITHOUT `--target` + # The Linux leg builds with `pnpm tauri build` WITHOUT `--target` # (no matrix args), so cargo emits bundles under target/release/ # (host-target default) — NOT target//release/ like the # macOS/Windows legs, which DO pass `--target`. So there is no diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 5212f4d66..b3248ec5c 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -425,8 +425,8 @@ jobs: if: steps.changes.outputs.tauri == 'true' with: # cache-workspace-crates caches the path/workspace crates too: the - # vendored tauri fork (packages/tauri, packages/tauri-plugins, wired - # via [patch.crates-io]) and the local src-tauri/plugins/*. These are + # vendored tauri fork (packages/tauri, wired via [patch.crates-io]) + # and the local src-tauri/plugins/*. These are # workspace members that rust-cache prunes by default, so the whole # tauri stack — plus every crates.io plugin that depends on the # patched `tauri` — rebuilt on every run. They change only diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f5b601eb3..530cf0358 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -476,37 +476,15 @@ jobs: echo "Uploading updated latest.json to GitHub release" gh release upload ${{ needs.get-release.outputs.release_tag }} latest.json --clobber - # PINNED to a rev, not the branch tip: on 2026-07-31 the fork rewrote the - # sharun bundler to re-download quick-sharun.sh on EVERY build instead of - # only when it is missing from the cache, which defeats the cache seed - # below and hangs the Linux legs under Xvfb (#4906). This rev is the last - # one that keeps the cache check. Keep in sync with nightly.yml. - - name: Override tauri-cli with custom AppImage format (Linux) - if: matrix.config.release == 'linux' - run: cargo install tauri-cli --git https://github.com/tauri-apps/tauri --rev 162626969b382d52faebdf6c7264460bd9a47d1f --force - - # The truly-portable AppImage bundler at the rev pinned above downloads - # quick-sharun.sh from Anylinux-AppImages@main ONLY when it is not already - # in the tauri tools cache. An upstream strace-mode change (2026-06-29) - # made bundling launch the app under Xvfb and hang forever (#4906). Seed - # the cache with the last known-good revision so the bundler never fetches - # the moving main-branch script. Keep in sync with nightly.yml. - - name: pin quick-sharun.sh for AppImage bundling (Linux) - if: matrix.config.release == 'linux' - run: | - set -euo pipefail - cache_dir="${XDG_CACHE_HOME:-$HOME/.cache}/tauri" - mkdir -p "$cache_dir" - curl -fsSL --retry 3 -o "$cache_dir/quick-sharun.sh" \ - "https://raw.githubusercontent.com/pkgforge-dev/Anylinux-AppImages/b3a9e985cdedf7efa81d172f182cd13983743147/useful-tools/quick-sharun.sh" - chmod +x "$cache_dir/quick-sharun.sh" - - uses: tauri-apps/tauri-action@1deb371b0cd8bd54025b384f1cd735e725c4060f # v1.0.0 id: tauri if: matrix.config.release != 'android' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - TAURI_BUNDLER_NEW_APPIMAGE_FORMAT: 'true' + # The CEF AppImage bundler (quick-sharun) otherwise launches the app + # under Xvfb to discover dlopen'ed libraries and never gets it to + # exit, hanging the Linux legs (#4906); ldd-based discovery only. + STRACE_MODE: '0' TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }} TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }} APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }} @@ -518,10 +496,11 @@ jobs: NODE_OPTIONS: '--max-old-space-size=8192' with: projectPath: apps/readest-app - # On Linux, build with the Rust `cargo tauri` CLI installed in the - # step above so the new (truly-portable AppImage) bundler is used. - # Without this, tauri-action falls back to the npm @tauri-apps/cli. - tauriScript: ${{ matrix.config.release == 'linux' && 'cargo tauri' || '' }} + # `pnpm tauri` (apps/readest-app/scripts/tauri.mjs) runs the npm + # @tauri-apps/cli, except on Linux, which ships on the CEF runtime: + # there it runs the tauri CLI from upstream's feat/cef branch, which + # bundles CEF into the deb, rpm and (sharun) AppImage. + tauriScript: pnpm tauri releaseId: ${{ needs.get-release.outputs.release_id }} releaseBody: ${{ needs.get-release.outputs.release_note }} args: ${{ matrix.config.args || '' }} diff --git a/.gitignore b/.gitignore index d05620ef4..af6d8fd37 100644 --- a/.gitignore +++ b/.gitignore @@ -59,3 +59,6 @@ fastlane/metadata-play/android/en-US/changelogs apps/readest.koplugin/bin/ apps/readest.koplugin/native/localsend-bin/target/ + +# scripts/tauri.mjs parks the wry Cargo.lock here during a Linux CEF build +/Cargo.lock.wry diff --git a/.gitmodules b/.gitmodules index be12ec04c..d4f5679e9 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,9 +4,6 @@ [submodule "packages/tauri"] path = packages/tauri url = https://github.com/readest/tauri.git -[submodule "packages/tauri-plugins"] - path = packages/tauri-plugins - url = https://github.com/readest/tauri-plugins-workspace.git [submodule "packages/simplecc-wasm"] path = packages/simplecc-wasm url = https://github.com/readest/simplecc-wasm.git diff --git a/Cargo.cef.lock b/Cargo.cef.lock new file mode 100644 index 000000000..b7083903e --- /dev/null +++ b/Cargo.cef.lock @@ -0,0 +1,12130 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "Readest" +version = "0.2.2" +dependencies = [ + "anyhow", + "base64 0.22.1", + "block", + "bytes", + "cocoa", + "discord-rich-presence", + "dispatch2", + "flate2", + "futures", + "futures-util", + "if-addrs", + "image", + "libc", + "localsend", + "log", + "md-5", + "memmap2", + "minisign-verify", + "mobi", + "objc", + "objc-foundation", + "objc2", + "objc2-authentication-services", + "objc2-foundation", + "objc_id", + "pdf", + "pem 4.0.0", + "percent-encoding", + "quick-xml 0.41.0", + "rand 0.8.7", + "read-progress-stream", + "reqwest 0.12.28", + "semver", + "sentry", + "serde", + "serde_json", + "tauri", + "tauri-build", + "tauri-plugin-biometric", + "tauri-plugin-cli", + "tauri-plugin-clipboard-manager", + "tauri-plugin-deep-link", + "tauri-plugin-device-info", + "tauri-plugin-dialog", + "tauri-plugin-fs", + "tauri-plugin-haptics", + "tauri-plugin-http", + "tauri-plugin-log", + "tauri-plugin-native-bridge", + "tauri-plugin-native-tts", + "tauri-plugin-oauth", + "tauri-plugin-opener", + "tauri-plugin-os", + "tauri-plugin-persisted-scope", + "tauri-plugin-process", + "tauri-plugin-sentry", + "tauri-plugin-sharekit", + "tauri-plugin-shell", + "tauri-plugin-sign-in-with-apple", + "tauri-plugin-single-instance", + "tauri-plugin-turso", + "tauri-plugin-updater", + "tauri-plugin-webdriver", + "tauri-plugin-websocket", + "tauri-plugin-webview-upgrade", + "tauri-plugin-window-state", + "thiserror 2.0.20", + "tokio", + "tokio-stream", + "tokio-util", + "uuid 1.24.0", + "walkdir", + "winreg 0.52.0", + "zip 2.4.2", +] + +[[package]] +name = "ab_glyph" +version = "0.2.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01c0457472c38ea5bd1c3b5ada5e368271cb550be7a4ca4a0b4634e9913f6cc2" +dependencies = [ + "ab_glyph_rasterizer", + "owned_ttf_parser", +] + +[[package]] +name = "ab_glyph_rasterizer" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "366ffbaa4442f4684d91e2cd7c5ea7c4ed8add41959a31447066e279e432b618" + +[[package]] +name = "addr2line" +version = "0.25.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5d307320b3181d6d7954e663bd7c774a838b8220fe0593c86d9fb09f498b4b" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" + +[[package]] +name = "adler32" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" + +[[package]] +name = "aead" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +dependencies = [ + "crypto-common 0.1.7", + "generic-array", +] + +[[package]] +name = "aegis" +version = "0.9.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e07d39d15384924b35b70d7b8fa1f9a2934101dd3fa4722ede163cc4f9b7b960" +dependencies = [ + "cc", + "softaes", +] + +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures 0.2.17", +] + +[[package]] +name = "aes-gcm" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1" +dependencies = [ + "aead", + "aes", + "cipher", + "ctr", + "ghash", + "subtle", +] + +[[package]] +name = "ahash" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" +dependencies = [ + "cfg-if", + "getrandom 0.3.4", + "once_cell", + "version_check", + "zerocopy", +] + +[[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.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e76a019e91224d279006ff972f1e984179a6e9feb050adba6ce8274aef23195" +dependencies = [ + "alloc-no-stdlib", +] + +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + +[[package]] +name = "android-activity" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f2a1bb052857d5dd49572219344a7332b31b76405648eabac5bc68978251bcd" +dependencies = [ + "android-properties", + "bitflags 2.13.0", + "cc", + "jni 0.22.4", + "libc", + "log", + "ndk", + "ndk-context", + "ndk-sys", + "num_enum", + "thiserror 2.0.20", +] + +[[package]] +name = "android-properties" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04" + +[[package]] +name = "android_log-sys" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84521a3cf562bc62942e294181d9eef17eb38ceb8c68677bc49f144e4c3d4f8d" + +[[package]] +name = "android_logger" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbb4e440d04be07da1f1bf44fb4495ebd58669372fe0cffa6e48595ac5bd88a3" +dependencies = [ + "android_log-sys", + "env_filter 0.1.4", + "log", +] + +[[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 = "anstream" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" + +[[package]] +name = "anstyle-parse" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" +dependencies = [ + "anstyle", + "once_cell_polyfill", + "windows-sys 0.61.2", +] + +[[package]] +name = "antithesis_sdk" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08410fcac93669a476c006cd6c4512ac1e2b30fd117231a5d55d8a2c76599b82" +dependencies = [ + "libc", + "libloading 0.8.9", + "linkme", + "once_cell", + "rand 0.8.7", + "rustc_version_runtime", + "serde", + "serde_json", +] + +[[package]] +name = "anyhow" +version = "1.0.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" + +[[package]] +name = "apple-native-keyring-store" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7be2f067ccd8d4b4d4a66ddafe0f32a5dff31732f32dbff85fefc40929b1f72" +dependencies = [ + "keyring-core", + "log", + "security-framework", +] + +[[package]] +name = "arbitrary" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" +dependencies = [ + "derive_arbitrary", +] + +[[package]] +name = "arboard" +version = "3.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0348a1c054491f4bfe6ab86a7b6ab1e44e45d899005de92f58b3df180b36ddaf" +dependencies = [ + "clipboard-win", + "image", + "log", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-foundation", + "parking_lot", + "percent-encoding", + "windows-sys 0.60.2", + "wl-clipboard-rs", + "x11rb", +] + +[[package]] +name = "arc-swap" +version = "1.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c049c0be4daef0b145cb3555416b3b8ef5b7888a38aea1a3a155801fe7b0810b" +dependencies = [ + "rustversion", +] + +[[package]] +name = "arrayref" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" + +[[package]] +name = "arrayvec" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56" + +[[package]] +name = "as-raw-xcb-connection" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "175571dd1d178ced59193a6fc02dde1b972eb0bc56c892cde9beeceac5bf0f6b" + +[[package]] +name = "ashpd" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6cbdf310d77fd3aaee6ea2093db7011dc2d35d2eb3481e5607f1f8d942ed99df" +dependencies = [ + "enumflags2", + "futures-channel", + "futures-util", + "rand 0.9.5", + "raw-window-handle", + "serde", + "serde_repr", + "tokio", + "url", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "zbus", +] + +[[package]] +name = "asn1-rs" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7f43a50ac4fdca5df8e885c21b835997f0a1cdee65494a6847694a98652d9d8" +dependencies = [ + "asn1-rs-derive", + "asn1-rs-impl", + "displaydoc", + "nom 7.1.3", + "num-traits", + "rusticata-macros", + "thiserror 2.0.20", + "time", +] + +[[package]] +name = "asn1-rs-derive" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3109e49b1e4909e9db6515a30c633684d68cdeaa252f215214cb4fa1a5bfee2c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.118", + "synstructure", +] + +[[package]] +name = "asn1-rs-impl" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.118", +] + +[[package]] +name = "assoc" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfdc70193dadb9d7287fa4b633f15f90c876915b31f6af17da307fc59c9859a8" + +[[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 1.1.4", + "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 1.1.4", +] + +[[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.118", +] + +[[package]] +name = "async-signal" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52b5aaafa020cf5053a01f2a60e8ff5dccf550f0f77ec54a4e47285ac2bab485" +dependencies = [ + "async-io", + "async-lock", + "atomic-waker", + "cfg-if", + "futures-core", + "futures-io", + "rustix 1.1.4", + "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.118", +] + +[[package]] +name = "atk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "241b621213072e993be4f6f3a9e4b45f65b7e6faad43001be957184b7bb1824b" +dependencies = [ + "atk-sys", + "glib 0.18.5", + "libc", +] + +[[package]] +name = "atk-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5e48b684b0ca77d2bbadeef17424c2ea3c897d44d566a1617e7e8f30614d086" +dependencies = [ + "glib-sys 0.18.1", + "gobject-sys 0.18.0", + "libc", + "system-deps 6.2.2", +] + +[[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.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" + +[[package]] +name = "axum" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31b698c5f9a010f6573133b09e0de5408834d0c82f8d7475a89fc1867a71cd90" +dependencies = [ + "axum-core", + "bytes", + "form_urlencoded", + "futures-util", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-util", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "serde_core", + "serde_json", + "serde_path_to_error", + "serde_urlencoded", + "sync_wrapper", + "tokio", + "tower", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "axum-core" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08c78f31d7b1291f7ee735c1c6780ccde7785daae9a9206026862dab7d8792d1" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", + "http-body-util", + "mime", + "pin-project-lite", + "sync_wrapper", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "backtrace" +version = "0.3.76" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb531853791a215d7c62a30daf0dde835f381ab5de4589cfe7c649d2cbe92bd6" +dependencies = [ + "addr2line", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", + "windows-link 0.2.1", +] + +[[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 = "base64" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac07cdecf99051d9a5238b80f35af32cdeba5b336e55d957b318b50137e18da5" + +[[package]] +name = "base64ct" +version = "1.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" + +[[package]] +name = "battery" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4b624268937c0e0a3edb7c27843f9e547c320d730c610d3b8e6e8e95b2026e4" +dependencies = [ + "cfg-if", + "core-foundation 0.7.0", + "lazycell", + "libc", + "mach", + "nix 0.19.1", + "num-traits", + "uom", + "winapi", +] + +[[package]] +name = "bigdecimal" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d6867f1565b3aad85681f1015055b087fcfd840d6aeee6eee7f2da317603695" +dependencies = [ + "autocfg", + "libm", + "num-bigint", + "num-integer", + "num-traits", +] + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "bindgen" +version = "0.69.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" +dependencies = [ + "bitflags 2.13.0", + "cexpr", + "clang-sys", + "itertools 0.12.1", + "lazy_static", + "lazycell", + "log", + "prettyplease", + "proc-macro2", + "quote", + "regex", + "rustc-hash 1.1.0", + "shlex 1.3.0", + "syn 2.0.118", + "which", +] + +[[package]] +name = "bit-set" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" +dependencies = [ + "bit-vec 0.8.0", +] + +[[package]] +name = "bit-vec" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" + +[[package]] +name = "bit-vec" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b71798fca2c1fe1086445a7258a4bc81e6e49dcd24c8d0dd9a1e57395b603f51" +dependencies = [ + "serde", +] + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4388bee8683e3d04af747c73422af53102d2bd24d9eadb6cbc100baef4b43f8" +dependencies = [ + "serde_core", +] + +[[package]] +name = "bitpacking" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96a7139abd3d9cebf8cd6f920a389cf3dc9576172e32f4563f188cae3c3eb019" +dependencies = [ + "crunchy", +] + +[[package]] +name = "bitvec" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddcec3d12c579d40898fe0a9a358a803c23e9c52ca3c425707f81c9436211837" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] +name = "block" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" + +[[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 = "block-buffer" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2f6c7dbe95a6ed67ad9f18e57daf93a2f034c524b99fd2b76d18fdfeb6660aa" +dependencies = [ + "hybrid-array", +] + +[[package]] +name = "block-padding" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" +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 = "bon" +version = "3.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a602c73c7b0148ec6d12af6fd5cc7a46e2eacc8878271a999abac56eed12f561" +dependencies = [ + "bon-macros", + "rustversion", +] + +[[package]] +name = "bon-macros" +version = "3.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dee98b0db6a962de883bf5d20362dee4d7ca0d12fe39a7c6c73c844e1cd7c1f" +dependencies = [ + "darling 0.23.0", + "ident_case", + "prettyplease", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.118", +] + +[[package]] +name = "borsh" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f3f6da4992df95bbcd9af42a6c7dcb994498fc9048230405f3b36ff7cd3f145" +dependencies = [ + "bytes", + "cfg_aliases", +] + +[[package]] +name = "branches" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e426eb5cc1900033930ec955317b302e68f19f326cc7bb0c8a86865a826cdf0c" +dependencies = [ + "rustc_version", +] + +[[package]] +name = "brotli" +version = "8.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cc91aac060a7a1e25823bdccbfb6af1875b88f17c6daac97894eed8207166b3" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "5.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a32acac15fe1967bc3986b2a6347dffc965602354ea6f450ad07e8bfd253583" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + +[[package]] +name = "bs58" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "bumpalo" +version = "3.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" + +[[package]] +name = "bytemuck" +version = "1.25.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6aedf8ae72766347502cf3cb4f41cf5e9cc37d28bee90f1fdaaae15f9cf9424" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f65693059b6b9c588b9f62fed1cedbf0a8b805631457ea162d68f0de186f3de5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.118", +] + +[[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.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" +dependencies = [ + "serde", +] + +[[package]] +name = "bzip2" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3a53fac24f34a81bc9954b5d6cfce0c21e18ec6959f44f56e8e90e4bb7c346c" +dependencies = [ + "libbz2-rs-sys", +] + +[[package]] +name = "cairo-rs" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2" +dependencies = [ + "bitflags 2.13.0", + "cairo-sys-rs", + "glib 0.18.5", + "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 0.18.1", + "libc", + "system-deps 6.2.2", +] + +[[package]] +name = "calloop" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dbf9978365bac10f54d1d4b04f7ce4427e51f71d61f2fe15e3fed5166474df7" +dependencies = [ + "bitflags 2.13.0", + "polling", + "rustix 1.1.4", + "slab", + "tracing", +] + +[[package]] +name = "calloop-wayland-source" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "138efcf0940a02ebf0cc8d1eff41a1682a46b431630f4c52450d6265876021fa" +dependencies = [ + "calloop", + "rustix 1.1.4", + "wayland-backend", + "wayland-client", +] + +[[package]] +name = "camino" +version = "1.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f2d30e4173c4026932d51d31d6b0613b1fd3014bf3f9f8943d4ba139c437ba0" +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-platform" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd0061da739915fae12ea00e16397555ed4371a6bb285431aab930f61b0aa4ba" +dependencies = [ + "serde", + "serde_core", +] + +[[package]] +name = "cargo_metadata" +version = "0.19.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba" +dependencies = [ + "camino", + "cargo-platform 0.1.9", + "semver", + "serde", + "serde_json", + "thiserror 2.0.20", +] + +[[package]] +name = "cargo_metadata" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef987d17b0a113becdd19d3d0022d04d7ef41f9efe4f3fb63ac44ba61df3ade9" +dependencies = [ + "camino", + "cargo-platform 0.3.3", + "semver", + "serde", + "serde_json", + "thiserror 2.0.20", +] + +[[package]] +name = "cargo_toml" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa61aec073ec94791433ddf3df2323ff9d1711557c2a0eefb0f99cb4f8dca520" +dependencies = [ + "semver", + "serde", + "toml 1.1.2+spec-1.1.0", +] + +[[package]] +name = "cbc" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" +dependencies = [ + "cipher", +] + +[[package]] +name = "cc" +version = "1.2.67" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17dd265a7d0f31ef544e1b20e03add05d3b45b491b633b10d67145d2acc1a38" +dependencies = [ + "find-msvc-tools", + "jobserver", + "libc", + "shlex 2.0.1", +] + +[[package]] +name = "cef" +version = "151.8.1+151.3.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d4fbc354286b45619122580b769f6cff53ed19565fe10359253ae4c235495db" +dependencies = [ + "anyhow", + "cargo_metadata 0.23.1", + "cef-dll-sys", + "clap", + "libloading 0.9.0", + "objc2", + "plist", + "semver", + "serde", + "serde_json", + "thiserror 2.0.20", + "windows-sys 0.61.2", +] + +[[package]] +name = "cef-dll-sys" +version = "151.8.1+151.3.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d073a3cd9fb40877a1ae38560cf5df2bb4601e02198880b61ef5476a8e28c35e" +dependencies = [ + "anyhow", + "cmake", + "download-cef", + "serde_json", +] + +[[package]] +name = "census" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f4c707c6a209cbe82d10abd08e1ea8995e9ea937d2550646e02798948992be0" + +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + +[[package]] +name = "cexpr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom 7.1.3", +] + +[[package]] +name = "cfb" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38f2da7a0a2c4ccf0065be06397cc26a81f4e528be095826eee9d4adbb8c60f" +dependencies = [ + "byteorder", + "fnv", + "uuid 1.24.0", +] + +[[package]] +name = "cfb" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a347dcabdae9c31b0825fd6a8bed285ec9c2acb89c47827126d52fa4f59cece3" +dependencies = [ + "fnv", + "uuid 1.24.0", + "web-time", +] + +[[package]] +name = "cfg-expr" +version = "0.15.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" +dependencies = [ + "smallvec", + "target-lexicon 0.12.16", +] + +[[package]] +name = "cfg-expr" +version = "0.20.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb693542bcafa528e198be0ebd9d3632ca5b7c93dbe7237460e199910835997c" +dependencies = [ + "smallvec", + "target-lexicon 0.13.5", +] + +[[package]] +name = "cfg-if" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" + +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + +[[package]] +name = "cfg_block" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18758054972164c3264f7c8386f5fc6da6114cb46b619fd365d4e3b2dc3ae487" + +[[package]] +name = "chacha20" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d524456ba66e72eb8b115ff89e01e497f8e6d11d78b70b1aa13c0fbd97540a81" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.0", + "rand_core 0.10.1", +] + +[[package]] +name = "chrono" +version = "0.4.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aa79e62e7697b8e29b513a68abacf485adcd1fe8284a4316c5ae868e6633327" +dependencies = [ + "iana-time-zone", + "js-sys", + "num-traits", + "serde", + "wasm-bindgen", + "windows-link 0.2.1", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common 0.1.7", + "inout", +] + +[[package]] +name = "clang-sys" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" +dependencies = [ + "glob", + "libc", + "libloading 0.8.9", +] + +[[package]] +name = "clap" +version = "4.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ddb117e43bbf7dacf0a4190fef4d345b9bad68dfc649cb349e7d17d28428e51" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "714a53001bf66416adb0e2ef5ac857140e7dc3a0c48fb28b2f10762fc4b5069f" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim", +] + +[[package]] +name = "clap_derive" +version = "4.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2ce8604710f6733aa641a2b3731eaa1e8b3d9973d5e3565da11800813f997a9" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.118", +] + +[[package]] +name = "clap_lex" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" + +[[package]] +name = "clipboard-win" +version = "5.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bde03770d3df201d4fb868f2c9c59e66a3e4e2bd06692a0fe701e7103c7e84d4" +dependencies = [ + "error-code", +] + +[[package]] +name = "cmake" +version = "0.1.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0f78a02292a74a88ac736019ab962ece0bc380e3f977bf72e376c5d78ff0678" +dependencies = [ + "cc", +] + +[[package]] +name = "cocoa" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6140449f97a6e97f9511815c5632d84c8aacf8ac271ad77c559218161a1373c" +dependencies = [ + "bitflags 1.3.2", + "block", + "cocoa-foundation", + "core-foundation 0.9.4", + "core-graphics 0.23.2", + "foreign-types 0.5.0", + "libc", + "objc", +] + +[[package]] +name = "cocoa-foundation" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c6234cbb2e4c785b456c0644748b1ac416dd045799740356f8363dfe00c93f7" +dependencies = [ + "bitflags 1.3.2", + "block", + "core-foundation 0.9.4", + "core-graphics-types 0.1.3", + "libc", + "objc", +] + +[[package]] +name = "color_quant" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" + +[[package]] +name = "colorchoice" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" + +[[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 = "console" +version = "0.16.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fe5f465a4f6fee88fad41b85d990f84c835335e85b5d9e6e63e0d06d28cba7c" +dependencies = [ + "encode_unicode", + "libc", + "unicode-width 0.2.2", + "windows-sys 0.61.2", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "const-oid" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6ef517f0926dd24a1582492c791b6a4818a4d94e789a334894aa15b0d12f55c" + +[[package]] +name = "const-random" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359" +dependencies = [ + "const-random-macro", +] + +[[package]] +name = "const-random-macro" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" +dependencies = [ + "getrandom 0.2.17", + "once_cell", + "tiny-keccak", +] + +[[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 = [ + "percent-encoding", + "time", + "version_check", +] + +[[package]] +name = "cookie_store" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15b2c103cf610ec6cae3da84a766285b42fd16aad564758459e6ecf128c75206" +dependencies = [ + "cookie", + "document-features", + "idna", + "indexmap 2.14.0", + "log", + "publicsuffix", + "serde", + "serde_derive", + "serde_json", + "time", + "url", +] + +[[package]] +name = "core-foundation" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171" +dependencies = [ + "core-foundation-sys 0.7.0", + "libc", +] + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys 0.8.7", + "libc", +] + +[[package]] +name = "core-foundation" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" +dependencies = [ + "core-foundation-sys 0.8.7", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac" + +[[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.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081" +dependencies = [ + "bitflags 1.3.2", + "core-foundation 0.9.4", + "core-graphics-types 0.1.3", + "foreign-types 0.5.0", + "libc", +] + +[[package]] +name = "core-graphics" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "064badf302c3194842cf2c5d61f56cc88e54a759313879cdf03abdd27d0c3b97" +dependencies = [ + "bitflags 2.13.0", + "core-foundation 0.10.1", + "core-graphics-types 0.2.0", + "foreign-types 0.5.0", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" +dependencies = [ + "bitflags 1.3.2", + "core-foundation 0.9.4", + "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.13.0", + "core-foundation 0.10.1", + "libc", +] + +[[package]] +name = "core-text" +version = "20.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9d2790b5c08465d49f8dc05c8bcae9fea467855947db39b0f8145c091aaced5" +dependencies = [ + "core-foundation 0.9.4", + "core-graphics 0.23.2", + "foreign-types 0.5.0", + "libc", +] + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[package]] +name = "cpufeatures" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32c" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a47af21622d091a8f0fb295b88bc886ac74efcc613efc19f5d0b21de5c89e47" +dependencies = [ + "rustc_version", +] + +[[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.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d85363c37faeca707aef026efa9f3b34d077bce547e48f770770625c6013679e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5181e0de7b61eb03a81e347d6dd8797bae9da5146707b51077e2d71a54ec0ceb" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d6914041f254d6e9176c01941b21115dcfb7089e55135a35411081bd106ef3f" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-skiplist" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df29de440c58ca2cc6e587ec3d22347551a32435fbde9d2bff64e78a9ffa151b" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61803da095bee82a81bb1a452ecc25d3b2f1416d1897eb86430c6159ef717c17" + +[[package]] +name = "crunchy" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" + +[[package]] +name = "crypto-common" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "typenum", +] + +[[package]] +name = "crypto-common" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce6e4c961d6cd6c9a86db418387425e8bdeaf05b3c8bc1411e6dca4c252f1453" +dependencies = [ + "hybrid-array", + "rand_core 0.10.1", +] + +[[package]] +name = "cssparser" +version = "0.29.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f93d03419cb5950ccfd3daf3ff1c7a36ace64609a1a8746d493df1ca0afde0fa" +dependencies = [ + "cssparser-macros 0.6.1", + "dtoa-short", + "itoa", + "matches", + "phf 0.10.1", + "proc-macro2", + "quote", + "smallvec", + "syn 1.0.109", +] + +[[package]] +name = "cssparser" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c9cdaae01d5ed7882b04d795e7f752f46ff52d2fa3b50a20d28c464510bba98" +dependencies = [ + "cssparser-macros 0.7.0", + "dtoa-short", + "itoa", + "phf 0.13.1", + "smallvec", +] + +[[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.118", +] + +[[package]] +name = "cssparser-macros" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10a2a99df6e410a8ff4245aa2006499ea662245f967cc7c0a38c83ef8eb44dbf" +dependencies = [ + "quote", + "syn 2.0.118", +] + +[[package]] +name = "ctor" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb22e947478ccf9dc44d8922042c677a63fbb88f2cb468521d1145816e5087cb" + +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher", +] + +[[package]] +name = "cursor-icon" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f27ae1dd37df86211c42e150270f82743308803d90a6f6e6651cd730d5e1732f" + +[[package]] +name = "curve25519-dalek" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5eed333089e2e1c1ac8c6c0398e5e2497b4c9926ca6d0365ed1e099afa5bc23" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.0", + "curve25519-dalek-derive", + "digest 0.11.3", + "fiat-crypto", + "rand_core 0.10.1", + "rustc_version", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.118", +] + +[[package]] +name = "darling" +version = "0.20.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" +dependencies = [ + "darling_core 0.20.11", + "darling_macro 0.20.11", +] + +[[package]] +name = "darling" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" +dependencies = [ + "darling_core 0.23.0", + "darling_macro 0.23.0", +] + +[[package]] +name = "darling_core" +version = "0.20.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.118", +] + +[[package]] +name = "darling_core" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.118", +] + +[[package]] +name = "darling_macro" +version = "0.20.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" +dependencies = [ + "darling_core 0.20.11", + "quote", + "syn 2.0.118", +] + +[[package]] +name = "darling_macro" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" +dependencies = [ + "darling_core 0.23.0", + "quote", + "syn 2.0.118", +] + +[[package]] +name = "dary_heap" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b1e3a325bc115f096c8b77bbf027a7c2592230e70be2d985be950d3d5e60ebe" + +[[package]] +name = "data-encoding" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4ae5f15dda3c708c0ade84bfee31ccab44a3da4f88015ed22f63732abe300c8" + +[[package]] +name = "data-url" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be1e0bca6c3637f992fc1cc7cbc52a78c1ef6db076dbf1059c4323d6a2048376" + +[[package]] +name = "datasize" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e65c07d59e45d77a8bda53458c24a828893a99ac6cdd9c84111e09176ab739a2" +dependencies = [ + "datasize_derive", +] + +[[package]] +name = "datasize_derive" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613e4ee15899913285b7612004bbd490abd605be7b11d35afada5902fb6b91d5" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "datasketches" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c286de4e81ea2590afc24d754e0f83810c566f50a1388fa75ebd57928c0d9745" + +[[package]] +name = "dbus" +version = "0.9.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ab69f03cc8c4340c9c8e315114e1658e6775a9b16a04357973aa21cec22b32e" +dependencies = [ + "libc", + "libdbus-sys", + "windows-sys 0.61.2", +] + +[[package]] +name = "dbus-secret-service" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "708b509edf7889e53d7efb0ffadd994cc6c2345ccb62f55cfd6b0682165e4fa6" +dependencies = [ + "aes", + "block-padding", + "cbc", + "dbus", + "fastrand", + "hkdf", + "num", + "once_cell", + "openssl", + "sha2 0.10.9", + "zeroize", +] + +[[package]] +name = "dbus-secret-service-keyring-store" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21d8f54da401bb5eb2a4d873ac4b359f4a599df2ca8634bb5b8c045e5ee78757" +dependencies = [ + "dbus-secret-service", + "keyring-core", +] + +[[package]] +name = "debugid" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d" +dependencies = [ + "serde", + "uuid 1.24.0", +] + +[[package]] +name = "default-net" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c5a6569a908354d49b10db3c516d69aca1eccd97562fd31c98b13f00b73ca66" +dependencies = [ + "dlopen2 0.5.0", + "libc", + "memalloc", + "netlink-packet-core", + "netlink-packet-route", + "netlink-sys", + "once_cell", + "system-configuration 0.5.1", + "windows 0.48.0", +] + +[[package]] +name = "deflate" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c86f7e25f518f4b81808a2cf1c50996a61f5c2eb394b2393bd87f2a4780a432f" +dependencies = [ + "adler32", +] + +[[package]] +name = "der" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" +dependencies = [ + "const-oid 0.9.6", + "pem-rfc7468 0.7.0", + "zeroize", +] + +[[package]] +name = "der" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a69dedd701da44b0536442edf09c81a64b0ab97a7a4a5e3d1971f00027cbc63d" +dependencies = [ + "const-oid 0.10.2", + "pem-rfc7468 1.0.0", + "zeroize", +] + +[[package]] +name = "der-parser" +version = "10.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07da5016415d5a3c4dd39b11ed26f915f52fc4e0dc197d87908bc916e51bc1a6" +dependencies = [ + "asn1-rs", + "displaydoc", + "nom 7.1.3", + "num-bigint", + "num-traits", + "rusticata-macros", +] + +[[package]] +name = "deranged" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" +dependencies = [ + "serde_core", +] + +[[package]] +name = "derive_arbitrary" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.118", +] + +[[package]] +name = "derive_builder" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "507dfb09ea8b7fa618fcf76e953f4f5e192547945816d5358edffe39f6f94947" +dependencies = [ + "derive_builder_macro", +] + +[[package]] +name = "derive_builder_core" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8" +dependencies = [ + "darling 0.20.11", + "proc-macro2", + "quote", + "syn 2.0.118", +] + +[[package]] +name = "derive_builder_macro" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" +dependencies = [ + "derive_builder_core", + "syn 2.0.118", +] + +[[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.118", +] + +[[package]] +name = "derive_more" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d751e9e49156b02b44f9c1815bcb94b984cdcc4396ecc32521c739452808b134" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb" +dependencies = [ + "proc-macro2", + "quote", + "rustc_version", + "syn 2.0.118", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer 0.10.4", + "const-oid 0.9.6", + "crypto-common 0.1.7", + "subtle", +] + +[[package]] +name = "digest" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1dd6dbb5841937940781866fa1281a1ff7bd3bf827091440879f9994983d5c2" +dependencies = [ + "block-buffer 0.12.1", + "const-oid 0.10.2", + "crypto-common 0.2.2", +] + +[[package]] +name = "dioxus-debug-cell" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ea539174bb236e0e7dc9c12b19b88eae3cb574dedbd0252a2d43ea7e6de13e2" + +[[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 = "discord-rich-presence" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90c55d69cab17c19677ce3a5f8face993a9e6eaf847fecac3547f3a3ff4a2494" +dependencies = [ + "log", + "serde", + "serde_derive", + "serde_json", + "serde_repr", + "thiserror 2.0.20", + "uuid 0.8.2", +] + +[[package]] +name = "dispatch2" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" +dependencies = [ + "bitflags 2.13.0", + "block2", + "libc", + "objc2", +] + +[[package]] +name = "displaydoc" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ac70aa55017e108007fbaf5aa0f54b021c98f92ff8af59d42eda9da96e3dd4f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.118", +] + +[[package]] +name = "dlib" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab8ecd87370524b461f8557c119c405552c396ed91fc0a8eec68679eab26f94a" +dependencies = [ + "libloading 0.8.9", +] + +[[package]] +name = "dlopen2" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09b4f5f101177ff01b8ec4ecc81eead416a8aa42819a2869311b3420fa114ffa" +dependencies = [ + "libc", + "once_cell", + "winapi", +] + +[[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.118", +] + +[[package]] +name = "dlv-list" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "442039f5147480ba31067cb00ada1adae6892028e40e45fc5de7b7df6dcc1b5f" +dependencies = [ + "const-random", +] + +[[package]] +name = "document-features" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4b8a88685455ed29a21542a33abd9cb6510b6b129abadabdcef0f4c55bc8f61" +dependencies = [ + "litrs", +] + +[[package]] +name = "dom_query" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fac5fca71e65e94cc718a6e2af65d6e0f9c6027751c2aa562fbb5087fda639bc" +dependencies = [ + "bit-set", + "cssparser 0.37.0", + "foldhash 0.2.0", + "html5ever 0.39.0", + "precomputed-hash", + "selectors 0.38.0", + "tendril 0.5.1", +] + +[[package]] +name = "downcast-rs" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" + +[[package]] +name = "downcast-rs" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "117240f60069e65410b3ae1bb213295bd828f707b5bec6596a1afc8793ce0cbc" + +[[package]] +name = "download-cef" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c169adf067a787e1f1c58ed62906a557de85388bee4b54fb878b722ff606b113" +dependencies = [ + "bzip2", + "clap", + "fs-err", + "indicatif", + "regex", + "semver", + "serde", + "serde_json", + "sha1_smol", + "tar", + "thiserror 2.0.20", + "ureq", +] + +[[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 = "dwrote" +version = "0.11.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b35532432acc8b19ceed096e35dfa088d3ea037fe4f3c085f1f97f33b4d02" +dependencies = [ + "lazy_static", + "libc", + "serde", + "serde_derive", + "winapi", + "wio", +] + +[[package]] +name = "dyn-clone" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" + +[[package]] +name = "ed25519" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29fcf32e6c73d1079f83ab4d782de2d81620346a5f38c6237a86a22f8368980a" +dependencies = [ + "pkcs8 0.11.0", + "signature 3.0.0", +] + +[[package]] +name = "ed25519-dalek" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ebaa1a2bf1290ab3bfe5a7b771d050ebffab2711c19a81691c683a5144a25de" +dependencies = [ + "curve25519-dalek", + "ed25519", + "rand_core 0.10.1", + "serde", + "sha2 0.11.0", + "signature 3.0.0", + "subtle", + "zeroize", +] + +[[package]] +name = "either" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91622ff5e7162018101f2fea40d6ebf4a78bbe5a49736a2020649edf9693679e" + +[[package]] +name = "embed-resource" +version = "3.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbfdaacccebec3b28e4866b8973543c7647797db5ada1bdab552e48fe665fbbd" +dependencies = [ + "cc", + "memchr", + "rustc_version", + "toml 1.1.2+spec-1.1.0", + "vswhom", + "winreg 0.55.0", +] + +[[package]] +name = "embed_plist" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" + +[[package]] +name = "encode_unicode" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" + +[[package]] +name = "encoding" +version = "0.2.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b0d943856b990d12d3b55b359144ff341533e516d94098b1d3fc1ac666d36ec" +dependencies = [ + "encoding-index-japanese", + "encoding-index-korean", + "encoding-index-simpchinese", + "encoding-index-singlebyte", + "encoding-index-tradchinese", +] + +[[package]] +name = "encoding-index-japanese" +version = "1.20141219.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04e8b2ff42e9a05335dbf8b5c6f7567e5591d0d916ccef4e0b1710d32a0d0c91" +dependencies = [ + "encoding_index_tests", +] + +[[package]] +name = "encoding-index-korean" +version = "1.20141219.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dc33fb8e6bcba213fe2f14275f0963fd16f0a02c878e3095ecfdf5bee529d81" +dependencies = [ + "encoding_index_tests", +] + +[[package]] +name = "encoding-index-simpchinese" +version = "1.20141219.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d87a7194909b9118fc707194baa434a4e3b0fb6a5a757c73c3adb07aa25031f7" +dependencies = [ + "encoding_index_tests", +] + +[[package]] +name = "encoding-index-singlebyte" +version = "1.20141219.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3351d5acffb224af9ca265f435b859c7c01537c0849754d3db3fdf2bfe2ae84a" +dependencies = [ + "encoding_index_tests", +] + +[[package]] +name = "encoding-index-tradchinese" +version = "1.20141219.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd0e20d5688ce3cab59eb3ef3a2083a5c77bf496cb798dc6fcdb75f323890c18" +dependencies = [ + "encoding_index_tests", +] + +[[package]] +name = "encoding_index_tests" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569" + +[[package]] +name = "encoding_rs" +version = "0.8.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" +dependencies = [ + "cfg-if", +] + +[[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.118", +] + +[[package]] +name = "env_filter" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bf3c259d255ca70051b30e2e95b5446cdb8949ac4cd22c0d7fd634d89f568e2" +dependencies = [ + "log", + "regex", +] + +[[package]] +name = "env_filter" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "900d271a03799a1ee8d1ca9b19893b48ca674a9284fefcfb85f05e74ed314217" +dependencies = [ + "log", + "regex", +] + +[[package]] +name = "env_logger" +version = "0.11.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de671bd27a75a797dc9ae289ba1e77276e75e2026408aab65185384e2d5cd3f6" +dependencies = [ + "env_filter 2.0.0", + "log", +] + +[[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.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2add8a07dd6a8d93ff627029c51de145e12686fbc36ecb298ac22e74cf02dec" +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 = "error-code" +version = "3.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dea2df4cf52843e0452895c455a1a2cfbb842a1e7329671acf418fdc53ed4c59" + +[[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 = "fallible-iterator" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649" + +[[package]] +name = "fastbloom" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e7f34442dbe69c60fe8eaf58a8cafff81a1f278816d8ab4db255b3bef4ac3c4" +dependencies = [ + "getrandom 0.3.4", + "libm", + "siphasher 1.0.3", +] + +[[package]] +name = "fastdivide" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9afc2bd4d5a73106dd53d10d73d3401c2f32730ba2c0b93ddb888a8983680471" + +[[package]] +name = "fastrand" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6" + +[[package]] +name = "fax" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "caf1079563223d5d59d83c85886a56e586cfd5c1a26292e971a0fa266531ac5a" + +[[package]] +name = "fdeflate" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "fern" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4316185f709b23713e41e3195f90edef7fb00c3ed4adc79769cf09cc762a3b29" +dependencies = [ + "log", +] + +[[package]] +name = "fiat-crypto" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64cd1e32ddd350061ae6edb1b082d7c54915b5c672c389143b9a63403a109f24" + +[[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 = "filetime" +version = "0.2.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c287a33c7f0a620c38e641e7f60827713987b3c0f26e8ddc9462cc69cf75759" +dependencies = [ + "cfg-if", + "libc", +] + +[[package]] +name = "find-msvc-tools" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" + +[[package]] +name = "fixedbitset" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" + +[[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 = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + +[[package]] +name = "font-enumeration" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "378034ff1da05aa11a0a3882bfa929cda6d0273c30008240aea04cd3936e0902" +dependencies = [ + "core-text", + "dwrote", + "fontconfig", + "log", + "thiserror 1.0.69", +] + +[[package]] +name = "fontconfig" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b60f7d9b14055dddd3b3ab0e511ecfdf49f02e7e31b09f9111de3e424ea7bb4b" +dependencies = [ + "yeslogic-fontconfig-sys", +] + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared 0.1.1", +] + +[[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 0.3.1", +] + +[[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.118", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[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 = "fs-err" +version = "3.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b91aa448ca50d7e79433bdf3ee8d99215430d2ec02ade5aefab2a073a1822e8a" +dependencies = [ + "autocfg", +] + +[[package]] +name = "fs4" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8640e34b88f7652208ce9e88b1a37a2ae95227d84abec377ccd3c5cfeb141ed4" +dependencies = [ + "rustix 1.1.4", + "windows-sys 0.59.0", +] + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[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" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b147ee9d1f6d097cef9ce628cd2ee62288d963e16fb287bd9286455b241382d" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "262590f4fe6afeb0bc83be1daa64e52657fe185690a958af7f3ad0e92085c5ae" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2cd50c473c80f6d7c3670a752354b8e569b1a7cbfdc0419ec88e5edad85e0dc7" + +[[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.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4577ecaa3c4f96589d473f679a71b596316f6641bc350038b962a5daf0085d7a" + +[[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.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d6d3cde68c518367be28956066ddfef33813991b77a55005a69dae04bf3b10b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.118", +] + +[[package]] +name = "futures-sink" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e34418ac499d6305c2fb5ad0ed2f6ac998c5f8ca209b4510f7f94242c647e307" + +[[package]] +name = "futures-task" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b231ed28831efb4a61a08580c4bc233ec56bc009f4cd8f52da2c3cb97df0c109" + +[[package]] +name = "futures-util" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a77a90a256fce34da66415271e30f94ee91c57b04b8a2c042d9cf3220179deaa" +dependencies = [ + "futures-channel", + "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 0.18.5", + "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 0.18.5", + "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 0.18.1", + "glib-sys 0.18.1", + "gobject-sys 0.18.0", + "libc", + "system-deps 6.2.2", +] + +[[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 0.18.1", + "glib-sys 0.18.1", + "gobject-sys 0.18.0", + "libc", + "pango-sys", + "pkg-config", + "system-deps 6.2.2", +] + +[[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 0.18.1", + "gobject-sys 0.18.0", + "libc", + "pkg-config", + "system-deps 6.2.2", +] + +[[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 0.18.5", + "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 0.18.1", + "libc", + "system-deps 6.2.2", + "x11", +] + +[[package]] +name = "genawaiter" +version = "0.99.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c86bd0361bcbde39b13475e6e36cb24c329964aa2611be285289d1e4b751c1a0" +dependencies = [ + "genawaiter-macro", +] + +[[package]] +name = "genawaiter-macro" +version = "0.99.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b32dfe1fdfc0bbde1f22a5da25355514b5e450c33a6af6770884c8750aedfbc" + +[[package]] +name = "generator" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3b854b0e584ead1a33f18b2fcad7cf7be18b3875c78816b753639aa501513ae" +dependencies = [ + "cc", + "cfg-if", + "libc", + "log", + "rustversion", + "windows-link 0.2.1", + "windows-result 0.4.1", +] + +[[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 = "gethostname" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bd49230192a3797a9a4d6abe9b3eed6f7fa4c8a8a4947977c6f80025f92cbd8" +dependencies = [ + "rustix 1.1.4", + "windows-link 0.2.1", +] + +[[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", + "js-sys", + "libc", + "wasi 0.11.1+wasi-snapshot-preview1", + "wasm-bindgen", +] + +[[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 5.3.0", + "wasip2", +] + +[[package]] +name = "getrandom" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "r-efi 6.0.0", + "rand_core 0.10.1", + "wasm-bindgen", +] + +[[package]] +name = "getset" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6cf442baaabe4213ce7d1239afc26c039180b6456da2cededa316ae2c8a77a77" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.118", +] + +[[package]] +name = "ghash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" +dependencies = [ + "opaque-debug", + "polyval", +] + +[[package]] +name = "gif" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee8cfcc411d9adbbaba82fb72661cc1bcca13e8bba98b364e62b2dba8f960159" +dependencies = [ + "color_quant", + "weezl", +] + +[[package]] +name = "gimli" +version = "0.32.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7" + +[[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 0.18.1", + "glib 0.18.5", + "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 0.18.1", + "gobject-sys 0.18.0", + "libc", + "system-deps 6.2.2", + "winapi", +] + +[[package]] +name = "gio-sys" +version = "0.21.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0071fe88dba8e40086c8ff9bbb62622999f49628344b1d1bf490a48a29d80f22" +dependencies = [ + "glib-sys 0.21.5", + "gobject-sys 0.21.5", + "libc", + "system-deps 7.0.8", + "windows-sys 0.61.2", +] + +[[package]] +name = "glib" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5" +dependencies = [ + "bitflags 2.13.0", + "futures-channel", + "futures-core", + "futures-executor", + "futures-task", + "futures-util", + "gio-sys 0.18.1", + "glib-macros 0.18.5", + "glib-sys 0.18.1", + "gobject-sys 0.18.0", + "libc", + "memchr", + "once_cell", + "smallvec", + "thiserror 1.0.69", +] + +[[package]] +name = "glib" +version = "0.21.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16de123c2e6c90ce3b573b7330de19be649080ec612033d397d72da265f1bd8b" +dependencies = [ + "bitflags 2.13.0", + "futures-channel", + "futures-core", + "futures-executor", + "futures-task", + "futures-util", + "gio-sys 0.21.5", + "glib-macros 0.21.5", + "glib-sys 0.21.5", + "gobject-sys 0.21.5", + "libc", + "memchr", + "smallvec", +] + +[[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.118", +] + +[[package]] +name = "glib-macros" +version = "0.21.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf59b675301228a696fe01c3073974643365080a76cc3ed5bc2cbc466ad87f17" +dependencies = [ + "heck 0.5.0", + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 2.0.118", +] + +[[package]] +name = "glib-sys" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898" +dependencies = [ + "libc", + "system-deps 6.2.2", +] + +[[package]] +name = "glib-sys" +version = "0.21.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d95e1a3a19ae464a7286e14af9a90683c64d70c02532d88d87ce95056af3e6c" +dependencies = [ + "libc", + "system-deps 7.0.8", +] + +[[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 0.18.1", + "libc", + "system-deps 6.2.2", +] + +[[package]] +name = "gobject-sys" +version = "0.21.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dca35da0d19a18f4575f3cb99fe1c9e029a2941af5662f326f738a21edaf294" +dependencies = [ + "glib-sys 0.21.5", + "libc", + "system-deps 7.0.8", +] + +[[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 0.18.5", + "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 0.18.1", + "glib-sys 0.18.1", + "gobject-sys 0.18.0", + "libc", + "pango-sys", + "system-deps 6.2.2", +] + +[[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.118", +] + +[[package]] +name = "h2" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6cb093c84e8bd9b188d4c4a8cb6579fc016968d14c99882163cd3ff402a4f155" +dependencies = [ + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http", + "indexmap 2.14.0", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "half" +version = "2.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" +dependencies = [ + "cfg-if", + "crunchy", + "zerocopy", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" + +[[package]] +name = "hashbrown" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "foldhash 0.1.5", +] + +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash 0.2.0", +] + +[[package]] +name = "hashbrown" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash 0.2.0", +] + +[[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 = "hkdf" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" +dependencies = [ + "hmac", +] + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "home" +version = "0.5.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc627f471c528ff0c4a49e1d5e60450c8f6461dd6d10ba9dcd3a61d3dff7728d" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "hostname" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "617aaa3557aef3810a6369d0a99fac8a080891b68bd9f9812a1eeda0c0730cbd" +dependencies = [ + "cfg-if", + "libc", + "windows-link 0.2.1", +] + +[[package]] +name = "html5ever" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b7410cae13cbc75623c98ac4cbfd1f0bedddf3227afc24f370cf0f50a44a11c" +dependencies = [ + "log", + "mac", + "markup5ever 0.14.1", + "match_token", +] + +[[package]] +name = "html5ever" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46a1761807faccc9a19e86944bbf40610014066306f96edcdedc2fb714bcb7b8" +dependencies = [ + "log", + "markup5ever 0.39.0", +] + +[[package]] +name = "htmlescape" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9025058dae765dee5070ec375f591e2ba14638c63feff74f13805a72e523163" + +[[package]] +name = "http" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6970f50e31d6fc17d3fa27329444bfa74e196cf62e95052a3f6fee181dba6425" +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.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9f41fd6a08e4d4ec69df65976da761afd5ad5e58a9d4acb46bd1c953a9e3ff2" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", + "pin-project-lite", +] + +[[package]] +name = "http-range" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21dec9db110f5f872ed9699c3ecf50cf16f423502706ba5c72462e28d3157573" + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "hybrid-array" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "707114b52a152fa7bdb290cd7cd5912d9467273b6d74e21b8d81aca1f8533f6b" +dependencies = [ + "typenum", +] + +[[package]] +name = "hyper" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d22053281f852e11534f5198498373cbb59295120a20771d90f7ed1897490a72" +dependencies = [ + "atomic-waker", + "bytes", + "futures-channel", + "futures-core", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.27.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ca68d021ef39cf6463ab54c1d0f5daf03377b70561305bb89a8f83aab66e0f" +dependencies = [ + "http", + "hyper", + "hyper-util", + "rustls", + "tokio", + "tokio-rustls", + "tower-service", + "webpki-roots 1.0.8", +] + +[[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", + "system-configuration 0.7.0", + "tokio", + "tower-service", + "tracing", + "windows-registry", +] + +[[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 0.8.7", + "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.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2984d1cd16c883d7935b9e07e44071dca8d917fd52ecc02c04d5fa0b5a3f191c" +dependencies = [ + "displaydoc", + "potential_utf", + "utf8_iter", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locale_core" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92219b62b3e2b4d88ac5119f8904c10f8f61bf7e95b640d25ba3075e6cac2c29" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_normalizer" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c56e5ee99d6e3d33bd91c5d85458b6005a22140021cc324cea84dd0e72cff3b4" +dependencies = [ + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da3be0ae77ea334f4da67c12f149704f19f81d1adf7c51cf482943e84a2bad38" + +[[package]] +name = "icu_properties" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bee3b67d0ea5c2cca5003417989af8996f8604e34fb9ddf96208a033901e70de" +dependencies = [ + "icu_collections", + "icu_locale_core", + "icu_properties_data", + "icu_provider", + "zerotrie", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e2bbb201e0c04f7b4b3e14382af113e17ba4f63e2c9d2ee626b720cbce54a14" + +[[package]] +name = "icu_provider" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "139c4cf31c8b5f33d7e199446eff9c1e02decfc2f0eec2c8d71f65befa45b421" +dependencies = [ + "displaydoc", + "icu_locale_core", + "writeable", + "yoke", + "zerofrom", + "zerotrie", + "zerovec", +] + +[[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.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb68373c0d6620ef8105e855e7745e18b0d00d3bdb07fb532e434244cdb9a714" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "if-addrs" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0a05c691e1fae256cf7013d99dad472dc52d5543322761f83ec8d47eab40d2b" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + +[[package]] +name = "image" +version = "0.25.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85ab80394333c02fe689eaf900ab500fbd0c2213da414687ebf995a65d5a6104" +dependencies = [ + "bytemuck", + "byteorder-lite", + "color_quant", + "gif", + "image-webp", + "moxcms", + "num-traits", + "png 0.18.1", + "tiff", + "zune-core", + "zune-jpeg", +] + +[[package]] +name = "image-webp" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "525e9ff3e1a4be2fbea1fdf0e98686a6d98b4d8f937e1bf7402245af1909e8c3" +dependencies = [ + "byteorder-lite", + "quick-error", +] + +[[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.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" +dependencies = [ + "equivalent", + "hashbrown 0.17.1", + "serde", + "serde_core", +] + +[[package]] +name = "indicatif" +version = "0.18.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9433806cd6b4ec1aba79c021c7e4c58fb4c3b9977c085062e611ac929998fb0c" +dependencies = [ + "console", + "portable-atomic", + "unicode-width 0.2.2", + "unit-prefix", + "web-time", +] + +[[package]] +name = "infer" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a588916bfdfd92e71cacef98a63d9b1f0d74d6599980d11894290e7ddefffcf7" +dependencies = [ + "cfb 0.7.3", +] + +[[package]] +name = "infer" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4200d433cbd5178df7797c9c2e75b348b728e39631cf14520d1e2fc424201f4" +dependencies = [ + "cfb 0.14.0", +] + +[[package]] +name = "inout" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" +dependencies = [ + "block-padding", + "generic-array", +] + +[[package]] +name = "intrusive-collections" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "189d0897e4cbe8c75efedf3502c18c887b05046e59d28404d4d8e46cbc4d1e86" +dependencies = [ + "memoffset", +] + +[[package]] +name = "inventory" +version = "0.3.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4f0c30c76f2f4ccee3fe55a2435f691ca00c0e4bd87abe4f4a851b1d4dac39b" +dependencies = [ + "rustversion", +] + +[[package]] +name = "io-uring" +version = "0.7.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9080b15e63775b9a2ac7dca720f7050a8b955e092ea0f6020a4a80f69998cdc0" +dependencies = [ + "bitflags 2.13.0", + "cfg-if", + "libc", +] + +[[package]] +name = "ipnet" +version = "2.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" + +[[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 = "is_terminal_polyfill" +version = "1.70.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" + +[[package]] +name = "istring" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "875cc6fb9aecbc1a9bd736f2d18b12e0756b4c80c5e35e28262154abcb077a39" +dependencies = [ + "datasize", +] + +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" + +[[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 0.18.5", + "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 0.18.1", + "gobject-sys 0.18.0", + "libc", + "system-deps 6.2.2", +] + +[[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 0.3.1", + "log", + "thiserror 1.0.69", + "walkdir", + "windows-sys 0.45.0", +] + +[[package]] +name = "jni" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5efd9a482cf3a427f00d6b35f14332adc7902ce91efb778580e180ff90fa3498" +dependencies = [ + "cfg-if", + "combine", + "jni-macros", + "jni-sys 0.4.1", + "log", + "simd_cesu8", + "thiserror 2.0.20", + "walkdir", + "windows-link 0.2.1", +] + +[[package]] +name = "jni-macros" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a00109accc170f0bdb141fed3e393c565b6f5e072365c3bd58f5b062591560a3" +dependencies = [ + "proc-macro2", + "quote", + "rustc_version", + "simd_cesu8", + "syn 2.0.118", +] + +[[package]] +name = "jni-sys" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41a652e1f9b6e0275df1f15b32661cf0d4b78d4d87ddec5e0c3c20f097433258" +dependencies = [ + "jni-sys 0.4.1", +] + +[[package]] +name = "jni-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2" +dependencies = [ + "jni-sys-macros", +] + +[[package]] +name = "jni-sys-macros" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" +dependencies = [ + "quote", + "syn 2.0.118", +] + +[[package]] +name = "jobserver" +version = "0.1.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c00acbd29eabad4a2392fa0e921c874934dbbf4194312ad20f04a0ed67a3cb3" +dependencies = [ + "getrandom 0.4.3", + "libc", +] + +[[package]] +name = "jpeg-decoder" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00810f1d8b74be64b13dbf3db89ac67740615d6c891f0e7b6179326533011a07" + +[[package]] +name = "js-sys" +version = "0.3.103" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53b44bfcdb3f8d5837a46dae1ca9660a837176eee74a28b229bc626816589102" +dependencies = [ + "cfg-if", + "futures-util", + "wasm-bindgen", +] + +[[package]] +name = "json-patch" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7421438de105a0827e44fadd05377727847d717c80ce29a229f85fd04c427b72" +dependencies = [ + "jsonptr", + "serde", + "serde_json", + "thiserror 2.0.20", +] + +[[package]] +name = "jsonptr" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5a3cc660ba5d72bce0b3bb295bf20847ccbb40fd423f3f05b61273672e561fe" +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.13.0", + "serde", + "unicode-segmentation", +] + +[[package]] +name = "keyboard-types" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fbe853b403ae61a04233030ae8a79d94975281ed9770a1f9e246732b534b28d" +dependencies = [ + "bitflags 2.13.0", + "serde", +] + +[[package]] +name = "keyring-core" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb1e621458ca9c51aa110bd0339d4751a056b9576bf1253aee1aa560dda0fc9d" +dependencies = [ + "log", +] + +[[package]] +name = "kuchikiki" +version = "0.8.8-speedreader" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02cb977175687f33fa4afa0c95c112b987ea1443e5a51c8f8ff27dc618270cc2" +dependencies = [ + "cssparser 0.29.6", + "html5ever 0.29.1", + "indexmap 2.14.0", + "selectors 0.24.0", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" +dependencies = [ + "spin", +] + +[[package]] +name = "lazycell" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" + +[[package]] +name = "levenshtein_automata" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c2cdeb66e45e9f36bfad5bbdb4d2384e70936afbee843c6f6543f0c551ebb25" + +[[package]] +name = "libappindicator" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03589b9607c868cc7ae54c0b2a22c8dc03dd41692d48f2d7df73615c6a95dc0a" +dependencies = [ + "glib 0.18.5", + "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 0.7.4", + "once_cell", +] + +[[package]] +name = "libbz2-rs-sys" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34b357333733e8260735ba5894eb928c02ecc69c78715f01a8019e7fa7f2db4c" + +[[package]] +name = "libc" +version = "0.2.186" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" + +[[package]] +name = "libdbus-sys" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "328c4789d42200f1eeec05bd86c9c13c7f091d2ba9a6ea35acdf51f31bc0f043" +dependencies = [ + "cc", + "pkg-config", +] + +[[package]] +name = "libflate" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4da9b700e758e57152a1fd1c52cbdc5727c1aa6d8743dc1acda917398f1d76c" +dependencies = [ + "adler32", + "crc32fast", + "dary_heap", + "libflate_lz77", + "no_std_io2", +] + +[[package]] +name = "libflate_lz77" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff7a10e427698aef6eef269482776debfef63384d30f13aad39a1a95e0e098fd" +dependencies = [ + "hashbrown 0.16.1", + "no_std_io2", + "rle-decode-fast", +] + +[[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 = "libloading" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" +dependencies = [ + "cfg-if", + "windows-link 0.2.1", +] + +[[package]] +name = "libloading" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "754ca22de805bb5744484a5b151a9e1a8e837d5dc232c2d7d8c2e3492edc8b60" +dependencies = [ + "cfg-if", + "windows-link 0.2.1", +] + +[[package]] +name = "libm" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" + +[[package]] +name = "libredox" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c943259e342f1e06ff2da7a83eabdfe7f92ce10262688dbf1895ff0b3e6e4652" +dependencies = [ + "bitflags 2.13.0", + "libc", + "plain", + "redox_syscall 0.9.3", +] + +[[package]] +name = "linkme" +version = "0.3.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e83272d46373fb8decca684579ac3e7c8f3d71d4cc3aa693df8759e260ae41cf" +dependencies = [ + "linkme-impl", +] + +[[package]] +name = "linkme-impl" +version = "0.3.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32d59e20403c7d08fe62b4376edfe5c7fb2ef1e6b1465379686d0f21c8df444b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.118", +] + +[[package]] +name = "linux-raw-sys" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" + +[[package]] +name = "linux-raw-sys" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" + +[[package]] +name = "litemap" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0" + +[[package]] +name = "litrs" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092" + +[[package]] +name = "local-ip-address" +version = "0.6.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa08fb2b1ec3ea84575e94b489d06d4ce0cbf052d12acd515838f50e3c3d63e3" +dependencies = [ + "libc", + "neli", + "windows-sys 0.61.2", +] + +[[package]] +name = "localsend" +version = "0.1.0" +source = "git+https://github.com/readest/localsend?rev=1609ca7cd5689e10cc4703e7ce178513e5d95b11#1609ca7cd5689e10cc4703e7ce178513e5d95b11" +dependencies = [ + "anyhow", + "base64 0.23.1", + "bytes", + "ed25519-dalek", + "form_urlencoded", + "futures-util", + "http-body-util", + "hyper", + "hyper-util", + "if-addrs", + "libc", + "lru 0.18.2", + "pem 4.0.0", + "percent-encoding", + "rand 0.10.2", + "rcgen", + "reqwest 0.13.4", + "rsa", + "rustls", + "serde", + "serde_json", + "sha2 0.11.0", + "socket2", + "thiserror 2.0.20", + "time", + "tokio", + "tokio-rustls", + "tokio-stream", + "tokio-util", + "tracing", + "tracing-subscriber", + "tungstenite 0.30.0", + "uuid 1.24.0", + "x509-parser", +] + +[[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.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ceec5bc11778974d1bcb055b18002eba7f4b3518b6a0081b3af5f21666da9ad" +dependencies = [ + "value-bag", +] + +[[package]] +name = "loom" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca" +dependencies = [ + "cfg-if", + "generator", + "scoped-tls", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "lru" +version = "0.16.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f66e8d5d03f609abc3a39e6f08e4164ebf1447a732906d39eb9b99b7919ef39" +dependencies = [ + "hashbrown 0.16.1", +] + +[[package]] +name = "lru" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d2f2f9b4ba7e6b24d95e7e899329d35be83bcded72c8540cdd5368932d1d90a" +dependencies = [ + "hashbrown 0.17.1", +] + +[[package]] +name = "lru-slab" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" + +[[package]] +name = "lz4_flex" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ef0d4ed8669f8f8826eb00dc878084aa8f253506c4fd5e8f58f5bce72ddb97e" + +[[package]] +name = "mac" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" + +[[package]] +name = "mach" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" +dependencies = [ + "libc", +] + +[[package]] +name = "malloc_buf" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" +dependencies = [ + "libc", +] + +[[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 0.8.9", + "string_cache_codegen 0.5.4", + "tendril 0.4.3", +] + +[[package]] +name = "markup5ever" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7122d987ec5f704ee56f6e5b41a7d93722e9aae27ae07cafa4036c4d3f9757de" +dependencies = [ + "log", + "tendril 0.5.1", + "web_atoms", +] + +[[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.118", +] + +[[package]] +name = "matchers" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" +dependencies = [ + "regex-automata", +] + +[[package]] +name = "matches" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" + +[[package]] +name = "matchit" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" + +[[package]] +name = "md-5" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +dependencies = [ + "cfg-if", + "digest 0.10.7", +] + +[[package]] +name = "md5" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771" + +[[package]] +name = "measure_time" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51c55d61e72fc3ab704396c5fa16f4c184db37978ae4e94ca8959693a235fc0e" +dependencies = [ + "log", +] + +[[package]] +name = "memalloc" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df39d232f5c40b0891c10216992c2f250c054105cb1e56f0fc9032db6203ecc1" + +[[package]] +name = "memchr" +version = "2.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" + +[[package]] +name = "memmap2" +version = "0.9.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1219ed1b7f229ee7104d281dd01d6802fe28bb6e95d292942c4daacdeb798c0" +dependencies = [ + "libc", +] + +[[package]] +name = "memoffset" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" +dependencies = [ + "autocfg", +] + +[[package]] +name = "miette" +version = "7.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f98efec8807c63c752b5bd61f862c165c115b0a35685bdcfd9238c7aeb592b7" +dependencies = [ + "cfg-if", + "miette-derive", + "unicode-width 0.1.14", +] + +[[package]] +name = "miette-derive" +version = "7.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db5b29714e950dbb20d5e6f74f9dcec4edbcc1067bb7f8ed198c097b8c1a818b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.118", +] + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "minisign-verify" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22f9645cb765ea72b8111f36c522475d2daa0d22c957a9826437e97534bc4e9e" + +[[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.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02bd0af71c67b473010cbbc60715ee815645a4dc942899111f494b4b737d6fda" +dependencies = [ + "libc", + "wasi 0.11.1+wasi-snapshot-preview1", + "windows-sys 0.61.2", +] + +[[package]] +name = "mobi" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f3f8e34216126be00a189105bda27462e1743d59cd4e15d6b99ff4af051b1b4" +dependencies = [ + "encoding", + "indexmap 1.9.3", + "thiserror 1.0.69", +] + +[[package]] +name = "moxcms" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb85c154ba489f01b25c0d36ae69a87e4a1c73a72631fc6c0eb6dde34a73e44b" +dependencies = [ + "num-traits", + "pxfm", +] + +[[package]] +name = "muda" +version = "0.19.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dd04e60bc0b07438a6771710ee1698f98f6ebbc7f89b61264af1563b8aeb878" +dependencies = [ + "crossbeam-channel", + "dpi", + "gtk", + "keyboard-types 0.7.0", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", + "once_cell", + "png 0.18.1", + "serde", + "thiserror 2.0.20", + "windows-sys 0.61.2", +] + +[[package]] +name = "murmurhash32" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2195bf6aa996a481483b29d62a7663eed3fe39600c460e323f8ff41e90bdd89b" + +[[package]] +name = "ndk" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" +dependencies = [ + "bitflags 2.13.0", + "jni-sys 0.3.1", + "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 0.3.1", +] + +[[package]] +name = "neli" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22f9786d56d972959e1408b6a93be6af13b9c1392036c5c1fafa08a1b0c6ee87" +dependencies = [ + "bitflags 2.13.0", + "byteorder", + "derive_builder", + "getset", + "libc", + "log", + "neli-proc-macros", + "parking_lot", +] + +[[package]] +name = "neli-proc-macros" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05d8d08c6e98f20a62417478ebf7be8e1425ec9acecc6f63e22da633f6b71609" +dependencies = [ + "either", + "proc-macro2", + "quote", + "serde", + "syn 2.0.118", +] + +[[package]] +name = "netlink-packet-core" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72724faf704479d67b388da142b186f916188505e7e0b26719019c525882eda4" +dependencies = [ + "anyhow", + "byteorder", + "netlink-packet-utils", +] + +[[package]] +name = "netlink-packet-route" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053998cea5a306971f88580d0829e90f270f940befd7cf928da179d4187a5a66" +dependencies = [ + "anyhow", + "bitflags 1.3.2", + "byteorder", + "libc", + "netlink-packet-core", + "netlink-packet-utils", +] + +[[package]] +name = "netlink-packet-utils" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ede8a08c71ad5a95cdd0e4e52facd37190977039a4704eb82a283f713747d34" +dependencies = [ + "anyhow", + "byteorder", + "paste", + "thiserror 1.0.69", +] + +[[package]] +name = "netlink-sys" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd6c30ed10fa69cc491d491b85cc971f6bdeb8e7367b7cde2ee6cc878d583fae" +dependencies = [ + "bytes", + "libc", + "log", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + +[[package]] +name = "nix" +version = "0.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2ccba0cfe4fdf15982d1674c69b1fd80bad427d293849982668dfe454bd61f2" +dependencies = [ + "bitflags 1.3.2", + "cc", + "cfg-if", + "libc", +] + +[[package]] +name = "nix" +version = "0.31.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf20d2fde8ff38632c426f1165ed7436270b44f199fc55284c38276f9db47c3d" +dependencies = [ + "bitflags 2.13.0", + "cfg-if", + "cfg_aliases", + "libc", +] + +[[package]] +name = "no_std_io2" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418abd1b6d34fbf6cae440dc874771b0525a604428704c76e48b29a5e67b8003" +dependencies = [ + "memchr", +] + +[[package]] +name = "nodrop" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "nom" +version = "8.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df9761775871bdef83bee530e60050f7e54b1105350d6884eb0fb4f46c2f9405" +dependencies = [ + "memchr", +] + +[[package]] +name = "ntapi" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3b335231dfd352ffb0f8017f3b6027a4917f7df785ea2143d8af2adc66980ae" +dependencies = [ + "winapi", +] + +[[package]] +name = "nu-ansi-term" +version = "0.50.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "num" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" +dependencies = [ + "num-bigint", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c89e69e7e0f03bea5ef08013795c25018e101932225a656383bd384495ecc367" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-bigint-dig" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e661dda6640fad38e827a6d4a310ff4763082116fe217f279885c97f511bb0b7" +dependencies = [ + "lazy_static", + "libm", + "num-integer", + "num-iter", + "num-traits", + "rand 0.8.7", + "smallvec", + "zeroize", +] + +[[package]] +name = "num-complex" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-conv" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441" + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c92800bd69a1eac91786bcfe9da64a897eb72911b8dc3095decbd07429e8048b" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" +dependencies = [ + "num-bigint", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", + "libm", +] + +[[package]] +name = "num_enum" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26" +dependencies = [ + "num_enum_derive", + "rustversion", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" +dependencies = [ + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 2.0.118", +] + +[[package]] +name = "num_threads" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" +dependencies = [ + "libc", +] + +[[package]] +name = "objc" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" +dependencies = [ + "malloc_buf", +] + +[[package]] +name = "objc-foundation" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9" +dependencies = [ + "block", + "objc", + "objc_id", +] + +[[package]] +name = "objc2" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a12a8ed07aefc768292f076dc3ac8c48f3781c8f2d5851dd3d98950e8c5a89f" +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.13.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-application-services" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69282c2b5bc58fba07cb9de2113619532eb551e98efe3d8d695509ef45fbd53b" +dependencies = [ + "objc2-core-foundation", +] + +[[package]] +name = "objc2-authentication-services" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee6d6f7dab884a28adaec1012eb3889257a49cc145724e35f93ece2d209f8b25" +dependencies = [ + "bitflags 2.13.0", + "block2", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", + "objc2-security", +] + +[[package]] +name = "objc2-cloud-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73ad74d880bb43877038da939b7427bba67e9dd42004a18b809ba7d87cee241c" +dependencies = [ + "bitflags 2.13.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.13.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.13.0", + "block2", + "dispatch2", + "libc", + "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.13.0", + "dispatch2", + "libc", + "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-location" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca347214e24bc973fc025fd0d36ebb179ff30536ed1f80252706db19ee452009" +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.13.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.13.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.13.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.13.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-osa-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f112d1746737b0da274ef79a23aac283376f335f4095a083a267a082f21db0c0" +dependencies = [ + "bitflags 2.13.0", + "objc2", + "objc2-app-kit", + "objc2-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.13.0", + "objc2", + "objc2-core-foundation", + "objc2-core-graphics", + "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.13.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.13.0", + "block2", + "objc2", + "objc2-cloud-kit", + "objc2-core-data", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-core-image", + "objc2-core-location", + "objc2-core-text", + "objc2-foundation", + "objc2-quartz-core", + "objc2-user-notifications", +] + +[[package]] +name = "objc2-user-notifications" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9df9128cbbfef73cda168416ccf7f837b62737d748333bfe9ab71c245d76613e" +dependencies = [ + "objc2", + "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.13.0", + "block2", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", + "objc2-javascript-core", + "objc2-security", +] + +[[package]] +name = "objc_id" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b" +dependencies = [ + "objc", +] + +[[package]] +name = "object" +version = "0.37.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe" +dependencies = [ + "memchr", +] + +[[package]] +name = "oid-registry" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12f40cff3dde1b6087cc5d5f5d4d65712f34016a03ed60e9c08dcc392736b5b7" +dependencies = [ + "asn1-rs", +] + +[[package]] +name = "once_cell" +version = "1.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" + +[[package]] +name = "once_cell_polyfill" +version = "1.70.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" + +[[package]] +name = "oneshot" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "269bca4c2591a28585d6bf10d9ed0332b7d76900a1b02bec41bdc3a2cdcda107" + +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + +[[package]] +name = "open" +version = "5.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd8d3b65c44123a56e0133d2cd06ce4361bd3ca99d41198b2f25e3c3db9b8b4a" +dependencies = [ + "dunce", + "is-wsl", + "libc", +] + +[[package]] +name = "openssl" +version = "0.10.81" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77823a27f0babb03091cb9ed9ef80af3b39dbc82f97e8fa530374b7dafd87a45" +dependencies = [ + "bitflags 2.13.0", + "cfg-if", + "foreign-types 0.3.2", + "libc", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.118", +] + +[[package]] +name = "openssl-probe" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" + +[[package]] +name = "openssl-src" +version = "300.6.1+3.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46eb8fb9fb3b61ce1c0f8a026c4c1a0714d3a9e138e7fbde78753ce2babc3846" +dependencies = [ + "cc", +] + +[[package]] +name = "openssl-sys" +version = "0.9.117" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b47e7e6bb2c38cd930d25a23b40fa52e068c10e85f3e03a7f5ba5aaca5713695" +dependencies = [ + "cc", + "libc", + "openssl-src", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "orbclient" +version = "0.3.55" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5df339f526ea9a60e371768d50efc2f2508c7203290731565d1f7a6f71d21747" +dependencies = [ + "libc", + "libredox", +] + +[[package]] +name = "ordered-float" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7d950ca161dc355eaf28f82b11345ed76c6e1f6eb1f4f4479e0323b9e2fbd0e" +dependencies = [ + "num-traits", +] + +[[package]] +name = "ordered-multimap" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49203cdcae0030493bad186b28da2fa25645fa276a51b6fec8010d281e02ef79" +dependencies = [ + "dlv-list", + "hashbrown 0.14.5", +] + +[[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 = "os_info" +version = "3.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cf20a545b305cf1da722b236b5155c9bb35f1d5ceb28c048bd96ca842f41b5b" +dependencies = [ + "android_system_properties", + "log", + "nix 0.31.3", + "objc2", + "objc2-foundation", + "objc2-ui-kit", + "serde", + "windows-sys 0.61.2", +] + +[[package]] +name = "os_pipe" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d8fae84b431384b68627d0f9b3b1245fcf9f46f6c0e3dc902e9dce64edd1967" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + +[[package]] +name = "osakit" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "732c71caeaa72c065bb69d7ea08717bd3f4863a4f451402fc9513e29dbd5261b" +dependencies = [ + "objc2", + "objc2-foundation", + "objc2-osa-kit", + "serde", + "serde_json", + "thiserror 2.0.20", +] + +[[package]] +name = "owned_ttf_parser" +version = "0.25.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36820e9051aca1014ddc75770aab4d68bc1e9e632f0f5627c4086bc216fb583b" +dependencies = [ + "ttf-parser", +] + +[[package]] +name = "ownedbytes" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fbd56f7631767e61784dc43f8580f403f4475bd4aaa4da003e6295e1bab4a7e" +dependencies = [ + "stable_deref_trait", +] + +[[package]] +name = "owo-colors" +version = "3.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f" + +[[package]] +name = "pack1" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3b7bb0ecf2e447b1f20ee94ee79ef6eed1e9d4b3c36ce1903b9dea3bf205523" +dependencies = [ + "bytemuck", +] + +[[package]] +name = "pango" +version = "0.18.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4" +dependencies = [ + "gio", + "glib 0.18.5", + "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 0.18.1", + "gobject-sys 0.18.0", + "libc", + "system-deps 6.2.2", +] + +[[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 0.5.18", + "smallvec", + "windows-link 0.2.1", +] + +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "pastey" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ee67f1008b1ba2321834326597b8e186293b049a023cdef258527550b9935b4" + +[[package]] +name = "pdf" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de084796ae1744b0ae6b2b1e9368ed87bd43043ca410363edb72155ea68245db" +dependencies = [ + "aes", + "bitflags 2.13.0", + "cbc", + "datasize", + "deflate", + "fax", + "indexmap 2.14.0", + "istring", + "itertools 0.13.0", + "jpeg-decoder", + "libflate", + "log", + "md5", + "once_cell", + "pdf_derive", + "sha2 0.10.9", + "snafu", + "stringprep", + "weezl", +] + +[[package]] +name = "pdf_derive" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d66198aa8cbc8fb36b61c32b50fc2ba11cf70cf177c7a36b15f9444a2fce0267" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.118", +] + +[[package]] +name = "pem" +version = "3.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d30c53c26bc5b31a98cd02d20f25a7c8567146caf63ed593a9d87b2775291be" +dependencies = [ + "base64 0.22.1", + "serde_core", +] + +[[package]] +name = "pem" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d354a98a3d1251555de99e8fdd8afda05573c31b82f59063a7b0a29b5527f120" +dependencies = [ + "base64 0.23.1", + "serde_core", +] + +[[package]] +name = "pem-rfc7468" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" +dependencies = [ + "base64ct", +] + +[[package]] +name = "pem-rfc7468" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6305423e0e7738146434843d1694d621cce767262b2a86910beab705e4493d9" +dependencies = [ + "base64ct", +] + +[[package]] +name = "percent-encoding" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" + +[[package]] +name = "petgraph" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455" +dependencies = [ + "fixedbitset", + "hashbrown 0.15.5", + "indexmap 2.14.0", +] + +[[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_shared 0.11.3", +] + +[[package]] +name = "phf" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" +dependencies = [ + "phf_macros 0.13.1", + "phf_shared 0.13.1", + "serde", +] + +[[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_codegen" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49aa7f9d80421bca176ca8dbfebe668cc7a2684708594ec9f3c0db0805d5d6e1" +dependencies = [ + "phf_generator 0.13.1", + "phf_shared 0.13.1", +] + +[[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.7", +] + +[[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.7", +] + +[[package]] +name = "phf_generator" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737" +dependencies = [ + "fastrand", + "phf_shared 0.13.1", +] + +[[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.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef" +dependencies = [ + "phf_generator 0.13.1", + "phf_shared 0.13.1", + "proc-macro2", + "quote", + "syn 2.0.118", +] + +[[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.3", +] + +[[package]] +name = "phf_shared" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" +dependencies = [ + "siphasher 1.0.3", +] + +[[package]] +name = "pin-project" +version = "1.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2466b2336ed02bcdca6b294417127b90ec92038d1d5c4fbeac971a922e0e0924" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c96395f0a926bc13b1c17622aaddda1ecb55d49c8f1bf9777e4d877800a43f8b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.118", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" + +[[package]] +name = "piper" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c835479a4443ded371d6c535cbfd8d31ad92c5d23ae9770a61bc155e4992a3c1" +dependencies = [ + "atomic-waker", + "fastrand", + "futures-io", +] + +[[package]] +name = "pkcs1" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" +dependencies = [ + "der 0.7.10", + "pkcs8 0.10.2", + "spki 0.7.3", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der 0.7.10", + "spki 0.7.3", +] + +[[package]] +name = "pkcs8" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "451913da69c775a56034ea8d9003d27ee8948e12443eae7c038ba100a4f21cb7" +dependencies = [ + "der 0.8.1", + "spki 0.8.0", +] + +[[package]] +name = "pkg-config" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e" + +[[package]] +name = "plain" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" + +[[package]] +name = "plist" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da1d65da6dd5d1e44199ac0f58712d241c0f439f80adea8924d832384087f85" +dependencies = [ + "base64 0.22.1", + "indexmap 2.14.0", + "quick-xml 0.41.0", + "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.13.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 1.1.4", + "windows-sys 0.61.2", +] + +[[package]] +name = "pollster" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f3a9f18d041e6d0e102a0a46750538147e5e8992d3b4873aaafee2520b00ce3" + +[[package]] +name = "polyval" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" +dependencies = [ + "cfg-if", + "cpufeatures 0.2.17", + "opaque-debug", + "universal-hash", +] + +[[package]] +name = "portable-atomic" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05c8b63e8d9609db387f0324918f81d68fe27748f084ef092fb35954d0539a85" + +[[package]] +name = "potential_utf" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0103b1cef7ec0cf76490e969665504990193874ea05c85ff9bab8b911d0a0564" +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.118", +] + +[[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.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" +dependencies = [ + "toml_edit 0.25.12+spec-1.1.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 = "prost" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "528ac67416ff8646872a3c02cad9cc4ee5dc9f9540c9b10771855c95cb2e5ae1" +dependencies = [ + "bytes", + "prost-derive", +] + +[[package]] +name = "prost-derive" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b570b25f7617e43d59005d0990ccb79e950a423952cea19671b7a876da390adf" +dependencies = [ + "anyhow", + "itertools 0.14.0", + "proc-macro2", + "quote", + "syn 2.0.118", +] + +[[package]] +name = "psl-types" +version = "2.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33cb294fe86a74cbcf50d4445b37da762029549ebeea341421c7c70370f86cac" + +[[package]] +name = "publicsuffix" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f42ea446cab60335f76979ec15e12619a2165b5ae2c12166bef27d283a9fadf" +dependencies = [ + "idna", + "psl-types", +] + +[[package]] +name = "pxfm" +version = "0.1.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d55d956fa96f5ec02be2e13af0e20391a5aa83d6a074e3ad368959d0fab299ea" + +[[package]] +name = "quick-error" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" + +[[package]] +name = "quick-xml" +version = "0.39.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdcc8dd4e2f670d309a5f0e83fe36dfdc05af317008fea29144da1a2ac858e5e" +dependencies = [ + "memchr", +] + +[[package]] +name = "quick-xml" +version = "0.41.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e660451e55124f798a69a5af3f49ccfbefbd41910eefd25caf2393e1f3473ec1" +dependencies = [ + "memchr", +] + +[[package]] +name = "quinn" +version = "0.11.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c1a41e437b6bbd489372cd4971de128e85c855f56c57f283d20ff016cf7c0a8" +dependencies = [ + "bytes", + "cfg_aliases", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash 2.1.3", + "rustls", + "socket2", + "thiserror 2.0.20", + "tokio", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-proto" +version = "0.11.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f4bfc015262b9df63c8845072ce59068853ff5872180c2ce2f13038b970e560" +dependencies = [ + "bytes", + "getrandom 0.4.3", + "lru-slab", + "rand 0.10.2", + "rand_pcg 0.10.2", + "ring", + "rustc-hash 2.1.3", + "rustls", + "rustls-pki-types", + "slab", + "thiserror 2.0.20", + "tinyvec", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-udp" +version = "0.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35a133f956daabe89a61a685c2649f13d82d5aa4bd5d12d1277e1072a21c0694" +dependencies = [ + "cfg_aliases", + "libc", + "once_cell", + "socket2", + "tracing", + "windows-sys 0.61.2", +] + +[[package]] +name = "quote" +version = "1.0.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfbc457d0c7a0759a614551b11a6409e5951f6c7537be1f1b7682b9ae9230368" +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 = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[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 0.2.1", +] + +[[package]] +name = "rand" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22f6172bdec972074665ed81ed53b71da00bfc44b65a753cfde883ec4c702a1a" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9ef1d0d795eb7d84685bca4f72f3649f064e6641543d3a8c415898726a57b41" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.5", +] + +[[package]] +name = "rand" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7f5fa3a058cd35567ef9bfa5e75732bee0f9e4c55fa90477bef2dfcdbc4be80" +dependencies = [ + "chacha20", + "getrandom 0.4.3", + "rand_core 0.10.1", +] + +[[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_core" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" + +[[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 = "rand_pcg" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59cad018caf63deb318e5a4586d99a24424a364f40f1e5778c29aca23f4fc73e" +dependencies = [ + "rand_core 0.6.4", +] + +[[package]] +name = "rand_pcg" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "caa0f4137e1c0a72f4c651489402276c8e8e1cf081f3b0ba156d2cbeef09e86a" +dependencies = [ + "rand_core 0.10.1", +] + +[[package]] +name = "rapidhash" +version = "4.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5da7e78a036ce858e8d55b7e7dc8ba3a88b78350fd2155d3591bbd966b58589e" +dependencies = [ + "rustversion", +] + +[[package]] +name = "raw-window-handle" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" + +[[package]] +name = "rayon" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb39b166781f92d482534ef4b4b1b2568f42613b53e5b6c160e24cfbfa30926d" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "rcgen" +version = "0.14.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57f6d249aad744e274e682777a50283a225a32705394ee6d5fcc01efa25e4055" +dependencies = [ + "pem 3.0.6", + "ring", + "rustls-pki-types", + "time", + "x509-parser", + "yasna", +] + +[[package]] +name = "read-progress-stream" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6435842fc2fea44b528719eb8c32203bbc1bb2f5b619fbe0c0a3d8350fd8d2a8" +dependencies = [ + "bytes", + "futures", + "pin-project-lite", +] + +[[package]] +name = "redox_syscall" +version = "0.5.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" +dependencies = [ + "bitflags 2.13.0", +] + +[[package]] +name = "redox_syscall" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d678d17679829e73d371e96880897e98fee2ded7acc0a50bdf8af2affa4b2fe5" +dependencies = [ + "bitflags 2.13.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.20", +] + +[[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.118", +] + +[[package]] +name = "regex" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a0e75113e14dc5acb068cd0786884f214f1312650a3d36d269f5c4f3cdee8a2" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f388202e4b80542a0921078cc23b6333bcf1409c1e3f86404cae4766a6131db" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" + +[[package]] +name = "reqwest" +version = "0.12.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" +dependencies = [ + "base64 0.22.1", + "bytes", + "cookie", + "cookie_store", + "encoding_rs", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-rustls", + "hyper-util", + "js-sys", + "log", + "mime", + "percent-encoding", + "pin-project-lite", + "quinn", + "rustls", + "rustls-pki-types", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "tokio", + "tokio-rustls", + "tokio-util", + "tower", + "tower-http", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams 0.4.2", + "web-sys", + "webpki-roots 1.0.8", +] + +[[package]] +name = "reqwest" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "219c5811de6525e5416c7d5d53bb656d3afdbc6c5af816e0802bcfa42dbdc1c3" +dependencies = [ + "base64 0.22.1", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-rustls", + "hyper-util", + "js-sys", + "log", + "mime", + "percent-encoding", + "pin-project-lite", + "rustls", + "rustls-pki-types", + "rustls-platform-verifier", + "serde", + "serde_json", + "sync_wrapper", + "tokio", + "tokio-rustls", + "tokio-util", + "tower", + "tower-http", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams 0.5.0", + "web-sys", +] + +[[package]] +name = "rfd" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a15ad77d9e70a92437d8f74c35d99b4e4691128df018833e99f90bcd36152672" +dependencies = [ + "ashpd", + "block2", + "dispatch2", + "glib-sys 0.18.1", + "gobject-sys 0.18.0", + "gtk-sys", + "js-sys", + "log", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", + "pollster", + "raw-window-handle", + "urlencoding", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "windows-sys 0.60.2", +] + +[[package]] +name = "ring" +version = "0.17.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" +dependencies = [ + "cc", + "cfg-if", + "getrandom 0.2.17", + "libc", + "untrusted", + "windows-sys 0.52.0", +] + +[[package]] +name = "rle-decode-fast" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3582f63211428f83597b51b2ddb88e2a91a9d52d12831f9d08f5e624e8977422" + +[[package]] +name = "roaring" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dedc5658c6ecb3bdb5ef5f3295bb9253f42dcf3fd1402c03f6b1f7659c3c4a9" +dependencies = [ + "bytemuck", + "byteorder", +] + +[[package]] +name = "rsa" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8573f03f5883dcaebdfcf4725caa1ecb9c15b2ef50c43a07b816e06799bb12d" +dependencies = [ + "const-oid 0.9.6", + "digest 0.10.7", + "num-bigint-dig", + "num-integer", + "num-traits", + "pkcs1", + "pkcs8 0.10.2", + "rand_core 0.6.4", + "sha2 0.10.9", + "signature 2.2.0", + "spki 0.7.3", + "subtle", + "zeroize", +] + +[[package]] +name = "rust-ini" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "796e8d2b6696392a43bea58116b667fb4c29727dc5abd27d6acf338bb4f688c7" +dependencies = [ + "cfg-if", + "ordered-multimap", +] + +[[package]] +name = "rust-stemmers" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e46a2036019fdb888131db7a4c847a1063a7493f971ed94ea82c67eada63ca54" +dependencies = [ + "serde", + "serde_derive", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b74b56ffa8bb2830709a538c2cbcae9aa062db0d2a42563bfb09bdaae44020eb" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rustc-hash" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b1e7f9a428571be2dc5bc0505c13fb6bf936822b894ec87abf8a08a4e51742d" + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "rustc_version_runtime" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dd18cd2bae1820af0b6ad5e54f4a51d0f3fcc53b05f845675074efcc7af071d" +dependencies = [ + "rustc_version", + "semver", +] + +[[package]] +name = "rusticata-macros" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" +dependencies = [ + "nom 7.1.3", +] + +[[package]] +name = "rustix" +version = "0.38.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" +dependencies = [ + "bitflags 2.13.0", + "errno", + "libc", + "linux-raw-sys 0.4.15", + "windows-sys 0.59.0", +] + +[[package]] +name = "rustix" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" +dependencies = [ + "bitflags 2.13.0", + "errno", + "libc", + "linux-raw-sys 0.12.1", + "windows-sys 0.61.2", +] + +[[package]] +name = "rustls" +version = "0.23.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0283386ce02abc0151e1761d08802dfe86c173b0b494af5cbc086574e453da06" +dependencies = [ + "log", + "once_cell", + "ring", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls-native-certs" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dab5152771c58876a2146916e53e35057e1a4dfa2b9df0f0305b07f611fdea4d" +dependencies = [ + "openssl-probe", + "rustls-pki-types", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-pki-types" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "764899a24af3980067ee14bc143654f297b22eaebfe3c7b6b211920a5a59b046" +dependencies = [ + "web-time", + "zeroize", +] + +[[package]] +name = "rustls-platform-verifier" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d1e2536ce4f35f4846aa13bff16bd0ff40157cdb14cc056c7b14ba41233ba0" +dependencies = [ + "core-foundation 0.10.1", + "core-foundation-sys 0.8.7", + "jni 0.22.4", + "log", + "once_cell", + "rustls", + "rustls-native-certs", + "rustls-platform-verifier-android", + "rustls-webpki", + "security-framework", + "security-framework-sys", + "webpki-root-certs", + "windows-sys 0.61.2", +] + +[[package]] +name = "rustls-platform-verifier-android" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" + +[[package]] +name = "rustls-webpki" +version = "0.103.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e" +dependencies = [ + "ring", + "rustls-pki-types", + "untrusted", +] + +[[package]] +name = "rustversion" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f" + +[[package]] +name = "ryu" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" + +[[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 = "schannel" +version = "0.1.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91c1b7e4904c873ef0710c1f407dde2e6287de2bebc1bbbf7d430bb7cbffd939" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "schemars" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" +dependencies = [ + "dyn-clone", + "schemars_derive 0.8.22", + "serde", + "serde_json", +] + +[[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", + "schemars_derive 1.2.1", + "serde", + "serde_json", + "url", + "uuid 1.24.0", +] + +[[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.118", +] + +[[package]] +name = "schemars_derive" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d115b50f4aaeea07e79c1912f645c7513d81715d0420f8bc77a18c6260b307f" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 2.0.118", +] + +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "sctk-adwaita" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea2a4360b9abcdcee43809e6fc11d6d61ca5d25734026a8fc46c2883eea3f13f" +dependencies = [ + "ab_glyph", + "log", + "memmap2", + "smithay-client-toolkit", + "tiny-skia", +] + +[[package]] +name = "security-framework" +version = "3.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" +dependencies = [ + "bitflags 2.13.0", + "core-foundation 0.10.1", + "core-foundation-sys 0.8.7", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce2691df843ecc5d231c0b14ece2acc3efb62c0a398c7e1d875f3983ce020e3" +dependencies = [ + "core-foundation-sys 0.8.7", + "libc", +] + +[[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 0.29.6", + "derive_more 0.99.20", + "fxhash", + "log", + "phf 0.8.0", + "phf_codegen 0.8.0", + "precomputed-hash", + "servo_arc 0.2.0", + "smallvec", +] + +[[package]] +name = "selectors" +version = "0.38.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8adfa1c298912827b8a28b223b3b874357397ae706e6190acd9bf28cee99114d" +dependencies = [ + "bitflags 2.13.0", + "cssparser 0.37.0", + "derive_more 2.1.1", + "log", + "new_debug_unreachable", + "phf 0.13.1", + "phf_codegen 0.13.1", + "precomputed-hash", + "rustc-hash 2.1.3", + "servo_arc 0.4.3", + "smallvec", +] + +[[package]] +name = "semver" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" +dependencies = [ + "serde", + "serde_core", +] + +[[package]] +name = "sentry" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "989425268ab5c011e06400187eed6c298272f8ef913e49fcadc3fda788b45030" +dependencies = [ + "httpdate", + "reqwest 0.12.28", + "rustls", + "sentry-backtrace", + "sentry-contexts", + "sentry-core", + "sentry-panic", + "sentry-tracing", + "tokio", + "ureq", +] + +[[package]] +name = "sentry-backtrace" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68e299dd3f7bcf676875eee852c9941e1d08278a743c32ca528e2debf846a653" +dependencies = [ + "backtrace", + "regex", + "sentry-core", +] + +[[package]] +name = "sentry-contexts" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fac0c5d6892cd4c414492fc957477b620026fb3411fca9fa12774831da561c88" +dependencies = [ + "hostname", + "libc", + "os_info", + "rustc_version", + "sentry-core", + "uname", +] + +[[package]] +name = "sentry-core" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "deaa38b94e70820ff3f1f9db3c8b0aef053b667be130f618e615e0ff2492cbcc" +dependencies = [ + "rand 0.9.5", + "sentry-types", + "serde", + "serde_json", + "url", +] + +[[package]] +name = "sentry-panic" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b7a23b13c004873de3ce7db86eb0f59fe4adfc655a31f7bbc17fd10bacc9bfe" +dependencies = [ + "sentry-backtrace", + "sentry-core", +] + +[[package]] +name = "sentry-tracing" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fac841c7050aa73fc2bec8f7d8e9cb1159af0b3095757b99820823f3e54e5080" +dependencies = [ + "bitflags 2.13.0", + "sentry-backtrace", + "sentry-core", + "tracing-core", + "tracing-subscriber", +] + +[[package]] +name = "sentry-types" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e477f4d4db08ddb4ab553717a8d3a511bc9e81dde0c808c680feacbb8105c412" +dependencies = [ + "debugid", + "hex", + "rand 0.9.5", + "serde", + "serde_json", + "thiserror 2.0.20", + "time", + "url", + "uuid 1.24.0", +] + +[[package]] +name = "serde" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba" +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.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.3", +] + +[[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.118", +] + +[[package]] +name = "serde_json" +version = "1.0.151" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14" +dependencies = [ + "indexmap 2.14.0", + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "serde_path_to_error" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10a9ff822e371bb5403e391ecd83e182e0e77ba7f6fe0160b795797109d1b457" +dependencies = [ + "itoa", + "serde", + "serde_core", +] + +[[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.118", +] + +[[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.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26" +dependencies = [ + "serde_core", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_with" +version = "3.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76a5c54c7310e7b8b9577c286d7e399ddd876c3e12b3ed917a8aabc4b96e9e8c" +dependencies = [ + "base64 0.22.1", + "bs58", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.14.0", + "schemars 0.9.0", + "schemars 1.2.1", + "serde_core", + "serde_json", + "serde_with_macros", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "3.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84d57bc0c8b9a17920c178daa6bb924850d54a9c97ab45194bb8c17ad66bb660" +dependencies = [ + "darling 0.23.0", + "proc-macro2", + "quote", + "syn 2.0.118", +] + +[[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.118", +] + +[[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 = "servo_arc" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "170fb83ab34de17dc69aa7c67482b22218ddb85da56546f9bd6b929e32a05930" +dependencies = [ + "stable_deref_trait", +] + +[[package]] +name = "sha1" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a978451301f4db1d02937a4ab3ccce137717b81826e79b7d49ffe3244a13c3b8" +dependencies = [ + "cfg-if", + "cpufeatures 0.2.17", + "digest 0.10.7", +] + +[[package]] +name = "sha1" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aacc4cc499359472b4abe1bf11d0b12e688af9a805fa5e3016f9a386dc2d0214" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.0", + "digest 0.11.3", +] + +[[package]] +name = "sha1_smol" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d" + +[[package]] +name = "sha2" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +dependencies = [ + "cfg-if", + "cpufeatures 0.2.17", + "digest 0.10.7", +] + +[[package]] +name = "sha2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "446ba717509524cb3f22f17ecc096f10f4822d76ab5c0b9822c5f9c284e825f4" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.0", + "digest 0.11.3", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shared_child" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e362d9935bc50f019969e2f9ecd66786612daae13e8f277be7bfb66e8bed3f7" +dependencies = [ + "libc", + "sigchld", + "windows-sys 0.60.2", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "shlex" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" + +[[package]] +name = "shuttle" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ab17edba38d63047f46780cf7360acf7467fec2c048928689a5c1dd1c2b4e31" +dependencies = [ + "assoc", + "bitvec", + "cfg-if", + "generator", + "hex", + "owo-colors", + "rand 0.8.7", + "rand_core 0.6.4", + "rand_pcg 0.3.1", + "scoped-tls", + "smallvec", + "tracing", +] + +[[package]] +name = "sigchld" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47106eded3c154e70176fc83df9737335c94ce22f821c32d17ed1db1f83badb1" +dependencies = [ + "libc", + "os_pipe", + "signal-hook", +] + +[[package]] +name = "signal-hook" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2" +dependencies = [ + "libc", + "signal-hook-registry", +] + +[[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 = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest 0.10.7", + "rand_core 0.6.4", +] + +[[package]] +name = "signature" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d567dcbaf0049cb8ac2608a76cd95ff9e4412e1899d389ee400918ca7537f5" +dependencies = [ + "rand_core 0.10.1", +] + +[[package]] +name = "simd-adler32" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214" + +[[package]] +name = "simd_cesu8" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94f90157bb87cddf702797c5dadfa0be7d266cdf49e22da2fcaa32eff75b2c33" +dependencies = [ + "rustc_version", + "simdutf8", +] + +[[package]] +name = "simdutf8" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + +[[package]] +name = "simsimd" +version = "6.5.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4fb3bc3cdce07a7d7d4caa4c54f8aa967f6be41690482b54b24100a2253fa70" +dependencies = [ + "cc", +] + +[[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.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ee5873ec9cce0195efcb7a4e9507a04cd49aec9c83d0389df45b1ef7ba2e649" + +[[package]] +name = "sketches-ddsketch" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05e40b6cf54d988dc1a2223531b969c9a9e30906ad90ef64890c27b4bfbb46ea" +dependencies = [ + "serde", +] + +[[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.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90" + +[[package]] +name = "smithay-client-toolkit" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0512da38f5e2b31201a93524adb8d3136276fa4fe4aafab4e1f727a82b534cc0" +dependencies = [ + "bitflags 2.13.0", + "calloop", + "calloop-wayland-source", + "cursor-icon", + "libc", + "log", + "memmap2", + "rustix 1.1.4", + "thiserror 2.0.20", + "wayland-backend", + "wayland-client", + "wayland-csd-frame", + "wayland-cursor", + "wayland-protocols", + "wayland-protocols-experimental", + "wayland-protocols-misc", + "wayland-protocols-wlr", + "wayland-scanner", + "xkeysym", +] + +[[package]] +name = "smol_str" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4aaa7368fcf4852a4c2dd92df0cace6a71f2091ca0a23391ce7f3a31833f1523" +dependencies = [ + "borsh", + "serde_core", +] + +[[package]] +name = "snafu" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e84b3f4eacbf3a1ce05eac6763b4d629d60cbc94d632e4092c54ade71f1e1a2" +dependencies = [ + "snafu-derive", +] + +[[package]] +name = "snafu-derive" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1c97747dbf44bb1ca44a561ece23508e99cb592e862f22222dcf42f51d1e451" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.118", +] + +[[package]] +name = "socket2" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3d1e2c7f27f8d4cb10542a02c49005dbd6e93095799d6f3be745fae9f8fedd4" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + +[[package]] +name = "socks" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0c3dbbd9ae980613c6dd8e28a9407b50509d3803b57624d5dfe8315218cd58b" +dependencies = [ + "byteorder", + "libc", + "winapi", +] + +[[package]] +name = "softaes" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45e14297decde697ddf377c25752aead0927d5cfc89c2684d2af96901a4ceeea" + +[[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 0.5.18", + "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 0.18.5", + "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 0.18.1", + "glib-sys 0.18.1", + "gobject-sys 0.18.0", + "libc", + "system-deps 6.2.2", +] + +[[package]] +name = "spin" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3763264f6b73151db08c50ff20d7d8a0b8796e021cdea7ceedad07b80155fa0e" + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der 0.7.10", +] + +[[package]] +name = "spki" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d9efca8738c78ee9484207732f728b1ef517bbb1833d6fc0879ca898a522f6f" +dependencies = [ + "base64ct", + "der 0.8.1", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" + +[[package]] +name = "strict-num" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731" + +[[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" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a18596f8c785a729f2819c0f6a7eae6ebeebdfffbfe4214ae6b087f690e31901" +dependencies = [ + "new_debug_unreachable", + "parking_lot", + "phf_shared 0.13.1", + "precomputed-hash", +] + +[[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 = "string_cache_codegen" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "585635e46db231059f76c5849798146164652513eb9e8ab2685939dd90f29b69" +dependencies = [ + "phf_generator 0.13.1", + "phf_shared 0.13.1", + "proc-macro2", + "quote", +] + +[[package]] +name = "stringprep" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b4df3d392d81bd458a8a621b8bffbd2302a12ffe288a9d931670948749463b1" +dependencies = [ + "unicode-bidi", + "unicode-normalization", + "unicode-properties", +] + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "strum" +version = "0.26.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.118", +] + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "swift-rs" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e45c444e496845d3f2a351146bff59aae4975b2280238df1dfaa0c7d1846f38e" +dependencies = [ + "base64 0.21.7", + "serde", + "serde_json", +] + +[[package]] +name = "symlink" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7973cce6668464ea31f176d85b13c7ab3bba2cb3b77a2ed26abd7801688010a" + +[[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.118" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9ae57f904213ebb649ce6895b8a66c66f0203b9319718f69a5612a065b1422" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53e9bae58849f64dfa4f5d5ae372c8341f7305f82a3868709269343628b659a3" +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.118", +] + +[[package]] +name = "sys-locale" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eab9a99a024a169fe8a903cf9d4a3b3601109bcc13bd9e3c6fff259138626c4" +dependencies = [ + "libc", +] + +[[package]] +name = "sysinfo" +version = "0.34.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4b93974b3d3aeaa036504b8eefd4c039dced109171c1ae973f1dc63b2c7e4b2" +dependencies = [ + "libc", + "memchr", + "ntapi", + "objc2-core-foundation", + "windows 0.57.0", +] + +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation 0.9.4", + "system-configuration-sys 0.5.0", +] + +[[package]] +name = "system-configuration" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a13f3d0daba03132c0aa9767f98351b3488edc2c100cda2d2ec2b04f3d8d3c8b" +dependencies = [ + "bitflags 2.13.0", + "core-foundation 0.9.4", + "system-configuration-sys 0.6.0", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys 0.8.7", + "libc", +] + +[[package]] +name = "system-configuration-sys" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" +dependencies = [ + "core-foundation-sys 0.8.7", + "libc", +] + +[[package]] +name = "system-deps" +version = "6.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" +dependencies = [ + "cfg-expr 0.15.8", + "heck 0.5.0", + "pkg-config", + "toml 0.8.2", + "version-compare", +] + +[[package]] +name = "system-deps" +version = "7.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "396a35feb67335377e0251fcbc1092fc85c484bd4e3a7a54319399da127796e7" +dependencies = [ + "cfg-expr 0.20.8", + "heck 0.5.0", + "pkg-config", + "toml 1.1.2+spec-1.1.0", + "version-compare", +] + +[[package]] +name = "tantivy" +version = "0.26.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edde6a10743fff00a4e1a8c9ef020bf5f3cbad301b7d2d39f2b07f123c4eac07" +dependencies = [ + "aho-corasick", + "arc-swap", + "base64 0.22.1", + "bitpacking", + "bon", + "byteorder", + "census", + "crc32fast", + "crossbeam-channel", + "datasketches", + "downcast-rs 2.0.2", + "fastdivide", + "fnv", + "fs4", + "htmlescape", + "itertools 0.14.0", + "levenshtein_automata", + "log", + "lru 0.16.4", + "lz4_flex", + "measure_time", + "memmap2", + "once_cell", + "oneshot", + "rayon", + "regex", + "rust-stemmers", + "rustc-hash 2.1.3", + "serde", + "serde_json", + "sketches-ddsketch", + "smallvec", + "tantivy-bitpacker", + "tantivy-columnar", + "tantivy-common", + "tantivy-fst", + "tantivy-query-grammar", + "tantivy-stacker", + "tantivy-tokenizer-api", + "tempfile", + "thiserror 2.0.20", + "time", + "typetag", + "uuid 1.24.0", + "winapi", +] + +[[package]] +name = "tantivy-bitpacker" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fed3d674429bcd2de5d0a6d1aa5495fed8afd9c5ecce993019caf7615f53fa4" +dependencies = [ + "bitpacking", +] + +[[package]] +name = "tantivy-columnar" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c57166f5bcfd478f370ab8445afb4678dce44801fa5ce5c451aaf8595583c5dc" +dependencies = [ + "downcast-rs 2.0.2", + "fastdivide", + "itertools 0.14.0", + "serde", + "tantivy-bitpacker", + "tantivy-common", + "tantivy-sstable", + "tantivy-stacker", +] + +[[package]] +name = "tantivy-common" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbf10915aa75da3c3b0d58b58853d2e889efbaf32d4982a4c3715dde6bba23e5" +dependencies = [ + "async-trait", + "byteorder", + "ownedbytes", + "serde", + "time", +] + +[[package]] +name = "tantivy-fst" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d60769b80ad7953d8a7b2c70cdfe722bbcdcac6bccc8ac934c40c034d866fc18" +dependencies = [ + "byteorder", + "regex-syntax", + "utf8-ranges", +] + +[[package]] +name = "tantivy-query-grammar" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfadb8526b6da90704feb293b0701a6aae62ea14983143344be2dc5ce30f1d82" +dependencies = [ + "fnv", + "nom 7.1.3", + "ordered-float", + "serde", + "serde_json", +] + +[[package]] +name = "tantivy-sstable" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a2cfc3ac5164cbadc28965ffb145a8f47582a60ae5897859ad8d4316596c606" +dependencies = [ + "futures-util", + "itertools 0.14.0", + "tantivy-bitpacker", + "tantivy-common", + "tantivy-fst", + "zstd", +] + +[[package]] +name = "tantivy-stacker" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6cbb051742da9d53ca9e8fff43a9b10e319338b24e2c0e15d0372df19ffeb951" +dependencies = [ + "murmurhash32", + "tantivy-common", +] + +[[package]] +name = "tantivy-tokenizer-api" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac258c2c6390673f2685813afeeafcb8c4e0ee7de8dd3fc46838dcc37263f98" +dependencies = [ + "serde", +] + +[[package]] +name = "tao" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d12c8607b01516c5d4a37e471a9cfb40b4a25cebce8fecbc6a559e125e51b6b" +dependencies = [ + "bitflags 2.13.0", + "block2", + "core-foundation 0.10.1", + "core-graphics 0.25.0", + "crossbeam-channel", + "dbus", + "dispatch2", + "dlopen2 0.8.2", + "dpi", + "gdkwayland-sys", + "gdkx11-sys", + "gtk", + "jni 0.21.1", + "libc", + "log", + "ndk", + "ndk-context", + "ndk-sys", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "objc2-ui-kit", + "once_cell", + "parking_lot", + "percent-encoding", + "raw-window-handle", + "tao-macros", + "unicode-segmentation", + "url", + "windows 0.62.2", + "windows-core 0.62.2", + "windows-version", + "x11-dl", +] + +[[package]] +name = "tao-macros" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f7eeb6d99155545da6150a1795945f16ac9c178deb2a5f2e74d776107bd5849" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.118", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "tar" +version = "0.4.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f6221d9a6003c78398e3b239969f352578258df48c8eb051caadae0015bc840" +dependencies = [ + "filetime", + "libc", + "xattr", +] + +[[package]] +name = "target-lexicon" +version = "0.12.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" + +[[package]] +name = "target-lexicon" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca" + +[[package]] +name = "tauri" +version = "2.11.5" +source = "git+https://github.com/readest/tauri?branch=feat/cef#93e5453b9b95aa2f175d63d926e2e268afb4bbde" +dependencies = [ + "anyhow", + "bytes", + "cookie", + "dirs", + "dunce", + "embed_plist", + "getrandom 0.3.4", + "glob", + "gtk", + "heck 0.5.0", + "http", + "http-range", + "jni 0.21.1", + "libc", + "log", + "mime", + "muda", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "objc2-ui-kit", + "objc2-web-kit", + "percent-encoding", + "plist", + "raw-window-handle", + "reqwest 0.13.4", + "serde", + "serde_json", + "serde_repr", + "serialize-to-javascript", + "swift-rs", + "tauri-build", + "tauri-macros", + "tauri-runtime", + "tauri-runtime-cef", + "tauri-runtime-wry", + "tauri-utils", + "thiserror 2.0.20", + "tokio", + "tray-icon", + "url", + "webkit2gtk", + "webview2-com", + "window-vibrancy", + "windows 0.61.3", +] + +[[package]] +name = "tauri-build" +version = "2.6.3" +source = "git+https://github.com/readest/tauri?branch=feat/cef#93e5453b9b95aa2f175d63d926e2e268afb4bbde" +dependencies = [ + "anyhow", + "cargo_toml", + "dirs", + "glob", + "heck 0.5.0", + "json-patch", + "schemars 1.2.1", + "semver", + "serde", + "serde_json", + "tauri-utils", + "tauri-winres", + "walkdir", +] + +[[package]] +name = "tauri-codegen" +version = "2.6.3" +source = "git+https://github.com/readest/tauri?branch=feat/cef#93e5453b9b95aa2f175d63d926e2e268afb4bbde" +dependencies = [ + "base64 0.22.1", + "brotli", + "ico", + "json-patch", + "plist", + "png 0.18.1", + "proc-macro2", + "quote", + "semver", + "serde", + "serde_json", + "sha2 0.10.9", + "syn 2.0.118", + "tauri-utils", + "thiserror 2.0.20", + "time", + "url", + "uuid 1.24.0", + "walkdir", +] + +[[package]] +name = "tauri-macros" +version = "2.6.3" +source = "git+https://github.com/readest/tauri?branch=feat/cef#93e5453b9b95aa2f175d63d926e2e268afb4bbde" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.118", + "tauri-codegen", + "tauri-utils", +] + +[[package]] +name = "tauri-plugin" +version = "2.6.3" +source = "git+https://github.com/readest/tauri?branch=feat/cef#93e5453b9b95aa2f175d63d926e2e268afb4bbde" +dependencies = [ + "anyhow", + "glob", + "plist", + "schemars 1.2.1", + "serde", + "serde_json", + "tauri-utils", + "walkdir", +] + +[[package]] +name = "tauri-plugin-biometric" +version = "2.3.2" +source = "git+https://github.com/readest/tauri-plugins-workspace?branch=feat/cef#1423992771e0b57582ca3b06a6adc46ec26aa784" +dependencies = [ + "log", + "serde", + "serde_json", + "serde_repr", + "tauri", + "tauri-plugin", + "thiserror 2.0.20", +] + +[[package]] +name = "tauri-plugin-cli" +version = "2.4.1" +source = "git+https://github.com/readest/tauri-plugins-workspace?branch=feat/cef#1423992771e0b57582ca3b06a6adc46ec26aa784" +dependencies = [ + "clap", + "log", + "serde", + "serde_json", + "tauri", + "tauri-plugin", + "thiserror 2.0.20", +] + +[[package]] +name = "tauri-plugin-clipboard-manager" +version = "2.3.2" +source = "git+https://github.com/readest/tauri-plugins-workspace?branch=feat/cef#1423992771e0b57582ca3b06a6adc46ec26aa784" +dependencies = [ + "arboard", + "log", + "serde", + "serde_json", + "tauri", + "tauri-plugin", + "thiserror 2.0.20", +] + +[[package]] +name = "tauri-plugin-deep-link" +version = "2.4.9" +source = "git+https://github.com/readest/tauri-plugins-workspace?branch=feat/cef#1423992771e0b57582ca3b06a6adc46ec26aa784" +dependencies = [ + "dunce", + "plist", + "rust-ini", + "serde", + "serde_json", + "tauri", + "tauri-plugin", + "tauri-utils", + "thiserror 2.0.20", + "tracing", + "url", + "windows-registry", + "windows-result 0.3.4", +] + +[[package]] +name = "tauri-plugin-device-info" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4c8d9a6d11719b36ea2af6c94e4d8bcc50b6ebe1b7064ad17ec02dd0b23aae9" +dependencies = [ + "battery", + "core-graphics 0.25.0", + "default-net", + "libc", + "local-ip-address", + "serde", + "serde_json", + "sysinfo", + "tauri", + "tauri-plugin", + "thiserror 2.0.20", + "winapi", + "wmi", +] + +[[package]] +name = "tauri-plugin-dialog" +version = "2.7.1" +source = "git+https://github.com/readest/tauri-plugins-workspace?branch=feat/cef#1423992771e0b57582ca3b06a6adc46ec26aa784" +dependencies = [ + "log", + "raw-window-handle", + "rfd", + "serde", + "serde_json", + "tauri", + "tauri-plugin", + "tauri-plugin-fs", + "thiserror 2.0.20", + "url", +] + +[[package]] +name = "tauri-plugin-fs" +version = "2.5.1" +source = "git+https://github.com/readest/tauri-plugins-workspace?branch=feat/cef#1423992771e0b57582ca3b06a6adc46ec26aa784" +dependencies = [ + "anyhow", + "dunce", + "glob", + "log", + "objc2-foundation", + "percent-encoding", + "schemars 1.2.1", + "serde", + "serde_json", + "serde_repr", + "tauri", + "tauri-plugin", + "thiserror 2.0.20", + "url", +] + +[[package]] +name = "tauri-plugin-haptics" +version = "2.3.2" +source = "git+https://github.com/readest/tauri-plugins-workspace?branch=feat/cef#1423992771e0b57582ca3b06a6adc46ec26aa784" +dependencies = [ + "log", + "serde", + "serde_json", + "tauri", + "tauri-plugin", + "thiserror 2.0.20", +] + +[[package]] +name = "tauri-plugin-http" +version = "2.5.9" +source = "git+https://github.com/readest/tauri-plugins-workspace?branch=feat/cef#1423992771e0b57582ca3b06a6adc46ec26aa784" +dependencies = [ + "bytes", + "cookie_store", + "data-url", + "http", + "regex", + "reqwest 0.12.28", + "schemars 1.2.1", + "serde", + "serde_json", + "tauri", + "tauri-plugin", + "tauri-plugin-fs", + "thiserror 2.0.20", + "tokio", + "url", + "urlpattern 0.3.0", +] + +[[package]] +name = "tauri-plugin-log" +version = "2.8.0" +source = "git+https://github.com/readest/tauri-plugins-workspace?branch=feat/cef#1423992771e0b57582ca3b06a6adc46ec26aa784" +dependencies = [ + "android_logger", + "fern", + "log", + "objc2", + "objc2-foundation", + "serde", + "serde_json", + "serde_repr", + "swift-rs", + "tauri", + "tauri-plugin", + "thiserror 2.0.20", + "time", +] + +[[package]] +name = "tauri-plugin-native-bridge" +version = "0.1.0" +dependencies = [ + "apple-native-keyring-store", + "base64 0.22.1", + "block", + "cocoa", + "dbus-secret-service-keyring-store", + "font-enumeration", + "keyring-core", + "objc", + "schemars 0.8.22", + "serde", + "serde_json", + "tauri", + "tauri-plugin", + "thiserror 2.0.20", + "windows-native-keyring-store", +] + +[[package]] +name = "tauri-plugin-native-tts" +version = "0.1.0" +dependencies = [ + "schemars 0.8.22", + "serde", + "tauri", + "tauri-plugin", + "thiserror 2.0.20", +] + +[[package]] +name = "tauri-plugin-oauth" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de12964768a2beb9d673580694f45211bb354336e7b127476bde807093c047e3" +dependencies = [ + "httparse", + "log", + "serde", + "tauri", + "tauri-plugin", + "thiserror 2.0.20", + "url", +] + +[[package]] +name = "tauri-plugin-opener" +version = "2.5.4" +source = "git+https://github.com/readest/tauri-plugins-workspace?branch=feat/cef#1423992771e0b57582ca3b06a6adc46ec26aa784" +dependencies = [ + "dunce", + "glob", + "objc2-app-kit", + "objc2-foundation", + "open", + "schemars 1.2.1", + "serde", + "serde_json", + "tauri", + "tauri-plugin", + "thiserror 2.0.20", + "url", + "windows 0.61.3", + "zbus", +] + +[[package]] +name = "tauri-plugin-os" +version = "2.3.2" +source = "git+https://github.com/readest/tauri-plugins-workspace?branch=feat/cef#1423992771e0b57582ca3b06a6adc46ec26aa784" +dependencies = [ + "gethostname", + "log", + "os_info", + "serde", + "serde_json", + "serialize-to-javascript", + "sys-locale", + "tauri", + "tauri-plugin", + "thiserror 2.0.20", +] + +[[package]] +name = "tauri-plugin-persisted-scope" +version = "2.3.7" +source = "git+https://github.com/readest/tauri-plugins-workspace?branch=feat/cef#1423992771e0b57582ca3b06a6adc46ec26aa784" +dependencies = [ + "aho-corasick", + "bincode", + "log", + "serde", + "serde_json", + "tauri", + "tauri-plugin-fs", + "thiserror 2.0.20", +] + +[[package]] +name = "tauri-plugin-process" +version = "2.3.1" +source = "git+https://github.com/readest/tauri-plugins-workspace?branch=feat/cef#1423992771e0b57582ca3b06a6adc46ec26aa784" +dependencies = [ + "tauri", + "tauri-plugin", +] + +[[package]] +name = "tauri-plugin-sentry" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7432b519b6d2d027082a940783c61ba9b684b38d8df7558cd5f924d87009b295" +dependencies = [ + "base64 0.22.1", + "schemars 0.8.22", + "sentry", + "serde", + "tauri", + "tauri-plugin", + "thiserror 2.0.20", +] + +[[package]] +name = "tauri-plugin-sharekit" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "875bdd9fb587e38505db5394df2542f2af4f63d5b2b6356728c9d73692c26900" +dependencies = [ + "log", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", + "serde", + "serde_json", + "serde_repr", + "tauri", + "tauri-plugin", + "thiserror 2.0.20", + "windows 0.61.3", + "windows-collections 0.2.0", +] + +[[package]] +name = "tauri-plugin-shell" +version = "2.3.5" +source = "git+https://github.com/readest/tauri-plugins-workspace?branch=feat/cef#1423992771e0b57582ca3b06a6adc46ec26aa784" +dependencies = [ + "encoding_rs", + "log", + "open", + "os_pipe", + "regex", + "schemars 1.2.1", + "serde", + "serde_json", + "shared_child", + "tauri", + "tauri-plugin", + "thiserror 2.0.20", + "tokio", +] + +[[package]] +name = "tauri-plugin-sign-in-with-apple" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9402eb8a70fdff5127fccc1f1666ebb06b5efc10e0eb656d8a70c798e26142e" +dependencies = [ + "serde", + "tauri", + "tauri-plugin", + "thiserror 2.0.20", +] + +[[package]] +name = "tauri-plugin-single-instance" +version = "2.4.2" +source = "git+https://github.com/readest/tauri-plugins-workspace?branch=feat/cef#1423992771e0b57582ca3b06a6adc46ec26aa784" +dependencies = [ + "serde", + "serde_json", + "tauri", + "thiserror 2.0.20", + "tracing", + "windows-sys 0.60.2", + "zbus", +] + +[[package]] +name = "tauri-plugin-turso" +version = "0.1.0" +dependencies = [ + "futures", + "indexmap 2.14.0", + "serde", + "serde_json", + "tauri", + "tauri-plugin", + "thiserror 2.0.20", + "tokio", + "turso", + "turso_core", +] + +[[package]] +name = "tauri-plugin-updater" +version = "2.10.1" +source = "git+https://github.com/readest/tauri-plugins-workspace?branch=feat/cef#1423992771e0b57582ca3b06a6adc46ec26aa784" +dependencies = [ + "base64 0.22.1", + "dirs", + "flate2", + "futures-util", + "http", + "infer 0.19.0", + "log", + "minisign-verify", + "osakit", + "percent-encoding", + "reqwest 0.13.4", + "rustls", + "semver", + "serde", + "serde_json", + "tar", + "tauri", + "tauri-plugin", + "tempfile", + "thiserror 2.0.20", + "time", + "tokio", + "url", + "windows-sys 0.60.2", + "zip 4.6.1", +] + +[[package]] +name = "tauri-plugin-webdriver" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a130e5cc896b52a87d618b53e1ba025954af7c004b8781a4ddee7298f7b3749a" +dependencies = [ + "async-trait", + "axum", + "base64 0.22.1", + "block2", + "cairo-rs", + "glib 0.21.5", + "gtk", + "javascriptcore-rs", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "objc2-web-kit", + "serde", + "serde_json", + "tauri", + "tauri-plugin", + "tempfile", + "thiserror 2.0.20", + "tokio", + "tracing", + "uuid 1.24.0", + "webkit2gtk", + "webview2-com", + "windows 0.61.3", + "windows-core 0.61.2", +] + +[[package]] +name = "tauri-plugin-websocket" +version = "2.4.2" +source = "git+https://github.com/readest/tauri-plugins-workspace?branch=feat/cef#1423992771e0b57582ca3b06a6adc46ec26aa784" +dependencies = [ + "futures-util", + "http", + "log", + "rand 0.9.5", + "rustls", + "serde", + "serde_json", + "tauri", + "tauri-plugin", + "thiserror 2.0.20", + "tokio", + "tokio-tungstenite", +] + +[[package]] +name = "tauri-plugin-webview-upgrade" +version = "0.1.0" +dependencies = [ + "tauri", + "tauri-plugin", +] + +[[package]] +name = "tauri-plugin-window-state" +version = "2.4.1" +source = "git+https://github.com/readest/tauri-plugins-workspace?branch=feat/cef#1423992771e0b57582ca3b06a6adc46ec26aa784" +dependencies = [ + "bitflags 2.13.0", + "log", + "serde", + "serde_json", + "tauri", + "tauri-plugin", + "thiserror 2.0.20", +] + +[[package]] +name = "tauri-runtime" +version = "2.11.3" +source = "git+https://github.com/readest/tauri?branch=feat/cef#93e5453b9b95aa2f175d63d926e2e268afb4bbde" +dependencies = [ + "cookie", + "dpi", + "gtk", + "http", + "jni 0.21.1", + "objc2", + "objc2-ui-kit", + "raw-window-handle", + "serde", + "serde_json", + "tauri-utils", + "thiserror 2.0.20", + "url", + "windows 0.61.3", +] + +[[package]] +name = "tauri-runtime-cef" +version = "0.1.0" +source = "git+https://github.com/readest/tauri?branch=feat/cef#93e5453b9b95aa2f175d63d926e2e268afb4bbde" +dependencies = [ + "base64 0.22.1", + "cef", + "cef-dll-sys", + "dioxus-debug-cell", + "dirs", + "dlopen2 0.8.2", + "gtk", + "html5ever 0.29.1", + "http", + "kuchikiki", + "libc", + "log", + "objc2", + "objc2-app-kit", + "objc2-application-services", + "objc2-foundation", + "objc2-quartz-core", + "raw-window-handle", + "serde", + "serde_json", + "sha2 0.10.9", + "softbuffer", + "tauri-runtime", + "tauri-utils", + "url", + "windows 0.61.3", + "winit", + "x11-dl", +] + +[[package]] +name = "tauri-runtime-wry" +version = "2.11.4" +source = "git+https://github.com/readest/tauri?branch=feat/cef#93e5453b9b95aa2f175d63d926e2e268afb4bbde" +dependencies = [ + "gtk", + "http", + "jni 0.21.1", + "log", + "objc2", + "objc2-app-kit", + "objc2-web-kit", + "once_cell", + "percent-encoding", + "raw-window-handle", + "softbuffer", + "tao", + "tauri-runtime", + "tauri-utils", + "url", + "webkit2gtk", + "webview2-com", + "windows 0.61.3", + "wry", +] + +[[package]] +name = "tauri-utils" +version = "2.9.3" +source = "git+https://github.com/readest/tauri?branch=feat/cef#93e5453b9b95aa2f175d63d926e2e268afb4bbde" +dependencies = [ + "anyhow", + "brotli", + "cargo_metadata 0.19.2", + "ctor", + "dom_query", + "dunce", + "glob", + "html5ever 0.29.1", + "http", + "infer 0.22.0", + "json-patch", + "kuchikiki", + "log", + "memchr", + "phf 0.13.1", + "plist", + "proc-macro2", + "quote", + "regex", + "schemars 1.2.1", + "semver", + "serde", + "serde-untagged", + "serde_json", + "serde_with", + "swift-rs", + "thiserror 2.0.20", + "toml 1.1.2+spec-1.1.0", + "url", + "urlpattern 0.6.0", + "uuid 1.24.0", + "walkdir", +] + +[[package]] +name = "tauri-winres" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc65d45c68858bfe420dd29e834b5d15dbecf8a07a8a16cf4d532c7b1f69d4b6" +dependencies = [ + "dunce", + "embed-resource", + "toml 1.1.2+spec-1.1.0", +] + +[[package]] +name = "tempfile" +version = "3.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" +dependencies = [ + "fastrand", + "getrandom 0.4.3", + "once_cell", + "rustix 1.1.4", + "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 = "tendril" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fed54709c5b3a53d09bb1c113ea4f5ceafd1e772ddcb0030a82e1d56c087b08" +dependencies = [ + "new_debug_unreachable", +] + +[[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.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec86235f5fcc2a73650310756d2ac5b138a5780bbbdfae3eeccec992c435ba4f" +dependencies = [ + "thiserror-impl 2.0.20", +] + +[[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.118", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.3", +] + +[[package]] +name = "thread_local" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ad99c4c6d32803332c548b1af0540b357b3f5fc0be8f6c6bfe8b2e6ae784070" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "tiff" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b63feaf3343d35b6ca4d50483f94843803b0f51634937cc2ec519fc32232bc52" +dependencies = [ + "fax", + "flate2", + "half", + "quick-error", + "weezl", + "zune-jpeg", +] + +[[package]] +name = "time" +version = "0.3.55" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdb87b95ec50ddfa440816d227a17b2ccbdda963a316a727fda0fc4334f7d134" +dependencies = [ + "deranged", + "libc", + "num-conv", + "num_threads", + "powerfmt", + "serde_core", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1c906769ad99c88eaa54e728060edef082f8e358ff32030cb7c7d315e81109" + +[[package]] +name = "time-macros" +version = "0.2.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e689342a48d2ea927c87ea50cabf8594854bf940e9310208848d680d668ed85" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + +[[package]] +name = "tiny-skia" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47ffee5eaaf5527f630fb0e356b90ebdec84d5d18d937c5e440350f88c5a91ea" +dependencies = [ + "arrayref", + "arrayvec", + "bytemuck", + "cfg-if", + "log", + "tiny-skia-path", +] + +[[package]] +name = "tiny-skia-path" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edca365c3faccca67d06593c5980fa6c57687de727a03131735bb85f01fdeeb9" +dependencies = [ + "arrayref", + "bytemuck", + "strict-num", +] + +[[package]] +name = "tinystr" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tinyvec" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb4ebadaa0af04fab11ae01eb5f9fdb5f9c5b875506e210e71c07873528baa7f" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "202caea871b69668250d242070849eb495be178ed697a3e98aebce5bc81a0bed" +dependencies = [ + "bytes", + "libc", + "mio", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "tracing", + "windows-sys 0.61.2", +] + +[[package]] +name = "tokio-macros" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "385a6cb71ab9ab790c5fe8d67f1645e6c450a7ce006a33de03daa956cf70a496" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.118", +] + +[[package]] +name = "tokio-rustls" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" +dependencies = [ + "rustls", + "tokio", +] + +[[package]] +name = "tokio-stream" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3d06f0b082ba57c26b79407372e57cf2a1e28124f78e9479fe80322cf53420b" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-tungstenite" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f72a05e828585856dacd553fba484c242c46e391fb0e58917c942ee9202915c" +dependencies = [ + "futures-util", + "log", + "rustls", + "rustls-pki-types", + "tokio", + "tokio-rustls", + "tungstenite 0.29.0", + "webpki-roots 0.26.11", +] + +[[package]] +name = "tokio-util" +version = "0.7.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "494815d09bf52b5548659851081238f0ca39ff638363907596da739561c62c52" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "futures-util", + "libc", + "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 = "1.1.2+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81f3d15e84cbcd896376e6730314d59fb5a87f31e4b038454184435cd57defee" +dependencies = [ + "indexmap 2.14.0", + "serde_core", + "serde_spanned 1.1.1", + "toml_datetime 1.1.1+spec-1.1.0", + "toml_parser", + "toml_writer", + "winnow 1.0.3", +] + +[[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 = "1.1.1+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" +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.14.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.14.0", + "serde", + "serde_spanned 0.6.9", + "toml_datetime 0.6.3", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.25.12+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2153edc6955a6c354fad8f5efd38b6a8769bdccf9fe50f8e1329f81b0baa5d7" +dependencies = [ + "indexmap 2.14.0", + "toml_datetime 1.1.1+spec-1.1.0", + "toml_parser", + "winnow 1.0.3", +] + +[[package]] +name = "toml_parser" +version = "1.1.2+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" +dependencies = [ + "winnow 1.0.3", +] + +[[package]] +name = "toml_writer" +version = "1.1.1+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "756daf9b1013ebe47a8776667b466417e2d4c5679d441c26230efd9ef78692db" + +[[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", + "tracing", +] + +[[package]] +name = "tower-http" +version = "0.6.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cfcf7e2740e6fc6d4d688b4ef00650406bb94adf4731e43c096c3a19fe40840" +dependencies = [ + "bitflags 2.13.0", + "bytes", + "futures-util", + "http", + "http-body", + "pin-project-lite", + "tower", + "tower-layer", + "tower-service", + "url", +] + +[[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 = [ + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-appender" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "050686193eb999b4bb3bc2acfa891a13da00f79734704c4b8b4ef1a10b368a3c" +dependencies = [ + "crossbeam-channel", + "symlink", + "thiserror 2.0.20", + "time", + "tracing-subscriber", +] + +[[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.118", +] + +[[package]] +name = "tracing-core" +version = "0.1.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7f578e5945fb242538965c2d0b04418d38ec25c79d160cd279bf0731c8d319" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex-automata", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "tray-icon" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65ba1e5f6b9ef9fd87e21b9c6f351554dbd717960089168fcfdef854686961dc" +dependencies = [ + "crossbeam-channel", + "dirs", + "libappindicator", + "muda", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-foundation", + "once_cell", + "png 0.18.1", + "serde", + "thiserror 2.0.20", + "windows-sys 0.61.2", +] + +[[package]] +name = "tree_magic_mini" +version = "3.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8765b90061cba6c22b5831f675da109ae5561588290f9fa2317adab2714d5a6" +dependencies = [ + "memchr", + "nom 8.0.0", + "petgraph", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "ttf-parser" +version = "0.25.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2df906b07856748fa3f6e0ad0cbaa047052d4a7dd609e231c4f72cee8c36f31" + +[[package]] +name = "tungstenite" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c01152af293afb9c7c2a57e4b559c5620b421f6d133261c60dd2d0cdb38e6b8" +dependencies = [ + "bytes", + "data-encoding", + "http", + "httparse", + "log", + "rand 0.9.5", + "rustls", + "rustls-pki-types", + "sha1 0.10.7", + "thiserror 2.0.20", +] + +[[package]] +name = "tungstenite" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e48ac77174b19c110a50ab2128b24215ac9cb40e0e12e093fb602d175c569d22" +dependencies = [ + "bytes", + "data-encoding", + "http", + "httparse", + "log", + "rand 0.10.2", + "sha1 0.11.0", + "thiserror 2.0.20", +] + +[[package]] +name = "turso" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "832bb70436d4b4d3ed45285c5c6abd62328d5e2486297b32cf2b0812abeba6d4" +dependencies = [ + "thiserror 2.0.20", + "tracing", + "tracing-subscriber", + "turso_core", + "turso_sdk_kit", + "turso_sync_sdk_kit", +] + +[[package]] +name = "turso_core" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba8ef95330369724a1829b20dc1b728d644eaeb051891971b5d2b5617337a84b" +dependencies = [ + "aegis", + "aes", + "aes-gcm", + "antithesis_sdk", + "arc-swap", + "bigdecimal", + "bitflags 2.13.0", + "branches", + "bumpalo", + "bytemuck", + "cfg_aliases", + "cfg_block", + "chrono", + "crc32c", + "crossbeam-skiplist", + "either", + "fallible-iterator", + "fastbloom", + "hex", + "intrusive-collections", + "io-uring", + "libc", + "libloading 0.8.9", + "libm", + "loom", + "miette", + "num-bigint", + "num-traits", + "pack1", + "parking_lot", + "pastey", + "polling", + "rand 0.9.5", + "rapidhash", + "regex", + "regex-syntax", + "roaring", + "rustc-hash 2.1.3", + "rustix 1.1.4", + "ryu", + "serde_json", + "shuttle", + "simsimd", + "smallvec", + "strum", + "strum_macros", + "tantivy", + "tempfile", + "thiserror 2.0.20", + "tracing", + "tracing-subscriber", + "turso_ext", + "turso_macros", + "turso_parser", + "twox-hash", + "uncased", + "uuid 1.24.0", + "windows-sys 0.61.2", +] + +[[package]] +name = "turso_ext" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9a47927d766b9ae7e3adf092d5e150dce80533615edc502641797878f190080" +dependencies = [ + "chrono", + "getrandom 0.4.3", + "turso_macros", +] + +[[package]] +name = "turso_macros" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0cdc6ae079c61aa21a89b595a4d0e19d9d848a2658542252e82f930c57c3d87" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.118", +] + +[[package]] +name = "turso_parser" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54b94707e5605411cddbd5a1bd6cc2d6b72181b02223b36b37ba350ed6b71877" +dependencies = [ + "bitflags 2.13.0", + "memchr", + "miette", + "strum", + "strum_macros", + "thiserror 2.0.20", + "turso_macros", +] + +[[package]] +name = "turso_sdk_kit" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12a86ce113e5dcedeaad7809d9fa1dc00f837f40ccd8012ac1d2144c57672a34" +dependencies = [ + "bindgen", + "env_logger", + "parking_lot", + "tracing", + "tracing-appender", + "tracing-subscriber", + "turso_core", + "turso_sdk_kit_macros", +] + +[[package]] +name = "turso_sdk_kit_macros" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fca6ee03a3dc5a48a7a63ddd2c8f41aa7bb5195eb96f6a29831447c8cb3d841a" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.118", +] + +[[package]] +name = "turso_sync_engine" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c58fe60f17b694f91bd278e93aceca10fb340950f6a8f1aedef11c28b50c4b8" +dependencies = [ + "base64 0.22.1", + "bytes", + "genawaiter", + "http", + "libc", + "prost", + "roaring", + "serde", + "serde_json", + "thiserror 2.0.20", + "tracing", + "turso_core", + "turso_parser", + "uuid 1.24.0", +] + +[[package]] +name = "turso_sync_sdk_kit" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4512c7b28bb3bc09be1ba480ee60234ed9bbeb6686c9348323589ffcec504b93" +dependencies = [ + "bindgen", + "env_logger", + "genawaiter", + "parking_lot", + "tracing", + "tracing-appender", + "tracing-subscriber", + "turso_core", + "turso_sdk_kit", + "turso_sdk_kit_macros", + "turso_sync_engine", +] + +[[package]] +name = "twox-hash" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ea3136b675547379c4bd395ca6b938e5ad3c3d20fad76e7fe85f9e0d011419c" +dependencies = [ + "rand 0.9.5", +] + +[[package]] +name = "typeid" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" + +[[package]] +name = "typenum" +version = "1.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" + +[[package]] +name = "typetag" +version = "0.2.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5a897b12c6c1151ad0b138b8db50252dc301f93bc3b027db05eec82aeed298c" +dependencies = [ + "erased-serde", + "inventory", + "once_cell", + "serde", + "typetag-impl", +] + +[[package]] +name = "typetag-impl" +version = "0.2.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf808357c6ed7e13ba0f3277ec8d8f21b2d501274895104263985330c726c1c5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.118", +] + +[[package]] +name = "uds_windows" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f6fb2847f6742cd76af783a2a2c49e9375d0a111c7bef6f71cd9e738c72d6e" +dependencies = [ + "memoffset", + "tempfile", + "windows-sys 0.61.2", +] + +[[package]] +name = "uname" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b72f89f0ca32e4db1c04e2a72f5345d59796d4866a1ee0609084569f73683dc8" +dependencies = [ + "libc", +] + +[[package]] +name = "uncased" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1b88fcfe09e89d3866a5c11019378088af2d24c3fbd4f0543f96b479ec90697" +dependencies = [ + "version_check", +] + +[[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-bidi" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" + +[[package]] +name = "unicode-ident" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" + +[[package]] +name = "unicode-normalization" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fd4f6878c9cb28d874b009da9e8d183b5abc80117c40bbd187a1fde336be6e8" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-properties" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7df058c713841ad818f1dc5d3fd88063241cc61f49f5fbea4b951e8cf5a8d71d" + +[[package]] +name = "unicode-segmentation" +version = "1.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8" + +[[package]] +name = "unicode-width" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" + +[[package]] +name = "unicode-width" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" + +[[package]] +name = "unit-prefix" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81e544489bf3d8ef66c953931f56617f423cd4b5494be343d9b9d3dda037b9a3" + +[[package]] +name = "universal-hash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" +dependencies = [ + "crypto-common 0.1.7", + "subtle", +] + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "uom" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e76503e636584f1e10b9b3b9498538279561adcef5412927ba00c2b32c4ce5ed" +dependencies = [ + "num-traits", + "typenum", +] + +[[package]] +name = "ureq" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dea7109cdcd5864d4eeb1b58a1648dc9bf520360d7af16ec26d0a9354bafcfc0" +dependencies = [ + "base64 0.22.1", + "cookie_store", + "flate2", + "log", + "percent-encoding", + "rustls", + "rustls-pki-types", + "serde", + "serde_json", + "socks", + "ureq-proto", + "utf8-zero", + "webpki-roots 1.0.8", +] + +[[package]] +name = "ureq-proto" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e994ba84b0bd1b1b0cf92878b7ef898a5c1760108fe7b6010327e274917a808c" +dependencies = [ + "base64 0.22.1", + "http", + "httparse", + "log", +] + +[[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 = "urlencoding" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" + +[[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 = "urlpattern" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df16f50ef4cc145211879a3867ba757076b25dfee812040dcb0658bd9ae7904b" +dependencies = [ + "icu_properties", + "regex", + "serde", + "url", +] + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "utf8-ranges" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcfc827f90e53a02eaef5e535ee14266c1d569214c6aa70133a624d8a3164ba" + +[[package]] +name = "utf8-zero" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8c0a043c9540bae7c578c88f91dda8bd82e59ae27c21baca69c8b191aaf5a6e" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + +[[package]] +name = "uuid" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" +dependencies = [ + "getrandom 0.2.17", +] + +[[package]] +name = "uuid" +version = "1.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf3923a6f5c4c6382e0b653c4117f48d631ea17f38ed86e2a828e6f7412f5239" +dependencies = [ + "getrandom 0.4.3", + "js-sys", + "serde_core", + "sha1_smol", + "wasm-bindgen", +] + +[[package]] +name = "valuable" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" + +[[package]] +name = "value-bag" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ba6f5989077681266825251a52748b8c1d8a4ad098cc37e440103d0ea717fc0" + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[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.4+wasi-0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.126" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b067c0c11094aef6b7a801c1e34a26affafdf3d051dba08456b868789aaf9a4" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.76" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c62df1340f32221cb9c54d6a27b030e3dba64361d4a95bed55f9aacb44da291d" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.126" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "167ce5e579f6bcf889c4f7175a8a5a585de84e8ff93976ce393efa5f2837aab1" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.126" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3997c7839262f4ef12cf90b818d6340c18e80f263f1a94bf157d0ec4420380e" +dependencies = [ + "bumpalo", + "proc-macro2", + "quote", + "syn 2.0.118", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.126" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc1b4cb0cc549fcf58d7dfc081778139b3d283a081644e833e84682ad71cea24" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "wasm-streams" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[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 = "wayland-backend" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2857dd20b54e916ec7253b3d6b4d5c4d7d4ca2c33c2e11c6c76a99bd8744755d" +dependencies = [ + "cc", + "downcast-rs 1.2.1", + "rustix 1.1.4", + "scoped-tls", + "smallvec", + "wayland-sys", +] + +[[package]] +name = "wayland-client" +version = "0.31.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "645c7c96bb74690c3189b5c9cb4ca1627062bb23693a4fad9d8c3de958260144" +dependencies = [ + "bitflags 2.13.0", + "rustix 1.1.4", + "wayland-backend", + "wayland-scanner", +] + +[[package]] +name = "wayland-csd-frame" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e" +dependencies = [ + "bitflags 2.13.0", + "cursor-icon", + "wayland-backend", +] + +[[package]] +name = "wayland-cursor" +version = "0.31.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a52d18780be9b1314328a3de5f930b73d2200112e3849ca6cb11822793fb34d" +dependencies = [ + "rustix 1.1.4", + "wayland-client", + "xcursor", +] + +[[package]] +name = "wayland-protocols" +version = "0.32.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23d0c813de3daa2ed6520af85a3bd49b0e722a3078506899aa9686fea58dc4b6" +dependencies = [ + "bitflags 2.13.0", + "wayland-backend", + "wayland-client", + "wayland-scanner", +] + +[[package]] +name = "wayland-protocols-experimental" +version = "20250721.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40a1f863128dcaaec790d7b4b396cc9b9a7a079e878e18c47e6c2d2c5a8dcbb1" +dependencies = [ + "bitflags 2.13.0", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "wayland-scanner", +] + +[[package]] +name = "wayland-protocols-misc" +version = "0.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e9567599ef23e09b8dad6e429e5738d4509dfc46b3b21f32841a304d16b29c8" +dependencies = [ + "bitflags 2.13.0", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "wayland-scanner", +] + +[[package]] +name = "wayland-protocols-plasma" +version = "0.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b6d8cf1eb2c1c31ed1f5643c88a6e53538129d4af80030c8cabd1f9fa884d91" +dependencies = [ + "bitflags 2.13.0", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "wayland-scanner", +] + +[[package]] +name = "wayland-protocols-wlr" +version = "0.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb04e52f7836d7c7976c78ca0250d61e33873c34156a2a1fc9474828ec268234" +dependencies = [ + "bitflags 2.13.0", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "wayland-scanner", +] + +[[package]] +name = "wayland-scanner" +version = "0.31.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c324a910fd86ebdc364a3e61ec1f11737d3b1d6c273c0239ee8ff4bc0d24b4a" +dependencies = [ + "proc-macro2", + "quick-xml 0.39.4", + "quote", +] + +[[package]] +name = "wayland-sys" +version = "0.31.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8eab23fefc9e41f8e841df4a9c707e8a8c4ed26e944ef69297184de2785e3be" +dependencies = [ + "dlib", + "log", + "once_cell", + "pkg-config", +] + +[[package]] +name = "web-sys" +version = "0.3.103" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8622dcb61c0bcc9fffa6938bed81210af2da9a7e4a1a834b2e37a59b6dfb6141" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web-time" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web_atoms" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "075474b12bcb3d2e3d4546580e9de478eeeead668a1761e2a8860c836b7ef297" +dependencies = [ + "phf 0.13.1", + "phf_codegen 0.13.1", + "string_cache 0.9.0", + "string_cache_codegen 0.6.1", +] + +[[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 0.18.1", + "glib 0.18.5", + "glib-sys 0.18.1", + "gobject-sys 0.18.0", + "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 0.18.1", + "glib-sys 0.18.1", + "gobject-sys 0.18.0", + "gtk-sys", + "javascriptcore-rs-sys", + "libc", + "pkg-config", + "soup3-sys", + "system-deps 6.2.2", +] + +[[package]] +name = "webpki-root-certs" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d46a5a140e6f7afeccd8eae97eff335163939eac8b929834875168b29b3d267" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "webpki-roots" +version = "0.26.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" +dependencies = [ + "webpki-roots 1.0.8", +] + +[[package]] +name = "webpki-roots" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf85cb06032201fa7c6f829d7db5a7e5aa45bcc0655327713065f6f0576731bf" +dependencies = [ + "rustls-pki-types", +] + +[[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 0.61.3", + "windows-core 0.61.2", + "windows-implement 0.60.2", + "windows-interface 0.59.3", +] + +[[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.118", +] + +[[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.20", + "windows 0.61.3", + "windows-core 0.61.2", +] + +[[package]] +name = "weezl" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88" + +[[package]] +name = "which" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" +dependencies = [ + "either", + "home", + "once_cell", + "rustix 0.38.44", +] + +[[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.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12342cb4d8e3b046f3d80effd474a7a02447231330ef77d71daa6fbc40681143" +dependencies = [ + "windows-core 0.57.0", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" +dependencies = [ + "windows-core 0.58.0", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows" +version = "0.61.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" +dependencies = [ + "windows-collections 0.2.0", + "windows-core 0.61.2", + "windows-future 0.2.1", + "windows-link 0.1.3", + "windows-numerics 0.2.0", +] + +[[package]] +name = "windows" +version = "0.62.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "527fadee13e0c05939a6a05d5bd6eec6cd2e3dbd648b9f8e447c6518133d8580" +dependencies = [ + "windows-collections 0.3.2", + "windows-core 0.62.2", + "windows-future 0.3.2", + "windows-numerics 0.3.1", +] + +[[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-collections" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b2d95af1a8a14a3c7367e1ed4fc9c20e0a26e79551b1454d72583c97cc6610" +dependencies = [ + "windows-core 0.62.2", +] + +[[package]] +name = "windows-core" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d" +dependencies = [ + "windows-implement 0.57.0", + "windows-interface 0.57.0", + "windows-result 0.1.2", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-core" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" +dependencies = [ + "windows-implement 0.58.0", + "windows-interface 0.58.0", + "windows-result 0.2.0", + "windows-strings 0.1.0", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-core" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" +dependencies = [ + "windows-implement 0.60.2", + "windows-interface 0.59.3", + "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 0.60.2", + "windows-interface 0.59.3", + "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 0.1.0", +] + +[[package]] +name = "windows-future" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1d6f90251fe18a279739e78025bd6ddc52a7e22f921070ccdc67dde84c605cb" +dependencies = [ + "windows-core 0.62.2", + "windows-link 0.2.1", + "windows-threading 0.2.1", +] + +[[package]] +name = "windows-implement" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.118", +] + +[[package]] +name = "windows-implement" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.118", +] + +[[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.118", +] + +[[package]] +name = "windows-interface" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.118", +] + +[[package]] +name = "windows-interface" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.118", +] + +[[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.118", +] + +[[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-native-keyring-store" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063426e76fdec7438d56bb777f67e318a84a25c707b07e575cb8b78e10c028f8" +dependencies = [ + "byteorder", + "keyring-core", + "regex", + "windows-sys 0.61.2", + "zeroize", +] + +[[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-numerics" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e2e40844ac143cdb44aead537bbf727de9b044e107a0f1220392177d15b0f26" +dependencies = [ + "windows-core 0.62.2", + "windows-link 0.2.1", +] + +[[package]] +name = "windows-registry" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" +dependencies = [ + "windows-link 0.1.3", + "windows-result 0.3.4", + "windows-strings 0.4.2", +] + +[[package]] +name = "windows-result" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-result" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +dependencies = [ + "windows-targets 0.52.6", +] + +[[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.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +dependencies = [ + "windows-result 0.2.0", + "windows-targets 0.52.6", +] + +[[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.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[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.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[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-threading" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3949bd5b99cafdf1c7ca86b43ca564028dfe27d66958f2470940f73d86d75b37" +dependencies = [ + "windows-link 0.2.1", +] + +[[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.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[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.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[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.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[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.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[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.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[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.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[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.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[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 = "winit" +version = "0.31.0-beta.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2879d2854d1a43e48f67322d4bd097afcb6eb8f8f775c8de0260a71aea1df1aa" +dependencies = [ + "bitflags 2.13.0", + "cfg_aliases", + "cursor-icon", + "dpi", + "libc", + "raw-window-handle", + "rustix 1.1.4", + "smol_str", + "tracing", + "winit-android", + "winit-appkit", + "winit-common", + "winit-core", + "winit-orbital", + "winit-uikit", + "winit-wayland", + "winit-web", + "winit-win32", + "winit-x11", +] + +[[package]] +name = "winit-android" +version = "0.31.0-beta.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d9c0d2cd93efec3a9f9ad819cfaf0834782403af7c0d248c784ec0c61761df" +dependencies = [ + "android-activity", + "bitflags 2.13.0", + "dpi", + "ndk", + "raw-window-handle", + "smol_str", + "tracing", + "winit-core", +] + +[[package]] +name = "winit-appkit" +version = "0.31.0-beta.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21310ca07851a49c348e0c2cc768e36b52ca65afda2c2354d78ed4b90074d8aa" +dependencies = [ + "bitflags 2.13.0", + "block2", + "dispatch2", + "dpi", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-core-video", + "objc2-foundation", + "raw-window-handle", + "smol_str", + "tracing", + "winit-common", + "winit-core", +] + +[[package]] +name = "winit-common" +version = "0.31.0-beta.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45375fbac4cbb77260d83a30b1f9d8105880dbac99a9ae97f56656694680ff69" +dependencies = [ + "memmap2", + "objc2", + "objc2-core-foundation", + "smol_str", + "tracing", + "winit-core", + "x11-dl", + "xkbcommon-dl", +] + +[[package]] +name = "winit-core" +version = "0.31.0-beta.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4f0ccd7abb43740e2c6124ac7cae7d865ecec74eec63783e8922577ac232583" +dependencies = [ + "bitflags 2.13.0", + "cursor-icon", + "dpi", + "keyboard-types 0.8.3", + "raw-window-handle", + "smol_str", + "web-time", +] + +[[package]] +name = "winit-orbital" +version = "0.31.0-beta.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51ea1fb262e7209f265f12bd0cc792c399b14355675e65531e9c8a87db287d46" +dependencies = [ + "bitflags 2.13.0", + "dpi", + "orbclient", + "raw-window-handle", + "redox_syscall 0.5.18", + "smol_str", + "tracing", + "winit-core", +] + +[[package]] +name = "winit-uikit" +version = "0.31.0-beta.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "680a356e798837d8eb274d4556e83bceaf81698194e31aafc5cfb8a9f2fab643" +dependencies = [ + "bitflags 2.13.0", + "block2", + "dispatch2", + "dpi", + "objc2", + "objc2-core-foundation", + "objc2-foundation", + "objc2-ui-kit", + "raw-window-handle", + "smol_str", + "tracing", + "winit-common", + "winit-core", +] + +[[package]] +name = "winit-wayland" +version = "0.31.0-beta.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ce5afb2ba07da603f84b722c95f9f9396d2cedae3944fb6c0cda4a6f88de545" +dependencies = [ + "ahash", + "bitflags 2.13.0", + "calloop", + "cursor-icon", + "dpi", + "libc", + "memmap2", + "raw-window-handle", + "rustix 1.1.4", + "sctk-adwaita", + "smithay-client-toolkit", + "smol_str", + "tracing", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "wayland-protocols-plasma", + "winit-common", + "winit-core", +] + +[[package]] +name = "winit-web" +version = "0.31.0-beta.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c2490a953fb776fbbd5e295d54f1c3847f4f15b6c3929ec53c09acda6487a92" +dependencies = [ + "atomic-waker", + "bitflags 2.13.0", + "concurrent-queue", + "cursor-icon", + "dpi", + "js-sys", + "pin-project", + "raw-window-handle", + "smol_str", + "tracing", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "web-time", + "winit-core", +] + +[[package]] +name = "winit-win32" +version = "0.31.0-beta.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "644ea78af0e858aa3b092e5d1c67c41995a98220c81813f1353b28bc8bb91eaa" +dependencies = [ + "bitflags 2.13.0", + "cursor-icon", + "dpi", + "raw-window-handle", + "smol_str", + "tracing", + "unicode-segmentation", + "windows-sys 0.59.0", + "winit-core", +] + +[[package]] +name = "winit-x11" +version = "0.31.0-beta.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa5b600756534c7041aa93cd0d244d44b09fca1b89e202bd1cd80dd9f3636c46" +dependencies = [ + "bitflags 2.13.0", + "bytemuck", + "calloop", + "cursor-icon", + "dpi", + "libc", + "percent-encoding", + "raw-window-handle", + "rustix 1.1.4", + "smol_str", + "tracing", + "winit-common", + "winit-core", + "x11-dl", + "x11rb", + "xkbcommon-dl", +] + +[[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 = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0592e1c9d151f854e6fd382574c3a0855250e1d9b2f99d9281c6e6391af352f1" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[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 = "wio" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d129932f4644ac2396cb456385cbf9e63b5b30c6e8dc4820bdca4eb082037a5" +dependencies = [ + "winapi", +] + +[[package]] +name = "wit-bindgen" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" + +[[package]] +name = "wl-clipboard-rs" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9651471a32e87d96ef3a127715382b2d11cc7c8bb9822ded8a7cc94072eb0a3" +dependencies = [ + "libc", + "log", + "os_pipe", + "rustix 1.1.4", + "thiserror 2.0.20", + "tree_magic_mini", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "wayland-protocols-wlr", +] + +[[package]] +name = "wmi" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff00ac1309d4c462be86f03a55e409509e8bf4323ec296aeb4b381dd9aabe6ec" +dependencies = [ + "chrono", + "futures", + "log", + "serde", + "thiserror 1.0.69", + "windows 0.58.0", + "windows-core 0.58.0", +] + +[[package]] +name = "writeable" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4" + +[[package]] +name = "wry" +version = "0.56.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "375becb4aded9913f736443cf88000c6311478db69814cc06070465e4cc44c98" +dependencies = [ + "base64 0.22.1", + "block2", + "cookie", + "crossbeam-channel", + "dirs", + "dom_query", + "dpi", + "dunce", + "gdkx11", + "gtk", + "http", + "javascriptcore-rs", + "jni 0.21.1", + "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 0.10.9", + "soup3", + "tao-macros", + "thiserror 2.0.20", + "url", + "webkit2gtk", + "webkit2gtk-sys", + "webview2-com", + "windows 0.61.3", + "windows-core 0.61.2", + "windows-version", + "x11-dl", +] + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[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 = "x11rb" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9993aa5be5a26815fe2c3eacfc1fde061fc1a1f094bf1ad2a18bf9c495dd7414" +dependencies = [ + "as-raw-xcb-connection", + "gethostname", + "libc", + "libloading 0.8.9", + "once_cell", + "rustix 1.1.4", + "x11rb-protocol", + "xcursor", +] + +[[package]] +name = "x11rb-protocol" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea6fc2961e4ef194dcbfe56bb845534d0dc8098940c7e5c012a258bfec6701bd" + +[[package]] +name = "x509-parser" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d43b0f71ce057da06bc0851b23ee24f3f86190b07203dd8f567d0b706a185202" +dependencies = [ + "asn1-rs", + "data-encoding", + "der-parser", + "lazy_static", + "nom 7.1.3", + "oid-registry", + "ring", + "rusticata-macros", + "thiserror 2.0.20", + "time", +] + +[[package]] +name = "xattr" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156" +dependencies = [ + "libc", + "rustix 1.1.4", +] + +[[package]] +name = "xcursor" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "163b33ed8786455e2fa5d72f554057ce3f3182425434f756cd39c99839d88e23" + +[[package]] +name = "xkbcommon-dl" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5" +dependencies = [ + "bitflags 2.13.0", + "dlib", + "log", + "once_cell", + "xkeysym", +] + +[[package]] +name = "xkeysym" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9cc00251562a284751c9973bace760d86c0276c471b4be569fe6b068ee97a56" + +[[package]] +name = "yasna" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5f6765e852b9b4dc8e2a76843e4d64d1cea8e79bcde0b6901aea8e7c7f08282" +dependencies = [ + "bit-vec 0.9.1", + "time", +] + +[[package]] +name = "yeslogic-fontconfig-sys" +version = "6.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d8b8abf912b9a29ff112e1671c97c33636903d13a69712037190e6805af4f76" +dependencies = [ + "dlib", + "once_cell", + "pkg-config", +] + +[[package]] +name = "yoke" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "709fe23a0424b6a435d82152b1bd3fdfb0833487d5fa90d05d42762a9891fef5" +dependencies = [ + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.118", + "synstructure", +] + +[[package]] +name = "zbus" +version = "5.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a28b97f866896a4be7aefd2b5a8e01bb6773d19a775d54ab28b4d094b9a4480e" +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 1.1.4", + "serde", + "serde_repr", + "tokio", + "tracing", + "uds_windows", + "uuid 1.24.0", + "windows-sys 0.61.2", + "winnow 1.0.3", + "zbus_macros", + "zbus_names", + "zvariant", +] + +[[package]] +name = "zbus_macros" +version = "5.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e05ad887425eecf5e8384dc2406a4a9313eb73468712fc1cdea362eb4fe0469" +dependencies = [ + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 2.0.118", + "zbus_names", + "zvariant", + "zvariant_utils", +] + +[[package]] +name = "zbus_names" +version = "4.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1039ca249fee9559680f3a9f05b55e0761fee51af4f6c1e7d8c1f31e549721d2" +dependencies = [ + "serde", + "winnow 1.0.3", + "zvariant", +] + +[[package]] +name = "zerocopy" +version = "0.8.54" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7cbbc0a705a0fd05cc3676525980d2bf5a9bc4adac6d6475209a7887cf59d19" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.54" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2e817b7b52d0c7358d3246da9d69935ebb18116b2b102b4230dac079b4862f5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.118", +] + +[[package]] +name = "zerofrom" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ec05a11813ea801ff6d75110ad09cd0824ddba17dfe17128ea0d5f68e6c5272" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.118", + "synstructure", +] + +[[package]] +name = "zeroize" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c50655cbb0fe3fc43170059e702f1ce5e19b84cec58dc87b037a09935c2f328" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.118", +] + +[[package]] +name = "zerotrie" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f9152d31db0792fa83f70fb2f83148effb5c1f5b8c7686c3459e361d9bc20bf" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", +] + +[[package]] +name = "zerovec" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90f911cbc359ab6af17377d242225f4d75119aec87ea711a880987b18cd7b239" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.118", +] + +[[package]] +name = "zip" +version = "2.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabe6324e908f85a1c52063ce7aa26b68dcb7eb6dbc83a2d148403c9bc3eba50" +dependencies = [ + "arbitrary", + "crc32fast", + "crossbeam-utils", + "displaydoc", + "flate2", + "indexmap 2.14.0", + "memchr", + "thiserror 2.0.20", + "zopfli", +] + +[[package]] +name = "zip" +version = "4.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "caa8cd6af31c3b31c6631b8f483848b91589021b28fffe50adada48d4f4d2ed1" +dependencies = [ + "arbitrary", + "crc32fast", + "indexmap 2.14.0", + "memchr", +] + +[[package]] +name = "zmij" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" + +[[package]] +name = "zopfli" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f05cd8797d63865425ff89b5c4a48804f35ba0ce8d125800027ad6017d2b5249" +dependencies = [ + "bumpalo", + "crc32fast", + "log", + "simd-adler32", +] + +[[package]] +name = "zstd" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "7.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d" +dependencies = [ + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.16+zstd.1.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748" +dependencies = [ + "cc", + "pkg-config", +] + +[[package]] +name = "zune-core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb8a0807f7c01457d0379ba880ba6322660448ddebc890ce29bb64da71fb40f9" + +[[package]] +name = "zune-jpeg" +version = "0.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27bc9d5b815bc103f142aa054f561d9187d191692ec7c2d1e2b4737f8dbd7296" +dependencies = [ + "zune-core", +] + +[[package]] +name = "zvariant" +version = "5.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cf057bb00bf5c9ad77abb6147b0ca4818236a1858416e9d988e40d6322fefa7" +dependencies = [ + "endi", + "enumflags2", + "serde", + "url", + "winnow 1.0.3", + "zvariant_derive", + "zvariant_utils", +] + +[[package]] +name = "zvariant_derive" +version = "5.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8118ca6bda77bfc0ab51d660db0c955f2505eef854c9a449435bccb616933b31" +dependencies = [ + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 2.0.118", + "zvariant_utils", +] + +[[package]] +name = "zvariant_utils" +version = "3.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90cb9383f9b45290407a1258b202d3f8f01db719eb60b4e4055c6375af4fc7c7" +dependencies = [ + "proc-macro2", + "quote", + "serde", + "syn 2.0.118", + "winnow 1.0.3", +] + +[[patch.unused]] +name = "swift-rs" +version = "1.0.7" + +[[patch.unused]] +name = "tao" +version = "0.35.3" diff --git a/Cargo.lock b/Cargo.lock index 94b5c1f07..d26e24d25 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,12 +2,6 @@ # It is not intended for manual editing. version = 3 -[[package]] -name = "Inflector" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" - [[package]] name = "Readest" version = "0.2.2" @@ -349,6 +343,27 @@ version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56" +[[package]] +name = "ashpd" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6cbdf310d77fd3aaee6ea2093db7011dc2d35d2eb3481e5607f1f8d942ed99df" +dependencies = [ + "enumflags2", + "futures-channel", + "futures-util", + "rand 0.9.5", + "raw-window-handle", + "serde", + "serde_repr", + "tokio", + "url", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "zbus", +] + [[package]] name = "asn1-rs" version = "0.7.2" @@ -844,7 +859,7 @@ version = "3.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6dee98b0db6a962de883bf5d20362dee4d7ca0d12fe39a7c6c73c844e1cd7c1f" dependencies = [ - "darling 0.23.0", + "darling 0.20.11", "ident_case", "prettyplease", "proc-macro2", @@ -1341,12 +1356,6 @@ dependencies = [ "tiny-keccak", ] -[[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" @@ -1585,23 +1594,6 @@ dependencies = [ "rand_core 0.10.1", ] -[[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" version = "0.36.0" @@ -1611,7 +1603,7 @@ dependencies = [ "cssparser-macros", "dtoa-short", "itoa", - "phf 0.13.1", + "phf", "smallvec", ] @@ -1960,19 +1952,6 @@ dependencies = [ "syn 2.0.118", ] -[[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.118", -] - [[package]] name = "derive_more" version = "2.1.1" @@ -2035,7 +2014,7 @@ dependencies = [ "libc", "option-ext", "redox_users", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -2144,12 +2123,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "521e380c0c8afb8d9a1e83a1822ee03556fc3e3e7dbc1fd30be14e37f9cb3f89" dependencies = [ "bit-set", - "cssparser 0.36.0", + "cssparser", "foldhash 0.2.0", - "html5ever 0.38.0", + "html5ever", "precomputed-hash", - "selectors 0.36.1", - "tendril 0.5.1", + "selectors", + "tendril", ] [[package]] @@ -2435,7 +2414,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -2478,7 +2457,7 @@ checksum = "4e7f34442dbe69c60fe8eaf58a8cafff81a1f278816d8ab4db255b3bef4ac3c4" dependencies = [ "getrandom 0.3.4", "libm", - "siphasher 1.0.3", + "siphasher", ] [[package]] @@ -2533,15 +2512,6 @@ dependencies = [ "rustc_version", ] -[[package]] -name = "file-id" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1fc6a637b6dc58414714eddd9170ff187ecb0933d4c7024d1abbd23a3cc26e9" -dependencies = [ - "windows-sys 0.60.2", -] - [[package]] name = "filetime" version = "0.2.29" @@ -2675,31 +2645,12 @@ dependencies = [ "windows-sys 0.59.0", ] -[[package]] -name = "fsevent-sys" -version = "4.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2" -dependencies = [ - "libc", -] - [[package]] name = "funty" version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" -[[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" version = "0.3.32" @@ -2801,15 +2752,6 @@ dependencies = [ "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" @@ -2959,17 +2901,6 @@ dependencies = [ "windows-link 0.2.1", ] -[[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" @@ -2979,7 +2910,7 @@ dependencies = [ "cfg-if", "js-sys", "libc", - "wasi 0.11.1+wasi-snapshot-preview1", + "wasi", "wasm-bindgen", ] @@ -3088,7 +3019,7 @@ dependencies = [ "gobject-sys 0.21.5", "libc", "system-deps 7.0.8", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -3400,18 +3331,6 @@ dependencies = [ "windows-link 0.2.1", ] -[[package]] -name = "html5ever" -version = "0.29.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b7410cae13cbc75623c98ac4cbfd1f0bedddf3227afc24f370cf0f50a44a11c" -dependencies = [ - "log", - "mac", - "markup5ever 0.14.1", - "match_token", -] - [[package]] name = "html5ever" version = "0.38.0" @@ -3419,7 +3338,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1054432bae2f14e0061e33d23402fbaa67a921d319d56adc6bcf887ddad1cbc2" dependencies = [ "log", - "markup5ever 0.38.0", + "markup5ever", ] [[package]] @@ -3526,22 +3445,6 @@ dependencies = [ "webpki-roots 1.0.8", ] -[[package]] -name = "hyper-tls" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" -dependencies = [ - "bytes", - "http-body-util", - "hyper", - "hyper-util", - "native-tls", - "tokio", - "tokio-native-tls", - "tower-service", -] - [[package]] name = "hyper-util" version = "0.1.20" @@ -3579,7 +3482,7 @@ dependencies = [ "js-sys", "log", "wasm-bindgen", - "windows-core 0.62.2", + "windows-core 0.57.0", ] [[package]] @@ -3746,7 +3649,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "525e9ff3e1a4be2fbea1fdf0e98686a6d98b4d8f937e1bf7402245af1909e8c3" dependencies = [ "byteorder-lite", - "quick-error 2.0.1", + "quick-error", ] [[package]] @@ -3781,26 +3684,6 @@ dependencies = [ "cfb", ] -[[package]] -name = "inotify" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "153be1941a183ec9ccd095ddbe17a8b8d435ef6c76e9e02451b933c3999af2c8" -dependencies = [ - "bitflags 2.13.0", - "inotify-sys", - "libc", -] - -[[package]] -name = "inotify-sys" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c033f80b2c113cdf91ab7a33faa9cbc014726dcad99880c8609af2a370edf37d" -dependencies = [ - "libc", -] - [[package]] name = "inout" version = "0.1.4" @@ -4061,17 +3944,6 @@ dependencies = [ "thiserror 2.0.20", ] -[[package]] -name = "json5" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b0db21af676c1ce64250b5f40f3ce2cf27e4e47cb91ed91eb6fe9350b430c1" -dependencies = [ - "pest", - "pest_derive", - "serde", -] - [[package]] name = "jsonptr" version = "0.6.3" @@ -4112,38 +3984,6 @@ dependencies = [ "log", ] -[[package]] -name = "kqueue" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "273c0752728918e0ac4976f2b275b6fefb9ecd400585dec929419f3844cd87b5" -dependencies = [ - "kqueue-sys", - "libc", -] - -[[package]] -name = "kqueue-sys" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07293a4e297ac234359b510362495713f75ea345d5307140414f20c69ffeb087" -dependencies = [ - "bitflags 2.13.0", - "libc", -] - -[[package]] -name = "kuchikiki" -version = "0.8.8-speedreader" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02cb977175687f33fa4afa0c95c112b987ea1443e5a51c8f8ff27dc618270cc2" -dependencies = [ - "cssparser 0.29.6", - "html5ever 0.29.1", - "indexmap 2.14.0", - "selectors 0.24.0", -] - [[package]] name = "lazy_static" version = "1.5.0" @@ -4264,25 +4104,6 @@ dependencies = [ "libc", ] -[[package]] -name = "libxdo" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00333b8756a3d28e78def82067a377de7fa61b24909000aeaa2b446a948d14db" -dependencies = [ - "libxdo-sys", -] - -[[package]] -name = "libxdo-sys" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db23b9e7e2b7831bbd8aac0bbeeeb7b68cbebc162b227e7052e8e55829a09212" -dependencies = [ - "libc", - "x11", -] - [[package]] name = "linkme" version = "0.3.36" @@ -4440,12 +4261,6 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ef0d4ed8669f8f8826eb00dc878084aa8f253506c4fd5e8f58f5bce72ddb97e" -[[package]] -name = "mac" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" - [[package]] name = "mach" version = "0.3.2" @@ -4464,20 +4279,6 @@ dependencies = [ "libc", ] -[[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 0.8.9", - "string_cache_codegen 0.5.4", - "tendril 0.4.3", -] - [[package]] name = "markup5ever" version = "0.38.0" @@ -4485,21 +4286,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8983d30f2915feeaaab2d6babdd6bc7e9ed1a00b66b5e6d74df19aa9c0e91862" dependencies = [ "log", - "tendril 0.5.1", + "tendril", "web_atoms", ] -[[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.118", -] - [[package]] name = "matchers" version = "0.2.0" @@ -4509,12 +4299,6 @@ dependencies = [ "regex-automata", ] -[[package]] -name = "matches" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" - [[package]] name = "matchit" version = "0.8.4" @@ -4633,8 +4417,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "02bd0af71c67b473010cbbc60715ee815645a4dc942899111f494b4b737d6fda" dependencies = [ "libc", - "log", - "wasi 0.11.1+wasi-snapshot-preview1", + "wasi", "windows-sys 0.61.2", ] @@ -4669,7 +4452,6 @@ dependencies = [ "dpi", "gtk", "keyboard-types", - "libxdo", "objc2", "objc2-app-kit", "objc2-core-foundation", @@ -4687,23 +4469,6 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2195bf6aa996a481483b29d62a7663eed3fe39600c460e323f8ff41e90bdd89b" -[[package]] -name = "native-tls" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "465500e14ea162429d264d44189adc38b199b62b1c21eea9f69e4b73cb03bbf2" -dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - [[package]] name = "ndk" version = "0.9.0" @@ -4844,12 +4609,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "nodrop" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" - [[package]] name = "nom" version = "7.1.3" @@ -4869,47 +4628,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "notify" -version = "8.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d3d07927151ff8575b7087f245456e549fea62edf0ec4e565a5ee50c8402bc3" -dependencies = [ - "bitflags 2.13.0", - "fsevent-sys", - "inotify", - "kqueue", - "libc", - "log", - "mio", - "notify-types", - "walkdir", - "windows-sys 0.60.2", -] - -[[package]] -name = "notify-debouncer-full" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "375bd3a138be7bfeff3480e4a623df4cbfb55b79df617c055cd810ba466fa078" -dependencies = [ - "file-id", - "log", - "notify", - "notify-types", - "walkdir", -] - -[[package]] -name = "notify-types" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42b8cfee0e339a0337359f3c88165702ac6e600dc01c0cc9579a92d62b08477a" -dependencies = [ - "bitflags 2.13.0", - "serde", -] - [[package]] name = "ntapi" version = "0.4.3" @@ -4925,7 +4643,7 @@ version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -5517,7 +5235,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d8fae84b431384b68627d0f9b3b1245fcf9f46f6c0e3dc902e9dce64edd1967" dependencies = [ "libc", - "windows-sys 0.45.0", + "windows-sys 0.48.0", ] [[package]] @@ -5706,48 +5424,6 @@ version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" -[[package]] -name = "pest" -version = "2.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47627dd7305c6a2d6c8c6bcd24c5a4c17dbbf425f4f9c5313e724b38fc9782e9" -dependencies = [ - "memchr", - "ucd-trie", -] - -[[package]] -name = "pest_derive" -version = "2.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b4254325ecad416ab689e27ba51da03ba01a9632bc6e108f5fe7c3c4ad29d58" -dependencies = [ - "pest", - "pest_generator", -] - -[[package]] -name = "pest_generator" -version = "2.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c4c0e91ead7a8f7acecbca6f003fc2e8282b1dbe2dd9c9d2f16aba42995e0a7" -dependencies = [ - "pest", - "pest_meta", - "proc-macro2", - "quote", - "syn 2.0.118", -] - -[[package]] -name = "pest_meta" -version = "2.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9744bc48116fee06334924bb5f2bad41eed5e89bd26e29b0b799f9a3f82c210" -dependencies = [ - "pest", -] - [[package]] name = "petgraph" version = "0.8.3" @@ -5759,104 +5435,25 @@ dependencies = [ "indexmap 2.14.0", ] -[[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_shared 0.11.3", -] - [[package]] name = "phf" version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" dependencies = [ - "phf_macros 0.13.1", - "phf_shared 0.13.1", + "phf_macros", + "phf_shared", "serde", ] -[[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_codegen" version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49aa7f9d80421bca176ca8dbfebe668cc7a2684708594ec9f3c0db0805d5d6e1" dependencies = [ - "phf_generator 0.13.1", - "phf_shared 0.13.1", -] - -[[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.7", -] - -[[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.7", + "phf_generator", + "phf_shared", ] [[package]] @@ -5866,21 +5463,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737" dependencies = [ "fastrand", - "phf_shared 0.13.1", -] - -[[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", + "phf_shared", ] [[package]] @@ -5889,47 +5472,20 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef" dependencies = [ - "phf_generator 0.13.1", - "phf_shared 0.13.1", + "phf_generator", + "phf_shared", "proc-macro2", "quote", "syn 2.0.118", ] -[[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.3", -] - [[package]] name = "phf_shared" version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" dependencies = [ - "siphasher 1.0.3", + "siphasher", ] [[package]] @@ -6039,6 +5595,12 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "pollster" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f3a9f18d041e6d0e102a0a46750538147e5e8992d3b4873aaafee2520b00ce3" + [[package]] name = "polyval" version = "0.6.2" @@ -6144,12 +5706,6 @@ dependencies = [ "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" @@ -6159,25 +5715,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "proptest" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b45fcc2344c680f5025fe57779faef368840d0bd1f42f216291f0dc4ace4744" -dependencies = [ - "bit-set", - "bit-vec 0.8.0", - "bitflags 2.13.0", - "num-traits", - "rand 0.9.5", - "rand_chacha 0.9.0", - "rand_xorshift", - "regex-syntax", - "rusty-fork", - "tempfile", - "unarray", -] - [[package]] name = "prost" version = "0.14.4" @@ -6243,12 +5780,6 @@ version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d55d956fa96f5ec02be2e13af0e20391a5aa83d6a074e3ad368959d0fab299ea" -[[package]] -name = "quick-error" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" - [[package]] name = "quick-error" version = "2.0.1" @@ -6273,28 +5804,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "quickcheck" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95c589f335db0f6aaa168a7cd27b1fc6920f5e1470c804f814d9cd6e62a0f70b" -dependencies = [ - "env_logger", - "log", - "rand 0.10.2", -] - -[[package]] -name = "quickcheck_macros" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9a28b8493dd664c8b171dd944da82d933f7d456b829bfb236738e1fe06c5ba4" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.118", -] - [[package]] name = "quinn" version = "0.11.11" @@ -6348,7 +5857,7 @@ dependencies = [ "once_cell", "socket2", "tracing", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -6378,20 +5887,6 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" -[[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 0.2.1", -] - [[package]] name = "rand" version = "0.8.7" @@ -6424,16 +5919,6 @@ dependencies = [ "rand_core 0.10.1", ] -[[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" @@ -6454,15 +5939,6 @@ dependencies = [ "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" @@ -6487,24 +5963,6 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" -[[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 = "rand_pcg" version = "0.3.1" @@ -6523,15 +5981,6 @@ dependencies = [ "rand_core 0.10.1", ] -[[package]] -name = "rand_xorshift" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a" -dependencies = [ - "rand_core 0.9.5", -] - [[package]] name = "rapidhash" version = "4.5.1" @@ -6734,12 +6183,10 @@ dependencies = [ "http-body-util", "hyper", "hyper-rustls", - "hyper-tls", "hyper-util", "js-sys", "log", "mime", - "native-tls", "percent-encoding", "pin-project-lite", "rustls", @@ -6749,7 +6196,6 @@ dependencies = [ "serde_json", "sync_wrapper", "tokio", - "tokio-native-tls", "tokio-rustls", "tokio-util", "tower", @@ -6768,6 +6214,7 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a15ad77d9e70a92437d8f74c35d99b4e4691128df018833e99f90bcd36152672" dependencies = [ + "ashpd", "block2", "dispatch2", "glib-sys 0.18.1", @@ -6779,7 +6226,9 @@ dependencies = [ "objc2-app-kit", "objc2-core-foundation", "objc2-foundation", + "pollster", "raw-window-handle", + "urlencoding", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -6972,7 +6421,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys 0.12.1", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -7030,7 +6479,7 @@ dependencies = [ "security-framework", "security-framework-sys", "webpki-root-certs", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -7056,18 +6505,6 @@ version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f" -[[package]] -name = "rusty-fork" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc6bf79ff24e648f6da1f8d1f011e9cac26491b619e6b9280f2b47f1774e6ee2" -dependencies = [ - "fnv", - "quick-error 1.2.3", - "tempfile", - "wait-timeout", -] - [[package]] name = "ryu" version = "1.0.23" @@ -7184,24 +6621,6 @@ dependencies = [ "libc", ] -[[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 0.29.6", - "derive_more 0.99.20", - "fxhash", - "log", - "phf 0.8.0", - "phf_codegen 0.8.0", - "precomputed-hash", - "servo_arc 0.2.0", - "smallvec", -] - [[package]] name = "selectors" version = "0.36.1" @@ -7209,15 +6628,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c5d9c0c92a92d33f08817311cf3f2c29a3538a8240e94a6a3c622ce652d7e00c" dependencies = [ "bitflags 2.13.0", - "cssparser 0.36.0", - "derive_more 2.1.1", + "cssparser", + "derive_more", "log", "new_debug_unreachable", - "phf 0.13.1", - "phf_codegen 0.13.1", + "phf", + "phf_codegen", "precomputed-hash", "rustc-hash 2.1.3", - "servo_arc 0.4.3", + "servo_arc", "smallvec", ] @@ -7477,31 +6896,6 @@ dependencies = [ "syn 2.0.118", ] -[[package]] -name = "serial_test" -version = "3.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "699f4197115b8a7e7ff19c9a315a4bd6fffec26cc4626ef45ecaea389e081c6d" -dependencies = [ - "futures-executor", - "futures-util", - "log", - "once_cell", - "parking_lot", - "serial_test_derive", -] - -[[package]] -name = "serial_test_derive" -version = "3.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94e153fc76e1c6a068703d6d29c508a0b15c061c4b7e43da59cc097bc342673c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.118", -] - [[package]] name = "serialize-to-javascript" version = "0.1.2" @@ -7524,16 +6918,6 @@ dependencies = [ "syn 2.0.118", ] -[[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 = "servo_arc" version = "0.4.3" @@ -7726,12 +7110,6 @@ dependencies = [ "cc", ] -[[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.3" @@ -7844,29 +7222,6 @@ dependencies = [ "system-deps 6.2.2", ] -[[package]] -name = "specta" -version = "2.0.0-rc.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38f9a30cbcbb7011f1da7d73483983bf838af123883e45f2b36ed76328df9c50" -dependencies = [ - "paste", - "rustc_version", - "specta-macros", -] - -[[package]] -name = "specta-macros" -version = "2.0.0-rc.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ce14957ecc2897f1f848b8255b6531d13ddf49cbcf506b7c2c9fb1d005593bb" -dependencies = [ - "Inflector", - "proc-macro2", - "quote", - "syn 2.0.118", -] - [[package]] name = "spin" version = "0.9.9" @@ -7899,19 +7254,6 @@ 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" version = "0.9.0" @@ -7920,30 +7262,18 @@ checksum = "a18596f8c785a729f2819c0f6a7eae6ebeebdfffbfe4214ae6b087f690e31901" dependencies = [ "new_debug_unreachable", "parking_lot", - "phf_shared 0.13.1", + "phf_shared", "precomputed-hash", ] -[[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 = "string_cache_codegen" version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "585635e46db231059f76c5849798146164652513eb9e8ab2685939dd90f29b69" dependencies = [ - "phf_generator 0.13.1", - "phf_shared 0.13.1", + "phf_generator", + "phf_shared", "proc-macro2", "quote", ] @@ -8392,9 +7722,7 @@ version = "2.11.5" dependencies = [ "anyhow", "bytes", - "cargo_toml 1.0.0", "cookie", - "data-url", "dirs", "dunce", "embed_plist", @@ -8404,7 +7732,6 @@ dependencies = [ "heck 0.5.0", "http", "http-range", - "image", "jni 0.21.1", "libc", "log", @@ -8417,19 +7744,13 @@ dependencies = [ "objc2-web-kit", "percent-encoding", "plist", - "proptest", - "quickcheck", - "quickcheck_macros", "raw-window-handle", "reqwest 0.13.4", - "rustls", "serde", "serde_json", "serde_repr", "serialize-to-javascript", - "specta", "swift-rs", - "tauri", "tauri-build 2.6.3", "tauri-macros", "tauri-runtime", @@ -8437,10 +7758,8 @@ dependencies = [ "tauri-utils 2.9.3", "thiserror 2.0.20", "tokio", - "tracing", "tray-icon", "url", - "uuid 1.24.0", "webkit2gtk", "webview2-com", "window-vibrancy", @@ -8457,12 +7776,10 @@ dependencies = [ "glob", "heck 0.5.0", "json-patch 4.2.0", - "quote", "schemars 0.8.22", "semver", "serde", "serde_json", - "tauri-codegen", "tauri-utils 2.9.3", "tauri-winres", "walkdir", @@ -8650,13 +7967,13 @@ dependencies = [ [[package]] name = "tauri-plugin-fs" version = "2.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7ecc274121aca0c036a2b42d1cbe83d368d348f54e0bb8a735c2b1548e8f371" dependencies = [ "anyhow", "dunce", "glob", "log", - "notify", - "notify-debouncer-full", "objc2-foundation", "percent-encoding", "schemars 0.8.22", @@ -9093,7 +8410,6 @@ dependencies = [ "tao", "tauri-runtime", "tauri-utils 2.9.3", - "tracing", "url", "webkit2gtk", "webview2-com", @@ -9105,24 +8421,19 @@ dependencies = [ name = "tauri-utils" version = "2.9.3" dependencies = [ - "aes-gcm", "anyhow", "brotli", "cargo_metadata", "ctor 1.0.8", "dom_query", "dunce", - "getrandom 0.3.4", "glob", - "html5ever 0.29.1", "http", "infer", "json-patch 4.2.0", - "json5", - "kuchikiki", "log", "memchr", - "phf 0.13.1", + "phf", "plist", "proc-macro2", "quote", @@ -9133,13 +8444,9 @@ dependencies = [ "serde-untagged", "serde_json", "serde_with", - "serial_test", - "serialize-to-javascript", "swift-rs", - "tauri", - "tempfile", "thiserror 2.0.20", - "toml 1.1.2+spec-1.1.0", + "toml 0.9.12+spec-1.1.0", "url", "urlpattern 0.6.0", "uuid 1.24.0", @@ -9163,7 +8470,7 @@ dependencies = [ "json-patch 3.0.1", "log", "memchr", - "phf 0.13.1", + "phf", "plist", "proc-macro2", "quote", @@ -9176,7 +8483,7 @@ dependencies = [ "serde_with", "swift-rs", "thiserror 2.0.20", - "toml 1.1.2+spec-1.1.0", + "toml 0.9.12+spec-1.1.0", "url", "urlpattern 0.3.0", "uuid 1.24.0", @@ -9201,21 +8508,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" dependencies = [ "fastrand", - "getrandom 0.3.4", + "getrandom 0.4.3", "once_cell", "rustix 1.1.4", - "windows-sys 0.59.0", -] - -[[package]] -name = "tendril" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" -dependencies = [ - "futf", - "mac", - "utf-8", + "windows-sys 0.60.2", ] [[package]] @@ -9285,7 +8581,7 @@ dependencies = [ "fax", "flate2", "half", - "quick-error 2.0.1", + "quick-error", "weezl", "zune-jpeg", ] @@ -9370,6 +8666,7 @@ dependencies = [ "signal-hook-registry", "socket2", "tokio-macros", + "tracing", "windows-sys 0.61.2", ] @@ -9384,16 +8681,6 @@ dependencies = [ "syn 2.0.118", ] -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - [[package]] name = "tokio-rustls" version = "0.26.4" @@ -9991,12 +9278,6 @@ dependencies = [ "syn 2.0.118", ] -[[package]] -name = "ucd-trie" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" - [[package]] name = "uds_windows" version = "1.2.1" @@ -10017,12 +9298,6 @@ dependencies = [ "libc", ] -[[package]] -name = "unarray" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" - [[package]] name = "uncased" version = "0.9.10" @@ -10179,6 +9454,12 @@ dependencies = [ "serde_derive", ] +[[package]] +name = "urlencoding" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" + [[package]] name = "urlpattern" version = "0.3.0" @@ -10311,15 +9592,6 @@ dependencies = [ "libc", ] -[[package]] -name = "wait-timeout" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ac3b126d3914f9849036f826e054cbabdc8519970b8998ddaf3b5bd3c65f11" -dependencies = [ - "libc", -] - [[package]] name = "walkdir" version = "2.5.0" @@ -10339,12 +9611,6 @@ 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" @@ -10450,6 +9716,7 @@ dependencies = [ "cc", "downcast-rs 1.2.1", "rustix 1.1.4", + "scoped-tls", "smallvec", "wayland-sys", ] @@ -10508,6 +9775,8 @@ version = "0.31.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d8eab23fefc9e41f8e841df4a9c707e8a8c4ed26e944ef69297184de2785e3be" dependencies = [ + "dlib", + "log", "pkg-config", ] @@ -10537,10 +9806,10 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "075474b12bcb3d2e3d4546580e9de478eeeead668a1761e2a8860c836b7ef297" dependencies = [ - "phf 0.13.1", - "phf_codegen 0.13.1", - "string_cache 0.9.0", - "string_cache_codegen 0.6.1", + "phf", + "phf_codegen", + "string_cache", + "string_cache_codegen", ] [[package]] @@ -10803,19 +10072,6 @@ dependencies = [ "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 0.60.2", - "windows-interface 0.59.3", - "windows-link 0.2.1", - "windows-result 0.4.1", - "windows-strings 0.5.1", -] - [[package]] name = "windows-future" version = "0.2.1" @@ -10994,15 +10250,6 @@ 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" @@ -11450,7 +10697,6 @@ dependencies = [ "soup3", "tao-macros 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "thiserror 2.0.20", - "tracing", "url", "webkit2gtk", "webkit2gtk-sys", @@ -11605,6 +10851,7 @@ dependencies = [ "rustix 1.1.4", "serde", "serde_repr", + "tokio", "tracing", "uds_windows", "uuid 1.24.0", @@ -11834,6 +11081,7 @@ dependencies = [ "endi", "enumflags2", "serde", + "url", "winnow 1.0.3", "zvariant_derive", "zvariant_utils", diff --git a/Cargo.toml b/Cargo.toml index d6bc3f116..4f77b67bb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,8 +1,11 @@ [workspace] +# The readest forks under packages/ are pulled in through [patch.crates-io] +# below, not listed as members: the Linux CEF build (see +# apps/readest-app/src-tauri/.cargo/cef.toml) patches tauri and the plugins to +# upstream git instead, and a member fork would still sit in the graph and +# clash on `links` with the git copy. members = [ - "apps/readest-app/src-tauri", - "packages/tauri/crates/tauri", - "packages/tauri-plugins/plugins/fs" + "apps/readest-app/src-tauri" ] exclude = [ "packages/qcms" @@ -39,7 +42,6 @@ rust-version = "1.77.2" [patch.crates-io] tauri = { path = "packages/tauri/crates/tauri" } -tauri-plugin-fs = { path = "packages/tauri-plugins/plugins/fs" } # Xcode 26.2 (Swift 6.2) broke upstream swift-rs 1.0.7's per-swiftc target # override; the vendored copy cross-compiles via `--triple`/`--sdk` instead. # Upstream is unmaintained (last release 2024). See packages/swift-rs. diff --git a/apps/readest-app/AGENTS.md b/apps/readest-app/AGENTS.md index 686bed83b..72407f8e6 100644 --- a/apps/readest-app/AGENTS.md +++ b/apps/readest-app/AGENTS.md @@ -7,7 +7,7 @@ Readest is a cross-platform ebook reader built as a **Next.js 16 + Tauri v2** hy ```bash # Development pnpm dev-web # Web-only dev server (no Rust compilation needed) -pnpm tauri dev # Desktop dev with Tauri (compiles Rust backend) +pnpm tauri dev # Desktop dev with Tauri (compiles Rust backend); on Linux this is the CEF runtime (needs Rust >= 1.95) # Building pnpm build # Build Next.js for Tauri diff --git a/apps/readest-app/docs/architecture.md b/apps/readest-app/docs/architecture.md index 4954c4db9..b47c38308 100644 --- a/apps/readest-app/docs/architecture.md +++ b/apps/readest-app/docs/architecture.md @@ -535,8 +535,8 @@ android/, macos/, windows/ -> per-platform glue ``` -Everything else is delegated to **Tauri plugins**, mostly bundled in -`packages/tauri-plugins/plugins`: +Everything else is delegated to **Tauri plugins**, mostly the published +`tauri-plugin-*` crates: - standard plugins: `fs`, `dialog`, `http`, `opener`, `os`, `process`, `shell`, `cli`, `deep-link`, `haptics`, `log`, `updater`, `websocket`, `oauth`, diff --git a/apps/readest-app/package.json b/apps/readest-app/package.json index bea7b63b5..6fde1a09d 100644 --- a/apps/readest-app/package.json +++ b/apps/readest-app/package.json @@ -44,7 +44,7 @@ "test:e2e:web:report": "playwright show-report", "tauri:dev:test": "dotenv -e .env.tauri -- tauri dev --features webdriver", "tauri:build:test": "dotenv -e .env.tauri -- tauri build --debug --features webdriver", - "tauri": "tauri", + "tauri": "node scripts/tauri.mjs", "fmt:check": "cargo fmt -p Readest --check", "clippy:check": "cargo clippy -p Readest --no-deps -- -D warnings", "test:rust": "cargo test -p Readest --lib", @@ -66,7 +66,7 @@ "setup-vendors": "pnpm setup-pdfjs && pnpm setup-simplecc && pnpm setup-jieba", "build-win-x64": "dotenv -e .env.tauri.local -- tauri build --target i686-pc-windows-msvc --bundles nsis", "build-win-arm64": "dotenv -e .env.tauri.local -- tauri build --target aarch64-pc-windows-msvc --bundles nsis", - "build-linux-x64": "dotenv -e .env.tauri.local -- tauri build --target x86_64-unknown-linux-gnu --bundles appimage", + "build-linux-x64": "dotenv -e .env.tauri.local -- pnpm tauri build --bundles appimage", "build-macos-universial": "dotenv -e .env.tauri.local -e .env.apple-nonstore.local -- tauri build -t universal-apple-darwin --bundles dmg --config src-tauri/tauri.macos-nonestore.conf.json", "build-macos-universial-appstore": "dotenv -e .env.tauri.local -e .env.apple-appstore.local -- tauri build -t universal-apple-darwin --bundles app --config src-tauri/tauri.appstore.conf.json", "build-macos-universial-appstore-dev": "dotenv -e .env.tauri.local -e .env.apple-appstore-dev.local -- tauri build -t universal-apple-darwin --bundles app --config src-tauri/tauri.appstore-dev.conf.json", diff --git a/apps/readest-app/scripts/tauri.mjs b/apps/readest-app/scripts/tauri.mjs new file mode 100755 index 000000000..190f382ef --- /dev/null +++ b/apps/readest-app/scripts/tauri.mjs @@ -0,0 +1,113 @@ +#!/usr/bin/env node +// `pnpm tauri [tauri args] [-- cargo args]`. +// +// Every platform but Linux goes straight to the npm @tauri-apps/cli, which +// builds on the readest tauri fork (the wry runtime). On Linux the desktop +// commands (dev, build, bundle) run on the CEF runtime instead: this uses the +// tauri CLI published from upstream's `feat/cef` branch and adds what the CEF +// build needs on top of the normal tauri command line: +// - `--features cef` so the CLI bundles the CEF distribution and cargo +// compiles the CEF runtime (`cef = ["tauri/cef"]` in src-tauri/Cargo.toml); +// - `--no-default-features` (cargo side) to drop the `wry` runtime, see +// src-tauri/Cargo.toml; +// - `--config src-tauri/.cargo/cef.toml` (cargo side) to take tauri and the +// plugins from the `feat/cef` branches instead of the readest fork. +// +// Cargo resolves that graph differently from the fork graph every other +// platform builds, and it can only write one Cargo.lock. So for the duration +// of the command the repo's Cargo.cef.lock is swapped in as Cargo.lock and the +// original is put back afterwards; the CEF resolution is saved back to +// Cargo.cef.lock, which is committed like Cargo.lock. The original is parked +// in Cargo.lock.wry meanwhile, created exclusively so two CEF commands in one +// checkout cannot swap over each other; if a run is killed hard (SIGKILL) +// before the swap back, `mv Cargo.lock.wry Cargo.lock` restores it. +// +// Mobile commands (`tauri android ...`, `tauri ios ...`) and the tauri +// webdriver test harness (scripts/test-tauri.sh, which needs WebKitWebDriver) +// keep the wry runtime on Linux too. +import { spawn } from 'node:child_process'; +import fs from 'node:fs'; +import { createRequire } from 'node:module'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; + +const CEF_CLI = '@tauri-apps/cli-cef@3.0.0-alpha.26'; +// Offline builds (Flatpak) cannot `pnpm dlx`; they point this at an unpacked +// copy of the CLI package's `tauri.js` instead. +const localCefCli = process.env['TAURI_CEF_CLI']; +const appDir = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..'); +const repoRoot = path.resolve(appDir, '../..'); +const cargoConfig = path.join(appDir, 'src-tauri/.cargo/cef.toml'); +const lockPath = path.join(repoRoot, 'Cargo.lock'); +const cefLockPath = path.join(repoRoot, 'Cargo.cef.lock'); +const savedLockPath = path.join(repoRoot, 'Cargo.lock.wry'); + +const [command, ...rest] = process.argv.slice(2); +const useCef = process.platform === 'linux' && ['dev', 'build', 'bundle'].includes(command); + +const run = (file, args, cleanup = () => {}) => { + const child = spawn(file, args, { stdio: 'inherit' }); + child.on('exit', (code, signal) => { + cleanup(); + process.exit(code ?? (signal ? 1 : 0)); + }); + child.on('error', (error) => { + cleanup(); + console.error(error); + process.exit(1); + }); +}; + +if (!useCef) { + const tauriCli = createRequire(import.meta.url).resolve('@tauri-apps/cli/tauri.js'); + run('node', [tauriCli, ...process.argv.slice(2)]); +} else { + const split = rest.indexOf('--'); + const tauriArgs = split === -1 ? rest : rest.slice(0, split); + const cargoArgs = split === -1 ? [] : rest.slice(split + 1); + const args = [ + command, + '--features', + 'cef', + ...tauriArgs, + '--', + '--no-default-features', + '--config', + cargoConfig, + ...cargoArgs, + ]; + + try { + fs.writeFileSync(savedLockPath, fs.readFileSync(lockPath), { flag: 'wx' }); + } catch (error) { + if (error.code !== 'EEXIST') throw error; + console.error( + `${savedLockPath} exists: another CEF build is running from this checkout, or an earlier ` + + 'one was killed before it could restore Cargo.lock. Wait for it to finish, or run ' + + '`mv Cargo.lock.wry Cargo.lock`.', + ); + process.exit(1); + } + if (fs.existsSync(cefLockPath)) { + fs.copyFileSync(cefLockPath, lockPath); + } + let swapped = true; + const restoreLock = () => { + if (!swapped) return; + fs.copyFileSync(lockPath, cefLockPath); + fs.renameSync(savedLockPath, lockPath); + swapped = false; + }; + + // Ctrl-C reaches the child through the process group; stay alive until it + // has exited so the lock swap is undone. + for (const signal of ['SIGINT', 'SIGTERM', 'SIGHUP']) { + process.on(signal, () => {}); + } + + if (localCefCli) { + run('node', [localCefCli, ...args], restoreLock); + } else { + run('pnpm', ['dlx', CEF_CLI, ...args], restoreLock); + } +} diff --git a/apps/readest-app/src-tauri/.cargo/cef.toml b/apps/readest-app/src-tauri/.cargo/cef.toml new file mode 100644 index 000000000..2a06607c6 --- /dev/null +++ b/apps/readest-app/src-tauri/.cargo/cef.toml @@ -0,0 +1,41 @@ +# Cargo config for the Linux CEF build. Cargo does not load it on its own: +# `pnpm tauri:cef` (scripts/tauri-cef.mjs) hands it to cargo with `--config`, +# so every other build keeps resolving tauri from the readest fork pinned in +# the root Cargo.toml. Linux needs nothing from that fork, so the CEF build +# takes the whole tauri family and the plugins straight from upstream's +# `feat/cef` branches; a config-level patch wins over the manifest one. +# +# The family is patched together because two versions of tauri-utils or +# tauri-build in one graph break `generate_context!`. The plugin patches are +# picked up only while Cargo.lock keeps each plugin at the version published +# on `feat/cef`: cargo prefers a newer crates.io release over a lower-versioned +# patch, so bumping a plugin past that branch silently drops back to the +# crates.io build, and the four scoped plugins (fs, http, opener, shell) then +# fail to compile against `feat/cef`'s schemars-1 `tauri-plugin`. +[patch.crates-io] +tauri = { git = "https://github.com/readest/tauri", branch = "feat/cef" } +tauri-build = { git = "https://github.com/readest/tauri", branch = "feat/cef" } +tauri-codegen = { git = "https://github.com/readest/tauri", branch = "feat/cef" } +tauri-macros = { git = "https://github.com/readest/tauri", branch = "feat/cef" } +tauri-plugin = { git = "https://github.com/readest/tauri", branch = "feat/cef" } +tauri-runtime = { git = "https://github.com/readest/tauri", branch = "feat/cef" } +tauri-utils = { git = "https://github.com/readest/tauri", branch = "feat/cef" } + +tauri-plugin-biometric = { git = "https://github.com/readest/tauri-plugins-workspace", branch = "feat/cef" } +tauri-plugin-cli = { git = "https://github.com/readest/tauri-plugins-workspace", branch = "feat/cef" } +tauri-plugin-clipboard-manager = { git = "https://github.com/readest/tauri-plugins-workspace", branch = "feat/cef" } +tauri-plugin-deep-link = { git = "https://github.com/readest/tauri-plugins-workspace", branch = "feat/cef" } +tauri-plugin-dialog = { git = "https://github.com/readest/tauri-plugins-workspace", branch = "feat/cef" } +tauri-plugin-fs = { git = "https://github.com/readest/tauri-plugins-workspace", branch = "feat/cef" } +tauri-plugin-haptics = { git = "https://github.com/readest/tauri-plugins-workspace", branch = "feat/cef" } +tauri-plugin-http = { git = "https://github.com/readest/tauri-plugins-workspace", branch = "feat/cef" } +tauri-plugin-log = { git = "https://github.com/readest/tauri-plugins-workspace", branch = "feat/cef" } +tauri-plugin-opener = { git = "https://github.com/readest/tauri-plugins-workspace", branch = "feat/cef" } +tauri-plugin-os = { git = "https://github.com/readest/tauri-plugins-workspace", branch = "feat/cef" } +tauri-plugin-persisted-scope = { git = "https://github.com/readest/tauri-plugins-workspace", branch = "feat/cef" } +tauri-plugin-process = { git = "https://github.com/readest/tauri-plugins-workspace", branch = "feat/cef" } +tauri-plugin-shell = { git = "https://github.com/readest/tauri-plugins-workspace", branch = "feat/cef" } +tauri-plugin-single-instance = { git = "https://github.com/readest/tauri-plugins-workspace", branch = "feat/cef" } +tauri-plugin-updater = { git = "https://github.com/readest/tauri-plugins-workspace", branch = "feat/cef" } +tauri-plugin-websocket = { git = "https://github.com/readest/tauri-plugins-workspace", branch = "feat/cef" } +tauri-plugin-window-state = { git = "https://github.com/readest/tauri-plugins-workspace", branch = "feat/cef" } diff --git a/apps/readest-app/src-tauri/.gitignore b/apps/readest-app/src-tauri/.gitignore index 502406b4e..83cf4cf79 100644 --- a/apps/readest-app/src-tauri/.gitignore +++ b/apps/readest-app/src-tauri/.gitignore @@ -2,3 +2,6 @@ # will have compiled files and executables /target/ /gen/schemas +# Regenerated by tauri-build on every build; newer tauri-build keeps them out +# of the source tree altogether. +/permissions/autogenerated diff --git a/apps/readest-app/src-tauri/Cargo.toml b/apps/readest-app/src-tauri/Cargo.toml index e501653e7..28910446d 100644 --- a/apps/readest-app/src-tauri/Cargo.toml +++ b/apps/readest-app/src-tauri/Cargo.toml @@ -15,6 +15,16 @@ name = "readestlib" crate-type = ["staticlib", "cdylib", "lib"] [features] +default = ["wry"] +# WebKitGTK / WebView2 / WKWebView runtime. The Linux CEF build turns it off +# (`--no-default-features --features cef`, see scripts/tauri-cef.mjs). +wry = ["tauri/wry"] +# Chromium Embedded Framework runtime, Linux only (`pnpm tauri:cef`). The +# tauri CLI keys CEF bundling off this app feature, and it only becomes the +# real runtime when `tauri` resolves to upstream's feat/cef through +# .cargo/cef.toml; the readest fork carries a no-op stub of the same name so +# the feature can be declared here on every platform. +cef = ["tauri/cef"] # Internal feature to suppress warnings from old objc crate cargo-clippy = [] # Enable WebDriver plugin for E2E testing (use with `tauri build --debug --features webdriver`) @@ -42,11 +52,21 @@ reqwest = { version = "0.12", default-features = false, features = [ "json", "stream", ] } -tauri = { version = "2", features = [ "protocol-asset" ] } +# `default-features = false` so the Linux CEF build (`pnpm tauri:cef`) can pick +# the webview runtime: tauri's defaults are spelled out here and `wry` comes +# back through this crate's own `default` feature, so every other build is +# unchanged. See .cargo/cef.toml. +tauri = { version = "2", default-features = false, features = [ + "protocol-asset", + "compression", + "common-controls-v6", + "dynamic-acl", + "x11", + "dbus", +] } tauri-build = "2" tauri-plugin-log = "2" tauri-plugin-fs = "2" -tauri-plugin-dialog = "2" tauri-plugin-os = "2" # `unsafe-headers` lets callers pass fetch-spec "forbidden" headers (Origin, # Referer, Cookie, ...) instead of having the plugin silently drop them. Needed @@ -165,6 +185,18 @@ objc2 = "0.6" objc2-authentication-services = "0.3" objc2-foundation = { version = "0.3", features = ["NSError", "NSArray"] } +# Linux uses the XDG desktop portal for dialogs instead of rfd's gtk3 backend. +# rfd's gtk3 chooser pumps GTK on a private thread, and that thread iterates +# the default GLib main context that CEF's browser process also runs its X11 +# event source on, so mouse events get dispatched off Chromium's UI thread +# and mojo aborts the app (SIGTRAP) as soon as the dialog closes. The portal +# runs out of process over D-Bus; other platforms keep the native chooser. +[target.'cfg(target_os = "linux")'.dependencies] +tauri-plugin-dialog = { version = "2", default-features = false, features = ["xdg-portal"] } + +[target.'cfg(not(target_os = "linux"))'.dependencies] +tauri-plugin-dialog = "2" + [target.'cfg(any(target_os = "macos", windows, target_os = "linux"))'.dependencies] tauri-plugin-cli = "2" tauri-plugin-single-instance = "2" diff --git a/apps/readest-app/src-tauri/capabilities/default.json b/apps/readest-app/src-tauri/capabilities/default.json index 0678ef7dc..0176557fc 100644 --- a/apps/readest-app/src-tauri/capabilities/default.json +++ b/apps/readest-app/src-tauri/capabilities/default.json @@ -134,6 +134,7 @@ "core:window:allow-maximize", "core:window:allow-unmaximize", "core:window:allow-set-size", + "core:window:allow-set-position", "core:window:allow-set-title", "core:window:allow-set-focus", "core:window:allow-is-maximized", diff --git a/apps/readest-app/src-tauri/permissions/autogenerated/allow_paths_in_scopes.toml b/apps/readest-app/src-tauri/permissions/autogenerated/allow_paths_in_scopes.toml deleted file mode 100644 index 434511aef..000000000 --- a/apps/readest-app/src-tauri/permissions/autogenerated/allow_paths_in_scopes.toml +++ /dev/null @@ -1,11 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -[[permission]] -identifier = "allow-allow-paths-in-scopes" -description = "Enables the allow_paths_in_scopes command without any pre-configured scope." -commands.allow = ["allow_paths_in_scopes"] - -[[permission]] -identifier = "deny-allow-paths-in-scopes" -description = "Denies the allow_paths_in_scopes command without any pre-configured scope." -commands.deny = ["allow_paths_in_scopes"] diff --git a/apps/readest-app/src-tauri/permissions/autogenerated/auth_with_safari.toml b/apps/readest-app/src-tauri/permissions/autogenerated/auth_with_safari.toml deleted file mode 100644 index 7efdc1791..000000000 --- a/apps/readest-app/src-tauri/permissions/autogenerated/auth_with_safari.toml +++ /dev/null @@ -1,11 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -[[permission]] -identifier = "allow-auth-with-safari" -description = "Enables the auth_with_safari command without any pre-configured scope." -commands.allow = ["auth_with_safari"] - -[[permission]] -identifier = "deny-auth-with-safari" -description = "Denies the auth_with_safari command without any pre-configured scope." -commands.deny = ["auth_with_safari"] diff --git a/apps/readest-app/src-tauri/permissions/autogenerated/clear_book_presence.toml b/apps/readest-app/src-tauri/permissions/autogenerated/clear_book_presence.toml deleted file mode 100644 index 5d86fda1f..000000000 --- a/apps/readest-app/src-tauri/permissions/autogenerated/clear_book_presence.toml +++ /dev/null @@ -1,11 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -[[permission]] -identifier = "allow-clear-book-presence" -description = "Enables the clear_book_presence command without any pre-configured scope." -commands.allow = ["clear_book_presence"] - -[[permission]] -identifier = "deny-clear-book-presence" -description = "Denies the clear_book_presence command without any pre-configured scope." -commands.deny = ["clear_book_presence"] diff --git a/apps/readest-app/src-tauri/permissions/autogenerated/clip_url.toml b/apps/readest-app/src-tauri/permissions/autogenerated/clip_url.toml deleted file mode 100644 index 839b8f715..000000000 --- a/apps/readest-app/src-tauri/permissions/autogenerated/clip_url.toml +++ /dev/null @@ -1,11 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -[[permission]] -identifier = "allow-clip-url" -description = "Enables the clip_url command without any pre-configured scope." -commands.allow = ["clip_url"] - -[[permission]] -identifier = "deny-clip-url" -description = "Denies the clip_url command without any pre-configured scope." -commands.deny = ["clip_url"] diff --git a/apps/readest-app/src-tauri/permissions/autogenerated/download_file.toml b/apps/readest-app/src-tauri/permissions/autogenerated/download_file.toml deleted file mode 100644 index 61fba473e..000000000 --- a/apps/readest-app/src-tauri/permissions/autogenerated/download_file.toml +++ /dev/null @@ -1,11 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -[[permission]] -identifier = "allow-download-file" -description = "Enables the download_file command without any pre-configured scope." -commands.allow = ["download_file"] - -[[permission]] -identifier = "deny-download-file" -description = "Denies the download_file command without any pre-configured scope." -commands.deny = ["download_file"] diff --git a/apps/readest-app/src-tauri/permissions/autogenerated/extract_epub_cover_full.toml b/apps/readest-app/src-tauri/permissions/autogenerated/extract_epub_cover_full.toml deleted file mode 100644 index 19a7d9674..000000000 --- a/apps/readest-app/src-tauri/permissions/autogenerated/extract_epub_cover_full.toml +++ /dev/null @@ -1,11 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -[[permission]] -identifier = "allow-extract-epub-cover-full" -description = "Enables the extract_epub_cover_full command without any pre-configured scope." -commands.allow = ["extract_epub_cover_full"] - -[[permission]] -identifier = "deny-extract-epub-cover-full" -description = "Denies the extract_epub_cover_full command without any pre-configured scope." -commands.deny = ["extract_epub_cover_full"] diff --git a/apps/readest-app/src-tauri/permissions/autogenerated/extract_mobi_cover_full.toml b/apps/readest-app/src-tauri/permissions/autogenerated/extract_mobi_cover_full.toml deleted file mode 100644 index 52ec9afd3..000000000 --- a/apps/readest-app/src-tauri/permissions/autogenerated/extract_mobi_cover_full.toml +++ /dev/null @@ -1,11 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -[[permission]] -identifier = "allow-extract-mobi-cover-full" -description = "Enables the extract_mobi_cover_full command without any pre-configured scope." -commands.allow = ["extract_mobi_cover_full"] - -[[permission]] -identifier = "deny-extract-mobi-cover-full" -description = "Denies the extract_mobi_cover_full command without any pre-configured scope." -commands.deny = ["extract_mobi_cover_full"] diff --git a/apps/readest-app/src-tauri/permissions/autogenerated/get_environment_variable.toml b/apps/readest-app/src-tauri/permissions/autogenerated/get_environment_variable.toml deleted file mode 100644 index 77fe405eb..000000000 --- a/apps/readest-app/src-tauri/permissions/autogenerated/get_environment_variable.toml +++ /dev/null @@ -1,11 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -[[permission]] -identifier = "allow-get-environment-variable" -description = "Enables the get_environment_variable command without any pre-configured scope." -commands.allow = ["get_environment_variable"] - -[[permission]] -identifier = "deny-get-environment-variable" -description = "Denies the get_environment_variable command without any pre-configured scope." -commands.deny = ["get_environment_variable"] diff --git a/apps/readest-app/src-tauri/permissions/autogenerated/get_executable_dir.toml b/apps/readest-app/src-tauri/permissions/autogenerated/get_executable_dir.toml deleted file mode 100644 index 9f7e860ff..000000000 --- a/apps/readest-app/src-tauri/permissions/autogenerated/get_executable_dir.toml +++ /dev/null @@ -1,11 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -[[permission]] -identifier = "allow-get-executable-dir" -description = "Enables the get_executable_dir command without any pre-configured scope." -commands.allow = ["get_executable_dir"] - -[[permission]] -identifier = "deny-get-executable-dir" -description = "Denies the get_executable_dir command without any pre-configured scope." -commands.deny = ["get_executable_dir"] diff --git a/apps/readest-app/src-tauri/permissions/autogenerated/install_nightly_update.toml b/apps/readest-app/src-tauri/permissions/autogenerated/install_nightly_update.toml deleted file mode 100644 index 5e68d6d52..000000000 --- a/apps/readest-app/src-tauri/permissions/autogenerated/install_nightly_update.toml +++ /dev/null @@ -1,11 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -[[permission]] -identifier = "allow-install-nightly-update" -description = "Enables the install_nightly_update command without any pre-configured scope." -commands.allow = ["install_nightly_update"] - -[[permission]] -identifier = "deny-install-nightly-update" -description = "Denies the install_nightly_update command without any pre-configured scope." -commands.deny = ["install_nightly_update"] diff --git a/apps/readest-app/src-tauri/permissions/autogenerated/is_updater_disabled.toml b/apps/readest-app/src-tauri/permissions/autogenerated/is_updater_disabled.toml deleted file mode 100644 index 69ffa0a2b..000000000 --- a/apps/readest-app/src-tauri/permissions/autogenerated/is_updater_disabled.toml +++ /dev/null @@ -1,11 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -[[permission]] -identifier = "allow-is-updater-disabled" -description = "Enables the is_updater_disabled command without any pre-configured scope." -commands.allow = ["is_updater_disabled"] - -[[permission]] -identifier = "deny-is-updater-disabled" -description = "Denies the is_updater_disabled command without any pre-configured scope." -commands.deny = ["is_updater_disabled"] diff --git a/apps/readest-app/src-tauri/permissions/autogenerated/localsend_announce.toml b/apps/readest-app/src-tauri/permissions/autogenerated/localsend_announce.toml deleted file mode 100644 index 526704e56..000000000 --- a/apps/readest-app/src-tauri/permissions/autogenerated/localsend_announce.toml +++ /dev/null @@ -1,11 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -[[permission]] -identifier = "allow-localsend-announce" -description = "Enables the localsend_announce command without any pre-configured scope." -commands.allow = ["localsend_announce"] - -[[permission]] -identifier = "deny-localsend-announce" -description = "Denies the localsend_announce command without any pre-configured scope." -commands.deny = ["localsend_announce"] diff --git a/apps/readest-app/src-tauri/permissions/autogenerated/localsend_cancel_receive.toml b/apps/readest-app/src-tauri/permissions/autogenerated/localsend_cancel_receive.toml deleted file mode 100644 index 14017dd23..000000000 --- a/apps/readest-app/src-tauri/permissions/autogenerated/localsend_cancel_receive.toml +++ /dev/null @@ -1,11 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -[[permission]] -identifier = "allow-localsend-cancel-receive" -description = "Enables the localsend_cancel_receive command without any pre-configured scope." -commands.allow = ["localsend_cancel_receive"] - -[[permission]] -identifier = "deny-localsend-cancel-receive" -description = "Denies the localsend_cancel_receive command without any pre-configured scope." -commands.deny = ["localsend_cancel_receive"] diff --git a/apps/readest-app/src-tauri/permissions/autogenerated/localsend_cancel_send.toml b/apps/readest-app/src-tauri/permissions/autogenerated/localsend_cancel_send.toml deleted file mode 100644 index f3336644c..000000000 --- a/apps/readest-app/src-tauri/permissions/autogenerated/localsend_cancel_send.toml +++ /dev/null @@ -1,11 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -[[permission]] -identifier = "allow-localsend-cancel-send" -description = "Enables the localsend_cancel_send command without any pre-configured scope." -commands.allow = ["localsend_cancel_send"] - -[[permission]] -identifier = "deny-localsend-cancel-send" -description = "Denies the localsend_cancel_send command without any pre-configured scope." -commands.deny = ["localsend_cancel_send"] diff --git a/apps/readest-app/src-tauri/permissions/autogenerated/localsend_get_status.toml b/apps/readest-app/src-tauri/permissions/autogenerated/localsend_get_status.toml deleted file mode 100644 index b673656f8..000000000 --- a/apps/readest-app/src-tauri/permissions/autogenerated/localsend_get_status.toml +++ /dev/null @@ -1,11 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -[[permission]] -identifier = "allow-localsend-get-status" -description = "Enables the localsend_get_status command without any pre-configured scope." -commands.allow = ["localsend_get_status"] - -[[permission]] -identifier = "deny-localsend-get-status" -description = "Denies the localsend_get_status command without any pre-configured scope." -commands.deny = ["localsend_get_status"] diff --git a/apps/readest-app/src-tauri/permissions/autogenerated/localsend_is_alive.toml b/apps/readest-app/src-tauri/permissions/autogenerated/localsend_is_alive.toml deleted file mode 100644 index 19d6c8a3f..000000000 --- a/apps/readest-app/src-tauri/permissions/autogenerated/localsend_is_alive.toml +++ /dev/null @@ -1,11 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -[[permission]] -identifier = "allow-localsend-is-alive" -description = "Enables the localsend_is_alive command without any pre-configured scope." -commands.allow = ["localsend_is_alive"] - -[[permission]] -identifier = "deny-localsend-is-alive" -description = "Denies the localsend_is_alive command without any pre-configured scope." -commands.deny = ["localsend_is_alive"] diff --git a/apps/readest-app/src-tauri/permissions/autogenerated/localsend_list_devices.toml b/apps/readest-app/src-tauri/permissions/autogenerated/localsend_list_devices.toml deleted file mode 100644 index bd3a29441..000000000 --- a/apps/readest-app/src-tauri/permissions/autogenerated/localsend_list_devices.toml +++ /dev/null @@ -1,11 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -[[permission]] -identifier = "allow-localsend-list-devices" -description = "Enables the localsend_list_devices command without any pre-configured scope." -commands.allow = ["localsend_list_devices"] - -[[permission]] -identifier = "deny-localsend-list-devices" -description = "Denies the localsend_list_devices command without any pre-configured scope." -commands.deny = ["localsend_list_devices"] diff --git a/apps/readest-app/src-tauri/permissions/autogenerated/localsend_respond.toml b/apps/readest-app/src-tauri/permissions/autogenerated/localsend_respond.toml deleted file mode 100644 index 0932078da..000000000 --- a/apps/readest-app/src-tauri/permissions/autogenerated/localsend_respond.toml +++ /dev/null @@ -1,11 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -[[permission]] -identifier = "allow-localsend-respond" -description = "Enables the localsend_respond command without any pre-configured scope." -commands.allow = ["localsend_respond"] - -[[permission]] -identifier = "deny-localsend-respond" -description = "Denies the localsend_respond command without any pre-configured scope." -commands.deny = ["localsend_respond"] diff --git a/apps/readest-app/src-tauri/permissions/autogenerated/localsend_send_files.toml b/apps/readest-app/src-tauri/permissions/autogenerated/localsend_send_files.toml deleted file mode 100644 index e228e6de2..000000000 --- a/apps/readest-app/src-tauri/permissions/autogenerated/localsend_send_files.toml +++ /dev/null @@ -1,11 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -[[permission]] -identifier = "allow-localsend-send-files" -description = "Enables the localsend_send_files command without any pre-configured scope." -commands.allow = ["localsend_send_files"] - -[[permission]] -identifier = "deny-localsend-send-files" -description = "Denies the localsend_send_files command without any pre-configured scope." -commands.deny = ["localsend_send_files"] diff --git a/apps/readest-app/src-tauri/permissions/autogenerated/localsend_set_discoverable.toml b/apps/readest-app/src-tauri/permissions/autogenerated/localsend_set_discoverable.toml deleted file mode 100644 index 142c2bdd8..000000000 --- a/apps/readest-app/src-tauri/permissions/autogenerated/localsend_set_discoverable.toml +++ /dev/null @@ -1,11 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -[[permission]] -identifier = "allow-localsend-set-discoverable" -description = "Enables the localsend_set_discoverable command without any pre-configured scope." -commands.allow = ["localsend_set_discoverable"] - -[[permission]] -identifier = "deny-localsend-set-discoverable" -description = "Denies the localsend_set_discoverable command without any pre-configured scope." -commands.deny = ["localsend_set_discoverable"] diff --git a/apps/readest-app/src-tauri/permissions/autogenerated/localsend_start.toml b/apps/readest-app/src-tauri/permissions/autogenerated/localsend_start.toml deleted file mode 100644 index 4c02613e3..000000000 --- a/apps/readest-app/src-tauri/permissions/autogenerated/localsend_start.toml +++ /dev/null @@ -1,11 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -[[permission]] -identifier = "allow-localsend-start" -description = "Enables the localsend_start command without any pre-configured scope." -commands.allow = ["localsend_start"] - -[[permission]] -identifier = "deny-localsend-start" -description = "Denies the localsend_start command without any pre-configured scope." -commands.deny = ["localsend_start"] diff --git a/apps/readest-app/src-tauri/permissions/autogenerated/localsend_stop.toml b/apps/readest-app/src-tauri/permissions/autogenerated/localsend_stop.toml deleted file mode 100644 index e01dd49cb..000000000 --- a/apps/readest-app/src-tauri/permissions/autogenerated/localsend_stop.toml +++ /dev/null @@ -1,11 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -[[permission]] -identifier = "allow-localsend-stop" -description = "Enables the localsend_stop command without any pre-configured scope." -commands.allow = ["localsend_stop"] - -[[permission]] -identifier = "deny-localsend-stop" -description = "Denies the localsend_stop command without any pre-configured scope." -commands.deny = ["localsend_stop"] diff --git a/apps/readest-app/src-tauri/permissions/autogenerated/open_web_browser.toml b/apps/readest-app/src-tauri/permissions/autogenerated/open_web_browser.toml deleted file mode 100644 index 464575ab0..000000000 --- a/apps/readest-app/src-tauri/permissions/autogenerated/open_web_browser.toml +++ /dev/null @@ -1,11 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -[[permission]] -identifier = "allow-open-web-browser" -description = "Enables the open_web_browser command without any pre-configured scope." -commands.allow = ["open_web_browser"] - -[[permission]] -identifier = "deny-open-web-browser" -description = "Denies the open_web_browser command without any pre-configured scope." -commands.deny = ["open_web_browser"] diff --git a/apps/readest-app/src-tauri/permissions/autogenerated/optimize_cover_thumbnails.toml b/apps/readest-app/src-tauri/permissions/autogenerated/optimize_cover_thumbnails.toml deleted file mode 100644 index 41fe32150..000000000 --- a/apps/readest-app/src-tauri/permissions/autogenerated/optimize_cover_thumbnails.toml +++ /dev/null @@ -1,11 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -[[permission]] -identifier = "allow-optimize-cover-thumbnails" -description = "Enables the optimize_cover_thumbnails command without any pre-configured scope." -commands.allow = ["optimize_cover_thumbnails"] - -[[permission]] -identifier = "deny-optimize-cover-thumbnails" -description = "Denies the optimize_cover_thumbnails command without any pre-configured scope." -commands.deny = ["optimize_cover_thumbnails"] diff --git a/apps/readest-app/src-tauri/permissions/autogenerated/parse_epub_full.toml b/apps/readest-app/src-tauri/permissions/autogenerated/parse_epub_full.toml deleted file mode 100644 index c4c580800..000000000 --- a/apps/readest-app/src-tauri/permissions/autogenerated/parse_epub_full.toml +++ /dev/null @@ -1,11 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -[[permission]] -identifier = "allow-parse-epub-full" -description = "Enables the parse_epub_full command without any pre-configured scope." -commands.allow = ["parse_epub_full"] - -[[permission]] -identifier = "deny-parse-epub-full" -description = "Denies the parse_epub_full command without any pre-configured scope." -commands.deny = ["parse_epub_full"] diff --git a/apps/readest-app/src-tauri/permissions/autogenerated/parse_epub_metadata.toml b/apps/readest-app/src-tauri/permissions/autogenerated/parse_epub_metadata.toml deleted file mode 100644 index c32fe6114..000000000 --- a/apps/readest-app/src-tauri/permissions/autogenerated/parse_epub_metadata.toml +++ /dev/null @@ -1,11 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -[[permission]] -identifier = "allow-parse-epub-metadata" -description = "Enables the parse_epub_metadata command without any pre-configured scope." -commands.allow = ["parse_epub_metadata"] - -[[permission]] -identifier = "deny-parse-epub-metadata" -description = "Denies the parse_epub_metadata command without any pre-configured scope." -commands.deny = ["parse_epub_metadata"] diff --git a/apps/readest-app/src-tauri/permissions/autogenerated/parse_mobi_metadata.toml b/apps/readest-app/src-tauri/permissions/autogenerated/parse_mobi_metadata.toml deleted file mode 100644 index 14dbc23bf..000000000 --- a/apps/readest-app/src-tauri/permissions/autogenerated/parse_mobi_metadata.toml +++ /dev/null @@ -1,11 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -[[permission]] -identifier = "allow-parse-mobi-metadata" -description = "Enables the parse_mobi_metadata command without any pre-configured scope." -commands.allow = ["parse_mobi_metadata"] - -[[permission]] -identifier = "deny-parse-mobi-metadata" -description = "Denies the parse_mobi_metadata command without any pre-configured scope." -commands.deny = ["parse_mobi_metadata"] diff --git a/apps/readest-app/src-tauri/permissions/autogenerated/parse_pdf_metadata.toml b/apps/readest-app/src-tauri/permissions/autogenerated/parse_pdf_metadata.toml deleted file mode 100644 index 95dad40d9..000000000 --- a/apps/readest-app/src-tauri/permissions/autogenerated/parse_pdf_metadata.toml +++ /dev/null @@ -1,11 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -[[permission]] -identifier = "allow-parse-pdf-metadata" -description = "Enables the parse_pdf_metadata command without any pre-configured scope." -commands.allow = ["parse_pdf_metadata"] - -[[permission]] -identifier = "deny-parse-pdf-metadata" -description = "Denies the parse_pdf_metadata command without any pre-configured scope." -commands.deny = ["parse_pdf_metadata"] diff --git a/apps/readest-app/src-tauri/permissions/autogenerated/read_dir.toml b/apps/readest-app/src-tauri/permissions/autogenerated/read_dir.toml deleted file mode 100644 index db602b9ad..000000000 --- a/apps/readest-app/src-tauri/permissions/autogenerated/read_dir.toml +++ /dev/null @@ -1,11 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -[[permission]] -identifier = "allow-read-dir" -description = "Enables the read_dir command without any pre-configured scope." -commands.allow = ["read_dir"] - -[[permission]] -identifier = "deny-read-dir" -description = "Denies the read_dir command without any pre-configured scope." -commands.deny = ["read_dir"] diff --git a/apps/readest-app/src-tauri/permissions/autogenerated/render_pdf_cover.toml b/apps/readest-app/src-tauri/permissions/autogenerated/render_pdf_cover.toml deleted file mode 100644 index ccd2c8f51..000000000 --- a/apps/readest-app/src-tauri/permissions/autogenerated/render_pdf_cover.toml +++ /dev/null @@ -1,11 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -[[permission]] -identifier = "allow-render-pdf-cover" -description = "Enables the render_pdf_cover command without any pre-configured scope." -commands.allow = ["render_pdf_cover"] - -[[permission]] -identifier = "deny-render-pdf-cover" -description = "Denies the render_pdf_cover command without any pre-configured scope." -commands.deny = ["render_pdf_cover"] diff --git a/apps/readest-app/src-tauri/permissions/autogenerated/set_traffic_lights.toml b/apps/readest-app/src-tauri/permissions/autogenerated/set_traffic_lights.toml deleted file mode 100644 index 984fe44b3..000000000 --- a/apps/readest-app/src-tauri/permissions/autogenerated/set_traffic_lights.toml +++ /dev/null @@ -1,11 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -[[permission]] -identifier = "allow-set-traffic-lights" -description = "Enables the set_traffic_lights command without any pre-configured scope." -commands.allow = ["set_traffic_lights"] - -[[permission]] -identifier = "deny-set-traffic-lights" -description = "Denies the set_traffic_lights command without any pre-configured scope." -commands.deny = ["set_traffic_lights"] diff --git a/apps/readest-app/src-tauri/permissions/autogenerated/set_web_browser_status.toml b/apps/readest-app/src-tauri/permissions/autogenerated/set_web_browser_status.toml deleted file mode 100644 index 162fac4cf..000000000 --- a/apps/readest-app/src-tauri/permissions/autogenerated/set_web_browser_status.toml +++ /dev/null @@ -1,11 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -[[permission]] -identifier = "allow-set-web-browser-status" -description = "Enables the set_web_browser_status command without any pre-configured scope." -commands.allow = ["set_web_browser_status"] - -[[permission]] -identifier = "deny-set-web-browser-status" -description = "Denies the set_web_browser_status command without any pre-configured scope." -commands.deny = ["set_web_browser_status"] diff --git a/apps/readest-app/src-tauri/permissions/autogenerated/set_webview_info.toml b/apps/readest-app/src-tauri/permissions/autogenerated/set_webview_info.toml deleted file mode 100644 index 6d89d6db2..000000000 --- a/apps/readest-app/src-tauri/permissions/autogenerated/set_webview_info.toml +++ /dev/null @@ -1,11 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -[[permission]] -identifier = "allow-set-webview-info" -description = "Enables the set_webview_info command without any pre-configured scope." -commands.allow = ["set_webview_info"] - -[[permission]] -identifier = "deny-set-webview-info" -description = "Denies the set_webview_info command without any pre-configured scope." -commands.deny = ["set_webview_info"] diff --git a/apps/readest-app/src-tauri/permissions/autogenerated/show_lookup_popover.toml b/apps/readest-app/src-tauri/permissions/autogenerated/show_lookup_popover.toml deleted file mode 100644 index e537b884e..000000000 --- a/apps/readest-app/src-tauri/permissions/autogenerated/show_lookup_popover.toml +++ /dev/null @@ -1,11 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -[[permission]] -identifier = "allow-show-lookup-popover" -description = "Enables the show_lookup_popover command without any pre-configured scope." -commands.allow = ["show_lookup_popover"] - -[[permission]] -identifier = "deny-show-lookup-popover" -description = "Denies the show_lookup_popover command without any pre-configured scope." -commands.deny = ["show_lookup_popover"] diff --git a/apps/readest-app/src-tauri/permissions/autogenerated/spawn_fresh_browser.toml b/apps/readest-app/src-tauri/permissions/autogenerated/spawn_fresh_browser.toml deleted file mode 100644 index 47d695704..000000000 --- a/apps/readest-app/src-tauri/permissions/autogenerated/spawn_fresh_browser.toml +++ /dev/null @@ -1,11 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -[[permission]] -identifier = "allow-spawn-fresh-browser" -description = "Enables the spawn_fresh_browser command without any pre-configured scope." -commands.allow = ["spawn_fresh_browser"] - -[[permission]] -identifier = "deny-spawn-fresh-browser" -description = "Denies the spawn_fresh_browser command without any pre-configured scope." -commands.deny = ["spawn_fresh_browser"] diff --git a/apps/readest-app/src-tauri/permissions/autogenerated/start_apple_sign_in.toml b/apps/readest-app/src-tauri/permissions/autogenerated/start_apple_sign_in.toml deleted file mode 100644 index c1807b751..000000000 --- a/apps/readest-app/src-tauri/permissions/autogenerated/start_apple_sign_in.toml +++ /dev/null @@ -1,11 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -[[permission]] -identifier = "allow-start-apple-sign-in" -description = "Enables the start_apple_sign_in command without any pre-configured scope." -commands.allow = ["start_apple_sign_in"] - -[[permission]] -identifier = "deny-start-apple-sign-in" -description = "Denies the start_apple_sign_in command without any pre-configured scope." -commands.deny = ["start_apple_sign_in"] diff --git a/apps/readest-app/src-tauri/permissions/autogenerated/start_server.toml b/apps/readest-app/src-tauri/permissions/autogenerated/start_server.toml deleted file mode 100644 index 329b75e13..000000000 --- a/apps/readest-app/src-tauri/permissions/autogenerated/start_server.toml +++ /dev/null @@ -1,11 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -[[permission]] -identifier = "allow-start-server" -description = "Enables the start_server command without any pre-configured scope." -commands.allow = ["start_server"] - -[[permission]] -identifier = "deny-start-server" -description = "Denies the start_server command without any pre-configured scope." -commands.deny = ["start_server"] diff --git a/apps/readest-app/src-tauri/permissions/autogenerated/update_book_presence.toml b/apps/readest-app/src-tauri/permissions/autogenerated/update_book_presence.toml deleted file mode 100644 index 250671f60..000000000 --- a/apps/readest-app/src-tauri/permissions/autogenerated/update_book_presence.toml +++ /dev/null @@ -1,11 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -[[permission]] -identifier = "allow-update-book-presence" -description = "Enables the update_book_presence command without any pre-configured scope." -commands.allow = ["update_book_presence"] - -[[permission]] -identifier = "deny-update-book-presence" -description = "Denies the update_book_presence command without any pre-configured scope." -commands.deny = ["update_book_presence"] diff --git a/apps/readest-app/src-tauri/permissions/autogenerated/upload_file.toml b/apps/readest-app/src-tauri/permissions/autogenerated/upload_file.toml deleted file mode 100644 index 1454b46c3..000000000 --- a/apps/readest-app/src-tauri/permissions/autogenerated/upload_file.toml +++ /dev/null @@ -1,11 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -[[permission]] -identifier = "allow-upload-file" -description = "Enables the upload_file command without any pre-configured scope." -commands.allow = ["upload_file"] - -[[permission]] -identifier = "deny-upload-file" -description = "Denies the upload_file command without any pre-configured scope." -commands.deny = ["upload_file"] diff --git a/apps/readest-app/src-tauri/permissions/autogenerated/verify_update_signature.toml b/apps/readest-app/src-tauri/permissions/autogenerated/verify_update_signature.toml deleted file mode 100644 index bf03720c6..000000000 --- a/apps/readest-app/src-tauri/permissions/autogenerated/verify_update_signature.toml +++ /dev/null @@ -1,11 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -[[permission]] -identifier = "allow-verify-update-signature" -description = "Enables the verify_update_signature command without any pre-configured scope." -commands.allow = ["verify_update_signature"] - -[[permission]] -identifier = "deny-verify-update-signature" -description = "Denies the verify_update_signature command without any pre-configured scope." -commands.deny = ["verify_update_signature"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/.gitignore b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/.gitignore index 50d8e32e8..b03c008ee 100644 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/.gitignore +++ b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/.gitignore @@ -15,3 +15,8 @@ node_modules/ dist-js dist + +# Regenerated by tauri-plugin on every build; newer tauri-plugin keeps the +# command permissions out of the source tree altogether. +/permissions/autogenerated +/permissions/schemas diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/build.rs b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/build.rs index e4b4e4b46..52c5cb7e9 100644 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/build.rs +++ b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/build.rs @@ -41,6 +41,10 @@ const COMMANDS: &[&str] = &[ "clip_url", "open_web_browser", "set_web_browser_status", + "set_sync_passphrase", + "get_sync_passphrase", + "clear_sync_passphrase", + "is_sync_keychain_available", "set_secure_item", "get_secure_item", "clear_secure_item", diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/auth_with_custom_tab.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/auth_with_custom_tab.toml deleted file mode 100644 index abc93432b..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/auth_with_custom_tab.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-auth-with-custom-tab" -description = "Enables the auth_with_custom_tab command without any pre-configured scope." -commands.allow = ["auth_with_custom_tab"] - -[[permission]] -identifier = "deny-auth-with-custom-tab" -description = "Denies the auth_with_custom_tab command without any pre-configured scope." -commands.deny = ["auth_with_custom_tab"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/auth_with_safari.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/auth_with_safari.toml deleted file mode 100644 index 197b63b13..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/auth_with_safari.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-auth-with-safari" -description = "Enables the auth_with_safari command without any pre-configured scope." -commands.allow = ["auth_with_safari"] - -[[permission]] -identifier = "deny-auth-with-safari" -description = "Denies the auth_with_safari command without any pre-configured scope." -commands.deny = ["auth_with_safari"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/capture_webview_region.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/capture_webview_region.toml deleted file mode 100644 index f4898e009..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/capture_webview_region.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-capture-webview-region" -description = "Enables the capture_webview_region command without any pre-configured scope." -commands.allow = ["capture_webview_region"] - -[[permission]] -identifier = "deny-capture-webview-region" -description = "Denies the capture_webview_region command without any pre-configured scope." -commands.deny = ["capture_webview_region"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/check-permissions.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/check-permissions.toml deleted file mode 100644 index 5fcc19b38..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/check-permissions.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-check-permissions" -description = "Enables the check-permissions command without any pre-configured scope." -commands.allow = ["check-permissions"] - -[[permission]] -identifier = "deny-check-permissions" -description = "Denies the check-permissions command without any pre-configured scope." -commands.deny = ["check-permissions"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/checkPermissions.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/checkPermissions.toml deleted file mode 100644 index dd209449f..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/checkPermissions.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-checkPermissions" -description = "Enables the checkPermissions command without any pre-configured scope." -commands.allow = ["checkPermissions"] - -[[permission]] -identifier = "deny-checkPermissions" -description = "Denies the checkPermissions command without any pre-configured scope." -commands.deny = ["checkPermissions"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/check_permissions.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/check_permissions.toml deleted file mode 100644 index f5af08b13..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/check_permissions.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-check-permissions" -description = "Enables the check_permissions command without any pre-configured scope." -commands.allow = ["check_permissions"] - -[[permission]] -identifier = "deny-check-permissions" -description = "Denies the check_permissions command without any pre-configured scope." -commands.deny = ["check_permissions"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/clear_lookup_dictionary.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/clear_lookup_dictionary.toml deleted file mode 100644 index c2d7051ba..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/clear_lookup_dictionary.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-clear-lookup-dictionary" -description = "Enables the clear_lookup_dictionary command without any pre-configured scope." -commands.allow = ["clear_lookup_dictionary"] - -[[permission]] -identifier = "deny-clear-lookup-dictionary" -description = "Denies the clear_lookup_dictionary command without any pre-configured scope." -commands.deny = ["clear_lookup_dictionary"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/clear_secure_item.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/clear_secure_item.toml deleted file mode 100644 index 36b7f4c10..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/clear_secure_item.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-clear-secure-item" -description = "Enables the clear_secure_item command without any pre-configured scope." -commands.allow = ["clear_secure_item"] - -[[permission]] -identifier = "deny-clear-secure-item" -description = "Denies the clear_secure_item command without any pre-configured scope." -commands.deny = ["clear_secure_item"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/clear_sync_passphrase.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/clear_sync_passphrase.toml deleted file mode 100644 index b2806ec46..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/clear_sync_passphrase.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-clear-sync-passphrase" -description = "Enables the clear_sync_passphrase command without any pre-configured scope." -commands.allow = ["clear_sync_passphrase"] - -[[permission]] -identifier = "deny-clear-sync-passphrase" -description = "Denies the clear_sync_passphrase command without any pre-configured scope." -commands.deny = ["clear_sync_passphrase"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/clip_url.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/clip_url.toml deleted file mode 100644 index 2be89e487..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/clip_url.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-clip-url" -description = "Enables the clip_url command without any pre-configured scope." -commands.allow = ["clip_url"] - -[[permission]] -identifier = "deny-clip-url" -description = "Denies the clip_url command without any pre-configured scope." -commands.deny = ["clip_url"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/copy_uri_to_path.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/copy_uri_to_path.toml deleted file mode 100644 index eb6fe8641..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/copy_uri_to_path.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-copy-uri-to-path" -description = "Enables the copy_uri_to_path command without any pre-configured scope." -commands.allow = ["copy_uri_to_path"] - -[[permission]] -identifier = "deny-copy-uri-to-path" -description = "Denies the copy_uri_to_path command without any pre-configured scope." -commands.deny = ["copy_uri_to_path"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/get_external_sdcard_path.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/get_external_sdcard_path.toml deleted file mode 100644 index 87acb43d8..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/get_external_sdcard_path.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-get-external-sdcard-path" -description = "Enables the get_external_sdcard_path command without any pre-configured scope." -commands.allow = ["get_external_sdcard_path"] - -[[permission]] -identifier = "deny-get-external-sdcard-path" -description = "Denies the get_external_sdcard_path command without any pre-configured scope." -commands.deny = ["get_external_sdcard_path"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/get_lookup_dictionary.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/get_lookup_dictionary.toml deleted file mode 100644 index 1276f9603..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/get_lookup_dictionary.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-get-lookup-dictionary" -description = "Enables the get_lookup_dictionary command without any pre-configured scope." -commands.allow = ["get_lookup_dictionary"] - -[[permission]] -identifier = "deny-get-lookup-dictionary" -description = "Denies the get_lookup_dictionary command without any pre-configured scope." -commands.deny = ["get_lookup_dictionary"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/get_safe_area_insets.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/get_safe_area_insets.toml deleted file mode 100644 index c74d1c8c4..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/get_safe_area_insets.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-get-safe-area-insets" -description = "Enables the get_safe_area_insets command without any pre-configured scope." -commands.allow = ["get_safe_area_insets"] - -[[permission]] -identifier = "deny-get-safe-area-insets" -description = "Denies the get_safe_area_insets command without any pre-configured scope." -commands.deny = ["get_safe_area_insets"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/get_screen_brightness.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/get_screen_brightness.toml deleted file mode 100644 index deaf5ad7d..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/get_screen_brightness.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-get-screen-brightness" -description = "Enables the get_screen_brightness command without any pre-configured scope." -commands.allow = ["get_screen_brightness"] - -[[permission]] -identifier = "deny-get-screen-brightness" -description = "Denies the get_screen_brightness command without any pre-configured scope." -commands.deny = ["get_screen_brightness"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/get_secure_item.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/get_secure_item.toml deleted file mode 100644 index 54ecb152c..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/get_secure_item.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-get-secure-item" -description = "Enables the get_secure_item command without any pre-configured scope." -commands.allow = ["get_secure_item"] - -[[permission]] -identifier = "deny-get-secure-item" -description = "Denies the get_secure_item command without any pre-configured scope." -commands.deny = ["get_secure_item"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/get_status_bar_height.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/get_status_bar_height.toml deleted file mode 100644 index d0aae5bf1..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/get_status_bar_height.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-get-status-bar-height" -description = "Enables the get_status_bar_height command without any pre-configured scope." -commands.allow = ["get_status_bar_height"] - -[[permission]] -identifier = "deny-get-status-bar-height" -description = "Denies the get_status_bar_height command without any pre-configured scope." -commands.deny = ["get_status_bar_height"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/get_storefront_region_code.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/get_storefront_region_code.toml deleted file mode 100644 index 5f0c6fda6..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/get_storefront_region_code.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-get-storefront-region-code" -description = "Enables the get_storefront_region_code command without any pre-configured scope." -commands.allow = ["get_storefront_region_code"] - -[[permission]] -identifier = "deny-get-storefront-region-code" -description = "Denies the get_storefront_region_code command without any pre-configured scope." -commands.deny = ["get_storefront_region_code"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/get_sync_passphrase.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/get_sync_passphrase.toml deleted file mode 100644 index eab94ce90..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/get_sync_passphrase.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-get-sync-passphrase" -description = "Enables the get_sync_passphrase command without any pre-configured scope." -commands.allow = ["get_sync_passphrase"] - -[[permission]] -identifier = "deny-get-sync-passphrase" -description = "Denies the get_sync_passphrase command without any pre-configured scope." -commands.deny = ["get_sync_passphrase"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/get_sys_fonts_list.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/get_sys_fonts_list.toml deleted file mode 100644 index e34f33190..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/get_sys_fonts_list.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-get-sys-fonts-list" -description = "Enables the get_sys_fonts_list command without any pre-configured scope." -commands.allow = ["get_sys_fonts_list"] - -[[permission]] -identifier = "deny-get-sys-fonts-list" -description = "Denies the get_sys_fonts_list command without any pre-configured scope." -commands.deny = ["get_sys_fonts_list"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/get_system_color_scheme.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/get_system_color_scheme.toml deleted file mode 100644 index e18bbb6cf..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/get_system_color_scheme.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-get-system-color-scheme" -description = "Enables the get_system_color_scheme command without any pre-configured scope." -commands.allow = ["get_system_color_scheme"] - -[[permission]] -identifier = "deny-get-system-color-scheme" -description = "Denies the get_system_color_scheme command without any pre-configured scope." -commands.deny = ["get_system_color_scheme"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/has_ambient_light_sensor.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/has_ambient_light_sensor.toml deleted file mode 100644 index 9fc9ab08a..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/has_ambient_light_sensor.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-has-ambient-light-sensor" -description = "Enables the has_ambient_light_sensor command without any pre-configured scope." -commands.allow = ["has_ambient_light_sensor"] - -[[permission]] -identifier = "deny-has-ambient-light-sensor" -description = "Denies the has_ambient_light_sensor command without any pre-configured scope." -commands.deny = ["has_ambient_light_sensor"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/iap_fetch_products.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/iap_fetch_products.toml deleted file mode 100644 index a28ae0d83..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/iap_fetch_products.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-iap-fetch-products" -description = "Enables the iap_fetch_products command without any pre-configured scope." -commands.allow = ["iap_fetch_products"] - -[[permission]] -identifier = "deny-iap-fetch-products" -description = "Denies the iap_fetch_products command without any pre-configured scope." -commands.deny = ["iap_fetch_products"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/iap_initialize.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/iap_initialize.toml deleted file mode 100644 index 80e531c7b..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/iap_initialize.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-iap-initialize" -description = "Enables the iap_initialize command without any pre-configured scope." -commands.allow = ["iap_initialize"] - -[[permission]] -identifier = "deny-iap-initialize" -description = "Denies the iap_initialize command without any pre-configured scope." -commands.deny = ["iap_initialize"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/iap_is_available.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/iap_is_available.toml deleted file mode 100644 index 1a330edec..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/iap_is_available.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-iap-is-available" -description = "Enables the iap_is_available command without any pre-configured scope." -commands.allow = ["iap_is_available"] - -[[permission]] -identifier = "deny-iap-is-available" -description = "Denies the iap_is_available command without any pre-configured scope." -commands.deny = ["iap_is_available"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/iap_purchase_product.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/iap_purchase_product.toml deleted file mode 100644 index c2583d2b4..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/iap_purchase_product.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-iap-purchase-product" -description = "Enables the iap_purchase_product command without any pre-configured scope." -commands.allow = ["iap_purchase_product"] - -[[permission]] -identifier = "deny-iap-purchase-product" -description = "Denies the iap_purchase_product command without any pre-configured scope." -commands.deny = ["iap_purchase_product"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/iap_restore_purchases.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/iap_restore_purchases.toml deleted file mode 100644 index debee0095..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/iap_restore_purchases.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-iap-restore-purchases" -description = "Enables the iap_restore_purchases command without any pre-configured scope." -commands.allow = ["iap_restore_purchases"] - -[[permission]] -identifier = "deny-iap-restore-purchases" -description = "Denies the iap_restore_purchases command without any pre-configured scope." -commands.deny = ["iap_restore_purchases"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/icloud_container_status.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/icloud_container_status.toml deleted file mode 100644 index 954128c92..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/icloud_container_status.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-icloud-container-status" -description = "Enables the icloud_container_status command without any pre-configured scope." -commands.allow = ["icloud_container_status"] - -[[permission]] -identifier = "deny-icloud-container-status" -description = "Denies the icloud_container_status command without any pre-configured scope." -commands.deny = ["icloud_container_status"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/icloud_ensure_downloaded.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/icloud_ensure_downloaded.toml deleted file mode 100644 index 00e251b15..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/icloud_ensure_downloaded.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-icloud-ensure-downloaded" -description = "Enables the icloud_ensure_downloaded command without any pre-configured scope." -commands.allow = ["icloud_ensure_downloaded"] - -[[permission]] -identifier = "deny-icloud-ensure-downloaded" -description = "Denies the icloud_ensure_downloaded command without any pre-configured scope." -commands.deny = ["icloud_ensure_downloaded"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/install_package.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/install_package.toml deleted file mode 100644 index 9071b84dd..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/install_package.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-install-package" -description = "Enables the install_package command without any pre-configured scope." -commands.allow = ["install_package"] - -[[permission]] -identifier = "deny-install-package" -description = "Denies the install_package command without any pre-configured scope." -commands.deny = ["install_package"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/intercept_keys.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/intercept_keys.toml deleted file mode 100644 index 250a702a6..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/intercept_keys.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-intercept-keys" -description = "Enables the intercept_keys command without any pre-configured scope." -commands.allow = ["intercept_keys"] - -[[permission]] -identifier = "deny-intercept-keys" -description = "Denies the intercept_keys command without any pre-configured scope." -commands.deny = ["intercept_keys"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/is_sync_keychain_available.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/is_sync_keychain_available.toml deleted file mode 100644 index b20f07f6d..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/is_sync_keychain_available.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-is-sync-keychain-available" -description = "Enables the is_sync_keychain_available command without any pre-configured scope." -commands.allow = ["is_sync_keychain_available"] - -[[permission]] -identifier = "deny-is-sync-keychain-available" -description = "Denies the is_sync_keychain_available command without any pre-configured scope." -commands.deny = ["is_sync_keychain_available"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/lock_screen_orientation.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/lock_screen_orientation.toml deleted file mode 100644 index ddf675ff1..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/lock_screen_orientation.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-lock-screen-orientation" -description = "Enables the lock_screen_orientation command without any pre-configured scope." -commands.allow = ["lock_screen_orientation"] - -[[permission]] -identifier = "deny-lock-screen-orientation" -description = "Denies the lock_screen_orientation command without any pre-configured scope." -commands.deny = ["lock_screen_orientation"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/open_external_url.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/open_external_url.toml deleted file mode 100644 index 4cc8c7636..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/open_external_url.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-open-external-url" -description = "Enables the open_external_url command without any pre-configured scope." -commands.allow = ["open_external_url"] - -[[permission]] -identifier = "deny-open-external-url" -description = "Denies the open_external_url command without any pre-configured scope." -commands.deny = ["open_external_url"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/open_web_browser.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/open_web_browser.toml deleted file mode 100644 index 098d22e5b..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/open_web_browser.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-open-web-browser" -description = "Enables the open_web_browser command without any pre-configured scope." -commands.allow = ["open_web_browser"] - -[[permission]] -identifier = "deny-open-web-browser" -description = "Denies the open_web_browser command without any pre-configured scope." -commands.deny = ["open_web_browser"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/read_share_clip_html.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/read_share_clip_html.toml deleted file mode 100644 index a8281d62d..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/read_share_clip_html.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-read-share-clip-html" -description = "Enables the read_share_clip_html command without any pre-configured scope." -commands.allow = ["read_share_clip_html"] - -[[permission]] -identifier = "deny-read-share-clip-html" -description = "Denies the read_share_clip_html command without any pre-configured scope." -commands.deny = ["read_share_clip_html"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/refresh_eink_screen.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/refresh_eink_screen.toml deleted file mode 100644 index db0938610..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/refresh_eink_screen.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-refresh-eink-screen" -description = "Enables the refresh_eink_screen command without any pre-configured scope." -commands.allow = ["refresh_eink_screen"] - -[[permission]] -identifier = "deny-refresh-eink-screen" -description = "Denies the refresh_eink_screen command without any pre-configured scope." -commands.deny = ["refresh_eink_screen"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/register_listener.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/register_listener.toml deleted file mode 100644 index 48363c0d5..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/register_listener.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-register-listener" -description = "Enables the register_listener command without any pre-configured scope." -commands.allow = ["register_listener"] - -[[permission]] -identifier = "deny-register-listener" -description = "Denies the register_listener command without any pre-configured scope." -commands.deny = ["register_listener"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/remove_listener.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/remove_listener.toml deleted file mode 100644 index 9f315e51e..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/remove_listener.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-remove-listener" -description = "Enables the remove_listener command without any pre-configured scope." -commands.allow = ["remove_listener"] - -[[permission]] -identifier = "deny-remove-listener" -description = "Denies the remove_listener command without any pre-configured scope." -commands.deny = ["remove_listener"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/render_pdf_cover.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/render_pdf_cover.toml deleted file mode 100644 index ae4c0c0e9..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/render_pdf_cover.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-render-pdf-cover" -description = "Enables the render_pdf_cover command without any pre-configured scope." -commands.allow = ["render_pdf_cover"] - -[[permission]] -identifier = "deny-render-pdf-cover" -description = "Denies the render_pdf_cover command without any pre-configured scope." -commands.deny = ["render_pdf_cover"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/request-permissions.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/request-permissions.toml deleted file mode 100644 index 03991cb9f..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/request-permissions.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-request-permissions" -description = "Enables the request-permissions command without any pre-configured scope." -commands.allow = ["request-permissions"] - -[[permission]] -identifier = "deny-request-permissions" -description = "Denies the request-permissions command without any pre-configured scope." -commands.deny = ["request-permissions"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/requestPermissions.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/requestPermissions.toml deleted file mode 100644 index b3238d63a..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/requestPermissions.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-requestPermissions" -description = "Enables the requestPermissions command without any pre-configured scope." -commands.allow = ["requestPermissions"] - -[[permission]] -identifier = "deny-requestPermissions" -description = "Denies the requestPermissions command without any pre-configured scope." -commands.deny = ["requestPermissions"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/request_manage_storage_permission.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/request_manage_storage_permission.toml deleted file mode 100644 index 634a21995..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/request_manage_storage_permission.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-request-manage-storage-permission" -description = "Enables the request_manage_storage_permission command without any pre-configured scope." -commands.allow = ["request_manage_storage_permission"] - -[[permission]] -identifier = "deny-request-manage-storage-permission" -description = "Denies the request_manage_storage_permission command without any pre-configured scope." -commands.deny = ["request_manage_storage_permission"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/request_permissions.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/request_permissions.toml deleted file mode 100644 index 02dcd6271..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/request_permissions.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-request-permissions" -description = "Enables the request_permissions command without any pre-configured scope." -commands.allow = ["request_permissions"] - -[[permission]] -identifier = "deny-request-permissions" -description = "Denies the request_permissions command without any pre-configured scope." -commands.deny = ["request_permissions"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/save_image_to_gallery.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/save_image_to_gallery.toml deleted file mode 100644 index 19fd7e881..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/save_image_to_gallery.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-save-image-to-gallery" -description = "Enables the save_image_to_gallery command without any pre-configured scope." -commands.allow = ["save_image_to_gallery"] - -[[permission]] -identifier = "deny-save-image-to-gallery" -description = "Denies the save_image_to_gallery command without any pre-configured scope." -commands.deny = ["save_image_to_gallery"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/select_directory.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/select_directory.toml deleted file mode 100644 index 79ce86cda..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/select_directory.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-select-directory" -description = "Enables the select_directory command without any pre-configured scope." -commands.allow = ["select_directory"] - -[[permission]] -identifier = "deny-select-directory" -description = "Denies the select_directory command without any pre-configured scope." -commands.deny = ["select_directory"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/set_multicast_lock.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/set_multicast_lock.toml deleted file mode 100644 index 876b638a2..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/set_multicast_lock.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-set-multicast-lock" -description = "Enables the set_multicast_lock command without any pre-configured scope." -commands.allow = ["set_multicast_lock"] - -[[permission]] -identifier = "deny-set-multicast-lock" -description = "Denies the set_multicast_lock command without any pre-configured scope." -commands.deny = ["set_multicast_lock"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/set_screen_brightness.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/set_screen_brightness.toml deleted file mode 100644 index 468d7dc78..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/set_screen_brightness.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-set-screen-brightness" -description = "Enables the set_screen_brightness command without any pre-configured scope." -commands.allow = ["set_screen_brightness"] - -[[permission]] -identifier = "deny-set-screen-brightness" -description = "Denies the set_screen_brightness command without any pre-configured scope." -commands.deny = ["set_screen_brightness"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/set_secure_item.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/set_secure_item.toml deleted file mode 100644 index e3348d0ac..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/set_secure_item.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-set-secure-item" -description = "Enables the set_secure_item command without any pre-configured scope." -commands.allow = ["set_secure_item"] - -[[permission]] -identifier = "deny-set-secure-item" -description = "Denies the set_secure_item command without any pre-configured scope." -commands.deny = ["set_secure_item"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/set_selection_suppressed.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/set_selection_suppressed.toml deleted file mode 100644 index 18e823d29..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/set_selection_suppressed.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-set-selection-suppressed" -description = "Enables the set_selection_suppressed command without any pre-configured scope." -commands.allow = ["set_selection_suppressed"] - -[[permission]] -identifier = "deny-set-selection-suppressed" -description = "Denies the set_selection_suppressed command without any pre-configured scope." -commands.deny = ["set_selection_suppressed"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/set_sync_passphrase.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/set_sync_passphrase.toml deleted file mode 100644 index 69cca95d8..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/set_sync_passphrase.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-set-sync-passphrase" -description = "Enables the set_sync_passphrase command without any pre-configured scope." -commands.allow = ["set_sync_passphrase"] - -[[permission]] -identifier = "deny-set-sync-passphrase" -description = "Denies the set_sync_passphrase command without any pre-configured scope." -commands.deny = ["set_sync_passphrase"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/set_system_ui_visibility.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/set_system_ui_visibility.toml deleted file mode 100644 index 7b1b54271..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/set_system_ui_visibility.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-set-system-ui-visibility" -description = "Enables the set_system_ui_visibility command without any pre-configured scope." -commands.allow = ["set_system_ui_visibility"] - -[[permission]] -identifier = "deny-set-system-ui-visibility" -description = "Denies the set_system_ui_visibility command without any pre-configured scope." -commands.deny = ["set_system_ui_visibility"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/set_web_browser_status.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/set_web_browser_status.toml deleted file mode 100644 index 0a912bb38..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/set_web_browser_status.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-set-web-browser-status" -description = "Enables the set_web_browser_status command without any pre-configured scope." -commands.allow = ["set_web_browser_status"] - -[[permission]] -identifier = "deny-set-web-browser-status" -description = "Denies the set_web_browser_status command without any pre-configured scope." -commands.deny = ["set_web_browser_status"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/show_file_picker.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/show_file_picker.toml deleted file mode 100644 index 24c8b2132..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/show_file_picker.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-show-file-picker" -description = "Enables the show_file_picker command without any pre-configured scope." -commands.allow = ["show_file_picker"] - -[[permission]] -identifier = "deny-show-file-picker" -description = "Denies the show_file_picker command without any pre-configured scope." -commands.deny = ["show_file_picker"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/show_lookup_popover.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/show_lookup_popover.toml deleted file mode 100644 index 90060edbc..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/show_lookup_popover.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-show-lookup-popover" -description = "Enables the show_lookup_popover command without any pre-configured scope." -commands.allow = ["show_lookup_popover"] - -[[permission]] -identifier = "deny-show-lookup-popover" -description = "Denies the show_lookup_popover command without any pre-configured scope." -commands.deny = ["show_lookup_popover"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/start_ambient_light_updates.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/start_ambient_light_updates.toml deleted file mode 100644 index 35eb72c99..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/start_ambient_light_updates.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-start-ambient-light-updates" -description = "Enables the start_ambient_light_updates command without any pre-configured scope." -commands.allow = ["start_ambient_light_updates"] - -[[permission]] -identifier = "deny-start-ambient-light-updates" -description = "Denies the start_ambient_light_updates command without any pre-configured scope." -commands.deny = ["start_ambient_light_updates"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/stop_ambient_light_updates.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/stop_ambient_light_updates.toml deleted file mode 100644 index 2a8c98630..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/stop_ambient_light_updates.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-stop-ambient-light-updates" -description = "Enables the stop_ambient_light_updates command without any pre-configured scope." -commands.allow = ["stop_ambient_light_updates"] - -[[permission]] -identifier = "deny-stop-ambient-light-updates" -description = "Denies the stop_ambient_light_updates command without any pre-configured scope." -commands.deny = ["stop_ambient_light_updates"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/update_reading_widget.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/update_reading_widget.toml deleted file mode 100644 index 875888638..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/update_reading_widget.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-update-reading-widget" -description = "Enables the update_reading_widget command without any pre-configured scope." -commands.allow = ["update_reading_widget"] - -[[permission]] -identifier = "deny-update-reading-widget" -description = "Denies the update_reading_widget command without any pre-configured scope." -commands.deny = ["update_reading_widget"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/use_background_audio.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/use_background_audio.toml deleted file mode 100644 index f416bf98e..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/commands/use_background_audio.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-use-background-audio" -description = "Enables the use_background_audio command without any pre-configured scope." -commands.allow = ["use_background_audio"] - -[[permission]] -identifier = "deny-use-background-audio" -description = "Denies the use_background_audio command without any pre-configured scope." -commands.deny = ["use_background_audio"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/reference.md b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/reference.md deleted file mode 100644 index 1b9cb4a3c..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/autogenerated/reference.md +++ /dev/null @@ -1,1603 +0,0 @@ -## Default Permission - -Default permissions for the plugin - -#### This default permission set includes the following: - -- `allow-auth-with-safari` -- `allow-auth-with-custom-tab` -- `allow-copy-uri-to-path` -- `allow-save-image-to-gallery` -- `allow-use-background-audio` -- `allow-set-multicast-lock` -- `allow-install-package` -- `allow-set-system-ui-visibility` -- `allow-get-status-bar-height` -- `allow-get-sys-fonts-list` -- `allow-intercept-keys` -- `allow-lock-screen-orientation` -- `allow-iap-is-available` -- `allow-iap-initialize` -- `allow-iap-fetch-products` -- `allow-iap-purchase-product` -- `allow-iap-restore-purchases` -- `allow-get-system-color-scheme` -- `allow-get-safe-area-insets` -- `allow-get-screen-brightness` -- `allow-set-screen-brightness` -- `allow-has-ambient-light-sensor` -- `allow-start-ambient-light-updates` -- `allow-stop-ambient-light-updates` -- `allow-get-external-sdcard-path` -- `allow-open-external-url` -- `allow-show-lookup-popover` -- `allow-get-lookup-dictionary` -- `allow-clear-lookup-dictionary` -- `allow-select-directory` -- `allow-show-file-picker` -- `allow-get-storefront-region-code` -- `allow-request-manage-storage-permission` -- `allow-register-listener` -- `allow-remove-listener` -- `allow-check-permissions` -- `allow-request-permissions` -- `allow-checkPermissions` -- `allow-requestPermissions` -- `allow-set-sync-passphrase` -- `allow-get-sync-passphrase` -- `allow-clear-sync-passphrase` -- `allow-is-sync-keychain-available` -- `allow-set-secure-item` -- `allow-get-secure-item` -- `allow-clear-secure-item` -- `allow-refresh-eink-screen` -- `allow-update-reading-widget` -- `allow-capture-webview-region` -- `allow-set-selection-suppressed` -- `allow-read-share-clip-html` -- `allow-icloud-container-status` -- `allow-icloud-ensure-downloaded` - -## Permission Table - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IdentifierDescription
- -`native-bridge:allow-auth-with-custom-tab` - - - -Enables the auth_with_custom_tab command without any pre-configured scope. - -
- -`native-bridge:deny-auth-with-custom-tab` - - - -Denies the auth_with_custom_tab command without any pre-configured scope. - -
- -`native-bridge:allow-auth-with-safari` - - - -Enables the auth_with_safari command without any pre-configured scope. - -
- -`native-bridge:deny-auth-with-safari` - - - -Denies the auth_with_safari command without any pre-configured scope. - -
- -`native-bridge:allow-capture-webview-region` - - - -Enables the capture_webview_region command without any pre-configured scope. - -
- -`native-bridge:deny-capture-webview-region` - - - -Denies the capture_webview_region command without any pre-configured scope. - -
- -`native-bridge:allow-check-permissions` - - - -Enables the check-permissions command without any pre-configured scope. - -
- -`native-bridge:deny-check-permissions` - - - -Denies the check-permissions command without any pre-configured scope. - -
- -`native-bridge:allow-checkPermissions` - - - -Enables the checkPermissions command without any pre-configured scope. - -
- -`native-bridge:deny-checkPermissions` - - - -Denies the checkPermissions command without any pre-configured scope. - -
- -`native-bridge:allow-check-permissions` - - - -Enables the check_permissions command without any pre-configured scope. - -
- -`native-bridge:deny-check-permissions` - - - -Denies the check_permissions command without any pre-configured scope. - -
- -`native-bridge:allow-clear-lookup-dictionary` - - - -Enables the clear_lookup_dictionary command without any pre-configured scope. - -
- -`native-bridge:deny-clear-lookup-dictionary` - - - -Denies the clear_lookup_dictionary command without any pre-configured scope. - -
- -`native-bridge:allow-clear-secure-item` - - - -Enables the clear_secure_item command without any pre-configured scope. - -
- -`native-bridge:deny-clear-secure-item` - - - -Denies the clear_secure_item command without any pre-configured scope. - -
- -`native-bridge:allow-clear-sync-passphrase` - - - -Enables the clear_sync_passphrase command without any pre-configured scope. - -
- -`native-bridge:deny-clear-sync-passphrase` - - - -Denies the clear_sync_passphrase command without any pre-configured scope. - -
- -`native-bridge:allow-clip-url` - - - -Enables the clip_url command without any pre-configured scope. - -
- -`native-bridge:deny-clip-url` - - - -Denies the clip_url command without any pre-configured scope. - -
- -`native-bridge:allow-copy-uri-to-path` - - - -Enables the copy_uri_to_path command without any pre-configured scope. - -
- -`native-bridge:deny-copy-uri-to-path` - - - -Denies the copy_uri_to_path command without any pre-configured scope. - -
- -`native-bridge:allow-get-external-sdcard-path` - - - -Enables the get_external_sdcard_path command without any pre-configured scope. - -
- -`native-bridge:deny-get-external-sdcard-path` - - - -Denies the get_external_sdcard_path command without any pre-configured scope. - -
- -`native-bridge:allow-get-lookup-dictionary` - - - -Enables the get_lookup_dictionary command without any pre-configured scope. - -
- -`native-bridge:deny-get-lookup-dictionary` - - - -Denies the get_lookup_dictionary command without any pre-configured scope. - -
- -`native-bridge:allow-get-safe-area-insets` - - - -Enables the get_safe_area_insets command without any pre-configured scope. - -
- -`native-bridge:deny-get-safe-area-insets` - - - -Denies the get_safe_area_insets command without any pre-configured scope. - -
- -`native-bridge:allow-get-screen-brightness` - - - -Enables the get_screen_brightness command without any pre-configured scope. - -
- -`native-bridge:deny-get-screen-brightness` - - - -Denies the get_screen_brightness command without any pre-configured scope. - -
- -`native-bridge:allow-get-secure-item` - - - -Enables the get_secure_item command without any pre-configured scope. - -
- -`native-bridge:deny-get-secure-item` - - - -Denies the get_secure_item command without any pre-configured scope. - -
- -`native-bridge:allow-get-status-bar-height` - - - -Enables the get_status_bar_height command without any pre-configured scope. - -
- -`native-bridge:deny-get-status-bar-height` - - - -Denies the get_status_bar_height command without any pre-configured scope. - -
- -`native-bridge:allow-get-storefront-region-code` - - - -Enables the get_storefront_region_code command without any pre-configured scope. - -
- -`native-bridge:deny-get-storefront-region-code` - - - -Denies the get_storefront_region_code command without any pre-configured scope. - -
- -`native-bridge:allow-get-sync-passphrase` - - - -Enables the get_sync_passphrase command without any pre-configured scope. - -
- -`native-bridge:deny-get-sync-passphrase` - - - -Denies the get_sync_passphrase command without any pre-configured scope. - -
- -`native-bridge:allow-get-sys-fonts-list` - - - -Enables the get_sys_fonts_list command without any pre-configured scope. - -
- -`native-bridge:deny-get-sys-fonts-list` - - - -Denies the get_sys_fonts_list command without any pre-configured scope. - -
- -`native-bridge:allow-get-system-color-scheme` - - - -Enables the get_system_color_scheme command without any pre-configured scope. - -
- -`native-bridge:deny-get-system-color-scheme` - - - -Denies the get_system_color_scheme command without any pre-configured scope. - -
- -`native-bridge:allow-has-ambient-light-sensor` - - - -Enables the has_ambient_light_sensor command without any pre-configured scope. - -
- -`native-bridge:deny-has-ambient-light-sensor` - - - -Denies the has_ambient_light_sensor command without any pre-configured scope. - -
- -`native-bridge:allow-iap-fetch-products` - - - -Enables the iap_fetch_products command without any pre-configured scope. - -
- -`native-bridge:deny-iap-fetch-products` - - - -Denies the iap_fetch_products command without any pre-configured scope. - -
- -`native-bridge:allow-iap-initialize` - - - -Enables the iap_initialize command without any pre-configured scope. - -
- -`native-bridge:deny-iap-initialize` - - - -Denies the iap_initialize command without any pre-configured scope. - -
- -`native-bridge:allow-iap-is-available` - - - -Enables the iap_is_available command without any pre-configured scope. - -
- -`native-bridge:deny-iap-is-available` - - - -Denies the iap_is_available command without any pre-configured scope. - -
- -`native-bridge:allow-iap-purchase-product` - - - -Enables the iap_purchase_product command without any pre-configured scope. - -
- -`native-bridge:deny-iap-purchase-product` - - - -Denies the iap_purchase_product command without any pre-configured scope. - -
- -`native-bridge:allow-iap-restore-purchases` - - - -Enables the iap_restore_purchases command without any pre-configured scope. - -
- -`native-bridge:deny-iap-restore-purchases` - - - -Denies the iap_restore_purchases command without any pre-configured scope. - -
- -`native-bridge:allow-icloud-container-status` - - - -Enables the icloud_container_status command without any pre-configured scope. - -
- -`native-bridge:deny-icloud-container-status` - - - -Denies the icloud_container_status command without any pre-configured scope. - -
- -`native-bridge:allow-icloud-ensure-downloaded` - - - -Enables the icloud_ensure_downloaded command without any pre-configured scope. - -
- -`native-bridge:deny-icloud-ensure-downloaded` - - - -Denies the icloud_ensure_downloaded command without any pre-configured scope. - -
- -`native-bridge:allow-install-package` - - - -Enables the install_package command without any pre-configured scope. - -
- -`native-bridge:deny-install-package` - - - -Denies the install_package command without any pre-configured scope. - -
- -`native-bridge:allow-intercept-keys` - - - -Enables the intercept_keys command without any pre-configured scope. - -
- -`native-bridge:deny-intercept-keys` - - - -Denies the intercept_keys command without any pre-configured scope. - -
- -`native-bridge:allow-is-sync-keychain-available` - - - -Enables the is_sync_keychain_available command without any pre-configured scope. - -
- -`native-bridge:deny-is-sync-keychain-available` - - - -Denies the is_sync_keychain_available command without any pre-configured scope. - -
- -`native-bridge:allow-lock-screen-orientation` - - - -Enables the lock_screen_orientation command without any pre-configured scope. - -
- -`native-bridge:deny-lock-screen-orientation` - - - -Denies the lock_screen_orientation command without any pre-configured scope. - -
- -`native-bridge:allow-open-external-url` - - - -Enables the open_external_url command without any pre-configured scope. - -
- -`native-bridge:deny-open-external-url` - - - -Denies the open_external_url command without any pre-configured scope. - -
- -`native-bridge:allow-open-web-browser` - - - -Enables the open_web_browser command without any pre-configured scope. - -
- -`native-bridge:deny-open-web-browser` - - - -Denies the open_web_browser command without any pre-configured scope. - -
- -`native-bridge:allow-read-share-clip-html` - - - -Enables the read_share_clip_html command without any pre-configured scope. - -
- -`native-bridge:deny-read-share-clip-html` - - - -Denies the read_share_clip_html command without any pre-configured scope. - -
- -`native-bridge:allow-refresh-eink-screen` - - - -Enables the refresh_eink_screen command without any pre-configured scope. - -
- -`native-bridge:deny-refresh-eink-screen` - - - -Denies the refresh_eink_screen command without any pre-configured scope. - -
- -`native-bridge:allow-register-listener` - - - -Enables the register_listener command without any pre-configured scope. - -
- -`native-bridge:deny-register-listener` - - - -Denies the register_listener command without any pre-configured scope. - -
- -`native-bridge:allow-remove-listener` - - - -Enables the remove_listener command without any pre-configured scope. - -
- -`native-bridge:deny-remove-listener` - - - -Denies the remove_listener command without any pre-configured scope. - -
- -`native-bridge:allow-render-pdf-cover` - - - -Enables the render_pdf_cover command without any pre-configured scope. - -
- -`native-bridge:deny-render-pdf-cover` - - - -Denies the render_pdf_cover command without any pre-configured scope. - -
- -`native-bridge:allow-request-permissions` - - - -Enables the request-permissions command without any pre-configured scope. - -
- -`native-bridge:deny-request-permissions` - - - -Denies the request-permissions command without any pre-configured scope. - -
- -`native-bridge:allow-requestPermissions` - - - -Enables the requestPermissions command without any pre-configured scope. - -
- -`native-bridge:deny-requestPermissions` - - - -Denies the requestPermissions command without any pre-configured scope. - -
- -`native-bridge:allow-request-manage-storage-permission` - - - -Enables the request_manage_storage_permission command without any pre-configured scope. - -
- -`native-bridge:deny-request-manage-storage-permission` - - - -Denies the request_manage_storage_permission command without any pre-configured scope. - -
- -`native-bridge:allow-request-permissions` - - - -Enables the request_permissions command without any pre-configured scope. - -
- -`native-bridge:deny-request-permissions` - - - -Denies the request_permissions command without any pre-configured scope. - -
- -`native-bridge:allow-save-image-to-gallery` - - - -Enables the save_image_to_gallery command without any pre-configured scope. - -
- -`native-bridge:deny-save-image-to-gallery` - - - -Denies the save_image_to_gallery command without any pre-configured scope. - -
- -`native-bridge:allow-select-directory` - - - -Enables the select_directory command without any pre-configured scope. - -
- -`native-bridge:deny-select-directory` - - - -Denies the select_directory command without any pre-configured scope. - -
- -`native-bridge:allow-set-multicast-lock` - - - -Enables the set_multicast_lock command without any pre-configured scope. - -
- -`native-bridge:deny-set-multicast-lock` - - - -Denies the set_multicast_lock command without any pre-configured scope. - -
- -`native-bridge:allow-set-screen-brightness` - - - -Enables the set_screen_brightness command without any pre-configured scope. - -
- -`native-bridge:deny-set-screen-brightness` - - - -Denies the set_screen_brightness command without any pre-configured scope. - -
- -`native-bridge:allow-set-secure-item` - - - -Enables the set_secure_item command without any pre-configured scope. - -
- -`native-bridge:deny-set-secure-item` - - - -Denies the set_secure_item command without any pre-configured scope. - -
- -`native-bridge:allow-set-selection-suppressed` - - - -Enables the set_selection_suppressed command without any pre-configured scope. - -
- -`native-bridge:deny-set-selection-suppressed` - - - -Denies the set_selection_suppressed command without any pre-configured scope. - -
- -`native-bridge:allow-set-sync-passphrase` - - - -Enables the set_sync_passphrase command without any pre-configured scope. - -
- -`native-bridge:deny-set-sync-passphrase` - - - -Denies the set_sync_passphrase command without any pre-configured scope. - -
- -`native-bridge:allow-set-system-ui-visibility` - - - -Enables the set_system_ui_visibility command without any pre-configured scope. - -
- -`native-bridge:deny-set-system-ui-visibility` - - - -Denies the set_system_ui_visibility command without any pre-configured scope. - -
- -`native-bridge:allow-set-web-browser-status` - - - -Enables the set_web_browser_status command without any pre-configured scope. - -
- -`native-bridge:deny-set-web-browser-status` - - - -Denies the set_web_browser_status command without any pre-configured scope. - -
- -`native-bridge:allow-show-file-picker` - - - -Enables the show_file_picker command without any pre-configured scope. - -
- -`native-bridge:deny-show-file-picker` - - - -Denies the show_file_picker command without any pre-configured scope. - -
- -`native-bridge:allow-show-lookup-popover` - - - -Enables the show_lookup_popover command without any pre-configured scope. - -
- -`native-bridge:deny-show-lookup-popover` - - - -Denies the show_lookup_popover command without any pre-configured scope. - -
- -`native-bridge:allow-start-ambient-light-updates` - - - -Enables the start_ambient_light_updates command without any pre-configured scope. - -
- -`native-bridge:deny-start-ambient-light-updates` - - - -Denies the start_ambient_light_updates command without any pre-configured scope. - -
- -`native-bridge:allow-stop-ambient-light-updates` - - - -Enables the stop_ambient_light_updates command without any pre-configured scope. - -
- -`native-bridge:deny-stop-ambient-light-updates` - - - -Denies the stop_ambient_light_updates command without any pre-configured scope. - -
- -`native-bridge:allow-update-reading-widget` - - - -Enables the update_reading_widget command without any pre-configured scope. - -
- -`native-bridge:deny-update-reading-widget` - - - -Denies the update_reading_widget command without any pre-configured scope. - -
- -`native-bridge:allow-use-background-audio` - - - -Enables the use_background_audio command without any pre-configured scope. - -
- -`native-bridge:deny-use-background-audio` - - - -Denies the use_background_audio command without any pre-configured scope. - -
diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/schemas/schema.json b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/schemas/schema.json deleted file mode 100644 index 9c0a7a63d..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-bridge/permissions/schemas/schema.json +++ /dev/null @@ -1,1014 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "PermissionFile", - "description": "Permission file that can define a default permission, a set of permissions or a list of inlined permissions.", - "type": "object", - "properties": { - "default": { - "description": "The default permission set for the plugin", - "anyOf": [ - { - "$ref": "#/definitions/DefaultPermission" - }, - { - "type": "null" - } - ] - }, - "set": { - "description": "A list of permissions sets defined", - "type": "array", - "items": { - "$ref": "#/definitions/PermissionSet" - } - }, - "permission": { - "description": "A list of inlined permissions", - "default": [], - "type": "array", - "items": { - "$ref": "#/definitions/Permission" - } - } - }, - "definitions": { - "DefaultPermission": { - "description": "The default permission set of the plugin.\n\nWorks similarly to a permission with the \"default\" identifier.", - "type": "object", - "required": [ - "permissions" - ], - "properties": { - "version": { - "description": "The version of the permission.", - "type": [ - "integer", - "null" - ], - "format": "uint64", - "minimum": 1.0 - }, - "description": { - "description": "Human-readable description of what the permission does. Tauri convention is to use `

` headings in markdown content for Tauri documentation generation purposes.", - "type": [ - "string", - "null" - ] - }, - "permissions": { - "description": "All permissions this set contains.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "PermissionSet": { - "description": "A set of direct permissions grouped together under a new name.", - "type": "object", - "required": [ - "description", - "identifier", - "permissions" - ], - "properties": { - "identifier": { - "description": "A unique identifier for the permission.", - "type": "string" - }, - "description": { - "description": "Human-readable description of what the permission does.", - "type": "string" - }, - "permissions": { - "description": "All permissions this set contains.", - "type": "array", - "items": { - "$ref": "#/definitions/PermissionKind" - } - } - } - }, - "Permission": { - "description": "Descriptions of explicit privileges of commands.\n\nIt can enable commands to be accessible in the frontend of the application.\n\nIf the scope is defined it can be used to fine grain control the access of individual or multiple commands.", - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "version": { - "description": "The version of the permission.", - "type": [ - "integer", - "null" - ], - "format": "uint64", - "minimum": 1.0 - }, - "identifier": { - "description": "A unique identifier for the permission.", - "type": "string" - }, - "description": { - "description": "Human-readable description of what the permission does. Tauri internal convention is to use `

` headings in markdown content for Tauri documentation generation purposes.", - "type": [ - "string", - "null" - ] - }, - "commands": { - "description": "Allowed or denied commands when using this permission.", - "default": { - "allow": [], - "deny": [] - }, - "allOf": [ - { - "$ref": "#/definitions/Commands" - } - ] - }, - "scope": { - "description": "Allowed or denied scoped when using this permission.", - "allOf": [ - { - "$ref": "#/definitions/Scopes" - } - ] - }, - "platforms": { - "description": "Target platforms this permission applies. By default all platforms are affected by this permission.", - "type": [ - "array", - "null" - ], - "items": { - "$ref": "#/definitions/Target" - } - } - } - }, - "Commands": { - "description": "Allowed and denied commands inside a permission.\n\nIf two commands clash inside of `allow` and `deny`, it should be denied by default.", - "type": "object", - "properties": { - "allow": { - "description": "Allowed command.", - "default": [], - "type": "array", - "items": { - "type": "string" - } - }, - "deny": { - "description": "Denied command, which takes priority.", - "default": [], - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "Scopes": { - "description": "An argument for fine grained behavior control of Tauri commands.\n\nIt can be of any serde serializable type and is used to allow or prevent certain actions inside a Tauri command. The configured scope is passed to the command and will be enforced by the command implementation.\n\n## Example\n\n```json { \"allow\": [{ \"path\": \"$HOME/**\" }], \"deny\": [{ \"path\": \"$HOME/secret.txt\" }] } ```", - "type": "object", - "properties": { - "allow": { - "description": "Data that defines what is allowed by the scope.", - "type": [ - "array", - "null" - ], - "items": { - "$ref": "#/definitions/Value" - } - }, - "deny": { - "description": "Data that defines what is denied by the scope. This should be prioritized by validation logic.", - "type": [ - "array", - "null" - ], - "items": { - "$ref": "#/definitions/Value" - } - } - } - }, - "Value": { - "description": "All supported ACL values.", - "anyOf": [ - { - "description": "Represents a null JSON value.", - "type": "null" - }, - { - "description": "Represents a [`bool`].", - "type": "boolean" - }, - { - "description": "Represents a valid ACL [`Number`].", - "allOf": [ - { - "$ref": "#/definitions/Number" - } - ] - }, - { - "description": "Represents a [`String`].", - "type": "string" - }, - { - "description": "Represents a list of other [`Value`]s.", - "type": "array", - "items": { - "$ref": "#/definitions/Value" - } - }, - { - "description": "Represents a map of [`String`] keys to [`Value`]s.", - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/Value" - } - } - ] - }, - "Number": { - "description": "A valid ACL number.", - "anyOf": [ - { - "description": "Represents an [`i64`].", - "type": "integer", - "format": "int64" - }, - { - "description": "Represents a [`f64`].", - "type": "number", - "format": "double" - } - ] - }, - "Target": { - "description": "Platform target.", - "oneOf": [ - { - "description": "MacOS.", - "type": "string", - "enum": [ - "macOS" - ] - }, - { - "description": "Windows.", - "type": "string", - "enum": [ - "windows" - ] - }, - { - "description": "Linux.", - "type": "string", - "enum": [ - "linux" - ] - }, - { - "description": "Android.", - "type": "string", - "enum": [ - "android" - ] - }, - { - "description": "iOS.", - "type": "string", - "enum": [ - "iOS" - ] - } - ] - }, - "PermissionKind": { - "type": "string", - "oneOf": [ - { - "description": "Enables the auth_with_custom_tab command without any pre-configured scope.", - "type": "string", - "const": "allow-auth-with-custom-tab", - "markdownDescription": "Enables the auth_with_custom_tab command without any pre-configured scope." - }, - { - "description": "Denies the auth_with_custom_tab command without any pre-configured scope.", - "type": "string", - "const": "deny-auth-with-custom-tab", - "markdownDescription": "Denies the auth_with_custom_tab command without any pre-configured scope." - }, - { - "description": "Enables the auth_with_safari command without any pre-configured scope.", - "type": "string", - "const": "allow-auth-with-safari", - "markdownDescription": "Enables the auth_with_safari command without any pre-configured scope." - }, - { - "description": "Denies the auth_with_safari command without any pre-configured scope.", - "type": "string", - "const": "deny-auth-with-safari", - "markdownDescription": "Denies the auth_with_safari command without any pre-configured scope." - }, - { - "description": "Enables the capture_webview_region command without any pre-configured scope.", - "type": "string", - "const": "allow-capture-webview-region", - "markdownDescription": "Enables the capture_webview_region command without any pre-configured scope." - }, - { - "description": "Denies the capture_webview_region command without any pre-configured scope.", - "type": "string", - "const": "deny-capture-webview-region", - "markdownDescription": "Denies the capture_webview_region command without any pre-configured scope." - }, - { - "description": "Enables the check-permissions command without any pre-configured scope.", - "type": "string", - "const": "allow-check-permissions", - "markdownDescription": "Enables the check-permissions command without any pre-configured scope." - }, - { - "description": "Denies the check-permissions command without any pre-configured scope.", - "type": "string", - "const": "deny-check-permissions", - "markdownDescription": "Denies the check-permissions command without any pre-configured scope." - }, - { - "description": "Enables the checkPermissions command without any pre-configured scope.", - "type": "string", - "const": "allow-checkPermissions", - "markdownDescription": "Enables the checkPermissions command without any pre-configured scope." - }, - { - "description": "Denies the checkPermissions command without any pre-configured scope.", - "type": "string", - "const": "deny-checkPermissions", - "markdownDescription": "Denies the checkPermissions command without any pre-configured scope." - }, - { - "description": "Enables the check_permissions command without any pre-configured scope.", - "type": "string", - "const": "allow-check-permissions", - "markdownDescription": "Enables the check_permissions command without any pre-configured scope." - }, - { - "description": "Denies the check_permissions command without any pre-configured scope.", - "type": "string", - "const": "deny-check-permissions", - "markdownDescription": "Denies the check_permissions command without any pre-configured scope." - }, - { - "description": "Enables the clear_lookup_dictionary command without any pre-configured scope.", - "type": "string", - "const": "allow-clear-lookup-dictionary", - "markdownDescription": "Enables the clear_lookup_dictionary command without any pre-configured scope." - }, - { - "description": "Denies the clear_lookup_dictionary command without any pre-configured scope.", - "type": "string", - "const": "deny-clear-lookup-dictionary", - "markdownDescription": "Denies the clear_lookup_dictionary command without any pre-configured scope." - }, - { - "description": "Enables the clear_secure_item command without any pre-configured scope.", - "type": "string", - "const": "allow-clear-secure-item", - "markdownDescription": "Enables the clear_secure_item command without any pre-configured scope." - }, - { - "description": "Denies the clear_secure_item command without any pre-configured scope.", - "type": "string", - "const": "deny-clear-secure-item", - "markdownDescription": "Denies the clear_secure_item command without any pre-configured scope." - }, - { - "description": "Enables the clear_sync_passphrase command without any pre-configured scope.", - "type": "string", - "const": "allow-clear-sync-passphrase", - "markdownDescription": "Enables the clear_sync_passphrase command without any pre-configured scope." - }, - { - "description": "Denies the clear_sync_passphrase command without any pre-configured scope.", - "type": "string", - "const": "deny-clear-sync-passphrase", - "markdownDescription": "Denies the clear_sync_passphrase command without any pre-configured scope." - }, - { - "description": "Enables the clip_url command without any pre-configured scope.", - "type": "string", - "const": "allow-clip-url", - "markdownDescription": "Enables the clip_url command without any pre-configured scope." - }, - { - "description": "Denies the clip_url command without any pre-configured scope.", - "type": "string", - "const": "deny-clip-url", - "markdownDescription": "Denies the clip_url command without any pre-configured scope." - }, - { - "description": "Enables the copy_uri_to_path command without any pre-configured scope.", - "type": "string", - "const": "allow-copy-uri-to-path", - "markdownDescription": "Enables the copy_uri_to_path command without any pre-configured scope." - }, - { - "description": "Denies the copy_uri_to_path command without any pre-configured scope.", - "type": "string", - "const": "deny-copy-uri-to-path", - "markdownDescription": "Denies the copy_uri_to_path command without any pre-configured scope." - }, - { - "description": "Enables the get_external_sdcard_path command without any pre-configured scope.", - "type": "string", - "const": "allow-get-external-sdcard-path", - "markdownDescription": "Enables the get_external_sdcard_path command without any pre-configured scope." - }, - { - "description": "Denies the get_external_sdcard_path command without any pre-configured scope.", - "type": "string", - "const": "deny-get-external-sdcard-path", - "markdownDescription": "Denies the get_external_sdcard_path command without any pre-configured scope." - }, - { - "description": "Enables the get_lookup_dictionary command without any pre-configured scope.", - "type": "string", - "const": "allow-get-lookup-dictionary", - "markdownDescription": "Enables the get_lookup_dictionary command without any pre-configured scope." - }, - { - "description": "Denies the get_lookup_dictionary command without any pre-configured scope.", - "type": "string", - "const": "deny-get-lookup-dictionary", - "markdownDescription": "Denies the get_lookup_dictionary command without any pre-configured scope." - }, - { - "description": "Enables the get_safe_area_insets command without any pre-configured scope.", - "type": "string", - "const": "allow-get-safe-area-insets", - "markdownDescription": "Enables the get_safe_area_insets command without any pre-configured scope." - }, - { - "description": "Denies the get_safe_area_insets command without any pre-configured scope.", - "type": "string", - "const": "deny-get-safe-area-insets", - "markdownDescription": "Denies the get_safe_area_insets command without any pre-configured scope." - }, - { - "description": "Enables the get_screen_brightness command without any pre-configured scope.", - "type": "string", - "const": "allow-get-screen-brightness", - "markdownDescription": "Enables the get_screen_brightness command without any pre-configured scope." - }, - { - "description": "Denies the get_screen_brightness command without any pre-configured scope.", - "type": "string", - "const": "deny-get-screen-brightness", - "markdownDescription": "Denies the get_screen_brightness command without any pre-configured scope." - }, - { - "description": "Enables the get_secure_item command without any pre-configured scope.", - "type": "string", - "const": "allow-get-secure-item", - "markdownDescription": "Enables the get_secure_item command without any pre-configured scope." - }, - { - "description": "Denies the get_secure_item command without any pre-configured scope.", - "type": "string", - "const": "deny-get-secure-item", - "markdownDescription": "Denies the get_secure_item command without any pre-configured scope." - }, - { - "description": "Enables the get_status_bar_height command without any pre-configured scope.", - "type": "string", - "const": "allow-get-status-bar-height", - "markdownDescription": "Enables the get_status_bar_height command without any pre-configured scope." - }, - { - "description": "Denies the get_status_bar_height command without any pre-configured scope.", - "type": "string", - "const": "deny-get-status-bar-height", - "markdownDescription": "Denies the get_status_bar_height command without any pre-configured scope." - }, - { - "description": "Enables the get_storefront_region_code command without any pre-configured scope.", - "type": "string", - "const": "allow-get-storefront-region-code", - "markdownDescription": "Enables the get_storefront_region_code command without any pre-configured scope." - }, - { - "description": "Denies the get_storefront_region_code command without any pre-configured scope.", - "type": "string", - "const": "deny-get-storefront-region-code", - "markdownDescription": "Denies the get_storefront_region_code command without any pre-configured scope." - }, - { - "description": "Enables the get_sync_passphrase command without any pre-configured scope.", - "type": "string", - "const": "allow-get-sync-passphrase", - "markdownDescription": "Enables the get_sync_passphrase command without any pre-configured scope." - }, - { - "description": "Denies the get_sync_passphrase command without any pre-configured scope.", - "type": "string", - "const": "deny-get-sync-passphrase", - "markdownDescription": "Denies the get_sync_passphrase command without any pre-configured scope." - }, - { - "description": "Enables the get_sys_fonts_list command without any pre-configured scope.", - "type": "string", - "const": "allow-get-sys-fonts-list", - "markdownDescription": "Enables the get_sys_fonts_list command without any pre-configured scope." - }, - { - "description": "Denies the get_sys_fonts_list command without any pre-configured scope.", - "type": "string", - "const": "deny-get-sys-fonts-list", - "markdownDescription": "Denies the get_sys_fonts_list command without any pre-configured scope." - }, - { - "description": "Enables the get_system_color_scheme command without any pre-configured scope.", - "type": "string", - "const": "allow-get-system-color-scheme", - "markdownDescription": "Enables the get_system_color_scheme command without any pre-configured scope." - }, - { - "description": "Denies the get_system_color_scheme command without any pre-configured scope.", - "type": "string", - "const": "deny-get-system-color-scheme", - "markdownDescription": "Denies the get_system_color_scheme command without any pre-configured scope." - }, - { - "description": "Enables the has_ambient_light_sensor command without any pre-configured scope.", - "type": "string", - "const": "allow-has-ambient-light-sensor", - "markdownDescription": "Enables the has_ambient_light_sensor command without any pre-configured scope." - }, - { - "description": "Denies the has_ambient_light_sensor command without any pre-configured scope.", - "type": "string", - "const": "deny-has-ambient-light-sensor", - "markdownDescription": "Denies the has_ambient_light_sensor command without any pre-configured scope." - }, - { - "description": "Enables the iap_fetch_products command without any pre-configured scope.", - "type": "string", - "const": "allow-iap-fetch-products", - "markdownDescription": "Enables the iap_fetch_products command without any pre-configured scope." - }, - { - "description": "Denies the iap_fetch_products command without any pre-configured scope.", - "type": "string", - "const": "deny-iap-fetch-products", - "markdownDescription": "Denies the iap_fetch_products command without any pre-configured scope." - }, - { - "description": "Enables the iap_initialize command without any pre-configured scope.", - "type": "string", - "const": "allow-iap-initialize", - "markdownDescription": "Enables the iap_initialize command without any pre-configured scope." - }, - { - "description": "Denies the iap_initialize command without any pre-configured scope.", - "type": "string", - "const": "deny-iap-initialize", - "markdownDescription": "Denies the iap_initialize command without any pre-configured scope." - }, - { - "description": "Enables the iap_is_available command without any pre-configured scope.", - "type": "string", - "const": "allow-iap-is-available", - "markdownDescription": "Enables the iap_is_available command without any pre-configured scope." - }, - { - "description": "Denies the iap_is_available command without any pre-configured scope.", - "type": "string", - "const": "deny-iap-is-available", - "markdownDescription": "Denies the iap_is_available command without any pre-configured scope." - }, - { - "description": "Enables the iap_purchase_product command without any pre-configured scope.", - "type": "string", - "const": "allow-iap-purchase-product", - "markdownDescription": "Enables the iap_purchase_product command without any pre-configured scope." - }, - { - "description": "Denies the iap_purchase_product command without any pre-configured scope.", - "type": "string", - "const": "deny-iap-purchase-product", - "markdownDescription": "Denies the iap_purchase_product command without any pre-configured scope." - }, - { - "description": "Enables the iap_restore_purchases command without any pre-configured scope.", - "type": "string", - "const": "allow-iap-restore-purchases", - "markdownDescription": "Enables the iap_restore_purchases command without any pre-configured scope." - }, - { - "description": "Denies the iap_restore_purchases command without any pre-configured scope.", - "type": "string", - "const": "deny-iap-restore-purchases", - "markdownDescription": "Denies the iap_restore_purchases command without any pre-configured scope." - }, - { - "description": "Enables the icloud_container_status command without any pre-configured scope.", - "type": "string", - "const": "allow-icloud-container-status", - "markdownDescription": "Enables the icloud_container_status command without any pre-configured scope." - }, - { - "description": "Denies the icloud_container_status command without any pre-configured scope.", - "type": "string", - "const": "deny-icloud-container-status", - "markdownDescription": "Denies the icloud_container_status command without any pre-configured scope." - }, - { - "description": "Enables the icloud_ensure_downloaded command without any pre-configured scope.", - "type": "string", - "const": "allow-icloud-ensure-downloaded", - "markdownDescription": "Enables the icloud_ensure_downloaded command without any pre-configured scope." - }, - { - "description": "Denies the icloud_ensure_downloaded command without any pre-configured scope.", - "type": "string", - "const": "deny-icloud-ensure-downloaded", - "markdownDescription": "Denies the icloud_ensure_downloaded command without any pre-configured scope." - }, - { - "description": "Enables the install_package command without any pre-configured scope.", - "type": "string", - "const": "allow-install-package", - "markdownDescription": "Enables the install_package command without any pre-configured scope." - }, - { - "description": "Denies the install_package command without any pre-configured scope.", - "type": "string", - "const": "deny-install-package", - "markdownDescription": "Denies the install_package command without any pre-configured scope." - }, - { - "description": "Enables the intercept_keys command without any pre-configured scope.", - "type": "string", - "const": "allow-intercept-keys", - "markdownDescription": "Enables the intercept_keys command without any pre-configured scope." - }, - { - "description": "Denies the intercept_keys command without any pre-configured scope.", - "type": "string", - "const": "deny-intercept-keys", - "markdownDescription": "Denies the intercept_keys command without any pre-configured scope." - }, - { - "description": "Enables the is_sync_keychain_available command without any pre-configured scope.", - "type": "string", - "const": "allow-is-sync-keychain-available", - "markdownDescription": "Enables the is_sync_keychain_available command without any pre-configured scope." - }, - { - "description": "Denies the is_sync_keychain_available command without any pre-configured scope.", - "type": "string", - "const": "deny-is-sync-keychain-available", - "markdownDescription": "Denies the is_sync_keychain_available command without any pre-configured scope." - }, - { - "description": "Enables the lock_screen_orientation command without any pre-configured scope.", - "type": "string", - "const": "allow-lock-screen-orientation", - "markdownDescription": "Enables the lock_screen_orientation command without any pre-configured scope." - }, - { - "description": "Denies the lock_screen_orientation command without any pre-configured scope.", - "type": "string", - "const": "deny-lock-screen-orientation", - "markdownDescription": "Denies the lock_screen_orientation command without any pre-configured scope." - }, - { - "description": "Enables the open_external_url command without any pre-configured scope.", - "type": "string", - "const": "allow-open-external-url", - "markdownDescription": "Enables the open_external_url command without any pre-configured scope." - }, - { - "description": "Denies the open_external_url command without any pre-configured scope.", - "type": "string", - "const": "deny-open-external-url", - "markdownDescription": "Denies the open_external_url command without any pre-configured scope." - }, - { - "description": "Enables the open_web_browser command without any pre-configured scope.", - "type": "string", - "const": "allow-open-web-browser", - "markdownDescription": "Enables the open_web_browser command without any pre-configured scope." - }, - { - "description": "Denies the open_web_browser command without any pre-configured scope.", - "type": "string", - "const": "deny-open-web-browser", - "markdownDescription": "Denies the open_web_browser command without any pre-configured scope." - }, - { - "description": "Enables the read_share_clip_html command without any pre-configured scope.", - "type": "string", - "const": "allow-read-share-clip-html", - "markdownDescription": "Enables the read_share_clip_html command without any pre-configured scope." - }, - { - "description": "Denies the read_share_clip_html command without any pre-configured scope.", - "type": "string", - "const": "deny-read-share-clip-html", - "markdownDescription": "Denies the read_share_clip_html command without any pre-configured scope." - }, - { - "description": "Enables the refresh_eink_screen command without any pre-configured scope.", - "type": "string", - "const": "allow-refresh-eink-screen", - "markdownDescription": "Enables the refresh_eink_screen command without any pre-configured scope." - }, - { - "description": "Denies the refresh_eink_screen command without any pre-configured scope.", - "type": "string", - "const": "deny-refresh-eink-screen", - "markdownDescription": "Denies the refresh_eink_screen command without any pre-configured scope." - }, - { - "description": "Enables the register_listener command without any pre-configured scope.", - "type": "string", - "const": "allow-register-listener", - "markdownDescription": "Enables the register_listener command without any pre-configured scope." - }, - { - "description": "Denies the register_listener command without any pre-configured scope.", - "type": "string", - "const": "deny-register-listener", - "markdownDescription": "Denies the register_listener command without any pre-configured scope." - }, - { - "description": "Enables the remove_listener command without any pre-configured scope.", - "type": "string", - "const": "allow-remove-listener", - "markdownDescription": "Enables the remove_listener command without any pre-configured scope." - }, - { - "description": "Denies the remove_listener command without any pre-configured scope.", - "type": "string", - "const": "deny-remove-listener", - "markdownDescription": "Denies the remove_listener command without any pre-configured scope." - }, - { - "description": "Enables the render_pdf_cover command without any pre-configured scope.", - "type": "string", - "const": "allow-render-pdf-cover", - "markdownDescription": "Enables the render_pdf_cover command without any pre-configured scope." - }, - { - "description": "Denies the render_pdf_cover command without any pre-configured scope.", - "type": "string", - "const": "deny-render-pdf-cover", - "markdownDescription": "Denies the render_pdf_cover command without any pre-configured scope." - }, - { - "description": "Enables the request-permissions command without any pre-configured scope.", - "type": "string", - "const": "allow-request-permissions", - "markdownDescription": "Enables the request-permissions command without any pre-configured scope." - }, - { - "description": "Denies the request-permissions command without any pre-configured scope.", - "type": "string", - "const": "deny-request-permissions", - "markdownDescription": "Denies the request-permissions command without any pre-configured scope." - }, - { - "description": "Enables the requestPermissions command without any pre-configured scope.", - "type": "string", - "const": "allow-requestPermissions", - "markdownDescription": "Enables the requestPermissions command without any pre-configured scope." - }, - { - "description": "Denies the requestPermissions command without any pre-configured scope.", - "type": "string", - "const": "deny-requestPermissions", - "markdownDescription": "Denies the requestPermissions command without any pre-configured scope." - }, - { - "description": "Enables the request_manage_storage_permission command without any pre-configured scope.", - "type": "string", - "const": "allow-request-manage-storage-permission", - "markdownDescription": "Enables the request_manage_storage_permission command without any pre-configured scope." - }, - { - "description": "Denies the request_manage_storage_permission command without any pre-configured scope.", - "type": "string", - "const": "deny-request-manage-storage-permission", - "markdownDescription": "Denies the request_manage_storage_permission command without any pre-configured scope." - }, - { - "description": "Enables the request_permissions command without any pre-configured scope.", - "type": "string", - "const": "allow-request-permissions", - "markdownDescription": "Enables the request_permissions command without any pre-configured scope." - }, - { - "description": "Denies the request_permissions command without any pre-configured scope.", - "type": "string", - "const": "deny-request-permissions", - "markdownDescription": "Denies the request_permissions command without any pre-configured scope." - }, - { - "description": "Enables the save_image_to_gallery command without any pre-configured scope.", - "type": "string", - "const": "allow-save-image-to-gallery", - "markdownDescription": "Enables the save_image_to_gallery command without any pre-configured scope." - }, - { - "description": "Denies the save_image_to_gallery command without any pre-configured scope.", - "type": "string", - "const": "deny-save-image-to-gallery", - "markdownDescription": "Denies the save_image_to_gallery command without any pre-configured scope." - }, - { - "description": "Enables the select_directory command without any pre-configured scope.", - "type": "string", - "const": "allow-select-directory", - "markdownDescription": "Enables the select_directory command without any pre-configured scope." - }, - { - "description": "Denies the select_directory command without any pre-configured scope.", - "type": "string", - "const": "deny-select-directory", - "markdownDescription": "Denies the select_directory command without any pre-configured scope." - }, - { - "description": "Enables the set_multicast_lock command without any pre-configured scope.", - "type": "string", - "const": "allow-set-multicast-lock", - "markdownDescription": "Enables the set_multicast_lock command without any pre-configured scope." - }, - { - "description": "Denies the set_multicast_lock command without any pre-configured scope.", - "type": "string", - "const": "deny-set-multicast-lock", - "markdownDescription": "Denies the set_multicast_lock command without any pre-configured scope." - }, - { - "description": "Enables the set_screen_brightness command without any pre-configured scope.", - "type": "string", - "const": "allow-set-screen-brightness", - "markdownDescription": "Enables the set_screen_brightness command without any pre-configured scope." - }, - { - "description": "Denies the set_screen_brightness command without any pre-configured scope.", - "type": "string", - "const": "deny-set-screen-brightness", - "markdownDescription": "Denies the set_screen_brightness command without any pre-configured scope." - }, - { - "description": "Enables the set_secure_item command without any pre-configured scope.", - "type": "string", - "const": "allow-set-secure-item", - "markdownDescription": "Enables the set_secure_item command without any pre-configured scope." - }, - { - "description": "Denies the set_secure_item command without any pre-configured scope.", - "type": "string", - "const": "deny-set-secure-item", - "markdownDescription": "Denies the set_secure_item command without any pre-configured scope." - }, - { - "description": "Enables the set_selection_suppressed command without any pre-configured scope.", - "type": "string", - "const": "allow-set-selection-suppressed", - "markdownDescription": "Enables the set_selection_suppressed command without any pre-configured scope." - }, - { - "description": "Denies the set_selection_suppressed command without any pre-configured scope.", - "type": "string", - "const": "deny-set-selection-suppressed", - "markdownDescription": "Denies the set_selection_suppressed command without any pre-configured scope." - }, - { - "description": "Enables the set_sync_passphrase command without any pre-configured scope.", - "type": "string", - "const": "allow-set-sync-passphrase", - "markdownDescription": "Enables the set_sync_passphrase command without any pre-configured scope." - }, - { - "description": "Denies the set_sync_passphrase command without any pre-configured scope.", - "type": "string", - "const": "deny-set-sync-passphrase", - "markdownDescription": "Denies the set_sync_passphrase command without any pre-configured scope." - }, - { - "description": "Enables the set_system_ui_visibility command without any pre-configured scope.", - "type": "string", - "const": "allow-set-system-ui-visibility", - "markdownDescription": "Enables the set_system_ui_visibility command without any pre-configured scope." - }, - { - "description": "Denies the set_system_ui_visibility command without any pre-configured scope.", - "type": "string", - "const": "deny-set-system-ui-visibility", - "markdownDescription": "Denies the set_system_ui_visibility command without any pre-configured scope." - }, - { - "description": "Enables the set_web_browser_status command without any pre-configured scope.", - "type": "string", - "const": "allow-set-web-browser-status", - "markdownDescription": "Enables the set_web_browser_status command without any pre-configured scope." - }, - { - "description": "Denies the set_web_browser_status command without any pre-configured scope.", - "type": "string", - "const": "deny-set-web-browser-status", - "markdownDescription": "Denies the set_web_browser_status command without any pre-configured scope." - }, - { - "description": "Enables the show_file_picker command without any pre-configured scope.", - "type": "string", - "const": "allow-show-file-picker", - "markdownDescription": "Enables the show_file_picker command without any pre-configured scope." - }, - { - "description": "Denies the show_file_picker command without any pre-configured scope.", - "type": "string", - "const": "deny-show-file-picker", - "markdownDescription": "Denies the show_file_picker command without any pre-configured scope." - }, - { - "description": "Enables the show_lookup_popover command without any pre-configured scope.", - "type": "string", - "const": "allow-show-lookup-popover", - "markdownDescription": "Enables the show_lookup_popover command without any pre-configured scope." - }, - { - "description": "Denies the show_lookup_popover command without any pre-configured scope.", - "type": "string", - "const": "deny-show-lookup-popover", - "markdownDescription": "Denies the show_lookup_popover command without any pre-configured scope." - }, - { - "description": "Enables the start_ambient_light_updates command without any pre-configured scope.", - "type": "string", - "const": "allow-start-ambient-light-updates", - "markdownDescription": "Enables the start_ambient_light_updates command without any pre-configured scope." - }, - { - "description": "Denies the start_ambient_light_updates command without any pre-configured scope.", - "type": "string", - "const": "deny-start-ambient-light-updates", - "markdownDescription": "Denies the start_ambient_light_updates command without any pre-configured scope." - }, - { - "description": "Enables the stop_ambient_light_updates command without any pre-configured scope.", - "type": "string", - "const": "allow-stop-ambient-light-updates", - "markdownDescription": "Enables the stop_ambient_light_updates command without any pre-configured scope." - }, - { - "description": "Denies the stop_ambient_light_updates command without any pre-configured scope.", - "type": "string", - "const": "deny-stop-ambient-light-updates", - "markdownDescription": "Denies the stop_ambient_light_updates command without any pre-configured scope." - }, - { - "description": "Enables the update_reading_widget command without any pre-configured scope.", - "type": "string", - "const": "allow-update-reading-widget", - "markdownDescription": "Enables the update_reading_widget command without any pre-configured scope." - }, - { - "description": "Denies the update_reading_widget command without any pre-configured scope.", - "type": "string", - "const": "deny-update-reading-widget", - "markdownDescription": "Denies the update_reading_widget command without any pre-configured scope." - }, - { - "description": "Enables the use_background_audio command without any pre-configured scope.", - "type": "string", - "const": "allow-use-background-audio", - "markdownDescription": "Enables the use_background_audio command without any pre-configured scope." - }, - { - "description": "Denies the use_background_audio command without any pre-configured scope.", - "type": "string", - "const": "deny-use-background-audio", - "markdownDescription": "Denies the use_background_audio command without any pre-configured scope." - }, - { - "description": "Default permissions for the plugin\n#### This default permission set includes:\n\n- `allow-auth-with-safari`\n- `allow-auth-with-custom-tab`\n- `allow-copy-uri-to-path`\n- `allow-save-image-to-gallery`\n- `allow-use-background-audio`\n- `allow-set-multicast-lock`\n- `allow-install-package`\n- `allow-set-system-ui-visibility`\n- `allow-get-status-bar-height`\n- `allow-get-sys-fonts-list`\n- `allow-intercept-keys`\n- `allow-lock-screen-orientation`\n- `allow-iap-is-available`\n- `allow-iap-initialize`\n- `allow-iap-fetch-products`\n- `allow-iap-purchase-product`\n- `allow-iap-restore-purchases`\n- `allow-get-system-color-scheme`\n- `allow-get-safe-area-insets`\n- `allow-get-screen-brightness`\n- `allow-set-screen-brightness`\n- `allow-has-ambient-light-sensor`\n- `allow-start-ambient-light-updates`\n- `allow-stop-ambient-light-updates`\n- `allow-get-external-sdcard-path`\n- `allow-open-external-url`\n- `allow-show-lookup-popover`\n- `allow-get-lookup-dictionary`\n- `allow-clear-lookup-dictionary`\n- `allow-select-directory`\n- `allow-show-file-picker`\n- `allow-get-storefront-region-code`\n- `allow-request-manage-storage-permission`\n- `allow-register-listener`\n- `allow-remove-listener`\n- `allow-check-permissions`\n- `allow-request-permissions`\n- `allow-checkPermissions`\n- `allow-requestPermissions`\n- `allow-set-sync-passphrase`\n- `allow-get-sync-passphrase`\n- `allow-clear-sync-passphrase`\n- `allow-is-sync-keychain-available`\n- `allow-set-secure-item`\n- `allow-get-secure-item`\n- `allow-clear-secure-item`\n- `allow-refresh-eink-screen`\n- `allow-update-reading-widget`\n- `allow-capture-webview-region`\n- `allow-set-selection-suppressed`\n- `allow-read-share-clip-html`\n- `allow-icloud-container-status`\n- `allow-icloud-ensure-downloaded`", - "type": "string", - "const": "default", - "markdownDescription": "Default permissions for the plugin\n#### This default permission set includes:\n\n- `allow-auth-with-safari`\n- `allow-auth-with-custom-tab`\n- `allow-copy-uri-to-path`\n- `allow-save-image-to-gallery`\n- `allow-use-background-audio`\n- `allow-set-multicast-lock`\n- `allow-install-package`\n- `allow-set-system-ui-visibility`\n- `allow-get-status-bar-height`\n- `allow-get-sys-fonts-list`\n- `allow-intercept-keys`\n- `allow-lock-screen-orientation`\n- `allow-iap-is-available`\n- `allow-iap-initialize`\n- `allow-iap-fetch-products`\n- `allow-iap-purchase-product`\n- `allow-iap-restore-purchases`\n- `allow-get-system-color-scheme`\n- `allow-get-safe-area-insets`\n- `allow-get-screen-brightness`\n- `allow-set-screen-brightness`\n- `allow-has-ambient-light-sensor`\n- `allow-start-ambient-light-updates`\n- `allow-stop-ambient-light-updates`\n- `allow-get-external-sdcard-path`\n- `allow-open-external-url`\n- `allow-show-lookup-popover`\n- `allow-get-lookup-dictionary`\n- `allow-clear-lookup-dictionary`\n- `allow-select-directory`\n- `allow-show-file-picker`\n- `allow-get-storefront-region-code`\n- `allow-request-manage-storage-permission`\n- `allow-register-listener`\n- `allow-remove-listener`\n- `allow-check-permissions`\n- `allow-request-permissions`\n- `allow-checkPermissions`\n- `allow-requestPermissions`\n- `allow-set-sync-passphrase`\n- `allow-get-sync-passphrase`\n- `allow-clear-sync-passphrase`\n- `allow-is-sync-keychain-available`\n- `allow-set-secure-item`\n- `allow-get-secure-item`\n- `allow-clear-secure-item`\n- `allow-refresh-eink-screen`\n- `allow-update-reading-widget`\n- `allow-capture-webview-region`\n- `allow-set-selection-suppressed`\n- `allow-read-share-clip-html`\n- `allow-icloud-container-status`\n- `allow-icloud-ensure-downloaded`" - } - ] - } - } -} \ No newline at end of file diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/.gitignore b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/.gitignore index 50d8e32e8..b03c008ee 100644 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/.gitignore +++ b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/.gitignore @@ -15,3 +15,8 @@ node_modules/ dist-js dist + +# Regenerated by tauri-plugin on every build; newer tauri-plugin keeps the +# command permissions out of the source tree altogether. +/permissions/autogenerated +/permissions/schemas diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/checkPermissions.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/checkPermissions.toml deleted file mode 100644 index dd209449f..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/checkPermissions.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-checkPermissions" -description = "Enables the checkPermissions command without any pre-configured scope." -commands.allow = ["checkPermissions"] - -[[permission]] -identifier = "deny-checkPermissions" -description = "Denies the checkPermissions command without any pre-configured scope." -commands.deny = ["checkPermissions"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/check_permissions.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/check_permissions.toml deleted file mode 100644 index f5af08b13..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/check_permissions.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-check-permissions" -description = "Enables the check_permissions command without any pre-configured scope." -commands.allow = ["check_permissions"] - -[[permission]] -identifier = "deny-check-permissions" -description = "Denies the check_permissions command without any pre-configured scope." -commands.deny = ["check_permissions"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/get_all_voices.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/get_all_voices.toml deleted file mode 100644 index c82adc4b1..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/get_all_voices.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-get-all-voices" -description = "Enables the get_all_voices command without any pre-configured scope." -commands.allow = ["get_all_voices"] - -[[permission]] -identifier = "deny-get-all-voices" -description = "Denies the get_all_voices command without any pre-configured scope." -commands.deny = ["get_all_voices"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/init.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/init.toml deleted file mode 100644 index 9cbfb9f82..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/init.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-init" -description = "Enables the init command without any pre-configured scope." -commands.allow = ["init"] - -[[permission]] -identifier = "deny-init" -description = "Denies the init command without any pre-configured scope." -commands.deny = ["init"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/pause.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/pause.toml deleted file mode 100644 index 719154768..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/pause.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-pause" -description = "Enables the pause command without any pre-configured scope." -commands.allow = ["pause"] - -[[permission]] -identifier = "deny-pause" -description = "Denies the pause command without any pre-configured scope." -commands.deny = ["pause"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/playout_control.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/playout_control.toml deleted file mode 100644 index 2c2b67eca..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/playout_control.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-playout-control" -description = "Enables the playout_control command without any pre-configured scope." -commands.allow = ["playout_control"] - -[[permission]] -identifier = "deny-playout-control" -description = "Denies the playout_control command without any pre-configured scope." -commands.deny = ["playout_control"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/playout_enqueue.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/playout_enqueue.toml deleted file mode 100644 index a731fc5f7..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/playout_enqueue.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-playout-enqueue" -description = "Enables the playout_enqueue command without any pre-configured scope." -commands.allow = ["playout_enqueue"] - -[[permission]] -identifier = "deny-playout-enqueue" -description = "Denies the playout_enqueue command without any pre-configured scope." -commands.deny = ["playout_enqueue"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/playout_position.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/playout_position.toml deleted file mode 100644 index 91baad6c8..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/playout_position.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-playout-position" -description = "Enables the playout_position command without any pre-configured scope." -commands.allow = ["playout_position"] - -[[permission]] -identifier = "deny-playout-position" -description = "Denies the playout_position command without any pre-configured scope." -commands.deny = ["playout_position"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/register_listener.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/register_listener.toml deleted file mode 100644 index 48363c0d5..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/register_listener.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-register-listener" -description = "Enables the register_listener command without any pre-configured scope." -commands.allow = ["register_listener"] - -[[permission]] -identifier = "deny-register-listener" -description = "Denies the register_listener command without any pre-configured scope." -commands.deny = ["register_listener"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/remove_listener.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/remove_listener.toml deleted file mode 100644 index 9f315e51e..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/remove_listener.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-remove-listener" -description = "Enables the remove_listener command without any pre-configured scope." -commands.allow = ["remove_listener"] - -[[permission]] -identifier = "deny-remove-listener" -description = "Denies the remove_listener command without any pre-configured scope." -commands.deny = ["remove_listener"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/requestPermissions.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/requestPermissions.toml deleted file mode 100644 index b3238d63a..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/requestPermissions.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-requestPermissions" -description = "Enables the requestPermissions command without any pre-configured scope." -commands.allow = ["requestPermissions"] - -[[permission]] -identifier = "deny-requestPermissions" -description = "Denies the requestPermissions command without any pre-configured scope." -commands.deny = ["requestPermissions"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/request_permissions.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/request_permissions.toml deleted file mode 100644 index 02dcd6271..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/request_permissions.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-request-permissions" -description = "Enables the request_permissions command without any pre-configured scope." -commands.allow = ["request_permissions"] - -[[permission]] -identifier = "deny-request-permissions" -description = "Denies the request_permissions command without any pre-configured scope." -commands.deny = ["request_permissions"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/resume.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/resume.toml deleted file mode 100644 index 015413f2c..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/resume.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-resume" -description = "Enables the resume command without any pre-configured scope." -commands.allow = ["resume"] - -[[permission]] -identifier = "deny-resume" -description = "Denies the resume command without any pre-configured scope." -commands.deny = ["resume"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/set_media_session_active.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/set_media_session_active.toml deleted file mode 100644 index 8a8df3ba7..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/set_media_session_active.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-set-media-session-active" -description = "Enables the set_media_session_active command without any pre-configured scope." -commands.allow = ["set_media_session_active"] - -[[permission]] -identifier = "deny-set-media-session-active" -description = "Denies the set_media_session_active command without any pre-configured scope." -commands.deny = ["set_media_session_active"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/set_pitch.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/set_pitch.toml deleted file mode 100644 index df3df1bb3..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/set_pitch.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-set-pitch" -description = "Enables the set_pitch command without any pre-configured scope." -commands.allow = ["set_pitch"] - -[[permission]] -identifier = "deny-set-pitch" -description = "Denies the set_pitch command without any pre-configured scope." -commands.deny = ["set_pitch"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/set_rate.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/set_rate.toml deleted file mode 100644 index 22c6969c1..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/set_rate.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-set-rate" -description = "Enables the set_rate command without any pre-configured scope." -commands.allow = ["set_rate"] - -[[permission]] -identifier = "deny-set-rate" -description = "Denies the set_rate command without any pre-configured scope." -commands.deny = ["set_rate"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/set_voice.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/set_voice.toml deleted file mode 100644 index 801f0a2ed..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/set_voice.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-set-voice" -description = "Enables the set_voice command without any pre-configured scope." -commands.allow = ["set_voice"] - -[[permission]] -identifier = "deny-set-voice" -description = "Denies the set_voice command without any pre-configured scope." -commands.deny = ["set_voice"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/speak.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/speak.toml deleted file mode 100644 index 5437c8355..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/speak.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-speak" -description = "Enables the speak command without any pre-configured scope." -commands.allow = ["speak"] - -[[permission]] -identifier = "deny-speak" -description = "Denies the speak command without any pre-configured scope." -commands.deny = ["speak"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/stop.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/stop.toml deleted file mode 100644 index 6230cb91b..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/stop.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-stop" -description = "Enables the stop command without any pre-configured scope." -commands.allow = ["stop"] - -[[permission]] -identifier = "deny-stop" -description = "Denies the stop command without any pre-configured scope." -commands.deny = ["stop"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/update_carplay_state.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/update_carplay_state.toml deleted file mode 100644 index aa6249609..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/update_carplay_state.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-update-carplay-state" -description = "Enables the update_carplay_state command without any pre-configured scope." -commands.allow = ["update_carplay_state"] - -[[permission]] -identifier = "deny-update-carplay-state" -description = "Denies the update_carplay_state command without any pre-configured scope." -commands.deny = ["update_carplay_state"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/update_media_session_metadata.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/update_media_session_metadata.toml deleted file mode 100644 index 1f10016d4..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/update_media_session_metadata.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-update-media-session-metadata" -description = "Enables the update_media_session_metadata command without any pre-configured scope." -commands.allow = ["update_media_session_metadata"] - -[[permission]] -identifier = "deny-update-media-session-metadata" -description = "Denies the update_media_session_metadata command without any pre-configured scope." -commands.deny = ["update_media_session_metadata"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/update_media_session_state.toml b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/update_media_session_state.toml deleted file mode 100644 index cecf1faeb..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/commands/update_media_session_state.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Automatically generated - DO NOT EDIT! - -"$schema" = "../../schemas/schema.json" - -[[permission]] -identifier = "allow-update-media-session-state" -description = "Enables the update_media_session_state command without any pre-configured scope." -commands.allow = ["update_media_session_state"] - -[[permission]] -identifier = "deny-update-media-session-state" -description = "Denies the update_media_session_state command without any pre-configured scope." -commands.deny = ["update_media_session_state"] diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/reference.md b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/reference.md deleted file mode 100644 index 3bddb4bf7..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/autogenerated/reference.md +++ /dev/null @@ -1,610 +0,0 @@ -## Default Permission - -Default permissions for the plugin - -#### This default permission set includes the following: - -- `allow-init` -- `allow-speak` -- `allow-stop` -- `allow-pause` -- `allow-resume` -- `allow-set-rate` -- `allow-set-pitch` -- `allow-set-voice` -- `allow-get-all-voices` -- `allow-set-media-session-active` -- `allow-update-media-session-state` -- `allow-update-media-session-metadata` -- `allow-update-carplay-state` -- `allow-playout-enqueue` -- `allow-playout-control` -- `allow-playout-position` -- `allow-register-listener` -- `allow-remove-listener` -- `allow-check-permissions` -- `allow-request-permissions` -- `allow-checkPermissions` -- `allow-requestPermissions` - -## Permission Table - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IdentifierDescription
- -`native-tts:allow-checkPermissions` - - - -Enables the checkPermissions command without any pre-configured scope. - -
- -`native-tts:deny-checkPermissions` - - - -Denies the checkPermissions command without any pre-configured scope. - -
- -`native-tts:allow-check-permissions` - - - -Enables the check_permissions command without any pre-configured scope. - -
- -`native-tts:deny-check-permissions` - - - -Denies the check_permissions command without any pre-configured scope. - -
- -`native-tts:allow-get-all-voices` - - - -Enables the get_all_voices command without any pre-configured scope. - -
- -`native-tts:deny-get-all-voices` - - - -Denies the get_all_voices command without any pre-configured scope. - -
- -`native-tts:allow-init` - - - -Enables the init command without any pre-configured scope. - -
- -`native-tts:deny-init` - - - -Denies the init command without any pre-configured scope. - -
- -`native-tts:allow-pause` - - - -Enables the pause command without any pre-configured scope. - -
- -`native-tts:deny-pause` - - - -Denies the pause command without any pre-configured scope. - -
- -`native-tts:allow-playout-control` - - - -Enables the playout_control command without any pre-configured scope. - -
- -`native-tts:deny-playout-control` - - - -Denies the playout_control command without any pre-configured scope. - -
- -`native-tts:allow-playout-enqueue` - - - -Enables the playout_enqueue command without any pre-configured scope. - -
- -`native-tts:deny-playout-enqueue` - - - -Denies the playout_enqueue command without any pre-configured scope. - -
- -`native-tts:allow-playout-position` - - - -Enables the playout_position command without any pre-configured scope. - -
- -`native-tts:deny-playout-position` - - - -Denies the playout_position command without any pre-configured scope. - -
- -`native-tts:allow-register-listener` - - - -Enables the register_listener command without any pre-configured scope. - -
- -`native-tts:deny-register-listener` - - - -Denies the register_listener command without any pre-configured scope. - -
- -`native-tts:allow-remove-listener` - - - -Enables the remove_listener command without any pre-configured scope. - -
- -`native-tts:deny-remove-listener` - - - -Denies the remove_listener command without any pre-configured scope. - -
- -`native-tts:allow-requestPermissions` - - - -Enables the requestPermissions command without any pre-configured scope. - -
- -`native-tts:deny-requestPermissions` - - - -Denies the requestPermissions command without any pre-configured scope. - -
- -`native-tts:allow-request-permissions` - - - -Enables the request_permissions command without any pre-configured scope. - -
- -`native-tts:deny-request-permissions` - - - -Denies the request_permissions command without any pre-configured scope. - -
- -`native-tts:allow-resume` - - - -Enables the resume command without any pre-configured scope. - -
- -`native-tts:deny-resume` - - - -Denies the resume command without any pre-configured scope. - -
- -`native-tts:allow-set-media-session-active` - - - -Enables the set_media_session_active command without any pre-configured scope. - -
- -`native-tts:deny-set-media-session-active` - - - -Denies the set_media_session_active command without any pre-configured scope. - -
- -`native-tts:allow-set-pitch` - - - -Enables the set_pitch command without any pre-configured scope. - -
- -`native-tts:deny-set-pitch` - - - -Denies the set_pitch command without any pre-configured scope. - -
- -`native-tts:allow-set-rate` - - - -Enables the set_rate command without any pre-configured scope. - -
- -`native-tts:deny-set-rate` - - - -Denies the set_rate command without any pre-configured scope. - -
- -`native-tts:allow-set-voice` - - - -Enables the set_voice command without any pre-configured scope. - -
- -`native-tts:deny-set-voice` - - - -Denies the set_voice command without any pre-configured scope. - -
- -`native-tts:allow-speak` - - - -Enables the speak command without any pre-configured scope. - -
- -`native-tts:deny-speak` - - - -Denies the speak command without any pre-configured scope. - -
- -`native-tts:allow-stop` - - - -Enables the stop command without any pre-configured scope. - -
- -`native-tts:deny-stop` - - - -Denies the stop command without any pre-configured scope. - -
- -`native-tts:allow-update-carplay-state` - - - -Enables the update_carplay_state command without any pre-configured scope. - -
- -`native-tts:deny-update-carplay-state` - - - -Denies the update_carplay_state command without any pre-configured scope. - -
- -`native-tts:allow-update-media-session-metadata` - - - -Enables the update_media_session_metadata command without any pre-configured scope. - -
- -`native-tts:deny-update-media-session-metadata` - - - -Denies the update_media_session_metadata command without any pre-configured scope. - -
- -`native-tts:allow-update-media-session-state` - - - -Enables the update_media_session_state command without any pre-configured scope. - -
- -`native-tts:deny-update-media-session-state` - - - -Denies the update_media_session_state command without any pre-configured scope. - -
diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/schemas/schema.json b/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/schemas/schema.json deleted file mode 100644 index b7919bda2..000000000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-native-tts/permissions/schemas/schema.json +++ /dev/null @@ -1,570 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "PermissionFile", - "description": "Permission file that can define a default permission, a set of permissions or a list of inlined permissions.", - "type": "object", - "properties": { - "default": { - "description": "The default permission set for the plugin", - "anyOf": [ - { - "$ref": "#/definitions/DefaultPermission" - }, - { - "type": "null" - } - ] - }, - "set": { - "description": "A list of permissions sets defined", - "type": "array", - "items": { - "$ref": "#/definitions/PermissionSet" - } - }, - "permission": { - "description": "A list of inlined permissions", - "default": [], - "type": "array", - "items": { - "$ref": "#/definitions/Permission" - } - } - }, - "definitions": { - "DefaultPermission": { - "description": "The default permission set of the plugin.\n\nWorks similarly to a permission with the \"default\" identifier.", - "type": "object", - "required": [ - "permissions" - ], - "properties": { - "version": { - "description": "The version of the permission.", - "type": [ - "integer", - "null" - ], - "format": "uint64", - "minimum": 1.0 - }, - "description": { - "description": "Human-readable description of what the permission does. Tauri convention is to use `

` headings in markdown content for Tauri documentation generation purposes.", - "type": [ - "string", - "null" - ] - }, - "permissions": { - "description": "All permissions this set contains.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "PermissionSet": { - "description": "A set of direct permissions grouped together under a new name.", - "type": "object", - "required": [ - "description", - "identifier", - "permissions" - ], - "properties": { - "identifier": { - "description": "A unique identifier for the permission.", - "type": "string" - }, - "description": { - "description": "Human-readable description of what the permission does.", - "type": "string" - }, - "permissions": { - "description": "All permissions this set contains.", - "type": "array", - "items": { - "$ref": "#/definitions/PermissionKind" - } - } - } - }, - "Permission": { - "description": "Descriptions of explicit privileges of commands.\n\nIt can enable commands to be accessible in the frontend of the application.\n\nIf the scope is defined it can be used to fine grain control the access of individual or multiple commands.", - "type": "object", - "required": [ - "identifier" - ], - "properties": { - "version": { - "description": "The version of the permission.", - "type": [ - "integer", - "null" - ], - "format": "uint64", - "minimum": 1.0 - }, - "identifier": { - "description": "A unique identifier for the permission.", - "type": "string" - }, - "description": { - "description": "Human-readable description of what the permission does. Tauri internal convention is to use `

` headings in markdown content for Tauri documentation generation purposes.", - "type": [ - "string", - "null" - ] - }, - "commands": { - "description": "Allowed or denied commands when using this permission.", - "default": { - "allow": [], - "deny": [] - }, - "allOf": [ - { - "$ref": "#/definitions/Commands" - } - ] - }, - "scope": { - "description": "Allowed or denied scoped when using this permission.", - "allOf": [ - { - "$ref": "#/definitions/Scopes" - } - ] - }, - "platforms": { - "description": "Target platforms this permission applies. By default all platforms are affected by this permission.", - "type": [ - "array", - "null" - ], - "items": { - "$ref": "#/definitions/Target" - } - } - } - }, - "Commands": { - "description": "Allowed and denied commands inside a permission.\n\nIf two commands clash inside of `allow` and `deny`, it should be denied by default.", - "type": "object", - "properties": { - "allow": { - "description": "Allowed command.", - "default": [], - "type": "array", - "items": { - "type": "string" - } - }, - "deny": { - "description": "Denied command, which takes priority.", - "default": [], - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "Scopes": { - "description": "An argument for fine grained behavior control of Tauri commands.\n\nIt can be of any serde serializable type and is used to allow or prevent certain actions inside a Tauri command. The configured scope is passed to the command and will be enforced by the command implementation.\n\n## Example\n\n```json { \"allow\": [{ \"path\": \"$HOME/**\" }], \"deny\": [{ \"path\": \"$HOME/secret.txt\" }] } ```", - "type": "object", - "properties": { - "allow": { - "description": "Data that defines what is allowed by the scope.", - "type": [ - "array", - "null" - ], - "items": { - "$ref": "#/definitions/Value" - } - }, - "deny": { - "description": "Data that defines what is denied by the scope. This should be prioritized by validation logic.", - "type": [ - "array", - "null" - ], - "items": { - "$ref": "#/definitions/Value" - } - } - } - }, - "Value": { - "description": "All supported ACL values.", - "anyOf": [ - { - "description": "Represents a null JSON value.", - "type": "null" - }, - { - "description": "Represents a [`bool`].", - "type": "boolean" - }, - { - "description": "Represents a valid ACL [`Number`].", - "allOf": [ - { - "$ref": "#/definitions/Number" - } - ] - }, - { - "description": "Represents a [`String`].", - "type": "string" - }, - { - "description": "Represents a list of other [`Value`]s.", - "type": "array", - "items": { - "$ref": "#/definitions/Value" - } - }, - { - "description": "Represents a map of [`String`] keys to [`Value`]s.", - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/Value" - } - } - ] - }, - "Number": { - "description": "A valid ACL number.", - "anyOf": [ - { - "description": "Represents an [`i64`].", - "type": "integer", - "format": "int64" - }, - { - "description": "Represents a [`f64`].", - "type": "number", - "format": "double" - } - ] - }, - "Target": { - "description": "Platform target.", - "oneOf": [ - { - "description": "MacOS.", - "type": "string", - "enum": [ - "macOS" - ] - }, - { - "description": "Windows.", - "type": "string", - "enum": [ - "windows" - ] - }, - { - "description": "Linux.", - "type": "string", - "enum": [ - "linux" - ] - }, - { - "description": "Android.", - "type": "string", - "enum": [ - "android" - ] - }, - { - "description": "iOS.", - "type": "string", - "enum": [ - "iOS" - ] - } - ] - }, - "PermissionKind": { - "type": "string", - "oneOf": [ - { - "description": "Enables the checkPermissions command without any pre-configured scope.", - "type": "string", - "const": "allow-checkPermissions", - "markdownDescription": "Enables the checkPermissions command without any pre-configured scope." - }, - { - "description": "Denies the checkPermissions command without any pre-configured scope.", - "type": "string", - "const": "deny-checkPermissions", - "markdownDescription": "Denies the checkPermissions command without any pre-configured scope." - }, - { - "description": "Enables the check_permissions command without any pre-configured scope.", - "type": "string", - "const": "allow-check-permissions", - "markdownDescription": "Enables the check_permissions command without any pre-configured scope." - }, - { - "description": "Denies the check_permissions command without any pre-configured scope.", - "type": "string", - "const": "deny-check-permissions", - "markdownDescription": "Denies the check_permissions command without any pre-configured scope." - }, - { - "description": "Enables the get_all_voices command without any pre-configured scope.", - "type": "string", - "const": "allow-get-all-voices", - "markdownDescription": "Enables the get_all_voices command without any pre-configured scope." - }, - { - "description": "Denies the get_all_voices command without any pre-configured scope.", - "type": "string", - "const": "deny-get-all-voices", - "markdownDescription": "Denies the get_all_voices command without any pre-configured scope." - }, - { - "description": "Enables the init command without any pre-configured scope.", - "type": "string", - "const": "allow-init", - "markdownDescription": "Enables the init command without any pre-configured scope." - }, - { - "description": "Denies the init command without any pre-configured scope.", - "type": "string", - "const": "deny-init", - "markdownDescription": "Denies the init command without any pre-configured scope." - }, - { - "description": "Enables the pause command without any pre-configured scope.", - "type": "string", - "const": "allow-pause", - "markdownDescription": "Enables the pause command without any pre-configured scope." - }, - { - "description": "Denies the pause command without any pre-configured scope.", - "type": "string", - "const": "deny-pause", - "markdownDescription": "Denies the pause command without any pre-configured scope." - }, - { - "description": "Enables the playout_control command without any pre-configured scope.", - "type": "string", - "const": "allow-playout-control", - "markdownDescription": "Enables the playout_control command without any pre-configured scope." - }, - { - "description": "Denies the playout_control command without any pre-configured scope.", - "type": "string", - "const": "deny-playout-control", - "markdownDescription": "Denies the playout_control command without any pre-configured scope." - }, - { - "description": "Enables the playout_enqueue command without any pre-configured scope.", - "type": "string", - "const": "allow-playout-enqueue", - "markdownDescription": "Enables the playout_enqueue command without any pre-configured scope." - }, - { - "description": "Denies the playout_enqueue command without any pre-configured scope.", - "type": "string", - "const": "deny-playout-enqueue", - "markdownDescription": "Denies the playout_enqueue command without any pre-configured scope." - }, - { - "description": "Enables the playout_position command without any pre-configured scope.", - "type": "string", - "const": "allow-playout-position", - "markdownDescription": "Enables the playout_position command without any pre-configured scope." - }, - { - "description": "Denies the playout_position command without any pre-configured scope.", - "type": "string", - "const": "deny-playout-position", - "markdownDescription": "Denies the playout_position command without any pre-configured scope." - }, - { - "description": "Enables the register_listener command without any pre-configured scope.", - "type": "string", - "const": "allow-register-listener", - "markdownDescription": "Enables the register_listener command without any pre-configured scope." - }, - { - "description": "Denies the register_listener command without any pre-configured scope.", - "type": "string", - "const": "deny-register-listener", - "markdownDescription": "Denies the register_listener command without any pre-configured scope." - }, - { - "description": "Enables the remove_listener command without any pre-configured scope.", - "type": "string", - "const": "allow-remove-listener", - "markdownDescription": "Enables the remove_listener command without any pre-configured scope." - }, - { - "description": "Denies the remove_listener command without any pre-configured scope.", - "type": "string", - "const": "deny-remove-listener", - "markdownDescription": "Denies the remove_listener command without any pre-configured scope." - }, - { - "description": "Enables the requestPermissions command without any pre-configured scope.", - "type": "string", - "const": "allow-requestPermissions", - "markdownDescription": "Enables the requestPermissions command without any pre-configured scope." - }, - { - "description": "Denies the requestPermissions command without any pre-configured scope.", - "type": "string", - "const": "deny-requestPermissions", - "markdownDescription": "Denies the requestPermissions command without any pre-configured scope." - }, - { - "description": "Enables the request_permissions command without any pre-configured scope.", - "type": "string", - "const": "allow-request-permissions", - "markdownDescription": "Enables the request_permissions command without any pre-configured scope." - }, - { - "description": "Denies the request_permissions command without any pre-configured scope.", - "type": "string", - "const": "deny-request-permissions", - "markdownDescription": "Denies the request_permissions command without any pre-configured scope." - }, - { - "description": "Enables the resume command without any pre-configured scope.", - "type": "string", - "const": "allow-resume", - "markdownDescription": "Enables the resume command without any pre-configured scope." - }, - { - "description": "Denies the resume command without any pre-configured scope.", - "type": "string", - "const": "deny-resume", - "markdownDescription": "Denies the resume command without any pre-configured scope." - }, - { - "description": "Enables the set_media_session_active command without any pre-configured scope.", - "type": "string", - "const": "allow-set-media-session-active", - "markdownDescription": "Enables the set_media_session_active command without any pre-configured scope." - }, - { - "description": "Denies the set_media_session_active command without any pre-configured scope.", - "type": "string", - "const": "deny-set-media-session-active", - "markdownDescription": "Denies the set_media_session_active command without any pre-configured scope." - }, - { - "description": "Enables the set_pitch command without any pre-configured scope.", - "type": "string", - "const": "allow-set-pitch", - "markdownDescription": "Enables the set_pitch command without any pre-configured scope." - }, - { - "description": "Denies the set_pitch command without any pre-configured scope.", - "type": "string", - "const": "deny-set-pitch", - "markdownDescription": "Denies the set_pitch command without any pre-configured scope." - }, - { - "description": "Enables the set_rate command without any pre-configured scope.", - "type": "string", - "const": "allow-set-rate", - "markdownDescription": "Enables the set_rate command without any pre-configured scope." - }, - { - "description": "Denies the set_rate command without any pre-configured scope.", - "type": "string", - "const": "deny-set-rate", - "markdownDescription": "Denies the set_rate command without any pre-configured scope." - }, - { - "description": "Enables the set_voice command without any pre-configured scope.", - "type": "string", - "const": "allow-set-voice", - "markdownDescription": "Enables the set_voice command without any pre-configured scope." - }, - { - "description": "Denies the set_voice command without any pre-configured scope.", - "type": "string", - "const": "deny-set-voice", - "markdownDescription": "Denies the set_voice command without any pre-configured scope." - }, - { - "description": "Enables the speak command without any pre-configured scope.", - "type": "string", - "const": "allow-speak", - "markdownDescription": "Enables the speak command without any pre-configured scope." - }, - { - "description": "Denies the speak command without any pre-configured scope.", - "type": "string", - "const": "deny-speak", - "markdownDescription": "Denies the speak command without any pre-configured scope." - }, - { - "description": "Enables the stop command without any pre-configured scope.", - "type": "string", - "const": "allow-stop", - "markdownDescription": "Enables the stop command without any pre-configured scope." - }, - { - "description": "Denies the stop command without any pre-configured scope.", - "type": "string", - "const": "deny-stop", - "markdownDescription": "Denies the stop command without any pre-configured scope." - }, - { - "description": "Enables the update_carplay_state command without any pre-configured scope.", - "type": "string", - "const": "allow-update-carplay-state", - "markdownDescription": "Enables the update_carplay_state command without any pre-configured scope." - }, - { - "description": "Denies the update_carplay_state command without any pre-configured scope.", - "type": "string", - "const": "deny-update-carplay-state", - "markdownDescription": "Denies the update_carplay_state command without any pre-configured scope." - }, - { - "description": "Enables the update_media_session_metadata command without any pre-configured scope.", - "type": "string", - "const": "allow-update-media-session-metadata", - "markdownDescription": "Enables the update_media_session_metadata command without any pre-configured scope." - }, - { - "description": "Denies the update_media_session_metadata command without any pre-configured scope.", - "type": "string", - "const": "deny-update-media-session-metadata", - "markdownDescription": "Denies the update_media_session_metadata command without any pre-configured scope." - }, - { - "description": "Enables the update_media_session_state command without any pre-configured scope.", - "type": "string", - "const": "allow-update-media-session-state", - "markdownDescription": "Enables the update_media_session_state command without any pre-configured scope." - }, - { - "description": "Denies the update_media_session_state command without any pre-configured scope.", - "type": "string", - "const": "deny-update-media-session-state", - "markdownDescription": "Denies the update_media_session_state command without any pre-configured scope." - }, - { - "description": "Default permissions for the plugin\n#### This default permission set includes:\n\n- `allow-init`\n- `allow-speak`\n- `allow-stop`\n- `allow-pause`\n- `allow-resume`\n- `allow-set-rate`\n- `allow-set-pitch`\n- `allow-set-voice`\n- `allow-get-all-voices`\n- `allow-set-media-session-active`\n- `allow-update-media-session-state`\n- `allow-update-media-session-metadata`\n- `allow-update-carplay-state`\n- `allow-playout-enqueue`\n- `allow-playout-control`\n- `allow-playout-position`\n- `allow-register-listener`\n- `allow-remove-listener`\n- `allow-check-permissions`\n- `allow-request-permissions`\n- `allow-checkPermissions`\n- `allow-requestPermissions`", - "type": "string", - "const": "default", - "markdownDescription": "Default permissions for the plugin\n#### This default permission set includes:\n\n- `allow-init`\n- `allow-speak`\n- `allow-stop`\n- `allow-pause`\n- `allow-resume`\n- `allow-set-rate`\n- `allow-set-pitch`\n- `allow-set-voice`\n- `allow-get-all-voices`\n- `allow-set-media-session-active`\n- `allow-update-media-session-state`\n- `allow-update-media-session-metadata`\n- `allow-update-carplay-state`\n- `allow-playout-enqueue`\n- `allow-playout-control`\n- `allow-playout-position`\n- `allow-register-listener`\n- `allow-remove-listener`\n- `allow-check-permissions`\n- `allow-request-permissions`\n- `allow-checkPermissions`\n- `allow-requestPermissions`" - } - ] - } - } -} \ No newline at end of file diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-turso b/apps/readest-app/src-tauri/plugins/tauri-plugin-turso index 204dc954b..3c4be4fd9 160000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-turso +++ b/apps/readest-app/src-tauri/plugins/tauri-plugin-turso @@ -1 +1 @@ -Subproject commit 204dc954b2e1e7811565b0c4217aa04ea741a224 +Subproject commit 3c4be4fd92fbe11e8e374b6e8e85dbf9a3b1b4ac diff --git a/apps/readest-app/src-tauri/src/clip_url.rs b/apps/readest-app/src-tauri/src/clip_url.rs index 644bf61ba..2ba7fabf4 100644 --- a/apps/readest-app/src-tauri/src/clip_url.rs +++ b/apps/readest-app/src-tauri/src/clip_url.rs @@ -491,8 +491,8 @@ fn fingerprint_mask_script() -> String { /// `close()` raced the script. #[cfg(desktop)] #[tauri::command] -pub async fn clip_url( - app: AppHandle, +pub async fn clip_url( + app: AppHandle, url: String, options: Option, ) -> Result { diff --git a/apps/readest-app/src-tauri/src/cover_thumbnail.rs b/apps/readest-app/src-tauri/src/cover_thumbnail.rs index d6ce6439f..3929ff59a 100644 --- a/apps/readest-app/src-tauri/src/cover_thumbnail.rs +++ b/apps/readest-app/src-tauri/src/cover_thumbnail.rs @@ -88,11 +88,11 @@ struct CoverThumbnailReadyPayload { static QUEUE: OnceLock> = OnceLock::new(); -struct WorkerRunningGuard { - app: AppHandle, +struct WorkerRunningGuard { + app: AppHandle, } -impl Drop for WorkerRunningGuard { +impl Drop for WorkerRunningGuard { fn drop(&mut self) { if lock_queue().finish_worker() { spawn_worker(self.app.clone()); @@ -110,7 +110,7 @@ fn lock_queue() -> std::sync::MutexGuard<'static, QueueState> { .unwrap_or_else(|poisoned| poisoned.into_inner()) } -fn spawn_worker(app: AppHandle) { +fn spawn_worker(app: AppHandle) { tauri::async_runtime::spawn_blocking(move || run_worker(app)); } @@ -163,8 +163,8 @@ fn build_jobs( /// decoding happens on the detached blocking worker, never on the webview/UI /// thread or in the command future. #[tauri::command] -pub fn optimize_cover_thumbnails( - app: AppHandle, +pub fn optimize_cover_thumbnails( + app: AppHandle, books_dir: String, cache_dir: String, covers: Vec, @@ -180,7 +180,7 @@ pub fn optimize_cover_thumbnails( Ok(()) } -fn run_worker(app: AppHandle) { +fn run_worker(app: AppHandle) { let _running = WorkerRunningGuard { app: app.clone() }; loop { diff --git a/apps/readest-app/src-tauri/src/dir_scanner.rs b/apps/readest-app/src-tauri/src/dir_scanner.rs index a27622cd7..b1e758a8f 100644 --- a/apps/readest-app/src-tauri/src/dir_scanner.rs +++ b/apps/readest-app/src-tauri/src/dir_scanner.rs @@ -10,8 +10,8 @@ pub struct ScannedFile { } #[tauri::command] -pub async fn read_dir( - app: AppHandle, +pub async fn read_dir( + app: AppHandle, path: String, recursive: bool, extensions: Vec, diff --git a/apps/readest-app/src-tauri/src/lib.rs b/apps/readest-app/src-tauri/src/lib.rs index a2cdb47fe..b2487734b 100644 --- a/apps/readest-app/src-tauri/src/lib.rs +++ b/apps/readest-app/src-tauri/src/lib.rs @@ -56,7 +56,7 @@ use tauri_plugin_opener::OpenerExt; use transfer_file::{download_file, upload_file}; #[cfg(any(desktop, target_os = "ios"))] -fn allow_file_in_scopes(app: &AppHandle, files: Vec) { +fn allow_file_in_scopes(app: &AppHandle, files: Vec) { let fs_scope = app.fs_scope(); let asset_protocol_scope = app.asset_protocol_scope(); for file in &files { @@ -73,7 +73,7 @@ fn allow_file_in_scopes(app: &AppHandle, files: Vec) { } } -fn allow_dir_in_scopes(app: &AppHandle, dir: &PathBuf) { +fn allow_dir_in_scopes(app: &AppHandle, dir: &PathBuf) { let fs_scope = app.fs_scope(); let asset_protocol_scope = app.asset_protocol_scope(); if let Err(e) = fs_scope.allow_directory(dir, true) { @@ -133,7 +133,11 @@ fn allow_dir_in_scopes(app: &AppHandle, dir: &PathBuf) { /// every launch, so the in-memory scope set stays in sync with /// the user's persisted intent. #[command] -fn allow_paths_in_scopes(_app: AppHandle, _paths: Vec, _is_directory: bool) { +fn allow_paths_in_scopes( + _app: AppHandle, + _paths: Vec, + _is_directory: bool, +) { #[cfg(desktop)] { let fs_scope = _app.fs_scope(); @@ -209,7 +213,7 @@ fn get_files_from_argv(argv: Vec) -> Vec { } #[cfg(desktop)] -fn set_window_open_with_files(app: &AppHandle, files: Vec) { +fn set_window_open_with_files(app: &AppHandle, files: Vec) { let files = files .into_iter() .map(|f| { @@ -229,7 +233,7 @@ fn set_window_open_with_files(app: &AppHandle, files: Vec) { } #[command] -async fn start_server(window: Window) -> Result { +async fn start_server(window: Window) -> Result { start(move |url| { // Because of the unprotected localhost port, you must verify the URL here. // Preferebly send back only the token, or nothing at all if you can handle everything else in Rust. @@ -315,7 +319,17 @@ struct SingleInstancePayload { cwd: String, } +/// The webview runtime this build drives: CEF for the Linux CEF build, Wry +/// everywhere else (the `cef` feature is a no-op off Linux, see Cargo.toml). Named explicitly because several plugins pull in tauri's +/// default `wry` feature even when CEF is selected, which leaves +/// `Builder::default()` ambiguous there. +#[cfg(all(feature = "cef", target_os = "linux"))] +type AppRuntime = tauri::Cef; +#[cfg(not(all(feature = "cef", target_os = "linux")))] +type AppRuntime = tauri::Wry; + #[cfg_attr(mobile, tauri::mobile_entry_point)] +#[cfg_attr(all(feature = "cef", target_os = "linux"), tauri::cef_entry_point)] pub fn run() { // Initialize Sentry as early as possible so panics during startup are // captured. `None` DSN (unset SENTRY_DSN) => disabled, so local and fork @@ -394,7 +408,21 @@ pub fn run() { )) }); - let builder = tauri::Builder::default() + let builder = tauri::Builder::::new(); + + // A fresh profile is Chromium's "first run", and on Linux the first-run + // preferences default to requiring a EULA dialog. CEF has no way to show + // it, so the browser process exits with result code 28 and tauri reports + // `WebviewRuntimeNotInstalled`; every first launch of a fresh install would + // fail. `--no-first-run` skips the first-run tasks altogether. (Keep the + // dashes: the runtime appends a dash-less, value-less entry as a positional + // argument rather than a switch.) + #[cfg(all(feature = "cef", target_os = "linux"))] + let builder = builder.runtime_init_attrs( + tauri::CefRuntimeAttributes::default().command_line_arg("--no-first-run", None::), + ); + + let builder = builder .plugin( tauri_plugin_log::Builder::new() .level(log::LevelFilter::Info) diff --git a/apps/readest-app/src-tauri/src/pdf_parser.rs b/apps/readest-app/src-tauri/src/pdf_parser.rs index 6b4ee64fc..fd149ddf7 100644 --- a/apps/readest-app/src-tauri/src/pdf_parser.rs +++ b/apps/readest-app/src-tauri/src/pdf_parser.rs @@ -40,8 +40,8 @@ pub struct ParsedPdfMetadata { } #[tauri::command] -pub async fn parse_pdf_metadata( - app: AppHandle, +pub async fn parse_pdf_metadata( + app: AppHandle, file_path: String, ) -> Result { ensure_path_allowed(&app, &file_path)?; @@ -52,8 +52,8 @@ pub async fn parse_pdf_metadata( } #[tauri::command] -pub async fn render_pdf_cover( - app: AppHandle, +pub async fn render_pdf_cover( + app: AppHandle, payload: RenderPdfCoverRequest, ) -> Result { ensure_path_allowed(&app, &payload.file_path)?; @@ -62,7 +62,10 @@ pub async fn render_pdf_cover( .map_err(|e| e.to_string()) } -fn ensure_path_allowed(app: &AppHandle, file_path: &str) -> Result<(), String> { +fn ensure_path_allowed( + app: &AppHandle, + file_path: &str, +) -> Result<(), String> { #[cfg(feature = "webdriver")] let _ = (app, file_path); @@ -81,7 +84,7 @@ fn ensure_path_allowed(app: &AppHandle, file_path: &str) -> Result<(), String> { Ok(()) } -fn open_pdf_source(app: &AppHandle, file_path: &str) -> Result { +fn open_pdf_source(app: &AppHandle, file_path: &str) -> Result { #[cfg(not(target_os = "android"))] let _ = app; diff --git a/apps/readest-app/src-tauri/src/transfer_file.rs b/apps/readest-app/src-tauri/src/transfer_file.rs index f73a534ba..6d2f4d1d8 100644 --- a/apps/readest-app/src-tauri/src/transfer_file.rs +++ b/apps/readest-app/src-tauri/src/transfer_file.rs @@ -116,8 +116,8 @@ fn is_within_app_storage(file_path: &str, app_identifier: &str) -> bool { /// privileged Tauri origin — see GHSA-55vr-pvq5-6fmg. We require an absolute, /// traversal-free path that is either granted by the fs scope (persisted dialog /// grants for custom/external roots) or lives inside the app's own storage. -pub(crate) fn ensure_path_allowed( - app: &AppHandle, +pub(crate) fn ensure_path_allowed( + app: &AppHandle, file_path: &str, ) -> std::result::Result<(), Error> { if has_disallowed_components(file_path) { @@ -150,8 +150,8 @@ pub struct ProgressPayload { #[command] #[allow(clippy::too_many_arguments)] // Tauri command surface mirrors the JS caller's options. -pub async fn download_file( - app: AppHandle, +pub async fn download_file( + app: AppHandle, url: &str, file_path: &str, headers: HashMap, @@ -329,8 +329,8 @@ pub async fn download_file( } #[command] -pub async fn upload_file( - app: AppHandle, +pub async fn upload_file( + app: AppHandle, url: &str, file_path: &str, method: &str, diff --git a/apps/readest-app/src-tauri/src/web_browser.rs b/apps/readest-app/src-tauri/src/web_browser.rs index 81552edce..0db32a616 100644 --- a/apps/readest-app/src-tauri/src/web_browser.rs +++ b/apps/readest-app/src-tauri/src/web_browser.rs @@ -202,8 +202,8 @@ fn is_browser_label(label: &str) -> bool { /// (see `WebBrowserDownload`). #[cfg(desktop)] #[tauri::command] -pub async fn open_web_browser( - app: AppHandle, +pub async fn open_web_browser( + app: AppHandle, url: String, options: Option, ) -> Result { @@ -357,7 +357,10 @@ pub async fn open_web_browser( /// every open browser window's chrome. #[cfg(desktop)] #[tauri::command] -pub fn set_web_browser_status(app: AppHandle, status: WebBrowserStatus) -> Result<(), String> { +pub fn set_web_browser_status( + app: AppHandle, + status: WebBrowserStatus, +) -> Result<(), String> { let js = status_eval(&status); for (label, window) in app.webview_windows() { if is_browser_label(&label) { diff --git a/apps/readest-app/src-tauri/tauri.conf.json b/apps/readest-app/src-tauri/tauri.conf.json index 15f4a4eca..af4d35539 100644 --- a/apps/readest-app/src-tauri/tauri.conf.json +++ b/apps/readest-app/src-tauri/tauri.conf.json @@ -66,7 +66,11 @@ }, "linux": { "deb": { - "section": "text" + "section": "text", + "depends": ["libwebkit2gtk-4.1-0"] + }, + "rpm": { + "depends": ["libwebkit2gtk-4.1.so.0()(64bit)"] } }, "android": { diff --git a/apps/readest-app/src/__tests__/android/capability-external-cache-scope.test.ts b/apps/readest-app/src/__tests__/android/capability-external-cache-scope.test.ts index fa3622ecf..ddda0c27d 100644 --- a/apps/readest-app/src/__tests__/android/capability-external-cache-scope.test.ts +++ b/apps/readest-app/src/__tests__/android/capability-external-cache-scope.test.ts @@ -30,8 +30,8 @@ import { resolve } from 'path'; */ // fs plugin permission identifiers whose scope resolves the EXTERNAL `$CACHE` -// (see packages/tauri-plugins/plugins/fs/permissions/autogenerated/ -// base-directories/cache.toml). Granting any of these resolves +// (see tauri-plugin-fs's permissions/autogenerated/base-directories/cache.toml). +// Granting any of these resolves // `getExternalCacheDir` at startup. const EXTERNAL_CACHE_FS_PERMISSIONS = [ 'fs:scope-cache', diff --git a/apps/readest-app/src/__tests__/app/opds/navigation-titlebar.test.tsx b/apps/readest-app/src/__tests__/app/opds/navigation-titlebar.test.tsx index b92cbfe69..035f0a88f 100644 --- a/apps/readest-app/src/__tests__/app/opds/navigation-titlebar.test.tsx +++ b/apps/readest-app/src/__tests__/app/opds/navigation-titlebar.test.tsx @@ -32,6 +32,7 @@ vi.mock('@/store/settingsStore', () => ({ vi.mock('@/services/environment', () => ({ isTauriAppPlatform: () => true, + needsPointerWindowControls: () => false, })); vi.mock('@tauri-apps/api/window', () => ({ diff --git a/apps/readest-app/src/__tests__/components/WindowButtons.test.tsx b/apps/readest-app/src/__tests__/components/WindowButtons.test.tsx index e4256633f..a8b697792 100644 --- a/apps/readest-app/src/__tests__/components/WindowButtons.test.tsx +++ b/apps/readest-app/src/__tests__/components/WindowButtons.test.tsx @@ -5,7 +5,9 @@ import { afterEach, describe, expect, it, vi } from 'vitest'; import WindowButtons from '@/components/WindowButtons'; const startDragging = vi.fn().mockResolvedValue(undefined); +const startPointerWindowMove = vi.fn().mockResolvedValue(undefined); let hasWindowBar = false; +let pointerWindowControls = false; vi.mock('@/context/EnvContext', () => ({ useEnv: () => ({ appService: { hasWindowBar } }), @@ -17,6 +19,11 @@ vi.mock('@/hooks/useTranslation', () => ({ vi.mock('@/services/environment', () => ({ isTauriAppPlatform: () => true, + needsPointerWindowControls: () => pointerWindowControls, +})); + +vi.mock('@/utils/windowPointerDrag', () => ({ + startPointerWindowMove: (e: MouseEvent) => startPointerWindowMove(e), })); vi.mock('@tauri-apps/api/window', () => ({ @@ -74,4 +81,19 @@ describe('WindowButtons', () => { expect(startDragging).toHaveBeenCalledOnce(); }); + + it('drives the drag from pointer events where the runtime cannot (Linux CEF)', async () => { + hasWindowBar = true; + pointerWindowControls = true; + startDragging.mockClear(); + render(); + + await act(async () => { + fireEvent.mouseDown(screen.getByTestId('header'), { buttons: 1, detail: 1 }); + await new Promise((resolve) => setTimeout(resolve, 0)); + }); + + expect(startPointerWindowMove).toHaveBeenCalledOnce(); + expect(startDragging).not.toHaveBeenCalled(); + }); }); diff --git a/apps/readest-app/src/__tests__/services/query-range-reads.test.ts b/apps/readest-app/src/__tests__/services/query-range-reads.test.ts new file mode 100644 index 000000000..5668a973c --- /dev/null +++ b/apps/readest-app/src/__tests__/services/query-range-reads.test.ts @@ -0,0 +1,31 @@ +import { describe, expect, test } from 'vitest'; +import { needsQueryRangeReads } from '@/utils/ua'; + +const WEBKITGTK_UA = + 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Safari/605.1.15'; +const CEF_UA = + 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36'; +const WEBVIEW2_UA = + 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0'; + +describe('needsQueryRangeReads', () => { + test('Android always reads through the rangefile scheme', () => { + expect( + needsQueryRangeReads('android', 'Mozilla/5.0 (Linux; Android 14) Chrome/151.0.0.0'), + ).toBe(true); + }); + + test('Linux on the CEF (Chromium) runtime reads through the rangefile scheme', () => { + expect(needsQueryRangeReads('linux', CEF_UA)).toBe(true); + }); + + test('Linux on WebKitGTK keeps the asset protocol', () => { + expect(needsQueryRangeReads('linux', WEBKITGTK_UA)).toBe(false); + }); + + test('other desktop platforms are unaffected even with a Chrome token', () => { + expect(needsQueryRangeReads('windows', WEBVIEW2_UA)).toBe(false); + expect(needsQueryRangeReads('macos', WEBKITGTK_UA)).toBe(false); + expect(needsQueryRangeReads('ios', WEBKITGTK_UA)).toBe(false); + }); +}); diff --git a/apps/readest-app/src/__tests__/tauri/app-command-acl.test.ts b/apps/readest-app/src/__tests__/tauri/app-command-acl.test.ts index f667786af..afef30878 100644 --- a/apps/readest-app/src/__tests__/tauri/app-command-acl.test.ts +++ b/apps/readest-app/src/__tests__/tauri/app-command-acl.test.ts @@ -7,10 +7,6 @@ const PERMISSION = 'allow-optimize-cover-thumbnails'; const buildScript = readFileSync(resolve(process.cwd(), 'src-tauri/build.rs'), 'utf-8'); const rustCommandRegistry = readFileSync(resolve(process.cwd(), 'src-tauri/src/lib.rs'), 'utf-8'); -const generatedPermission = readFileSync( - resolve(process.cwd(), 'src-tauri/permissions/autogenerated/optimize_cover_thumbnails.toml'), - 'utf-8', -); const manifestCommandBlock = buildScript.match(/AppManifest::new\(\)\.commands\(&\[(?[\s\S]*?)\]\)/)?.groups?.[ 'commands' @@ -34,7 +30,6 @@ describe('cover thumbnail app-command ACL (#5632)', () => { it('declares the command in the Tauri app manifest', () => { expect(manifestCommands).toContain(COMMAND); expect(rustCommandRegistry).toContain('cover_thumbnail::optimize_cover_thumbnails'); - expect(generatedPermission).toContain(`commands.allow = ["${COMMAND}"]`); }); it('grants the command to local app windows', () => { diff --git a/apps/readest-app/src/__tests__/utils/ua.test.ts b/apps/readest-app/src/__tests__/utils/ua.test.ts index ad0bf88f0..3d0237c58 100644 --- a/apps/readest-app/src/__tests__/utils/ua.test.ts +++ b/apps/readest-app/src/__tests__/utils/ua.test.ts @@ -65,16 +65,28 @@ describe('parseWebViewInfo', () => { expect(result).toBe('Edge 120.0.2210.91'); }); + it('should detect the Linux CEF (Chromium) webview', () => { + setUserAgent( + 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36', + ); + const appService = { + appPlatform: 'tauri', + osPlatform: 'linux', + } as unknown as AppServiceParam; + expect(parseWebViewInfo(appService)).toBe('Chromium 151.0.0.0'); + expect(parseWebViewVersion(appService)).toBe(151); + }); + it('should detect Linux WebView', () => { setUserAgent( - 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', + 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Safari/605.1.15', ); const appService = { appPlatform: 'tauri', osPlatform: 'linux', } as unknown as AppServiceParam; const result = parseWebViewInfo(appService); - expect(result).toBe('WebView 537.36'); + expect(result).toBe('WebView 605.1.15'); }); it('should detect desktop Chrome on macOS', () => { diff --git a/apps/readest-app/src/__tests__/utils/window-pointer-drag.test.ts b/apps/readest-app/src/__tests__/utils/window-pointer-drag.test.ts new file mode 100644 index 000000000..bbc324a00 --- /dev/null +++ b/apps/readest-app/src/__tests__/utils/window-pointer-drag.test.ts @@ -0,0 +1,123 @@ +import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest'; +import { isLinuxCefRuntime } from '@/utils/ua'; +import { + computeResizedFrame, + type ResizeEdge, + startPointerWindowMove, +} from '@/utils/windowPointerDrag'; + +const CEF_UA = + 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36'; +const WEBKITGTK_UA = + 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Safari/605.1.15'; +const ANDROID_UA = + 'Mozilla/5.0 (Linux; Android 14) AppleWebKit/537.36 Chrome/151.0.0.0 Mobile Safari/537.36'; +const WEBVIEW2_UA = + 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0'; + +describe('isLinuxCefRuntime', () => { + test('matches the Chromium user agent of the Linux CEF build only', () => { + expect(isLinuxCefRuntime(CEF_UA)).toBe(true); + expect(isLinuxCefRuntime(WEBKITGTK_UA)).toBe(false); + expect(isLinuxCefRuntime(ANDROID_UA)).toBe(false); + expect(isLinuxCefRuntime(WEBVIEW2_UA)).toBe(false); + }); +}); + +describe('computeResizedFrame', () => { + const start = { x: 100, y: 200, width: 800, height: 600 }; + const min = { width: 400, height: 300 }; + const frame = (edge: ResizeEdge, dx: number, dy: number) => + computeResizedFrame(edge, start, { dx, dy }, min); + + test('east and south edges grow the size and keep the origin', () => { + expect(frame('e', 50, 999)).toEqual({ x: 100, y: 200, width: 850, height: 600 }); + expect(frame('s', 999, 40)).toEqual({ x: 100, y: 200, width: 800, height: 640 }); + expect(frame('se', 50, 40)).toEqual({ x: 100, y: 200, width: 850, height: 640 }); + }); + + test('west and north edges move the origin with the edge', () => { + expect(frame('w', -50, 0)).toEqual({ x: 50, y: 200, width: 850, height: 600 }); + expect(frame('n', 0, -40)).toEqual({ x: 100, y: 160, width: 800, height: 640 }); + expect(frame('nw', 30, 20)).toEqual({ x: 130, y: 220, width: 770, height: 580 }); + }); + + test('never shrinks below the minimum size, pinning the moving edge', () => { + expect(frame('e', -500, 0)).toEqual({ x: 100, y: 200, width: 400, height: 600 }); + expect(frame('w', 500, 0)).toEqual({ x: 500, y: 200, width: 400, height: 600 }); + expect(frame('n', 0, 500)).toEqual({ x: 100, y: 500, width: 800, height: 300 }); + }); +}); + +const windowMock = { + isMaximized: vi.fn(), + outerPosition: vi.fn(), + outerSize: vi.fn(), + scaleFactor: vi.fn(), + setPosition: vi.fn(), + setSize: vi.fn(), +}; + +vi.mock('@tauri-apps/api/window', () => ({ + getCurrentWindow: () => windowMock, + PhysicalPosition: class { + constructor( + public x: number, + public y: number, + ) {} + }, + PhysicalSize: class { + constructor( + public width: number, + public height: number, + ) {} + }, +})); + +const mouse = (type: string, screenX: number, screenY: number) => + window.dispatchEvent(new MouseEvent(type, { screenX, screenY })); + +describe('startPointerWindowMove', () => { + let frames: FrameRequestCallback[]; + + beforeEach(() => { + frames = []; + vi.stubGlobal('requestAnimationFrame', (cb: FrameRequestCallback) => frames.push(cb)); + vi.stubGlobal('cancelAnimationFrame', vi.fn()); + windowMock.isMaximized.mockResolvedValue(false); + windowMock.outerPosition.mockResolvedValue({ x: 100, y: 200 }); + windowMock.scaleFactor.mockResolvedValue(1); + windowMock.setPosition.mockClear(); + }); + + afterEach(() => { + vi.unstubAllGlobals(); + }); + + test('applies the final pointer delta when the button is released before the next frame', async () => { + await startPointerWindowMove(new MouseEvent('mousedown', { screenX: 10, screenY: 10 })); + mouse('mousemove', 40, 25); + mouse('mouseup', 40, 25); + expect(windowMock.setPosition).toHaveBeenCalledTimes(1); + expect(windowMock.setPosition.mock.calls[0]![0]).toMatchObject({ x: 130, y: 215 }); + }); + + test('does not track the pointer when the button was released while the window state loaded', async () => { + let resolvePosition: (value: { x: number; y: number }) => void = () => {}; + windowMock.outerPosition.mockReturnValue( + new Promise<{ x: number; y: number }>((resolve) => { + resolvePosition = resolve; + }), + ); + const started = startPointerWindowMove( + new MouseEvent('mousedown', { screenX: 10, screenY: 10 }), + ); + await Promise.resolve(); + mouse('mouseup', 10, 10); + resolvePosition({ x: 100, y: 200 }); + await started; + mouse('mousemove', 60, 60); + frames.forEach((cb) => cb(0)); + expect(windowMock.setPosition).not.toHaveBeenCalled(); + }); +}); diff --git a/apps/readest-app/src/components/Providers.tsx b/apps/readest-app/src/components/Providers.tsx index 61422e4df..1915fbd41 100644 --- a/apps/readest-app/src/components/Providers.tsx +++ b/apps/readest-app/src/components/Providers.tsx @@ -7,6 +7,7 @@ import { useEffect, useState } from 'react'; import { IconContext } from 'react-icons'; import { AuthProvider } from '@/context/AuthContext'; import { useEnv } from '@/context/EnvContext'; +import WindowResizeHandles from '@/components/WindowResizeHandles'; import { CSPostHogProvider } from '@/context/PHContext'; import { SyncProvider } from '@/context/SyncContext'; import { initSystemThemeListener, loadDataTheme } from '@/store/themeStore'; @@ -242,6 +243,7 @@ const Providers = ({ children }: { children: React.ReactNode }) => { + = ({ if (e.buttons === 1) { if (e.detail === 2) { getCurrentWindow().toggleMaximize(); + } else if (needsPointerWindowControls()) { + startPointerWindowMove(e); } else { getCurrentWindow().startDragging(); } diff --git a/apps/readest-app/src/components/WindowResizeHandles.tsx b/apps/readest-app/src/components/WindowResizeHandles.tsx new file mode 100644 index 000000000..186ff6888 --- /dev/null +++ b/apps/readest-app/src/components/WindowResizeHandles.tsx @@ -0,0 +1,98 @@ +import React, { useEffect, useState } from 'react'; +import { useEnv } from '@/context/EnvContext'; +import { needsPointerWindowControls } from '@/services/environment'; +import { startPointerWindowResize, type ResizeEdge } from '@/utils/windowPointerDrag'; + +const THICKNESS = 6; +const CORNER = 14; + +const HANDLES: Array<{ edge: ResizeEdge; cursor: string; style: React.CSSProperties }> = [ + { + edge: 'n', + cursor: 'ns-resize', + style: { top: 0, left: CORNER, right: CORNER, height: THICKNESS }, + }, + { + edge: 's', + cursor: 'ns-resize', + style: { bottom: 0, left: CORNER, right: CORNER, height: THICKNESS }, + }, + { + edge: 'w', + cursor: 'ew-resize', + style: { left: 0, top: CORNER, bottom: CORNER, width: THICKNESS }, + }, + { + edge: 'e', + cursor: 'ew-resize', + style: { right: 0, top: CORNER, bottom: CORNER, width: THICKNESS }, + }, + { edge: 'nw', cursor: 'nwse-resize', style: { top: 0, left: 0, width: CORNER, height: CORNER } }, + { + edge: 'se', + cursor: 'nwse-resize', + style: { bottom: 0, right: 0, width: CORNER, height: CORNER }, + }, + { edge: 'ne', cursor: 'nesw-resize', style: { top: 0, right: 0, width: CORNER, height: CORNER } }, + { + edge: 'sw', + cursor: 'nesw-resize', + style: { bottom: 0, left: 0, width: CORNER, height: CORNER }, + }, +]; + +/** + * Invisible resize borders for undecorated windows whose runtime offers none + * (the Linux CEF build, see `needsPointerWindowControls`). Hidden while the + * window is maximized or fullscreen, where the edges must not react. + */ +const WindowResizeHandles: React.FC = () => { + const { appService } = useEnv(); + const [active, setActive] = useState(false); + + useEffect(() => { + if (!appService?.hasWindowBar || !needsPointerWindowControls()) return; + let unlisten: (() => void) | undefined; + let disposed = false; + const update = async () => { + const { getCurrentWindow } = await import('@tauri-apps/api/window'); + const win = getCurrentWindow(); + const [maximized, fullscreen] = await Promise.all([win.isMaximized(), win.isFullscreen()]); + if (!disposed) setActive(!maximized && !fullscreen); + }; + update(); + import('@tauri-apps/api/window').then(({ getCurrentWindow }) => + getCurrentWindow() + .onResized(update) + .then((fn) => { + if (disposed) fn(); + else unlisten = fn; + }), + ); + return () => { + disposed = true; + unlisten?.(); + }; + }, [appService?.hasWindowBar]); + + if (!active) return null; + + return ( + <> + {HANDLES.map(({ edge, cursor, style }) => ( +
{ + if (e.button !== 0) return; + e.preventDefault(); + startPointerWindowResize(e.nativeEvent, edge); + }} + /> + ))} + + ); +}; + +export default WindowResizeHandles; diff --git a/apps/readest-app/src/services/environment.ts b/apps/readest-app/src/services/environment.ts index 53dbc7d56..bfbd2de9f 100644 --- a/apps/readest-app/src/services/environment.ts +++ b/apps/readest-app/src/services/environment.ts @@ -1,6 +1,7 @@ import { AppService } from '@/types/system'; import { READEST_NODE_BASE_URL, READEST_WEB_BASE_URL } from './constants'; import { getRuntimeConfig } from './runtimeConfig'; +import { isLinuxCefRuntime } from '@/utils/ua'; declare global { interface Window { @@ -20,6 +21,18 @@ export const getBaseUrl = () => export const getNodeBaseUrl = () => process.env['NEXT_PUBLIC_NODE_BASE_URL'] ?? READEST_NODE_BASE_URL; +/** + * Whether window move/resize has to be driven from JS with pointer events. + * Under CEF on X11 the mouse press is owned by Chromium's X connection, so the + * runtime's `startDragging` (`_NET_WM_MOVERESIZE` from winit's connection) is + * refused by the window manager, and the undecorated window has no native + * resize borders either. Every other platform keeps the runtime's own drag. + */ +export const needsPointerWindowControls = () => + isTauriAppPlatform() && + typeof navigator !== 'undefined' && + isLinuxCefRuntime(navigator.userAgent); + export const isMacPlatform = () => typeof window !== 'undefined' && /Mac|iPod|iPhone|iPad/.test(navigator.platform); diff --git a/apps/readest-app/src/services/nativeAppService.ts b/apps/readest-app/src/services/nativeAppService.ts index eadeb18c0..c329126a8 100644 --- a/apps/readest-app/src/services/nativeAppService.ts +++ b/apps/readest-app/src/services/nativeAppService.ts @@ -38,6 +38,7 @@ import { DistChannel, } from '@/types/system'; import type { Book } from '@/types/book'; +import { needsQueryRangeReads } from '@/utils/ua'; import { getOSPlatform, isContentURI, isFileURI, isValidURL } from '@/utils/misc'; import { getDirPath, getFilename } from '@/utils/path'; import { NativeFile, RemoteFile } from '@/utils/file'; @@ -326,13 +327,14 @@ export const nativeFileSystem: FileSystem = { } } else if (isFileURI(path)) { return await new NativeFile(fp, fname, baseDir ? baseDir : null).open(); - } else if (OS_TYPE === 'android') { - // Android can't use the asset protocol for ranged reads — its WebView - // re-applies a `Range` header's offset to intercepted bodies and corrupts - // non-zero-start reads (Chromium 40739128). Instead route reads through - // the `rangefile` custom scheme, which carries the range in the URL query - // (no `Range` header) so the WebView delivers the bytes verbatim, still - // over the network stack rather than the slow Tauri IPC bridge. + } else if (needsQueryRangeReads(OS_TYPE, navigator.userAgent)) { + // Android and the Linux CEF build can't use the asset protocol for + // ranged reads — Chromium re-applies a `Range` header's offset to + // intercepted bodies and fails non-zero-start reads (Chromium 40739128). + // Instead route reads through the `rangefile` custom scheme, which + // carries the range in the URL query (no `Range` header) so the WebView + // delivers the bytes verbatim, still over the network stack rather than + // the slow Tauri IPC bridge. // Falls back to NativeFile if the path is outside the asset scope. try { const prefix = await this.getPrefix(base); diff --git a/apps/readest-app/src/utils/ua.ts b/apps/readest-app/src/utils/ua.ts index 32151299c..075e360b9 100644 --- a/apps/readest-app/src/utils/ua.ts +++ b/apps/readest-app/src/utils/ua.ts @@ -1,5 +1,24 @@ import { AppService } from '@/types/system'; +/** + * Whether local files must be read through the `rangefile` query-range scheme + * instead of the asset protocol with a `Range` header. Chromium re-applies a + * `Range` header's offset to the body of an intercepted custom-protocol + * response (Chromium 40739128), so every non-zero-start read fails: that is the + * Android WebView and, on Linux, the CEF runtime, which is the only Linux + * webview that carries a `Chrome/` token (WebKitGTK never does). + */ +export const needsQueryRangeReads = (osType: string, userAgent: string) => + osType === 'android' || (osType === 'linux' && isLinuxCefRuntime(userAgent)); + +/** + * The Linux CEF (Chromium) build. WebKitGTK never sends a `Chrome/` token and + * Android identifies itself in the platform part, so this only matches the + * desktop Linux Chromium runtime. + */ +export const isLinuxCefRuntime = (userAgent: string) => + /\bLinux\b/.test(userAgent) && !/\bAndroid\b/.test(userAgent) && /\bChrome\//.test(userAgent); + export const parseWebViewInfo = (appService: AppService | null): string => { const ua = navigator.userAgent; @@ -20,7 +39,10 @@ export const parseWebViewInfo = (appService: AppService | null): string => { const match = ua.match(/Edg\/([0-9.]+)/); return match ? `Edge ${match[1]}` : 'Edge WebView2'; } else if (appService?.appPlatform === 'tauri' && appService?.osPlatform === 'linux') { - // Linux WebView + // Linux: the CEF build reports Chromium (its user agent is reduced to the + // major version, e.g. Chrome/151.0.0.0); otherwise WebKitGTK. + const chromeMatch = ua.match(/Chrome\/([0-9.]+)/); + if (chromeMatch) return `Chromium ${chromeMatch[1]}`; const match = ua.match(/AppleWebKit\/([0-9.]+)/); return match ? `WebView ${match[1]}` : 'Linux WebView'; } else if (ua.includes('CriOS') && ua.includes('Mobile/') && ua.includes('Safari')) { diff --git a/apps/readest-app/src/utils/windowPointerDrag.ts b/apps/readest-app/src/utils/windowPointerDrag.ts new file mode 100644 index 000000000..2a2359b2b --- /dev/null +++ b/apps/readest-app/src/utils/windowPointerDrag.ts @@ -0,0 +1,131 @@ +/** + * Pointer-driven window move and resize for runtimes whose native drag does not + * work: the Linux CEF build (see `needsPointerWindowControls`). The window is + * moved/resized through the window plugin on every pointer move, coalesced to + * one call per animation frame. Coordinates are physical pixels; pointer + * positions come in CSS pixels (`screenX`/`screenY`) and are scaled. + */ +import { getCurrentWindow, PhysicalPosition, PhysicalSize } from '@tauri-apps/api/window'; + +export type ResizeEdge = 'n' | 's' | 'e' | 'w' | 'ne' | 'nw' | 'se' | 'sw'; + +export interface Frame { + x: number; + y: number; + width: number; + height: number; +} + +export const MIN_WINDOW_SIZE = { width: 400, height: 300 }; + +/** New window frame for dragging `edge` by `delta`; moving edges stay under the pointer down to `min`. */ +export const computeResizedFrame = ( + edge: ResizeEdge, + start: Frame, + delta: { dx: number; dy: number }, + min: { width: number; height: number }, +): Frame => { + let { x, y, width, height } = start; + if (edge.includes('e')) { + width = Math.max(min.width, start.width + delta.dx); + } + if (edge.includes('s')) { + height = Math.max(min.height, start.height + delta.dy); + } + if (edge.includes('w')) { + width = Math.max(min.width, start.width - delta.dx); + x = start.x + start.width - width; + } + if (edge.includes('n')) { + height = Math.max(min.height, start.height - delta.dy); + y = start.y + start.height - height; + } + return { x, y, width, height }; +}; + +const trackPointer = ( + startEvent: MouseEvent, + onDelta: (delta: { dx: number; dy: number }) => void, +) => { + const origin = { x: startEvent.screenX, y: startEvent.screenY }; + let frame: number | null = null; + let latest = { dx: 0, dy: 0 }; + const onMove = (e: MouseEvent) => { + latest = { dx: e.screenX - origin.x, dy: e.screenY - origin.y }; + if (frame === null) { + frame = requestAnimationFrame(() => { + frame = null; + onDelta(latest); + }); + } + }; + const onUp = () => { + window.removeEventListener('mousemove', onMove, true); + window.removeEventListener('mouseup', onUp, true); + if (frame !== null) { + // A quick drag can end before its only frame runs; apply it anyway. + cancelAnimationFrame(frame); + frame = null; + onDelta(latest); + } + }; + window.addEventListener('mousemove', onMove, true); + window.addEventListener('mouseup', onUp, true); +}; + +/** + * Reports whether the button went up while the window state was being read; + * tracking must not start after that, or the next unrelated pointer move would + * drag the window from the stale origin. + */ +const watchRelease = () => { + let released = false; + const onUp = () => { + released = true; + }; + window.addEventListener('mouseup', onUp, true); + return () => { + window.removeEventListener('mouseup', onUp, true); + return released; + }; +}; + +export const startPointerWindowMove = async (startEvent: MouseEvent) => { + const released = watchRelease(); + const win = getCurrentWindow(); + if (await win.isMaximized()) { + released(); + return; + } + const [start, scale] = await Promise.all([win.outerPosition(), win.scaleFactor()]); + if (released()) return; + trackPointer(startEvent, ({ dx, dy }) => { + win.setPosition( + new PhysicalPosition(Math.round(start.x + dx * scale), Math.round(start.y + dy * scale)), + ); + }); +}; + +export const startPointerWindowResize = async (startEvent: MouseEvent, edge: ResizeEdge) => { + const released = watchRelease(); + const win = getCurrentWindow(); + if (await win.isMaximized()) { + released(); + return; + } + const [position, size, scale] = await Promise.all([ + win.outerPosition(), + win.outerSize(), + win.scaleFactor(), + ]); + if (released()) return; + const start: Frame = { x: position.x, y: position.y, width: size.width, height: size.height }; + const min = { width: MIN_WINDOW_SIZE.width * scale, height: MIN_WINDOW_SIZE.height * scale }; + trackPointer(startEvent, ({ dx, dy }) => { + const next = computeResizedFrame(edge, start, { dx: dx * scale, dy: dy * scale }, min); + if (next.x !== start.x || next.y !== start.y) { + win.setPosition(new PhysicalPosition(Math.round(next.x), Math.round(next.y))); + } + win.setSize(new PhysicalSize(Math.round(next.width), Math.round(next.height))); + }); +}; diff --git a/nix/package.nix b/nix/package.nix index c82664b71..122f891a5 100644 --- a/nix/package.nix +++ b/nix/package.nix @@ -72,7 +72,7 @@ rustPlatform.buildRustPackage (finalAttrs: { }; cargoRoot = "../.."; - cargoHash = "sha256-rymU61FzIKp1XOQjSWWdk+PIn6gb2uUKRn8lBe0Cg3I="; + cargoHash = "sha256-GRw9fDkqmDSaPqK+CDrYfB3mHZT9ARoZUELlB1YkUOw="; buildAndTestSubdir = "src-tauri"; diff --git a/packages/tauri b/packages/tauri index 6914700e0..61a041281 160000 --- a/packages/tauri +++ b/packages/tauri @@ -1 +1 @@ -Subproject commit 6914700e04bfc391a2adfa9c3393a2afe376c154 +Subproject commit 61a041281910151e10dc229bbedfec6ae2d49353 diff --git a/packages/tauri-plugins b/packages/tauri-plugins deleted file mode 160000 index 4350ca652..000000000 --- a/packages/tauri-plugins +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 4350ca652d33e3face88d7c97a78830553545550