From 0695655ccf41e53441b7332490585f694bddc8c9 Mon Sep 17 00:00:00 2001 From: cyph3rasi Date: Wed, 15 Jul 2026 15:55:19 -0700 Subject: [PATCH] Build the Synapsis Tauri onboarding and authentication shell with the official wordmark and a fluid stable-topology signal mesh Hop-State: A_06FPFZF1AB46ARJ4HD8ZQH8 Hop-Proposal: R_06FPFZEBFD47ZTA2XKJ2Q0G Hop-Task: T_06FPFXR242APZTT77HV934R Hop-Attempt: AT_06FPFXR241F9H1V2J0RCGGG --- .gitignore | 24 + README.md | 37 + bun.lock | 285 + index.html | 14 + package.json | 25 + public/logotext.svg | 56 + src-tauri/.gitignore | 7 + src-tauri/Cargo.lock | 4992 +++++++++++++++++ src-tauri/Cargo.toml | 24 + src-tauri/build.rs | 3 + src-tauri/capabilities/default.json | 9 + src-tauri/icons/128x128.png | Bin 0 -> 2800 bytes src-tauri/icons/128x128@2x.png | Bin 0 -> 5797 bytes src-tauri/icons/32x32.png | Bin 0 -> 1090 bytes src-tauri/icons/64x64.png | Bin 0 -> 1640 bytes src-tauri/icons/Square107x107Logo.png | Bin 0 -> 2553 bytes src-tauri/icons/Square142x142Logo.png | Bin 0 -> 3266 bytes src-tauri/icons/Square150x150Logo.png | Bin 0 -> 3551 bytes src-tauri/icons/Square284x284Logo.png | Bin 0 -> 6535 bytes src-tauri/icons/Square30x30Logo.png | Bin 0 -> 990 bytes src-tauri/icons/Square310x310Logo.png | Bin 0 -> 6906 bytes src-tauri/icons/Square44x44Logo.png | Bin 0 -> 1309 bytes src-tauri/icons/Square71x71Logo.png | Bin 0 -> 1705 bytes src-tauri/icons/Square89x89Logo.png | Bin 0 -> 2120 bytes src-tauri/icons/StoreLogo.png | Bin 0 -> 1423 bytes .../android/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../icons/android/mipmap-hdpi/ic_launcher.png | Bin 0 -> 2107 bytes .../mipmap-hdpi/ic_launcher_foreground.png | Bin 0 -> 3548 bytes .../android/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 1992 bytes .../icons/android/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2028 bytes .../mipmap-mdpi/ic_launcher_foreground.png | Bin 0 -> 2481 bytes .../android/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 1891 bytes .../android/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4826 bytes .../mipmap-xhdpi/ic_launcher_foreground.png | Bin 0 -> 4782 bytes .../mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 4639 bytes .../android/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 7950 bytes .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 0 -> 7296 bytes .../mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 7604 bytes .../android/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 11315 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 0 -> 10197 bytes .../mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 10818 bytes .../android/values/ic_launcher_background.xml | 4 + src-tauri/icons/icon.icns | Bin 0 -> 78228 bytes src-tauri/icons/icon.ico | Bin 0 -> 13588 bytes src-tauri/icons/icon.png | Bin 0 -> 12573 bytes src-tauri/icons/icon.svg | 11 + src-tauri/icons/ios/AppIcon-20x20@1x.png | Bin 0 -> 675 bytes src-tauri/icons/ios/AppIcon-20x20@2x-1.png | Bin 0 -> 1205 bytes src-tauri/icons/ios/AppIcon-20x20@2x.png | Bin 0 -> 1205 bytes src-tauri/icons/ios/AppIcon-20x20@3x.png | Bin 0 -> 1480 bytes src-tauri/icons/ios/AppIcon-29x29@1x.png | Bin 0 -> 946 bytes src-tauri/icons/ios/AppIcon-29x29@2x-1.png | Bin 0 -> 1562 bytes src-tauri/icons/ios/AppIcon-29x29@2x.png | Bin 0 -> 1562 bytes src-tauri/icons/ios/AppIcon-29x29@3x.png | Bin 0 -> 2100 bytes src-tauri/icons/ios/AppIcon-40x40@1x.png | Bin 0 -> 1205 bytes src-tauri/icons/ios/AppIcon-40x40@2x-1.png | Bin 0 -> 1971 bytes src-tauri/icons/ios/AppIcon-40x40@2x.png | Bin 0 -> 1971 bytes src-tauri/icons/ios/AppIcon-40x40@3x.png | Bin 0 -> 2772 bytes src-tauri/icons/ios/AppIcon-512@2x.png | Bin 0 -> 32206 bytes src-tauri/icons/ios/AppIcon-60x60@2x.png | Bin 0 -> 2772 bytes src-tauri/icons/ios/AppIcon-60x60@3x.png | Bin 0 -> 3749 bytes src-tauri/icons/ios/AppIcon-76x76@1x.png | Bin 0 -> 1915 bytes src-tauri/icons/ios/AppIcon-76x76@2x.png | Bin 0 -> 3414 bytes src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png | Bin 0 -> 3475 bytes src-tauri/src/lib.rs | 256 + src-tauri/src/main.rs | 6 + src-tauri/tauri.conf.json | 40 + src/App.css | 109 + src/App.tsx | 449 ++ src/main.tsx | 9 + src/vite-env.d.ts | 1 + tsconfig.json | 25 + tsconfig.node.json | 10 + vite.config.ts | 32 + 74 files changed, 6433 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 bun.lock create mode 100644 index.html create mode 100644 package.json create mode 100644 public/logotext.svg 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/64x64.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/android/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 src-tauri/icons/android/mipmap-hdpi/ic_launcher.png create mode 100644 src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png create mode 100644 src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png create mode 100644 src-tauri/icons/android/mipmap-mdpi/ic_launcher.png create mode 100644 src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png create mode 100644 src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png create mode 100644 src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png create mode 100644 src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png create mode 100644 src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png create mode 100644 src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png create mode 100644 src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png create mode 100644 src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png create mode 100644 src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 src-tauri/icons/android/values/ic_launcher_background.xml 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/icons/icon.svg create mode 100644 src-tauri/icons/ios/AppIcon-20x20@1x.png create mode 100644 src-tauri/icons/ios/AppIcon-20x20@2x-1.png create mode 100644 src-tauri/icons/ios/AppIcon-20x20@2x.png create mode 100644 src-tauri/icons/ios/AppIcon-20x20@3x.png create mode 100644 src-tauri/icons/ios/AppIcon-29x29@1x.png create mode 100644 src-tauri/icons/ios/AppIcon-29x29@2x-1.png create mode 100644 src-tauri/icons/ios/AppIcon-29x29@2x.png create mode 100644 src-tauri/icons/ios/AppIcon-29x29@3x.png create mode 100644 src-tauri/icons/ios/AppIcon-40x40@1x.png create mode 100644 src-tauri/icons/ios/AppIcon-40x40@2x-1.png create mode 100644 src-tauri/icons/ios/AppIcon-40x40@2x.png create mode 100644 src-tauri/icons/ios/AppIcon-40x40@3x.png create mode 100644 src-tauri/icons/ios/AppIcon-512@2x.png create mode 100644 src-tauri/icons/ios/AppIcon-60x60@2x.png create mode 100644 src-tauri/icons/ios/AppIcon-60x60@3x.png create mode 100644 src-tauri/icons/ios/AppIcon-76x76@1x.png create mode 100644 src-tauri/icons/ios/AppIcon-76x76@2x.png create mode 100644 src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png create mode 100644 src-tauri/src/lib.rs create mode 100644 src-tauri/src/main.rs create mode 100644 src-tauri/tauri.conf.json create mode 100644 src/App.css create mode 100644 src/App.tsx create mode 100644 src/main.tsx create mode 100644 src/vite-env.d.ts create mode 100644 tsconfig.json create mode 100644 tsconfig.node.json create mode 100644 vite.config.ts diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/README.md b/README.md new file mode 100644 index 0000000..66ded78 --- /dev/null +++ b/README.md @@ -0,0 +1,37 @@ +# Synapsis Desktop + +A Tauri desktop client for the Synapsis federated social network. The first-run experience follows the same node-first model as the native iOS app: + +1. Choose and verify a Synapsis node. +2. Sign in with an existing account or create a new account on that node. +3. Enter the signed-in desktop shell. + +Node and authentication requests run in Rust so independent nodes do not need to opt into browser CORS. Session cookies are held by the native HTTP client and are not exposed to the React webview. + +## Develop + +Requirements: Bun, Rust, and the platform prerequisites for Tauri 2. + +```sh +bun install +bun run tauri dev +``` + +The standalone frontend preview is available with `bun run dev`, but node connection is intentionally disabled outside Tauri because the native command layer owns networking. + +## Validate + +```sh +bun run build +cargo test --manifest-path src-tauri/Cargo.toml +``` + +## Current scope + +- Animated signal-field launch and onboarding visuals. +- Node URL normalization and `/api/node` verification. +- Existing-session detection while the app is running. +- Cookie-based sign in, account creation, and sign out. +- A desktop navigation shell ready for the feed and other iOS features. + +The node address persists between launches. Authentication cookies currently live for the duration of the application process; durable, encrypted session restoration is a later security-focused addition. diff --git a/bun.lock b/bun.lock new file mode 100644 index 0000000..5cc757d --- /dev/null +++ b/bun.lock @@ -0,0 +1,285 @@ +{ + "lockfileVersion": 1, + "configVersion": 1, + "workspaces": { + "": { + "name": "synapsis-desktop", + "dependencies": { + "@tauri-apps/api": "^2", + "react": "^19.1.0", + "react-dom": "^19.1.0", + }, + "devDependencies": { + "@tauri-apps/cli": "^2", + "@types/react": "^19.1.8", + "@types/react-dom": "^19.1.6", + "@vitejs/plugin-react": "^4.6.0", + "typescript": "~5.8.3", + "vite": "^7.0.4", + }, + }, + }, + "packages": { + "@babel/code-frame": ["@babel/code-frame@7.29.7", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.29.7", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw=="], + + "@babel/compat-data": ["@babel/compat-data@7.29.7", "", {}, "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg=="], + + "@babel/core": ["@babel/core@7.29.7", "", { "dependencies": { "@babel/code-frame": "^7.29.7", "@babel/generator": "^7.29.7", "@babel/helper-compilation-targets": "^7.29.7", "@babel/helper-module-transforms": "^7.29.7", "@babel/helpers": "^7.29.7", "@babel/parser": "^7.29.7", "@babel/template": "^7.29.7", "@babel/traverse": "^7.29.7", "@babel/types": "^7.29.7", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" } }, "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA=="], + + "@babel/generator": ["@babel/generator@7.29.7", "", { "dependencies": { "@babel/parser": "^7.29.7", "@babel/types": "^7.29.7", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" } }, "sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ=="], + + "@babel/helper-compilation-targets": ["@babel/helper-compilation-targets@7.29.7", "", { "dependencies": { "@babel/compat-data": "^7.29.7", "@babel/helper-validator-option": "^7.29.7", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" } }, "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g=="], + + "@babel/helper-globals": ["@babel/helper-globals@7.29.7", "", {}, "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA=="], + + "@babel/helper-module-imports": ["@babel/helper-module-imports@7.29.7", "", { "dependencies": { "@babel/traverse": "^7.29.7", "@babel/types": "^7.29.7" } }, "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g=="], + + "@babel/helper-module-transforms": ["@babel/helper-module-transforms@7.29.7", "", { "dependencies": { "@babel/helper-module-imports": "^7.29.7", "@babel/helper-validator-identifier": "^7.29.7", "@babel/traverse": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg=="], + + "@babel/helper-plugin-utils": ["@babel/helper-plugin-utils@7.29.7", "", {}, "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw=="], + + "@babel/helper-string-parser": ["@babel/helper-string-parser@7.29.7", "", {}, "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw=="], + + "@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.29.7", "", {}, "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg=="], + + "@babel/helper-validator-option": ["@babel/helper-validator-option@7.29.7", "", {}, "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw=="], + + "@babel/helpers": ["@babel/helpers@7.29.7", "", { "dependencies": { "@babel/template": "^7.29.7", "@babel/types": "^7.29.7" } }, "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg=="], + + "@babel/parser": ["@babel/parser@7.29.7", "", { "dependencies": { "@babel/types": "^7.29.7" }, "bin": "./bin/babel-parser.js" }, "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg=="], + + "@babel/plugin-transform-react-jsx-self": ["@babel/plugin-transform-react-jsx-self@7.29.7", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-TL0hMc9xzy86VD31nUiwzd5otRAcyEPcsegCxolO0PvcXuH1v0kECe/UIznYFihpkvU5wg/jk4v0TTEFfm53fw=="], + + "@babel/plugin-transform-react-jsx-source": ["@babel/plugin-transform-react-jsx-source@7.29.7", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-06IyK09H3wi4cGbhDBwp5gUGo0IKtnYa8tyTiephirPCK6fbobVGiXMMI5zLQ4aKEYP3wZ3ArU44o+8KMrSG/Q=="], + + "@babel/template": ["@babel/template@7.29.7", "", { "dependencies": { "@babel/code-frame": "^7.29.7", "@babel/parser": "^7.29.7", "@babel/types": "^7.29.7" } }, "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg=="], + + "@babel/traverse": ["@babel/traverse@7.29.7", "", { "dependencies": { "@babel/code-frame": "^7.29.7", "@babel/generator": "^7.29.7", "@babel/helper-globals": "^7.29.7", "@babel/parser": "^7.29.7", "@babel/template": "^7.29.7", "@babel/types": "^7.29.7", "debug": "^4.3.1" } }, "sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw=="], + + "@babel/types": ["@babel/types@7.29.7", "", { "dependencies": { "@babel/helper-string-parser": "^7.29.7", "@babel/helper-validator-identifier": "^7.29.7" } }, "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA=="], + + "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.28.1", "", { "os": "aix", "cpu": "ppc64" }, "sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ=="], + + "@esbuild/android-arm": ["@esbuild/android-arm@0.28.1", "", { "os": "android", "cpu": "arm" }, "sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ=="], + + "@esbuild/android-arm64": ["@esbuild/android-arm64@0.28.1", "", { "os": "android", "cpu": "arm64" }, "sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg=="], + + "@esbuild/android-x64": ["@esbuild/android-x64@0.28.1", "", { "os": "android", "cpu": "x64" }, "sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng=="], + + "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.28.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q=="], + + "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.28.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ=="], + + "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.28.1", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw=="], + + "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.28.1", "", { "os": "freebsd", "cpu": "x64" }, "sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ=="], + + "@esbuild/linux-arm": ["@esbuild/linux-arm@0.28.1", "", { "os": "linux", "cpu": "arm" }, "sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ=="], + + "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.28.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g=="], + + "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.28.1", "", { "os": "linux", "cpu": "ia32" }, "sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w=="], + + "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.28.1", "", { "os": "linux", "cpu": "none" }, "sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg=="], + + "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.28.1", "", { "os": "linux", "cpu": "none" }, "sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ=="], + + "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.28.1", "", { "os": "linux", "cpu": "ppc64" }, "sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ=="], + + "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.28.1", "", { "os": "linux", "cpu": "none" }, "sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ=="], + + "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.28.1", "", { "os": "linux", "cpu": "s390x" }, "sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag=="], + + "@esbuild/linux-x64": ["@esbuild/linux-x64@0.28.1", "", { "os": "linux", "cpu": "x64" }, "sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA=="], + + "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.28.1", "", { "os": "none", "cpu": "arm64" }, "sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw=="], + + "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.28.1", "", { "os": "none", "cpu": "x64" }, "sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg=="], + + "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.28.1", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q=="], + + "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.28.1", "", { "os": "openbsd", "cpu": "x64" }, "sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw=="], + + "@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.28.1", "", { "os": "none", "cpu": "arm64" }, "sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg=="], + + "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.28.1", "", { "os": "sunos", "cpu": "x64" }, "sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ=="], + + "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.28.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA=="], + + "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.28.1", "", { "os": "win32", "cpu": "ia32" }, "sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg=="], + + "@esbuild/win32-x64": ["@esbuild/win32-x64@0.28.1", "", { "os": "win32", "cpu": "x64" }, "sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A=="], + + "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="], + + "@jridgewell/remapping": ["@jridgewell/remapping@2.3.5", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ=="], + + "@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="], + + "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="], + + "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="], + + "@rolldown/pluginutils": ["@rolldown/pluginutils@1.0.0-beta.27", "", {}, "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA=="], + + "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.62.2", "", { "os": "android", "cpu": "arm" }, "sha512-6o7ZLZK+BeenkZCFNDXqpbjw9bD6nuWonvS/lwQJp7NoVVxm6p3qE7qQ5jGuBjiFsgvqjD8mZAU5oWxTmbOeOg=="], + + "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.62.2", "", { "os": "android", "cpu": "arm64" }, "sha512-BaH7BllCACHoH1LguOU56UItGfUWjujlO65kS9LAodViaN4bwIKd7oeW/ZHJ/4ljr/7MIiENnNy3HJ0zXv8Zkw=="], + + "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.62.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-v39RCCvj4He82I9sFmk+M1VZ0PLM9sfsLVikjfx2hYBNALhrrOR2D3JjQA6AhlaSOgcR+RzrKY7e1+bT6SUO/A=="], + + "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.62.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-yl0y2vq3S3lHeuXhEdss6TWfKW8vkujImO12tn4ZkG/4oghr09LvdYm2RElVjokTQiUvDUGXLGsYeLqUMCKpGA=="], + + "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.62.2", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-tT4pvt4qXD+vEoezupCWi+a1F0vvDiksiHc+PxRlYTOH1I6/X4id9jPxTP+Fg+545euaFT1jJVs4CEdHZAU1vw=="], + + "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.62.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-6nU5F2wCW+qvCBhTn1pdIU3bzsIoF7EUwsCDRxilWGprQR6yd508YnH9+OKFCwpfS8pjZqDUmnCAr7exax0XCg=="], + + "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.62.2", "", { "os": "linux", "cpu": "arm" }, "sha512-n1GJHPOvpIfhi3TmrCeh6S6URt9BFCt0KQE3qvexyGCTAKpR4Lg+eWvNZEqu7epxwus/8ElT3hacYEucm49SZg=="], + + "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.62.2", "", { "os": "linux", "cpu": "arm" }, "sha512-JqgflS8wEB+UXV/vS1RpRbifGBeN4D5lz8D8oOFbFZw4vedvdOgCFAjfBmIMdW3yL10XpQQ0Ambepw6MXrhOnA=="], + + "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.62.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-wnFJkogWvN4jm/hQRF2UBaeUmk20j5+DmHvoyWii2b8HJDyvz1MF2OU/6ynXt2KR63rbZLWkFpoytpdc/yBuSA=="], + + "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.62.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-HVu2bp0zhvJ8xHEV9+UUs7S90VadmBSY3LcIMvozbPo4AuMGDWlz3ymHLHZPX4hR67TKTt8Qp5PJ5RBg/i+RMQ=="], + + "@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.62.2", "", { "os": "linux", "cpu": "none" }, "sha512-mQqqAV8QaoSgr9I2fKDLY2BAVvmKjWoGiu/cSYQonsLvtqwEn1E4QYfnCOcp5zoEqNhsDYin1s6jx/VJmrxlZg=="], + + "@rollup/rollup-linux-loong64-musl": ["@rollup/rollup-linux-loong64-musl@4.62.2", "", { "os": "linux", "cpu": "none" }, "sha512-IxKLoxCQ2IWi6bT2akyDUBGsOImDKB+sPp4EsTmwFQ/fMwpCKm8uLSSgP/Kx/QYUgKis6SEZ5/Nlhup0DIA0PQ=="], + + "@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.62.2", "", { "os": "linux", "cpu": "ppc64" }, "sha512-Mk5ha2RQSgyFfmYYLkBpPnUk8D8FriBxesO1u9O75X0mHgXL1UQcH5Itl2lurWL2tj0RxV9b9tJgipac0hRY9A=="], + + "@rollup/rollup-linux-ppc64-musl": ["@rollup/rollup-linux-ppc64-musl@4.62.2", "", { "os": "linux", "cpu": "ppc64" }, "sha512-CjvEnqJL/0/TQ3TXX3OPIJ/kmBellrWd4heXUmHeJlTnmwjKpSJzoehLaL6Xk0ZnMHBu9dZuFADNOrtjF4v+2w=="], + + "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.62.2", "", { "os": "linux", "cpu": "none" }, "sha512-1SiZbzwdkaDURsew/tSOrooKiYy7EQGT6m8ufavAi9NEyQb/6VuIxFXAL1fqa4iZe3g4NbNk4P7J32z2tw5Mgg=="], + + "@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.62.2", "", { "os": "linux", "cpu": "none" }, "sha512-nQts12zJ3NQRoE6uYljOH89v7szzLDvG2JD/vsX+vGXU8w/At1GowTZ5/7qeFQ8m7L55rpR8Okugnuo5bgjy2Q=="], + + "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.62.2", "", { "os": "linux", "cpu": "s390x" }, "sha512-E9/ll019jhPIJgpzfZoIkBGhcz+kKNgVWYRY0zr9srBdPPFVpvOKW8VaJKUbeK+eZXyQF9ltME+Kk6affeaPgg=="], + + "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.62.2", "", { "os": "linux", "cpu": "x64" }, "sha512-5BqxR/pshjey51iliyzTD5Xi3EN0aLmQ2lZ3lvefVV9c82BvrLo2/6OT55iifpWBufs6kdwWbuOKS841DrmK9A=="], + + "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.62.2", "", { "os": "linux", "cpu": "x64" }, "sha512-uNN83XxQrRAh/w0/pmAfibcwyb6YWt4gP+dpnQKPVJshAloQ785ii8CT8ZCIxkGg9opVsvAlGhFitSm6D1Jjpg=="], + + "@rollup/rollup-openbsd-x64": ["@rollup/rollup-openbsd-x64@4.62.2", "", { "os": "openbsd", "cpu": "x64" }, "sha512-srjEIxSH3LRnJN6THczDHWQplqEMFiAJrTab0msUryh9kwNpkICf3Ea6q6MN/2cZwRFUNx5w+h6Hpi4QuHS6Zg=="], + + "@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.62.2", "", { "os": "none", "cpu": "arm64" }, "sha512-8hOJnxgbyObnCm5AlRA3A931xX19xq80RjVTKgJOvEKWqJruP/Uf12IbAOaDjjEXYRewwHLfmF0YRIdK3OwKWA=="], + + "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.62.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-mmF4AY1i0hG/bLWUctUq59gtmgaSIRa3cu/A3JFRp/sCNEme2bgDEiDS22P9FbnJB8NJNF4jPJiSP5RHQpUTDg=="], + + "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.62.2", "", { "os": "win32", "cpu": "ia32" }, "sha512-DZgkknc6jhHrk46V25vbAM0zZkyP0nSDkJB8/dRkLTxv470dOmWDqGoEJl/9A0dFfS7yE3REOwNDxpHwSLSt0Q=="], + + "@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.62.2", "", { "os": "win32", "cpu": "x64" }, "sha512-T6xr6ucWSFto+VGajA8YH26LdpHRuP4YLHEKAtCWvJDOlnmWcDZVCI2Jmjr+IFHDlt2zRaTAKE4tfjTaWLgJBg=="], + + "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.62.2", "", { "os": "win32", "cpu": "x64" }, "sha512-BfzEnDJOt9T8M989/lA37EcJgat01wLRnoi5dQf3QzOH7jzpqTAzdDbVfRljVr5r+jzKqpbHeyOfAaXxAd0PAA=="], + + "@tauri-apps/api": ["@tauri-apps/api@2.11.1", "", {}, "sha512-M2FPuYND2m+wh5hfW9ZpSdxMPdEJovPBWwoHJmwUpysTYNHaOkVFN419m/K0LIgjb/7KU2vBgsUepJWugQCvAA=="], + + "@tauri-apps/cli": ["@tauri-apps/cli@2.11.4", "", { "optionalDependencies": { "@tauri-apps/cli-darwin-arm64": "2.11.4", "@tauri-apps/cli-darwin-x64": "2.11.4", "@tauri-apps/cli-linux-arm-gnueabihf": "2.11.4", "@tauri-apps/cli-linux-arm64-gnu": "2.11.4", "@tauri-apps/cli-linux-arm64-musl": "2.11.4", "@tauri-apps/cli-linux-riscv64-gnu": "2.11.4", "@tauri-apps/cli-linux-x64-gnu": "2.11.4", "@tauri-apps/cli-linux-x64-musl": "2.11.4", "@tauri-apps/cli-win32-arm64-msvc": "2.11.4", "@tauri-apps/cli-win32-ia32-msvc": "2.11.4", "@tauri-apps/cli-win32-x64-msvc": "2.11.4" }, "bin": { "tauri": "tauri.js" } }, "sha512-R8xGtMpwyetawSqm9kYOuMmEqkhUbvcUy8n0aNXIxollKBLESUu5f4Fx+64hgASYm1H+jSWq6jCW6zqTnH6hqQ=="], + + "@tauri-apps/cli-darwin-arm64": ["@tauri-apps/cli-darwin-arm64@2.11.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-1ryOF3ZhpZ/nemHV5zVwBQBz9jDGKmKPvWPADOhc83ig0P4bMc2iER4NbC6r9sjeIZ6RVQ4g3RZIYvezhcl4TQ=="], + + "@tauri-apps/cli-darwin-x64": ["@tauri-apps/cli-darwin-x64@2.11.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-uFsGQAAfuyz1k/yGLmkWfkBlgKAqZfxqlHmLWx81QU27RJWfmbNHCIq8T8w1e+VClleIuZUjpHWfoE4E3DLo3A=="], + + "@tauri-apps/cli-linux-arm-gnueabihf": ["@tauri-apps/cli-linux-arm-gnueabihf@2.11.4", "", { "os": "linux", "cpu": "arm" }, "sha512-IaHZn5CdBL21oUmjiVOS1ctw6Ip1O0pjp70FwOWmYz1myWe0SY96ZIj2FYf7pT0m8bI2h/hrs5ZbEXXh44/MkQ=="], + + "@tauri-apps/cli-linux-arm64-gnu": ["@tauri-apps/cli-linux-arm64-gnu@2.11.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-N41/ukTRVe6XSuUTESuFdGeOW2i7k62tK+6gHK5Kd5/q5RPvvi19GaWAVPPb9u95HSGmTChSolBfzynUsssFaA=="], + + "@tauri-apps/cli-linux-arm64-musl": ["@tauri-apps/cli-linux-arm64-musl@2.11.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-v277UnT/fB64xAfSroL5N3Km3tLmvATWqJJw/wRI+g6o+HkeD0slyE7gOhNs1MbjE41R7bQOTxMVoL3aomUJmw=="], + + "@tauri-apps/cli-linux-riscv64-gnu": ["@tauri-apps/cli-linux-riscv64-gnu@2.11.4", "", { "os": "linux", "cpu": "none" }, "sha512-qqgNkQ2u1yZHxjhxsZaxUtRDW8dIqIYm33rx/mzwQv0SfY9x1B+iraj8vWeFiXjjSVVhEMepXSOts1TqPzvXNQ=="], + + "@tauri-apps/cli-linux-x64-gnu": ["@tauri-apps/cli-linux-x64-gnu@2.11.4", "", { "os": "linux", "cpu": "x64" }, "sha512-2VRNWl84FOH0m2giiDkO2h0QXlcMJeX+zJDpI5kDIQAx6s+geF3v48F4DXfJez4GS/FdoDGnPnw1C2iYGbQ7bQ=="], + + "@tauri-apps/cli-linux-x64-musl": ["@tauri-apps/cli-linux-x64-musl@2.11.4", "", { "os": "linux", "cpu": "x64" }, "sha512-o9GyhYor/nc7xarmwDE3ka2szuW3uuZzXjHWh64Q8YX5AtSgxdQkFWzrY4O8KiGtVNvFBI14H3Q49Qj5TOIP/A=="], + + "@tauri-apps/cli-win32-arm64-msvc": ["@tauri-apps/cli-win32-arm64-msvc@2.11.4", "", { "os": "win32", "cpu": "arm64" }, "sha512-ld5Ehb598m0VkYyylRPNeCFsBe/km0jxis6KgMpl3IGY6I/i1RwQXO05I1AsXUXO2WC6AvB/Lw4qTf/asiuEiQ=="], + + "@tauri-apps/cli-win32-ia32-msvc": ["@tauri-apps/cli-win32-ia32-msvc@2.11.4", "", { "os": "win32", "cpu": "ia32" }, "sha512-12Hxi0XX/H5VFxO/bGgHkFWhml9VMgEOu9CidjeCeTNQ1l6fpUlbiGgSP7CLI3PFtW9/FfbeHieZ+kyWK5H7CA=="], + + "@tauri-apps/cli-win32-x64-msvc": ["@tauri-apps/cli-win32-x64-msvc@2.11.4", "", { "os": "win32", "cpu": "x64" }, "sha512-+vDiqBIU5dMISg/wNvX3sF+ZHfgJGJ5T0AcO+EHNXV9GGAG+P5fzodlDXD3QdKCRgZxMoCm5PPvj3BqLNjBthw=="], + + "@types/babel__core": ["@types/babel__core@7.20.5", "", { "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", "@types/babel__generator": "*", "@types/babel__template": "*", "@types/babel__traverse": "*" } }, "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA=="], + + "@types/babel__generator": ["@types/babel__generator@7.27.0", "", { "dependencies": { "@babel/types": "^7.0.0" } }, "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg=="], + + "@types/babel__template": ["@types/babel__template@7.4.4", "", { "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" } }, "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A=="], + + "@types/babel__traverse": ["@types/babel__traverse@7.28.0", "", { "dependencies": { "@babel/types": "^7.28.2" } }, "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q=="], + + "@types/estree": ["@types/estree@1.0.9", "", {}, "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg=="], + + "@types/react": ["@types/react@19.2.17", "", { "dependencies": { "csstype": "^3.2.2" } }, "sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw=="], + + "@types/react-dom": ["@types/react-dom@19.2.3", "", { "peerDependencies": { "@types/react": "^19.2.0" } }, "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ=="], + + "@vitejs/plugin-react": ["@vitejs/plugin-react@4.7.0", "", { "dependencies": { "@babel/core": "^7.28.0", "@babel/plugin-transform-react-jsx-self": "^7.27.1", "@babel/plugin-transform-react-jsx-source": "^7.27.1", "@rolldown/pluginutils": "1.0.0-beta.27", "@types/babel__core": "^7.20.5", "react-refresh": "^0.17.0" }, "peerDependencies": { "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" } }, "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA=="], + + "baseline-browser-mapping": ["baseline-browser-mapping@2.10.43", "", { "bin": { "baseline-browser-mapping": "dist/cli.cjs" } }, "sha512-AjYpR78kDWAY3Efj+cDTFH9t9SCoL7OoTp1BOb0mQV7S+6CiLwnWM3FyxhJtdPufDFKzmCSFoUncKjWgJEZTCQ=="], + + "browserslist": ["browserslist@4.28.6", "", { "dependencies": { "baseline-browser-mapping": "^2.10.42", "caniuse-lite": "^1.0.30001803", "electron-to-chromium": "^1.5.389", "node-releases": "^2.0.51", "update-browserslist-db": "^1.2.3" }, "bin": { "browserslist": "cli.js" } }, "sha512-FQBYNK15VMslhLHpA7+n+n1GOlF1kId2xcCg7/j95f24AOF6VDYMNH4mFxF7KuaTdv627faazpOAjFzMrfJOUw=="], + + "caniuse-lite": ["caniuse-lite@1.0.30001805", "", {}, "sha512-52noaS3DubycKSXaU30TwPGIp+POyQSUVa5jBEq3vkRkY0kjyb3LQgvhU6WGyCcyXqVLWO0Cw0Q6BSdD0kUfVA=="], + + "convert-source-map": ["convert-source-map@2.0.0", "", {}, "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="], + + "csstype": ["csstype@3.2.3", "", {}, "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ=="], + + "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" }, "peerDependencies": { "supports-color": "*" }, "optionalPeers": ["supports-color"] }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + + "electron-to-chromium": ["electron-to-chromium@1.5.392", "", {}, "sha512-1yQq3VQCZRwsnYc67Oc+1fge6Lwtn0hzi6zmEVkB61Zx21kTbwJAW4dFLadl5Rc1tKhG/kSpYXnfiAhu0f0a1g=="], + + "esbuild": ["esbuild@0.28.1", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.28.1", "@esbuild/android-arm": "0.28.1", "@esbuild/android-arm64": "0.28.1", "@esbuild/android-x64": "0.28.1", "@esbuild/darwin-arm64": "0.28.1", "@esbuild/darwin-x64": "0.28.1", "@esbuild/freebsd-arm64": "0.28.1", "@esbuild/freebsd-x64": "0.28.1", "@esbuild/linux-arm": "0.28.1", "@esbuild/linux-arm64": "0.28.1", "@esbuild/linux-ia32": "0.28.1", "@esbuild/linux-loong64": "0.28.1", "@esbuild/linux-mips64el": "0.28.1", "@esbuild/linux-ppc64": "0.28.1", "@esbuild/linux-riscv64": "0.28.1", "@esbuild/linux-s390x": "0.28.1", "@esbuild/linux-x64": "0.28.1", "@esbuild/netbsd-arm64": "0.28.1", "@esbuild/netbsd-x64": "0.28.1", "@esbuild/openbsd-arm64": "0.28.1", "@esbuild/openbsd-x64": "0.28.1", "@esbuild/openharmony-arm64": "0.28.1", "@esbuild/sunos-x64": "0.28.1", "@esbuild/win32-arm64": "0.28.1", "@esbuild/win32-ia32": "0.28.1", "@esbuild/win32-x64": "0.28.1" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw=="], + + "escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="], + + "fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="], + + "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], + + "gensync": ["gensync@1.0.0-beta.2", "", {}, "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="], + + "js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], + + "jsesc": ["jsesc@3.1.0", "", { "bin": { "jsesc": "bin/jsesc" } }, "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA=="], + + "json5": ["json5@2.2.3", "", { "bin": { "json5": "lib/cli.js" } }, "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="], + + "lru-cache": ["lru-cache@5.1.1", "", { "dependencies": { "yallist": "^3.0.2" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="], + + "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], + + "nanoid": ["nanoid@3.3.16", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q=="], + + "node-releases": ["node-releases@2.0.51", "", {}, "sha512-wRNIrw4DmVLKQlbgOMdkMx27Wrpzes2hh5Jtbi2bjPd+4wJstWIqP5A+lscnqbm0xxmT5Bpg8Lec5ItEBwx6BQ=="], + + "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], + + "picomatch": ["picomatch@4.0.5", "", {}, "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A=="], + + "postcss": ["postcss@8.5.19", "", { "dependencies": { "nanoid": "^3.3.12", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-Mz8SaolMd8nB+G13WkORcxQKHZ/NE4xXevtkJHVuG+guo9/wYKlIMTKAqGdEmYOXR2ijPjTYNHssizdaVSUNdQ=="], + + "react": ["react@19.2.7", "", {}, "sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ=="], + + "react-dom": ["react-dom@19.2.7", "", { "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { "react": "^19.2.7" } }, "sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ=="], + + "react-refresh": ["react-refresh@0.17.0", "", {}, "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ=="], + + "rollup": ["rollup@4.62.2", "", { "dependencies": { "@types/estree": "1.0.9" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.62.2", "@rollup/rollup-android-arm64": "4.62.2", "@rollup/rollup-darwin-arm64": "4.62.2", "@rollup/rollup-darwin-x64": "4.62.2", "@rollup/rollup-freebsd-arm64": "4.62.2", "@rollup/rollup-freebsd-x64": "4.62.2", "@rollup/rollup-linux-arm-gnueabihf": "4.62.2", "@rollup/rollup-linux-arm-musleabihf": "4.62.2", "@rollup/rollup-linux-arm64-gnu": "4.62.2", "@rollup/rollup-linux-arm64-musl": "4.62.2", "@rollup/rollup-linux-loong64-gnu": "4.62.2", "@rollup/rollup-linux-loong64-musl": "4.62.2", "@rollup/rollup-linux-ppc64-gnu": "4.62.2", "@rollup/rollup-linux-ppc64-musl": "4.62.2", "@rollup/rollup-linux-riscv64-gnu": "4.62.2", "@rollup/rollup-linux-riscv64-musl": "4.62.2", "@rollup/rollup-linux-s390x-gnu": "4.62.2", "@rollup/rollup-linux-x64-gnu": "4.62.2", "@rollup/rollup-linux-x64-musl": "4.62.2", "@rollup/rollup-openbsd-x64": "4.62.2", "@rollup/rollup-openharmony-arm64": "4.62.2", "@rollup/rollup-win32-arm64-msvc": "4.62.2", "@rollup/rollup-win32-ia32-msvc": "4.62.2", "@rollup/rollup-win32-x64-gnu": "4.62.2", "@rollup/rollup-win32-x64-msvc": "4.62.2", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-RFnrW4lhXA3s3eqHDZvN654g8OTjzRfqpIRJYczCGB6HzphckVAi/Qh4tbPUbRuDi7s1Llv8g/NspLkttY3gTA=="], + + "scheduler": ["scheduler@0.27.0", "", {}, "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q=="], + + "semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + + "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], + + "tinyglobby": ["tinyglobby@0.2.17", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.4" } }, "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g=="], + + "typescript": ["typescript@5.8.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ=="], + + "update-browserslist-db": ["update-browserslist-db@1.2.3", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w=="], + + "vite": ["vite@7.3.6", "", { "dependencies": { "esbuild": "^0.27.0 || ^0.28.0", "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", "rollup": "^4.43.0", "tinyglobby": "^0.2.15" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "jiti": ">=1.21.0", "less": "^4.0.0", "lightningcss": "^1.21.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-4XP60spRGjSZFf1qYH+dJIkK2znL3zQfl9KkOV9MkkRR/3Dls0dxaBsQPTloEc5BLXWPL9vsOxopxyKoMmDueg=="], + + "yallist": ["yallist@3.1.1", "", {}, "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="], + } +} diff --git a/index.html b/index.html new file mode 100644 index 0000000..b15c69d --- /dev/null +++ b/index.html @@ -0,0 +1,14 @@ + + + + + + + Synapsis + + + +
+ + + diff --git a/package.json b/package.json new file mode 100644 index 0000000..4c83077 --- /dev/null +++ b/package.json @@ -0,0 +1,25 @@ +{ + "name": "synapsis-desktop", + "private": true, + "version": "0.1.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview", + "tauri": "tauri" + }, + "dependencies": { + "react": "^19.1.0", + "react-dom": "^19.1.0", + "@tauri-apps/api": "^2" + }, + "devDependencies": { + "@types/react": "^19.1.8", + "@types/react-dom": "^19.1.6", + "@vitejs/plugin-react": "^4.6.0", + "typescript": "~5.8.3", + "vite": "^7.0.4", + "@tauri-apps/cli": "^2" + } +} diff --git a/public/logotext.svg b/public/logotext.svg new file mode 100644 index 0000000..d01bcf2 --- /dev/null +++ b/public/logotext.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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..af8c2b5 --- /dev/null +++ b/src-tauri/Cargo.lock @@ -0,0 +1,4992 @@ +# 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.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e76a019e91224d279006ff972f1e984179a6e9feb050adba6ce8274aef23195" +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.103" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a4385e2e34eb35d6b3efe798b9eb88096925d87726c0798709bf56d9ed84af3" + +[[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.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" + +[[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 = "bit-set" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b588b76d00fde79687d7646a9b5bdf3cc0f655e0bbd080335a95d7e96f3587da" +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 = "brotli" +version = "8.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cc91aac060a7a1e25823bdccbfb6af1875b88f17c6daac97894eed8207166b3" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "5.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a32acac15fe1967bc3986b2a6347dffc965602354ea6f450ad07e8bfd253583" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + +[[package]] +name = "bs58" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "bumpalo" +version = "3.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" + +[[package]] +name = "bytemuck" +version = "1.25.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6aedf8ae72766347502cf3cb4f41cf5e9cc37d28bee90f1fdaaae15f9cf9424" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" +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.13.1", + "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.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f2d30e4173c4026932d51d31d6b0613b1fd3014bf3f9f8943d4ba139c437ba0" +dependencies = [ + "serde_core", +] + +[[package]] +name = "cargo-platform" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_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.67" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17dd265a7d0f31ef544e1b20e03add05d3b45b491b633b10d67145d2acc1a38" +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 = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + +[[package]] +name = "chacha20" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d524456ba66e72eb8b115ff89e01e497f8e6d11d78b70b1aa13c0fbd97540a81" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.0", + "rand_core", +] + +[[package]] +name = "chrono" +version = "0.4.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aa79e62e7697b8e29b513a68abacf485adcd1fe8284a4316c5ae868e6633327" +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 = "cookie" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ddef33a339a91ea89fb53151bd0a4689cfce27055c291dfa69945475d22c747" +dependencies = [ + "percent-encoding", + "time", + "version_check", +] + +[[package]] +name = "cookie_store" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15b2c103cf610ec6cae3da84a766285b42fd16aad564758459e6ecf128c75206" +dependencies = [ + "cookie", + "document-features", + "idna", + "log", + "publicsuffix", + "serde", + "serde_derive", + "serde_json", + "time", + "url", +] + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" +dependencies = [ + "core-foundation-sys", + "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.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "064badf302c3194842cf2c5d61f56cc88e54a759313879cdf03abdd27d0c3b97" +dependencies = [ + "bitflags 2.13.1", + "core-foundation 0.10.1", + "core-graphics-types", + "foreign-types 0.5.0", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" +dependencies = [ + "bitflags 2.13.1", + "core-foundation 0.10.1", + "libc", +] + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[package]] +name = "cpufeatures" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d85363c37faeca707aef026efa9f3b34d077bce547e48f770770625c6013679e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61803da095bee82a81bb1a452ecc25d3b2f1416d1897eb86430c6159ef717c17" + +[[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.36.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dae61cf9c0abb83bd659dab65b7e4e38d8236824c85f0f804f173567bda257d2" +dependencies = [ + "cssparser-macros", + "dtoa-short", + "itoa", + "phf", + "smallvec", +] + +[[package]] +name = "cssparser-macros" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" +dependencies = [ + "quote", + "syn 2.0.119", +] + +[[package]] +name = "ctor" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "352d39c2f7bef1d6ad73db6f5160efcaed66d94ef8c6c573a8410c00bf909a98" +dependencies = [ + "ctor-proc-macro", + "dtor", +] + +[[package]] +name = "ctor-proc-macro" +version = "0.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52560adf09603e58c9a7ee1fe1dcb95a16927b17c127f0ac02d6e768a0e25bc1" + +[[package]] +name = "darling" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.119", +] + +[[package]] +name = "darling_macro" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "dbus" +version = "0.9.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ab69f03cc8c4340c9c8e315114e1658e6775a9b16a04357973aa21cec22b32e" +dependencies = [ + "libc", + "libdbus-sys", + "windows-sys 0.61.2", +] + +[[package]] +name = "deranged" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" +dependencies = [ + "serde_core", +] + +[[package]] +name = "derive_more" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d751e9e49156b02b44f9c1815bcb94b984cdcc4396ecc32521c739452808b134" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb" +dependencies = [ + "proc-macro2", + "quote", + "rustc_version", + "syn 2.0.119", +] + +[[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 = "dispatch2" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" +dependencies = [ + "bitflags 2.13.1", + "block2", + "libc", + "objc2", +] + +[[package]] +name = "displaydoc" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ac70aa55017e108007fbaf5aa0f54b021c98f92ff8af59d42eda9da96e3dd4f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[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.119", +] + +[[package]] +name = "document-features" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4b8a88685455ed29a21542a33abd9cb6510b6b129abadabdcef0f4c55bc8f61" +dependencies = [ + "litrs", +] + +[[package]] +name = "dom_query" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "521e380c0c8afb8d9a1e83a1822ee03556fc3e3e7dbc1fd30be14e37f9cb3f89" +dependencies = [ + "bit-set", + "cssparser", + "foldhash", + "html5ever", + "precomputed-hash", + "selectors", + "tendril", +] + +[[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 = "dtor" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1057d6c64987086ff8ed0fd3fbf377a6b7d205cc7715868cd401705f715cbe4" +dependencies = [ + "dtor-proc-macro", +] + +[[package]] +name = "dtor-proc-macro" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f678cf4a922c215c63e0de95eb1ff08a958a81d47e485cf9da1e27bf6305cfa5" + +[[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.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbfdaacccebec3b28e4866b8973543c7647797db5ada1bdab552e48fe665fbbd" +dependencies = [ + "cc", + "memchr", + "rustc_version", + "toml 1.1.3+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 = "encoding_rs" +version = "0.8.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "erased-serde" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2add8a07dd6a8d93ff627029c51de145e12686fbc36ecb298ac22e74cf02dec" +dependencies = [ + "serde", + "serde_core", + "typeid", +] + +[[package]] +name = "errno" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + +[[package]] +name = "fastrand" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6" + +[[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.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared 0.1.1", +] + +[[package]] +name = "foreign-types" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" +dependencies = [ + "foreign-types-macros", + "foreign-types-shared 0.3.1", +] + +[[package]] +name = "foreign-types-macros" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "foreign-types-shared" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" + +[[package]] +name = "form_urlencoded" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "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-macro" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[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 = "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.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "wasi", + "wasm-bindgen", +] + +[[package]] +name = "getrandom" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" +dependencies = [ + "cfg-if", + "libc", + "r-efi 5.3.0", + "wasip2", +] + +[[package]] +name = "getrandom" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "r-efi 6.0.0", + "rand_core", + "wasm-bindgen", +] + +[[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.13.1", + "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.119", +] + +[[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.119", +] + +[[package]] +name = "h2" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6cb093c84e8bd9b188d4c4a8cb6579fc016968d14c99882163cd3ff402a4f155" +dependencies = [ + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http", + "indexmap 2.14.0", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" + +[[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 = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "html5ever" +version = "0.38.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1054432bae2f14e0061e33d23402fbaa67a921d319d56adc6bcf887ddad1cbc2" +dependencies = [ + "log", + "markup5ever", +] + +[[package]] +name = "http" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6970f50e31d6fc17d3fa27329444bfa74e196cf62e95052a3f6fee181dba6425" +dependencies = [ + "bytes", + "itoa", +] + +[[package]] +name = "http-body" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca2a8f2913ee65f60facd6a5905613afaa448497a0230cc41ce022d93290bc2c" +dependencies = [ + "bytes", + "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9f41fd6a08e4d4ec69df65976da761afd5ad5e58a9d4acb46bd1c953a9e3ff2" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "hyper" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55281c53a1894c864990125767da440a4e630446785086f52523b20033b74498" +dependencies = [ + "atomic-waker", + "bytes", + "futures-channel", + "futures-core", + "h2", + "http", + "http-body", + "httparse", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.27.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ca68d021ef39cf6463ab54c1d0f5daf03377b70561305bb89a8f83aab66e0f" +dependencies = [ + "http", + "hyper", + "hyper-util", + "rustls", + "tokio", + "tokio-rustls", + "tower-service", + "webpki-roots", +] + +[[package]] +name = "hyper-tls" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" +dependencies = [ + "bytes", + "http-body-util", + "hyper", + "hyper-util", + "native-tls", + "tokio", + "tokio-native-tls", + "tower-service", +] + +[[package]] +name = "hyper-util" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-channel", + "futures-util", + "http", + "http-body", + "hyper", + "ipnet", + "libc", + "percent-encoding", + "pin-project-lite", + "socket2", + "system-configuration", + "tokio", + "tower-service", + "tracing", + "windows-registry", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "log", + "wasm-bindgen", + "windows-core 0.62.2", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "ico" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e795dff5605e0f04bff85ca41b51a96b83e80b281e96231bcaaf1ac35103371" +dependencies = [ + "byteorder", + "png 0.17.16", +] + +[[package]] +name = "icu_collections" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2984d1cd16c883d7935b9e07e44071dca8d917fd52ecc02c04d5fa0b5a3f191c" +dependencies = [ + "displaydoc", + "potential_utf", + "utf8_iter", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locale_core" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92219b62b3e2b4d88ac5119f8904c10f8f61bf7e95b640d25ba3075e6cac2c29" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_normalizer" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c56e5ee99d6e3d33bd91c5d85458b6005a22140021cc324cea84dd0e72cff3b4" +dependencies = [ + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da3be0ae77ea334f4da67c12f149704f19f81d1adf7c51cf482943e84a2bad38" + +[[package]] +name = "icu_properties" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bee3b67d0ea5c2cca5003417989af8996f8604e34fb9ddf96208a033901e70de" +dependencies = [ + "icu_collections", + "icu_locale_core", + "icu_properties_data", + "icu_provider", + "zerotrie", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e2bbb201e0c04f7b4b3e14382af113e17ba4f63e2c9d2ee626b720cbce54a14" + +[[package]] +name = "icu_provider" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "139c4cf31c8b5f33d7e199446eff9c1e02decfc2f0eec2c8d71f65befa45b421" +dependencies = [ + "displaydoc", + "icu_locale_core", + "writeable", + "yoke", + "zerofrom", + "zerotrie", + "zerovec", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb68373c0d6620ef8105e855e7745e18b0d00d3bdb07fb532e434244cdb9a714" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" +dependencies = [ + "equivalent", + "hashbrown 0.17.1", + "serde", + "serde_core", +] + +[[package]] +name = "infer" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a588916bfdfd92e71cacef98a63d9b1f0d74d6599980d11894290e7ddefffcf7" +dependencies = [ + "cfb", +] + +[[package]] +name = "ipnet" +version = "2.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" + +[[package]] +name = "itoa" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" + +[[package]] +name = "javascriptcore-rs" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca5671e9ffce8ffba57afc24070e906da7fc4b1ba66f2cabebf61bf2ea257fcc" +dependencies = [ + "bitflags 1.3.2", + "glib", + "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 0.3.1", + "log", + "thiserror 1.0.69", + "walkdir", + "windows-sys 0.45.0", +] + +[[package]] +name = "jni-sys" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41a652e1f9b6e0275df1f15b32661cf0d4b78d4d87ddec5e0c3c20f097433258" +dependencies = [ + "jni-sys 0.4.1", +] + +[[package]] +name = "jni-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2" +dependencies = [ + "jni-sys-macros", +] + +[[package]] +name = "jni-sys-macros" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" +dependencies = [ + "quote", + "syn 2.0.119", +] + +[[package]] +name = "js-sys" +version = "0.3.103" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53b44bfcdb3f8d5837a46dae1ca9660a837176eee74a28b229bc626816589102" +dependencies = [ + "cfg-if", + "futures-util", + "wasm-bindgen", +] + +[[package]] +name = "json-patch" +version = "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.13.1", + "serde", + "unicode-segmentation", +] + +[[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.186" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" + +[[package]] +name = "libdbus-sys" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "328c4789d42200f1eeec05bd86c9c13c7f091d2ba9a6ea35acdf51f31bc0f043" +dependencies = [ + "pkg-config", +] + +[[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.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c943259e342f1e06ff2da7a83eabdfe7f92ce10262688dbf1895ff0b3e6e4652" +dependencies = [ + "libc", +] + +[[package]] +name = "linux-raw-sys" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" + +[[package]] +name = "litemap" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0" + +[[package]] +name = "litrs" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092" + +[[package]] +name = "lock_api" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" +dependencies = [ + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ceec5bc11778974d1bcb055b18002eba7f4b3518b6a0081b3af5f21666da9ad" + +[[package]] +name = "lru-slab" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" + +[[package]] +name = "markup5ever" +version = "0.38.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8983d30f2915feeaaab2d6babdd6bc7e9ed1a00b66b5e6d74df19aa9c0e91862" +dependencies = [ + "log", + "tendril", + "web_atoms", +] + +[[package]] +name = "memchr" +version = "2.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" + +[[package]] +name = "memoffset" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" +dependencies = [ + "autocfg", +] + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "miniz_oxide" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" +dependencies = [ + "adler2", + "simd-adler32", +] + +[[package]] +name = "mio" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30d65c71f1ce40ab09135ce117d742b9f8a19ff91a41a8b57ed50bc2de59c427" +dependencies = [ + "libc", + "wasi", + "windows-sys 0.61.2", +] + +[[package]] +name = "muda" +version = "0.19.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dd04e60bc0b07438a6771710ee1698f98f6ebbc7f89b61264af1563b8aeb878" +dependencies = [ + "crossbeam-channel", + "dpi", + "gtk", + "keyboard-types", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", + "once_cell", + "png 0.18.1", + "serde", + "thiserror 2.0.18", + "windows-sys 0.61.2", +] + +[[package]] +name = "native-tls" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "465500e14ea162429d264d44189adc38b199b62b1c21eea9f69e4b73cb03bbf2" +dependencies = [ + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "ndk" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" +dependencies = [ + "bitflags 2.13.1", + "jni-sys 0.3.1", + "log", + "ndk-sys", + "num_enum", + "raw-window-handle", + "thiserror 1.0.69", +] + +[[package]] +name = "ndk-sys" +version = "0.6.0+11769913" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" +dependencies = [ + "jni-sys 0.3.1", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + +[[package]] +name = "num-conv" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441" + +[[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.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26" +dependencies = [ + "num_enum_derive", + "rustversion", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" +dependencies = [ + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "objc2" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a12a8ed07aefc768292f076dc3ac8c48f3781c8f2d5851dd3d98950e8c5a89f" +dependencies = [ + "objc2-encode", + "objc2-exception-helper", +] + +[[package]] +name = "objc2-app-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c" +dependencies = [ + "bitflags 2.13.1", + "block2", + "objc2", + "objc2-core-foundation", + "objc2-foundation", +] + +[[package]] +name = "objc2-cloud-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73ad74d880bb43877038da939b7427bba67e9dd42004a18b809ba7d87cee241c" +dependencies = [ + "bitflags 2.13.1", + "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 = [ + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-foundation" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" +dependencies = [ + "bitflags 2.13.1", + "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.13.1", + "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-location" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca347214e24bc973fc025fd0d36ebb179ff30536ed1f80252706db19ee452009" +dependencies = [ + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-text" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cde0dfb48d25d2b4862161a4d5fcc0e3c24367869ad306b0c9ec0073bfed92d" +dependencies = [ + "bitflags 2.13.1", + "objc2", + "objc2-core-foundation", + "objc2-core-graphics", +] + +[[package]] +name = "objc2-encode" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" + +[[package]] +name = "objc2-exception-helper" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7a1c5fbb72d7735b076bb47b578523aedc40f3c439bea6dfd595c089d79d98a" +dependencies = [ + "cc", +] + +[[package]] +name = "objc2-foundation" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" +dependencies = [ + "bitflags 2.13.1", + "block2", + "objc2", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-io-surface" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180788110936d59bab6bd83b6060ffdfffb3b922ba1396b312ae795e1de9d81d" +dependencies = [ + "bitflags 2.13.1", + "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.13.1", + "objc2", + "objc2-core-foundation", + "objc2-foundation", +] + +[[package]] +name = "objc2-ui-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d87d638e33c06f577498cbcc50491496a3ed4246998a7fbba7ccb98b1e7eab22" +dependencies = [ + "bitflags 2.13.1", + "block2", + "objc2", + "objc2-cloud-kit", + "objc2-core-data", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-core-image", + "objc2-core-location", + "objc2-core-text", + "objc2-foundation", + "objc2-quartz-core", + "objc2-user-notifications", +] + +[[package]] +name = "objc2-user-notifications" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9df9128cbbfef73cda168416ccf7f837b62737d748333bfe9ab71c245d76613e" +dependencies = [ + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-web-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2e5aaab980c433cf470df9d7af96a7b46a9d892d521a2cbbb2f8a4c16751e7f" +dependencies = [ + "bitflags 2.13.1", + "block2", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", +] + +[[package]] +name = "once_cell" +version = "1.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" + +[[package]] +name = "openssl" +version = "0.10.81" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77823a27f0babb03091cb9ed9ef80af3b39dbc82f97e8fa530374b7dafd87a45" +dependencies = [ + "bitflags 2.13.1", + "cfg-if", + "foreign-types 0.3.2", + "libc", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "openssl-probe" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" + +[[package]] +name = "openssl-sys" +version = "0.9.117" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b47e7e6bb2c38cd930d25a23b40fa52e068c10e85f3e03a7f5ba5aaca5713695" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "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_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 = "percent-encoding" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" + +[[package]] +name = "phf" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" +dependencies = [ + "phf_macros", + "phf_shared", + "serde", +] + +[[package]] +name = "phf_codegen" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49aa7f9d80421bca176ca8dbfebe668cc7a2684708594ec9f3c0db0805d5d6e1" +dependencies = [ + "phf_generator", + "phf_shared", +] + +[[package]] +name = "phf_generator" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737" +dependencies = [ + "fastrand", + "phf_shared", +] + +[[package]] +name = "phf_macros" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef" +dependencies = [ + "phf_generator", + "phf_shared", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "phf_shared" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" + +[[package]] +name = "pkg-config" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e" + +[[package]] +name = "plist" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da1d65da6dd5d1e44199ac0f58712d241c0f439f80adea8924d832384087f85" +dependencies = [ + "base64 0.22.1", + "indexmap 2.14.0", + "quick-xml", + "serde", + "time", +] + +[[package]] +name = "png" +version = "0.17.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526" +dependencies = [ + "bitflags 1.3.2", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide", +] + +[[package]] +name = "png" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60769b8b31b2a9f263dae2776c37b1b28ae246943cf719eb6946a1db05128a61" +dependencies = [ + "bitflags 2.13.1", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide", +] + +[[package]] +name = "potential_utf" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0103b1cef7ec0cf76490e969665504990193874ea05c85ff9bab8b911d0a0564" +dependencies = [ + "zerovec", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit 0.19.15", +] + +[[package]] +name = "proc-macro-crate" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24" +dependencies = [ + "toml_datetime 0.6.3", + "toml_edit 0.20.2", +] + +[[package]] +name = "proc-macro-crate" +version = "3.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" +dependencies = [ + "toml_edit 0.25.13+spec-1.1.0", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.106" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "psl-types" +version = "2.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33cb294fe86a74cbcf50d4445b37da762029549ebeea341421c7c70370f86cac" + +[[package]] +name = "publicsuffix" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f42ea446cab60335f76979ec15e12619a2165b5ae2c12166bef27d283a9fadf" +dependencies = [ + "idna", + "psl-types", +] + +[[package]] +name = "quick-xml" +version = "0.41.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e660451e55124f798a69a5af3f49ccfbefbd41910eefd25caf2393e1f3473ec1" +dependencies = [ + "memchr", +] + +[[package]] +name = "quinn" +version = "0.11.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c1a41e437b6bbd489372cd4971de128e85c855f56c57f283d20ff016cf7c0a8" +dependencies = [ + "bytes", + "cfg_aliases", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash", + "rustls", + "socket2", + "thiserror 2.0.18", + "tokio", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-proto" +version = "0.11.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f4bfc015262b9df63c8845072ce59068853ff5872180c2ce2f13038b970e560" +dependencies = [ + "bytes", + "getrandom 0.4.3", + "lru-slab", + "rand", + "rand_pcg", + "ring", + "rustc-hash", + "rustls", + "rustls-pki-types", + "slab", + "thiserror 2.0.18", + "tinyvec", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-udp" +version = "0.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35a133f956daabe89a61a685c2649f13d82d5aa4bd5d12d1277e1072a21c0694" +dependencies = [ + "cfg_aliases", + "libc", + "once_cell", + "socket2", + "tracing", + "windows-sys 0.61.2", +] + +[[package]] +name = "quote" +version = "1.0.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfbc457d0c7a0759a614551b11a6409e5951f6c7537be1f1b7682b9ae9230368" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + +[[package]] +name = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + +[[package]] +name = "rand" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7f5fa3a058cd35567ef9bfa5e75732bee0f9e4c55fa90477bef2dfcdbc4be80" +dependencies = [ + "chacha20", + "getrandom 0.4.3", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" + +[[package]] +name = "rand_pcg" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "caa0f4137e1c0a72f4c651489402276c8e8e1cf081f3b0ba156d2cbeef09e86a" +dependencies = [ + "rand_core", +] + +[[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.13.1", +] + +[[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.119", +] + +[[package]] +name = "regex" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fcfdb36bda0c880c5931cdc7a2bcdc8ba4556847b9d912bca70bc94708711ad" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" + +[[package]] +name = "reqwest" +version = "0.12.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" +dependencies = [ + "base64 0.22.1", + "bytes", + "cookie", + "cookie_store", + "encoding_rs", + "futures-core", + "h2", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-rustls", + "hyper-tls", + "hyper-util", + "js-sys", + "log", + "mime", + "native-tls", + "percent-encoding", + "pin-project-lite", + "quinn", + "rustls", + "rustls-pki-types", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "tokio", + "tokio-native-tls", + "tokio-rustls", + "tower", + "tower-http", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "webpki-roots", +] + +[[package]] +name = "reqwest" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "219c5811de6525e5416c7d5d53bb656d3afdbc6c5af816e0802bcfa42dbdc1c3" +dependencies = [ + "base64 0.22.1", + "bytes", + "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 = "ring" +version = "0.17.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" +dependencies = [ + "cc", + "cfg-if", + "getrandom 0.2.17", + "libc", + "untrusted", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustc-hash" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b1e7f9a428571be2dc5bc0505c13fb6bf936822b894ec87abf8a08a4e51742d" + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" +dependencies = [ + "bitflags 2.13.1", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.61.2", +] + +[[package]] +name = "rustls" +version = "0.23.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c54fcab019b409d04215d3a17cb438fd7fbf192ee61461f20f4fe18704bc138" +dependencies = [ + "once_cell", + "ring", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls-pki-types" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "764899a24af3980067ee14bc143654f297b22eaebfe3c7b6b211920a5a59b046" +dependencies = [ + "web-time", + "zeroize", +] + +[[package]] +name = "rustls-webpki" +version = "0.103.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e" +dependencies = [ + "ring", + "rustls-pki-types", + "untrusted", +] + +[[package]] +name = "rustversion" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f" + +[[package]] +name = "ryu" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "schannel" +version = "0.1.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91c1b7e4904c873ef0710c1f407dde2e6287de2bebc1bbbf7d430bb7cbffd939" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "schemars" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" +dependencies = [ + "dyn-clone", + "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.119", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "security-framework" +version = "3.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" +dependencies = [ + "bitflags 2.13.1", + "core-foundation 0.10.1", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce2691df843ecc5d231c0b14ece2acc3efb62c0a398c7e1d875f3983ce020e3" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "selectors" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5d9c0c92a92d33f08817311cf3f2c29a3538a8240e94a6a3c622ce652d7e00c" +dependencies = [ + "bitflags 2.13.1", + "cssparser", + "derive_more", + "log", + "new_debug_unreachable", + "phf", + "phf_codegen", + "precomputed-hash", + "rustc-hash", + "servo_arc", + "smallvec", +] + +[[package]] +name = "semver" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" +dependencies = [ + "serde", + "serde_core", +] + +[[package]] +name = "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.119", +] + +[[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.119", +] + +[[package]] +name = "serde_json" +version = "1.0.150" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "serde_repr" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "serde_spanned" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_spanned" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26" +dependencies = [ + "serde_core", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_with" +version = "3.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76a5c54c7310e7b8b9577c286d7e399ddd876c3e12b3ed917a8aabc4b96e9e8c" +dependencies = [ + "base64 0.22.1", + "bs58", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.14.0", + "schemars 0.9.0", + "schemars 1.2.1", + "serde_core", + "serde_json", + "serde_with_macros", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "3.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84d57bc0c8b9a17920c178daa6bb924850d54a9c97ab45194bb8c17ad66bb660" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[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.119", +] + +[[package]] +name = "servo_arc" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "170fb83ab34de17dc69aa7c67482b22218ddb85da56546f9bd6b929e32a05930" +dependencies = [ + "stable_deref_trait", +] + +[[package]] +name = "sha2" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +dependencies = [ + "cfg-if", + "cpufeatures 0.2.17", + "digest", +] + +[[package]] +name = "shlex" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" + +[[package]] +name = "simd-adler32" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea" + +[[package]] +name = "siphasher" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ee5873ec9cce0195efcb7a4e9507a04cd49aec9c83d0389df45b1ef7ba2e649" + +[[package]] +name = "slab" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" + +[[package]] +name = "smallvec" +version = "1.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90" + +[[package]] +name = "socket2" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3d1e2c7f27f8d4cb10542a02c49005dbd6e93095799d6f3be745fae9f8fedd4" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + +[[package]] +name = "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.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a18596f8c785a729f2819c0f6a7eae6ebeebdfffbfe4214ae6b087f690e31901" +dependencies = [ + "new_debug_unreachable", + "parking_lot", + "phf_shared", + "precomputed-hash", +] + +[[package]] +name = "string_cache_codegen" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "585635e46db231059f76c5849798146164652513eb9e8ab2685939dd90f29b69" +dependencies = [ + "phf_generator", + "phf_shared", + "proc-macro2", + "quote", +] + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "swift-rs" +version = "1.0.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", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.119" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "synapsis-desktop" +version = "0.1.0" +dependencies = [ + "reqwest 0.12.28", + "serde", + "serde_json", + "tauri", + "tauri-build", +] + +[[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.119", +] + +[[package]] +name = "system-configuration" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a13f3d0daba03132c0aa9767f98351b3488edc2c100cda2d2ec2b04f3d8d3c8b" +dependencies = [ + "bitflags 2.13.1", + "core-foundation 0.9.4", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[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.35.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1c93047acf68669466a34690ac58cca7010bd1b201e1ec86f1fd0a75d3dd4a9" +dependencies = [ + "bitflags 2.13.1", + "block2", + "core-foundation 0.10.1", + "core-graphics", + "crossbeam-channel", + "dbus", + "dispatch2", + "dlopen2", + "dpi", + "gdkwayland-sys", + "gdkx11-sys", + "gtk", + "jni", + "libc", + "log", + "ndk", + "ndk-sys", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "objc2-ui-kit", + "once_cell", + "parking_lot", + "percent-encoding", + "raw-window-handle", + "tao-macros", + "unicode-segmentation", + "url", + "windows", + "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.119", +] + +[[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.11.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "667b20e2726d572dea2de7370da16e188eb06008faf9a92fab7cdc46791190b5" +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 0.13.4", + "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.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc9ce40b16101cb6ea63d3e221567affd1c3a9205f95d7bc574941a10636b632" +dependencies = [ + "anyhow", + "cargo_toml", + "dirs", + "glob", + "heck 0.5.0", + "json-patch", + "schemars 0.8.22", + "semver", + "serde", + "serde_json", + "tauri-utils", + "tauri-winres", + "walkdir", +] + +[[package]] +name = "tauri-codegen" +version = "2.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08279169ff42f8fc45a1dbc9dcae888893ba95288142e5880c59b93a26d2cfc5" +dependencies = [ + "base64 0.22.1", + "brotli", + "ico", + "json-patch", + "plist", + "png 0.17.16", + "proc-macro2", + "quote", + "semver", + "serde", + "serde_json", + "sha2", + "syn 2.0.119", + "tauri-utils", + "thiserror 2.0.18", + "time", + "url", + "uuid", + "walkdir", +] + +[[package]] +name = "tauri-macros" +version = "2.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8b394794f399a421811d06966343e7933fcae92d59f5180b9388d1174497a45" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.119", + "tauri-codegen", + "tauri-utils", +] + +[[package]] +name = "tauri-runtime" +version = "2.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0b4bc95aed361b0019067d189a1174a603d460d0f6c72606512d59fc9c12ec8" +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.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e6fac707727b7a2f48e4ded90976324267371073edbb415ffb73bb0458d203f" +dependencies = [ + "gtk", + "http", + "jni", + "log", + "objc2", + "objc2-app-kit", + "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.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e176a18e67764923c4f1ce66f25ae4abe5f688384d5eb1a0fa6c77f3d90f887" +dependencies = [ + "anyhow", + "brotli", + "cargo_metadata", + "ctor", + "dom_query", + "dunce", + "glob", + "http", + "infer", + "json-patch", + "log", + "memchr", + "phf", + "plist", + "proc-macro2", + "quote", + "regex", + "schemars 0.8.22", + "semver", + "serde", + "serde-untagged", + "serde_json", + "serde_with", + "swift-rs", + "thiserror 2.0.18", + "toml 1.1.3+spec-1.1.0", + "url", + "urlpattern", + "uuid", + "walkdir", +] + +[[package]] +name = "tauri-winres" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc65d45c68858bfe420dd29e834b5d15dbecf8a07a8a16cf4d532c7b1f69d4b6" +dependencies = [ + "dunce", + "embed-resource", + "toml 1.1.3+spec-1.1.0", +] + +[[package]] +name = "tempfile" +version = "3.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" +dependencies = [ + "fastrand", + "getrandom 0.4.3", + "once_cell", + "rustix", + "windows-sys 0.61.2", +] + +[[package]] +name = "tendril" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fed54709c5b3a53d09bb1c113ea4f5ceafd1e772ddcb0030a82e1d56c087b08" +dependencies = [ + "new_debug_unreachable", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.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.119", +] + +[[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.119", +] + +[[package]] +name = "time" +version = "0.3.53" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18dfaaeddcb932337b5e7866ee7d0ce9b76d2fd092997146f187ec09b4558a50" +dependencies = [ + "deranged", + "num-conv", + "powerfmt", + "serde_core", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1c906769ad99c88eaa54e728060edef082f8e358ff32030cb7c7d315e81109" + +[[package]] +name = "time-macros" +version = "0.2.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c431b87111666e491a90baa837f914fb45cd5dc3c268591b0220ff5057f2085f" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "tinystr" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tinyvec" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb4ebadaa0af04fab11ae01eb5f9fdb5f9c5b875506e210e71c07873528baa7f" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.52.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc7f01b389ac15039e4dc9531aa973a135d7a4135281b12d7c1bc79fd57fffe" +dependencies = [ + "bytes", + "libc", + "mio", + "pin-project-lite", + "socket2", + "windows-sys 0.61.2", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" +dependencies = [ + "rustls", + "tokio", +] + +[[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.14.0", + "serde_core", + "serde_spanned 1.1.1", + "toml_datetime 0.7.5+spec-1.1.0", + "toml_parser", + "toml_writer", + "winnow 0.7.15", +] + +[[package]] +name = "toml" +version = "1.1.3+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53c96ecdfa941c8fc4fcaed14f99ada8ebed502eef533015095a07e3301d4c3c" +dependencies = [ + "indexmap 2.14.0", + "serde_core", + "serde_spanned 1.1.1", + "toml_datetime 1.1.1+spec-1.1.0", + "toml_parser", + "toml_writer", + "winnow 1.0.4", +] + +[[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.1.1+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.14.0", + "toml_datetime 0.6.3", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" +dependencies = [ + "indexmap 2.14.0", + "serde", + "serde_spanned 0.6.9", + "toml_datetime 0.6.3", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.25.13+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6975367e4d2ef766d86af01ffad14b622fecc8d4357a998fbc4deb6e9bacaf9b" +dependencies = [ + "indexmap 2.14.0", + "toml_datetime 1.1.1+spec-1.1.0", + "toml_parser", + "winnow 1.0.4", +] + +[[package]] +name = "toml_parser" +version = "1.1.2+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" +dependencies = [ + "winnow 1.0.4", +] + +[[package]] +name = "toml_writer" +version = "1.1.2+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d56353a2a665ad0f41a421187180aab746c8c325620617ad883a99a1cbe66d2" + +[[package]] +name = "tower" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper", + "tokio", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-http" +version = "0.6.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cfcf7e2740e6fc6d4d688b4ef00650406bb94adf4731e43c096c3a19fe40840" +dependencies = [ + "bitflags 2.13.1", + "bytes", + "futures-util", + "http", + "http-body", + "pin-project-lite", + "tower", + "tower-layer", + "tower-service", + "url", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + +[[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + +[[package]] +name = "tracing" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" +dependencies = [ + "pin-project-lite", + "tracing-core", +] + +[[package]] +name = "tracing-core" +version = "0.1.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" +dependencies = [ + "once_cell", +] + +[[package]] +name = "tray-icon" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65ba1e5f6b9ef9fd87e21b9c6f351554dbd717960089168fcfdef854686961dc" +dependencies = [ + "crossbeam-channel", + "dirs", + "libappindicator", + "muda", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-foundation", + "once_cell", + "png 0.18.1", + "serde", + "thiserror 2.0.18", + "windows-sys 0.61.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.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" + +[[package]] +name = "unic-char-property" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221" +dependencies = [ + "unic-char-range", +] + +[[package]] +name = "unic-char-range" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc" + +[[package]] +name = "unic-common" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc" + +[[package]] +name = "unic-ucd-ident" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e230a37c0381caa9219d67cf063aa3a375ffed5bf541a452db16e744bdab6987" +dependencies = [ + "unic-char-property", + "unic-char-range", + "unic-ucd-version", +] + +[[package]] +name = "unic-ucd-version" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4" +dependencies = [ + "unic-common", +] + +[[package]] +name = "unicode-ident" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" + +[[package]] +name = "unicode-segmentation" +version = "1.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8" + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[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 = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "uuid" +version = "1.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf3923a6f5c4c6382e0b653c4117f48d631ea17f38ed86e2a828e6f7412f5239" +dependencies = [ + "getrandom 0.4.3", + "js-sys", + "serde_core", + "wasm-bindgen", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version-compare" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03c2856837ef78f57382f06b2b8563a2f512f7185d732608fd9176cb3b8edf0e" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "vswhom" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be979b7f07507105799e854203b470ff7c78a1639e330a58f183b5fea574608b" +dependencies = [ + "libc", + "vswhom-sys", +] + +[[package]] +name = "vswhom-sys" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb067e4cbd1ff067d1df46c9194b5de0e98efd2810bbc95c5d5e5f25a3231150" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.1+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" + +[[package]] +name = "wasip2" +version = "1.0.4+wasi-0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.126" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b067c0c11094aef6b7a801c1e34a26affafdf3d051dba08456b868789aaf9a4" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.76" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c62df1340f32221cb9c54d6a27b030e3dba64361d4a95bed55f9aacb44da291d" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.126" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "167ce5e579f6bcf889c4f7175a8a5a585de84e8ff93976ce393efa5f2837aab1" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.126" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3997c7839262f4ef12cf90b818d6340c18e80f263f1a94bf157d0ec4420380e" +dependencies = [ + "bumpalo", + "proc-macro2", + "quote", + "syn 2.0.119", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.126" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc1b4cb0cc549fcf58d7dfc081778139b3d283a081644e833e84682ad71cea24" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "wasm-streams" +version = "0.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 = "web-sys" +version = "0.3.103" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8622dcb61c0bcc9fffa6938bed81210af2da9a7e4a1a834b2e37a59b6dfb6141" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web-time" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web_atoms" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "075474b12bcb3d2e3d4546580e9de478eeeead668a1761e2a8860c836b7ef297" +dependencies = [ + "phf", + "phf_codegen", + "string_cache", + "string_cache_codegen", +] + +[[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 = "webpki-roots" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf85cb06032201fa7c6f829d7db5a7e5aa45bcc0655327713065f6f0576731bf" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "webview2-com" +version = "0.38.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7130243a7a5b33c54a444e54842e6a9e133de08b5ad7b5861cd8ed9a6a5bc96a" +dependencies = [ + "webview2-com-macros", + "webview2-com-sys", + "windows", + "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.119", +] + +[[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.119", +] + +[[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.119", +] + +[[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-registry" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720" +dependencies = [ + "windows-link 0.2.1", + "windows-result 0.4.1", + "windows-strings 0.5.1", +] + +[[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.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.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", + "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-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_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_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_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[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_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_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_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 = "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.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" + +[[package]] +name = "winnow" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81" +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.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" + +[[package]] +name = "writeable" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4" + +[[package]] +name = "wry" +version = "0.55.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "186f9871daa55fd9c016578b810d149de58367113db7fb72b462d2323ce19514" +dependencies = [ + "base64 0.22.1", + "block2", + "cookie", + "crossbeam-channel", + "dirs", + "dom_query", + "dpi", + "dunce", + "gdkx11", + "gtk", + "http", + "javascriptcore-rs", + "jni", + "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.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "709fe23a0424b6a435d82152b1bd3fdfb0833487d5fa90d05d42762a9891fef5" +dependencies = [ + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", + "synstructure", +] + +[[package]] +name = "zerofrom" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ec05a11813ea801ff6d75110ad09cd0824ddba17dfe17128ea0d5f68e6c5272" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", + "synstructure", +] + +[[package]] +name = "zeroize" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e" + +[[package]] +name = "zerotrie" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f9152d31db0792fa83f70fb2f83148effb5c1f5b8c7686c3459e361d9bc20bf" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", +] + +[[package]] +name = "zerovec" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90f911cbc359ab6af17377d242225f4d75119aec87ea711a880987b18cd7b239" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "zmij" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml new file mode 100644 index 0000000..b96e9d5 --- /dev/null +++ b/src-tauri/Cargo.toml @@ -0,0 +1,24 @@ +[package] +name = "synapsis-desktop" +version = "0.1.0" +description = "Desktop client for the Synapsis federated social network" +authors = ["Gnosys Labs"] +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 = "synapsis_desktop_lib" +crate-type = ["staticlib", "cdylib", "rlib"] + +[build-dependencies] +tauri-build = { version = "2", features = [] } + +[dependencies] +tauri = { version = "2", features = [] } +serde = { version = "1", features = ["derive"] } +serde_json = "1" +reqwest = { version = "0.12", features = ["cookies", "json", "rustls-tls"] } 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..b9ec4c1 --- /dev/null +++ b/src-tauri/capabilities/default.json @@ -0,0 +1,9 @@ +{ + "$schema": "../gen/schemas/desktop-schema.json", + "identifier": "default", + "description": "Capability for the main window", + "windows": ["main"], + "permissions": [ + "core:default" + ] +} diff --git a/src-tauri/icons/128x128.png b/src-tauri/icons/128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..1f9eac7ad2049171a1fe127b3a14acd6e88594d0 GIT binary patch literal 2800 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 Z{{y%qn5X~x`eXnA002ovPDHLkV1o1r!wmoc literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square284x284Logo.png b/src-tauri/icons/Square284x284Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..981bc78eb5dae22a583a9655357b1cbc8db1a024 GIT binary patch literal 6535 zcmZ8mc{G&K-+wGI$~Gj+j4fM;tYc&ei9u$vX3LT#GD64}#vr@w+t?|INQGo;>`Np2 zHpR#uB5U?{{NDGR-#PCe&$;J*pZi_zz0ddi`P}Gow|Wr5 z70I_Tq=yf5IzZqOVf~zK-{t#-#aqsYtD<|4yqr*Vb^LehUrRTOkwAWwpEe072Y_ zOKi^D-TjvANRRSWtPzAO09;7Xt>wq%4T8dK_^1?4|n{&Yl7H#blH zYHdw3%=N%pXCEB!8vLT^7D}lJ4W%*{Ol!LSR9;KxM&f0fZhynceWsFJqKeci;1p}Ut9VY)wS3R(N_lyT`asiJjl7t?w7m|F1Q!RImkI_SY_kF@s!t4 zV!?IV@ef_W#I`xr$w^>J|LVWw_YbHaQr&yL!!s7B7-hQU*GkvuGPUlj!$_4HQ^u2W z7ug%ubsG)Xe!Q5z;UAd7%zdLUhoBwBpjMB%`TG8&I#*;D>Y94o1dxhL5`217b@UpL z7{}5x76i}RXmM-~m7b=-=>F~KFkOv(t+;9Egtb>jCk&3z-ZR(I_bPa#`ABBBj%X z<=CzeSQOcU0nCnqNYyTZR7&8{joj1IpScrh&%9e#b{j8EU@5-_JYuo`pzsi>=pO6J z*oFR@!%Y93LJjt9DUOy6oslSJc5fVgiZzi01}Kc;aSFauk;cs-Bgd?BUchqrEP*aqceep#8qM)V1^rQDZnpzEzlbH5nyztnPlM>z5&g8VkqVu2PZEmZJ#N-EJ0?0RobXs^3dBpVCD-NTa{jx)JAlM9$3q{PaR? z9_?41T21@S@y-vUZZ(}8{>`vS=2ohuZMn5S=I_7yuCCt0a6JwGTC+JYjl_(^YrPqO z2JL;PGKk(Pw+Xt&bkZNH=5V@@f1@JcGDe3*6Gpx`Y01eTiZv@4?G)&KY!mA z{)Y0t(kAn#$rr^Z*s|Y1TVh)NF5u*n%|C|ioX5R&!g+~R&lmb!^I~`ccaliP-n+kB zW>gu}Ban)9PxNm{N}hJf;8)gHmDJ%E_?4cmB@S1$h}~%Z*ZS6|kE?4@EfaRM&6sU8 zRQt|yA?)n9O0A?o#x5=4W=;#Yp~U39=dG_orBKDQMi$GWOZ7`<$;ZeG+T2*N(c|M| zj*JUDK|A{k8RM!56SRiG(d+ZLe{v^)|C~P-aiO>+B}t^w}kS*exgI zeJWwmliA2K{ovAe{~W$ZS-9K|-SDhoy|R8{J7H6En9f4$mgkmx_Xa{SQc>m5z2vDs z7h!N-C48_sH)ZCG;zUWP6_l{FqFKs0(fD=YnnL!C!Ob#fohh%S{=V%Q|IpK1mVvpW zh9H*C1*Uvt%c;eEagF-~Q1~+e*I;4EmnwURdy0XugpA5c|}p^Gp-qxL!$a;N1{TBVp$`d7@ET<{@-iW zekI|K@59T4($eg!LJ>98r}2@UVaNSlydlt|vs-?fMEs1o-tj&9o$%WTp^n=40UXl3 zxv1!Xo8coe`xJsZPJl^X(MOAm!>uSqci`A*v?HDPr&&})*Xxz4YqKTB4MaZ(R-mJA zI91W}?LlrS<4N?7v#;Y7+e&tvxyK3f@2;!HkPx0*a^Fqg$WLQOZvbwv=9nEV+&yaHFM|p;0aySv78&JZ;wr8*erz=6y9F^y{C6Tf#_~ z3dfBD3y+jdhjd3rZ^DK%=TG65V(#&c2L}pUN+3qfZMguWc{`~3Q!B0U9Ifxwmm_^}4ib+gbqL z@$18#KotbPcyz{%^Zw9Ds0MB0uzFjwZ$;$#niPOfYJ`M_&9`E#dASZZ2O^_X?~-L7xI)9c31k_Ih2(hT z3sq$RUls?3Bb;bvv`l%qh14*h6lX zb-$Bq9{-NHauLqY506&X@o8uc;C*uPzHDeAb@LM$g=FPLRosE3I?t7karl1C8{*_o# zs-*Ei@fSDkidgXH`5&-WN2q#Lbj*kN?y>=B4LpbvYxFsbS7Li=-nZ8_Y*3#VCDro! zYFDxbb*aa)(OBnSRA1v^c+Co|R-Q70WkSn2i`WTkt;wKe&av8TuBZFc5aRB!O}uWY z^xK2#abU0kTB?XY4nCnZky?K{$v&3}E8w^Vt6eYjq?6uy5(ch`e@|y;g%)TPJIH+kbqW5OPK5DW=cw{#NTd&1^PmNop^5W-%eAtGvzeM#U>stGxS$Z7 zNiC@a3<*>*!bBrf*zpk#czMz^kFB0I>F%t9Nzh6Y7gggfnl>lP zH{PD->&Dkng9p_`OihsIO#wuLSmKoX&E{u%pn|?wJx@R761YoHiFy_ml z>>FzEj_!4Wr1g}Hlcn=5SmK}iP-khlxwo=->ZRtP2HQKV*-a#eMYfcFxe3=$&3lQw zhw+hOZcV{$O+Rao3U*vWwpz|ukIl>kr=Q8*{77!?LQ;N35MGl=2+*!1z7E>65YrZ;C!l4oUI6& zz=n^Tm4nB~^m9j{Z2Wi47O%uA>%$Y6eckJ>?{0b9yZd^R4Ss$6h9f~IaYo&P&k1CY zD;>o3J3;ZUGDO}n%ly#{gbNprV~!cIRH6}5gH1m@+e#b%tTU`C2JkM8{;DSO`>ygmbtl?iYTQ_qYbA;?%}Tty{m_E8 zNz2wa{Z>%+kN%?Ce6s2R&SAvLh1* zQDt+YR(H&QViVnr<2r|YV`&uY3n|ZSIlCJ#*I64Z#cc((?O6&Lw5-Vdr8eR!+%Q!+ zUJqpSf=$Yw?qkBufAn|iB9do3+x`#p%C8os@lOh(iWk;pUyrzXy&b43XoCFvSIOS0ynlSjwDh8c zo9k-xx?tVjRtek9G#!s35q35n-0G{1Bp7eyzT&{Xh9x%{=LNa?PglC!d-v9f84*&4 z6d&nwu`>HM$62GMH0Hfv6`$oS{20s%LW__eo2;-5G53w1H+N;s$S*!{gJnq$RN-uY!vg87i!pI zhm5=yOD=NSDUOjIlNYqF9&oeey%m`PLq%WKyb%s}dn@!|q|aWKCX|F&qxgPK$L+va zfd~o0i`f*jMHge|FFsaP*(8L+*OW?oGQp~)?CkVJrEkeu?Ec;p^kpNPWWZPu#8%-T ztiVFgFd5REl8IzU!|U*{oh-F%-=Fto&N+@iiOJQ*F6@A+=w_9J-h-j$FjBOl5;g@g zLf^M&Ta8?mcx zw=J(QlYuox>is#r!BSV7aos7~^!^Bb--|6yYj5;^E&%7#sc-KQ4hugl+%S!FWxLST z(FA6O_857QbTi=5c9&mmE1NTUnd*30{eY08R$lVWtNB#!Ax)|6A!tMupynZnI>_bC z3)bJ`2-NMF073Cdcj=eUM=tsr`xSMrB`1OX(k_TxIv@KqHhrLmy$jYd_mJ9J2;Vb= zA=mYuz+ml^-daM43rA?i9gi<|YD}Pn%Z^;;5#)g>C15{J>QYOZ9dZdB+_Q0+D{u=I zp%d7=dI?#_K=valm`$waPVtbZyir7&?>ILo`jqp*xvsq{wY4C=2S=eo2ACHzUoO5R zt6nem4Y+;fj>nesxtmm%yBZN)Pu8|218UGeO;k#2v=b(>CCDI5mVcY%#&S%F7!f8I9IQWF^GRy!E zqa-5)Jz9#I2qGhh%qKiEnf{xxQc2$yd>~PwW5-}37&!-e8RB(y;$y;uM=J&Xe-V_n zL=VP+b)zOb;+(Q2S2+wxZH%Z9A(4KLOwM72B5BB0X|zB=X7O}f3i4&FncB|Bc`1vWk4d0e6Uo2gHP6)@+%K+ zT3)BXQ&jhmPf=?&*;=6u419t2#M?ORt~X%yW%X07Fcr^Vu_7L2r$L#5?BCdxvdCXlRL6i~u5~lYq-> z*;#dwqy<1n2zbun&f6`E8=Kz>uxXQ0zzLPD&v0@|Hp$b*YM!N0K-d5WT9e zY5C+5(%#AGqO2s47_MJuY-vhX;tlG58V&GO563U%S_rER&d@`+2#X?C!T4L--P7BA#BchG@3gAEwdyKi-9uWmRcQ-`x^NpXr$^r{<^$KH0xKl5 zt0N=pw}3QOoC3tlixqZO?tUaM|E$fMyCC58at)&%Df(hU=MydOPG)Y*@2L3cZO?63 zbhvS=v7%a9Cd}lw0eiLQ%~?&<&E}wznYF<@aHJPyR$rw~6Yfm+HCorAt?henCt^`IhovuUST;qfIL{-qt{=NEp$0Qwc&w^{n3A z8(Uq{kE$6y-a}45#r(;A94E2tSBeaZ=$Y-NsplqNU01xv((viM_G!?#GHW!Bf{O?F z+|Bffk-Ef(+tkSz$!ao~3)t{kJz8Gbix`k{)oVKKd{{oJ=?4sfx$H&%c56YT^>_{6 zK^~8;vJO4w78s%QpwE4NmKiT@^NL!;!P(ilQ9>rPoKLOM;eCDC_kIH5!M7FNtmnnS zO7Rg9o>f0pAGR+&Az#mzFXc_;`Mw<+_mz(K4A-UW|KQ>3=hyBE>mso6$hL472Xczx zGQe4>&jLS?)2dopR@S88m4C-8>#CQv7Vo6l_ykmoHKu8Mdp?1)T*aiCH&DVZ?4cw< zJ`JtsS{7Hu)C3mwxuTUhU(ogO`Oe<^&!33^i!2#g?eTA}Mt81c)cm{UuVfxmN=u+5 Q|6l=h?jSWQHEgl}1K@s16aWAK literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square30x30Logo.png b/src-tauri/icons/Square30x30Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f6ca89ed880398cc32df78c67155772eec841826 GIT binary patch literal 990 zcmV<410np0P)t14Qg+SfJT)*V0>i}M zUxQ&>^%gB!GBr6_#bd(@g`x(!1fTE4r}_LMvRtX@-km#lz<8-KEG#V0)6=7Q>IFg} zqsa~jhc!q~mtmu;D;gV{A(zY1(%OowtZWPn45}?ST3te+P>7V2v)C5673SvVWHX>t zDse66I%t|kaZw>2J}Sq}n}uqmnh{g#kcNkcq2Wy(4n-a$q5VbrJF2T|uzklaOiWCo zva%fB-kx**rdq^)em>CG*Pqj_zP=t`K7WCelM@#Ot%*r4kdu>*l9Jmv6cvNEwl<89 z%m1(wi9|SkItlUdQe3&3$&n_UJTWWrtbdE5C^)ZMi@v@-*x1-0JR%bA?rxAuj>62$ zjI-IY#g~vKbK-jO;w5es-XOLs(9qDNJ@K>O@`nbrB37ZLr3FzW+yMdpC@U-F$XZ)JAUJp*o>V<1gvMNI z)CHx<8Md^vfRDEqUe~?G*RS7TWMqV z!e;E)O2$6U>zr}7^d9{E17T@pHNQ}omsgPI0jWq&aOTXpIW%C7!?Dp^M1uE+&R<+1 zAz`ptVU4R-F2mZ|>aWMHx3`z8)u9K%7e-t|LqkYNOoHo%^|*W~19e2zKSoBT2|>Ej z0GgZMBJor*Iy*bn>rk4uMHYL4c5@}No#fiy&K44BJZfv7Yu1ppAy$=Bu~>}3!9i#> ze`!lRU(onZph$fk)-@^1NpZurj=^$LL?y+#k26)wpPHEHVux&Y*w#syDJok&HkQZT zB-qJb7vwA{xxz?ht}rTcS|F(Xm3y8o+n5$gNaW)Vxjjf(PgP(11Zp=xPg4e7t^fc4 M07*qoM6N<$f^tjW&;S4c literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square310x310Logo.png b/src-tauri/icons/Square310x310Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f00da4e499ec29795c81708b0c1bc97ba933e703 GIT binary patch literal 6906 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 NKwsNPt6ak-@;|PjI_Ura literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square44x44Logo.png b/src-tauri/icons/Square44x44Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..0f5b1649c6bb244d8030308fa2c3327a1091a060 GIT binary patch literal 1309 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square89x89Logo.png b/src-tauri/icons/Square89x89Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..af440d4b88d2668625319407d1a7a47d10677add GIT binary patch literal 2120 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/android/mipmap-anydpi-v26/ic_launcher.xml b/src-tauri/icons/android/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..2ffbf24 --- /dev/null +++ b/src-tauri/icons/android/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png b/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..3eef8b013b58b72fbb1cadbccef729d381b8da5c GIT binary patch literal 2107 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 W^)Nz7>BhPM0000<1cL%pd>$e~b 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 KMNUMnLSTZ$@yvn% literal 0 HcmV?d00001 diff --git a/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png b/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..ab072663927ea698c6c473547bb687490a5e1f9f GIT binary patch literal 2481 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png b/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..b37ef81a9131b164b7bd324d54f6cbf93d333196 GIT binary patch literal 4639 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png b/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..480d00a3e3158258f7e4db1e54cd793fc9b041bb GIT binary patch literal 7296 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 F{{#5qriK6j literal 0 HcmV?d00001 diff --git a/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png b/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..75132b22cb4b44788ba412f2ae80789b71bc7da9 GIT binary patch literal 7604 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 W>Mj*##^Nmi0000;TyRqwrO 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png b/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..6e564be4cfc53e8e53e8fe7c8b87bb803d27e137 GIT binary patch literal 10818 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/android/values/ic_launcher_background.xml b/src-tauri/icons/android/values/ic_launcher_background.xml new file mode 100644 index 0000000..ea9c223 --- /dev/null +++ b/src-tauri/icons/android/values/ic_launcher_background.xml @@ -0,0 +1,4 @@ + + + #fff + \ No newline at end of file diff --git a/src-tauri/icons/icon.icns b/src-tauri/icons/icon.icns new file mode 100644 index 0000000000000000000000000000000000000000..3a2ceec8c39431335a4036733d9df9e678814591 GIT binary patch literal 78228 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 be~#L-soK;1O)$6Y~}v|oWqM| literal 0 HcmV?d00001 diff --git a/src-tauri/icons/icon.ico b/src-tauri/icons/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..55b6413ace5b23c52c07332db7e95ec49d6d2a0e GIT binary patch literal 13588 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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..e757801803d19fe2e49bfdb46518added410acf6 GIT binary patch literal 12573 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

