From 236cab99aea03f4ac0cdce5a512c8599f184eab5 Mon Sep 17 00:00:00 2001 From: "s0wlz (Matthias Puchstein)" Date: Fri, 20 Feb 2026 19:40:15 +0100 Subject: [PATCH] init Tauri --- .vscode/extensions.json | 3 + AGENTS.md | 54 + index.html | 43 + package.json | 21 + pnpm-lock.yaml | 809 ++++ src-tauri/.gitignore | 7 + src-tauri/Cargo.lock | 5548 +++++++++++++++++++++++++ src-tauri/Cargo.toml | 33 + src-tauri/build.rs | 3 + src-tauri/capabilities/default.json | 10 + src-tauri/icons/128x128.png | Bin 0 -> 3512 bytes src-tauri/icons/128x128@2x.png | Bin 0 -> 7012 bytes src-tauri/icons/32x32.png | Bin 0 -> 974 bytes src-tauri/icons/Square107x107Logo.png | Bin 0 -> 2863 bytes src-tauri/icons/Square142x142Logo.png | Bin 0 -> 3858 bytes src-tauri/icons/Square150x150Logo.png | Bin 0 -> 3966 bytes src-tauri/icons/Square284x284Logo.png | Bin 0 -> 7737 bytes src-tauri/icons/Square30x30Logo.png | Bin 0 -> 903 bytes src-tauri/icons/Square310x310Logo.png | Bin 0 -> 8591 bytes src-tauri/icons/Square44x44Logo.png | Bin 0 -> 1299 bytes src-tauri/icons/Square71x71Logo.png | Bin 0 -> 2011 bytes src-tauri/icons/Square89x89Logo.png | Bin 0 -> 2468 bytes src-tauri/icons/StoreLogo.png | Bin 0 -> 1523 bytes src-tauri/icons/icon.icns | Bin 0 -> 98451 bytes src-tauri/icons/icon.ico | Bin 0 -> 37710 bytes src-tauri/icons/icon.png | Bin 0 -> 14183 bytes src-tauri/src/app_state.rs | 0 src-tauri/src/countdown/commands.rs | 0 src-tauri/src/countdown/dto.rs | 0 src-tauri/src/countdown/mod.rs | 0 src-tauri/src/countdown/model.rs | 80 + src-tauri/src/countdown/service.rs | 0 src-tauri/src/lib.rs | 14 + src-tauri/src/main.rs | 6 + src-tauri/src/server/mod.rs | 0 src-tauri/src/server/routes.rs | 0 src-tauri/src/server/sse.rs | 0 src-tauri/tauri.conf.json | 36 + src/assets/tauri.svg | 6 + src/assets/typescript.svg | 25 + src/assets/vite.svg | 1 + src/main.ts | 22 + src/styles.css | 116 + tsconfig.json | 23 + vite.config.ts | 30 + 45 files changed, 6890 insertions(+) create mode 100644 .vscode/extensions.json create mode 100644 AGENTS.md create mode 100644 index.html create mode 100644 package.json create mode 100644 pnpm-lock.yaml create mode 100644 src-tauri/.gitignore create mode 100644 src-tauri/Cargo.lock create mode 100644 src-tauri/Cargo.toml create mode 100644 src-tauri/build.rs create mode 100644 src-tauri/capabilities/default.json create mode 100644 src-tauri/icons/128x128.png create mode 100644 src-tauri/icons/128x128@2x.png create mode 100644 src-tauri/icons/32x32.png create mode 100644 src-tauri/icons/Square107x107Logo.png create mode 100644 src-tauri/icons/Square142x142Logo.png create mode 100644 src-tauri/icons/Square150x150Logo.png create mode 100644 src-tauri/icons/Square284x284Logo.png create mode 100644 src-tauri/icons/Square30x30Logo.png create mode 100644 src-tauri/icons/Square310x310Logo.png create mode 100644 src-tauri/icons/Square44x44Logo.png create mode 100644 src-tauri/icons/Square71x71Logo.png create mode 100644 src-tauri/icons/Square89x89Logo.png create mode 100644 src-tauri/icons/StoreLogo.png create mode 100644 src-tauri/icons/icon.icns create mode 100644 src-tauri/icons/icon.ico create mode 100644 src-tauri/icons/icon.png create mode 100644 src-tauri/src/app_state.rs create mode 100644 src-tauri/src/countdown/commands.rs create mode 100644 src-tauri/src/countdown/dto.rs create mode 100644 src-tauri/src/countdown/mod.rs create mode 100644 src-tauri/src/countdown/model.rs create mode 100644 src-tauri/src/countdown/service.rs create mode 100644 src-tauri/src/lib.rs create mode 100644 src-tauri/src/main.rs create mode 100644 src-tauri/src/server/mod.rs create mode 100644 src-tauri/src/server/routes.rs create mode 100644 src-tauri/src/server/sse.rs create mode 100644 src-tauri/tauri.conf.json create mode 100644 src/assets/tauri.svg create mode 100644 src/assets/typescript.svg create mode 100644 src/assets/vite.svg create mode 100644 src/main.ts create mode 100644 src/styles.css create mode 100644 tsconfig.json create mode 100644 vite.config.ts diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..24d7cc6 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["tauri-apps.tauri-vscode", "rust-lang.rust-analyzer"] +} diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..bd2b1a2 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,54 @@ +# Repository Guidelines + +## Learning-First Collaboration Rules +This is a learning project. The assistant is a guide, not an implementer. + +- The developer writes all application code and tests. +- The assistant must not write or modify project source code (for example `src/` or `src-tauri/src/`). +- The assistant may provide step-by-step guidance, debugging help, reviews, architecture feedback, and hints. +- The assistant may edit documentation files when explicitly requested. +- If asked to implement code, the assistant should refuse and provide a clear plan the developer can execute. + +## Project Structure & Module Organization +This repository is a Tauri app with a TypeScript frontend and Rust backend. + +- `src/`: frontend code (`main.ts`, `styles.css`, and static assets in `src/assets/`). +- `src-tauri/src/`: Rust entry points and Tauri commands (`main.rs`, `lib.rs`). +- `src-tauri/icons/`: app icons used for desktop bundles. +- `src-tauri/tauri.conf.json`: Tauri app/build configuration. +- `dist/` and `src-tauri/target/`: build outputs (generated; do not edit manually). + +## Build, Test, and Development Commands +- `pnpm install`: install JavaScript dependencies. +- `pnpm dev`: run the Vite web dev server at `http://localhost:1420`. +- `pnpm tauri dev`: run the app in development mode. +- `pnpm build`: type-check (`tsc`) and build frontend assets into `dist/`. +- `pnpm tauri build`: create desktop bundles. +- `pnpm preview`: preview the frontend bundle. +- `cargo test --manifest-path src-tauri/Cargo.toml`: run Rust tests. + +## Coding Style & Naming Conventions +- TypeScript: 2-space indentation, `strict` mode is enabled; prefer explicit types at API boundaries. +- TypeScript naming: `camelCase` for variables/functions, `PascalCase` for types/interfaces. +- Rust: follow `rustfmt` defaults (4-space indentation); use `snake_case` for functions/modules. +- Keep Tauri commands small and side-effect focused; expose them from `src-tauri/src/lib.rs`. +- Use descriptive file names by feature (for example, `src/settings-panel.ts`). + +## Testing Guidelines +No automated JS test framework is currently configured. For new features: + +- add Rust unit tests near command logic (`#[cfg(test)]` in `src-tauri/src/`), and +- add frontend tests only when introducing non-trivial UI/state behavior (Vitest is the preferred choice if added). +- include manual verification steps in PRs (OS, command run, expected behavior). + +## Commit & Pull Request Guidelines +Git history is not available in this workspace snapshot, so use Conventional Commit style: + +- `feat: add tray menu action` +- `fix: handle empty greet input` + +PRs should include: +- a short problem/solution summary, +- linked issue(s) when applicable, +- screenshots or recordings for UI changes, +- exact verification commands run (for example, `pnpm tauri dev`, `pnpm build`). diff --git a/index.html b/index.html new file mode 100644 index 0000000..11ac6b8 --- /dev/null +++ b/index.html @@ -0,0 +1,43 @@ + + + + + + + Tauri App + + + + +
+

Welcome to Tauri

+ + +

Click on the Tauri logo to learn more about the framework

+ +
+ + +
+

+
+ + diff --git a/package.json b/package.json new file mode 100644 index 0000000..e1a8936 --- /dev/null +++ b/package.json @@ -0,0 +1,21 @@ +{ + "name": "owlerlay", + "private": true, + "version": "0.1.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview", + "tauri": "tauri" + }, + "dependencies": { + "@tauri-apps/api": "^2", + "@tauri-apps/plugin-opener": "^2" + }, + "devDependencies": { + "@tauri-apps/cli": "^2", + "vite": "^6.0.3", + "typescript": "~5.6.2" + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..4e63c5c --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,809 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@tauri-apps/api': + specifier: ^2 + version: 2.10.1 + '@tauri-apps/plugin-opener': + specifier: ^2 + version: 2.5.3 + devDependencies: + '@tauri-apps/cli': + specifier: ^2 + version: 2.10.0 + typescript: + specifier: ~5.6.2 + version: 5.6.3 + vite: + specifier: ^6.0.3 + version: 6.4.1 + +packages: + + '@esbuild/aix-ppc64@0.25.12': + resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.25.12': + resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.25.12': + resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.25.12': + resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.25.12': + resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.25.12': + resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.25.12': + resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.25.12': + resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.25.12': + resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.25.12': + resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.25.12': + resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.25.12': + resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.25.12': + resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.25.12': + resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.25.12': + resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.25.12': + resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.25.12': + resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.25.12': + resolution: {integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.25.12': + resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.25.12': + resolution: {integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.25.12': + resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openharmony-arm64@0.25.12': + resolution: {integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + + '@esbuild/sunos-x64@0.25.12': + resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.25.12': + resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.25.12': + resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.25.12': + resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@rollup/rollup-android-arm-eabi@4.58.0': + resolution: {integrity: sha512-mr0tmS/4FoVk1cnaeN244A/wjvGDNItZKR8hRhnmCzygyRXYtKF5jVDSIILR1U97CTzAYmbgIj/Dukg62ggG5w==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.58.0': + resolution: {integrity: sha512-+s++dbp+/RTte62mQD9wLSbiMTV+xr/PeRJEc/sFZFSBRlHPNPVaf5FXlzAL77Mr8FtSfQqCN+I598M8U41ccQ==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.58.0': + resolution: {integrity: sha512-MFWBwTcYs0jZbINQBXHfSrpSQJq3IUOakcKPzfeSznONop14Pxuqa0Kg19GD0rNBMPQI2tFtu3UzapZpH0Uc1Q==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.58.0': + resolution: {integrity: sha512-yiKJY7pj9c9JwzuKYLFaDZw5gma3fI9bkPEIyofvVfsPqjCWPglSHdpdwXpKGvDeYDms3Qal8qGMEHZ1M/4Udg==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.58.0': + resolution: {integrity: sha512-x97kCoBh5MOevpn/CNK9W1x8BEzO238541BGWBc315uOlN0AD/ifZ1msg+ZQB05Ux+VF6EcYqpiagfLJ8U3LvQ==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.58.0': + resolution: {integrity: sha512-Aa8jPoZ6IQAG2eIrcXPpjRcMjROMFxCt1UYPZZtCxRV68WkuSigYtQ/7Zwrcr2IvtNJo7T2JfDXyMLxq5L4Jlg==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.58.0': + resolution: {integrity: sha512-Ob8YgT5kD/lSIYW2Rcngs5kNB/44Q2RzBSPz9brf2WEtcGR7/f/E9HeHn1wYaAwKBni+bdXEwgHvUd0x12lQSA==} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm-musleabihf@4.58.0': + resolution: {integrity: sha512-K+RI5oP1ceqoadvNt1FecL17Qtw/n9BgRSzxif3rTL2QlIu88ccvY+Y9nnHe/cmT5zbH9+bpiJuG1mGHRVwF4Q==} + cpu: [arm] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-arm64-gnu@4.58.0': + resolution: {integrity: sha512-T+17JAsCKUjmbopcKepJjHWHXSjeW7O5PL7lEFaeQmiVyw4kkc5/lyYKzrv6ElWRX/MrEWfPiJWqbTvfIvjM1Q==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm64-musl@4.58.0': + resolution: {integrity: sha512-cCePktb9+6R9itIJdeCFF9txPU7pQeEHB5AbHu/MKsfH/k70ZtOeq1k4YAtBv9Z7mmKI5/wOLYjQ+B9QdxR6LA==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-loong64-gnu@4.58.0': + resolution: {integrity: sha512-iekUaLkfliAsDl4/xSdoCJ1gnnIXvoNz85C8U8+ZxknM5pBStfZjeXgB8lXobDQvvPRCN8FPmmuTtH+z95HTmg==} + cpu: [loong64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-loong64-musl@4.58.0': + resolution: {integrity: sha512-68ofRgJNl/jYJbxFjCKE7IwhbfxOl1muPN4KbIqAIe32lm22KmU7E8OPvyy68HTNkI2iV/c8y2kSPSm2mW/Q9Q==} + cpu: [loong64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-ppc64-gnu@4.58.0': + resolution: {integrity: sha512-dpz8vT0i+JqUKuSNPCP5SYyIV2Lh0sNL1+FhM7eLC457d5B9/BC3kDPp5BBftMmTNsBarcPcoz5UGSsnCiw4XQ==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-ppc64-musl@4.58.0': + resolution: {integrity: sha512-4gdkkf9UJ7tafnweBCR/mk4jf3Jfl0cKX9Np80t5i78kjIH0ZdezUv/JDI2VtruE5lunfACqftJ8dIMGN4oHew==} + cpu: [ppc64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-riscv64-gnu@4.58.0': + resolution: {integrity: sha512-YFS4vPnOkDTD/JriUeeZurFYoJhPf9GQQEF/v4lltp3mVcBmnsAdjEWhr2cjUCZzZNzxCG0HZOvJU44UGHSdzw==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-riscv64-musl@4.58.0': + resolution: {integrity: sha512-x2xgZlFne+QVNKV8b4wwaCS8pwq3y14zedZ5DqLzjdRITvreBk//4Knbcvm7+lWmms9V9qFp60MtUd0/t/PXPw==} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-s390x-gnu@4.58.0': + resolution: {integrity: sha512-jIhrujyn4UnWF8S+DHSkAkDEO3hLX0cjzxJZPLF80xFyzyUIYgSMRcYQ3+uqEoyDD2beGq7Dj7edi8OnJcS/hg==} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-gnu@4.58.0': + resolution: {integrity: sha512-+410Srdoh78MKSJxTQ+hZ/Mx+ajd6RjjPwBPNd0R3J9FtL6ZA0GqiiyNjCO9In0IzZkCNrpGymSfn+kgyPQocg==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-musl@4.58.0': + resolution: {integrity: sha512-ZjMyby5SICi227y1MTR3VYBpFTdZs823Rs/hpakufleBoufoOIB6jtm9FEoxn/cgO7l6PM2rCEl5Kre5vX0QrQ==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@rollup/rollup-openbsd-x64@4.58.0': + resolution: {integrity: sha512-ds4iwfYkSQ0k1nb8LTcyXw//ToHOnNTJtceySpL3fa7tc/AsE+UpUFphW126A6fKBGJD5dhRvg8zw1rvoGFxmw==} + cpu: [x64] + os: [openbsd] + + '@rollup/rollup-openharmony-arm64@4.58.0': + resolution: {integrity: sha512-fd/zpJniln4ICdPkjWFhZYeY/bpnaN9pGa6ko+5WD38I0tTqk9lXMgXZg09MNdhpARngmxiCg0B0XUamNw/5BQ==} + cpu: [arm64] + os: [openharmony] + + '@rollup/rollup-win32-arm64-msvc@4.58.0': + resolution: {integrity: sha512-YpG8dUOip7DCz3nr/JUfPbIUo+2d/dy++5bFzgi4ugOGBIox+qMbbqt/JoORwvI/C9Kn2tz6+Bieoqd5+B1CjA==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.58.0': + resolution: {integrity: sha512-b9DI8jpFQVh4hIXFr0/+N/TzLdpBIoPzjt0Rt4xJbW3mzguV3mduR9cNgiuFcuL/TeORejJhCWiAXe3E/6PxWA==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-gnu@4.58.0': + resolution: {integrity: sha512-CSrVpmoRJFN06LL9xhkitkwUcTZtIotYAF5p6XOR2zW0Zz5mzb3IPpcoPhB02frzMHFNo1reQ9xSF5fFm3hUsQ==} + cpu: [x64] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.58.0': + resolution: {integrity: sha512-QFsBgQNTnh5K0t/sBsjJLq24YVqEIVkGpfN2VHsnN90soZyhaiA9UUHufcctVNL4ypJY0wrwad0wslx2KJQ1/w==} + cpu: [x64] + os: [win32] + + '@tauri-apps/api@2.10.1': + resolution: {integrity: sha512-hKL/jWf293UDSUN09rR69hrToyIXBb8CjGaWC7gfinvnQrBVvnLr08FeFi38gxtugAVyVcTa5/FD/Xnkb1siBw==} + + '@tauri-apps/cli-darwin-arm64@2.10.0': + resolution: {integrity: sha512-avqHD4HRjrMamE/7R/kzJPcAJnZs0IIS+1nkDP5b+TNBn3py7N2aIo9LIpy+VQq0AkN8G5dDpZtOOBkmWt/zjA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@tauri-apps/cli-darwin-x64@2.10.0': + resolution: {integrity: sha512-keDmlvJRStzVFjZTd0xYkBONLtgBC9eMTpmXnBXzsHuawV2q9PvDo2x6D5mhuoMVrJ9QWjgaPKBBCFks4dK71Q==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@tauri-apps/cli-linux-arm-gnueabihf@2.10.0': + resolution: {integrity: sha512-e5u0VfLZsMAC9iHaOEANumgl6lfnJx0Dtjkd8IJpysZ8jp0tJ6wrIkto2OzQgzcYyRCKgX72aKE0PFgZputA8g==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + + '@tauri-apps/cli-linux-arm64-gnu@2.10.0': + resolution: {integrity: sha512-YrYYk2dfmBs5m+OIMCrb+JH/oo+4FtlpcrTCgiFYc7vcs6m3QDd1TTyWu0u01ewsCtK2kOdluhr/zKku+KP7HA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@tauri-apps/cli-linux-arm64-musl@2.10.0': + resolution: {integrity: sha512-GUoPdVJmrJRIXFfW3Rkt+eGK9ygOdyISACZfC/bCSfOnGt8kNdQIQr5WRH9QUaTVFIwxMlQyV3m+yXYP+xhSVA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@tauri-apps/cli-linux-riscv64-gnu@2.10.0': + resolution: {integrity: sha512-JO7s3TlSxshwsoKNCDkyvsx5gw2QAs/Y2GbR5UE2d5kkU138ATKoPOtxn8G1fFT1aDW4LH0rYAAfBpGkDyJJnw==} + engines: {node: '>= 10'} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@tauri-apps/cli-linux-x64-gnu@2.10.0': + resolution: {integrity: sha512-Uvh4SUUp4A6DVRSMWjelww0GnZI3PlVy7VS+DRF5napKuIehVjGl9XD0uKoCoxwAQBLctvipyEK+pDXpJeoHng==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@tauri-apps/cli-linux-x64-musl@2.10.0': + resolution: {integrity: sha512-AP0KRK6bJuTpQ8kMNWvhIpKUkQJfcPFeba7QshOQZjJ8wOS6emwTN4K5g/d3AbCMo0RRdnZWwu67MlmtJyxC1Q==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + libc: [musl] + + '@tauri-apps/cli-win32-arm64-msvc@2.10.0': + resolution: {integrity: sha512-97DXVU3dJystrq7W41IX+82JEorLNY+3+ECYxvXWqkq7DBN6FsA08x/EFGE8N/b0LTOui9X2dvpGGoeZKKV08g==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@tauri-apps/cli-win32-ia32-msvc@2.10.0': + resolution: {integrity: sha512-EHyQ1iwrWy1CwMalEm9z2a6L5isQ121pe7FcA2xe4VWMJp+GHSDDGvbTv/OPdkt2Lyr7DAZBpZHM6nvlHXEc4A==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + + '@tauri-apps/cli-win32-x64-msvc@2.10.0': + resolution: {integrity: sha512-NTpyQxkpzGmU6ceWBTY2xRIEaS0ZLbVx1HE1zTA3TY/pV3+cPoPPOs+7YScr4IMzXMtOw7tLw5LEXo5oIG3qaQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@tauri-apps/cli@2.10.0': + resolution: {integrity: sha512-ZwT0T+7bw4+DPCSWzmviwq5XbXlM0cNoleDKOYPFYqcZqeKY31KlpoMW/MOON/tOFBPgi31a2v3w9gliqwL2+Q==} + engines: {node: '>= 10'} + hasBin: true + + '@tauri-apps/plugin-opener@2.5.3': + resolution: {integrity: sha512-CCcUltXMOfUEArbf3db3kCE7Ggy1ExBEBl51Ko2ODJ6GDYHRp1nSNlQm5uNCFY5k7/ufaK5Ib3Du/Zir19IYQQ==} + + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + + esbuild@0.25.12: + resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==} + engines: {node: '>=18'} + hasBin: true + + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + engines: {node: '>=12'} + + postcss@8.5.6: + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} + engines: {node: ^10 || ^12 || >=14} + + rollup@4.58.0: + resolution: {integrity: sha512-wbT0mBmWbIvvq8NeEYWWvevvxnOyhKChir47S66WCxw1SXqhw7ssIYejnQEVt7XYQpsj2y8F9PM+Cr3SNEa0gw==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + engines: {node: '>=12.0.0'} + + typescript@5.6.3: + resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} + engines: {node: '>=14.17'} + hasBin: true + + vite@6.4.1: + resolution: {integrity: sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: '>=1.21.0' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + +snapshots: + + '@esbuild/aix-ppc64@0.25.12': + optional: true + + '@esbuild/android-arm64@0.25.12': + optional: true + + '@esbuild/android-arm@0.25.12': + optional: true + + '@esbuild/android-x64@0.25.12': + optional: true + + '@esbuild/darwin-arm64@0.25.12': + optional: true + + '@esbuild/darwin-x64@0.25.12': + optional: true + + '@esbuild/freebsd-arm64@0.25.12': + optional: true + + '@esbuild/freebsd-x64@0.25.12': + optional: true + + '@esbuild/linux-arm64@0.25.12': + optional: true + + '@esbuild/linux-arm@0.25.12': + optional: true + + '@esbuild/linux-ia32@0.25.12': + optional: true + + '@esbuild/linux-loong64@0.25.12': + optional: true + + '@esbuild/linux-mips64el@0.25.12': + optional: true + + '@esbuild/linux-ppc64@0.25.12': + optional: true + + '@esbuild/linux-riscv64@0.25.12': + optional: true + + '@esbuild/linux-s390x@0.25.12': + optional: true + + '@esbuild/linux-x64@0.25.12': + optional: true + + '@esbuild/netbsd-arm64@0.25.12': + optional: true + + '@esbuild/netbsd-x64@0.25.12': + optional: true + + '@esbuild/openbsd-arm64@0.25.12': + optional: true + + '@esbuild/openbsd-x64@0.25.12': + optional: true + + '@esbuild/openharmony-arm64@0.25.12': + optional: true + + '@esbuild/sunos-x64@0.25.12': + optional: true + + '@esbuild/win32-arm64@0.25.12': + optional: true + + '@esbuild/win32-ia32@0.25.12': + optional: true + + '@esbuild/win32-x64@0.25.12': + optional: true + + '@rollup/rollup-android-arm-eabi@4.58.0': + optional: true + + '@rollup/rollup-android-arm64@4.58.0': + optional: true + + '@rollup/rollup-darwin-arm64@4.58.0': + optional: true + + '@rollup/rollup-darwin-x64@4.58.0': + optional: true + + '@rollup/rollup-freebsd-arm64@4.58.0': + optional: true + + '@rollup/rollup-freebsd-x64@4.58.0': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.58.0': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.58.0': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.58.0': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.58.0': + optional: true + + '@rollup/rollup-linux-loong64-gnu@4.58.0': + optional: true + + '@rollup/rollup-linux-loong64-musl@4.58.0': + optional: true + + '@rollup/rollup-linux-ppc64-gnu@4.58.0': + optional: true + + '@rollup/rollup-linux-ppc64-musl@4.58.0': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.58.0': + optional: true + + '@rollup/rollup-linux-riscv64-musl@4.58.0': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.58.0': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.58.0': + optional: true + + '@rollup/rollup-linux-x64-musl@4.58.0': + optional: true + + '@rollup/rollup-openbsd-x64@4.58.0': + optional: true + + '@rollup/rollup-openharmony-arm64@4.58.0': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.58.0': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.58.0': + optional: true + + '@rollup/rollup-win32-x64-gnu@4.58.0': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.58.0': + optional: true + + '@tauri-apps/api@2.10.1': {} + + '@tauri-apps/cli-darwin-arm64@2.10.0': + optional: true + + '@tauri-apps/cli-darwin-x64@2.10.0': + optional: true + + '@tauri-apps/cli-linux-arm-gnueabihf@2.10.0': + optional: true + + '@tauri-apps/cli-linux-arm64-gnu@2.10.0': + optional: true + + '@tauri-apps/cli-linux-arm64-musl@2.10.0': + optional: true + + '@tauri-apps/cli-linux-riscv64-gnu@2.10.0': + optional: true + + '@tauri-apps/cli-linux-x64-gnu@2.10.0': + optional: true + + '@tauri-apps/cli-linux-x64-musl@2.10.0': + optional: true + + '@tauri-apps/cli-win32-arm64-msvc@2.10.0': + optional: true + + '@tauri-apps/cli-win32-ia32-msvc@2.10.0': + optional: true + + '@tauri-apps/cli-win32-x64-msvc@2.10.0': + optional: true + + '@tauri-apps/cli@2.10.0': + optionalDependencies: + '@tauri-apps/cli-darwin-arm64': 2.10.0 + '@tauri-apps/cli-darwin-x64': 2.10.0 + '@tauri-apps/cli-linux-arm-gnueabihf': 2.10.0 + '@tauri-apps/cli-linux-arm64-gnu': 2.10.0 + '@tauri-apps/cli-linux-arm64-musl': 2.10.0 + '@tauri-apps/cli-linux-riscv64-gnu': 2.10.0 + '@tauri-apps/cli-linux-x64-gnu': 2.10.0 + '@tauri-apps/cli-linux-x64-musl': 2.10.0 + '@tauri-apps/cli-win32-arm64-msvc': 2.10.0 + '@tauri-apps/cli-win32-ia32-msvc': 2.10.0 + '@tauri-apps/cli-win32-x64-msvc': 2.10.0 + + '@tauri-apps/plugin-opener@2.5.3': + dependencies: + '@tauri-apps/api': 2.10.1 + + '@types/estree@1.0.8': {} + + esbuild@0.25.12: + optionalDependencies: + '@esbuild/aix-ppc64': 0.25.12 + '@esbuild/android-arm': 0.25.12 + '@esbuild/android-arm64': 0.25.12 + '@esbuild/android-x64': 0.25.12 + '@esbuild/darwin-arm64': 0.25.12 + '@esbuild/darwin-x64': 0.25.12 + '@esbuild/freebsd-arm64': 0.25.12 + '@esbuild/freebsd-x64': 0.25.12 + '@esbuild/linux-arm': 0.25.12 + '@esbuild/linux-arm64': 0.25.12 + '@esbuild/linux-ia32': 0.25.12 + '@esbuild/linux-loong64': 0.25.12 + '@esbuild/linux-mips64el': 0.25.12 + '@esbuild/linux-ppc64': 0.25.12 + '@esbuild/linux-riscv64': 0.25.12 + '@esbuild/linux-s390x': 0.25.12 + '@esbuild/linux-x64': 0.25.12 + '@esbuild/netbsd-arm64': 0.25.12 + '@esbuild/netbsd-x64': 0.25.12 + '@esbuild/openbsd-arm64': 0.25.12 + '@esbuild/openbsd-x64': 0.25.12 + '@esbuild/openharmony-arm64': 0.25.12 + '@esbuild/sunos-x64': 0.25.12 + '@esbuild/win32-arm64': 0.25.12 + '@esbuild/win32-ia32': 0.25.12 + '@esbuild/win32-x64': 0.25.12 + + fdir@6.5.0(picomatch@4.0.3): + optionalDependencies: + picomatch: 4.0.3 + + fsevents@2.3.3: + optional: true + + nanoid@3.3.11: {} + + picocolors@1.1.1: {} + + picomatch@4.0.3: {} + + postcss@8.5.6: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + rollup@4.58.0: + dependencies: + '@types/estree': 1.0.8 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.58.0 + '@rollup/rollup-android-arm64': 4.58.0 + '@rollup/rollup-darwin-arm64': 4.58.0 + '@rollup/rollup-darwin-x64': 4.58.0 + '@rollup/rollup-freebsd-arm64': 4.58.0 + '@rollup/rollup-freebsd-x64': 4.58.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.58.0 + '@rollup/rollup-linux-arm-musleabihf': 4.58.0 + '@rollup/rollup-linux-arm64-gnu': 4.58.0 + '@rollup/rollup-linux-arm64-musl': 4.58.0 + '@rollup/rollup-linux-loong64-gnu': 4.58.0 + '@rollup/rollup-linux-loong64-musl': 4.58.0 + '@rollup/rollup-linux-ppc64-gnu': 4.58.0 + '@rollup/rollup-linux-ppc64-musl': 4.58.0 + '@rollup/rollup-linux-riscv64-gnu': 4.58.0 + '@rollup/rollup-linux-riscv64-musl': 4.58.0 + '@rollup/rollup-linux-s390x-gnu': 4.58.0 + '@rollup/rollup-linux-x64-gnu': 4.58.0 + '@rollup/rollup-linux-x64-musl': 4.58.0 + '@rollup/rollup-openbsd-x64': 4.58.0 + '@rollup/rollup-openharmony-arm64': 4.58.0 + '@rollup/rollup-win32-arm64-msvc': 4.58.0 + '@rollup/rollup-win32-ia32-msvc': 4.58.0 + '@rollup/rollup-win32-x64-gnu': 4.58.0 + '@rollup/rollup-win32-x64-msvc': 4.58.0 + fsevents: 2.3.3 + + source-map-js@1.2.1: {} + + tinyglobby@0.2.15: + dependencies: + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + + typescript@5.6.3: {} + + vite@6.4.1: + dependencies: + esbuild: 0.25.12 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.58.0 + tinyglobby: 0.2.15 + optionalDependencies: + fsevents: 2.3.3 diff --git a/src-tauri/.gitignore b/src-tauri/.gitignore new file mode 100644 index 0000000..b21bd68 --- /dev/null +++ b/src-tauri/.gitignore @@ -0,0 +1,7 @@ +# Generated by Cargo +# will have compiled files and executables +/target/ + +# Generated by Tauri +# will have schema files for capabilities auto-completion +/gen/schemas diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock new file mode 100644 index 0000000..251b12e --- /dev/null +++ b/src-tauri/Cargo.lock @@ -0,0 +1,5548 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "adler2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" + +[[package]] +name = "aho-corasick" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" +dependencies = [ + "memchr", +] + +[[package]] +name = "alloc-no-stdlib" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" +dependencies = [ + "alloc-no-stdlib", +] + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anyhow" +version = "1.0.102" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" + +[[package]] +name = "async-broadcast" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532" +dependencies = [ + "event-listener", + "event-listener-strategy", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-channel" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2" +dependencies = [ + "concurrent-queue", + "event-listener-strategy", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-executor" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c96bf972d85afc50bf5ab8fe2d54d1586b4e0b46c97c50a0c9e71e2f7bcd812a" +dependencies = [ + "async-task", + "concurrent-queue", + "fastrand", + "futures-lite", + "pin-project-lite", + "slab", +] + +[[package]] +name = "async-io" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "456b8a8feb6f42d237746d4b3e9a178494627745c3c56c6ea55d92ba50d026fc" +dependencies = [ + "autocfg", + "cfg-if", + "concurrent-queue", + "futures-io", + "futures-lite", + "parking", + "polling", + "rustix", + "slab", + "windows-sys 0.61.2", +] + +[[package]] +name = "async-lock" +version = "3.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290f7f2596bd5b78a9fec8088ccd89180d7f9f55b94b0576823bbbdc72ee8311" +dependencies = [ + "event-listener", + "event-listener-strategy", + "pin-project-lite", +] + +[[package]] +name = "async-process" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc50921ec0055cdd8a16de48773bfeec5c972598674347252c0399676be7da75" +dependencies = [ + "async-channel", + "async-io", + "async-lock", + "async-signal", + "async-task", + "blocking", + "cfg-if", + "event-listener", + "futures-lite", + "rustix", +] + +[[package]] +name = "async-recursion" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "async-signal" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43c070bbf59cd3570b6b2dd54cd772527c7c3620fce8be898406dd3ed6adc64c" +dependencies = [ + "async-io", + "async-lock", + "atomic-waker", + "cfg-if", + "futures-core", + "futures-io", + "rustix", + "signal-hook-registry", + "slab", + "windows-sys 0.61.2", +] + +[[package]] +name = "async-task" +version = "4.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" + +[[package]] +name = "async-trait" +version = "0.1.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "atk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "241b621213072e993be4f6f3a9e4b45f65b7e6faad43001be957184b7bb1824b" +dependencies = [ + "atk-sys", + "glib", + "libc", +] + +[[package]] +name = "atk-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5e48b684b0ca77d2bbadeef17424c2ea3c897d44d566a1617e7e8f30614d086" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "autocfg" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" + +[[package]] +name = "axum" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b52af3cb4058c895d37317bb27508dccc8e5f2d39454016b297bf4a400597b8" +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 = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" +dependencies = [ + "serde_core", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block2" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5" +dependencies = [ + "objc2", +] + +[[package]] +name = "blocking" +version = "1.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e83f8d02be6967315521be875afa792a316e28d57b5a2d401897e2a7921b7f21" +dependencies = [ + "async-channel", + "async-task", + "futures-io", + "futures-lite", + "piper", +] + +[[package]] +name = "brotli" +version = "8.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bd8b9603c7aa97359dbd97ecf258968c95f3adddd6db2f7e7a5bef101c84560" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "874bb8112abecc98cbd6d81ea4fa7e94fb9449648c93cc89aa40c81c24d7de03" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + +[[package]] +name = "bumpalo" +version = "3.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" + +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" +dependencies = [ + "serde", +] + +[[package]] +name = "cairo-rs" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2" +dependencies = [ + "bitflags 2.11.0", + "cairo-sys-rs", + "glib", + "libc", + "once_cell", + "thiserror 1.0.69", +] + +[[package]] +name = "cairo-sys-rs" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + +[[package]] +name = "camino" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e629a66d692cb9ff1a1c664e41771b3dcaf961985a9774c0eb0bd1b51cf60a48" +dependencies = [ + "serde_core", +] + +[[package]] +name = "cargo-platform" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.19.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba" +dependencies = [ + "camino", + "cargo-platform", + "semver", + "serde", + "serde_json", + "thiserror 2.0.18", +] + +[[package]] +name = "cargo_toml" +version = "0.22.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "374b7c592d9c00c1f4972ea58390ac6b18cbb6ab79011f3bdc90a0b82ca06b77" +dependencies = [ + "serde", + "toml 0.9.12+spec-1.1.0", +] + +[[package]] +name = "cc" +version = "1.2.56" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aebf35691d1bfb0ac386a69bac2fde4dd276fb618cf8bf4f5318fe285e821bb2" +dependencies = [ + "find-msvc-tools", + "shlex", +] + +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + +[[package]] +name = "cfb" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38f2da7a0a2c4ccf0065be06397cc26a81f4e528be095826eee9d4adbb8c60f" +dependencies = [ + "byteorder", + "fnv", + "uuid", +] + +[[package]] +name = "cfg-expr" +version = "0.15.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" +dependencies = [ + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cfg-if" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" + +[[package]] +name = "chrono" +version = "0.4.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fac4744fb15ae8337dc853fee7fb3f4e48c0fbaa23d0afe49c447b4fab126118" +dependencies = [ + "iana-time-zone", + "num-traits", + "serde", + "windows-link 0.2.1", +] + +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + +[[package]] +name = "concurrent-queue" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "cookie" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ddef33a339a91ea89fb53151bd0a4689cfce27055c291dfa69945475d22c747" +dependencies = [ + "time", + "version_check", +] + +[[package]] +name = "core-foundation" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "core-graphics" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa95a34622365fa5bbf40b20b75dba8dfa8c94c734aea8ac9a5ca38af14316f1" +dependencies = [ + "bitflags 2.11.0", + "core-foundation", + "core-graphics-types", + "foreign-types", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" +dependencies = [ + "bitflags 2.11.0", + "core-foundation", + "libc", +] + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" + +[[package]] +name = "crypto-common" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "cssparser" +version = "0.29.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f93d03419cb5950ccfd3daf3ff1c7a36ace64609a1a8746d493df1ca0afde0fa" +dependencies = [ + "cssparser-macros", + "dtoa-short", + "itoa", + "matches", + "phf 0.10.1", + "proc-macro2", + "quote", + "smallvec", + "syn 1.0.109", +] + +[[package]] +name = "cssparser-macros" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" +dependencies = [ + "quote", + "syn 2.0.117", +] + +[[package]] +name = "ctor" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a2785755761f3ddc1492979ce1e48d2c00d09311c39e4466429188f3dd6501" +dependencies = [ + "quote", + "syn 2.0.117", +] + +[[package]] +name = "darling" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.117", +] + +[[package]] +name = "darling_macro" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "deranged" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc3dc5ad92c2e2d1c193bbbbdf2ea477cb81331de4f3103f267ca18368b988c4" +dependencies = [ + "powerfmt", + "serde_core", +] + +[[package]] +name = "derive_more" +version = "0.99.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6edb4b64a43d977b8e99788fe3a04d483834fba1215a7e02caa415b626497f7f" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "rustc_version", + "syn 2.0.117", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "dirs" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.61.2", +] + +[[package]] +name = "dispatch" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" + +[[package]] +name = "dispatch2" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec" +dependencies = [ + "bitflags 2.11.0", + "objc2", +] + +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[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.117", +] + +[[package]] +name = "dpi" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76" +dependencies = [ + "serde", +] + +[[package]] +name = "dtoa" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c3cf4824e2d5f025c7b531afcb2325364084a16806f6d47fbc1f5fbd9960590" + +[[package]] +name = "dtoa-short" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd1511a7b6a56299bd043a9c167a6d2bfb37bf84a6dfceaba651168adfb43c87" +dependencies = [ + "dtoa", +] + +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + +[[package]] +name = "dyn-clone" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" + +[[package]] +name = "embed-resource" +version = "3.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55a075fc573c64510038d7ee9abc7990635863992f83ebc52c8b433b8411a02e" +dependencies = [ + "cc", + "memchr", + "rustc_version", + "toml 0.9.12+spec-1.1.0", + "vswhom", + "winreg", +] + +[[package]] +name = "embed_plist" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" + +[[package]] +name = "endi" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66b7e2430c6dff6a955451e2cfc438f09cea1965a9d6f87f7e3b90decc014099" + +[[package]] +name = "enumflags2" +version = "0.7.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1027f7680c853e056ebcec683615fb6fbbc07dbaa13b4d5d9442b146ded4ecef" +dependencies = [ + "enumflags2_derive", + "serde", +] + +[[package]] +name = "enumflags2_derive" +version = "0.7.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "erased-serde" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89e8918065695684b2b0702da20382d5ae6065cf3327bc2d6436bd49a71ce9f3" +dependencies = [ + "serde", + "serde_core", + "typeid", +] + +[[package]] +name = "errno" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + +[[package]] +name = "event-listener" +version = "5.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener-strategy" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" +dependencies = [ + "event-listener", + "pin-project-lite", +] + +[[package]] +name = "fastrand" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" + +[[package]] +name = "fdeflate" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "field-offset" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" +dependencies = [ + "memoffset", + "rustc_version", +] + +[[package]] +name = "find-msvc-tools" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" + +[[package]] +name = "flate2" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + +[[package]] +name = "foreign-types" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" +dependencies = [ + "foreign-types-macros", + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-macros" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "foreign-types-shared" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" + +[[package]] +name = "form_urlencoded" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futf" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" +dependencies = [ + "mac", + "new_debug_unreachable", +] + +[[package]] +name = "futures-channel" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" + +[[package]] +name = "futures-executor" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" + +[[package]] +name = "futures-lite" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad" +dependencies = [ + "fastrand", + "futures-core", + "futures-io", + "parking", + "pin-project-lite", +] + +[[package]] +name = "futures-macro" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "futures-sink" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893" + +[[package]] +name = "futures-task" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" + +[[package]] +name = "futures-util" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" +dependencies = [ + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "slab", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "gdk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9f245958c627ac99d8e529166f9823fb3b838d1d41fd2b297af3075093c2691" +dependencies = [ + "cairo-rs", + "gdk-pixbuf", + "gdk-sys", + "gio", + "glib", + "libc", + "pango", +] + +[[package]] +name = "gdk-pixbuf" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50e1f5f1b0bfb830d6ccc8066d18db35c487b1b2b1e8589b5dfe9f07e8defaec" +dependencies = [ + "gdk-pixbuf-sys", + "gio", + "glib", + "libc", + "once_cell", +] + +[[package]] +name = "gdk-pixbuf-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gdk-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c2d13f38594ac1e66619e188c6d5a1adb98d11b2fcf7894fc416ad76aa2f3f7" +dependencies = [ + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "pkg-config", + "system-deps", +] + +[[package]] +name = "gdkwayland-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "140071d506d223f7572b9f09b5e155afbd77428cd5cc7af8f2694c41d98dfe69" +dependencies = [ + "gdk-sys", + "glib-sys", + "gobject-sys", + "libc", + "pkg-config", + "system-deps", +] + +[[package]] +name = "gdkx11" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3caa00e14351bebbc8183b3c36690327eb77c49abc2268dd4bd36b856db3fbfe" +dependencies = [ + "gdk", + "gdkx11-sys", + "gio", + "glib", + "libc", + "x11", +] + +[[package]] +name = "gdkx11-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e2e7445fe01ac26f11601db260dd8608fe172514eb63b3b5e261ea6b0f4428d" +dependencies = [ + "gdk-sys", + "glib-sys", + "libc", + "system-deps", + "x11", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.1+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" +dependencies = [ + "cfg-if", + "libc", + "r-efi", + "wasip2", +] + +[[package]] +name = "getrandom" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "139ef39800118c7683f2fd3c98c1b23c09ae076556b435f8e9064ae108aaeeec" +dependencies = [ + "cfg-if", + "libc", + "r-efi", + "wasip2", + "wasip3", +] + +[[package]] +name = "gio" +version = "0.18.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "gio-sys", + "glib", + "libc", + "once_cell", + "pin-project-lite", + "smallvec", + "thiserror 1.0.69", +] + +[[package]] +name = "gio-sys" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", + "winapi", +] + +[[package]] +name = "glib" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5" +dependencies = [ + "bitflags 2.11.0", + "futures-channel", + "futures-core", + "futures-executor", + "futures-task", + "futures-util", + "gio-sys", + "glib-macros", + "glib-sys", + "gobject-sys", + "libc", + "memchr", + "once_cell", + "smallvec", + "thiserror 1.0.69", +] + +[[package]] +name = "glib-macros" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc" +dependencies = [ + "heck 0.4.1", + "proc-macro-crate 2.0.2", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "glib-sys" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898" +dependencies = [ + "libc", + "system-deps", +] + +[[package]] +name = "glob" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" + +[[package]] +name = "gobject-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gtk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd56fb197bfc42bd5d2751f4f017d44ff59fbb58140c6b49f9b3b2bdab08506a" +dependencies = [ + "atk", + "cairo-rs", + "field-offset", + "futures-channel", + "gdk", + "gdk-pixbuf", + "gio", + "glib", + "gtk-sys", + "gtk3-macros", + "libc", + "pango", + "pkg-config", +] + +[[package]] +name = "gtk-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f29a1c21c59553eb7dd40e918be54dccd60c52b049b75119d5d96ce6b624414" +dependencies = [ + "atk-sys", + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "system-deps", +] + +[[package]] +name = "gtk3-macros" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52ff3c5b21f14f0736fed6dcfc0bfb4225ebf5725f3c0209edeec181e4d73e9d" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "foldhash", +] + +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "html5ever" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b7410cae13cbc75623c98ac4cbfd1f0bedddf3227afc24f370cf0f50a44a11c" +dependencies = [ + "log", + "mac", + "markup5ever", + "match_token", +] + +[[package]] +name = "http" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" +dependencies = [ + "bytes", + "itoa", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", + "pin-project-lite", +] + +[[package]] +name = "http-range-header" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9171a2ea8a68358193d15dd5d70c1c10a2afc3e7e4c5bc92bc9f025cebd7359c" + +[[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 = "hyper" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11" +dependencies = [ + "atomic-waker", + "bytes", + "futures-channel", + "futures-core", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "pin-utils", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-util" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-channel", + "futures-util", + "http", + "http-body", + "hyper", + "ipnet", + "libc", + "percent-encoding", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "log", + "wasm-bindgen", + "windows-core 0.62.2", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "ico" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e795dff5605e0f04bff85ca41b51a96b83e80b281e96231bcaaf1ac35103371" +dependencies = [ + "byteorder", + "png", +] + +[[package]] +name = "icu_collections" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" +dependencies = [ + "displaydoc", + "potential_utf", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locale_core" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_normalizer" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" +dependencies = [ + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" + +[[package]] +name = "icu_properties" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec" +dependencies = [ + "icu_collections", + "icu_locale_core", + "icu_properties_data", + "icu_provider", + "zerotrie", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af" + +[[package]] +name = "icu_provider" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" +dependencies = [ + "displaydoc", + "icu_locale_core", + "writeable", + "yoke", + "zerofrom", + "zerotrie", + "zerovec", +] + +[[package]] +name = "id-arena" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" +dependencies = [ + "equivalent", + "hashbrown 0.16.1", + "serde", + "serde_core", +] + +[[package]] +name = "infer" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a588916bfdfd92e71cacef98a63d9b1f0d74d6599980d11894290e7ddefffcf7" +dependencies = [ + "cfb", +] + +[[package]] +name = "ipnet" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" + +[[package]] +name = "iri-string" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c91338f0783edbd6195decb37bae672fd3b165faffb89bf7b9e6942f8b1a731a" +dependencies = [ + "memchr", + "serde", +] + +[[package]] +name = "is-docker" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3" +dependencies = [ + "once_cell", +] + +[[package]] +name = "is-wsl" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5" +dependencies = [ + "is-docker", + "once_cell", +] + +[[package]] +name = "itoa" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" + +[[package]] +name = "javascriptcore-rs" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca5671e9ffce8ffba57afc24070e906da7fc4b1ba66f2cabebf61bf2ea257fcc" +dependencies = [ + "bitflags 1.3.2", + "glib", + "javascriptcore-rs-sys", +] + +[[package]] +name = "javascriptcore-rs-sys" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af1be78d14ffa4b75b66df31840478fef72b51f8c2465d4ca7c194da9f7a5124" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "jni" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" +dependencies = [ + "cesu8", + "cfg-if", + "combine", + "jni-sys", + "log", + "thiserror 1.0.69", + "walkdir", + "windows-sys 0.45.0", +] + +[[package]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" + +[[package]] +name = "js-sys" +version = "0.3.85" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3" +dependencies = [ + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "json-patch" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "863726d7afb6bc2590eeff7135d923545e5e964f004c2ccf8716c25e70a86f08" +dependencies = [ + "jsonptr", + "serde", + "serde_json", + "thiserror 1.0.69", +] + +[[package]] +name = "jsonptr" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dea2b27dd239b2556ed7a25ba842fe47fd602e7fc7433c2a8d6106d4d9edd70" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "keyboard-types" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a" +dependencies = [ + "bitflags 2.11.0", + "serde", + "unicode-segmentation", +] + +[[package]] +name = "kuchikiki" +version = "0.8.8-speedreader" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02cb977175687f33fa4afa0c95c112b987ea1443e5a51c8f8ff27dc618270cc2" +dependencies = [ + "cssparser", + "html5ever", + "indexmap 2.13.0", + "selectors", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "leb128fmt" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" + +[[package]] +name = "libappindicator" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03589b9607c868cc7ae54c0b2a22c8dc03dd41692d48f2d7df73615c6a95dc0a" +dependencies = [ + "glib", + "gtk", + "gtk-sys", + "libappindicator-sys", + "log", +] + +[[package]] +name = "libappindicator-sys" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e9ec52138abedcc58dc17a7c6c0c00a2bdb4f3427c7f63fa97fd0d859155caf" +dependencies = [ + "gtk-sys", + "libloading", + "once_cell", +] + +[[package]] +name = "libc" +version = "0.2.182" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112" + +[[package]] +name = "libloading" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +dependencies = [ + "cfg-if", + "winapi", +] + +[[package]] +name = "libredox" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616" +dependencies = [ + "bitflags 2.11.0", + "libc", +] + +[[package]] +name = "linux-raw-sys" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" + +[[package]] +name = "litemap" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" + +[[package]] +name = "lock_api" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" +dependencies = [ + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" + +[[package]] +name = "mac" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" + +[[package]] +name = "markup5ever" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7a7213d12e1864c0f002f52c2923d4556935a43dec5e71355c2760e0f6e7a18" +dependencies = [ + "log", + "phf 0.11.3", + "phf_codegen 0.11.3", + "string_cache", + "string_cache_codegen", + "tendril", +] + +[[package]] +name = "match_token" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88a9689d8d44bf9964484516275f5cd4c9b59457a6940c1d5d0ecbb94510a36b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[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 = "memchr" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" + +[[package]] +name = "memoffset" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" +dependencies = [ + "autocfg", +] + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "mime_guess" +version = "2.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" +dependencies = [ + "mime", + "unicase", +] + +[[package]] +name = "minijinja" +version = "2.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b479616bb6f0779fb0f3964246beda02d4b01144e1b0d5519616e012ccc2a245" +dependencies = [ + "serde", +] + +[[package]] +name = "miniz_oxide" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" +dependencies = [ + "adler2", + "simd-adler32", +] + +[[package]] +name = "mio" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" +dependencies = [ + "libc", + "wasi 0.11.1+wasi-snapshot-preview1", + "windows-sys 0.61.2", +] + +[[package]] +name = "muda" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01c1738382f66ed56b3b9c8119e794a2e23148ac8ea214eda86622d4cb9d415a" +dependencies = [ + "crossbeam-channel", + "dpi", + "gtk", + "keyboard-types", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", + "once_cell", + "png", + "serde", + "thiserror 2.0.18", + "windows-sys 0.60.2", +] + +[[package]] +name = "ndk" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" +dependencies = [ + "bitflags 2.11.0", + "jni-sys", + "log", + "ndk-sys", + "num_enum", + "raw-window-handle", + "thiserror 1.0.69", +] + +[[package]] +name = "ndk-context" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" + +[[package]] +name = "ndk-sys" +version = "0.6.0+11769913" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" +dependencies = [ + "jni-sys", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + +[[package]] +name = "nodrop" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" + +[[package]] +name = "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-conv" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050" + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_enum" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1207a7e20ad57b847bbddc6776b968420d38292bbfe2089accff5e19e82454c" +dependencies = [ + "num_enum_derive", + "rustversion", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7" +dependencies = [ + "proc-macro-crate 3.4.0", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "objc2" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c2599ce0ec54857b29ce62166b0ed9b4f6f1a70ccc9a71165b6154caca8c05" +dependencies = [ + "objc2-encode", + "objc2-exception-helper", +] + +[[package]] +name = "objc2-app-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c" +dependencies = [ + "bitflags 2.11.0", + "block2", + "libc", + "objc2", + "objc2-cloud-kit", + "objc2-core-data", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-core-image", + "objc2-core-text", + "objc2-core-video", + "objc2-foundation", + "objc2-quartz-core", +] + +[[package]] +name = "objc2-cloud-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73ad74d880bb43877038da939b7427bba67e9dd42004a18b809ba7d87cee241c" +dependencies = [ + "bitflags 2.11.0", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-data" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b402a653efbb5e82ce4df10683b6b28027616a2715e90009947d50b8dd298fa" +dependencies = [ + "bitflags 2.11.0", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-foundation" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" +dependencies = [ + "bitflags 2.11.0", + "dispatch2", + "objc2", +] + +[[package]] +name = "objc2-core-graphics" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807" +dependencies = [ + "bitflags 2.11.0", + "dispatch2", + "objc2", + "objc2-core-foundation", + "objc2-io-surface", +] + +[[package]] +name = "objc2-core-image" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5d563b38d2b97209f8e861173de434bd0214cf020e3423a52624cd1d989f006" +dependencies = [ + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-text" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cde0dfb48d25d2b4862161a4d5fcc0e3c24367869ad306b0c9ec0073bfed92d" +dependencies = [ + "bitflags 2.11.0", + "objc2", + "objc2-core-foundation", + "objc2-core-graphics", +] + +[[package]] +name = "objc2-core-video" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d425caf1df73233f29fd8a5c3e5edbc30d2d4307870f802d18f00d83dc5141a6" +dependencies = [ + "bitflags 2.11.0", + "objc2", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-io-surface", +] + +[[package]] +name = "objc2-encode" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" + +[[package]] +name = "objc2-exception-helper" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7a1c5fbb72d7735b076bb47b578523aedc40f3c439bea6dfd595c089d79d98a" +dependencies = [ + "cc", +] + +[[package]] +name = "objc2-foundation" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" +dependencies = [ + "bitflags 2.11.0", + "block2", + "libc", + "objc2", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-io-surface" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180788110936d59bab6bd83b6060ffdfffb3b922ba1396b312ae795e1de9d81d" +dependencies = [ + "bitflags 2.11.0", + "objc2", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-javascript-core" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a1e6550c4caed348956ce3370c9ffeca70bb1dbed4fa96112e7c6170e074586" +dependencies = [ + "objc2", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-quartz-core" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96c1358452b371bf9f104e21ec536d37a650eb10f7ee379fff67d2e08d537f1f" +dependencies = [ + "bitflags 2.11.0", + "objc2", + "objc2-core-foundation", + "objc2-foundation", +] + +[[package]] +name = "objc2-security" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "709fe137109bd1e8b5a99390f77a7d8b2961dafc1a1c5db8f2e60329ad6d895a" +dependencies = [ + "bitflags 2.11.0", + "objc2", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-ui-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d87d638e33c06f577498cbcc50491496a3ed4246998a7fbba7ccb98b1e7eab22" +dependencies = [ + "bitflags 2.11.0", + "objc2", + "objc2-core-foundation", + "objc2-foundation", +] + +[[package]] +name = "objc2-web-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2e5aaab980c433cf470df9d7af96a7b46a9d892d521a2cbbb2f8a4c16751e7f" +dependencies = [ + "bitflags 2.11.0", + "block2", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", + "objc2-javascript-core", + "objc2-security", +] + +[[package]] +name = "once_cell" +version = "1.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" + +[[package]] +name = "open" +version = "5.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43bb73a7fa3799b198970490a51174027ba0d4ec504b03cd08caf513d40024bc" +dependencies = [ + "dunce", + "is-wsl", + "libc", + "pathdiff", +] + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "ordered-stream" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50" +dependencies = [ + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "owlerlay" +version = "0.1.0" +dependencies = [ + "axum", + "minijinja", + "serde", + "serde_json", + "tauri", + "tauri-build", + "tauri-plugin-opener", + "thiserror 2.0.18", + "tokio", + "toml 1.0.3+spec-1.1.0", + "tower-http", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "pango" +version = "0.18.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4" +dependencies = [ + "gio", + "glib", + "libc", + "once_cell", + "pango-sys", +] + +[[package]] +name = "pango-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "parking" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" + +[[package]] +name = "parking_lot" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-link 0.2.1", +] + +[[package]] +name = "pathdiff" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" + +[[package]] +name = "percent-encoding" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" + +[[package]] +name = "phf" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12" +dependencies = [ + "phf_shared 0.8.0", +] + +[[package]] +name = "phf" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" +dependencies = [ + "phf_macros 0.10.0", + "phf_shared 0.10.0", + "proc-macro-hack", +] + +[[package]] +name = "phf" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" +dependencies = [ + "phf_macros 0.11.3", + "phf_shared 0.11.3", +] + +[[package]] +name = "phf_codegen" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815" +dependencies = [ + "phf_generator 0.8.0", + "phf_shared 0.8.0", +] + +[[package]] +name = "phf_codegen" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a" +dependencies = [ + "phf_generator 0.11.3", + "phf_shared 0.11.3", +] + +[[package]] +name = "phf_generator" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526" +dependencies = [ + "phf_shared 0.8.0", + "rand 0.7.3", +] + +[[package]] +name = "phf_generator" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" +dependencies = [ + "phf_shared 0.10.0", + "rand 0.8.5", +] + +[[package]] +name = "phf_generator" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" +dependencies = [ + "phf_shared 0.11.3", + "rand 0.8.5", +] + +[[package]] +name = "phf_macros" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0" +dependencies = [ + "phf_generator 0.10.0", + "phf_shared 0.10.0", + "proc-macro-hack", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "phf_macros" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" +dependencies = [ + "phf_generator 0.11.3", + "phf_shared 0.11.3", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "phf_shared" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" +dependencies = [ + "siphasher 0.3.11", +] + +[[package]] +name = "phf_shared" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +dependencies = [ + "siphasher 0.3.11", +] + +[[package]] +name = "phf_shared" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" +dependencies = [ + "siphasher 1.0.2", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "piper" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" +dependencies = [ + "atomic-waker", + "fastrand", + "futures-io", +] + +[[package]] +name = "pkg-config" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" + +[[package]] +name = "plist" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "740ebea15c5d1428f910cd1a5f52cebf8d25006245ed8ade92702f4943d91e07" +dependencies = [ + "base64 0.22.1", + "indexmap 2.13.0", + "quick-xml", + "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 = "polling" +version = "3.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218" +dependencies = [ + "cfg-if", + "concurrent-queue", + "hermit-abi", + "pin-project-lite", + "rustix", + "windows-sys 0.61.2", +] + +[[package]] +name = "potential_utf" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" +dependencies = [ + "zerovec", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "prettyplease" +version = "0.2.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" +dependencies = [ + "proc-macro2", + "syn 2.0.117", +] + +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit 0.19.15", +] + +[[package]] +name = "proc-macro-crate" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24" +dependencies = [ + "toml_datetime 0.6.3", + "toml_edit 0.20.2", +] + +[[package]] +name = "proc-macro-crate" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" +dependencies = [ + "toml_edit 0.23.10+spec-1.0.0", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro-hack" +version = "0.5.20+deprecated" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" + +[[package]] +name = "proc-macro2" +version = "1.0.106" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quick-xml" +version = "0.38.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b66c2058c55a409d601666cffe35f04333cf1013010882cec174a7467cd4e21c" +dependencies = [ + "memchr", +] + +[[package]] +name = "quote" +version = "1.0.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", + "rand_pcg", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_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_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_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "rand_pcg" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "raw-window-handle" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" + +[[package]] +name = "redox_syscall" +version = "0.5.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" +dependencies = [ + "bitflags 2.11.0", +] + +[[package]] +name = "redox_users" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" +dependencies = [ + "getrandom 0.2.17", + "libredox", + "thiserror 2.0.18", +] + +[[package]] +name = "ref-cast" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "regex" +version = "1.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a96887878f22d7bad8a3b6dc5b7440e0ada9a245242924394987b21cf2210a4c" + +[[package]] +name = "reqwest" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab3f43e3283ab1488b624b44b0e988d0acea0b3214e694730a055cb6b2efa801" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-core", + "futures-util", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-util", + "js-sys", + "log", + "percent-encoding", + "pin-project-lite", + "serde", + "serde_json", + "sync_wrapper", + "tokio", + "tokio-util", + "tower", + "tower-http", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", +] + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "146c9e247ccc180c1f61615433868c99f3de3ae256a30a43b49f67c2d9171f34" +dependencies = [ + "bitflags 2.11.0", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.61.2", +] + +[[package]] +name = "rustversion" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" + +[[package]] +name = "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 = "schemars" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" +dependencies = [ + "dyn-clone", + "indexmap 1.9.3", + "schemars_derive", + "serde", + "serde_json", + "url", + "uuid", +] + +[[package]] +name = "schemars" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] + +[[package]] +name = "schemars" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2b42f36aa1cd011945615b92222f6bf73c599a102a300334cd7f8dbeec726cc" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 2.0.117", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "selectors" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c37578180969d00692904465fb7f6b3d50b9a2b952b87c23d0e2e5cb5013416" +dependencies = [ + "bitflags 1.3.2", + "cssparser", + "derive_more", + "fxhash", + "log", + "phf 0.8.0", + "phf_codegen 0.8.0", + "precomputed-hash", + "servo_arc", + "smallvec", +] + +[[package]] +name = "semver" +version = "1.0.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" +dependencies = [ + "serde", + "serde_core", +] + +[[package]] +name = "serde" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde-untagged" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9faf48a4a2d2693be24c6289dbe26552776eb7737074e6722891fadbe6c5058" +dependencies = [ + "erased-serde", + "serde", + "serde_core", + "typeid", +] + +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[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.117", +] + +[[package]] +name = "serde_json" +version = "1.0.149" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "serde_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.117", +] + +[[package]] +name = "serde_spanned" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_spanned" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8bbf91e5a4d6315eee45e704372590b30e260ee83af6639d64557f51b067776" +dependencies = [ + "serde_core", +] + +[[package]] +name = "serde_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.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fa237f2807440d238e0364a218270b98f767a00d3dada77b1c53ae88940e2e7" +dependencies = [ + "base64 0.22.1", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.13.0", + "schemars 0.9.0", + "schemars 1.2.1", + "serde_core", + "serde_json", + "serde_with_macros", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "3.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52a8e3ca0ca629121f70ab50f95249e5a6f925cc0f6ffe8256c45b728875706c" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[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.117", +] + +[[package]] +name = "servo_arc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52aa42f8fdf0fed91e5ce7f23d8138441002fa31dca008acf47e6fd4721f741" +dependencies = [ + "nodrop", + "stable_deref_trait", +] + +[[package]] +name = "sha2" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "signal-hook-registry" +version = "1.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" +dependencies = [ + "errno", + "libc", +] + +[[package]] +name = "simd-adler32" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "siphasher" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2aa850e253778c88a04c3d7323b043aeda9d3e30d5971937c1855769763678e" + +[[package]] +name = "slab" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" + +[[package]] +name = "smallvec" +version = "1.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" + +[[package]] +name = "socket2" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86f4aa3ad99f2088c990dfa82d367e19cb29268ed67c574d10d0a4bfe71f07e0" +dependencies = [ + "libc", + "windows-sys 0.60.2", +] + +[[package]] +name = "softbuffer" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aac18da81ebbf05109ab275b157c22a653bb3c12cf884450179942f81bcbf6c3" +dependencies = [ + "bytemuck", + "js-sys", + "ndk", + "objc2", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-foundation", + "objc2-quartz-core", + "raw-window-handle", + "redox_syscall", + "tracing", + "wasm-bindgen", + "web-sys", + "windows-sys 0.61.2", +] + +[[package]] +name = "soup3" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "471f924a40f31251afc77450e781cb26d55c0b650842efafc9c6cbd2f7cc4f9f" +dependencies = [ + "futures-channel", + "gio", + "glib", + "libc", + "soup3-sys", +] + +[[package]] +name = "soup3-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ebe8950a680a12f24f15ebe1bf70db7af98ad242d9db43596ad3108aab86c27" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" + +[[package]] +name = "string_cache" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf776ba3fa74f83bf4b63c3dcbbf82173db2632ed8452cb2d891d33f459de70f" +dependencies = [ + "new_debug_unreachable", + "parking_lot", + "phf_shared 0.11.3", + "precomputed-hash", + "serde", +] + +[[package]] +name = "string_cache_codegen" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c711928715f1fe0fe509c53b43e993a9a557babc2d0a3567d0a3006f1ac931a0" +dependencies = [ + "phf_generator 0.11.3", + "phf_shared 0.11.3", + "proc-macro2", + "quote", +] + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "swift-rs" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4057c98e2e852d51fdcfca832aac7b571f6b351ad159f9eda5db1655f8d0c4d7" +dependencies = [ + "base64 0.21.7", + "serde", + "serde_json", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.117" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" +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.117", +] + +[[package]] +name = "system-deps" +version = "6.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" +dependencies = [ + "cfg-expr", + "heck 0.5.0", + "pkg-config", + "toml 0.8.2", + "version-compare", +] + +[[package]] +name = "tao" +version = "0.34.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3a753bdc39c07b192151523a3f77cd0394aa75413802c883a0f6f6a0e5ee2e7" +dependencies = [ + "bitflags 2.11.0", + "block2", + "core-foundation", + "core-graphics", + "crossbeam-channel", + "dispatch", + "dlopen2", + "dpi", + "gdkwayland-sys", + "gdkx11-sys", + "gtk", + "jni", + "lazy_static", + "libc", + "log", + "ndk", + "ndk-context", + "ndk-sys", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "once_cell", + "parking_lot", + "raw-window-handle", + "scopeguard", + "tao-macros", + "unicode-segmentation", + "url", + "windows", + "windows-core 0.61.2", + "windows-version", + "x11-dl", +] + +[[package]] +name = "tao-macros" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4e16beb8b2ac17db28eab8bca40e62dbfbb34c0fcdc6d9826b11b7b5d047dfd" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "target-lexicon" +version = "0.12.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" + +[[package]] +name = "tauri" +version = "2.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "463ae8677aa6d0f063a900b9c41ecd4ac2b7ca82f0b058cc4491540e55b20129" +dependencies = [ + "anyhow", + "bytes", + "cookie", + "dirs", + "dunce", + "embed_plist", + "getrandom 0.3.4", + "glob", + "gtk", + "heck 0.5.0", + "http", + "jni", + "libc", + "log", + "mime", + "muda", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "objc2-ui-kit", + "objc2-web-kit", + "percent-encoding", + "plist", + "raw-window-handle", + "reqwest", + "serde", + "serde_json", + "serde_repr", + "serialize-to-javascript", + "swift-rs", + "tauri-build", + "tauri-macros", + "tauri-runtime", + "tauri-runtime-wry", + "tauri-utils", + "thiserror 2.0.18", + "tokio", + "tray-icon", + "url", + "webkit2gtk", + "webview2-com", + "window-vibrancy", + "windows", +] + +[[package]] +name = "tauri-build" +version = "2.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca7bd893329425df750813e95bd2b643d5369d929438da96d5bbb7cc2c918f74" +dependencies = [ + "anyhow", + "cargo_toml", + "dirs", + "glob", + "heck 0.5.0", + "json-patch", + "schemars 0.8.22", + "semver", + "serde", + "serde_json", + "tauri-utils", + "tauri-winres", + "toml 0.9.12+spec-1.1.0", + "walkdir", +] + +[[package]] +name = "tauri-codegen" +version = "2.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aac423e5859d9f9ccdd32e3cf6a5866a15bedbf25aa6630bcb2acde9468f6ae3" +dependencies = [ + "base64 0.22.1", + "brotli", + "ico", + "json-patch", + "plist", + "png", + "proc-macro2", + "quote", + "semver", + "serde", + "serde_json", + "sha2", + "syn 2.0.117", + "tauri-utils", + "thiserror 2.0.18", + "time", + "url", + "uuid", + "walkdir", +] + +[[package]] +name = "tauri-macros" +version = "2.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b6a1bd2861ff0c8766b1d38b32a6a410f6dc6532d4ef534c47cfb2236092f59" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.117", + "tauri-codegen", + "tauri-utils", +] + +[[package]] +name = "tauri-plugin" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "692a77abd8b8773e107a42ec0e05b767b8d2b7ece76ab36c6c3947e34df9f53f" +dependencies = [ + "anyhow", + "glob", + "plist", + "schemars 0.8.22", + "serde", + "serde_json", + "tauri-utils", + "toml 0.9.12+spec-1.1.0", + "walkdir", +] + +[[package]] +name = "tauri-plugin-opener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc624469b06f59f5a29f874bbc61a2ed737c0f9c23ef09855a292c389c42e83f" +dependencies = [ + "dunce", + "glob", + "objc2-app-kit", + "objc2-foundation", + "open", + "schemars 0.8.22", + "serde", + "serde_json", + "tauri", + "tauri-plugin", + "thiserror 2.0.18", + "url", + "windows", + "zbus", +] + +[[package]] +name = "tauri-runtime" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b885ffeac82b00f1f6fd292b6e5aabfa7435d537cef57d11e38a489956535651" +dependencies = [ + "cookie", + "dpi", + "gtk", + "http", + "jni", + "objc2", + "objc2-ui-kit", + "objc2-web-kit", + "raw-window-handle", + "serde", + "serde_json", + "tauri-utils", + "thiserror 2.0.18", + "url", + "webkit2gtk", + "webview2-com", + "windows", +] + +[[package]] +name = "tauri-runtime-wry" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5204682391625e867d16584fedc83fc292fb998814c9f7918605c789cd876314" +dependencies = [ + "gtk", + "http", + "jni", + "log", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "once_cell", + "percent-encoding", + "raw-window-handle", + "softbuffer", + "tao", + "tauri-runtime", + "tauri-utils", + "url", + "webkit2gtk", + "webview2-com", + "windows", + "wry", +] + +[[package]] +name = "tauri-utils" +version = "2.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcd169fccdff05eff2c1033210b9b94acd07a47e6fa9a3431cf09cfd4f01c87e" +dependencies = [ + "anyhow", + "brotli", + "cargo_metadata", + "ctor", + "dunce", + "glob", + "html5ever", + "http", + "infer", + "json-patch", + "kuchikiki", + "log", + "memchr", + "phf 0.11.3", + "proc-macro2", + "quote", + "regex", + "schemars 0.8.22", + "semver", + "serde", + "serde-untagged", + "serde_json", + "serde_with", + "swift-rs", + "thiserror 2.0.18", + "toml 0.9.12+spec-1.1.0", + "url", + "urlpattern", + "uuid", + "walkdir", +] + +[[package]] +name = "tauri-winres" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1087b111fe2b005e42dbdc1990fc18593234238d47453b0c99b7de1c9ab2c1e0" +dependencies = [ + "dunce", + "embed-resource", + "toml 0.9.12+spec-1.1.0", +] + +[[package]] +name = "tempfile" +version = "3.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0136791f7c95b1f6dd99f9cc786b91bb81c3800b639b3478e561ddb7be95e5f1" +dependencies = [ + "fastrand", + "getrandom 0.4.1", + "once_cell", + "rustix", + "windows-sys 0.61.2", +] + +[[package]] +name = "tendril" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" +dependencies = [ + "futf", + "mac", + "utf-8", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" +dependencies = [ + "thiserror-impl 2.0.18", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "thread_local" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "time" +version = "0.3.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" +dependencies = [ + "deranged", + "itoa", + "num-conv", + "powerfmt", + "serde_core", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" + +[[package]] +name = "time-macros" +version = "0.2.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "tinystr" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tokio" +version = "1.49.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86" +dependencies = [ + "bytes", + "libc", + "mio", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "windows-sys 0.61.2", +] + +[[package]] +name = "tokio-macros" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "tokio-util" +version = "0.7.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" +dependencies = [ + "serde", + "serde_spanned 0.6.9", + "toml_datetime 0.6.3", + "toml_edit 0.20.2", +] + +[[package]] +name = "toml" +version = "0.9.12+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf92845e79fc2e2def6a5d828f0801e29a2f8acc037becc5ab08595c7d5e9863" +dependencies = [ + "indexmap 2.13.0", + "serde_core", + "serde_spanned 1.0.4", + "toml_datetime 0.7.5+spec-1.1.0", + "toml_parser", + "toml_writer", + "winnow 0.7.14", +] + +[[package]] +name = "toml" +version = "1.0.3+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7614eaf19ad818347db24addfa201729cf2a9b6fdfd9eb0ab870fcacc606c0c" +dependencies = [ + "indexmap 2.13.0", + "serde_core", + "serde_spanned 1.0.4", + "toml_datetime 1.0.0+spec-1.1.0", + "toml_parser", + "toml_writer", + "winnow 0.7.14", +] + +[[package]] +name = "toml_datetime" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_datetime" +version = "0.7.5+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_datetime" +version = "1.0.0+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32c2555c699578a4f59f0cc68e5116c8d7cabbd45e1409b989d4be085b53f13e" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.13.0", + "toml_datetime 0.6.3", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" +dependencies = [ + "indexmap 2.13.0", + "serde", + "serde_spanned 0.6.9", + "toml_datetime 0.6.3", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.23.10+spec-1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269" +dependencies = [ + "indexmap 2.13.0", + "toml_datetime 0.7.5+spec-1.1.0", + "toml_parser", + "winnow 0.7.14", +] + +[[package]] +name = "toml_parser" +version = "1.0.9+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "702d4415e08923e7e1ef96cd5727c0dfed80b4d2fa25db9647fe5eb6f7c5a4c4" +dependencies = [ + "winnow 0.7.14", +] + +[[package]] +name = "toml_writer" +version = "1.0.6+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab16f14aed21ee8bfd8ec22513f7287cd4a91aa92e44edfe2c17ddd004e92607" + +[[package]] +name = "tower" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper", + "tokio", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-http" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" +dependencies = [ + "bitflags 2.11.0", + "bytes", + "futures-core", + "futures-util", + "http", + "http-body", + "http-body-util", + "http-range-header", + "httpdate", + "iri-string", + "mime", + "mime_guess", + "percent-encoding", + "pin-project-lite", + "tokio", + "tokio-util", + "tower", + "tower-layer", + "tower-service", + "tracing", +] + +[[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-attributes" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[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.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e" +dependencies = [ + "nu-ansi-term", + "sharded-slab", + "smallvec", + "thread_local", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "tray-icon" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e85aa143ceb072062fc4d6356c1b520a51d636e7bc8e77ec94be3608e5e80c" +dependencies = [ + "crossbeam-channel", + "dirs", + "libappindicator", + "muda", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-foundation", + "once_cell", + "png", + "serde", + "thiserror 2.0.18", + "windows-sys 0.60.2", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "typeid" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" + +[[package]] +name = "typenum" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" + +[[package]] +name = "uds_windows" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" +dependencies = [ + "memoffset", + "tempfile", + "winapi", +] + +[[package]] +name = "unic-char-property" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221" +dependencies = [ + "unic-char-range", +] + +[[package]] +name = "unic-char-range" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc" + +[[package]] +name = "unic-common" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc" + +[[package]] +name = "unic-ucd-ident" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e230a37c0381caa9219d67cf063aa3a375ffed5bf541a452db16e744bdab6987" +dependencies = [ + "unic-char-property", + "unic-char-range", + "unic-ucd-version", +] + +[[package]] +name = "unic-ucd-version" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4" +dependencies = [ + "unic-common", +] + +[[package]] +name = "unicase" +version = "2.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" + +[[package]] +name = "unicode-ident" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" + +[[package]] +name = "unicode-segmentation" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" + +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + +[[package]] +name = "url" +version = "2.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", + "serde_derive", +] + +[[package]] +name = "urlpattern" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70acd30e3aa1450bc2eece896ce2ad0d178e9c079493819301573dae3c37ba6d" +dependencies = [ + "regex", + "serde", + "unic-ucd-ident", + "url", +] + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "uuid" +version = "1.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b672338555252d43fd2240c714dc444b8c6fb0a5c5335e65a07bba7742735ddb" +dependencies = [ + "getrandom 0.4.1", + "js-sys", + "serde_core", + "wasm-bindgen", +] + +[[package]] +name = "valuable" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" + +[[package]] +name = "version-compare" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03c2856837ef78f57382f06b2b8563a2f512f7185d732608fd9176cb3b8edf0e" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "vswhom" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be979b7f07507105799e854203b470ff7c78a1639e330a58f183b5fea574608b" +dependencies = [ + "libc", + "vswhom-sys", +] + +[[package]] +name = "vswhom-sys" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb067e4cbd1ff067d1df46c9194b5de0e98efd2810bbc95c5d5e5f25a3231150" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "wasi" +version = "0.11.1+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" + +[[package]] +name = "wasip2" +version = "1.0.2+wasi-0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasip3" +version = "0.4.0+wasi-0.3.0-rc-2026-01-06" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.108" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70a6e77fd0ae8029c9ea0063f87c46fde723e7d887703d74ad2616d792e51e6f" +dependencies = [ + "cfg-if", + "futures-util", + "js-sys", + "once_cell", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.108" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.108" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55" +dependencies = [ + "bumpalo", + "proc-macro2", + "quote", + "syn 2.0.117", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.108" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "wasm-encoder" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" +dependencies = [ + "leb128fmt", + "wasmparser", +] + +[[package]] +name = "wasm-metadata" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" +dependencies = [ + "anyhow", + "indexmap 2.13.0", + "wasm-encoder", + "wasmparser", +] + +[[package]] +name = "wasm-streams" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1ec4f6517c9e11ae630e200b2b65d193279042e28edd4a2cda233e46670bbb" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "wasmparser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" +dependencies = [ + "bitflags 2.11.0", + "hashbrown 0.15.5", + "indexmap 2.13.0", + "semver", +] + +[[package]] +name = "web-sys" +version = "0.3.85" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "312e32e551d92129218ea9a2452120f4aabc03529ef03e4d0d82fb2780608598" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webkit2gtk" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1027150013530fb2eaf806408df88461ae4815a45c541c8975e61d6f2fc4793" +dependencies = [ + "bitflags 1.3.2", + "cairo-rs", + "gdk", + "gdk-sys", + "gio", + "gio-sys", + "glib", + "glib-sys", + "gobject-sys", + "gtk", + "gtk-sys", + "javascriptcore-rs", + "libc", + "once_cell", + "soup3", + "webkit2gtk-sys", +] + +[[package]] +name = "webkit2gtk-sys" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "916a5f65c2ef0dfe12fff695960a2ec3d4565359fdbb2e9943c974e06c734ea5" +dependencies = [ + "bitflags 1.3.2", + "cairo-sys-rs", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "gtk-sys", + "javascriptcore-rs-sys", + "libc", + "pkg-config", + "soup3-sys", + "system-deps", +] + +[[package]] +name = "webview2-com" +version = "0.38.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7130243a7a5b33c54a444e54842e6a9e133de08b5ad7b5861cd8ed9a6a5bc96a" +dependencies = [ + "webview2-com-macros", + "webview2-com-sys", + "windows", + "windows-core 0.61.2", + "windows-implement", + "windows-interface", +] + +[[package]] +name = "webview2-com-macros" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a921c1b6914c367b2b823cd4cde6f96beec77d30a939c8199bb377cf9b9b54" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "webview2-com-sys" +version = "0.38.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "381336cfffd772377d291702245447a5251a2ffa5bad679c99e61bc48bacbf9c" +dependencies = [ + "thiserror 2.0.18", + "windows", + "windows-core 0.61.2", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "window-vibrancy" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9bec5a31f3f9362f2258fd0e9c9dd61a9ca432e7306cc78c444258f0dce9a9c" +dependencies = [ + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", + "raw-window-handle", + "windows-sys 0.59.0", + "windows-version", +] + +[[package]] +name = "windows" +version = "0.61.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" +dependencies = [ + "windows-collections", + "windows-core 0.61.2", + "windows-future", + "windows-link 0.1.3", + "windows-numerics", +] + +[[package]] +name = "windows-collections" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" +dependencies = [ + "windows-core 0.61.2", +] + +[[package]] +name = "windows-core" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link 0.1.3", + "windows-result 0.3.4", + "windows-strings 0.4.2", +] + +[[package]] +name = "windows-core" +version = "0.62.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link 0.2.1", + "windows-result 0.4.1", + "windows-strings 0.5.1", +] + +[[package]] +name = "windows-future" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" +dependencies = [ + "windows-core 0.61.2", + "windows-link 0.1.3", + "windows-threading", +] + +[[package]] +name = "windows-implement" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[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.117", +] + +[[package]] +name = "windows-link" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" + +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-numerics" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" +dependencies = [ + "windows-core 0.61.2", + "windows-link 0.1.3", +] + +[[package]] +name = "windows-result" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-result" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows-strings" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-strings" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.5", +] + +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm 0.52.6", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.53.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" +dependencies = [ + "windows-link 0.2.1", + "windows_aarch64_gnullvm 0.53.1", + "windows_aarch64_msvc 0.53.1", + "windows_i686_gnu 0.53.1", + "windows_i686_gnullvm 0.53.1", + "windows_i686_msvc 0.53.1", + "windows_x86_64_gnu 0.53.1", + "windows_x86_64_gnullvm 0.53.1", + "windows_x86_64_msvc 0.53.1", +] + +[[package]] +name = "windows-threading" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-version" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4060a1da109b9d0326b7262c8e12c84df67cc0dbc9e33cf49e01ccc2eb63631" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_i686_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.7.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.55.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb5a765337c50e9ec252c2069be9bf91c7df47afb103b642ba3a53bf8101be97" +dependencies = [ + "cfg-if", + "windows-sys 0.59.0", +] + +[[package]] +name = "wit-bindgen" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" +dependencies = [ + "wit-bindgen-rust-macro", +] + +[[package]] +name = "wit-bindgen-core" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" +dependencies = [ + "anyhow", + "heck 0.5.0", + "wit-parser", +] + +[[package]] +name = "wit-bindgen-rust" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" +dependencies = [ + "anyhow", + "heck 0.5.0", + "indexmap 2.13.0", + "prettyplease", + "syn 2.0.117", + "wasm-metadata", + "wit-bindgen-core", + "wit-component", +] + +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" +dependencies = [ + "anyhow", + "prettyplease", + "proc-macro2", + "quote", + "syn 2.0.117", + "wit-bindgen-core", + "wit-bindgen-rust", +] + +[[package]] +name = "wit-component" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" +dependencies = [ + "anyhow", + "bitflags 2.11.0", + "indexmap 2.13.0", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder", + "wasm-metadata", + "wasmparser", + "wit-parser", +] + +[[package]] +name = "wit-parser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" +dependencies = [ + "anyhow", + "id-arena", + "indexmap 2.13.0", + "log", + "semver", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser", +] + +[[package]] +name = "writeable" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" + +[[package]] +name = "wry" +version = "0.54.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb26159b420aa77684589a744ae9a9461a95395b848764ad12290a14d960a11a" +dependencies = [ + "base64 0.22.1", + "block2", + "cookie", + "crossbeam-channel", + "dirs", + "dpi", + "dunce", + "gdkx11", + "gtk", + "html5ever", + "http", + "javascriptcore-rs", + "jni", + "kuchikiki", + "libc", + "ndk", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", + "objc2-ui-kit", + "objc2-web-kit", + "once_cell", + "percent-encoding", + "raw-window-handle", + "sha2", + "soup3", + "tao-macros", + "thiserror 2.0.18", + "url", + "webkit2gtk", + "webkit2gtk-sys", + "webview2-com", + "windows", + "windows-core 0.61.2", + "windows-version", + "x11-dl", +] + +[[package]] +name = "x11" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "502da5464ccd04011667b11c435cb992822c2c0dbde1770c988480d312a0db2e" +dependencies = [ + "libc", + "pkg-config", +] + +[[package]] +name = "x11-dl" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" +dependencies = [ + "libc", + "once_cell", + "pkg-config", +] + +[[package]] +name = "yoke" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" +dependencies = [ + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", + "synstructure", +] + +[[package]] +name = "zbus" +version = "5.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfeff997a0aaa3eb20c4652baf788d2dfa6d2839a0ead0b3ff69ce2f9c4bdd1" +dependencies = [ + "async-broadcast", + "async-executor", + "async-io", + "async-lock", + "async-process", + "async-recursion", + "async-task", + "async-trait", + "blocking", + "enumflags2", + "event-listener", + "futures-core", + "futures-lite", + "hex", + "libc", + "ordered-stream", + "rustix", + "serde", + "serde_repr", + "tracing", + "uds_windows", + "uuid", + "windows-sys 0.61.2", + "winnow 0.7.14", + "zbus_macros", + "zbus_names", + "zvariant", +] + +[[package]] +name = "zbus_macros" +version = "5.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bbd5a90dbe8feee5b13def448427ae314ccd26a49cac47905cafefb9ff846f1" +dependencies = [ + "proc-macro-crate 3.4.0", + "proc-macro2", + "quote", + "syn 2.0.117", + "zbus_names", + "zvariant", + "zvariant_utils", +] + +[[package]] +name = "zbus_names" +version = "4.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffd8af6d5b78619bab301ff3c560a5bd22426150253db278f164d6cf3b72c50f" +dependencies = [ + "serde", + "winnow 0.7.14", + "zvariant", +] + +[[package]] +name = "zerocopy" +version = "0.8.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db6d35d663eadb6c932438e763b262fe1a70987f9ae936e60158176d710cae4a" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4122cd3169e94605190e77839c9a40d40ed048d305bfdc146e7df40ab0f3e517" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "zerofrom" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", + "synstructure", +] + +[[package]] +name = "zerotrie" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", +] + +[[package]] +name = "zerovec" +version = "0.11.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "zmij" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" + +[[package]] +name = "zvariant" +version = "5.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68b64ef4f40c7951337ddc7023dd03528a57a3ce3408ee9da5e948bd29b232c4" +dependencies = [ + "endi", + "enumflags2", + "serde", + "winnow 0.7.14", + "zvariant_derive", + "zvariant_utils", +] + +[[package]] +name = "zvariant_derive" +version = "5.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "484d5d975eb7afb52cc6b929c13d3719a20ad650fea4120e6310de3fc55e415c" +dependencies = [ + "proc-macro-crate 3.4.0", + "proc-macro2", + "quote", + "syn 2.0.117", + "zvariant_utils", +] + +[[package]] +name = "zvariant_utils" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f75c23a64ef8f40f13a6989991e643554d9bef1d682a281160cf0c1bc389c5e9" +dependencies = [ + "proc-macro2", + "quote", + "serde", + "syn 2.0.117", + "winnow 0.7.14", +] diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml new file mode 100644 index 0000000..f3b53bd --- /dev/null +++ b/src-tauri/Cargo.toml @@ -0,0 +1,33 @@ +[package] +name = "owlerlay" +version = "0.1.0" +description = "A Tauri App" +authors = ["you"] +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[lib] +# The `_lib` suffix may seem redundant but it is necessary +# to make the lib name unique and wouldn't conflict with the bin name. +# This seems to be only an issue on Windows, see https://github.com/rust-lang/cargo/issues/8519 +name = "owlerlay_lib" +crate-type = ["staticlib", "cdylib", "rlib"] + +[build-dependencies] +tauri-build = { version = "2", features = [] } + +[dependencies] +tauri = { version = "2", features = [] } +tauri-plugin-opener = "2" +serde = { version = "1", features = ["derive"] } +serde_json = "1" +axum = "0.8.8" +tracing = "0.1.44" +tracing-subscriber = "0.3.22" +thiserror = "2.0.18" +tokio = { version = "1.49.0", features = ["full"] } +tower-http = { version = "0.6.8", features = ["fs", "cors"] } +minijinja = "2.15.1" +toml = "1.0.3" + diff --git a/src-tauri/build.rs b/src-tauri/build.rs new file mode 100644 index 0000000..d860e1e --- /dev/null +++ b/src-tauri/build.rs @@ -0,0 +1,3 @@ +fn main() { + tauri_build::build() +} diff --git a/src-tauri/capabilities/default.json b/src-tauri/capabilities/default.json new file mode 100644 index 0000000..4cdbf49 --- /dev/null +++ b/src-tauri/capabilities/default.json @@ -0,0 +1,10 @@ +{ + "$schema": "../gen/schemas/desktop-schema.json", + "identifier": "default", + "description": "Capability for the main window", + "windows": ["main"], + "permissions": [ + "core:default", + "opener:default" + ] +} diff --git a/src-tauri/icons/128x128.png b/src-tauri/icons/128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..6be5e50e9b9ae84d9e2ee433f32ef446495eaf3b GIT binary patch literal 3512 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�_wChW*RH@@SB1S6 z%zZu4Fo0R(6jYFBr?}J@apVU7>Vp_xCbag~wj+Jy?$2IluQK z(*n!=s*lYZ7Y3#rmzX8NC$!Fvg|Xx0?56pKkNqvye|ybY`Mg$YhA)rj!XvEF!fwYh z)-cFO?LXQiZymmt;Yo_|8NZC~9D!$FS8n+K*hEU3;nwy13qROD3BP|I8^6O{^pW}3 z8{W)r@46FrESxi0V4donISeMBL=N14k*xf9dPLlp7PCv-`|VcLupJ0=>N{Y^?{;ZY zkx}3bjsrhsyOw3lVaUkezo+La|85JDKi$W8{!f@AHfAPGC==Zjo_l#ZFvwPgj&yUWV z?{rYKztOt&7I(w^oASFa`#aT@{nS1Cb*18uDu;8sR@Jy1d>9&B`CoCa%AJ59<<$@R zg0mSf9GxRlc}Q2d-{i^vm%rw(DOr2A$4KbHoEn!zjcJW~{PGiBXZ#l7dd`+I;TD&J z;4k$+=X%qBJ)3W}|9S6RT(o^pv8Qv%thoX*KkC=tV9B{8Jk6T3N`!0icA0E#hMA|| zx#fN>wK=2rZ`+lW$M#+P7i&!nrV6Zhm_H@%|GcH958hw!%nP>2xl?4*sBrkabMU*@ zx0gqBd|WPGw>z+X^WT6E=H2F+-*2~wsm`(88x$w9yK6U_Wo_=Q7ySqPr+xW*WwFAC zHjV`+s{(a@Gn`7D8~7oy{&a7=rv9rvJJ%>HepV{IbNgbXY^PA%NBvU6AB#_X-{hru zxPJF%@mJ~$ySDc$iT=CyK>e3 zbj7ZYS7aQZZ9Gd@leZn8z1;Rg6PF_@#To%T3;9TpPEBlUKtP(!|^Wb~U zJ@)H^Jc@Qd+#e*(*fHaGeyHt6b{C~B-}Mju7nEFP#`Hj`qW=EV+&`S|bH z;rgXwOb^_vgCB@{7oN2G^l#dQ!ta_U5b*`E^&%32GtSOm7r*i5V!pI4`|s&o)wOdf zFIW9oe`P8E0)NFss}mZ|_wF;*yqNE@!*1RV-&Ksylp9W;{~p#P|5tTO(0(f9rj{NbHUv<(%sbp9=J)_S9PoJigv}aiW^LWK@BXS{mzt?f=+hzP&tgMlDL9 zBk7EId;SkiiK}OSYnT0I5L)?{*}MUfMMG^!fS~S)Ex1M}C+qh5hcYdv;6qx9ssH3>HPUTrSi0o0WSW zZhtZBefzPCdmcae`1E;oq1$R!x7*b}XD@wg@%QihfZK=e2cF?{xcUG7VucSEqQ2VC z`Y7+%)iRs={y&K==Y*sT|A}(`EMHXmLw5O%g%Q!WwdXw!op3wb zXK;gKNw@mpFAVSN{>iHaG3>uHP`A?uKLCP z$URMl_FW7|(mwr{aP~Xy8myNcctE;;{qtX;qCf97UZ0irr)wvN!~F>|DcL)XFaAkB z^?Uk`B)ht$fem8cyDDqf7%PbRR{SydxR_rVar$&}dZHi0jLAQZtM8p}-Ym$N@@1F5 zBTJsvuj&83#mm2q|NZ!Uh^TAf`cr@YiBv51blv~>hBsr=S%wXQj4rqHEfnvDXI_DKF?He8&&$cOX5asU7K7CU%E87gtVm>SpoWJ<{IQp=SaZYOEv&x*cMkhN8| zLTiThcLVPFyYW1hPcy7O*@bp5$QLLw|nD>)#5KE zU6a_Kf4HgJ6=iG-}BB-KfcDnby4WC^;^_g8PXs9ILyCttwH{_vp=Tp(qU&+ zP$;@`J-=-0e-j^9hFC9m7OlmX>>5rz*t$&q>)!rrE(~*mzy8ck_bWOx#pe*)`G<## z6kKPDem}ZFEV{<|;ykH_;;GyRURxHY-_0)+J@4fa)BkAU(S1vIt@*&$smWOJ@gV!b zJpqR*pE4~d{`FKP!9~pQl9sGo?%TVOS&xp+`<&p#;H0-HfmyI2sZ8DRYP>l6{X5o^ zG?w3gR`Xv)$B#uSkYPq_zfM9y`5ry5yT3m>U42;4-*ix#XzT?9G z?_N4Lb93f_2CXCcpE(apufM-n8~MHH?SPFY;J_p=|Hhkl8CL?@HVpZjZSLaLnRUs#iH?^D};n?3C7>&?WJ8xpR* zcoLeX#Cstr{oSNf-GQ@yOMmzm)$r!>76bm89rxw$Iknc;oZ)nMXAxmOt2o7pVaoh< z@e@~7ADvo0ea-BMDMn{G4@4i{-&jyzbcXXl%s;C;m0M;qPG)_1^xWK2L5#g(&HEcxaCnyvX66)yL%J>?s_gjs5fg{dIe0b=zm1`@#tu?oW8GpYU$}hvivcX795$ zeEdG)!$Sj22EFI+pRAeVbihaZQ^GpgFTWQ_l)pUn`R?wg+veR=bYDH^NqOC_f9k=x zCsLUM`n%@TX~fle_tbSw1?fq=ei$wMX6+foMxNK_oWDHnmbN9FV2F_i5*S@dQpArA9K!fGe7JJXE z1z%a-nr+GYaeyz4HR0jSd(LY6H)Vb6NT0&-fImce-JjC(n@>+B`R#ep-tFah+3@`D z-NJ9&CYkpNJ$m?h=T1j!_1_Jj6CxPueofN6zaT)upP8Yf@n)yPdVRIT*&#ABZ(iVb z2%RC?P-JnU;n2nH*Mu3;-1F1x<*ND49sB0vApUL7y;qC;3hGM!?z+}*r62!(0YjD9 zGS&sNmpfi&&|J3m+Y?^r1>Z7E%AekRSN7`C-%S-Z3I%G*jyGi&_v~50TzPA`LrLtf z0J%JY6|z##&hI^wzxi}{|NYMeoog3rhi%+1?r^zb!}cFFx(w<}Umbe){Z@+o;(AB? zrc(BLj{pCXOU@niuiw{|cgWB{pTWv@`ER4xDwDr(-W6FKe^rj-zrD=- zZ{ch##}4Jl9|$zruFO?4-TwT(TffiuAO0%a(0Sq3nK`HPjh<=;t&N?tMBC))mr0$D z>ZS|im=+u_?c1iQ;=`_4IvrfWcAPu3-Ci$f`Q|lq`#7Ke)y#9{`(_vG;G6D~wNX0Y z^XJxd`@TbQQF9p{^>IoDW?LiqRvkT%u=r5lBdhX@(gx8+)9>~g z^_^9H&7!u*jOjsivoPQLnW~~McH~IsF4^q(%KY`gyi&P?)%DEIey`ouUTZ$y#q?!Y z?)Rtr?NkgzQ$L!WTdH00zc^5vu|teiWX+22N(Fj$-!i9E`v^9Cx3}La#Go3b>mc}^ zRd9xkY2C@++naq$toZi)-??%wgG(P1m*9`n-?LecJ-YBCa=Dl*!@YW|EOmyibDz6+ z`6$1<)6Ox+H|O#91Hb)Uby*z}%L=DQui#LSwV3MFGe3hHq*$Bb>D#@GM_Ei8g;$>V zvGw`=J9X{50;3rNcFnoh875%k;`-p`yV@_DA~ALU4tsgs^vijC{o=bFAB=6cX0qDx z8oHf5`#v~j#vP5v=X%ZJ5w<5Q4#s2yKjjkI1 zvkPTd_xoI5)N+RQkV#wt7Y$#`Fuy%TD5L!Tozpq(T1Is(|28ib6l^H^`SV_vMDmn# znu{R$I{LRPaPBe!fn?~l9$=0J)e&_ zg)F!i7rw-DnW%TuOUH})7QLbjs<&hgel{+ck`p-1wo_Dc#q#%is;*8yzuRYLv}yVm z)u=D0Ep|65@84h&#V|#xqrtsj@Tp3oMw?~Ax&7YuFZfRLo(z8Y{PpG6cIxkhf9llQ zC*QX)_*Y>P$1r7A#{uh%;>j%sKl#X=bm!1}KHvXO#Py#6T2DWpS*Pw~q`zNmt%#F4 z<1zW^VH^!X(SjL*2LFC+abpnaXoyYtbM=B2V}JtFw}y}5?#WS&$B&v%vEXQsTyl)@ z@%p}NoDGlCxs1Y#ng#y!t^IN+-{2otW-M2MNOtbwwM=jKs%50I6rA|}sM1QPPEKxP zBZq(vDsG&9x;Oj%erYk7adkFRV@2F&aJl!hPAUfY?vCSbCq$sg|hb`C4<^C&PFyL7i^ zUiulto@1t?CDHM4{o+;kZ4?+9FRVE5v~IHB{$)uI*r)B=_hWzmgSWG}SrnM;ToZix zW9}ciwn$i0?`2MDj9EqL!};-tU)*M7Q81dNw&z`${lpgw;#VqU*u9@qQEC1_MP6x7 zzPbPdv&c)QO(*nT|J-=D?^(JkPt{IOo8OF^rPZFaRjSKBoqMj}|1J4?wF^}W3~evp zzBzOL@8|d`o9A{Zf~|h*lK1caZ1wN=kK<}n`o9=@Ph!?|l1sVUC-F~zzrqxDvL=)m cHXQiRJmHs$%Vl-u9Uv1tUHx3vIVCg!0Ggv3KL7v# literal 0 HcmV?d00001 diff --git a/src-tauri/icons/32x32.png b/src-tauri/icons/32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..a437dd51741e9e56e14b5d6024493cb2abfd5259 GIT binary patch literal 974 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}oCO|{#S9GG!XV7ZFl&wk z0|NtNage(c!@6@aFBupZSkfJR9T^xl_H+M9WMyDrPWE(h45?sz8|IjID?nhbVc=EQ z)f1#8STB``o>=4=qB%j>#Mbcy=c{=P#Y`tSo%|+zVVR-lw28Ci>MDVU^Auc8DXl$l z`R6vq-?xvkO?x}}z_;&zD&L=xdY740tn6~i6TvS;h+&-F*`J=Fe7uTz*B zKL5LMf-L`gyThxPEZ(FBe7NJB^I>ye``l?M$CVZwI+Duoo1!AbxnZu>jh2^nllzY5 znWps}E6%#i*xhHL&U4eRQN=@3=}l%_X>;uK$0t~4tU0&s>rDPNEw>z*Iylap&e$&E zsOPvms(@i~%hn9%ZJr{Gj{7Qa+uz&saz6VB*CeeU3Ux7xrkQe+J6G)Va15L$udQ(V z-P9uUzl=h$N)uiw=Rfn_w@TsCimCP=EjK*4{ib$7`Wf*9PptBTCdVW(nWzezrp&TQ zt9p02lQm_1^{iMwV~JBYtR|mX$0RJcOXzUl^UN6@2g<4yq)zq7th{&syzJL|`9J5} zuFkpW&R2Uq(__iQ#P8kl6O6KbI$}9q@G`#tY1zJ4=iSd+JMQ1NYE^ykt-tZN#gU|R z=WU!W4sUrb2^Xcw_hrgNf1X(It9^Cbx^zv1 zncEXS$#~t_r7U&xj*-jJ`CIR>m!-_UGXJ{#ALg=8RVPjJ?urXE?quo+_{zEA#q^x! z4Ef`U5BP;O41Y?Vadc>y&T{b6+_!t1*Rt_jvGb^F+<*PIeCMF8+{6tZF7+9 z(u(+PTQy@sPn=!qp6WL@O5XIT_5ZFZF#674#CAkMfN}E#K|kJbx$eqP&RZgFiBEQZ zJ74r|S^3UyHgY#k&S7|H`9NP%xB9PhvqVR6^M!v&R%%&PT2c4G@`@q za!aq_(pAqKk4@?Dem664)~!#^Z~TobGi6-YA!YnKynoSq>*Y$*Q|Gm=oaDZD|8(y= zw#oZDo_M%42~QJwZL-Q(PuC$~_up9A&we_(HhDj?ppnq|oOCC;vhhgP8dW zXPQ^(RF_-d-ON3+%`;(NS-Hde^*Y{KyeC-yT{iw}>fA651=wqFToHSRw&Ky0h z;@z%7jduF1QEc@pOAB`E#4s^#*pMWu^l-XEj&Er5fkhYdE??VLkaSh+k_pFeom-Qa z>EtFJ391ef;r-zs@9_A6-nx4GhFOsu8>g7M{@{5tr)`yo!t!3LwK`1)79Os)*15vi zqB=$3bFu7ams>5fIHGjKvJU+J&vmGEdRk4KP5M`s-8|ErYB}u`y{^3Pc=YIZ$>)WA zwK^UfZ8(nJ+#{@$Nv4l?ewqbIUYML85mzVy`#2ZQPjaE;nSWPixvuL zwCCppx$pUZL?Lnl$J5`(6IgQ}|9T<4qG7?2pxLJH858;+hq^IVL>qiPK?j@)j%{_XQJ!oM7Q~lrA z&gECWUsl(<-+w>7kwIhnoOCvQ$*GK)xvIR{r}gI*a?Im6ys2xiGB-Q`1X4njC><^SzeHubJ_R$_w6iaFFsy*DV~LU7gyx1 z8@t+~u8B6jIqPTmaBHsXYVO?EpEiiZRd4JnW0-ffV|EUsp-6SgA{p^Twep_f_o`DZ z-=CE%>wA6N{9vQP(Wu(eLz_kI9`kRXe)mPr{JXzj_nXBppYwH+#JtemMSAD6pYwOu zEZpjT`^mho(smqE9-ArXZVvb(uX@et<@6|(-jZX7@;}wIowH zk#3LG>;3s|96QQ;FVN}lDFGdgO>AwZhJD{pRZTNYn>M-!T# zd|GlP|7+B&{d*M86+5K`txna5I;}*>i8{Yc82*>a#IyzxBbX+op%4j5ux?{cSDjFsw6vh+JpAUsjhPNrv;Mxkd+X)j(C>NIdge9!)bXp>7U3(< z8Yg%uv-6u?*z;O51?KOOYdYsIvfo$#yz}a&a!#$tS=t9nChFbNjb3e((Z%V$=H2Pd za#C}AL>3yIGCMZEWUsiw&*uBdjA03J>XWtzS)?5fWr}KlB*mV+XPU>Z^~ck9g_#O! zRsPt{qSY4n#bP%9WRod>tn{mGztx7Us=w}CWO?qZPX5bf?^bWWt;nVNV7c$r~- zc1Ld$KmF*2$M)4_|DPP3>*Zg2r7Lf8y5N4x>RsoORx(I@NelN{*=a3n;%56x@LePO zoTH}K@Z9#uMFUV3a}aN>Mfj*d@rrq$hcNU6#CX1I(`?!KMW>#Ak9E_7Gle%5|D^TF>U z`+|36e$Du^XU~+6UMkUrzaE_9idZ0(vn2npO7nR~^JiNg9zGQEdh3?uf*Eg5i+fmX zP5C-6{h^r1!K5>BNrwq@pQTt^H0b zyh_p4$+k!e&6#>T!99L!va}LkOV@lQ8|~QQ&)b;VgHGGbIr6C2Zk{=t?&`(6KHi?{ zlJfaiYW75tEwN7nZ=KpbyQpW)5v3(|I~*jME%`JTzIvB4OW<8?^OHNt5w-nE2Pjp5@_-Z_YB>#0E zuf6j0xJkhD-Y@R`&O5qJoZM9Med^Nr!6(;7>dLD3hq;x<|IOBIK6h}<-@s{hJq5qN zOb%VWWTRHSNV%&m@7sARIQ=?fR;KIj_5Z)xu*9P7Lg~5bE04+a*gZ})JZ8kF+~Ia* z;oi&p%e6C2xjCP!`IlabTh88`u((7jN~f@Yvx$F>M2Q1y=NhG=dp>=)ot!PAryUI9 z(9~V4!XGXap|DIp*i$n$bJfS=-s^XN3wn|HewC2v&n2;qtdq(bHJ2~D`2721=_zr{ zSAf8TCT=`sB>0@AM|=HzS#9%6$!g8__s`N_qRzq9=#Ru{QmW}@!Vh2 zrrZsVh~iGPG|7}M$n^ivy5D78o;v^ZyVf&gkGQJmCwBz6shb4WX~k`>u${lPs$@~U zCTIH5%YPQHRny5)nsQQb>9Vz6AEK2`I_{r7cf<9T)|p(YB@?8Iuj@Yw)e-&TwaZO7 zbBEx;UHbQ<)T@03(hr4bSkCzO?cZ^~$cg4+V!FiUt+7C+!+)0Xmft-r_Lg+%O_@awI{AOjpcs% z#9K9q)AiETSCfwMFG{U^e&HCSCi89Cy6X5Faqm=@PP5{(o)IuJf~mUw)8t+358B=| z$2>X1zgT4Q%WWB@lb)*cu`ilm&2h2nW$(9xtn)OsncoTVT$;o=k7aegL#vRMxOara zK_)S;6|OoDzg?^lF0KeW%{p<}24ly-e?PwbJ8mW$xHWKg1k?2AmI`xY=dG8W>UnaT z*uy==Ym(^VSsm6*8=Q zw@uFZ+)bWUJ6hNBNr`7W?VNw|=8ApSZGG1j^k(?qS}7j7g!5oWsbFeuQP|82W(QjGrc;h$U+0DaRlEZ+@*;@o+iJ z86osWC?n14{ns;10!~5S_sp9q_jNf}@|kseF4cYCd;NVlbA^pu|MABk(W$En2a2_d ziWAxDxj)An3mhLVj;qil_KE ze2?AW@Z8O!=(QB*GsY`{2JRg7a?QYCUq&} zp+#!yK9{uGch}#tT#Id7d5K}`D5 z?uXh24tuwW=`6Z1Ezl)|`LXTYR6~E&n`z%$KPRV8Hgs=xkK5Um|7BM1V|}ib?MlnP zIB?hm9JsUc(UzxM3XI~{e=>31s5N7;0k_7fqrqA8jz>OxV*kfIK%~f1=v~;yl}Ckz zy4=4k)OZne^!wr40ZM*c?V1vD&o%#=t`OLEz%KOY#ZV1S^VZLgP1o3-l$#N}+easA zzWj%`5sbxNz2$RGKh_Wr^)Xqzis{s3htuWrbrfb8FYel@`Y?{kfLqH~^69i?({yKR z%xiyAbU?%=c9qx-p#m?9%3~%h##y?vIJNvVmF6vwS^c=DAVgs1SGL&#I~8VeMo!3n zv+a=4tH^f|a}-`Q&fF@wTV)pKsocP4x8B^W-O%H_&g=B89>a!ZmCH&+&feX{dMI6O zV!2}}Qc;4BD=#%m%*PhG1z&+`BQsEC% zgU4G6JapdvmC$9-c_hDk@_)J06=u7BPUny~@jG>1!@m<}E&S~^ePcO&@R0JB9NW3i zZ&*yTwv;pep0nI~``*nr>%{lFT@2W|=l93_ryY?d%MRCyoUuz>FYS4QDOTr*r5|Vd zznk6n{(O5U*VTIO%)5>JMw|-!U9=NkaEq;uY@F81_~NkLf)_0XYE2WJY$hojo-C)W z%C>^Xz@*1FA$P;6$7*|RrahT&zItoHv-(@n3e!u(4*GCRDz_coKx$E?zWR>IknIF3nt44K7F^x=;4)1mwXl+^}G{cEOq<( zB|BBu13s#UcK-Qu|MZzfk`Kx+-Q8Qbl$mG6HjZvkdzR?u4#1IwYCxr@mog%#W>~KmD2?`8%dh zb>fya8cj+c_*q`5tM9z4H$_86D?+R{o8^S)7NhNp{gzKTv(k!n>7-kF$`{htm^Bya zmoGVeqr|hJ)?uSf_hqkn4Vps7p3ExCi_xsD7K`NGXffw%6w`urK~rS4U#DzdEmtaW zTjG?qt3`;PL0O=NRO9?#K{1y(pX|;yV!W8};Cav0HC1N+Q&VqG54`&C$MqUiS6oew2R&n(!#VO$*o#1ug*`2+n4_SitTi)Ki!v7>Y)7dq>4W%18L?2$r(Cb>j zzN=#a|GfS!ETyh(3;a`l>uGBr%G~R}YXN8E?CIB^uc_Otx3J7=_L}_D^X{^rjyU;v z!fYdt@4O3GoO}egDDoL@w6Oc}H$7mjO@y{Moh>_^S>Xt-Lt+6^EU`yy?n+w{HTZ6f_+k3j3n5-gen40i%osGNbSS? zRaZ{BzBV`~*0IW{UFXi_KNHtnEoI__7@wtjxTX-G;CY& z`G=K3vBKo#0Ro55zDh1FI;Oedtx${p~iD-({P3|{Hcva6=DmN#3=FL_9 ze(DGHWHi6rX>FMDdI$HbjLnweKc1ZWg*b?PKh; z2=^1A+a9g9P!<0YXy9GS)!=`~tu)4ZM$Y^Aq|H|Uovte}Yg{{{@(|CB#|Q^@n?>Es!| z*KwvXRli=bYipmL!es|vi#t1vxX;x5eltH&DT@C|pxg z)0f56p4F2{s{4IZZeQfWbHyKeqaW>Y|7`Htes4sB*qzBG?uQ?S1+Cn)QJL}Jv4gGu z?bfZje#3RmlNYMByHwU>*lJF=B4o(G{bY5J-4WZ(|9_k}586}txHYM7?xbc!e*UfwM!dismbNaV12QwPK{XU(`EN3_O(YDXG_1|9wnV|*7G;snR-ElFLG}A z^cCl)=PoRfJ$XBDcSYB3<(Dh`dR;2#o6R%09{b}##AXYYsJROd{;F85zGhS4%g(IIx%52%R$yIy!T^(k}X_7$JjPoB16 z>iJELSKZb%b018e{3h2`r{BZFd#rXTy^WdX{JU`tm;2Y}EJ3#)Jz2BDdaaDo z{Y_aVmV2{*H?G;W#uxZ>js`T+9w%C@PBtrl03g_7tfxOhfmIi&c0>YmmF}oDC5;>4xP^t z&l)fOdzKtv{@9}Cr02^+iZ5olN{Z~iQhLb6;bh5c&F{Z%@=JSnN1Z(UAiK1-xkmMn z;i8(h`ow>AbtbMP!y6Jrsywscm?+h=1FG zKOIvJYA_gjx&HB5axg;o7~irf3zl7Kp1DQ$u!5+ukwAFpok_VOn=c1U^Yzy;U6{Kh z=%K*1qru`*DpHF+<%*uV-hGTa{esFxfvM4RIJf)=T=L<>tl2BLW^wGTTUywgxmA$w zU}ea9=5_Kr{TCI5mr6+8&pnyKS^wbm1A{4o%l!7K#k)mocNa@otqcBl#PW6Xy3S|k zX5TA_kA5f+rMySfIn0e^(Q~K$2JBnK&b9oUAFp#FB-Z#w>n_LA%?x4ZZ^th3<48Yr z=e%|IgjI{H#aF3```G*~du!7tWUV@fQ$A*f$Z3;q)~7}jbR&Fk^hX_VnA&#F>2RXM)?Y1NEQ}{E{(gCX z-mkS{^Dk>Wlxf`-@ALOtdw^f(dZw9enk)}59%q^0_GNd^QT>naZ>`_!iqSuWbQ)is c{m+=aX(Rgr#z`|67#J8lUHx3vIVCg!0CQqQJ^%m! literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square150x150Logo.png b/src-tauri/icons/Square150x150Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..624c7bfba0498dcebbc8a020fe06f08cfff2384a GIT binary patch literal 3966 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 or_}23-v0Z)JIRzopr08keR+W-In literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square30x30Logo.png b/src-tauri/icons/Square30x30Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..621970023096ed9f494ba18ace15421a45cd65fa GIT binary patch literal 903 zcmeAS@N?(olHy`uVBq!ia0y~yV2}f04mJh`25W}sx40df zI{Or+AAGuo=bl9Ps+=0;qNWGJN9-6MvD{EMm~-F>OM-sWWZx&DT8yVAOJ_`6qqOq! z;`a(FD(!D3g{vl{RsH(yH&!{^%y{vflIHd>v=7w9TX^;Ttp!C(rtG(^oCy&~EoX9SJ(d4YD3V z{62Lv-Q&7uT)y4Nb+5&FcDj$v)^*0Y?_bHt%;NePdF^KS0v@d!u|-pywGL+6ZnNxH zH%VQe#m<_rHJ9&wgZ^0-f4lpRo)>B#PrH1-ui1B{UhT1~FV{TH`M<$saiX^4)nwOo z_4Aw}vkR9Ud-$TuxNzk!ZJ*NIUu%P_XV@2ZB$v*UmEM=U(#!6T^_sU1feQ>cCQacE zZ=2!C-csT0z?Q!)bSr~)Y0idU%~QHh*u}ozz-oD;c1FD6!`m4?9*bp`bH@CdH!D)H zXTr*eW#WzZezrI;#b)Wus(!x8cY>GE&*dCV3;bU7^v;kt=vADeeatI7h)wCv=A*B} zl`i{C<8#oz+-Wze>2&neJ-9+i)D}34OExmve|e~Txj#H%N}bVTRNAn z{FPXC@ar8_7U|Bm&yQ!#bi5U`OQz-c#-^#peOFFx7Cqj1>+eh9>HJ?9J>4^#FHGIK zcgy#GAJo>wD$kkt)mq1O4m-PyvhDFx@p}G8Ube1TwsD@sMSWqF7%kTH>eER}l|FKB z^FEhs(=&^G;!)jCXRR*fJUU_7v~F3DNm)*BzQttzio%vV^;Z{jeBZJm)pW-iw}6JJ zac?KLzMaUx-ktVU#!HDO#7=l$g>VJm#`g~r&G=+LSSFZ?;C~A$z9Zm-XAaqo#A*{@Ch>&U>cv7h@-A}a%fqKc=BV@L(#+q?C7A@1AQKLl^T zt@7S?$;UMcZxbflWU9RJ&=*iVdX~#Td&6F)GhBDp97toGA^KoV!#9s36YL+kRb4uh zVEk^4!o2S%I1caqzQ?LG-}u;%?YmdMy7T+5#}TzeHNXEqzOA(S+RVW~A<#M};Gpv3 zWy$F}%{tXD?na$8_IdwL?)ZHwq{g;u;lIZFC%#u7`6>7G%j&=P{@%Ou?kh(Y<3YB2 zQyH%`kVy=pwn^&v;<%b`*uomi+0>n?_g`VY0dB;WJjxaMQ=^96JmI zay|%3XIwVB5GIh}+|J3PQpcRGcQ2JzZGY&n;VQ$kOIKbbzst1{YVvyAn?F5gg{^AK zEH>Tf>@_!^uW>HWTyaBdRffO~t=`N&hsE>eR`2d!`0}X24XqUxejK4utY1zS9RBF> zyk%j=(J7xZqgw)2GyQD1wdwpzp@TaWZfHF@P$M<1D8w@<%;0^QokUld%f~~{Q=48H zrCt5=;dE_Nu;L9ZhJ|6u$JX2|h*q%>Z1T0dHzRU${4>s1E>_F77rH+9D3H^ocqNPX zVHp$4>>yK~t+q+`isQTE+qb?k@SUYrnl(q^PTxh9faB*@uALTsFO<9Z{=co+_IXdU z=NDCZhM&oQcJ12w=RfKtb^P|_?UybWHxr+3=KaApc&pF!*bkCT{R@(UmpSz^tvpcm z?uA@()s&Ck@>ALWr>0%|SH1l1#plPitmG1vlj551ut9T?-IXOu+D$ok|7_UmD5%k# zw~ohZuc+*_rW%%m%UYsqy!SZ$x}nu`J&9}cW0B~KFXq)opZIr6Y-O_CjGOUREF5OM zcg_YLHPf`6vHM&4yCZUG#|x*%oZ~i|AnqX=cVMGC$F>(MZ(lgK&B{CFoO}8L*=KU~ z&Zo^DEa|#zAiq7l%qx3uq1-{SjgPKG>q_6+nY?=j|LR>|7RW5S<+o+^gD8>hb&`3t zt29}nkDN-CEtG$%D=HP7`|h+&z(L)BGd!iaS8HZxaUB#}`C>Nfspl8;yj>4m-4WcC z&>dj8ew%mUE$#D9>pc|CUu~*gm%{1SofN|3xjV$zqF>j|b+dw9(9)+i%>lp7rKPfk zY7}TStlT-d5OfSi9xc(HoT~*n?C9ZL&;NT#t%1p4heEXpPji zr#!AZW#4fg{j@MN=J|F%(e^G~wvT64i{362$Z~$X&CK(<$+TrncPdmb%ZaupaGzP* z-1YeKp7?VI9~9kFEdCtzu_d~)$#ZL>hE#xy^qq@8zbGtvzWY-zOGu8Q>PaTWD_P2m zPOSy=8(l6L91t{TbP3)WTCrPHYg>Sn=MUw5#c?hxewHsN;@&-FS)x|;Ni(f&43Ab^ zyEBRJ%}*YUuDNQWYi|W?Y!%oOb@-)>VL_u%m0-T>YO|1>d9DF#zn*y`_HJPhN50Sc z8`~cVwFVtr#Va~HKXJ9`%-cJ?1*XrD3pnAI$qG^~$GZMn)~2~`i$85uY*%QxDH^a5 zq&7ZRYVV`A(((_A`V${oM)qXZ|K(gLwtiFauLdX27kr@{T4wzf$!@E*it+jjCbc~Y zzs{#w1}=n*$Ts++eg3O`FKYt$uc*AH;OfNk3@!t zRopv8-f&Ys!KSm*+h%T`f8@D2hf(sb(!GMK{8Bu!b}w0-$hWd&x>LB)4Fi#{5AOIj zE1kKP8~ROx-S*mLj%B*%mMQtNgyht1@&7B#VQisM?i}=gw@{aw)AT9MN1q+!oWHLq z>aAAW%z`Nny)9lQf&m+QXIM-9Dp;{I`by?hqw5R~rEKn}e>ASWb?eD=6Wu4Kw^fe{ z~ zbAcBu0$&dYhU6>`E179?3eMyCyoF6&~#pZ#RM zq|c&8OvV_sEAm-J$lL zyKLrlpWWL%xDxx;Iz>hAejI#0Zf@9B7jLGsdn;2bnJ1t581t@$o3rtV&BVF#Wg6!G zw^IMis4=Q~eluXB=CxaQa(gfSF3X#Av*nZ7gZuNY{kNfMVh@04jMJ!l-K;evrId@7$%(>FX%65};wqC3Md)L%<;kJ)& zC;ffR^)q#~?B=xpcZJiwP3Oy0zWwRM>wkeWZ#ir@SRf;s_U(1%|IK=uiOoxs|4V%+ zQ;FMV&%Ba*`<%KGc8woNJ*Onzx*K{d`gQy2GC( z59kK59ej2$flt?Td!vr1P~Zugh12;g&6o)vE0_j1bYH;>h)r~Gc};^mwDC$rjf z7Sq!U#U?YpZOi|A^FH_AKW&APTjYCP92q9dB-~Pu@5!8K#Ia3qX4N)p+n+VRSJt+K z-?7>f`03}%TEWgh!z0Bh?(T)FJnsCldk(VMEXC-}o?kWTQ>9;u@m9*cWx42AA%5CA zWUt||&@)?~#_gW+k^QeC$2P@DdCzauZAV|BavOAHIKjbAIH(f{??TrX&dDOjq%?usgGqHL2%#=ab?B z^>PiFV-^$R(;n6Cja`;KkN031r_mQ5&Ciz8%Tzws{hu$gxMkhsIH_+Q-%d)0ePwJ- z*sTyb{h8RUSs(l>e#!rT`BUeQarVS8uIqWdBCl8N*|_x8oI9K{`S;gvT9~1Bw0!?x zt#e0r7CkvTp{%EJ`QsgOXEw_+A1vcDnm=uy_xuf)j8{E~FF|_Z^X--s)ptSYv!A-3A0)JxB4z%x*|G@eff{9;`GMJI$dgwPBWOB6a;eA zCj@x&*gLI=o$zs|OyY}QELn;-`aUXNdGM&{TJ*-kIoB0fiMf9q>VuzvEYd;j@N?ya5i{{)}2rCQF8*XKQWP02#2=`F*{x>cs5 zWJ>tlmHAWO&;DZESA6@Pp+Jsmo-$;>TztCD}JNtx6OUi0yf(}k4pOVa_;Ql z?V&AFyytiyhhA!`T)XF`E$j=l^MU>^GCj1*3CvU-tiBZu?6UA zZ`&04p+njB^U;4XwUcMC>K;C8ths6%YghT((0K2yVR5hCZ2t9jveDKxH-aXwb+KNb zwtLRa^!?{Uw63gJbE_zBNk*Z&@78C(Zxkh83C-Ecy{#xNw=XGqN4n9xn>!7^F0eNa zJ{fG7Q&5t-eoHv(qAwN=vUO!(<)5&e)|3PZS-}m{q`5z zZm(kDJla%ww{2Em+d=lY_qKO~H$?mt-a0F}xVs=(i91KyWc%m4TfKO#{goXLNpDg; zp%WNk`&-7v#^zs$<^E^+8mHELI=szHbT*IU;#uLFozG9Xbn5KVxl?(!|8~?izscpBq0p;PcKp z-_*wrAyzk1nyqK5^eJjMy$$*1yXBkWgEr$#TaGQ9D=&rc+45(pl%G&v+RGgHa$Uyf z++9c1nx?+v*jhZXVRQVooK~Z^*K!QcPPBY1#QtpE>B)i!yiGJd5_hl|S4DTOw?hO~rGT_-3l|A|W zVdfN%^%1Jgy2g<=+8Q6;JJ*{n_^y*>s?A9!r%8ldj(Rm+nF9vYaoPu_}DdD!R$V$m6*oYweEjj(?*L zoO)w3!FJ)nK2;;n<@KMV<}0`|(ZuKInsjZ2(-rpULr=bcu+>^+YQmGSLh7BzBC*zst1sOwb*kO4QO4Zwx67pPgZT6ef`S3VAjII?-DA8|TWx^b%W6uP&M0Gc&woRvKRCnJGVA}_`gTLz zpw^dbZ`|;iocQVJzMa=sFsYeuzg@=kh;Q#%u^R<}Gv_`oG&%aA{$Sl^1;zB$JKI-g zuKT`!{tICl?R5dGujw@}UJ>)|;k`L+d*ohEs{8iL|L;u6t%nUPV zy@T(d`XVmV+Xf5f^AWq#+9ncZeG^z>E-%@= zZP7ac5%cTr7ytfom{xw}(T}R7r)~e}eLnH&`>SskPhKd_vEMwEiTy^A+v&;Yw}-Dd zR`K}u(i2X-DI8v=3-kJXR|(vn`@8qg%XfF?1buDNcz$^vo3+;7l;`)Z#oeE?rsVtE z4M}#sWy=d@7&G-Bm5p9|_1O&FQqkzoxv$FC9V+M-=~TVaB0Ed(%E}_`_Ic4CTW3i( zU3>M$q4eOhy@d;M>U4cCsT;Q3V)UMD|2MZ&OYhXe^u+ak&KDR<4<1v?pXmPb#_Z`! zT4rx~9vBpSj_Xywb<{-EW&V*`{j?xT|LDd)9c}T<`l9ozD{# zSNPltUXqjkGcY?_`;hs+qbFi!t-Ta>_k!_@$Sm~$B|&J$%Of_EVcq85zslt8+I$Fo-?NeEEm+ z&qWIg17z+W`K9(anXhk-so#$8Z<4E~KVS|$SoY(@t6SbDet&%7oY=lN`20WheXU0h zy;yODf5PXh@2>4+t`hkwuGY_$9dUSB;fat_v*-V|3x2=Ggw;ituXhheY;jIb6wCj# zMRDGxO3syYM5FyKmLKxw*ebjr$-2$(&hi^acj$lVnIY_>9V6rPR)oWh<4{IawfJ;7 zr?(|l`72lL%s2ag>(h32W~Ga(e}}Ey?6iR~LqWZCOZ8T(-XBH=BB8JHMR)Cy^gAru za_gtUjlQJ`54EMYItz)O&OEgFyuN?=PNZ}cr(ls#SJ#T_~2TkDFQ{*`T?v*tz3 zxo>j9b7pUv%U*T=#Nvb-D|Tf(ThP(p!u7xL*qyBl&5~!cWX->S;ew4tTi;U-p`2TO z3p7&Z9IKk{@*v@{s`dP^(~tMGdtN`+JZJA(uImNIBAf5KR(?7Ea>w=ltv?fex(~hB zt+jSpxd@N+vm1Sh?UfhLZ}d#R5;m>&(y@T)k3=6-J`d%wZTG$|GyA;Xtc8W5>U*U& zyPcZxC3cVSqq^-YzrKCFM)&!O#EWkWR&s4qTUz@m<4t_BZdXjz(v`U{F7Tofo>Vv}CY zAF#ByZ&ku%^Nr_SS6-A`TkO$nEXr+>>%8p$uVX1^UT=yru{ye8^WDR2W&B@E`D^sN zQWq=TxbscRd9}#Swud|3r%RmeJo5Bi<62H0>%W2GIdS4kwXEKsIk(leW0!MQ#n-F7 z>yu-5hZ#8kRggZj*f-&OL;b6!v#;MV-~ST?yF%*Hq_EiJh^jxH#+TzJpdGoWC7QtZ&7#v8$F$tJKD}hf}>Q&QO-zmS}^b|c2zUO{pr{PzHiXAt-dV3>p>?`#>o>i56?w^f!X__?C z(}K@-OuBY$BC~2X?tNOCH2-Cp<(c54c7CV7rN5t$ZnS(_N=dl)ik+=HJAb}?V*jLV z*6S&klX;9EFaKK7zwYl-{Tp4W46#9OTH9Cam&K{gS#K~??B~U;#aZ3!^H*9u++KU+ z{_V|)+unWK`s|DHAs_Ln2h*PC#@$Nfs|-G~d8N(KFJF64eg!4{(>}>J+io-UcF9&r z9iIDk_Vq7w{VsaEyCHB}d$kegCf*#6>%LC|uH3zlGHdsfz_O(mZ~gtItvmgtT;{9i z;g{#k7G0!h=907EW>=Z%-cQdG-^@M#_`~Lz`e)bbUOlf{G`|Xx$+7N_unOLHxQ z)A4*BzOCQW`PqyG#g1;C=O?@jnwGobWto%iOWti~!@0L5Rk+w`zU`ZL{o!4)TkQ`5 z?6aEJZry5q?~Z@H^8Q`c=F9Vh8C-ndUVQM5L;1hA!7VAjtE?-m@0QE4SXl4>`L4T~ zrGRtt?Ay6b6EDf;SpK|!YSLw)Rc03YGp#l@UYmL6&d*-n^TIt-UL{QKta+b4;pRHU zRc02e9T%A1Puu-%>t>&})CDK+Pp{o# zecw0n@}G{E`#Iy<7VoRx9klgr{YIaSb8Fcgcl!OkU2<}tT}pmobkZA+*rtiWyYD<+ zaPs+W|IR=2XHP3CUiAO3%lrk~RL&f`w{QMtW%ilo+4H|W_uXbM{Q7Hi=%W2e%AU_t z=AQiTx!rg2DW=3V*{f&vA9|B(mb-smVN_E!hpD|*;6_nrhM99x|9_4%z1bU3e)Qk1 zV{860Ol8)*UBX!OA??X^{xCPyCSRX@H|mm{kNwWv?z3!u?YDa48ys=EYtP=jHsj>` zCr2*3#f4A*dm-hPx8~fyLZ2$ukR**)Prh6@w&i<*@ey4Up^{=nxA(W_%y|7yfx%MX zz>>#CU*FsPZ2$1_eB1Tk=7L%KLY5^7FPz1}*R~|E_;b?#s{4ytmgP3op3I3l_T=&u zbzS*j3C-ogE3W-n>31}(aPiKpOLs6ohi$J`2Fcl zzn8o174Fy+ot3s!)7UWOvTIX&}rnz1r{ z_vJiyN0)_eZQ+7hA6NKp*y+}^aDlauUE=drwfXt>2lw2*>HBZX-Xpyw+E4nL4ySO; ziu)%$VQrw=a^MG%e-cSp)q?HrpTXe0=|Vu%+!%-;JItdVAj$uJk>s zcE|2g&YL`u*h|bQitGQL4vyZtHev7WX}N=-jlOgZx^0ob1W2&n61>Jm$4^HGRGjSSP&x7TfF}X`k1x zopNkj(poOIQ_l`Po-!*tly}F;vv0S}{TSPs#d*9iCGPDpkzES}SC?+!Tq*EGNi1lQ zmuO6&>GRLu_Gf8+<9gfhb?)roa?V9zzY~NFb9Y*`ms-nIttqrn;m)!2e4aGV*}7|X z`0qF6cU+b+G_6fJ?Azw(y`<;$BB9dBI`unhUq@Z|{M^rI#km$8_b}Cw5J_?Dng2 z^K&tc{uAx9ujNj7dgO9jrr%|Q&k;V=YR_*Qh9CZ*$#PpUYFcAV$D17ncP1-e=2fqK zb|?4Nw!7EuPh?TbVn@(wh@j&scX`tuXeqJN?X`mI%h4uX5bb+pzkc zkMXVS$5{tMGt)Su7r){>Xy$aZ*LzFPxs~ZNyjR<@-0qlq+DYY(7>C<1<(L$UhIwdMP z`f+mpe}m)4&IHeGU-`7acwx=otG(;vg$`IM+)xV3xtw)pvb9xq;8D@!lvNABRtnhSk45?sz8xcF{mYcx4i4oyi zQ$uz*F4&Z#8d}+4b7S{YEoOC&YNivM2h<&^n_}lD+!Q`y$2g(=jTOIJWlw8!QPTr0 z_0&C+tnM;bES>14(D-@FeP(-S|MTvvpTC~RxZ}93lE4Sf#=}_??{%$SUwm=P^9{=1 zyds257VtW4VOYpjo^pM|OLOTz54ukDE3kialQ?c4@#R*lg{N%HrtL0w_cig{m}%g; zm8I>+OuH~e{+1mA{&BWyZrX}+r zpKisRCetex8f}cQ7pS_5QwT(o~KO>~r>)Cq%wk z=6g~mu`91TZENQj)*nB9uRGfC$26=uk+-iX^7;4wD@t@dnG%*LH}1dE7Lp;gaAKd| z{Nkl9nMT@SdG|{A^XEJ?*Z-fPI_ZH^Qpf((b)VUckGQOIS!8Gz?zUytyqO;!uJ>F2 z;of{jmOZnj+sa=byOu7>@J9P^c4~)mgLojjRBSts)tNwD9h1{84K8n6+=xwpwraD-DDxy& zyM~QwH)B4g82Lr9Z98&I#!P(Q(n+EX%-D4HHitcfl6`^y zzT(L_mC15CO=evSPDtlf1xX$hTkyzfw%N9s!IypKA3n6gS!Lsq&nm|2N*?X4?_}z} zH0R&rhg*x?mgrs(d^#yNh}9)zl}c%i=Ec;EV5d;F!|{KnzF;_8oUkd8Wd2Y0FhTZ+jb*r5hPLj3veXZ(WxSP2p^2X13j%IeJ zKhN3STj}M+Vg6_DpI7JChe|(Bytz#Mq1xH+O!_Nrbz1Gtr%K=4;J^9Hm0uj%SC8%B zmFg_}cW|ZGtbN~2x`GyU^l3bg4$3yZ=c!Yh9k8?RuA`vk_RMa#Oe4)%_ryz$IlAQK z{`^)dcAml*b!gMvCHu@5F>svCH8s1t{`m2~cDC`^zcv`1Gpcvatn*!JS<;hWr_ z%V&fg^Zpz>VzyvUK;q4k`!e!V6_tZR54qT{>fSPA=Z{Y^Momxpw}_v+o}${4=*X92 z(;~O8Z#_rdiHgB{zpGeGU&PEdnIgnnq3Z4i~m;dfL%O1_7%@; z?7B3(I;EB~Rmc|I4_&RWys5t~`1YO>BNXajbn3n9uQ74ZnZMv1=b||Zr#N-yD}Y%qId#}G-s}rG72NF6c2oEUtJHx_ zp1JAMCTZRFey6i@imZdZ!ZhDN?^ow%-kf=p_rM&>;%8@O7T*;t@SR}2+WW^QF1b65 z57#~t{8gR#YD)5iP2A2uI`(frTJ>Fm>)ENJj)7Sl6wDkK89YDg;qD-PG;3kReo@sc zQ#+N*-#K8d6`GdS;@cl~UdQr}Vo6K&QXw~p?%?)x96_hNDA z4VJfem_+sXc3m?2SCeNKxXn<^RB@90(@P;zHV_qsljDg&M7C4a*4K!CVPl* zp3j+Yz*e?J<%UU@ii@|+zt55>3k(XcoUMLj@N~-Ki*G)0eTrolcK;}LDQ*A4n#M=@ z&8kN`H%F@`{%P6X@BZu_tN8UU`6GP~t5T!Ce_FusA?>w+aw5mmNfv4=V%$#))dd&d z+3leC=t1z6OekM*!rF`bItnr`CuRa*M_qX)b>2X16(+(?RXe7^Q!?|+4? zyPHn)d{f%^!bo#lM0Ee>8Or71@l8dt6{g*%eqQ=|(&|yCL%M2X#Oo=Ioz;aOp2c(; zl`-G`_|+i&^$nT=^+2VNtGqSNx-OyZ6++alA7Ej`nSiW!HVs@$cdpcS~XG zv;|ky_KBb3O$hRFXzNrsd#Wyfxd}&q%Y<@^`Q6^Up6hm6+0OA&v%UC`V~L!=*Xk|e z7Up?css%iqK~|j71wyvRrRUTLzT|w&V|r@EEtON);1R!ypd{J5o;xPJzZx` zl;2b5^?_EMe2=%p&8t52xBB$%%=x{#O&8Bi2ne=S6fU$5ZRhuy6VbP6nxlvR7Ps5}xQ(bmU`Wx9gn~&U)K}4si&% z{hA>EuS8d9?IF#XM-#c5^;*Rrh8)R#z@_3cyD)6h?+x-!X@yRL`^>nM7f9B9&fobx z;pmNN9iNpm#RR7(A9;Lk-N!u^dM`N|JeSRI{>i=K!D@C_?mZmyzR0bO5S9E&OLL zkV>xDbLyqUs(*bx6%~gpPWx`yCevfwd1%5>7xR5<*so@-yT!$t@z7g4JC{{6toLXC zP1WPy8O0`CO;~eryPe^OHi59_c6;`Mqf1H@*RCqk-tM(oYR%kP*PSJ_948g2-DKg; zxw~qawa2?F>1RA#7bp2faV9+sV!2(k;^_p7QttJf(|){I6jIipylmDRPIZshy=*n7 zKPLFvn;!aju$gQ1SId<*921Vp=^bQvu>5bG!_Nx`Ywt-|Nv!7oBa*;Xcjly}X^=s@ zjLY0^(cKQ&B0oX`mt3FFcyV2?NutBr{?rJuXWhzQURu=cG&A6E{bHoM_*mhqsrFTG zWF<__u3nlp+2DzvhwbbIfY9; zY+0x1I3rzAWlv<)Bo%|k_gjB`pMJLUmc@?auRrjra(!#;il|Bpe|q{i`*~F!{qk2U zq>kswZ})Y4oWOb8A@J|Th1*=ZAEuqi+AI`${dy+*?o**GZ(guZ?7e5IVH2Bt_58{= zU;Fj+t_fzaGF}URW7p|@#rgAt@Lk>i{!Tr^IiGL$%~OZjcCUuFwypO##k^J=o)RZg8m^$ju(i~+&&#S4}P zZ_N7jDE5td=t0AX9l{vOt-e}9YLea*SGbzz#vS(OC};nNmg zRh5V_<%HXGwGKe_OZ7u5b;WVR3mvz|zgp*#{JH{U@SJVaOHzXw;s9*ALYvhW=8m8SR zXEkgo{x)akO2&o8-|y@+4&LDYS)8^f~9>^?V-o?T7ppxxYWhd_?cZ2IoWH7bq-?OA*@6DY|u;VwRBH z-n-!se$U;bTbt#oRv7(Y!VU(#8*VH4dj5!4cG{LIu}^!wqO{>a(Pr0`y&i8EQ%+pz zkoggFJoB=Dz04^;*qvaJV<}wU zq`P9(x~eVzD<6H{pR056mfGHPCJP!6{#3RZ&>|PU{lDQ1xp?+^;8kyc$eIL zB>ScPsd@c+Zcn!N=6dPPnzcGIMmsSqC5h<*wfOp1(j?3s*eV~kz!xbH@Co0 zZNlke;!}06Up}%ca`8q%z88M8%`4yTj4*21S5_x=^eyeyBLqSX*HT#%h|7NUah0}Oa3>1cI?Sy&6Saz zlV*LM_Piji{QjEH4-d~iF-v{HtOSR5)84$3KO5TLuI=^EnB^&(ep1OLi<&R9%N7S4 zXPa=b7cT$E`Y5SVzJA)Sy?2~;?B4DE?oizS(yu8$TJ_%Eib&w+gY z%F}D^j+e3v9X*~YZGL+1-s^mxs}r15YN`?)Kh3u4SN7uZ$e6Hovqf6}-`|b@#V4*j z!M(fv?99m*_jSF#tvMyaFkVI6#pBfM19d-@Bh-v1dOk3Vd}+qC>!bG6ef7p0ln#mR z?rC|>tT@v}eCyq2KCOyno2S)mX5Xc-*KzXNU$b^GK93G5jOc&5wtLTpa*u1PqbI08 zc8R}#YRW=}`yb>FX3Y+hPq-SpfwkG;!Gx}VL4C%^PpKuuk7 z!HY}x-?OPH_`URj;T}(}wULXbRLYru+s;-#S#;vbrf8YpS-Q_MnvT4+U!nWGetoA_ zL8EJsWylAC{!0(S6%;e)B(ThP^vIfMd6MDj3$8ted%lJ0yxX}v;$3cLsmY=q{v`>2 zL?)l)$jh4Op0#C~%(9QMZQ6g2TCa{JL^vw2}zT)tt zn0&v)qdl1=7khp$HU6d6r)IHo;h}$Ob9iP?na6%zKvVAVDrwQbwtYc%x_S}2t-r9# zudJL^^uR5~f~TtFj?=6!lTL)zR28Jlv1~Xn<%-Jnc_$a0Sao|sQ^Bg>jolYkZjPAw zO5}G+R@1TNa~HTo3dWo0HXc@w-~IRB`{fB9B{jXvy}oiq+WkvR4s+4jMWAozO zi`0=tfUASe#j)M<&X6%x`y{(U{+w~c*=C|(}!ZUT^ue}H{5Lb1IO4z=t}$Th=@^ zYgt)ZP*$CD(s8BHhC7vga-U>8%%$e8eJd+-G)nH!rY$Rq%fIV;t<|=9dvn*1k`hLd zb#+mHT(8XJNP8}`gEMriXgQyCHjnGO{A1T9uhc&48*I>U)NXCqdrkRQj-uy2R%hGFP-+o7Q=HK#rZs}IqixR(7g{5BEEYVu9e6w-1h?tMqgrNJcw$K0c zZ-%t4g=&07{f;^B3`6)^`MO0p%27S4Q8rK_VUtwKz`L*%tjT4Vah*iBWkTq(kHL%*HtFwIW zcN-6_`8LnK{r(qxYo~C2a9g(gmTxNC@~-BtGT{xLpRk)8ggk%BW9-k5AJ zxoz$4c}Lz&xUt^nh}`@v*1TBFE31C7<~{m#-A#~llIg^mAFfP(;o+QdlWTj$ld0YQ zF$TMG=6cV*)$?h-!jGJ-z5)V2A3j}l?AV&FGc!19#nv60tGm3YT;}4;%Uf^AYepp; z+jW9x`Pwho zlI47GqH(v}mv!a}^1HHHdNYM)oV+sWywLTZ8yMvG2-jWnw&14Ye`P6O2 z6tA@(`Q)d~{C3XsozncLztaU6%`{z#AM0o qoz73(zvqiyW6{-wf}io9@Ki2t6F?X zuSijo?2+SnOFTA)dquQ}vA8E`?&a0LN=rlcW-%O-Nam3im?sgUXYuD@Q`7W@Q!h=n zH!$%t?Km_wiq)+_UGY%&e5R$_7&0Y0Ja1fNIuiV$*;ei8!3GISL96=BNB_V7a9#5R z*OA4JoV`6B8LcvMn^>VPSJGOR?uT-E z|F>~#8k$TzA-{pEN@!1k)q~dX56fRw=FG8q|B1_N$9>Z?afhDXGF)=tgUh}B42XMHr(UiNY3!j2NLf)y`sKAQVS(r7`kjsK5q#;S0Q zYcZZu>k}kgc1y$ur3p0^TxXudTD|vj<7t(j1LWY zGWM=lUVeMSjR*+=pOo(SfL`m58V=7}YvXQ(`6oZoHoZJ!;#0xpx8{86y6kqmuZAH^ zk!$xnU8&MPOC__n%H3SpapKYZyKK@djVcGj9>2Y_t1K~a+x>pi>qpdm0(;MO3tjqO zT(c;+B>UD+R_5O)-niD9*FQF&d4%zQiQtMw)q1DIYgH6tQvBY|zArGFeFZ1AF;Vc_AM%&^i*~p07Oj>LmzI`( zHX)APZ%>}TJYOs>Hj|xQ;o`~5=XHJ_Z>XF9;XqS}-654SjuS8Q9^aq$DRJ*UllFg`Y_HO?ym*SEoI^poybqx}V46h?r_jlwoe7SZf zr+4w|)|(-whZHzWWA>a%(VedHbgkG&!-(GPn*YyfajD*Zo`37%&pe%Tp$g11TpDXv z+ItGUQSIFt)iU8ug!kHgU*=xinXV_z{`2;?`86`9KlRs}&polKljE-v7suX-hOMS7 zoDa8~2YF6Rt_o7&K0W2^z2hfO7TzdZ6`E``IcVnA8;#RiT4I`VJs7PgMsTeeY*;{!0&Y>SPnEY}*MR6ja-^ zORaazobyCWu-Cdh!zWE@=iyc6%AAc;Ipn$5e=lEfH&Szj0CV!8EcUm_hi~ux8ltT; z?@m;j(8UljfmKm!4pz9lQ=ganozq2Za!bS~F~=r zG4tJ1DsH+euWm0~qB5PubKaz%@~>(Y6}zeegqmEGz8?Ll{BK3ccF#$t@9))EK2`qi ziwQ4+uUIZIm0()=$z$HF_rE@|$g^)ebLRLlw^^1)_|x>I)qibj;Oh}h^IEd+`mEhQ zLLLQFWxQBdaDSrwlXJUkp9gZDJ{r@YTD#I`>#;*Mf^9C#xUFI>-Z4k_O-|0RWhz;7 z-l+52XMOF(92aNiOa0VX`?2?A-6JL8cpvxg!tvYOr>3**G7_EmBDqgr<;RYc78mtx zN4|YMwA!a$+2>F|`TqVEj_Vc6mK4M|1}yiV`qsTn+Wxn9tt4}(!WUU3(MdvAS1WvY oH}8M(w|dX1hQ}nF`|BAQ4i+&Pp7`;efq{X+)78&qol`;+00}R literal 0 HcmV?d00001 diff --git a/src-tauri/icons/icon.icns b/src-tauri/icons/icon.icns new file mode 100644 index 0000000000000000000000000000000000000000..12a5bcee268851fdab744ec4a31f75d3d008e031 GIT binary patch literal 98451 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

B`RykL8W4Y5BhY#uh3bvkN&CPtU*YBR- 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 A@&Et; literal 0 HcmV?d00001 diff --git a/src-tauri/icons/icon.ico b/src-tauri/icons/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..06c23c82fea615c9394c4c7f487392e3f0a2fd4a GIT binary patch literal 37710 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/icon.png b/src-tauri/icons/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..e1cd2619e0b5ec089cbba5ec7b03ddf2b1dfceb6 GIT binary patch literal 14183 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 TRLxmk2NLjf^>bP0l+XkKL@CUO literal 0 HcmV?d00001 diff --git a/src-tauri/src/app_state.rs b/src-tauri/src/app_state.rs new file mode 100644 index 0000000..e69de29 diff --git a/src-tauri/src/countdown/commands.rs b/src-tauri/src/countdown/commands.rs new file mode 100644 index 0000000..e69de29 diff --git a/src-tauri/src/countdown/dto.rs b/src-tauri/src/countdown/dto.rs new file mode 100644 index 0000000..e69de29 diff --git a/src-tauri/src/countdown/mod.rs b/src-tauri/src/countdown/mod.rs new file mode 100644 index 0000000..e69de29 diff --git a/src-tauri/src/countdown/model.rs b/src-tauri/src/countdown/model.rs new file mode 100644 index 0000000..9ff10cd --- /dev/null +++ b/src-tauri/src/countdown/model.rs @@ -0,0 +1,80 @@ +use std::time::{Instant, Duration} + +enum CountdownState{ + Idle, + Running, + Paused, + Finished +} + +#[derive(Debug)] +struct Countdown { + id: uint, + label: &str, + initial_duration: Duration, + remaining_duration_stored: Option, + state: CountdownState, + start_timestamp: Option, + target_timestamp: Option, +} + +impl Countdown{ + + fn create(&self, id: uint, label: &str, duration: Duration) -> Option{ + self.id = id; + self.label = label; + self.initial_duration = duration; + self.state = CountdownState::Idle; + self.remaining_duration_stored = None; + self.start_timestamp = None; + self.target_timestamp = None; + } + + fn remaining_at(&self, timestamp: Instant) -> Duration{ + timestamp.saturating_duration_since(target_timestamp) + } + + fn remaining(&self) -> Duration{ + self.remaining_at(Instant::Now()) + } + + fn is_finished(&self) -> bool { + self.state == CountdownState::Finished + } + + fn start(&self) -> Result { + match self.state{ + CountdownState::Idle => { + start_timestamp = Instant::Now(); + target_timestamp = start.timestamp.checked_add(self.initial_duration).unwrap(); + }, + CountdownState::Paused => { + target_timestamp = Instant::Now().checked_add(self.remaining_duration_stored).unwrap(); + }, + _ => Err("not startable") + } + self.remaining_duration_stored = None; + self.State = Running; + Ok() + } + + fn pause(&self) -> Result { + match self.state { + CountdownState::Running => { + self.remaining_duration_stored = Instant::Now().saturating_duration_since(self.target_timestamp); + self.state = CountdownState::Paused; + Ok() + }, + _ => Err("not pausable") + } + } + + fn reset(&self) -> Result{ + self.state = CountdownState::Idle; + self.remaining_duration_stored = None; + self.start_timestamp = None; + self.target_timestamp = None; + Ok() + } + +} diff --git a/src-tauri/src/countdown/service.rs b/src-tauri/src/countdown/service.rs new file mode 100644 index 0000000..e69de29 diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs new file mode 100644 index 0000000..4a277ef --- /dev/null +++ b/src-tauri/src/lib.rs @@ -0,0 +1,14 @@ +// Learn more about Tauri commands at https://tauri.app/develop/calling-rust/ +#[tauri::command] +fn greet(name: &str) -> String { + format!("Hello, {}! You've been greeted from Rust!", name) +} + +#[cfg_attr(mobile, tauri::mobile_entry_point)] +pub fn run() { + tauri::Builder::default() + .plugin(tauri_plugin_opener::init()) + .invoke_handler(tauri::generate_handler![greet]) + .run(tauri::generate_context!()) + .expect("error while running tauri application"); +} diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs new file mode 100644 index 0000000..bc8f5c8 --- /dev/null +++ b/src-tauri/src/main.rs @@ -0,0 +1,6 @@ +// Prevents additional console window on Windows in release, DO NOT REMOVE!! +#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] + +fn main() { + owlerlay_lib::run() +} diff --git a/src-tauri/src/server/mod.rs b/src-tauri/src/server/mod.rs new file mode 100644 index 0000000..e69de29 diff --git a/src-tauri/src/server/routes.rs b/src-tauri/src/server/routes.rs new file mode 100644 index 0000000..e69de29 diff --git a/src-tauri/src/server/sse.rs b/src-tauri/src/server/sse.rs new file mode 100644 index 0000000..e69de29 diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json new file mode 100644 index 0000000..8d4db84 --- /dev/null +++ b/src-tauri/tauri.conf.json @@ -0,0 +1,36 @@ +{ + "$schema": "https://schema.tauri.app/config/2", + "productName": "owlerlay", + "version": "0.1.0", + "identifier": "com.s0wlz.owlerlay", + "build": { + "beforeDevCommand": "pnpm dev", + "devUrl": "http://localhost:1420", + "beforeBuildCommand": "pnpm build", + "frontendDist": "../dist" + }, + "app": { + "withGlobalTauri": true, + "windows": [ + { + "title": "owlerlay", + "width": 800, + "height": 600 + } + ], + "security": { + "csp": null + } + }, + "bundle": { + "active": true, + "targets": "all", + "icon": [ + "icons/32x32.png", + "icons/128x128.png", + "icons/128x128@2x.png", + "icons/icon.icns", + "icons/icon.ico" + ] + } +} diff --git a/src/assets/tauri.svg b/src/assets/tauri.svg new file mode 100644 index 0000000..31b62c9 --- /dev/null +++ b/src/assets/tauri.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/assets/typescript.svg b/src/assets/typescript.svg new file mode 100644 index 0000000..30a5edd --- /dev/null +++ b/src/assets/typescript.svg @@ -0,0 +1,25 @@ + + + + + + + + diff --git a/src/assets/vite.svg b/src/assets/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/src/assets/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 0000000..4783341 --- /dev/null +++ b/src/main.ts @@ -0,0 +1,22 @@ +import { invoke } from "@tauri-apps/api/core"; + +let greetInputEl: HTMLInputElement | null; +let greetMsgEl: HTMLElement | null; + +async function greet() { + if (greetMsgEl && greetInputEl) { + // Learn more about Tauri commands at https://tauri.app/develop/calling-rust/ + greetMsgEl.textContent = await invoke("greet", { + name: greetInputEl.value, + }); + } +} + +window.addEventListener("DOMContentLoaded", () => { + greetInputEl = document.querySelector("#greet-input"); + greetMsgEl = document.querySelector("#greet-msg"); + document.querySelector("#greet-form")?.addEventListener("submit", (e) => { + e.preventDefault(); + greet(); + }); +}); diff --git a/src/styles.css b/src/styles.css new file mode 100644 index 0000000..7011746 --- /dev/null +++ b/src/styles.css @@ -0,0 +1,116 @@ +.logo.vite:hover { + filter: drop-shadow(0 0 2em #747bff); +} + +.logo.typescript:hover { + filter: drop-shadow(0 0 2em #2d79c7); +} +:root { + font-family: Inter, Avenir, Helvetica, Arial, sans-serif; + font-size: 16px; + line-height: 24px; + font-weight: 400; + + color: #0f0f0f; + background-color: #f6f6f6; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; +} + +.container { + margin: 0; + padding-top: 10vh; + display: flex; + flex-direction: column; + justify-content: center; + text-align: center; +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; + transition: 0.75s; +} + +.logo.tauri:hover { + filter: drop-shadow(0 0 2em #24c8db); +} + +.row { + display: flex; + justify-content: center; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} + +a:hover { + color: #535bf2; +} + +h1 { + text-align: center; +} + +input, +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + color: #0f0f0f; + background-color: #ffffff; + transition: border-color 0.25s; + box-shadow: 0 2px 2px rgba(0, 0, 0, 0.2); +} + +button { + cursor: pointer; +} + +button:hover { + border-color: #396cd8; +} +button:active { + border-color: #396cd8; + background-color: #e8e8e8; +} + +input, +button { + outline: none; +} + +#greet-input { + margin-right: 5px; +} + +@media (prefers-color-scheme: dark) { + :root { + color: #f6f6f6; + background-color: #2f2f2f; + } + + a:hover { + color: #24c8db; + } + + input, + button { + color: #ffffff; + background-color: #0f0f0f98; + } + button:active { + background-color: #0f0f0f69; + } +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..75abdef --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "module": "ESNext", + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"] +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..fc3fe85 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,30 @@ +import { defineConfig } from "vite"; + +// @ts-expect-error process is a nodejs global +const host = process.env.TAURI_DEV_HOST; + +// https://vite.dev/config/ +export default defineConfig(async () => ({ + + // Vite options tailored for Tauri development and only applied in `tauri dev` or `tauri build` + // + // 1. prevent Vite from obscuring rust errors + clearScreen: false, + // 2. tauri expects a fixed port, fail if that port is not available + server: { + port: 1420, + strictPort: true, + host: host || false, + hmr: host + ? { + protocol: "ws", + host, + port: 1421, + } + : undefined, + watch: { + // 3. tell Vite to ignore watching `src-tauri` + ignored: ["**/src-tauri/**"], + }, + }, +}));