jL$9jvU?*!YokFX1Mk-Ed&)|?JezJBc`n$rbv z^p97*d3ljtllH*>zU2q2-pNoM9^iiZHHZ0LgKbGs!t2i6!&*s}1pIUsrQ2lMPE=M< z91eEM)p92D#r?M7TlFax#rlY-pzwZ zT}$S;gob_@x{caQqq}8#jH56?^WQP(oxtTo0VmVOiY?Fe<*aO*U1{F*l`lFi_kXL+ zmuFYnC;?v9(VU#hPHt=G0i4*yvmDhun9!S?DcJov_tB-K#Rq^1^|iF;8SEub0&9xn zb0X;ly+j7!gSTX1S4@~r)~v!tTmH<9@G+TsCxle{WzJZ${f&ozUQQbidgfT=6G8pa zWtyLclwX_Wb=fV>CKn!NRcV)gAao-dO9A-OFhHXEdUgll4x$?K6kwBMUuq`783GUW zo1J7T*;#w7zc*SmC|@PBH{Z8$q)yE*Jd%C-$>K;(k^*?6&!B~hiV_(G6)%ilKB#qb z{A2M)mp5$5{`&X?eo>tj6>FOB8Iiar_vYdRb>$!?s_~JMX{EIW-h0d)0{rq`Ol>GF z$0ie6ZKJ%@2U`hBy{r*d;Zl``;&zL>$p`u+snCzxk_q^;$IKl zgT!kBmo8HvORtH`VBnc&W)4H7>3y3LgJ>Z&vEcaQpdl_o4#dL^KHq zVYeh{WY+5Kd=rliVlRE`c2iH!NZu^9b75|bgZeA$72fzm0|W#B{C?`3anVVaJO2w* CdcN-f literal 0 HcmV?d00001 diff --git a/src-tauri/icons/icon.svg b/src-tauri/icons/icon.svg new file mode 100644 index 0000000..76a665c --- /dev/null +++ b/src-tauri/icons/icon.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src-tauri/icons/ios/AppIcon-20x20@1x.png b/src-tauri/icons/ios/AppIcon-20x20@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..b9e9514f3ed5235cf7004b0bfa0732836cfc6277 GIT binary patch literal 675 zcmV;U0$lxxP)xEVzH|>npa6hKNv(~kU`W<%!`d8(Dk>Pi*_66 znAF8!jDoCda5Q8B3|-(A^MR{4|zNusvJNrmm{Cg zm)uXKQrv?TC6dYELZMLd!!zw|a8J2#>hwt{l}bdTv695OT#llNWWmj*#v^z;{svCx zduTKoFbsp`Lv$L~&)0SOpGOJMZ11BpbE z&ohh^eSH^k&vF;9M#m5eg({QGoo$EX9ZaT6#0E5q#qE9(ryvrE!0DRg`zsWbq_&p* z+mY+;KF<@MP#-5gTqklz_|sA<$`Wo%WgwFs#KuOd>?KhVVKqT(wc33nV7(KW0B{0kUJK8$3grU%yY#B(Q7_$YVrEaqXMKJrrVl-|p@}V+xi4!rJ8AWg~ zmx+9ccGIOaOeHWuT2cA2qT3+2AGYH^kPtpX=-%f|%J|ySdv6==laQwOzUe(Z&pGFL z`x543g(cP4+zf}^j-E%4FgiMlP?lD!#b$#6W{U-d`}QrnFDwK|fQpKW;PH5{8bx4j zw{JtQ*Uw*5&9m0jgzW6>RRc#w&rVHC<5(6kNX!v9CDoI@KF*}TH0FCdDJkSylhW>? z!9lEviH$wg(a|A5VKp{32AxiaH6tSsAxW%a6h9{Tsu>!}30q z$xnz{yVfVS71yrS!Jtn;L_`F7dtL0CYxuoauRJ(WUV-P&Ur7FJl~iDAwHl{RehK$) z{m`c*b8!E<(ThyeHaMLwINE+j&6Uf1y%bkV0=Rc?9{%{0J4|B&XNB7KUaAq5XR9zdISK#1gId|#)WBU# z>q)a@s$IJ*{QktmMDSa@(47Yl9Y#UnC%kP0lwu`mqaHt8zkz4{{aj}RjN~x*=L?*y zC}%83BRo7@w2Q-}<{-7q%>MH8_b_*!UKGk?3Y)EUKD_0W3Nnjgg}~_<7=IYktB&b& zZf;KY2$eNSD$kte0lZLa`}Y?xZEoS(ymYA=Q&Up`xjm==DLVLwW2{l+kk%-IYHO;I zYqj#%uFePidTLq*>}?LoAVq7ir@M=fE;0$}jaW3Bci`&PI?klgXyoe>65hm5Kin0^;M}SaCGUW{})FK0c0{t+#kPDPo94iX57^G2ZIif*wSryi$@AQkRpayq{#Wdx$0-@$mfUg?CE2kl^SgVPl1qVu(swh ze?55Uvw$B$Me}?8`q$YsIT!GllRQbB&c{5U%gRau-sh1?I=g66BB(NuUAl7dxwUG1Rm5jn@w>n`Y~~Ubdp(LU#}Q&gvEbO zz332qU|;~bxw)&>ZfYwrx9|{MSn=Nw>=3)nZuhy}ZiE^vfg-n(Aqoo$mM!=PKsy9Y Tb^Y=d00000NkvXXu0mjf&Tvlw literal 0 HcmV?d00001 diff --git a/src-tauri/icons/ios/AppIcon-20x20@2x.png b/src-tauri/icons/ios/AppIcon-20x20@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5cbaf59406418b6b79fba2a26b5a1156fa0d8460 GIT binary patch literal 1205 zcmV;m1WNmfP)V7(KW0B{0kUJK8$3grU%yY#B(Q7_$YVrEaqXMKJrrVl-|p@}V+xi4!rJ8AWg~ zmx+9ccGIOaOeHWuT2cA2qT3+2AGYH^kPtpX=-%f|%J|ySdv6==laQwOzUe(Z&pGFL z`x543g(cP4+zf}^j-E%4FgiMlP?lD!#b$#6W{U-d`}QrnFDwK|fQpKW;PH5{8bx4j zw{JtQ*Uw*5&9m0jgzW6>RRc#w&rVHC<5(6kNX!v9CDoI@KF*}TH0FCdDJkSylhW>? z!9lEviH$wg(a|A5VKp{32AxiaH6tSsAxW%a6h9{Tsu>!}30q z$xnz{yVfVS71yrS!Jtn;L_`F7dtL0CYxuoauRJ(WUV-P&Ur7FJl~iDAwHl{RehK$) z{m`c*b8!E<(ThyeHaMLwINE+j&6Uf1y%bkV0=Rc?9{%{0J4|B&XNB7KUaAq5XR9zdISK#1gId|#)WBU# z>q)a@s$IJ*{QktmMDSa@(47Yl9Y#UnC%kP0lwu`mqaHt8zkz4{{aj}RjN~x*=L?*y zC}%83BRo7@w2Q-}<{-7q%>MH8_b_*!UKGk?3Y)EUKD_0W3Nnjgg}~_<7=IYktB&b& zZf;KY2$eNSD$kte0lZLa`}Y?xZEoS(ymYA=Q&Up`xjm==DLVLwW2{l+kk%-IYHO;I zYqj#%uFePidTLq*>}?LoAVq7ir@M=fE;0$}jaW3Bci`&PI?klgXyoe>65hm5Kin0^;M}SaCGUW{})FK0c0{t+#kPDPo94iX57^G2ZIif*wSryi$@AQkRpayq{#Wdx$0-@$mfUg?CE2kl^SgVPl1qVu(swh ze?55Uvw$B$Me}?8`q$YsIT!GllRQbB&c{5U%gRau-sh1?I=g66BB(NuUAl7dxwUG1Rm5jn@w>n`Y~~Ubdp(LU#}Q&gvEbO zz332qU|;~bxw)&>ZfYwrx9|{MSn=Nw>=3)nZuhy}ZiE^vfg-n(Aqoo$mM!=PKsy9Y Tb^Y=d00000NkvXXu0mjf&Tvlw literal 0 HcmV?d00001 diff --git a/src-tauri/icons/ios/AppIcon-20x20@3x.png b/src-tauri/icons/ios/AppIcon-20x20@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..b391dee17bb9fce25cc3e71400e4100e112b00a2 GIT binary patch literal 1480 zcmV;(1vmPMP)C{ zN!A(&(7@oJCU8~20NT$UJK4IsyJ;X2DGqpfd70h{26_0}!NB(L@G!YtE_J|dZEZ9W zi;3a>?380YK;76wefwt?YPDn&0HIYM@}xw$!B$T-72y}e|2JDbNS{4qbD ztE;P{-C$r@j7Fom?flRaC)#Kx^?-i(ew_aL^Dz@OKa!_}SkNt>Z{DOTM^)7)>2z8! z`okI<8|czkUr?B!9n0rxEHt% z9ue1~qq^s}u7JJX`oe|Q*4A$6Jw9iE{YQ_{jT>X!aR_rnid-IA0`SHDPd9|3C~p0& zSrMhvo!xBQdz0rkA_c(V080Som6jD9y)BWL=8R*g0mJRArC9*j`ZCX?Yk^y^Ds777;_ z@%j$)YFkcqceC}W^Wl$KrGAa)@Me0s2|1kMtwh;Fk$duL3sbHrAu1#%UAZ#Md-3JV z-|*K`FMnq5UhDN?gq^a7A`iikq^3H%&d|c*;{S>hoPj(&cm5;pBsdHYsh3yM;tUlY z${vb54CMPM?=HQx(XK40GARF_}kUdZ+ZTwlJ_eXES4A#)dU29 zN&>>+sNzTD?p6hhX@GIjlJrv(5E9!^V{#E9w}S_tD@(AL3K-0SIV}Mpu?;6ETTEQ* zSAOkxnTNHWCJ7Qf7V<>BCM6@5SS6qf3k$qPAVnxZI{>H|f!?jK8!B#LRJ~0po2)l-1zhBsWw;tjS(?Cm$?eiEIftBAr zjQtIEXL-Zz!+6rw)n!|j!{KmF+Vrtu3qUX!%*7@r1-pgv`1rV>Iv$RUj0kqhXJ7#) z&3PDeD!hRZutOLFi*h}!=tiyHo}L{S;$U@fXhnR2+*7`NbBO)k3s i-HIo)9zR}kE8agy5@qgW!~nc5)_mm zu$oE=2~J%XE36cmV7n8{Zl}d#NS}oQpl*f*tK&^&@g9A9wy)qd(J3Fz~L4m6) zE5X#()v>foYej2oD}-MRhKr-4qf1H*43r`x{WQWO!Z0xK4pUR#dFPspMwX$&=9}Q? zC_zqk7Uc5%u(1*0>CK-bZZOn#e0bMt-d+b3JJ4$a{O+TYiU-1FJ+^78uY^ZJH6P$&`+D3zkRO0#G^!Qw~i z2%f;p^**>(}xT z6}1~#Svd#@*p7z!I@sIW|Ff>h66i*f`1ZztLMRY`A=l073V3*U zKr9yXBBh8gd#9(Tq0TQPELM?@Zy+}I@E?-(_riUPI~a!HtySKV*|~EEYHDs`{knBH zbLK2EGSZNld6sB44%((B7z_s9pcc&`B0LO=qlby(Ok;!C7MhAG9E_DCfJh@KND5~s zC(ezEii*+K*U!z}-`}760ehlih$c--@6<3d0#7olwzf9TeKeXu7s7jP~!3!gp@1_io9MgEi5chDulscpu)mJDl03a`nozY8jUf3pW6y(Z+|~s zZfT)FAVBF50PgJUB)i@IY(N(m7peBxF&Y;#nT}zz*=TrZh;%yLy61WMgPEBbD&D_8 zZ9yWi_SdSb8J4ISMJ8Xas7M>C#tW0lL_giVD`i&7DCnvckcjE&X@+SXb$k2z(weTZ zXzX&i)~H)lT&$^VZtTYX*;(R&IGG@=RttOcnwle+Jy@r3ia|UojCE%rq`}_ zU8S*mzpzZJ)|doW$D=!`6~~XiO&$SYqX2YYPR^#+J32b4>0+~BX!urL>e+!tEkD4x#sq7`1n7GdvFm~@}#t5ZCF`&r8%*>xs9X<=dXgmM9{Y|Pr z`7UuB#~1--C{e$P0PXL)wPhXdB<|c9k?0JN0E=?ib)W;c2kFt{$BH*Hk-DIBAQ0SL zpcadnWx#4Z#JZ>wh5|JX+Ab|Ek^POg7@bl7iDZ>ebWv{CcWhx;M7sbK4P|8HNA~*a z>gu)(1>^-Zh1@`PKwq!dC+V=;{r&DzSCkVh6j4`yie+Nf?~e;uG!*EvkQdY?077=~ zSgyl~^Z-SGqDyYnL1e;WIY{Tue?TiM|87Zp00a=&z{-P%namgrdTHb0>2Okk#?rxo zfp4hP_yXIAXw-*{V53lnXgE93;iT$lEFA>3#f?DydOY`82GP7gQ#3OrbU0RIs9^!I zaC{-N4#yb=7Mbn%%*pC^V^+JbU!{VA0#zp%Ud=z=9?2N8h)jXba?>tuLVkX}>T@Zt z_8Xv1(R9{?e{IM|!-CNO&DD+!Qt>3A>)PimgQ!Q;t;aJVWmKoz#~#CIIL^LD4Gj*; z$;nQijLL;SH#e8bi>>liN%$c@w{CvTI;&S`KBCdE+78ie!Afq|Xe1q|DEt5-7k)G$ z&==36IWZb#>|x*0fUqI>LNuIvpBaq@4<;1{tO(GWBh?ZR)FEU9av~qV;afppydI6_ za-#u>0uz>(S5gZox~JTLBOv?$X*8Cu)5}=V7|~MEXc$c|Dl#Y}3>1zi7z|1V9L+`a zt&kJc9G-9A#$vOxvZMpEjf2A94+`W1)$8?S zF`E@T!4tb~@KI1Glcf|mN)Z}|t@1FdNz|s;K@$y(cVGy{y_BG?IJt;A2q)AS(bS!u z;6aBm-eD6{(ix%iiaH2qBpQNvC-CA81Gx^Pt1A_Xb=|Gp5`3&kV;ql!hi%%_bz$xu zj`M7z)Cg69%KdL!YYY2VA;Kp#FA?a|r_0pV-oZ9O%}5GRxz&Rd&CkzMd3o3=DNWIo z0J@uzLI0C@4)i(DG!5RM*K58R0V9vApjr=LA{YP{n}*ng;s&~b&;(fpemwJV(=pkGMotvAZRFNS7gX4i2I9XrM#ruHIf4dhdETH7$GXMYp M07*qoM6N<$g1O1z`v3p{ literal 0 HcmV?d00001 diff --git a/src-tauri/icons/ios/AppIcon-29x29@2x.png b/src-tauri/icons/ios/AppIcon-29x29@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..36abb0f72f5d61aceb8b11b59b5d920342dd5b36 GIT binary patch literal 1562 zcmV+#2IcvQP)1_io9MgEi5chDulscpu)mJDl03a`nozY8jUf3pW6y(Z+|~s zZfT)FAVBF50PgJUB)i@IY(N(m7peBxF&Y;#nT}zz*=TrZh;%yLy61WMgPEBbD&D_8 zZ9yWi_SdSb8J4ISMJ8Xas7M>C#tW0lL_giVD`i&7DCnvckcjE&X@+SXb$k2z(weTZ zXzX&i)~H)lT&$^VZtTYX*;(R&IGG@=RttOcnwle+Jy@r3ia|UojCE%rq`}_ zU8S*mzpzZJ)|doW$D=!`6~~XiO&$SYqX2YYPR^#+J32b4>0+~BX!urL>e+!tEkD4x#sq7`1n7GdvFm~@}#t5ZCF`&r8%*>xs9X<=dXgmM9{Y|Pr z`7UuB#~1--C{e$P0PXL)wPhXdB<|c9k?0JN0E=?ib)W;c2kFt{$BH*Hk-DIBAQ0SL zpcadnWx#4Z#JZ>wh5|JX+Ab|Ek^POg7@bl7iDZ>ebWv{CcWhx;M7sbK4P|8HNA~*a z>gu)(1>^-Zh1@`PKwq!dC+V=;{r&DzSCkVh6j4`yie+Nf?~e;uG!*EvkQdY?077=~ zSgyl~^Z-SGqDyYnL1e;WIY{Tue?TiM|87Zp00a=&z{-P%namgrdTHb0>2Okk#?rxo zfp4hP_yXIAXw-*{V53lnXgE93;iT$lEFA>3#f?DydOY`82GP7gQ#3OrbU0RIs9^!I zaC{-N4#yb=7Mbn%%*pC^V^+JbU!{VA0#zp%Ud=z=9?2N8h)jXba?>tuLVkX}>T@Zt z_8Xv1(R9{?e{IM|!-CNO&DD+!Qt>3A>)PimgQ!Q;t;aJVWmKoz#~#CIIL^LD4Gj*; z$;nQijLL;SH#e8bi>>liN%$c@w{CvTI;&S`KBCdE+78ie!Afq|Xe1q|DEt5-7k)G$ z&==36IWZb#>|x*0fUqI>LNuIvpBaq@4<;1{tO(GWBh?ZR)FEU9av~qV;afppydI6_ za-#u>0uz>(S5gZox~JTLBOv?$X*8Cu)5}=V7|~MEXc$c|Dl#Y}3>1zi7z|1V9L+`a zt&kJc9G-9A#$vOxvZMpEjf2A94+`W1)$8?S zF`E@T!4tb~@KI1Glcf|mN)Z}|t@1FdNz|s;K@$y(cVGy{y_BG?IJt;A2q)AS(bS!u z;6aBm-eD6{(ix%iiaH2qBpQNvC-CA81Gx^Pt1A_Xb=|Gp5`3&kV;ql!hi%%_bz$xu zj`M7z)Cg69%KdL!YYY2VA;Kp#FA?a|r_0pV-oZ9O%}5GRxz&Rd&CkzMd3o3=DNWIo z0J@uzLI0C@4)i(DG!5RM*K58R0V9vApjr=LA{YP{n}*ng;s&~b&;(fpemwJV(=pkGMotvAZRFNS7gX4i2I9XrM#ruHIf4dhdETH7$GXMYp M07*qoM6N<$g1O1z`v3p{ literal 0 HcmV?d00001 diff --git a/src-tauri/icons/ios/AppIcon-29x29@3x.png b/src-tauri/icons/ios/AppIcon-29x29@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..485bf91721b8048fa47ab2bf9093b486b43a4f0a GIT binary patch literal 2100 zcmV-42+Q}0P)7ip7=CwXB3xP!(~GchvL%+*L=%bat`UtzOB*2aQz$_WC_e?c7%D$<0I{{6Xbaer zLisV8Xj(wpL=yf46AyMNf#N}EF_<2N7CdlTzh~HQ{bo8dJG-5kotb`bLLhX1pLyqb zpXd3$&J-kBQI>UgXoxOexzu!a^k zY}g=yod88tFIr^GxovH2a(Fo~gg!s8pYHtm2lfB{8`adj>s#&x)lPYS z)~vm3kVX9XAt7tFZ{J48yS`BYMopdijQVfXjBb_w zM8a3VR#jEf#S7=@P)D0(D1zF#Ymb^GqgJn8rBcO?9UuEf_bPtjTXbMY`$3gk=g%** z^_;_pzoPPrm+8on&NPiQF>nDg4pKgA?9ro0Wa_kONy;;?Zru0*ZDM~ibt-CLV1UZX zo`OH)SuH&r>NrT1jDvYyzI=rR+#ls_U@Q6N)r%K?R=dp(u$lDb;@TxtTep;khlkS? zgDyVs*}e(Ceqg}GX^+z%yc*46ZOW?9t)PmQmew>MZ`$;s3Nj96Xu(DIfLAfF+~&k) z1};E8dGg!zd*fhw@!p<;3tmO{V5)mn5b~S1Y^C_?3sspWo;6*^zIL4|6t8Fi&MF_g zhq``!K;>gl1uwWe4AH=Yi!XQf>`!@BB+$R22FB1kBaMobBaYMm78lMltEzq=}_x|XdPj>FsOmZi96{dtM5}X}d8n>y#3}=m5 zcHy+v_7q%B0Y=`RPx6Mf@8`_NnEZOD*OJn?Cr+HoIlBmqTBvyGm2`*l@Ed=4*PJ-2D1^VfkY!F!3ks_*E~IW)W8U+=7}N_1NY%<e@COUS$B_Va$3BP-Avf1#B4Yed9L33iyaCDz@-}i z1681t@i!jNf#r|O7q9vrTwah(a8M#2H>D=M5qE+DM5W-jQvCLT(3vL~4<{1WHLk0u zsBqk4W3fu|b18n?r@%ESA4s4H7!0G3WpV9NN8DZL!8OvPJiWqjv(nBJad)8x*GQ9^ zyR7rHeEEChTv;yeF4W)}Y0^wC3kPD`*3IhUxk|{@-Gvt19jWj}pI(VBOUz@f)BtyP z8&gX*M(bvi0$iRYh`h>O7EiBuM~itZI@*d;@f@BT>(e$-JBJcn{2r}71w&VXSCQ$W z+cI_Z(9m#BDVdRW4i&ig(xS8iucE80T$VnMr7ZJZy}N5pDGx9C*fUz-3xfbmpI(Wb z#ygrTg^6YxV%mm-$%1=wSFcJkg~EDseaYUyyvfW`;pB2?KzraiN6tST5~7okqY?5vwPQTps+Qsuc;>t++- zW25Y1Qm#Z8dH<)s`lNMMcFHZM7YK)D*KojWK(dJk090Y-(70x8cFD?yV)a+={ly)U zW~I+AB)B&Dn6HiTdi?lb4X;9VKz-zkR|7{2W)^xi8*qo&^slLTN8Qfkwh5Rt;0Cb@ zBm@#%39c*&t^`+tE6dtMu*;H4Dds`}*Mg$LLWzV61zZbo-B(%8*POX?NvW-?i%2M( zuXsEjiQKt+H(AOqlqt*E`uqNUQgG)EIn*K#4eNZe_sk50Omx?5d^Ju%*@fUEruT`!5Bhq0C9pXF3*7XJsEUD%pw7-tiC7lEwzjrL^tX<&yk!?I z6#sU0wWJ6e9cu)v<V7(KW0B{0kUJK8$3grU%yY#B(Q7_$YVrEaqXMKJrrVl-|p@}V+xi4!rJ8AWg~ zmx+9ccGIOaOeHWuT2cA2qT3+2AGYH^kPtpX=-%f|%J|ySdv6==laQwOzUe(Z&pGFL z`x543g(cP4+zf}^j-E%4FgiMlP?lD!#b$#6W{U-d`}QrnFDwK|fQpKW;PH5{8bx4j zw{JtQ*Uw*5&9m0jgzW6>RRc#w&rVHC<5(6kNX!v9CDoI@KF*}TH0FCdDJkSylhW>? z!9lEviH$wg(a|A5VKp{32AxiaH6tSsAxW%a6h9{Tsu>!}30q z$xnz{yVfVS71yrS!Jtn;L_`F7dtL0CYxuoauRJ(WUV-P&Ur7FJl~iDAwHl{RehK$) z{m`c*b8!E<(ThyeHaMLwINE+j&6Uf1y%bkV0=Rc?9{%{0J4|B&XNB7KUaAq5XR9zdISK#1gId|#)WBU# z>q)a@s$IJ*{QktmMDSa@(47Yl9Y#UnC%kP0lwu`mqaHt8zkz4{{aj}RjN~x*=L?*y zC}%83BRo7@w2Q-}<{-7q%>MH8_b_*!UKGk?3Y)EUKD_0W3Nnjgg}~_<7=IYktB&b& zZf;KY2$eNSD$kte0lZLa`}Y?xZEoS(ymYA=Q&Up`xjm==DLVLwW2{l+kk%-IYHO;I zYqj#%uFePidTLq*>}?LoAVq7ir@M=fE;0$}jaW3Bci`&PI?klgXyoe>65hm5Kin0^;M}SaCGUW{})FK0c0{t+#kPDPo94iX57^G2ZIif*wSryi$@AQkRpayq{#Wdx$0-@$mfUg?CE2kl^SgVPl1qVu(swh ze?55Uvw$B$Me}?8`q$YsIT!GllRQbB&c{5U%gRau-sh1?I=g66BB(NuUAl7dxwUG1Rm5jn@w>n`Y~~Ubdp(LU#}Q&gvEbO zz332qU|;~bxw)&>ZfYwrx9|{MSn=Nw>=3)nZuhy}ZiE^vfg-n(Aqoo$mM!=PKsy9Y Tb^Y=d00000NkvXXu0mjf&Tvlw literal 0 HcmV?d00001 diff --git a/src-tauri/icons/ios/AppIcon-40x40@2x-1.png b/src-tauri/icons/ios/AppIcon-40x40@2x-1.png new file mode 100644 index 0000000000000000000000000000000000000000..88acf9defe0bb0292c5f3f7c7a0d71444a1e8083 GIT binary patch literal 1971 zcmV;k2Tb^hP)=az0>j+zedqhm zIrsKWzNQCRh?SKUx;H&d^YioK>($j&+TPwKH%4)BF;!JniO>ChKOGMQ$mjD}dJc~n z0C#qFXk>Jh#>U263zpd^D=VY6wl+H7-AzSBMX3XLZD3$e0B6L`Oa1-Stpk}9fPZdo zQgd@NEiW(AUXJSOYMOoUASN3P0ff%IdgRESV_iHp0z@Ny^eXTY2e1Gpz$PvO6?lo6 zxc>NYL^?+>u)U*0foFn=hAFJOt+v+pNeCnHDQfw!KYTI{RvB4vL>`Z84-7&+D(jQ?PHJmMQRBTAJzl;5E~_ z7C7ESi;GJFywApNQk~913XR*wZ+$_x^oNr`qMY$&O6TV1e$+u2Ny-!;;Ku^53qXUx zpm+|X{`}kzBE6j~XS`19+}P+%VG>nUl_@_T*yyW1NW;S))9&tWSVzbr>4G%U^p(8-DQvM03xLTT%XM~9JKFT*Lm_c9HynEhvMIGv6g@N zSzJ6<0*Ew1N+ojFbjIrHn$Sl$HnSfW&kp9>4j^hYW`mOf)(;MR6#g1Uv$*)seE=e@ zz=p2w98+EeMG>6JK!Bf@I~hm>qymxwBSC<1GPqA`(NgzlAQr_Y z(%IP|76Zm`5q!x1idZzX%1SW~HZikV=O7V~3N{h^tv(0FU$(n2n+O()#egxgR$27?2z`uK_AqcreMkVL0Fr;Wd4e{~sQEWr?&Lgx(R(7X%9B_d>#@q6oCnZo&w|HI z?6}cAE*@MQ_l0^}Fjw9a>A!T@Qak9{JrUVKk%CA?Zo{H`+<4Cg=HllVSax#W6Uiw6 z!4}>V;Q<3u4=KoP7=tVKxB%D85fF^3xE+k%6LCF&*!Tupcxr-F15;S%*hCoI=pNVX z>=74;^-TX)s>d4s`Fa%`@1_nIf1i0tAdg7)kN|#i}Xpjv%&&${jAa60U zvqF~uoS9Tj6+pR7v};4lRsfMk&^it*V#vZm(g7d`G&UVFkKWha*NCYl~9Y&Fr0LrZxfGiB1W&m?gyCJ>J00^B! zhcoW*`RJ?xP;SL!hX#`po$15S;bQ+~+YG`r0LuC(pT3V37&;)`lj)mt8bDbe0c2@u zX*f-h;`j*QoYpzl0VwNZtc`UAV2(t-f7keaH=WnZ)i{`BpHD~z~j|#d+AY7Bo_@j`NWNP%FD~O&0tUgX(9BRU1%E{8y>N# z)OPBWLd0S)W`cp3aFic7fRBoWCd(K7wojh$&BySGe#2D-p2+}Kd_*PU4wf&~)@u6w zpcIhtYCoS(`{~gmkKrvqRVtfLUBiXbhgI+aNQD zpepiRX`W9DVPWlX5vU5WyfHjXdy$P;Gu93a;{C68D{n@iP29dsx!$p$!$6U&zZroi zEpJ9Z#&3tA&Cks}{aSxJ47a*ASjOW#3{@}}u=;iw{{v!e!3kgC2{!-$002ovPDHLk FV1k1&nLq#l literal 0 HcmV?d00001 diff --git a/src-tauri/icons/ios/AppIcon-40x40@2x.png b/src-tauri/icons/ios/AppIcon-40x40@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..88acf9defe0bb0292c5f3f7c7a0d71444a1e8083 GIT binary patch literal 1971 zcmV;k2Tb^hP)=az0>j+zedqhm zIrsKWzNQCRh?SKUx;H&d^YioK>($j&+TPwKH%4)BF;!JniO>ChKOGMQ$mjD}dJc~n z0C#qFXk>Jh#>U263zpd^D=VY6wl+H7-AzSBMX3XLZD3$e0B6L`Oa1-Stpk}9fPZdo zQgd@NEiW(AUXJSOYMOoUASN3P0ff%IdgRESV_iHp0z@Ny^eXTY2e1Gpz$PvO6?lo6 zxc>NYL^?+>u)U*0foFn=hAFJOt+v+pNeCnHDQfw!KYTI{RvB4vL>`Z84-7&+D(jQ?PHJmMQRBTAJzl;5E~_ z7C7ESi;GJFywApNQk~913XR*wZ+$_x^oNr`qMY$&O6TV1e$+u2Ny-!;;Ku^53qXUx zpm+|X{`}kzBE6j~XS`19+}P+%VG>nUl_@_T*yyW1NW;S))9&tWSVzbr>4G%U^p(8-DQvM03xLTT%XM~9JKFT*Lm_c9HynEhvMIGv6g@N zSzJ6<0*Ew1N+ojFbjIrHn$Sl$HnSfW&kp9>4j^hYW`mOf)(;MR6#g1Uv$*)seE=e@ zz=p2w98+EeMG>6JK!Bf@I~hm>qymxwBSC<1GPqA`(NgzlAQr_Y z(%IP|76Zm`5q!x1idZzX%1SW~HZikV=O7V~3N{h^tv(0FU$(n2n+O()#egxgR$27?2z`uK_AqcreMkVL0Fr;Wd4e{~sQEWr?&Lgx(R(7X%9B_d>#@q6oCnZo&w|HI z?6}cAE*@MQ_l0^}Fjw9a>A!T@Qak9{JrUVKk%CA?Zo{H`+<4Cg=HllVSax#W6Uiw6 z!4}>V;Q<3u4=KoP7=tVKxB%D85fF^3xE+k%6LCF&*!Tupcxr-F15;S%*hCoI=pNVX z>=74;^-TX)s>d4s`Fa%`@1_nIf1i0tAdg7)kN|#i}Xpjv%&&${jAa60U zvqF~uoS9Tj6+pR7v};4lRsfMk&^it*V#vZm(g7d`G&UVFkKWha*NCYl~9Y&Fr0LrZxfGiB1W&m?gyCJ>J00^B! zhcoW*`RJ?xP;SL!hX#`po$15S;bQ+~+YG`r0LuC(pT3V37&;)`lj)mt8bDbe0c2@u zX*f-h;`j*QoYpzl0VwNZtc`UAV2(t-f7keaH=WnZ)i{`BpHD~z~j|#d+AY7Bo_@j`NWNP%FD~O&0tUgX(9BRU1%E{8y>N# z)OPBWLd0S)W`cp3aFic7fRBoWCd(K7wojh$&BySGe#2D-p2+}Kd_*PU4wf&~)@u6w zpcIhtYCoS(`{~gmkKrvqRVtfLUBiXbhgI+aNQD zpepiRX`W9DVPWlX5vU5WyfHjXdy$P;Gu93a;{C68D{n@iP29dsx!$p$!$6U&zZroi zEpJ9Z#&3tA&Cks}{aSxJ47a*ASjOW#3{@}}u=;iw{{v!e!3kgC2{!-$002ovPDHLk FV1k1&nLq#l literal 0 HcmV?d00001 diff --git a/src-tauri/icons/ios/AppIcon-40x40@3x.png b/src-tauri/icons/ios/AppIcon-40x40@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..a4e76b35527eb430d5ee8ccbf6630735ca04c7d9 GIT binary patch literal 2772 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 Y`I)jl^L}s|ycD)$+wQH|oA>|vUs*=vM*si- literal 0 HcmV?d00001 diff --git a/src-tauri/icons/ios/AppIcon-60x60@2x.png b/src-tauri/icons/ios/AppIcon-60x60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a4e76b35527eb430d5ee8ccbf6630735ca04c7d9 GIT binary patch literal 2772 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png b/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0bdf093a5d3640fb91553de075f5a3c3450dce47 GIT binary patch literal 3475 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 Bz+nIY literal 0 HcmV?d00001 diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs new file mode 100644 index 0000000..d33e386 --- /dev/null +++ b/src-tauri/src/lib.rs @@ -0,0 +1,256 @@ +use reqwest::{Client, Method, StatusCode, Url}; +use serde::{de::DeserializeOwned, Deserialize, Serialize}; +use std::time::Duration; +use tauri::State; + +struct AppState { + client: Client, +} + +#[derive(Debug, Default, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] +struct NodeInfo { + name: Option, + description: Option, + accent_color: Option, + domain: Option, + logo_url: Option, +} + +#[derive(Debug, Deserialize, Serialize)] +#[serde(rename_all = "camelCase")] +struct User { + id: String, + handle: String, + display_name: Option, + avatar_url: Option, +} + +#[derive(Deserialize)] +struct SessionPayload { + user: Option, +} + +#[derive(Serialize)] +#[serde(rename_all = "camelCase")] +struct ConnectionPayload { + node_url: String, + node: NodeInfo, + user: Option, +} + +#[derive(Serialize)] +struct AuthPayload { + user: User, +} + +#[derive(Deserialize)] +struct ErrorPayload { + error: Option, +} + +#[derive(Serialize)] +#[serde(rename_all = "camelCase")] +struct RegistrationRequest<'a> { + handle: &'a str, + display_name: &'a str, + email: &'a str, + password: &'a str, +} + +fn normalize_node(input: &str) -> Result { + let trimmed = input.trim(); + if trimmed.is_empty() { + return Err("Enter a valid Synapsis node URL.".into()); + } + + let candidate = if trimmed.contains("://") { + trimmed.to_owned() + } else { + format!("https://{trimmed}") + }; + let mut url = Url::parse(&candidate).map_err(|_| "Enter a valid Synapsis node URL.")?; + if url.scheme() != "http" && url.scheme() != "https" { + return Err("Synapsis nodes must use an http or https URL.".into()); + } + if url.host_str().is_none() { + return Err("Enter a valid Synapsis node URL.".into()); + } + if url.host_str() == Some("www.synapsis.social") { + url.set_host(Some("synapsis.social")) + .map_err(|_| "Enter a valid Synapsis node URL.")?; + } + url.set_username("").ok(); + url.set_password(None).ok(); + url.set_path("/"); + url.set_query(None); + url.set_fragment(None); + Ok(url) +} + +fn endpoint(base: &Url, path: &str) -> Result { + base.join(path) + .map_err(|_| "The selected node address is invalid.".into()) +} + +async fn decode_response(response: reqwest::Response) -> Result { + let status = response.status(); + let bytes = response.bytes().await.map_err(|error| error.to_string())?; + if !status.is_success() { + let message = serde_json::from_slice::(&bytes) + .ok() + .and_then(|payload| payload.error) + .unwrap_or_else(|| format!("Request failed ({status}).")); + return Err(message); + } + serde_json::from_slice(&bytes).map_err(|_| "The node returned an unexpected response.".into()) +} + +async fn get(client: &Client, base: &Url, path: &str) -> Result { + let response = client + .get(endpoint(base, path)?) + .header("Accept", "application/json") + .send() + .await + .map_err(|error| format!("Couldn’t reach this node: {error}"))?; + decode_response(response).await +} + +async fn post( + client: &Client, + base: &Url, + path: &str, + body: &B, +) -> Result { + let response = client + .request(Method::POST, endpoint(base, path)?) + .header("Accept", "application/json") + .json(body) + .send() + .await + .map_err(|error| format!("Couldn’t reach this node: {error}"))?; + decode_response(response).await +} + +#[tauri::command] +async fn connect( + state: State<'_, AppState>, + node_url: String, +) -> Result { + let base = normalize_node(&node_url)?; + let node = get::(&state.client, &base, "/api/node").await?; + let session = get::(&state.client, &base, "/api/auth/me") + .await + .unwrap_or(SessionPayload { user: None }); + Ok(ConnectionPayload { + node_url: base.to_string(), + node, + user: session.user, + }) +} + +#[tauri::command] +async fn login( + state: State<'_, AppState>, + node_url: String, + email: String, + password: String, +) -> Result { + let base = normalize_node(&node_url)?; + let payload = post::( + &state.client, + &base, + "/api/auth/login", + &serde_json::json!({ "email": email.trim(), "password": password }), + ) + .await?; + payload + .user + .map(|user| AuthPayload { user }) + .ok_or_else(|| "The node returned an unexpected response.".into()) +} + +#[tauri::command] +async fn register( + state: State<'_, AppState>, + node_url: String, + handle: String, + display_name: String, + email: String, + password: String, +) -> Result { + let base = normalize_node(&node_url)?; + let body = RegistrationRequest { + handle: handle.trim().trim_start_matches('@'), + display_name: display_name.trim(), + email: email.trim(), + password: &password, + }; + let payload = + post::(&state.client, &base, "/api/auth/register", &body).await?; + payload + .user + .map(|user| AuthPayload { user }) + .ok_or_else(|| "The node returned an unexpected response.".into()) +} + +#[tauri::command] +async fn logout(state: State<'_, AppState>, node_url: String) -> Result<(), String> { + let base = normalize_node(&node_url)?; + let response = state + .client + .post(endpoint(&base, "/api/auth/logout")?) + .json(&serde_json::json!({})) + .send() + .await + .map_err(|error| format!("Couldn’t reach this node: {error}"))?; + if response.status().is_success() || response.status() == StatusCode::UNAUTHORIZED { + Ok(()) + } else { + Err(format!("Log out failed ({}).", response.status())) + } +} + +#[cfg_attr(mobile, tauri::mobile_entry_point)] +pub fn run() { + let client = Client::builder() + .cookie_store(true) + .timeout(Duration::from_secs(20)) + .user_agent("Synapsis Desktop/0.1") + .build() + .expect("failed to build Synapsis HTTP client"); + + tauri::Builder::default() + .manage(AppState { client }) + .invoke_handler(tauri::generate_handler![connect, login, register, logout]) + .run(tauri::generate_context!()) + .expect("error while running Synapsis"); +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn normalizes_bare_node_names() { + assert_eq!( + normalize_node("synapsis.social").unwrap().as_str(), + "https://synapsis.social/" + ); + } + + #[test] + fn strips_paths_credentials_and_fragments() { + assert_eq!( + normalize_node("https://person:secret@example.com/somewhere?q=1#fragment") + .unwrap() + .as_str(), + "https://example.com/" + ); + } + + #[test] + fn rejects_non_web_schemes() { + assert!(normalize_node("file:///tmp/node").is_err()); + } +} diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs new file mode 100644 index 0000000..29c9ea9 --- /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() { + synapsis_desktop_lib::run() +} diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json new file mode 100644 index 0000000..89c726d --- /dev/null +++ b/src-tauri/tauri.conf.json @@ -0,0 +1,40 @@ +{ + "$schema": "https://schema.tauri.app/config/2", + "productName": "Synapsis", + "version": "0.1.0", + "identifier": "xyz.gnosyslabs.synapsis", + "build": { + "beforeDevCommand": "bun run dev", + "devUrl": "http://localhost:1430", + "beforeBuildCommand": "bun run build", + "frontendDist": "../dist" + }, + "app": { + "windows": [ + { + "title": "Synapsis", + "width": 1080, + "height": 720, + "minWidth": 720, + "minHeight": 560, + "center": true, + "hiddenTitle": true, + "titleBarStyle": "Overlay" + } + ], + "security": { + "csp": "default-src 'self'; connect-src ipc: http://ipc.localhost; img-src 'self' asset: https: http: data:; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com" + } + }, + "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/App.css b/src/App.css new file mode 100644 index 0000000..da090a1 --- /dev/null +++ b/src/App.css @@ -0,0 +1,109 @@ +@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@600;700;800&family=Roboto+Mono:wght@500;600&display=swap'); + +:root { font-family: "DM Sans", -apple-system, BlinkMacSystemFont, sans-serif; color: #f5f5f2; background: #070808; font-synthesis: none; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; } +* { box-sizing: border-box; } +html, body, #root { width: 100%; min-width: 720px; height: 100%; min-height: 560px; margin: 0; overflow: hidden; } +button, input { font: inherit; } +button { color: inherit; } +button:focus-visible, input:focus-visible { outline: 2px solid #fff; outline-offset: 3px; } + +.onboarding-shell { width: 100%; height: 100%; display: grid; grid-template-columns: minmax(300px, 45%) minmax(420px, 55%); background: #0b0c0c; } +.signal-panel { position: relative; min-width: 0; overflow: hidden; border-right: 1px solid rgba(255,255,255,.1); } +.signal-field { position: absolute; inset: 0; width: 100%; height: 100%; } +.signal-shade { position: absolute; inset: 0; background: radial-gradient(circle at 55% 45%, transparent 0, rgba(0,0,0,.08) 38%, rgba(0,0,0,.74) 100%), linear-gradient(180deg, rgba(0,0,0,.12), rgba(0,0,0,.4)); pointer-events: none; } +.panel-brand, .sidebar-brand, .launch-mark { position: absolute; top: 52px; left: 48px; z-index: 2; display: flex; align-items: center; } +.wordmark { display: block; width: auto; object-fit: contain; } +.panel-wordmark { width: 146px; height: 28px; } +.signal-copy { position: absolute; z-index: 2; left: 48px; right: 36px; bottom: 104px; } +.eyebrow { margin: 0 0 25px; color: rgba(255,255,255,.62); font: 600 10px/1 "Roboto Mono", monospace; letter-spacing: 2.1px; } +.eyebrow i { display: inline-block; width: 5px; height: 5px; margin-right: 8px; border-radius: 50%; background: #fff; box-shadow: 0 0 9px #fff; vertical-align: 1px; } +.signal-copy h2 { margin: 0; max-width: 480px; font-family: Manrope, sans-serif; font-size: clamp(37px, 4vw, 61px); line-height: .99; letter-spacing: -3.4px; } +.panel-status { position: absolute; z-index: 2; bottom: 34px; left: 48px; right: 38px; display: flex; justify-content: space-between; color: rgba(255,255,255,.3); font: 500 9px "Roboto Mono", monospace; letter-spacing: 1.4px; } + +.form-panel { position: relative; overflow-y: auto; background: radial-gradient(circle at 85% 10%, rgba(255,255,255,.035), transparent 31%), #0c0d0d; } +.drag-strip { position: fixed; z-index: 1; top: 0; right: 0; width: 55%; height: 36px; } +.back-button { position: absolute; z-index: 2; top: 46px; left: 46px; display: flex; align-items: center; gap: 7px; padding: 7px 0; border: 0; background: transparent; color: rgba(255,255,255,.55); font-size: 13px; cursor: pointer; } +.back-button:hover { color: #fff; } +.form-wrap { width: min(440px, calc(100% - 80px)); min-height: calc(100% - 66px); margin: 0 auto; display: flex; align-items: center; padding: 78px 0 68px; } +.form-wrap form { width: 100%; } +.step-label { display: flex; align-items: center; gap: 12px; margin-bottom: 35px; color: rgba(255,255,255,.43); font: 600 9px "Roboto Mono", monospace; letter-spacing: 1.6px; } +.step-label span:first-child { color: #fff; } +.step-label i { width: 27px; height: 1px; background: rgba(255,255,255,.22); } +.form-wrap h1 { margin: 0 0 20px; font-family: Manrope, sans-serif; font-size: clamp(44px, 5vw, 64px); line-height: .95; letter-spacing: -4px; } +.lede { max-width: 400px; margin: 0 0 42px; color: rgba(255,255,255,.5); font-size: 15px; line-height: 1.65; } +.lede.compact { margin-bottom: 27px; } +label { display: block; margin: 0 0 9px; color: rgba(255,255,255,.75); font-size: 12px; font-weight: 600; } +.url-field, .handle-field { display: flex; align-items: center; height: 56px; border: 1px solid rgba(255,255,255,.16); border-radius: 8px; background: rgba(255,255,255,.045); transition: border-color .2s, background .2s; } +.url-field:focus-within, .handle-field:focus-within { border-color: rgba(255,255,255,.72); background: rgba(255,255,255,.065); } +.url-field span, .handle-field span { padding-left: 17px; color: rgba(255,255,255,.35); font: 500 14px "Roboto Mono", monospace; } +.url-field input, .handle-field input { min-width: 0; flex: 1; height: 100%; padding: 0 17px 0 2px; border: 0; outline: 0; color: #fff; background: transparent; font: 500 14px "Roboto Mono", monospace; } +.text-field { width: 100%; height: 52px; margin: 0 0 17px; padding: 0 15px; border: 1px solid rgba(255,255,255,.14); border-radius: 8px; outline: 0; color: #fff; background: rgba(255,255,255,.045); transition: border-color .2s, background .2s; } +.text-field:focus { border-color: rgba(255,255,255,.68); background: rgba(255,255,255,.065); } +.text-field::placeholder { color: rgba(255,255,255,.24); } +.field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; } +.handle-field { height: 52px; margin-bottom: 17px; } +.field-note { margin: -8px 0 18px; color: rgba(255,255,255,.34); font-size: 11px; } +.primary-button, .secondary-button { width: 100%; height: 54px; display: flex; align-items: center; justify-content: center; gap: 10px; border-radius: 8px; font-size: 13px; font-weight: 700; cursor: pointer; transition: transform .15s, background .15s, opacity .15s; } +.primary-button { margin-top: 18px; border: 0; color: #080909; background: #f4f4f0; } +.primary-button:hover:not(:disabled) { background: #fff; transform: translateY(-1px); } +.primary-button:active:not(:disabled) { transform: translateY(0); } +.primary-button:disabled { cursor: default; opacity: .48; } +.secondary-button { border: 1px solid rgba(255,255,255,.17); background: transparent; } +.secondary-button:hover { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.28); } +.privacy-note { margin: 20px 0 0; text-align: center; color: rgba(255,255,255,.28); font-size: 10px; } +.lock-dot { margin-right: 5px; font-size: 7px; } +.connection-label { display: flex; align-items: center; gap: 8px; margin-bottom: 31px; color: rgba(255,255,255,.48); font: 600 9px "Roboto Mono", monospace; letter-spacing: 1.2px; } +.connection-label > span { display: grid; place-items: center; width: 18px; height: 18px; border: 1px solid rgba(255,255,255,.4); border-radius: 50%; color: #fff; } +.divider { display: flex; align-items: center; gap: 12px; margin: 25px 0 18px; color: rgba(255,255,255,.27); font: 600 9px "Roboto Mono", monospace; letter-spacing: 1.5px; } +.divider i { flex: 1; height: 1px; background: rgba(255,255,255,.09); } +.error-message { margin: 13px 0 0; padding: 10px 12px; border: 1px solid rgba(255,112,112,.22); border-radius: 7px; color: #ff9c9c; background: rgba(255,60,60,.07); font-size: 12px; line-height: 1.4; } +.step-footer { position: absolute; left: 44px; right: 44px; bottom: 25px; display: flex; justify-content: space-between; color: rgba(255,255,255,.25); font: 500 8px "Roboto Mono", monospace; letter-spacing: 1.2px; } +.step-dots { display: flex; gap: 5px; } +.step-dots i { width: 17px; height: 2px; background: rgba(255,255,255,.12); } +.step-dots i.active { background: rgba(255,255,255,.75); } +.spinner { width: 17px; height: 17px; display: inline-block; border: 2px solid rgba(255,255,255,.2); border-top-color: #fff; border-radius: 50%; animation: spin .75s linear infinite; } +.spinner.dark { width: 15px; height: 15px; border-color: rgba(0,0,0,.18); border-top-color: #111; } +@keyframes spin { to { transform: rotate(360deg); } } + +.launch-screen { position: relative; width: 100%; height: 100%; display: grid; place-items: center; background: #060707; } +.launch-screen::after { content: ""; position: absolute; inset: 0; background: radial-gradient(circle, transparent, rgba(0,0,0,.6)); } +.launch-mark { left: 50%; top: 50%; transform: translate(-50%, -50%); } +.launch-wordmark { width: 176px; height: 33px; } +.launch-screen > .spinner { position: absolute; z-index: 3; bottom: 12%; } + +.app-shell { width: 100%; height: 100%; display: grid; grid-template-columns: 238px 1fr; background: #0a0b0b; } +.sidebar { position: relative; display: flex; flex-direction: column; padding: 104px 18px 18px; border-right: 1px solid rgba(255,255,255,.09); background: #080909; } +.sidebar-brand { top: 43px; left: 26px; } +.sidebar-wordmark { width: 137px; height: 26px; } +.sidebar nav { display: flex; flex-direction: column; gap: 4px; } +.nav-item, .node-switcher, .profile-button { display: flex; align-items: center; width: 100%; border: 0; border-radius: 8px; background: transparent; color: rgba(255,255,255,.52); cursor: pointer; } +.nav-item { gap: 13px; height: 44px; padding: 0 13px; font-size: 13px; } +.nav-item:hover, .nav-item.active { color: #fff; background: rgba(255,255,255,.055); } +.compose-button { height: 44px; display: flex; align-items: center; justify-content: center; gap: 9px; margin-top: 22px; border: 0; border-radius: 8px; color: #0a0b0b; background: #f4f4ef; font-size: 12px; font-weight: 700; cursor: pointer; } +.sidebar-bottom { margin-top: auto; } +.node-switcher { gap: 10px; padding: 11px 10px; } +.node-switcher:hover, .profile-button:hover { background: rgba(255,255,255,.05); } +.node-switcher > span, .profile-button > span:not(.avatar) { min-width: 0; flex: 1; display: flex; flex-direction: column; align-items: flex-start; } +.node-switcher strong, .profile-button strong { max-width: 130px; overflow: hidden; color: rgba(255,255,255,.83); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; } +.node-switcher small, .profile-button small { max-width: 130px; overflow: hidden; color: rgba(255,255,255,.3); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; } +.profile-button { gap: 10px; margin-top: 7px; padding: 9px; border-top: 1px solid rgba(255,255,255,.06); border-radius: 0 0 8px 8px; text-align: left; } +.avatar { width: 30px; height: 30px; display: grid; flex: 0 0 auto; place-items: center; border: 1px solid rgba(255,255,255,.22); border-radius: 50%; background: rgba(255,255,255,.08); font-size: 11px; font-weight: 700; } +.home-content { min-width: 0; display: flex; flex-direction: column; } +.home-header { height: 70px; display: flex; align-items: center; justify-content: space-between; padding: 18px 28px 0; border-bottom: 1px solid rgba(255,255,255,.08); } +.home-header h1 { margin: 0; font: 700 17px Manrope, sans-serif; } +.connected-pill { display: flex; align-items: center; gap: 7px; color: rgba(255,255,255,.4); font: 500 8px "Roboto Mono", monospace; letter-spacing: 1px; } +.connected-pill i { width: 5px; height: 5px; border-radius: 50%; background: #78dc9b; box-shadow: 0 0 8px rgba(120,220,155,.7); } +.home-empty { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 35px; text-align: center; } +.home-empty .eyebrow { margin: 26px 0 17px; } +.home-empty h2 { margin: 0; font: 700 clamp(32px, 4vw, 50px)/1.05 Manrope, sans-serif; letter-spacing: -2.8px; } +.home-empty > p:last-child { max-width: 470px; margin: 20px 0 0; color: rgba(255,255,255,.4); font-size: 13px; line-height: 1.7; } +.home-empty strong { color: rgba(255,255,255,.68); } +.orbit-mark { position: relative; width: 76px; height: 76px; } +.orbit-mark span { position: absolute; inset: 8px; border: 1px solid rgba(255,255,255,.16); border-radius: 50%; } +.orbit-mark span:nth-child(2) { inset: 20px; border-color: rgba(255,255,255,.35); } +.orbit-mark i { position: absolute; left: 50%; top: 0; width: 5px; height: 5px; border-radius: 50%; background: #fff; box-shadow: 0 0 8px #fff; animation: orbit 5s linear infinite; transform-origin: 0 38px; } +@keyframes orbit { to { transform: rotate(360deg); } } + +@media (max-width: 850px) { .onboarding-shell { grid-template-columns: 38% 62%; } .signal-copy h2 { font-size: 38px; letter-spacing: -2.4px; } .form-wrap { width: calc(100% - 54px); } .panel-brand, .signal-copy { left: 32px; } .panel-status { left: 32px; } } +@media (max-height: 670px) { .form-wrap { align-items: flex-start; padding-top: 78px; } .form-wrap h1 { font-size: 42px; } .lede { margin-bottom: 24px; } .signal-copy { bottom: 74px; } .signal-copy h2 { font-size: 39px; } .field-grid { gap: 9px; } .text-field { height: 46px; margin-bottom: 11px; } .handle-field { height: 46px; margin-bottom: 11px; } .primary-button { height: 49px; margin-top: 12px; } } +@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; } } diff --git a/src/App.tsx b/src/App.tsx new file mode 100644 index 0000000..edbd644 --- /dev/null +++ b/src/App.tsx @@ -0,0 +1,449 @@ +import { FormEvent, useEffect, useRef, useState } from "react"; +import { invoke, isTauri } from "@tauri-apps/api/core"; +import "./App.css"; + +type Screen = "node" | "login" | "register" | "home"; + +type NodeInfo = { + name?: string; + description?: string; + accentColor?: string; + domain?: string; + logoUrl?: string; +}; + +type User = { + id: string; + handle: string; + displayName?: string; + avatarUrl?: string; +}; + +type Connection = { + nodeUrl: string; + node: NodeInfo; + user: User | null; +}; + +type AuthResponse = { user: User }; + +const DEFAULT_NODE = "synapsis.social"; +const SAVED_NODE_KEY = "synapsis.nodeUrl"; + +function readableError(error: unknown) { + if (typeof error === "string") return error; + if (error instanceof Error) return error.message; + return "Something went wrong. Please try again."; +} + +function displayHost(url: string) { + try { + return new URL(url).host; + } catch { + return url.replace(/^https?:\/\//, "").replace(/\/$/, ""); + } +} + +function Icon({ name, size = 20 }: { name: string; size?: number }) { + const paths: Record = { + arrow: <>, + back: <>, + check: <>, + home: <>, + search: <>, + bell: <>, + message: <>, + plus: <>, + node: <>, + logout: <>, + }; + return ; +} + +function Wordmark({ className = "" }: { className?: string }) { + return Synapsis; +} + +function SignalField() { + const canvasRef = useRef(null); + + useEffect(() => { + const canvas = canvasRef.current; + if (!canvas) return; + const context = canvas.getContext("2d"); + if (!context) return; + const reducedMotion = window.matchMedia("(prefers-reduced-motion: reduce)").matches; + let animation = 0; + let width = 0; + let height = 0; + let points: { + x: number; + y: number; + driftX: number; + driftY: number; + phaseX: number; + phaseY: number; + speedX: number; + speedY: number; + radius: number; + }[] = []; + let triangles: [number, number, number][] = []; + + function random(seed: number) { + const value = Math.sin(seed * 999.17) * 43758.5453; + return value - Math.floor(value); + } + + function resize() { + const scale = window.devicePixelRatio || 1; + width = canvas!.clientWidth; + height = canvas!.clientHeight; + canvas!.width = width * scale; + canvas!.height = height * scale; + context!.setTransform(scale, 0, 0, scale, 0, 0); + const count = Math.min(64, Math.max(34, Math.round(width / 18))); + points = Array.from({ length: count }, (_, index) => ({ + x: random(index + 11) * width, + y: random(index + 97) * height, + driftX: 9 + random(index + 207) * 16, + driftY: 9 + random(index + 307) * 16, + phaseX: random(index + 507) * Math.PI * 2, + phaseY: random(index + 607) * Math.PI * 2, + speedX: 0.055 + random(index + 707) * 0.055, + speedY: 0.05 + random(index + 807) * 0.06, + radius: 0.7 + random(index + 407) * 1.15, + })); + + // Keep the mesh topology stable. The previous version rebuilt the + // nearest-neighbour fan every frame, which made edges visibly pop. + triangles = []; + for (let anchor = 0; anchor < points.length; anchor += 3) { + const ring = points + .map((point, index) => ({ + index, + distance: Math.hypot(point.x - points[anchor].x, point.y - points[anchor].y), + angle: Math.atan2(point.y - points[anchor].y, point.x - points[anchor].x), + })) + .filter((item) => item.index !== anchor && item.distance < 230) + .sort((left, right) => left.distance - right.distance) + .slice(0, 6) + .sort((left, right) => left.angle - right.angle); + for (let index = 0; index < ring.length - 1; index += 2) { + if (Math.hypot( + points[ring[index].index].x - points[ring[index + 1].index].x, + points[ring[index].index].y - points[ring[index + 1].index].y, + ) < 220) { + triangles.push([anchor, ring[index].index, ring[index + 1].index]); + } + } + } + } + + function draw(milliseconds: number) { + const time = reducedMotion ? 0 : milliseconds / 1000; + context!.clearRect(0, 0, width, height); + context!.fillStyle = "#060707"; + context!.fillRect(0, 0, width, height); + const positions = points.map((point) => ({ + ...point, + px: point.x + Math.sin(time * point.speedX + point.phaseX) * point.driftX, + py: point.y + Math.sin(time * point.speedY + point.phaseY) * point.driftY, + })); + + for (let left = 0; left < positions.length; left++) { + for (let right = left + 1; right < positions.length; right++) { + const dx = positions[left].px - positions[right].px; + const dy = positions[left].py - positions[right].py; + const distance = Math.hypot(dx, dy); + if (distance < 112) { + context!.strokeStyle = `rgba(255,255,255,${(1 - distance / 112) * 0.1})`; + context!.lineWidth = 0.7; + context!.beginPath(); + context!.moveTo(positions[left].px, positions[left].py); + context!.lineTo(positions[right].px, positions[right].py); + context!.stroke(); + } + } + } + + const signals = [0, 1].map((index) => ({ + x: width * (0.5 + 0.39 * Math.sin(time * (index ? 0.082 : 0.105) + index * 2.1)), + y: height * (0.5 + 0.4 * Math.sin(time * (index ? 0.112 : 0.078) + index * 1.3)), + intensity: 0.48 + 0.24 * Math.sin(time * 0.32 + index * Math.PI), + })); + + triangles.forEach(([firstIndex, secondIndex, thirdIndex], triangleIndex) => { + const first = positions[firstIndex]; + const second = positions[secondIndex]; + const third = positions[thirdIndex]; + const centerX = (first.px + second.px + third.px) / 3; + const centerY = (first.py + second.py + third.py) / 3; + const signalStrength = Math.max(...signals.map((signal) => { + const proximity = Math.max(0, 1 - Math.hypot(centerX - signal.x, centerY - signal.y) / 285); + const easedProximity = proximity * proximity * (3 - 2 * proximity); + return easedProximity * signal.intensity; + })); + const breath = 0.84 + 0.16 * Math.sin(time * 0.24 + triangleIndex * 0.41); + const alpha = signalStrength * breath; + if (alpha < 0.004) return; + context!.beginPath(); + context!.moveTo(first.px, first.py); + context!.lineTo(second.px, second.py); + context!.lineTo(third.px, third.py); + context!.closePath(); + context!.fillStyle = `rgba(255,255,255,${alpha * 0.03})`; + context!.strokeStyle = `rgba(255,255,255,${alpha * 0.38})`; + context!.lineWidth = 0.7; + context!.fill(); + context!.stroke(); + }); + + positions.forEach((point) => { + const glow = Math.max(...signals.map((signal) => signal.intensity * Math.max(0, 1 - Math.hypot(point.px - signal.x, point.py - signal.y) / 200))); + context!.fillStyle = `rgba(255,255,255,${0.28 + glow * 0.58})`; + context!.beginPath(); + context!.arc(point.px, point.py, point.radius + glow * 0.8, 0, Math.PI * 2); + context!.fill(); + }); + if (!reducedMotion) animation = requestAnimationFrame(draw); + } + + const observer = new ResizeObserver(resize); + observer.observe(canvas); + resize(); + if (reducedMotion) draw(0); + else animation = requestAnimationFrame(draw); + return () => { + observer.disconnect(); + cancelAnimationFrame(animation); + }; + }, []); + + return

; + } + + if (screen === "home" && user) { + const name = user.displayName?.trim() || user.handle.replace(/^@/, "").split("@")[0]; + return ( +
+ +
+

Home

Connected
+
+
+

SESSION ESTABLISHED

+

Welcome to the network,
{name}.

+

Your desktop session is connected to {displayHost(nodeUrl)}. The timeline is the next piece to bring over from iOS.

+
+
+
+ ); + } + + return ( +
+
+ +
+
+
+

THE SIGNAL IS ALREADY MOVING

+

Your node.
Your network.
Your identity.

+
+
DECENTRALIZED SOCIALDESKTOP / 01
+
+ +
+
+ {screen !== "node" && } +
+ {screen === "node" && ( +
+
01CONNECT
+

Choose your
node.

+

Synapsis is a network of independent communities. Enter the node where your account lives.

+ +
https:// setNodeInput(event.target.value)} autoCapitalize="none" autoCorrect="off" spellCheck={false} autoFocus/>
+ {error &&

{error}

} + +

Your credentials are sent only to the node you choose.

+ + )} + + {screen === "login" && ( +
+
CONNECTED / {displayHost(nodeUrl).toUpperCase()}
+

Welcome
back.

+

Sign in to continue on this node.

+ + + + +

Use the email associated with your username.

+ {error &&

{error}

} + +
NEW HERE?
+ + + )} + + {screen === "register" && ( +
+
CONNECTED / {displayHost(nodeUrl).toUpperCase()}
+

Create your
account.

+

Create your identity on this node.

+
+
+
@
+
+ + +
+
+
+
+

Use at least 8 characters.

+ {error &&

{error}

} + +
+ )} +
+
{screen === "node" ? "STEP 1 OF 2" : screen === "login" ? "STEP 2 OF 2" : "NEW ACCOUNT"}
+
+
+ ); +} + +export default App; diff --git a/src/main.tsx b/src/main.tsx new file mode 100644 index 0000000..2be325e --- /dev/null +++ b/src/main.tsx @@ -0,0 +1,9 @@ +import React from "react"; +import ReactDOM from "react-dom/client"; +import App from "./App"; + +ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render( + + + , +); diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..a7fc6fb --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/tsconfig.node.json b/tsconfig.node.json new file mode 100644 index 0000000..42872c5 --- /dev/null +++ b/tsconfig.node.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "composite": true, + "skipLibCheck": true, + "module": "ESNext", + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..6b3e902 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,32 @@ +import { defineConfig } from "vite"; +import react from "@vitejs/plugin-react"; + +// @ts-expect-error process is a nodejs global +const host = process.env.TAURI_DEV_HOST; + +// https://vite.dev/config/ +export default defineConfig(async () => ({ + plugins: [react()], + + // 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: 1430, + strictPort: true, + host: host || false, + hmr: host + ? { + protocol: "ws", + host, + port: 1431, + } + : undefined, + watch: { + // 3. tell Vite to ignore watching `src-tauri` + ignored: ["**/src-tauri/**"], + }, + }, +}));