From 179fb2a45e92bdc7b3f729faeb209bd8f9729baf Mon Sep 17 00:00:00 2001 From: Tanner Sommers Date: Thu, 25 Jul 2024 20:07:23 -0500 Subject: [PATCH] inital commit --- .gitignore | 21 + .npmrc | 1 + .prettierignore | 4 + .prettierrc | 8 + README.md | 38 + eslint.config.js | 33 + package-lock.json | 4564 +++++++++++++++++++++ package.json | 42 + postcss.config.js | 6 + src-tauri/.gitignore | 3 + src-tauri/Cargo.lock | 5313 +++++++++++++++++++++++++ src-tauri/Cargo.toml | 31 + src-tauri/build.rs | 3 + src-tauri/icons/128x128.png | Bin 0 -> 3965 bytes src-tauri/icons/128x128@2x.png | Bin 0 -> 7797 bytes src-tauri/icons/32x32.png | Bin 0 -> 1011 bytes src-tauri/icons/Square107x107Logo.png | Bin 0 -> 3392 bytes src-tauri/icons/Square142x142Logo.png | Bin 0 -> 4250 bytes src-tauri/icons/Square150x150Logo.png | Bin 0 -> 4502 bytes src-tauri/icons/Square284x284Logo.png | Bin 0 -> 8877 bytes src-tauri/icons/Square30x30Logo.png | Bin 0 -> 957 bytes src-tauri/icons/Square310x310Logo.png | Bin 0 -> 9552 bytes src-tauri/icons/Square44x44Logo.png | Bin 0 -> 1402 bytes src-tauri/icons/Square71x71Logo.png | Bin 0 -> 2282 bytes src-tauri/icons/Square89x89Logo.png | Bin 0 -> 2784 bytes src-tauri/icons/StoreLogo.png | Bin 0 -> 1529 bytes src-tauri/icons/icon.icns | Bin 0 -> 101952 bytes src-tauri/icons/icon.ico | Bin 0 -> 14610 bytes src-tauri/icons/icon.png | Bin 0 -> 12443 bytes src-tauri/src/commands/config/mod.rs | 43 + src-tauri/src/commands/fansly/mod.rs | 37 + src-tauri/src/commands/mod.rs | 3 + src-tauri/src/commands/utils/mod.rs | 4 + src-tauri/src/handlers/config/mod.rs | 105 + src-tauri/src/handlers/fansly/mod.rs | 254 ++ src-tauri/src/handlers/mod.rs | 2 + src-tauri/src/main.rs | 26 + src-tauri/src/structs/mod.rs | 196 + src-tauri/tauri.conf.json | 89 + src/app.css | 3 + src/app.d.ts | 13 + src/app.html | 12 + src/lib/index.ts | 1 + src/lib/types.ts | 255 ++ src/lib/utils.ts | 9 + src/routes/+layout.svelte | 5 + src/routes/+layout.ts | 2 + src/routes/+page.svelte | 98 + src/routes/home/+page.svelte | 299 ++ src/routes/setup/+page.svelte | 266 ++ static/fanslySync.png | Bin 0 -> 19101 bytes svelte.config.js | 18 + tailwind.config.js | 8 + tsconfig.json | 19 + vite.config.ts | 6 + 55 files changed, 11840 insertions(+) create mode 100644 .gitignore create mode 100644 .npmrc create mode 100644 .prettierignore create mode 100644 .prettierrc create mode 100644 README.md create mode 100644 eslint.config.js create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 postcss.config.js 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/icons/128x128.png create mode 100644 src-tauri/icons/128x128@2x.png create mode 100644 src-tauri/icons/32x32.png create mode 100644 src-tauri/icons/Square107x107Logo.png create mode 100644 src-tauri/icons/Square142x142Logo.png create mode 100644 src-tauri/icons/Square150x150Logo.png create mode 100644 src-tauri/icons/Square284x284Logo.png create mode 100644 src-tauri/icons/Square30x30Logo.png create mode 100644 src-tauri/icons/Square310x310Logo.png create mode 100644 src-tauri/icons/Square44x44Logo.png create mode 100644 src-tauri/icons/Square71x71Logo.png create mode 100644 src-tauri/icons/Square89x89Logo.png create mode 100644 src-tauri/icons/StoreLogo.png create mode 100644 src-tauri/icons/icon.icns create mode 100644 src-tauri/icons/icon.ico create mode 100644 src-tauri/icons/icon.png create mode 100644 src-tauri/src/commands/config/mod.rs create mode 100644 src-tauri/src/commands/fansly/mod.rs create mode 100644 src-tauri/src/commands/mod.rs create mode 100644 src-tauri/src/commands/utils/mod.rs create mode 100644 src-tauri/src/handlers/config/mod.rs create mode 100644 src-tauri/src/handlers/fansly/mod.rs create mode 100644 src-tauri/src/handlers/mod.rs create mode 100644 src-tauri/src/main.rs create mode 100644 src-tauri/src/structs/mod.rs create mode 100644 src-tauri/tauri.conf.json create mode 100644 src/app.css create mode 100644 src/app.d.ts create mode 100644 src/app.html create mode 100644 src/lib/index.ts create mode 100644 src/lib/types.ts create mode 100644 src/lib/utils.ts create mode 100644 src/routes/+layout.svelte create mode 100644 src/routes/+layout.ts create mode 100644 src/routes/+page.svelte create mode 100644 src/routes/home/+page.svelte create mode 100644 src/routes/setup/+page.svelte create mode 100644 static/fanslySync.png create mode 100644 svelte.config.js create mode 100644 tailwind.config.js create mode 100644 tsconfig.json create mode 100644 vite.config.ts diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..79518f7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,21 @@ +node_modules + +# Output +.output +.vercel +/.svelte-kit +/build + +# OS +.DS_Store +Thumbs.db + +# Env +.env +.env.* +!.env.example +!.env.test + +# Vite +vite.config.js.timestamp-* +vite.config.ts.timestamp-* diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..b6f27f1 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +engine-strict=true diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..ab78a95 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,4 @@ +# Package Managers +package-lock.json +pnpm-lock.yaml +yarn.lock diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..9573023 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,8 @@ +{ + "useTabs": true, + "singleQuote": true, + "trailingComma": "none", + "printWidth": 100, + "plugins": ["prettier-plugin-svelte"], + "overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }] +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..5ce6766 --- /dev/null +++ b/README.md @@ -0,0 +1,38 @@ +# create-svelte + +Everything you need to build a Svelte project, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/main/packages/create-svelte). + +## Creating a project + +If you're seeing this, you've probably already done this step. Congrats! + +```bash +# create a new project in the current directory +npm create svelte@latest + +# create a new project in my-app +npm create svelte@latest my-app +``` + +## Developing + +Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server: + +```bash +npm run dev + +# or start the server and open the app in a new browser tab +npm run dev -- --open +``` + +## Building + +To create a production version of your app: + +```bash +npm run build +``` + +You can preview the production build with `npm run preview`. + +> To deploy your app, you may need to install an [adapter](https://kit.svelte.dev/docs/adapters) for your target environment. diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..a351fa9 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,33 @@ +import js from '@eslint/js'; +import ts from 'typescript-eslint'; +import svelte from 'eslint-plugin-svelte'; +import prettier from 'eslint-config-prettier'; +import globals from 'globals'; + +/** @type {import('eslint').Linter.FlatConfig[]} */ +export default [ + js.configs.recommended, + ...ts.configs.recommended, + ...svelte.configs['flat/recommended'], + prettier, + ...svelte.configs['flat/prettier'], + { + languageOptions: { + globals: { + ...globals.browser, + ...globals.node + } + } + }, + { + files: ['**/*.svelte'], + languageOptions: { + parserOptions: { + parser: ts.parser + } + } + }, + { + ignores: ['build/', '.svelte-kit/', 'dist/'] + } +]; diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..be3f7c0 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,4564 @@ +{ + "name": "fanslysync-desktop", + "version": "0.0.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "fanslysync-desktop", + "version": "0.0.1", + "dependencies": { + "@tauri-apps/api": "^1.6.0" + }, + "devDependencies": { + "@sveltejs/adapter-auto": "^3.0.0", + "@sveltejs/adapter-static": "^3.0.2", + "@sveltejs/kit": "^2.0.0", + "@sveltejs/vite-plugin-svelte": "^3.0.0", + "@tauri-apps/cli": "^1.6.0", + "@types/eslint": "^8.56.7", + "autoprefixer": "^10.4.19", + "eslint": "^9.0.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-svelte": "^2.36.0", + "globals": "^15.0.0", + "postcss": "^8.4.39", + "prettier": "^3.1.1", + "prettier-plugin-svelte": "^3.1.2", + "svelte": "^4.2.7", + "svelte-check": "^3.6.0", + "tailwindcss": "^3.4.6", + "tslib": "^2.4.1", + "typescript": "^5.0.0", + "typescript-eslint": "^8.0.0-alpha.20", + "vite": "^5.0.3" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://npm.hep.gg/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://npm.hep.gg/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://npm.hep.gg/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://npm.hep.gg/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://npm.hep.gg/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://npm.hep.gg/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://npm.hep.gg/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://npm.hep.gg/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://npm.hep.gg/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://npm.hep.gg/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://npm.hep.gg/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://npm.hep.gg/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://npm.hep.gg/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://npm.hep.gg/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://npm.hep.gg/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://npm.hep.gg/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://npm.hep.gg/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://npm.hep.gg/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://npm.hep.gg/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://npm.hep.gg/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://npm.hep.gg/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://npm.hep.gg/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://npm.hep.gg/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://npm.hep.gg/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://npm.hep.gg/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://npm.hep.gg/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://npm.hep.gg/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.11.0", + "resolved": "https://npm.hep.gg/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.17.1", + "resolved": "https://npm.hep.gg/@eslint/config-array/-/config-array-0.17.1.tgz", + "integrity": "sha512-BlYOpej8AQ8Ev9xVqroV7a02JK3SkBAaN9GfMMH9W6Ch8FlQlkjGw4Ir7+FgYwfirivAf4t+GtzuAxqfukmISA==", + "dev": true, + "dependencies": { + "@eslint/object-schema": "^2.1.4", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.1.0", + "resolved": "https://npm.hep.gg/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", + "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://npm.hep.gg/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "9.7.0", + "resolved": "https://npm.hep.gg/@eslint/js/-/js-9.7.0.tgz", + "integrity": "sha512-ChuWDQenef8OSFnvuxv0TCVxEwmu3+hPNKvM9B34qpM0rDRbjL8t5QkQeHHeAfsKQjuH9wS82WeCi1J/owatng==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.4", + "resolved": "https://npm.hep.gg/@eslint/object-schema/-/object-schema-2.1.4.tgz", + "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://npm.hep.gg/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.3.0", + "resolved": "https://npm.hep.gg/@humanwhocodes/retry/-/retry-0.3.0.tgz", + "integrity": "sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==", + "dev": true, + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://npm.hep.gg/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://npm.hep.gg/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://npm.hep.gg/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://npm.hep.gg/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://npm.hep.gg/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://npm.hep.gg/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://npm.hep.gg/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://npm.hep.gg/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://npm.hep.gg/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://npm.hep.gg/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://npm.hep.gg/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://npm.hep.gg/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.25", + "resolved": "https://npm.hep.gg/@polka/url/-/url-1.0.0-next.25.tgz", + "integrity": "sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==", + "dev": true + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.19.0", + "resolved": "https://npm.hep.gg/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.19.0.tgz", + "integrity": "sha512-JlPfZ/C7yn5S5p0yKk7uhHTTnFlvTgLetl2VxqE518QgyM7C9bSfFTYvB/Q/ftkq0RIPY4ySxTz+/wKJ/dXC0w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.19.0", + "resolved": "https://npm.hep.gg/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.19.0.tgz", + "integrity": "sha512-RDxUSY8D1tWYfn00DDi5myxKgOk6RvWPxhmWexcICt/MEC6yEMr4HNCu1sXXYLw8iAsg0D44NuU+qNq7zVWCrw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.19.0", + "resolved": "https://npm.hep.gg/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.19.0.tgz", + "integrity": "sha512-emvKHL4B15x6nlNTBMtIaC9tLPRpeA5jMvRLXVbl/W9Ie7HhkrE7KQjvgS9uxgatL1HmHWDXk5TTS4IaNJxbAA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.19.0", + "resolved": "https://npm.hep.gg/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.19.0.tgz", + "integrity": "sha512-fO28cWA1dC57qCd+D0rfLC4VPbh6EOJXrreBmFLWPGI9dpMlER2YwSPZzSGfq11XgcEpPukPTfEVFtw2q2nYJg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.19.0", + "resolved": "https://npm.hep.gg/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.19.0.tgz", + "integrity": "sha512-2Rn36Ubxdv32NUcfm0wB1tgKqkQuft00PtM23VqLuCUR4N5jcNWDoV5iBC9jeGdgS38WK66ElncprqgMUOyomw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.19.0", + "resolved": "https://npm.hep.gg/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.19.0.tgz", + "integrity": "sha512-gJuzIVdq/X1ZA2bHeCGCISe0VWqCoNT8BvkQ+BfsixXwTOndhtLUpOg0A1Fcx/+eA6ei6rMBzlOz4JzmiDw7JQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.19.0", + "resolved": "https://npm.hep.gg/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.19.0.tgz", + "integrity": "sha512-0EkX2HYPkSADo9cfeGFoQ7R0/wTKb7q6DdwI4Yn/ULFE1wuRRCHybxpl2goQrx4c/yzK3I8OlgtBu4xvted0ug==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.19.0", + "resolved": "https://npm.hep.gg/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.19.0.tgz", + "integrity": "sha512-GlIQRj9px52ISomIOEUq/IojLZqzkvRpdP3cLgIE1wUWaiU5Takwlzpz002q0Nxxr1y2ZgxC2obWxjr13lvxNQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.19.0", + "resolved": "https://npm.hep.gg/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.19.0.tgz", + "integrity": "sha512-N6cFJzssruDLUOKfEKeovCKiHcdwVYOT1Hs6dovDQ61+Y9n3Ek4zXvtghPPelt6U0AH4aDGnDLb83uiJMkWYzQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.19.0", + "resolved": "https://npm.hep.gg/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.19.0.tgz", + "integrity": "sha512-2DnD3mkS2uuam/alF+I7M84koGwvn3ZVD7uG+LEWpyzo/bq8+kKnus2EVCkcvh6PlNB8QPNFOz6fWd5N8o1CYg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.19.0", + "resolved": "https://npm.hep.gg/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.19.0.tgz", + "integrity": "sha512-D6pkaF7OpE7lzlTOFCB2m3Ngzu2ykw40Nka9WmKGUOTS3xcIieHe82slQlNq69sVB04ch73thKYIWz/Ian8DUA==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.19.0", + "resolved": "https://npm.hep.gg/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.19.0.tgz", + "integrity": "sha512-HBndjQLP8OsdJNSxpNIN0einbDmRFg9+UQeZV1eiYupIRuZsDEoeGU43NQsS34Pp166DtwQOnpcbV/zQxM+rWA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.19.0", + "resolved": "https://npm.hep.gg/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.19.0.tgz", + "integrity": "sha512-HxfbvfCKJe/RMYJJn0a12eiOI9OOtAUF4G6ozrFUK95BNyoJaSiBjIOHjZskTUffUrB84IPKkFG9H9nEvJGW6A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.19.0", + "resolved": "https://npm.hep.gg/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.19.0.tgz", + "integrity": "sha512-HxDMKIhmcguGTiP5TsLNolwBUK3nGGUEoV/BO9ldUBoMLBssvh4J0X8pf11i1fTV7WShWItB1bKAKjX4RQeYmg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.19.0", + "resolved": "https://npm.hep.gg/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.19.0.tgz", + "integrity": "sha512-xItlIAZZaiG/u0wooGzRsx11rokP4qyc/79LkAOdznGRAbOFc+SfEdfUOszG1odsHNgwippUJavag/+W/Etc6Q==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.19.0", + "resolved": "https://npm.hep.gg/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.19.0.tgz", + "integrity": "sha512-xNo5fV5ycvCCKqiZcpB65VMR11NJB+StnxHz20jdqRAktfdfzhgjTiJ2doTDQE/7dqGaV5I7ZGqKpgph6lCIag==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@sveltejs/adapter-auto": { + "version": "3.2.2", + "resolved": "https://npm.hep.gg/@sveltejs/adapter-auto/-/adapter-auto-3.2.2.tgz", + "integrity": "sha512-Mso5xPCA8zgcKrv+QioVlqMZkyUQ5MjDJiEPuG/Z7cV/5tmwV7LmcVWk5tZ+H0NCOV1x12AsoSpt/CwFwuVXMA==", + "dev": true, + "dependencies": { + "import-meta-resolve": "^4.1.0" + }, + "peerDependencies": { + "@sveltejs/kit": "^2.0.0" + } + }, + "node_modules/@sveltejs/adapter-static": { + "version": "3.0.2", + "resolved": "https://npm.hep.gg/@sveltejs/adapter-static/-/adapter-static-3.0.2.tgz", + "integrity": "sha512-/EBFydZDwfwFfFEuF1vzUseBoRziwKP7AoHAwv+Ot3M084sE/HTVBHf9mCmXfdM9ijprY5YEugZjleflncX5fQ==", + "dev": true, + "peerDependencies": { + "@sveltejs/kit": "^2.0.0" + } + }, + "node_modules/@sveltejs/kit": { + "version": "2.5.18", + "resolved": "https://npm.hep.gg/@sveltejs/kit/-/kit-2.5.18.tgz", + "integrity": "sha512-+g06hvpVAnH7b4CDjhnTDgFWBKBiQJpuSmQeGYOuzbO3SC3tdYjRNlDCrafvDtKbGiT2uxY5Dn9qdEUGVZdWOQ==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@types/cookie": "^0.6.0", + "cookie": "^0.6.0", + "devalue": "^5.0.0", + "esm-env": "^1.0.0", + "import-meta-resolve": "^4.1.0", + "kleur": "^4.1.5", + "magic-string": "^0.30.5", + "mrmime": "^2.0.0", + "sade": "^1.8.1", + "set-cookie-parser": "^2.6.0", + "sirv": "^2.0.4", + "tiny-glob": "^0.2.9" + }, + "bin": { + "svelte-kit": "svelte-kit.js" + }, + "engines": { + "node": ">=18.13" + }, + "peerDependencies": { + "@sveltejs/vite-plugin-svelte": "^3.0.0", + "svelte": "^4.0.0 || ^5.0.0-next.0", + "vite": "^5.0.3" + } + }, + "node_modules/@sveltejs/vite-plugin-svelte": { + "version": "3.1.1", + "resolved": "https://npm.hep.gg/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-3.1.1.tgz", + "integrity": "sha512-rimpFEAboBBHIlzISibg94iP09k/KYdHgVhJlcsTfn7KMBhc70jFX/GRWkRdFCc2fdnk+4+Bdfej23cMDnJS6A==", + "dev": true, + "dependencies": { + "@sveltejs/vite-plugin-svelte-inspector": "^2.1.0", + "debug": "^4.3.4", + "deepmerge": "^4.3.1", + "kleur": "^4.1.5", + "magic-string": "^0.30.10", + "svelte-hmr": "^0.16.0", + "vitefu": "^0.2.5" + }, + "engines": { + "node": "^18.0.0 || >=20" + }, + "peerDependencies": { + "svelte": "^4.0.0 || ^5.0.0-next.0", + "vite": "^5.0.0" + } + }, + "node_modules/@sveltejs/vite-plugin-svelte-inspector": { + "version": "2.1.0", + "resolved": "https://npm.hep.gg/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-2.1.0.tgz", + "integrity": "sha512-9QX28IymvBlSCqsCll5t0kQVxipsfhFFL+L2t3nTWfXnddYwxBuAEtTtlaVQpRz9c37BhJjltSeY4AJSC03SSg==", + "dev": true, + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.0.0 || >=20" + }, + "peerDependencies": { + "@sveltejs/vite-plugin-svelte": "^3.0.0", + "svelte": "^4.0.0 || ^5.0.0-next.0", + "vite": "^5.0.0" + } + }, + "node_modules/@tauri-apps/api": { + "version": "1.6.0", + "resolved": "https://npm.hep.gg/@tauri-apps/api/-/api-1.6.0.tgz", + "integrity": "sha512-rqI++FWClU5I2UBp4HXFvl+sBWkdigBkxnpJDQUWttNyG7IZP4FwQGhTNL5EOw0vI8i6eSAJ5frLqO7n7jbJdg==", + "engines": { + "node": ">= 14.6.0", + "npm": ">= 6.6.0", + "yarn": ">= 1.19.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/tauri" + } + }, + "node_modules/@tauri-apps/cli": { + "version": "1.6.0", + "resolved": "https://npm.hep.gg/@tauri-apps/cli/-/cli-1.6.0.tgz", + "integrity": "sha512-DBBpBl6GhTzm8ImMbKkfaZ4fDTykWrC7Q5OXP4XqD91recmDEn2LExuvuiiS3HYe7uP8Eb5B9NPHhqJb+Zo7qQ==", + "dev": true, + "bin": { + "tauri": "tauri.js" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/tauri" + }, + "optionalDependencies": { + "@tauri-apps/cli-darwin-arm64": "1.6.0", + "@tauri-apps/cli-darwin-x64": "1.6.0", + "@tauri-apps/cli-linux-arm-gnueabihf": "1.6.0", + "@tauri-apps/cli-linux-arm64-gnu": "1.6.0", + "@tauri-apps/cli-linux-arm64-musl": "1.6.0", + "@tauri-apps/cli-linux-x64-gnu": "1.6.0", + "@tauri-apps/cli-linux-x64-musl": "1.6.0", + "@tauri-apps/cli-win32-arm64-msvc": "1.6.0", + "@tauri-apps/cli-win32-ia32-msvc": "1.6.0", + "@tauri-apps/cli-win32-x64-msvc": "1.6.0" + } + }, + "node_modules/@tauri-apps/cli-darwin-arm64": { + "version": "1.6.0", + "resolved": "https://npm.hep.gg/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-1.6.0.tgz", + "integrity": "sha512-SNRwUD9nqGxY47mbY1CGTt/jqyQOU7Ps7Mx/mpgahL0FVUDiCEY/5L9QfEPPhEgccgcelEVn7i6aQHIkHyUtCA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-darwin-x64": { + "version": "1.6.0", + "resolved": "https://npm.hep.gg/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-1.6.0.tgz", + "integrity": "sha512-g2/uDR/eeH2arvuawA4WwaEOqv/7jDO/ZLNI3JlBjP5Pk8GGb3Kdy0ro1xQzF94mtk2mOnOXa4dMgAet4sUJ1A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-arm-gnueabihf": { + "version": "1.6.0", + "resolved": "https://npm.hep.gg/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-1.6.0.tgz", + "integrity": "sha512-EVwf4oRkQyG8BpSrk0gqO7oA0sDM2MdNDtJpMfleYFEgCxLIOGZKNqaOW3M7U+0Y4qikmG3TtRK+ngc8Ymtrjg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-arm64-gnu": { + "version": "1.6.0", + "resolved": "https://npm.hep.gg/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-1.6.0.tgz", + "integrity": "sha512-YdpY17cAySrhK9dX4BUVEmhAxE2o+6skIEFg8iN/xrDwRxhaNPI9I80YXPatUTX54Kx55T5++25VJG9+3iw83A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-arm64-musl": { + "version": "1.6.0", + "resolved": "https://npm.hep.gg/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.6.0.tgz", + "integrity": "sha512-4U628tuf2U8pMr4tIBJhEkrFwt+46dwhXrDlpdyWSZtnop5RJAVKHODm0KbWns4xGKfTW1F3r6sSv+2ZxLcISA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-x64-gnu": { + "version": "1.6.0", + "resolved": "https://npm.hep.gg/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-1.6.0.tgz", + "integrity": "sha512-AKRzp76fVUaJyXj5KRJT9bJyhwZyUnRQU0RqIRqOtZCT5yr6qGP8rjtQ7YhCIzWrseBlOllc3Qvbgw3Yl0VQcA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-linux-x64-musl": { + "version": "1.6.0", + "resolved": "https://npm.hep.gg/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-1.6.0.tgz", + "integrity": "sha512-0edIdq6aMBTaRMIXddHfyAFL361JqulLLd2Wi2aoOie7DkQ2MYh6gv3hA7NB9gqFwNIGE+xtJ4BkXIP2tSGPlg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-win32-arm64-msvc": { + "version": "1.6.0", + "resolved": "https://npm.hep.gg/@tauri-apps/cli-win32-arm64-msvc/-/cli-win32-arm64-msvc-1.6.0.tgz", + "integrity": "sha512-QwWpWk4ubcwJ1rljsRAmINgB2AwkyzZhpYbalA+MmzyYMREcdXWGkyixWbRZgqc6fEWEBmq5UG73qz5eBJiIKg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-win32-ia32-msvc": { + "version": "1.6.0", + "resolved": "https://npm.hep.gg/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-1.6.0.tgz", + "integrity": "sha512-Vtw0yxO9+aEFuhuxQ57ALG43tjECopRimRuKGbtZYDCriB/ty5TrT3QWMdy0dxBkpDTu3Rqsz30sbDzw6tlP3Q==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tauri-apps/cli-win32-x64-msvc": { + "version": "1.6.0", + "resolved": "https://npm.hep.gg/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-1.6.0.tgz", + "integrity": "sha512-h54FHOvGi7+LIfRchzgZYSCHB1HDlP599vWXQQJ/XnwJY+6Rwr2E5bOe/EhqoG8rbGkfK0xX3KPAvXPbUlmggg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@types/cookie": { + "version": "0.6.0", + "resolved": "https://npm.hep.gg/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", + "dev": true + }, + "node_modules/@types/eslint": { + "version": "8.56.11", + "resolved": "https://npm.hep.gg/@types/eslint/-/eslint-8.56.11.tgz", + "integrity": "sha512-sVBpJMf7UPo/wGecYOpk2aQya2VUGeHhe38WG7/mN5FufNSubf5VT9Uh9Uyp8/eLJpu1/tuhJ/qTo4mhSB4V4Q==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://npm.hep.gg/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://npm.hep.gg/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/pug": { + "version": "2.0.10", + "resolved": "https://npm.hep.gg/@types/pug/-/pug-2.0.10.tgz", + "integrity": "sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.0.0-alpha.54", + "resolved": "https://npm.hep.gg/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.0.0-alpha.54.tgz", + "integrity": "sha512-JBuk5rdo9XfoAc797uPh2QdzfnbQmYTnOZ//IKiXm96a2AzS05VmXSVka4GQyrp7giGWSNjW6y2wPpsWheqd9Q==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.0.0-alpha.54", + "@typescript-eslint/type-utils": "8.0.0-alpha.54", + "@typescript-eslint/utils": "8.0.0-alpha.54", + "@typescript-eslint/visitor-keys": "8.0.0-alpha.54", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.0.0-alpha.54", + "resolved": "https://npm.hep.gg/@typescript-eslint/parser/-/parser-8.0.0-alpha.54.tgz", + "integrity": "sha512-473V2mTNH+KPNVPj8MIGizDXmmJ56gpYsh+ILa8uEWUYMhvE0DNnozEt59TonS1Y9D15AJZGas6+1hcpQ77Dbg==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "8.0.0-alpha.54", + "@typescript-eslint/types": "8.0.0-alpha.54", + "@typescript-eslint/typescript-estree": "8.0.0-alpha.54", + "@typescript-eslint/visitor-keys": "8.0.0-alpha.54", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.0.0-alpha.54", + "resolved": "https://npm.hep.gg/@typescript-eslint/scope-manager/-/scope-manager-8.0.0-alpha.54.tgz", + "integrity": "sha512-z+5GlCAskUTTWOFF2G7olTyKZyn+AVdDkiNCP2fhDtOCV1ePX1EaXy1uwqRRROf8p8uryj7vR7OtIErZE5yAng==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.0.0-alpha.54", + "@typescript-eslint/visitor-keys": "8.0.0-alpha.54" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.0.0-alpha.54", + "resolved": "https://npm.hep.gg/@typescript-eslint/type-utils/-/type-utils-8.0.0-alpha.54.tgz", + "integrity": "sha512-aGqNg1vP3a1tAE7lN8VDw+JhAefhqotMEcxw+2NKQm3vG4BqzIQNeF87xle9+94t8MPPmUPzRjRmO7GySu8LRg==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "8.0.0-alpha.54", + "@typescript-eslint/utils": "8.0.0-alpha.54", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.0.0-alpha.54", + "resolved": "https://npm.hep.gg/@typescript-eslint/types/-/types-8.0.0-alpha.54.tgz", + "integrity": "sha512-p4CGzb2UW2tJgk7zRL1Iwyd4qMuPnF2TL5/VdEcz2KANHkTReagQ6B3MzJGcuNIK7t+ysolZZILJpj+8cHBzsQ==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.0.0-alpha.54", + "resolved": "https://npm.hep.gg/@typescript-eslint/typescript-estree/-/typescript-estree-8.0.0-alpha.54.tgz", + "integrity": "sha512-oCgHCQm88pBx9QwfGVE42LXVRG3M5PUIP4w521yGMijHn5FEt+E/NGMPU3NXWKUvp0LpEkxABSinYdz69aZITA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.0.0-alpha.54", + "@typescript-eslint/visitor-keys": "8.0.0-alpha.54", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://npm.hep.gg/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://npm.hep.gg/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.0.0-alpha.54", + "resolved": "https://npm.hep.gg/@typescript-eslint/utils/-/utils-8.0.0-alpha.54.tgz", + "integrity": "sha512-Xu+dl3SJ4NOuzSHpRj1nIJPsoNTcPuG6EFVolrEVl+GZReaiBdexwpTo4/gV64khZEVewEIdYV3FBs5elIjI0g==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.0.0-alpha.54", + "@typescript-eslint/types": "8.0.0-alpha.54", + "@typescript-eslint/typescript-estree": "8.0.0-alpha.54" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.0.0-alpha.54", + "resolved": "https://npm.hep.gg/@typescript-eslint/visitor-keys/-/visitor-keys-8.0.0-alpha.54.tgz", + "integrity": "sha512-lS8wrI6Vxw6ebIi+ehocAjXLG43bN5JCC8+wtGDD3Xw9O/EVpanAVdftefJs/mlK87eyccvVIiiHgD294TpIEQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.0.0-alpha.54", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://npm.hep.gg/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://npm.hep.gg/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://npm.hep.gg/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://npm.hep.gg/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://npm.hep.gg/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://npm.hep.gg/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://npm.hep.gg/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://npm.hep.gg/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://npm.hep.gg/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://npm.hep.gg/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://npm.hep.gg/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "dev": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://npm.hep.gg/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.19", + "resolved": "https://npm.hep.gg/autoprefixer/-/autoprefixer-10.4.19.tgz", + "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-lite": "^1.0.30001599", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://npm.hep.gg/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://npm.hep.gg/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://npm.hep.gg/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://npm.hep.gg/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://npm.hep.gg/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.2", + "resolved": "https://npm.hep.gg/browserslist/-/browserslist-4.23.2.tgz", + "integrity": "sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001640", + "electron-to-chromium": "^1.4.820", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.1.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-crc32": { + "version": "1.0.0", + "resolved": "https://npm.hep.gg/buffer-crc32/-/buffer-crc32-1.0.0.tgz", + "integrity": "sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://npm.hep.gg/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://npm.hep.gg/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001643", + "resolved": "https://npm.hep.gg/caniuse-lite/-/caniuse-lite-1.0.30001643.tgz", + "integrity": "sha512-ERgWGNleEilSrHM6iUz/zJNSQTP8Mr21wDWpdgvRwcTXGAq6jMtOUPP4dqFPTdKqZ2wKTdtB+uucZ3MRpAUSmg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://npm.hep.gg/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://npm.hep.gg/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://npm.hep.gg/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/code-red": { + "version": "1.0.4", + "resolved": "https://npm.hep.gg/code-red/-/code-red-1.0.4.tgz", + "integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15", + "@types/estree": "^1.0.1", + "acorn": "^8.10.0", + "estree-walker": "^3.0.3", + "periscopic": "^3.1.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://npm.hep.gg/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://npm.hep.gg/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://npm.hep.gg/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://npm.hep.gg/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://npm.hep.gg/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://npm.hep.gg/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://npm.hep.gg/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://npm.hep.gg/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/debug": { + "version": "4.3.5", + "resolved": "https://npm.hep.gg/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://npm.hep.gg/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://npm.hep.gg/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://npm.hep.gg/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/detect-indent": { + "version": "6.1.0", + "resolved": "https://npm.hep.gg/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/devalue": { + "version": "5.0.0", + "resolved": "https://npm.hep.gg/devalue/-/devalue-5.0.0.tgz", + "integrity": "sha512-gO+/OMXF7488D+u3ue+G7Y4AA3ZmUnB3eHJXmBTgNHvr4ZNzl36A0ZtG+XCRNYCkYx/bFmw4qtkoFLa+wSrwAA==", + "dev": true + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://npm.hep.gg/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://npm.hep.gg/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://npm.hep.gg/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://npm.hep.gg/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.5.0", + "resolved": "https://npm.hep.gg/electron-to-chromium/-/electron-to-chromium-1.5.0.tgz", + "integrity": "sha512-Vb3xHHYnLseK8vlMJQKJYXJ++t4u1/qJ3vykuVrVjvdiOEhYyT1AuP4x03G8EnPmYvYOhe9T+dADTmthjRQMkA==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://npm.hep.gg/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/es6-promise": { + "version": "3.3.1", + "resolved": "https://npm.hep.gg/es6-promise/-/es6-promise-3.3.1.tgz", + "integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==", + "dev": true + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://npm.hep.gg/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://npm.hep.gg/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://npm.hep.gg/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.7.0", + "resolved": "https://npm.hep.gg/eslint/-/eslint-9.7.0.tgz", + "integrity": "sha512-FzJ9D/0nGiCGBf8UXO/IGLTgLVzIxze1zpfA8Ton2mjLovXdAPlYDv+MQDcqj3TmrhAGYfOpz9RfR+ent0AgAw==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.11.0", + "@eslint/config-array": "^0.17.0", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "9.7.0", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.3.0", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.0.2", + "eslint-visitor-keys": "^4.0.0", + "espree": "^10.1.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/eslint-compat-utils": { + "version": "0.5.1", + "resolved": "https://npm.hep.gg/eslint-compat-utils/-/eslint-compat-utils-0.5.1.tgz", + "integrity": "sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==", + "dev": true, + "dependencies": { + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/eslint-config-prettier": { + "version": "9.1.0", + "resolved": "https://npm.hep.gg/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-svelte": { + "version": "2.43.0", + "resolved": "https://npm.hep.gg/eslint-plugin-svelte/-/eslint-plugin-svelte-2.43.0.tgz", + "integrity": "sha512-REkxQWvg2pp7QVLxQNa+dJ97xUqRe7Y2JJbSWkHSuszu0VcblZtXkPBPckkivk99y5CdLw4slqfPylL2d/X4jQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@jridgewell/sourcemap-codec": "^1.4.15", + "eslint-compat-utils": "^0.5.1", + "esutils": "^2.0.3", + "known-css-properties": "^0.34.0", + "postcss": "^8.4.38", + "postcss-load-config": "^3.1.4", + "postcss-safe-parser": "^6.0.0", + "postcss-selector-parser": "^6.1.0", + "semver": "^7.6.2", + "svelte-eslint-parser": "^0.41.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0-0 || ^9.0.0-0", + "svelte": "^3.37.0 || ^4.0.0 || ^5.0.0-next.191" + }, + "peerDependenciesMeta": { + "svelte": { + "optional": true + } + } + }, + "node_modules/eslint-scope": { + "version": "8.0.2", + "resolved": "https://npm.hep.gg/eslint-scope/-/eslint-scope-8.0.2.tgz", + "integrity": "sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.0.0", + "resolved": "https://npm.hep.gg/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", + "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esm-env": { + "version": "1.0.0", + "resolved": "https://npm.hep.gg/esm-env/-/esm-env-1.0.0.tgz", + "integrity": "sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==", + "dev": true + }, + "node_modules/espree": { + "version": "10.1.0", + "resolved": "https://npm.hep.gg/espree/-/espree-10.1.0.tgz", + "integrity": "sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==", + "dev": true, + "dependencies": { + "acorn": "^8.12.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://npm.hep.gg/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://npm.hep.gg/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://npm.hep.gg/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://npm.hep.gg/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://npm.hep.gg/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://npm.hep.gg/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://npm.hep.gg/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://npm.hep.gg/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://npm.hep.gg/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://npm.hep.gg/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://npm.hep.gg/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://npm.hep.gg/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://npm.hep.gg/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://npm.hep.gg/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://npm.hep.gg/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://npm.hep.gg/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/foreground-child": { + "version": "3.2.1", + "resolved": "https://npm.hep.gg/foreground-child/-/foreground-child-3.2.1.tgz", + "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://npm.hep.gg/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://npm.hep.gg/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://npm.hep.gg/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://npm.hep.gg/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://npm.hep.gg/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://npm.hep.gg/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "15.8.0", + "resolved": "https://npm.hep.gg/globals/-/globals-15.8.0.tgz", + "integrity": "sha512-VZAJ4cewHTExBWDHR6yptdIBlx9YSSZuwojj9Nt5mBRXQzrKakDsVKQ1J63sklLvzAJm0X5+RpO4i3Y2hcOnFw==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalyzer": { + "version": "0.1.0", + "resolved": "https://npm.hep.gg/globalyzer/-/globalyzer-0.1.0.tgz", + "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==", + "dev": true + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://npm.hep.gg/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globrex": { + "version": "0.1.2", + "resolved": "https://npm.hep.gg/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", + "dev": true + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://npm.hep.gg/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://npm.hep.gg/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://npm.hep.gg/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://npm.hep.gg/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://npm.hep.gg/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://npm.hep.gg/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-meta-resolve": { + "version": "4.1.0", + "resolved": "https://npm.hep.gg/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", + "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://npm.hep.gg/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://npm.hep.gg/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://npm.hep.gg/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://npm.hep.gg/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.15.0", + "resolved": "https://npm.hep.gg/is-core-module/-/is-core-module-2.15.0.tgz", + "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==", + "dev": true, + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://npm.hep.gg/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://npm.hep.gg/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://npm.hep.gg/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://npm.hep.gg/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://npm.hep.gg/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-reference": { + "version": "3.0.2", + "resolved": "https://npm.hep.gg/is-reference/-/is-reference-3.0.2.tgz", + "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", + "dev": true, + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://npm.hep.gg/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://npm.hep.gg/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.6", + "resolved": "https://npm.hep.gg/jiti/-/jiti-1.21.6.tgz", + "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://npm.hep.gg/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://npm.hep.gg/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://npm.hep.gg/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://npm.hep.gg/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://npm.hep.gg/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://npm.hep.gg/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/known-css-properties": { + "version": "0.34.0", + "resolved": "https://npm.hep.gg/known-css-properties/-/known-css-properties-0.34.0.tgz", + "integrity": "sha512-tBECoUqNFbyAY4RrbqsBQqDFpGXAEbdD5QKr8kACx3+rnArmuuR22nKQWKazvp07N9yjTyDZaw/20UIH8tL9DQ==", + "dev": true + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://npm.hep.gg/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://npm.hep.gg/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://npm.hep.gg/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/locate-character": { + "version": "3.0.0", + "resolved": "https://npm.hep.gg/locate-character/-/locate-character-3.0.0.tgz", + "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", + "dev": true + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://npm.hep.gg/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://npm.hep.gg/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://npm.hep.gg/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true + }, + "node_modules/magic-string": { + "version": "0.30.10", + "resolved": "https://npm.hep.gg/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://npm.hep.gg/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://npm.hep.gg/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.7", + "resolved": "https://npm.hep.gg/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "dev": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://npm.hep.gg/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://npm.hep.gg/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://npm.hep.gg/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://npm.hep.gg/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://npm.hep.gg/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://npm.hep.gg/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/mrmime": { + "version": "2.0.0", + "resolved": "https://npm.hep.gg/mrmime/-/mrmime-2.0.0.tgz", + "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://npm.hep.gg/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://npm.hep.gg/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://npm.hep.gg/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://npm.hep.gg/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://npm.hep.gg/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://npm.hep.gg/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://npm.hep.gg/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://npm.hep.gg/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://npm.hep.gg/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://npm.hep.gg/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://npm.hep.gg/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://npm.hep.gg/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://npm.hep.gg/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://npm.hep.gg/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "dev": true + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://npm.hep.gg/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://npm.hep.gg/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://npm.hep.gg/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://npm.hep.gg/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://npm.hep.gg/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://npm.hep.gg/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://npm.hep.gg/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/periscopic": { + "version": "3.1.0", + "resolved": "https://npm.hep.gg/periscopic/-/periscopic-3.1.0.tgz", + "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^3.0.0", + "is-reference": "^3.0.0" + } + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://npm.hep.gg/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://npm.hep.gg/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://npm.hep.gg/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://npm.hep.gg/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss": { + "version": "8.4.39", + "resolved": "https://npm.hep.gg/postcss/-/postcss-8.4.39.tgz", + "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://npm.hep.gg/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://npm.hep.gg/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "3.1.4", + "resolved": "https://npm.hep.gg/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "dev": true, + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://npm.hep.gg/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-safe-parser": { + "version": "6.0.0", + "resolved": "https://npm.hep.gg/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", + "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "dev": true, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.3.3" + } + }, + "node_modules/postcss-scss": { + "version": "4.0.9", + "resolved": "https://npm.hep.gg/postcss-scss/-/postcss-scss-4.0.9.tgz", + "integrity": "sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-scss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.4.29" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.1", + "resolved": "https://npm.hep.gg/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz", + "integrity": "sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://npm.hep.gg/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://npm.hep.gg/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.3.3", + "resolved": "https://npm.hep.gg/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-plugin-svelte": { + "version": "3.2.6", + "resolved": "https://npm.hep.gg/prettier-plugin-svelte/-/prettier-plugin-svelte-3.2.6.tgz", + "integrity": "sha512-Y1XWLw7vXUQQZmgv1JAEiLcErqUniAF2wO7QJsw8BVMvpLET2dI5WpEIEJx1r11iHVdSMzQxivyfrH9On9t2IQ==", + "dev": true, + "peerDependencies": { + "prettier": "^3.0.0", + "svelte": "^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://npm.hep.gg/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://npm.hep.gg/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://npm.hep.gg/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://npm.hep.gg/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://npm.hep.gg/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://npm.hep.gg/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://npm.hep.gg/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://npm.hep.gg/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/rollup": { + "version": "4.19.0", + "resolved": "https://npm.hep.gg/rollup/-/rollup-4.19.0.tgz", + "integrity": "sha512-5r7EYSQIowHsK4eTZ0Y81qpZuJz+MUuYeqmmYmRMl1nwhdmbiYqt5jwzf6u7wyOzJgYqtCRMtVRKOtHANBz7rA==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.19.0", + "@rollup/rollup-android-arm64": "4.19.0", + "@rollup/rollup-darwin-arm64": "4.19.0", + "@rollup/rollup-darwin-x64": "4.19.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.19.0", + "@rollup/rollup-linux-arm-musleabihf": "4.19.0", + "@rollup/rollup-linux-arm64-gnu": "4.19.0", + "@rollup/rollup-linux-arm64-musl": "4.19.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.19.0", + "@rollup/rollup-linux-riscv64-gnu": "4.19.0", + "@rollup/rollup-linux-s390x-gnu": "4.19.0", + "@rollup/rollup-linux-x64-gnu": "4.19.0", + "@rollup/rollup-linux-x64-musl": "4.19.0", + "@rollup/rollup-win32-arm64-msvc": "4.19.0", + "@rollup/rollup-win32-ia32-msvc": "4.19.0", + "@rollup/rollup-win32-x64-msvc": "4.19.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://npm.hep.gg/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/sade": { + "version": "1.8.1", + "resolved": "https://npm.hep.gg/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "dev": true, + "dependencies": { + "mri": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/sander": { + "version": "0.5.1", + "resolved": "https://npm.hep.gg/sander/-/sander-0.5.1.tgz", + "integrity": "sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==", + "dev": true, + "dependencies": { + "es6-promise": "^3.1.2", + "graceful-fs": "^4.1.3", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.2" + } + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://npm.hep.gg/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-cookie-parser": { + "version": "2.6.0", + "resolved": "https://npm.hep.gg/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz", + "integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==", + "dev": true + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://npm.hep.gg/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://npm.hep.gg/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://npm.hep.gg/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sirv": { + "version": "2.0.4", + "resolved": "https://npm.hep.gg/sirv/-/sirv-2.0.4.tgz", + "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", + "dev": true, + "dependencies": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://npm.hep.gg/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/sorcery": { + "version": "0.11.1", + "resolved": "https://npm.hep.gg/sorcery/-/sorcery-0.11.1.tgz", + "integrity": "sha512-o7npfeJE6wi6J9l0/5LKshFzZ2rMatRiCDwYeDQaOzqdzRJwALhX7mk/A/ecg6wjMu7wdZbmXfD2S/vpOg0bdQ==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.14", + "buffer-crc32": "^1.0.0", + "minimist": "^1.2.0", + "sander": "^0.5.0" + }, + "bin": { + "sorcery": "bin/sorcery" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://npm.hep.gg/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://npm.hep.gg/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://npm.hep.gg/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://npm.hep.gg/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://npm.hep.gg/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://npm.hep.gg/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://npm.hep.gg/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://npm.hep.gg/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://npm.hep.gg/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://npm.hep.gg/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://npm.hep.gg/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://npm.hep.gg/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://npm.hep.gg/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sucrase/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://npm.hep.gg/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://npm.hep.gg/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://npm.hep.gg/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svelte": { + "version": "4.2.18", + "resolved": "https://npm.hep.gg/svelte/-/svelte-4.2.18.tgz", + "integrity": "sha512-d0FdzYIiAePqRJEb90WlJDkjUEx42xhivxN8muUBmfZnP+tzUgz12DJ2hRJi8sIHCME7jeK1PTMgKPSfTd8JrA==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.1", + "@jridgewell/sourcemap-codec": "^1.4.15", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/estree": "^1.0.1", + "acorn": "^8.9.0", + "aria-query": "^5.3.0", + "axobject-query": "^4.0.0", + "code-red": "^1.0.3", + "css-tree": "^2.3.1", + "estree-walker": "^3.0.3", + "is-reference": "^3.0.1", + "locate-character": "^3.0.0", + "magic-string": "^0.30.4", + "periscopic": "^3.1.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/svelte-check": { + "version": "3.8.4", + "resolved": "https://npm.hep.gg/svelte-check/-/svelte-check-3.8.4.tgz", + "integrity": "sha512-61aHMkdinWyH8BkkTX9jPLYxYzaAAz/FK/VQqdr2FiCQQ/q04WCwDlpGbHff1GdrMYTmW8chlTFvRWL9k0A8vg==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.17", + "chokidar": "^3.4.1", + "picocolors": "^1.0.0", + "sade": "^1.7.4", + "svelte-preprocess": "^5.1.3", + "typescript": "^5.0.3" + }, + "bin": { + "svelte-check": "bin/svelte-check" + }, + "peerDependencies": { + "svelte": "^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0" + } + }, + "node_modules/svelte-eslint-parser": { + "version": "0.41.0", + "resolved": "https://npm.hep.gg/svelte-eslint-parser/-/svelte-eslint-parser-0.41.0.tgz", + "integrity": "sha512-L6f4hOL+AbgfBIB52Z310pg1d2QjRqm7wy3kI1W6hhdhX5bvu7+f0R6w4ykp5HoDdzq+vGhIJmsisaiJDGmVfA==", + "dev": true, + "dependencies": { + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "postcss": "^8.4.39", + "postcss-scss": "^4.0.9" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "svelte": "^3.37.0 || ^4.0.0 || ^5.0.0-next.191" + }, + "peerDependenciesMeta": { + "svelte": { + "optional": true + } + } + }, + "node_modules/svelte-eslint-parser/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://npm.hep.gg/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/svelte-eslint-parser/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://npm.hep.gg/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/svelte-eslint-parser/node_modules/espree": { + "version": "9.6.1", + "resolved": "https://npm.hep.gg/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/svelte-hmr": { + "version": "0.16.0", + "resolved": "https://npm.hep.gg/svelte-hmr/-/svelte-hmr-0.16.0.tgz", + "integrity": "sha512-Gyc7cOS3VJzLlfj7wKS0ZnzDVdv3Pn2IuVeJPk9m2skfhcu5bq3wtIZyQGggr7/Iim5rH5cncyQft/kRLupcnA==", + "dev": true, + "engines": { + "node": "^12.20 || ^14.13.1 || >= 16" + }, + "peerDependencies": { + "svelte": "^3.19.0 || ^4.0.0" + } + }, + "node_modules/svelte-preprocess": { + "version": "5.1.4", + "resolved": "https://npm.hep.gg/svelte-preprocess/-/svelte-preprocess-5.1.4.tgz", + "integrity": "sha512-IvnbQ6D6Ao3Gg6ftiM5tdbR6aAETwjhHV+UKGf5bHGYR69RQvF1ho0JKPcbUON4vy4R7zom13jPjgdOWCQ5hDA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@types/pug": "^2.0.6", + "detect-indent": "^6.1.0", + "magic-string": "^0.30.5", + "sorcery": "^0.11.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">= 16.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.10.2", + "coffeescript": "^2.5.1", + "less": "^3.11.3 || ^4.0.0", + "postcss": "^7 || ^8", + "postcss-load-config": "^2.1.0 || ^3.0.0 || ^4.0.0 || ^5.0.0", + "pug": "^3.0.0", + "sass": "^1.26.8", + "stylus": "^0.55.0", + "sugarss": "^2.0.0 || ^3.0.0 || ^4.0.0", + "svelte": "^3.23.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0", + "typescript": ">=3.9.5 || ^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "coffeescript": { + "optional": true + }, + "less": { + "optional": true + }, + "postcss": { + "optional": true + }, + "postcss-load-config": { + "optional": true + }, + "pug": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/tailwindcss": { + "version": "3.4.6", + "resolved": "https://npm.hep.gg/tailwindcss/-/tailwindcss-3.4.6.tgz", + "integrity": "sha512-1uRHzPB+Vzu57ocybfZ4jh5Q3SdlH7XW23J5sQoM9LhE9eIOlzxer/3XPSsycvih3rboRsvt0QCmzSrqyOYUIA==", + "dev": true, + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.0", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss/node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://npm.hep.gg/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/tailwindcss/node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.1.2", + "resolved": "https://npm.hep.gg/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/tailwindcss/node_modules/yaml": { + "version": "2.5.0", + "resolved": "https://npm.hep.gg/yaml/-/yaml-2.5.0.tgz", + "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==", + "dev": true, + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://npm.hep.gg/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://npm.hep.gg/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://npm.hep.gg/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tiny-glob": { + "version": "0.2.9", + "resolved": "https://npm.hep.gg/tiny-glob/-/tiny-glob-0.2.9.tgz", + "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==", + "dev": true, + "dependencies": { + "globalyzer": "0.1.0", + "globrex": "^0.1.2" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://npm.hep.gg/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://npm.hep.gg/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ts-api-utils": { + "version": "1.3.0", + "resolved": "https://npm.hep.gg/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dev": true, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://npm.hep.gg/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true + }, + "node_modules/tslib": { + "version": "2.6.3", + "resolved": "https://npm.hep.gg/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", + "dev": true + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://npm.hep.gg/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/typescript": { + "version": "5.5.4", + "resolved": "https://npm.hep.gg/typescript/-/typescript-5.5.4.tgz", + "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-eslint": { + "version": "8.0.0-alpha.54", + "resolved": "https://npm.hep.gg/typescript-eslint/-/typescript-eslint-8.0.0-alpha.54.tgz", + "integrity": "sha512-5rTqLSAgzum8W0dIh8jgDosXNQufhfc9pyDXaBpBTgwtTypBzrcRgCz8Xp0XKrpSBCuLdfFt+X/ueEnoqrOcJA==", + "dev": true, + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.0.0-alpha.54", + "@typescript-eslint/parser": "8.0.0-alpha.54", + "@typescript-eslint/utils": "8.0.0-alpha.54" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.0", + "resolved": "https://npm.hep.gg/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://npm.hep.gg/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://npm.hep.gg/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/vite": { + "version": "5.3.4", + "resolved": "https://npm.hep.gg/vite/-/vite-5.3.4.tgz", + "integrity": "sha512-Cw+7zL3ZG9/NZBB8C+8QbQZmR54GwqIz+WMI4b3JgdYJvX+ny9AjJXqkGQlDXSXRP9rP0B4tbciRMOVEKulVOA==", + "dev": true, + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.39", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vitefu": { + "version": "0.2.5", + "resolved": "https://npm.hep.gg/vitefu/-/vitefu-0.2.5.tgz", + "integrity": "sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==", + "dev": true, + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://npm.hep.gg/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://npm.hep.gg/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://npm.hep.gg/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://npm.hep.gg/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://npm.hep.gg/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://npm.hep.gg/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://npm.hep.gg/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://npm.hep.gg/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://npm.hep.gg/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://npm.hep.gg/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://npm.hep.gg/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://npm.hep.gg/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..a35bf16 --- /dev/null +++ b/package.json @@ -0,0 +1,42 @@ +{ + "name": "fanslysync-desktop", + "version": "0.0.1", + "private": true, + "scripts": { + "dev": "vite dev", + "build": "vite build", + "preview": "vite preview", + "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", + "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", + "lint": "prettier --check . && eslint .", + "format": "prettier --write .", + "tauri": "tauri" + }, + "devDependencies": { + "@sveltejs/adapter-auto": "^3.0.0", + "@sveltejs/adapter-static": "^3.0.2", + "@sveltejs/kit": "^2.0.0", + "@sveltejs/vite-plugin-svelte": "^3.0.0", + "@tauri-apps/cli": "^1.6.0", + "@types/eslint": "^8.56.7", + "autoprefixer": "^10.4.19", + "eslint": "^9.0.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-svelte": "^2.36.0", + "globals": "^15.0.0", + "postcss": "^8.4.39", + "prettier": "^3.1.1", + "prettier-plugin-svelte": "^3.1.2", + "svelte": "^4.2.7", + "svelte-check": "^3.6.0", + "tailwindcss": "^3.4.6", + "tslib": "^2.4.1", + "typescript": "^5.0.0", + "typescript-eslint": "^8.0.0-alpha.20", + "vite": "^5.0.3" + }, + "type": "module", + "dependencies": { + "@tauri-apps/api": "^1.6.0" + } +} diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..2e7af2b --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/src-tauri/.gitignore b/src-tauri/.gitignore new file mode 100644 index 0000000..aba21e2 --- /dev/null +++ b/src-tauri/.gitignore @@ -0,0 +1,3 @@ +# Generated by Cargo +# will have compiled files and executables +/target/ diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock new file mode 100644 index 0000000..ac75238 --- /dev/null +++ b/src-tauri/Cargo.lock @@ -0,0 +1,5313 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "addr2line" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "alloc-no-stdlib" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" +dependencies = [ + "alloc-no-stdlib", +] + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[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.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" + +[[package]] +name = "app" +version = "0.1.0" +dependencies = [ + "dirs", + "lazy_static", + "reqwest", + "serde", + "serde_json", + "tauri", + "tauri-build", + "tokio", + "tokio-macros", +] + +[[package]] +name = "arboard" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb4009533e8ff8f1450a5bcbc30f4242a1d34442221f72314bea1f5dc9c7f89" +dependencies = [ + "clipboard-win", + "core-graphics 0.23.2", + "image 0.25.2", + "log", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "parking_lot", + "windows-sys 0.48.0", + "wl-clipboard-rs", + "x11rb", +] + +[[package]] +name = "async-broadcast" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "258b52a1aa741b9f09783b2d86cf0aeeb617bbf847f6933340a39644227acbdb" +dependencies = [ + "event-listener 5.3.1", + "event-listener-strategy 0.5.2", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-channel" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" +dependencies = [ + "concurrent-queue", + "event-listener-strategy 0.5.2", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-executor" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8828ec6e544c02b0d6691d21ed9f9218d0384a82542855073c2a3f58304aaf0" +dependencies = [ + "async-task", + "concurrent-queue", + "fastrand", + "futures-lite", + "slab", +] + +[[package]] +name = "async-fs" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebcd09b382f40fcd159c2d695175b2ae620ffa5f3bd6f664131efff4e8b9e04a" +dependencies = [ + "async-lock", + "blocking", + "futures-lite", +] + +[[package]] +name = "async-io" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcccb0f599cfa2f8ace422d3555572f47424da5648a4382a9dd0310ff8210884" +dependencies = [ + "async-lock", + "cfg-if", + "concurrent-queue", + "futures-io", + "futures-lite", + "parking", + "polling", + "rustix", + "slab", + "tracing", + "windows-sys 0.52.0", +] + +[[package]] +name = "async-lock" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b" +dependencies = [ + "event-listener 4.0.3", + "event-listener-strategy 0.4.0", + "pin-project-lite", +] + +[[package]] +name = "async-process" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a53fc6301894e04a92cb2584fedde80cb25ba8e02d9dc39d4a87d036e22f397d" +dependencies = [ + "async-channel", + "async-io", + "async-lock", + "async-signal", + "async-task", + "blocking", + "cfg-if", + "event-listener 5.3.1", + "futures-lite", + "rustix", + "tracing", + "windows-sys 0.52.0", +] + +[[package]] +name = "async-recursion" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "async-signal" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afe66191c335039c7bb78f99dc7520b0cbb166b3a1cb33a03f53d8a1c6f2afda" +dependencies = [ + "async-io", + "async-lock", + "atomic-waker", + "cfg-if", + "futures-core", + "futures-io", + "rustix", + "signal-hook-registry", + "slab", + "windows-sys 0.52.0", +] + +[[package]] +name = "async-task" +version = "4.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" + +[[package]] +name = "async-trait" +version = "0.1.80" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "atk" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c3d816ce6f0e2909a96830d6911c2aff044370b1ef92d7f267b43bae5addedd" +dependencies = [ + "atk-sys", + "bitflags 1.3.2", + "glib", + "libc", +] + +[[package]] +name = "atk-sys" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58aeb089fb698e06db8089971c7ee317ab9644bade33383f63631437b03aafb6" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps 6.2.2", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "autocfg" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" + +[[package]] +name = "backtrace" +version = "0.3.73" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" + +[[package]] +name = "block" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block2" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f" +dependencies = [ + "objc2", +] + +[[package]] +name = "blocking" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" +dependencies = [ + "async-channel", + "async-task", + "futures-io", + "futures-lite", + "piper", +] + +[[package]] +name = "brotli" +version = "3.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d640d25bc63c50fb1f0b545ffd80207d2e10a4c965530809b40ba3386825c391" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "2.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + +[[package]] +name = "bstr" +version = "1.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706" +dependencies = [ + "memchr", + "serde", +] + +[[package]] +name = "bumpalo" +version = "3.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" + +[[package]] +name = "bytemuck" +version = "1.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b236fc92302c97ed75b38da1f4917b5cdda4984745740f153a5d3059e48d725e" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "byteorder-lite" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" + +[[package]] +name = "bytes" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a12916984aab3fa6e39d655a33e09c0071eb36d6ab3aea5c2d78551f1df6d952" + +[[package]] +name = "cairo-rs" +version = "0.15.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c76ee391b03d35510d9fa917357c7f1855bd9a6659c95a1b392e33f49b3369bc" +dependencies = [ + "bitflags 1.3.2", + "cairo-sys-rs", + "glib", + "libc", + "thiserror", +] + +[[package]] +name = "cairo-sys-rs" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c55d429bef56ac9172d25fecb85dc8068307d17acd74b377866b7a1ef25d3c8" +dependencies = [ + "glib-sys", + "libc", + "system-deps 6.2.2", +] + +[[package]] +name = "cargo_toml" +version = "0.15.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "599aa35200ffff8f04c1925aa1acc92fa2e08874379ef42e210a80e527e60838" +dependencies = [ + "serde", + "toml 0.7.8", +] + +[[package]] +name = "cc" +version = "1.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2aba8f4e9906c7ce3c73463f62a7f0c65183ada1a2d47e397cc8810827f9694f" + +[[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.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3431df59f28accaf4cb4eed4a9acc66bea3f3c3753aa6cdc2f024174ef232af7" +dependencies = [ + "smallvec", +] + +[[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.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + +[[package]] +name = "chrono" +version = "0.4.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "num-traits", + "serde", + "windows-targets 0.52.6", +] + +[[package]] +name = "clipboard-win" +version = "5.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79f4473f5144e20d9aceaf2972478f06ddf687831eafeeb434fbaf0acc4144ad" +dependencies = [ + "error-code", +] + +[[package]] +name = "cocoa" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a" +dependencies = [ + "bitflags 1.3.2", + "block", + "cocoa-foundation", + "core-foundation", + "core-graphics 0.22.3", + "foreign-types 0.3.2", + "libc", + "objc", +] + +[[package]] +name = "cocoa-foundation" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c6234cbb2e4c785b456c0644748b1ac416dd045799740356f8363dfe00c93f7" +dependencies = [ + "bitflags 1.3.2", + "block", + "core-foundation", + "core-graphics-types", + "libc", + "objc", +] + +[[package]] +name = "color_quant" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" + +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + +[[package]] +name = "concurrent-queue" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "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-sys" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" + +[[package]] +name = "core-graphics" +version = "0.22.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "core-graphics-types", + "foreign-types 0.3.2", + "libc", +] + +[[package]] +name = "core-graphics" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "core-graphics-types", + "foreign-types 0.5.0", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "libc", +] + +[[package]] +name = "cpufeatures" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "cssparser" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "754b69d351cdc2d8ee09ae203db831e005560fc6030da058f86ad60c92a9cb0a" +dependencies = [ + "cssparser-macros", + "dtoa-short", + "itoa 0.4.8", + "matches", + "phf 0.8.0", + "proc-macro2", + "quote", + "smallvec", + "syn 1.0.109", +] + +[[package]] +name = "cssparser-macros" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" +dependencies = [ + "quote", + "syn 2.0.72", +] + +[[package]] +name = "ctor" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edb49164822f3ee45b17acd4a208cfc1251410cf0cad9a833234c9890774dd9f" +dependencies = [ + "quote", + "syn 2.0.72", +] + +[[package]] +name = "darling" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.72", +] + +[[package]] +name = "darling_macro" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +dependencies = [ + "powerfmt", + "serde", +] + +[[package]] +name = "derive-new" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d150dea618e920167e5973d70ae6ece4385b7164e0d799fe7c122dd0a5d912ad" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "derive_more" +version = "0.99.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "rustc_version", + "syn 2.0.72", +] + +[[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 = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +dependencies = [ + "cfg-if", + "dirs-sys-next", +] + +[[package]] +name = "dirs-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.48.0", +] + +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "dispatch" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" + +[[package]] +name = "dlib" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" +dependencies = [ + "libloading", +] + +[[package]] +name = "downcast-rs" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" + +[[package]] +name = "dtoa" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653" + +[[package]] +name = "dtoa-short" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd1511a7b6a56299bd043a9c167a6d2bfb37bf84a6dfceaba651168adfb43c87" +dependencies = [ + "dtoa", +] + +[[package]] +name = "dunce" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" + +[[package]] +name = "embed-resource" +version = "2.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4edcacde9351c33139a41e3c97eb2334351a81a2791bebb0b243df837128f602" +dependencies = [ + "cc", + "memchr", + "rustc_version", + "toml 0.8.15", + "vswhom", + "winreg 0.52.0", +] + +[[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.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "endi" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3d8a32ae18130a3c84dd492d4215c3d913c3b07c6b63c2eb3eb7ff1101ab7bf" + +[[package]] +name = "enumflags2" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3278c9d5fb675e0a51dabcf4c0d355f692b064171535ba72361be1528a9d8e8d" +dependencies = [ + "enumflags2_derive", + "serde", +] + +[[package]] +name = "enumflags2_derive" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "errno" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "error-code" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0474425d51df81997e2f90a21591180b38eccf27292d755f3e30750225c175b" + +[[package]] +name = "event-listener" +version = "4.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener" +version = "5.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener-strategy" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" +dependencies = [ + "event-listener 4.0.3", + "pin-project-lite", +] + +[[package]] +name = "event-listener-strategy" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" +dependencies = [ + "event-listener 5.3.1", + "pin-project-lite", +] + +[[package]] +name = "fastrand" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" + +[[package]] +name = "fdeflate" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645" +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 0.9.1", + "rustc_version", +] + +[[package]] +name = "filetime" +version = "0.2.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.4.1", + "windows-sys 0.52.0", +] + +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "flate2" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae" +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 = "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.72", +] + +[[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.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futf" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" +dependencies = [ + "mac", + "new_debug_unreachable", +] + +[[package]] +name = "futures-channel" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" + +[[package]] +name = "futures-executor" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" + +[[package]] +name = "futures-lite" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" +dependencies = [ + "fastrand", + "futures-core", + "futures-io", + "parking", + "pin-project-lite", +] + +[[package]] +name = "futures-macro" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "futures-sink" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" + +[[package]] +name = "futures-task" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" + +[[package]] +name = "futures-util" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +dependencies = [ + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "gdk" +version = "0.15.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6e05c1f572ab0e1f15be94217f0dc29088c248b14f792a5ff0af0d84bcda9e8" +dependencies = [ + "bitflags 1.3.2", + "cairo-rs", + "gdk-pixbuf", + "gdk-sys", + "gio", + "glib", + "libc", + "pango", +] + +[[package]] +name = "gdk-pixbuf" +version = "0.15.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad38dd9cc8b099cceecdf41375bb6d481b1b5a7cd5cd603e10a69a9383f8619a" +dependencies = [ + "bitflags 1.3.2", + "gdk-pixbuf-sys", + "gio", + "glib", + "libc", +] + +[[package]] +name = "gdk-pixbuf-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "140b2f5378256527150350a8346dbdb08fadc13453a7a2d73aecd5fab3c402a7" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps 6.2.2", +] + +[[package]] +name = "gdk-sys" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e7a08c1e8f06f4177fb7e51a777b8c1689f743a7bc11ea91d44d2226073a88" +dependencies = [ + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "pkg-config", + "system-deps 6.2.2", +] + +[[package]] +name = "gdkwayland-sys" +version = "0.15.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cca49a59ad8cfdf36ef7330fe7bdfbe1d34323220cc16a0de2679ee773aee2c2" +dependencies = [ + "gdk-sys", + "glib-sys", + "gobject-sys", + "libc", + "pkg-config", + "system-deps 6.2.2", +] + +[[package]] +name = "gdkx11-sys" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4b7f8c7a84b407aa9b143877e267e848ff34106578b64d1e0a24bf550716178" +dependencies = [ + "gdk-sys", + "glib-sys", + "libc", + "system-deps 6.2.2", + "x11", +] + +[[package]] +name = "generator" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cc16584ff22b460a382b7feec54b23d2908d858152e5739a120b949293bd74e" +dependencies = [ + "cc", + "libc", + "log", + "rustversion", + "windows 0.48.0", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "gethostname" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818" +dependencies = [ + "libc", + "windows-targets 0.48.5", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "gimli" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" + +[[package]] +name = "gio" +version = "0.15.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68fdbc90312d462781a395f7a16d96a2b379bb6ef8cd6310a2df272771c4283b" +dependencies = [ + "bitflags 1.3.2", + "futures-channel", + "futures-core", + "futures-io", + "gio-sys", + "glib", + "libc", + "once_cell", + "thiserror", +] + +[[package]] +name = "gio-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32157a475271e2c4a023382e9cab31c4584ee30a97da41d3c4e9fdd605abcf8d" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps 6.2.2", + "winapi", +] + +[[package]] +name = "glib" +version = "0.15.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edb0306fbad0ab5428b0ca674a23893db909a98582969c9b537be4ced78c505d" +dependencies = [ + "bitflags 1.3.2", + "futures-channel", + "futures-core", + "futures-executor", + "futures-task", + "glib-macros", + "glib-sys", + "gobject-sys", + "libc", + "once_cell", + "smallvec", + "thiserror", +] + +[[package]] +name = "glib-macros" +version = "0.15.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10c6ae9f6fa26f4fb2ac16b528d138d971ead56141de489f8111e259b9df3c4a" +dependencies = [ + "anyhow", + "heck 0.4.1", + "proc-macro-crate 1.3.1", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "glib-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef4b192f8e65e9cf76cbf4ea71fa8e3be4a0e18ffe3d68b8da6836974cc5bad4" +dependencies = [ + "libc", + "system-deps 6.2.2", +] + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + +[[package]] +name = "globset" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1" +dependencies = [ + "aho-corasick", + "bstr", + "log", + "regex-automata 0.4.7", + "regex-syntax 0.8.4", +] + +[[package]] +name = "gobject-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d57ce44246becd17153bd035ab4d32cfee096a657fc01f2231c9278378d1e0a" +dependencies = [ + "glib-sys", + "libc", + "system-deps 6.2.2", +] + +[[package]] +name = "gtk" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92e3004a2d5d6d8b5057d2b57b3712c9529b62e82c77f25c1fecde1fd5c23bd0" +dependencies = [ + "atk", + "bitflags 1.3.2", + "cairo-rs", + "field-offset", + "futures-channel", + "gdk", + "gdk-pixbuf", + "gio", + "glib", + "gtk-sys", + "gtk3-macros", + "libc", + "once_cell", + "pango", + "pkg-config", +] + +[[package]] +name = "gtk-sys" +version = "0.15.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5bc2f0587cba247f60246a0ca11fe25fb733eabc3de12d1965fc07efab87c84" +dependencies = [ + "atk-sys", + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "system-deps 6.2.2", +] + +[[package]] +name = "gtk3-macros" +version = "0.15.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "684c0456c086e8e7e9af73ec5b84e35938df394712054550e81558d21c44ab0d" +dependencies = [ + "anyhow", + "proc-macro-crate 1.3.1", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "h2" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap 2.2.6", + "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.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" + +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "home" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "html5ever" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bea68cab48b8459f17cf1c944c67ddc572d272d9f2b274140f223ecb1da4a3b7" +dependencies = [ + "log", + "mac", + "markup5ever", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "http" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +dependencies = [ + "bytes", + "fnv", + "itoa 1.0.11", +] + +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + +[[package]] +name = "http-range" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21dec9db110f5f872ed9699c3ecf50cf16f423502706ba5c72462e28d3157573" + +[[package]] +name = "httparse" +version = "1.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "hyper" +version = "0.14.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa 1.0.11", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes", + "hyper", + "native-tls", + "tokio", + "tokio-native-tls", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core 0.52.0", +] + +[[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.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3804960be0bb5e4edb1e1ad67afd321a9ecfd875c3e65c099468fd2717d7cae" +dependencies = [ + "byteorder", + "png", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "ignore" +version = "0.4.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b46810df39e66e925525d6e38ce1e7f6e1d208f72dc39757880fcb66e2c58af1" +dependencies = [ + "crossbeam-deque", + "globset", + "log", + "memchr", + "regex-automata 0.4.7", + "same-file", + "walkdir", + "winapi-util", +] + +[[package]] +name = "image" +version = "0.24.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d" +dependencies = [ + "bytemuck", + "byteorder", + "color_quant", + "num-traits", +] + +[[package]] +name = "image" +version = "0.25.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99314c8a2152b8ddb211f924cdae532d8c5e4c8bb54728e12fff1b0cd5963a10" +dependencies = [ + "bytemuck", + "byteorder-lite", + "num-traits", + "png", + "tiff", +] + +[[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.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +dependencies = [ + "equivalent", + "hashbrown 0.14.5", + "serde", +] + +[[package]] +name = "infer" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f551f8c3a39f68f986517db0d1759de85881894fdc7db798bd2a9df9cb04b7fc" +dependencies = [ + "cfb", +] + +[[package]] +name = "instant" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "ipnet" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" + +[[package]] +name = "itoa" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" + +[[package]] +name = "itoa" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" + +[[package]] +name = "javascriptcore-rs" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf053e7843f2812ff03ef5afe34bb9c06ffee120385caad4f6b9967fcd37d41c" +dependencies = [ + "bitflags 1.3.2", + "glib", + "javascriptcore-rs-sys", +] + +[[package]] +name = "javascriptcore-rs-sys" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "905fbb87419c5cde6e3269537e4ea7d46431f3008c5d057e915ef3f115e7793c" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps 5.0.0", +] + +[[package]] +name = "jni" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "039022cdf4d7b1cf548d31f60ae783138e5fd42013f6271049d7df7afadef96c" +dependencies = [ + "cesu8", + "combine", + "jni-sys", + "log", + "thiserror", + "walkdir", +] + +[[package]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" + +[[package]] +name = "jpeg-decoder" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0" + +[[package]] +name = "js-sys" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "json-patch" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec9ad60d674508f3ca8f380a928cfe7b096bc729c4e2dbfe3852bc45da3ab30b" +dependencies = [ + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "kuchikiki" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f29e4755b7b995046f510a7520c42b2fed58b77bd94d5a87a8eb43d2fd126da8" +dependencies = [ + "cssparser", + "html5ever", + "indexmap 1.9.3", + "matches", + "selectors", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "libc" +version = "0.2.155" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" + +[[package]] +name = "libloading" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19" +dependencies = [ + "cfg-if", + "windows-targets 0.52.6", +] + +[[package]] +name = "libredox" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +dependencies = [ + "bitflags 2.6.0", + "libc", +] + +[[package]] +name = "linux-raw-sys" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" + +[[package]] +name = "lock_api" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" + +[[package]] +name = "loom" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff50ecb28bb86013e935fb6683ab1f6d3a20016f123c76fd4c27470076ac30f5" +dependencies = [ + "cfg-if", + "generator", + "scoped-tls", + "serde", + "serde_json", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "mac" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" + +[[package]] +name = "mac-notification-sys" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51fca4d74ff9dbaac16a01b924bc3693fa2bba0862c2c633abc73f9a8ea21f64" +dependencies = [ + "cc", + "dirs-next", + "objc-foundation", + "objc_id", + "time", +] + +[[package]] +name = "malloc_buf" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" +dependencies = [ + "libc", +] + +[[package]] +name = "markup5ever" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a2629bb1404f3d34c2e921f21fd34ba00b206124c81f65c50b43b6aaefeb016" +dependencies = [ + "log", + "phf 0.10.1", + "phf_codegen 0.10.0", + "string_cache", + "string_cache_codegen", + "tendril", +] + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + +[[package]] +name = "matches" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "memoffset" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" +dependencies = [ + "autocfg", +] + +[[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 = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" +dependencies = [ + "adler", + "simd-adler32", +] + +[[package]] +name = "mio" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4569e456d394deccd22ce1c1913e6ea0e54519f577285001215d33557431afe4" +dependencies = [ + "hermit-abi", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.52.0", +] + +[[package]] +name = "native-tls" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" +dependencies = [ + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "ndk" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2032c77e030ddee34a6787a64166008da93f6a352b629261d0fee232b8742dd4" +dependencies = [ + "bitflags 1.3.2", + "jni-sys", + "ndk-sys", + "num_enum", + "thiserror", +] + +[[package]] +name = "ndk-context" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" + +[[package]] +name = "ndk-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e5a6ae77c8ee183dcbbba6150e2e6b9f3f4196a7666c02a715a95692ec1fa97" +dependencies = [ + "jni-sys", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + +[[package]] +name = "nix" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" +dependencies = [ + "bitflags 1.3.2", + "cfg-if", + "libc", + "memoffset 0.7.1", +] + +[[package]] +name = "nix" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4" +dependencies = [ + "bitflags 2.6.0", + "cfg-if", + "cfg_aliases", + "libc", + "memoffset 0.9.1", +] + +[[package]] +name = "nodrop" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "notify-rust" +version = "4.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5312f837191c317644f313f7b2b39f9cb1496570c74f7c17152dd3961219551f" +dependencies = [ + "log", + "mac-notification-sys", + "serde", + "tauri-winrt-notification", + "zbus", +] + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + +[[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.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" +dependencies = [ + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "objc" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" +dependencies = [ + "malloc_buf", + "objc_exception", +] + +[[package]] +name = "objc-foundation" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9" +dependencies = [ + "block", + "objc", + "objc_id", +] + +[[package]] +name = "objc-sys" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310" + +[[package]] +name = "objc2" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46a785d4eeff09c14c487497c162e92766fbb3e4059a71840cecc03d9a50b804" +dependencies = [ + "objc-sys", + "objc2-encode", +] + +[[package]] +name = "objc2-app-kit" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" +dependencies = [ + "bitflags 2.6.0", + "block2", + "libc", + "objc2", + "objc2-core-data", + "objc2-core-image", + "objc2-foundation", + "objc2-quartz-core", +] + +[[package]] +name = "objc2-core-data" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" +dependencies = [ + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-image" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80" +dependencies = [ + "block2", + "objc2", + "objc2-foundation", + "objc2-metal", +] + +[[package]] +name = "objc2-encode" +version = "4.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7891e71393cd1f227313c9379a26a584ff3d7e6e7159e988851f0934c993f0f8" + +[[package]] +name = "objc2-foundation" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" +dependencies = [ + "bitflags 2.6.0", + "block2", + "libc", + "objc2", +] + +[[package]] +name = "objc2-metal" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" +dependencies = [ + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-quartz-core" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" +dependencies = [ + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-foundation", + "objc2-metal", +] + +[[package]] +name = "objc_exception" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" +dependencies = [ + "cc", +] + +[[package]] +name = "objc_id" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b" +dependencies = [ + "objc", +] + +[[package]] +name = "object" +version = "0.36.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f203fa8daa7bb185f760ae12bd8e097f63d17041dcdcaf675ac54cdf863170e" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "openssl" +version = "0.10.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" +dependencies = [ + "bitflags 2.6.0", + "cfg-if", + "foreign-types 0.3.2", + "libc", + "once_cell", + "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.72", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-sys" +version = "0.9.103" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" +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 = "ordered-stream" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50" +dependencies = [ + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "os_info" +version = "3.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae99c7fa6dd38c7cafe1ec085e804f8f555a2f8659b0dbe03f1f9963a9b51092" +dependencies = [ + "log", + "serde", + "windows-sys 0.52.0", +] + +[[package]] +name = "os_pipe" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57119c3b893986491ec9aa85056780d3a0f3cf4da7cc09dd3650dbd6c6738fb9" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "pango" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22e4045548659aee5313bde6c582b0d83a627b7904dd20dc2d9ef0895d414e4f" +dependencies = [ + "bitflags 1.3.2", + "glib", + "libc", + "once_cell", + "pango-sys", +] + +[[package]] +name = "pango-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2a00081cde4661982ed91d80ef437c20eacaf6aa1a5962c0279ae194662c3aa" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps 6.2.2", +] + +[[package]] +name = "parking" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" + +[[package]] +name = "parking_lot" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.5.3", + "smallvec", + "windows-targets 0.52.6", +] + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "petgraph" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" +dependencies = [ + "fixedbitset", + "indexmap 2.2.6", +] + +[[package]] +name = "phf" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12" +dependencies = [ + "phf_macros 0.8.0", + "phf_shared 0.8.0", + "proc-macro-hack", +] + +[[package]] +name = "phf" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" +dependencies = [ + "phf_shared 0.10.0", +] + +[[package]] +name = "phf" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" +dependencies = [ + "phf_macros 0.11.2", + "phf_shared 0.11.2", +] + +[[package]] +name = "phf_codegen" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815" +dependencies = [ + "phf_generator 0.8.0", + "phf_shared 0.8.0", +] + +[[package]] +name = "phf_codegen" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd" +dependencies = [ + "phf_generator 0.10.0", + "phf_shared 0.10.0", +] + +[[package]] +name = "phf_generator" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526" +dependencies = [ + "phf_shared 0.8.0", + "rand 0.7.3", +] + +[[package]] +name = "phf_generator" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" +dependencies = [ + "phf_shared 0.10.0", + "rand 0.8.5", +] + +[[package]] +name = "phf_generator" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" +dependencies = [ + "phf_shared 0.11.2", + "rand 0.8.5", +] + +[[package]] +name = "phf_macros" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f6fde18ff429ffc8fe78e2bf7f8b7a5a5a6e2a8b58bc5a9ac69198bbda9189c" +dependencies = [ + "phf_generator 0.8.0", + "phf_shared 0.8.0", + "proc-macro-hack", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "phf_macros" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" +dependencies = [ + "phf_generator 0.11.2", + "phf_shared 0.11.2", + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "phf_shared" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" +dependencies = [ + "siphasher", +] + +[[package]] +name = "phf_shared" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +dependencies = [ + "siphasher", +] + +[[package]] +name = "phf_shared" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "piper" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "464db0c665917b13ebb5d453ccdec4add5658ee1adc7affc7677615356a8afaf" +dependencies = [ + "atomic-waker", + "fastrand", + "futures-io", +] + +[[package]] +name = "pkg-config" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" + +[[package]] +name = "plist" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42cf17e9a1800f5f396bc67d193dc9411b59012a5876445ef450d449881e1016" +dependencies = [ + "base64 0.22.1", + "indexmap 2.2.6", + "quick-xml 0.32.0", + "serde", + "time", +] + +[[package]] +name = "png" +version = "0.17.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1" +dependencies = [ + "bitflags 1.3.2", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide", +] + +[[package]] +name = "polling" +version = "3.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "645493cf344456ef24219d02a768cf1fb92ddf8c92161679ae3d91b91a637be3" +dependencies = [ + "cfg-if", + "concurrent-queue", + "hermit-abi", + "pin-project-lite", + "rustix", + "tracing", + "windows-sys 0.52.0", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[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 = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +dependencies = [ + "toml_edit 0.21.1", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro-hack" +version = "0.5.20+deprecated" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" + +[[package]] +name = "proc-macro2" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quick-xml" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33" +dependencies = [ + "memchr", +] + +[[package]] +name = "quick-xml" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d3a6e5838b60e0e8fa7a43f22ade549a37d61f8bdbe636d0d7816191de969c2" +dependencies = [ + "memchr", +] + +[[package]] +name = "quote" +version = "1.0.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", + "rand_pcg", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.15", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "rand_pcg" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "raw-window-handle" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9" + +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" +dependencies = [ + "bitflags 2.6.0", +] + +[[package]] +name = "redox_users" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" +dependencies = [ + "getrandom 0.2.15", + "libredox", + "thiserror", +] + +[[package]] +name = "regex" +version = "1.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.4.7", + "regex-syntax 0.8.4", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.4", +] + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" + +[[package]] +name = "reqwest" +version = "0.11.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" +dependencies = [ + "base64 0.21.7", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-tls", + "ipnet", + "js-sys", + "log", + "mime", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls-pemfile", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "system-configuration", + "tokio", + "tokio-native-tls", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "winreg 0.50.0", +] + +[[package]] +name = "rfd" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0149778bd99b6959285b0933288206090c50e2327f47a9c463bfdbf45c8823ea" +dependencies = [ + "block", + "dispatch", + "glib-sys", + "gobject-sys", + "gtk-sys", + "js-sys", + "lazy_static", + "log", + "objc", + "objc-foundation", + "objc_id", + "raw-window-handle", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "windows 0.37.0", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "0.38.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" +dependencies = [ + "bitflags 2.6.0", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64 0.21.7", +] + +[[package]] +name = "rustversion" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" + +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + +[[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.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "security-framework" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" +dependencies = [ + "bitflags 2.6.0", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "selectors" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df320f1889ac4ba6bc0cdc9c9af7af4bd64bb927bccdf32d81140dc1f9be12fe" +dependencies = [ + "bitflags 1.3.2", + "cssparser", + "derive_more", + "fxhash", + "log", + "matches", + "phf 0.8.0", + "phf_codegen 0.8.0", + "precomputed-hash", + "servo_arc", + "smallvec", + "thin-slice", +] + +[[package]] +name = "semver" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" +dependencies = [ + "serde", +] + +[[package]] +name = "serde" +version = "1.0.204" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.204" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "serde_json" +version = "1.0.120" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e0d21c9a8cae1235ad58a00c11cb40d4b1e5c784f1ef2c537876ed6ffd8b7c5" +dependencies = [ + "indexmap 2.2.6", + "itoa 1.0.11", + "ryu", + "serde", +] + +[[package]] +name = "serde_repr" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "serde_spanned" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa 1.0.11", + "ryu", + "serde", +] + +[[package]] +name = "serde_with" +version = "3.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cecfa94848272156ea67b2b1a53f20fc7bc638c4a46d2f8abde08f05f4b857" +dependencies = [ + "base64 0.22.1", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.2.6", + "serde", + "serde_derive", + "serde_json", + "serde_with_macros", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "3.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8fee4991ef4f274617a51ad4af30519438dacb2f56ac773b08a1922ff743350" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "serialize-to-javascript" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9823f2d3b6a81d98228151fdeaf848206a7855a7a042bbf9bf870449a66cafb" +dependencies = [ + "serde", + "serde_json", + "serialize-to-javascript-impl", +] + +[[package]] +name = "serialize-to-javascript-impl" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74064874e9f6a15f04c1f3cb627902d0e6b410abbf36668afa873c61889f1763" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "servo_arc" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d98238b800e0d1576d8b6e3de32827c2d74bee68bb97748dcf5071fb53965432" +dependencies = [ + "nodrop", + "stable_deref_trait", +] + +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" +dependencies = [ + "libc", +] + +[[package]] +name = "simd-adler32" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" + +[[package]] +name = "socket2" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "soup2" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2b4d76501d8ba387cf0fefbe055c3e0a59891d09f0f995ae4e4b16f6b60f3c0" +dependencies = [ + "bitflags 1.3.2", + "gio", + "glib", + "libc", + "once_cell", + "soup2-sys", +] + +[[package]] +name = "soup2-sys" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "009ef427103fcb17f802871647a7fa6c60cbb654b4c4e4c0ac60a31c5f6dc9cf" +dependencies = [ + "bitflags 1.3.2", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps 5.0.0", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "state" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbe866e1e51e8260c9eed836a042a5e7f6726bb2b411dffeaa712e19c388f23b" +dependencies = [ + "loom", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "string_cache" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" +dependencies = [ + "new_debug_unreachable", + "once_cell", + "parking_lot", + "phf_shared 0.10.0", + "precomputed-hash", + "serde", +] + +[[package]] +name = "string_cache_codegen" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988" +dependencies = [ + "phf_generator 0.10.0", + "phf_shared 0.10.0", + "proc-macro2", + "quote", +] + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.72" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + +[[package]] +name = "sys-locale" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8a11bd9c338fdba09f7881ab41551932ad42e405f61d01e8406baea71c07aee" +dependencies = [ + "js-sys", + "libc", + "wasm-bindgen", + "web-sys", + "windows-sys 0.45.0", +] + +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "system-deps" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18db855554db7bd0e73e06cf7ba3df39f97812cb11d3f75e71c39bf45171797e" +dependencies = [ + "cfg-expr 0.9.1", + "heck 0.3.3", + "pkg-config", + "toml 0.5.11", + "version-compare 0.0.11", +] + +[[package]] +name = "system-deps" +version = "6.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" +dependencies = [ + "cfg-expr 0.15.8", + "heck 0.5.0", + "pkg-config", + "toml 0.8.15", + "version-compare 0.2.0", +] + +[[package]] +name = "tao" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "575c856fc21e551074869dcfaad8f706412bd5b803dfa0fbf6881c4ff4bfafab" +dependencies = [ + "bitflags 1.3.2", + "cairo-rs", + "cc", + "cocoa", + "core-foundation", + "core-graphics 0.22.3", + "crossbeam-channel", + "dispatch", + "gdk", + "gdk-pixbuf", + "gdk-sys", + "gdkwayland-sys", + "gdkx11-sys", + "gio", + "glib", + "glib-sys", + "gtk", + "image 0.24.9", + "instant", + "jni", + "lazy_static", + "libc", + "log", + "ndk", + "ndk-context", + "ndk-sys", + "objc", + "once_cell", + "parking_lot", + "png", + "raw-window-handle", + "scopeguard", + "serde", + "tao-macros", + "unicode-segmentation", + "uuid", + "windows 0.39.0", + "windows-implement 0.39.0", + "x11-dl", +] + +[[package]] +name = "tao-macros" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec114582505d158b669b136e6851f85840c109819d77c42bb7c0709f727d18c2" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "tar" +version = "0.4.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb797dad5fb5b76fcf519e702f4a589483b5ef06567f160c392832c1f5e44909" +dependencies = [ + "filetime", + "libc", + "xattr", +] + +[[package]] +name = "target-lexicon" +version = "0.12.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4873307b7c257eddcb50c9bedf158eb669578359fb28428bef438fec8e6ba7c2" + +[[package]] +name = "tauri" +version = "1.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "336bc661a3f3250853fa83c6e5245449ed1c26dce5dcb28bdee7efedf6278806" +dependencies = [ + "anyhow", + "cocoa", + "dirs-next", + "dunce", + "embed_plist", + "encoding_rs", + "flate2", + "futures-util", + "getrandom 0.2.15", + "glib", + "glob", + "gtk", + "heck 0.5.0", + "http", + "ignore", + "nix 0.26.4", + "notify-rust", + "objc", + "once_cell", + "os_info", + "percent-encoding", + "rand 0.8.5", + "raw-window-handle", + "rfd", + "semver", + "serde", + "serde_json", + "serde_repr", + "serialize-to-javascript", + "state", + "sys-locale", + "tar", + "tauri-macros", + "tauri-runtime", + "tauri-runtime-wry", + "tauri-utils", + "tempfile", + "thiserror", + "tokio", + "url", + "uuid", + "webkit2gtk", + "webview2-com", + "windows 0.39.0", +] + +[[package]] +name = "tauri-build" +version = "1.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0c6ec7a5c3296330c7818478948b422967ce4649094696c985f61d50076d29c" +dependencies = [ + "anyhow", + "cargo_toml", + "dirs-next", + "heck 0.5.0", + "json-patch", + "semver", + "serde", + "serde_json", + "tauri-utils", + "tauri-winres", + "walkdir", +] + +[[package]] +name = "tauri-codegen" +version = "1.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1aed706708ff1200ec12de9cfbf2582b5d8ec05f6a7293911091effbd22036b" +dependencies = [ + "base64 0.21.7", + "brotli", + "ico", + "json-patch", + "plist", + "png", + "proc-macro2", + "quote", + "semver", + "serde", + "serde_json", + "sha2", + "tauri-utils", + "thiserror", + "time", + "uuid", + "walkdir", +] + +[[package]] +name = "tauri-macros" +version = "1.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b88f831d2973ae4f81a706a0004e67dac87f2e4439973bbe98efbd73825d8ede" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 1.0.109", + "tauri-codegen", + "tauri-utils", +] + +[[package]] +name = "tauri-runtime" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3068ed62b63dedc705558f4248c7ecbd5561f0f8050949859ea0db2326f26012" +dependencies = [ + "gtk", + "http", + "http-range", + "rand 0.8.5", + "raw-window-handle", + "serde", + "serde_json", + "tauri-utils", + "thiserror", + "url", + "uuid", + "webview2-com", + "windows 0.39.0", +] + +[[package]] +name = "tauri-runtime-wry" +version = "0.14.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4c3db170233096aa30330feadcd895bf9317be97e624458560a20e814db7955" +dependencies = [ + "arboard", + "cocoa", + "gtk", + "percent-encoding", + "rand 0.8.5", + "raw-window-handle", + "tauri-runtime", + "tauri-utils", + "uuid", + "webkit2gtk", + "webview2-com", + "windows 0.39.0", + "wry", +] + +[[package]] +name = "tauri-utils" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2826db448309d382dac14d520f0c0a40839b87b57b977e59cf5f296b3ace6a93" +dependencies = [ + "brotli", + "ctor", + "dunce", + "glob", + "heck 0.5.0", + "html5ever", + "infer", + "json-patch", + "kuchikiki", + "log", + "memchr", + "phf 0.11.2", + "proc-macro2", + "quote", + "semver", + "serde", + "serde_json", + "serde_with", + "thiserror", + "url", + "walkdir", + "windows-version", +] + +[[package]] +name = "tauri-winres" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5993dc129e544393574288923d1ec447c857f3f644187f4fbf7d9a875fbfc4fb" +dependencies = [ + "embed-resource", + "toml 0.7.8", +] + +[[package]] +name = "tauri-winrt-notification" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f89f5fb70d6f62381f5d9b2ba9008196150b40b75f3068eb24faeddf1c686871" +dependencies = [ + "quick-xml 0.31.0", + "windows 0.56.0", + "windows-version", +] + +[[package]] +name = "tempfile" +version = "3.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" +dependencies = [ + "cfg-if", + "fastrand", + "rustix", + "windows-sys 0.52.0", +] + +[[package]] +name = "tendril" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" +dependencies = [ + "futf", + "mac", + "utf-8", +] + +[[package]] +name = "thin-slice" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c" + +[[package]] +name = "thiserror" +version = "1.0.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "thread_local" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "tiff" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba1310fcea54c6a9a4fd1aad794ecc02c31682f6bfbecdf460bf19533eed1e3e" +dependencies = [ + "flate2", + "jpeg-decoder", + "weezl", +] + +[[package]] +name = "time" +version = "0.3.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +dependencies = [ + "deranged", + "itoa 1.0.11", + "num-conv", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "tinyvec" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" +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.39.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d040ac2b29ab03b09d4129c2f5bbd012a3ac2f79d38ff506a4bf8dd34b0eac8a" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "windows-sys 0.52.0", +] + +[[package]] +name = "tokio-macros" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[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-util" +version = "0.7.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +dependencies = [ + "serde", +] + +[[package]] +name = "toml" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.19.15", +] + +[[package]] +name = "toml" +version = "0.8.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac2caab0bf757388c6c0ae23b3293fdb463fee59434529014f85e3263b995c28" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.22.16", +] + +[[package]] +name = "toml_datetime" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.2.6", + "serde", + "serde_spanned", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" +dependencies = [ + "indexmap 2.2.6", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.22.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "278f3d518e152219c994ce877758516bca5e118eaed6996192a774fb9fbf0788" +dependencies = [ + "indexmap 2.2.6", + "serde", + "serde_spanned", + "toml_datetime", + "winnow 0.6.15", +] + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "tree_magic_mini" +version = "3.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "469a727cac55b41448315cc10427c069c618ac59bb6a4480283fcd811749bdc2" +dependencies = [ + "fnv", + "home", + "memchr", + "nom", + "once_cell", + "petgraph", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "uds_windows" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" +dependencies = [ + "memoffset 0.9.1", + "tempfile", + "winapi", +] + +[[package]] +name = "unicode-bidi" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unicode-normalization" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-segmentation" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" + +[[package]] +name = "url" +version = "2.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", +] + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "uuid" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" +dependencies = [ + "getrandom 0.2.15", +] + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[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.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c18c859eead79d8b95d09e4678566e8d70105c4e7b251f707a03df32442661b" + +[[package]] +name = "version-compare" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[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.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3b17ae1f6c8a2b28506cd96d412eebf83b4a0ff2cbefeeb952f2f9dfa44ba18" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.72", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" + +[[package]] +name = "wayland-backend" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d50fa61ce90d76474c87f5fc002828d81b32677340112b4ef08079a9d459a40" +dependencies = [ + "cc", + "downcast-rs", + "rustix", + "scoped-tls", + "smallvec", + "wayland-sys", +] + +[[package]] +name = "wayland-client" +version = "0.31.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82fb96ee935c2cea6668ccb470fb7771f6215d1691746c2d896b447a00ad3f1f" +dependencies = [ + "bitflags 2.6.0", + "rustix", + "wayland-backend", + "wayland-scanner", +] + +[[package]] +name = "wayland-protocols" +version = "0.31.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f81f365b8b4a97f422ac0e8737c438024b5951734506b0e1d775c73030561f4" +dependencies = [ + "bitflags 2.6.0", + "wayland-backend", + "wayland-client", + "wayland-scanner", +] + +[[package]] +name = "wayland-protocols-wlr" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6" +dependencies = [ + "bitflags 2.6.0", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "wayland-scanner", +] + +[[package]] +name = "wayland-scanner" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63b3a62929287001986fb58c789dce9b67604a397c15c611ad9f747300b6c283" +dependencies = [ + "proc-macro2", + "quick-xml 0.31.0", + "quote", +] + +[[package]] +name = "wayland-sys" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15a0c8eaff5216d07f226cb7a549159267f3467b289d9a2e52fd3ef5aae2b7af" +dependencies = [ + "dlib", + "log", + "pkg-config", +] + +[[package]] +name = "web-sys" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webkit2gtk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8f859735e4a452aeb28c6c56a852967a8a76c8eb1cc32dbf931ad28a13d6370" +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", + "soup2", + "webkit2gtk-sys", +] + +[[package]] +name = "webkit2gtk-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d76ca6ecc47aeba01ec61e480139dda143796abcae6f83bcddf50d6b5b1dcf3" +dependencies = [ + "atk-sys", + "bitflags 1.3.2", + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "gtk-sys", + "javascriptcore-rs-sys", + "libc", + "pango-sys", + "pkg-config", + "soup2-sys", + "system-deps 6.2.2", +] + +[[package]] +name = "webview2-com" +version = "0.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4a769c9f1a64a8734bde70caafac2b96cada12cd4aefa49196b3a386b8b4178" +dependencies = [ + "webview2-com-macros", + "webview2-com-sys", + "windows 0.39.0", + "windows-implement 0.39.0", +] + +[[package]] +name = "webview2-com-macros" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaebe196c01691db62e9e4ca52c5ef1e4fd837dcae27dae3ada599b5a8fd05ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "webview2-com-sys" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aac48ef20ddf657755fdcda8dfed2a7b4fc7e4581acce6fe9b88c3d64f29dee7" +dependencies = [ + "regex", + "serde", + "serde_json", + "thiserror", + "windows 0.39.0", + "windows-bindgen", + "windows-metadata", +] + +[[package]] +name = "weezl" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082" + +[[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.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" +dependencies = [ + "windows-sys 0.52.0", +] + +[[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 = "windows" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57b543186b344cc61c85b5aab0d2e3adf4e0f99bc076eff9aa5927bcc0b8a647" +dependencies = [ + "windows_aarch64_msvc 0.37.0", + "windows_i686_gnu 0.37.0", + "windows_i686_msvc 0.37.0", + "windows_x86_64_gnu 0.37.0", + "windows_x86_64_msvc 0.37.0", +] + +[[package]] +name = "windows" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1c4bd0a50ac6020f65184721f758dba47bb9fbc2133df715ec74a237b26794a" +dependencies = [ + "windows-implement 0.39.0", + "windows_aarch64_msvc 0.39.0", + "windows_i686_gnu 0.39.0", + "windows_i686_msvc 0.39.0", + "windows_x86_64_gnu 0.39.0", + "windows_x86_64_msvc 0.39.0", +] + +[[package]] +name = "windows" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows" +version = "0.56.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1de69df01bdf1ead2f4ac895dc77c9351aefff65b2f3db429a343f9cbf05e132" +dependencies = [ + "windows-core 0.56.0", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-bindgen" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68003dbd0e38abc0fb85b939240f4bce37c43a5981d3df37ccbaaa981b47cb41" +dependencies = [ + "windows-metadata", + "windows-tokens", +] + +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-core" +version = "0.56.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4698e52ed2d08f8658ab0c39512a7c00ee5fe2688c65f8c0a4f06750d729f2a6" +dependencies = [ + "windows-implement 0.56.0", + "windows-interface", + "windows-result", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-implement" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba01f98f509cb5dc05f4e5fc95e535f78260f15fea8fe1a8abdd08f774f1cee7" +dependencies = [ + "syn 1.0.109", + "windows-tokens", +] + +[[package]] +name = "windows-implement" +version = "0.56.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6fc35f58ecd95a9b71c4f2329b911016e6bec66b3f2e6a4aad86bd2e99e2f9b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "windows-interface" +version = "0.56.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08990546bf4edef8f431fa6326e032865f27138718c587dc21bc0265bbcb57cc" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "windows-metadata" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ee5e275231f07c6e240d14f34e1b635bf1faa1c76c57cfd59a5cdb9848e4278" + +[[package]] +name = "windows-result" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "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-tokens" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f838de2fe15fe6bac988e74b798f26499a8b21a9d97edec321e79b28d1d7f597" + +[[package]] +name = "windows-version" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6998aa457c9ba8ff2fb9f13e9d2a930dabcea28f1d0ab94d687d8b3654844515" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2623277cb2d1c216ba3b578c0f3cf9cdebeddb6e66b1b218bb33596ea7769c3a" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec7711666096bd4096ffa835238905bb33fb87267910e154b18b44eaabb340f2" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3925fd0b0b804730d44d4b6278c50f9699703ec49bcd628020f46f4ba07d9e1" + +[[package]] +name = "windows_i686_gnu" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "763fc57100a5f7042e3057e7e8d9bdd7860d330070251a73d003563a3bb49e1b" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce907ac74fe331b524c1298683efbf598bb031bc84d5e274db2083696d07c57c" + +[[package]] +name = "windows_i686_msvc" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bc7cbfe58828921e10a9f446fcaaf649204dcfe6c1ddd712c5eebae6bda1106" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2babfba0828f2e6b32457d5341427dcbb577ceef556273229959ac23a10af33d" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6868c165637d653ae1e8dc4d82c25d4f97dd6605eaa8d784b5c6e0ab2a252b65" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4dd6dc7df2d84cf7b33822ed5b86318fb1781948e9663bacd047fc9dd52259d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e4d40883ae9cae962787ca76ba76390ffa29214667a111db9e0a1ad8377e809" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.6.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "557404e450152cd6795bb558bca69e43c585055f4606e3bcae5894fc6dac9ba0" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "winreg" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "wl-clipboard-rs" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12b41773911497b18ca8553c3daaf8ec9fe9819caf93d451d3055f69de028adb" +dependencies = [ + "derive-new", + "libc", + "log", + "nix 0.28.0", + "os_pipe", + "tempfile", + "thiserror", + "tree_magic_mini", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "wayland-protocols-wlr", +] + +[[package]] +name = "wry" +version = "0.24.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00711278ed357350d44c749c286786ecac644e044e4da410d466212152383b45" +dependencies = [ + "base64 0.13.1", + "block", + "cocoa", + "core-graphics 0.22.3", + "crossbeam-channel", + "dunce", + "gdk", + "gio", + "glib", + "gtk", + "html5ever", + "http", + "kuchikiki", + "libc", + "log", + "objc", + "objc_id", + "once_cell", + "serde", + "serde_json", + "sha2", + "soup2", + "tao", + "thiserror", + "url", + "webkit2gtk", + "webkit2gtk-sys", + "webview2-com", + "windows 0.39.0", + "windows-implement 0.39.0", +] + +[[package]] +name = "x11" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "502da5464ccd04011667b11c435cb992822c2c0dbde1770c988480d312a0db2e" +dependencies = [ + "libc", + "pkg-config", +] + +[[package]] +name = "x11-dl" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" +dependencies = [ + "libc", + "once_cell", + "pkg-config", +] + +[[package]] +name = "x11rb" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d91ffca73ee7f68ce055750bf9f6eca0780b8c85eff9bc046a3b0da41755e12" +dependencies = [ + "gethostname", + "rustix", + "x11rb-protocol", +] + +[[package]] +name = "x11rb-protocol" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec107c4503ea0b4a98ef47356329af139c0a4f7750e621cf2973cd3385ebcb3d" + +[[package]] +name = "xattr" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f" +dependencies = [ + "libc", + "linux-raw-sys", + "rustix", +] + +[[package]] +name = "xdg-home" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21e5a325c3cb8398ad6cf859c1135b25dd29e186679cf2da7581d9679f63b38e" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "zbus" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "989c3977a7aafa97b12b9a35d21cdcff9b0d2289762b14683f45d66b1ba6c48f" +dependencies = [ + "async-broadcast", + "async-executor", + "async-fs", + "async-io", + "async-lock", + "async-process", + "async-recursion", + "async-task", + "async-trait", + "blocking", + "enumflags2", + "event-listener 5.3.1", + "futures-core", + "futures-sink", + "futures-util", + "hex", + "nix 0.28.0", + "ordered-stream", + "rand 0.8.5", + "serde", + "serde_repr", + "sha1", + "static_assertions", + "tracing", + "uds_windows", + "windows-sys 0.52.0", + "xdg-home", + "zbus_macros", + "zbus_names", + "zvariant", +] + +[[package]] +name = "zbus_macros" +version = "4.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fe9de53245dcf426b7be226a4217dd5e339080e5d46e64a02d6e5dcbf90fca1" +dependencies = [ + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.72", + "zvariant_utils", +] + +[[package]] +name = "zbus_names" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b9b1fef7d021261cc16cba64c351d291b715febe0fa10dc3a443ac5a5022e6c" +dependencies = [ + "serde", + "static_assertions", + "zvariant", +] + +[[package]] +name = "zvariant" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aa6d31a02fbfb602bfde791de7fedeb9c2c18115b3d00f3a36e489f46ffbbc7" +dependencies = [ + "endi", + "enumflags2", + "serde", + "static_assertions", + "zvariant_derive", +] + +[[package]] +name = "zvariant_derive" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "642bf1b6b6d527988b3e8193d20969d53700a36eac734d21ae6639db168701c8" +dependencies = [ + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.72", + "zvariant_utils", +] + +[[package]] +name = "zvariant_utils" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc242db087efc22bd9ade7aa7809e4ba828132edc312871584a6b4391bdf8786" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml new file mode 100644 index 0000000..3e16556 --- /dev/null +++ b/src-tauri/Cargo.toml @@ -0,0 +1,31 @@ +[package] +name = "app" +version = "0.1.0" +description = "A Tauri App" +authors = ["you"] +license = "" +repository = "" +default-run = "app" +edition = "2021" +rust-version = "1.60" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[build-dependencies] +tauri-build = { version = "1.5.3", features = [] } + +[dependencies] +serde_json = "1.0" +serde = { version = "1.0", features = ["derive"] } +tauri = { version = "1.7.0", features = [ "os-all", "notification-all", "dialog-confirm", "clipboard-all", "dialog-message", "dialog-ask"] } +dirs = "5.0.1" +reqwest = { version = "0.11.18", features = ["json"] } +lazy_static = "1.5.0" +tokio = { version = "1.29.1", features = ["full"] } +tokio-macros = "2.3.0" + +[features] +# this feature is used for production builds or when `devPath` points to the filesystem and the built-in dev server is disabled. +# If you use cargo directly instead of tauri's cli you can use this feature flag to switch between tauri's `dev` and `build` modes. +# DO NOT REMOVE!! +custom-protocol = [ "tauri/custom-protocol" ] diff --git a/src-tauri/build.rs b/src-tauri/build.rs new file mode 100644 index 0000000..795b9b7 --- /dev/null +++ b/src-tauri/build.rs @@ -0,0 +1,3 @@ +fn main() { + tauri_build::build() +} diff --git a/src-tauri/icons/128x128.png b/src-tauri/icons/128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..1048c3e73320a94df546db3e3430770966f71ac3 GIT binary patch literal 3965 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/128x128@2x.png b/src-tauri/icons/128x128@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..680b4ae827ea4354a4829bd23a6d4b225b473a0d GIT binary patch literal 7797 zcmeHMJ-8n-Df((sxBM6E}NT-0LG!C6oLl4aW z^YZ)$@Av2VbnjaCtaa`^YoEK$-aAH1Lx~8V1|I+bA{Au?9RL8`Z$SX=!~5l}=NCHw zpqEflkk#{_+t0Hgu&4kWyUv$CA2%qxCi1+o zAYZJJ5ZM?=Za;F?HQMeRA%JFON@LGG_mvjtgQ)yUaAajV>Uh1 z_qq7mj9I?W7c1A(?`S^E!L(g0c#Zzyx69LaiVgw*IcRMi$g1O#H2Y00>$kJ zN$V`5;u+q96Fpas+=B%Jr!~wCG^FLv+SRsfHumIeJ&mA>cP_70&h>)#Q*~_@Lj5HR zHn9;I20W^R?0wwR!GRbE1YqmM3kniJELBtmU6I?hc&@IszI9j7(8yUwT3-H@)s(_) zP1L&)^vJ<6`qtd88yndE)U93;3-jJ zVQ5697QGD#)GjMoYkFt@c}$a5gH}4?jW{KKCvy@W;v7AtjA^q!A9S7~W8ewcv9V%T zg(QI&x%xJgEjTG)Dl$0e)RR#T5mby9`d?9RQ|IN)InH&ft79E*2A?Ie?s_0AIPgqM zUZ9Oqf@;6ru(Gv)9%ulQ$b%gC-S1={@8mD<_CLv=Gz1B!dm z#klA&$Fz^`5O6p8MxzC+1Ho7SO zFj9Uto4$MyzB`0s6;%Ho%@pTa>k`Z$!s#my{s648SH=R=QQ)zM>YZ-!Stror*?pf- z?zPK#wf5k{u$l#TsPSLdDrXY5&7ALW*Y%*L)lj?-fKFMJ!DLwA49f!Pv={}<050$r zDPP9`k{&kMb@_0b-555@@4kK=`xfe^@|Ug8Z`%H1E9dua^V1Zm+rjl98^hW3ggZ;+ z9CsfW%@_>@jB@ND)ti-|k?m;^M-`FRox{S4VS>R%v!HwpGA1i)OS~DM^oJwvp1>Vx zQ*eN69^L7`kACST!n^JiW6$sN6Hems-Fz4M3`x(MA-AdgxpHGSLa+r@rM|L1WFLS# zHFi{OI$J-f_B(Lyq1^u%S42xRV2T^=X|n0tu4(A;lR5f96cQwU%To2_eJ z(1y^I>L6S=XJp-CeDo`We_s$_xfUH(>_QA2kFnSuR zjdaknL5Ff);mWed5aY|E9C%z}IkUKjR_Vw#ruJ{fZ?rNwlj+?uKt^f-YeGgMr_gQ` zz2MF0Pl{vVkq(nr_1u_gSa5)giru-$^--+r!I}0kRUKKcFfnFR7hi0erspw z`#B6B2vRn&k4fC$0Zth0`?i_la|=J*Od@7A!WkpLyxd&%jpV9MFa~=*Xz{3I>7pVn zL0UrFS>eK()c+27mqVUZQ<;@_C{Sc2C{L?x(ZlcJe;>>OjU2P z(wpAfgh{6?wS?N6es8kYqHdc^oA*nBo%j5>U0w8fOg@XCGVOJttraH~=jFwh*0x0 zm>d^BY-0Ag)aeAD4qL!>{arYguHmN--D1^>`OJ+rgw!fh4HX}t48m1$ABq2!TTY}O za1B-TIm2IeR>z6biE`#|4b~#)*o!?~%EyB5PC(%@Cpe;i5J|^v?K< z-dUp+Gp=^XFTWe=HSvg#cZFCFxC2*SP3Yy;$*!1gXGi922B_h6nme`cc^@nA*85m8RsmL&B<5-f#Bqp^L;-fzdE0;adKaU_~n?^M@D zfhR9V)Ry)~$W!M)*cRRq+t+tppO)pPj(A;jr6JTyG`eS)r-8NasTBWqVQ49 zFScC_5_;oJ#>-Pf^PRCAT` zn!%O9jZY_hq7tOU$GZ3Oh6TqVER;VyG)>*Iz-Gg{-Id~v+x>%AuI?-rhKph6oka!3 zaSy{j* z!IPaMYZiD?W#;?ikQ_Y=37{T(kfX(!TGzT5bP3cc%a4t@_fw4tfg(0+kR zvM~m0m`kL_#(>2rX=hM8i4I?8%IJm>6@0@fe2#`|e-Eu-5m(LQ3Ygx13Sa(JytBM& ztumGbZ`p0e5gzRgkQQ;Rr&W`97Y4S#<-gc`%wO|kR0ZYx$5a(?dh6{<3x6%=)ErhX zING~m^a3ynSvi6-$AKarbg`L>ODo7oBT9%BbfK7{D2(wSvgC&y$AbbTagWM@%Q!rm zH6YzeNEv0t=uVa8^gvWQE_}!15_kTDAew>G|qHo0`*nkI=B#6w* zB!ZW8pSwx+{XQf4pF!}IfJbBeE5o9s_SlRP2wkE5GaLKaNqGZy8T8RDV}L`g(=zv> z=|nV4&-&fbK;+P;GalT26MjN$MlfAys2c>BXbq!|kkcLts~DXOo{!74+Sm4gT`cov z^oMzHdsOf^^TkDiNd@_ASs*u=J&iyqAn<(v3k*+oQYnNayuYtX^iBWLN0*G%(aH!y zjHZzH+PNGEmzV8(X>^ROeIa;{eNs%tUKW&iL)}>gJ0VP_l4~S@}IrsQP z0c6%W^cFEBEqqCJSh8Fdj?_ZOHcS^dMX(bZH9H>o<*6Nl!(^bi4e_K7p6YTfGhhyifE9<{JAZRpk8KDtBnY z#fM~{QSR;Xq(wp=+>fdssEW!sKc_)zhgt`XGENc>JR81@5e1&UMX#C#6EuiXajM|i{#^L z6z0;fv9-uyWLyJ@Fpwsgzx&qj1LfMOkb?*xcnXZcz@*jBs2Fqt{&Zxs=)q>O@jJtK zKKE!Ei22QmG7cnwdlOg_p7b6A*oF+lUCJTXFa>BdvMXvmDYzXzKm*Ky8l+ zk-TImoU93BTyMyemN&%xwfTJh)%`O-4^avkqxsC_M~Qa@pJ07hY|%u+czn#}f$z-P z1GPKe3=*)vXc?KRPolPE?Ejb+arl-`K0)yzCj*`q@Vp@1-ztBZC!-Y3aT9Zf6lJfd zG$i{1z(X$6>2lMdk{#yuZ)mpixp?+FZ@bDh5gf8_goNisTBiqtY_<^e4Byt>^mSp2 z8yOs+!edT7URd`uq+kSDJ6HJQ)c5zVoM6;~l{L#y|>_4aM!J&>h_SwO}gNI2X zHabZz;b2l1Le_qz4(@N#`6bT`x%w+MWXg8ds|Ym+66!3TA7tp7yW40~on-sI=GdHA zYAh-^Tuih*2Jkx})-p|wspo$&@#MIK=@_0pN&Q#pXO4BeOXehMrmO+#_CdBet2kf$ zWwp~9Dmev`zfSCFYEWe;y!ax_#cky03-E)OR@%FPzic2GIZ{6K8U@bN5s9IJ1p0VC znwKNb*1AGlok=u}h?cMg$IX*;uFH2uGdfFrCymY$lrND5Mp}1XA2wMC&mk_qu;Q zbKpm?7g-aD6w#KQJ|E%|A5c-YQ+gV8d8r{HV>|He8*wnbbl)@wqtQc2JA<2)v@&vj zoiHQIIn?|gL1#q}1x#CGBWk0}P||D?)YcgF04K9pk$7g?b1^HKi}$a(!m8GW1OZto zndW)U^jNP`=)ge)-C$HNfp6$eeGC&PgSf^qUsk{3NP%O8xW@lU9Jq+ zTEKbte#MhUtKK7C9S``GZQpr+!y$)o2!+02oj@(E>+>HPtH_P|fv0!teyPZ=3uvk5 zrJCkm(n(s1LW5LL(#v|dr`d#YhBnatq}1I{N;(ZXYcbly?H#e%|G zZr$#+Ev`Y~T-(hL{1ag;{x&p+*$V42G*!s6q}9t9ub>U*Cl|X(@Ez(l?Uu_09;%sg zS#Ph!QGE_7{$HsZuF+tgSVmF^YN~*>!L>pt@8cQuD(#rb^NY5>mUt{I%?WgOTiheN ztpOB!kjN{d-#g;7vwgQqtLd_$HN_;JXWJF?=?~a|bpT6A;jWJa2TUrQ?4k&==NcaD z9Sq~~JD`w{{UidNWW&Cy`gnbY%h()LWfJnM$9)X+E$0yV;`NNIcX{o6yEwK5U8_5d z`&Npe>8sxoPjLA0{ci^(n+t5G)jEzdc4>8%?hg24J^vWD!4D67tJf3SFMwXdc0I`zYG$cfqHaFrbx=e_x2uuQ%+3+Y ziUM{E%bxp6cb=Z0clHKdl$jZI-M2x+`ovqp@|IW=(V$t}l~LKkEx}S11hvRM!SV_g zIk?#U^jPtR!3l@)HC?Zwn~ra_uZiih+QOv9OQAuw&QP8%84BF1?=;xVe5F79jAqi4 z?j;(b_)?8*%^gWnr!Fjg&m})QH|vzR%AkKgaW7>{trr<6-`O}9!Ppd)guirdvySej zrEE6C)rU0}lodcC0E^%ynneHKafq3<5d)&>=+l$(ytBuB7u#mcF7dXTmu}kfQ1YYN z=_?`)BfACo@WtywZHXVvC#pWu+Gd1l@M9=xoQAV7ekTZ4Tb$S{--2|a&~l`bO&$eN zy{S?*re@b|TyO2JMXkNK`t4=IIsQkpbY{D?s5s(teuzQ-X?Z8FqE4=!RUDWH)RkPo zB>cs(a}&fpj>n(bAJ0#PA6i-nh8v$F^`p>pDfsZ`)Tfxuxe@iWBmZieRa2-($FRXg z{gmwVdk8>I`V>3Z+Eny-tJBEcAF>&T$U~InXCJH;Qf;moaSb~sZGI&RUt;*EUNQqQ z_}K1g*&)TK$c^^>rO|(CzIIB!N9O&{6)UB#Jw46YJ>Z0&&{WR$4XNERX;BPhvggYUNx_hEgADednQ&)rUzv{ z(|6!|i1R2FuBOsYq9?CRy6L>bcRFoZ&$ee&=alY07MAkp01)K#IE5(fx0lEGIcfW$ zsV2wZ#t?xR{mN^Ps6_Gu=AOTZUVbe8m7|W3x79_Ep)FgVbBnC`G%#sd^{=L-pHQ0Q zr!SYS(%nG*tV%)mY0H%qUHUHmHu*9rOsR8Ga`FQO^u<8 z9+dQxo%rZjnz;VdSo@KGpW`c0m-cy{g7Qv1X*pSv3A16zp1+Ro2)IA{8$QEkWYO~5 zdyF{@8bU?jaKN=?$#Rqn6Xkr7oIMmBov7s^_sh|7XwW=@nZUFWl8zjIjLo=8r0Cj- zV?Z?6-LeZmJ1NN*e43F)w5OLdvb*g&BFV{G8^jlgCjxg-2PwmzY(BKmU&(DC65>OP zIT~h&;$n+a2na5BYSnUQ7_>fUfc+@bZ%q*&EbgfEvV)x-phCZFHEzFKAHBQ z%3D3`!wLnndAbZj3wJKwaiWQrBqLMxKBjSiO0oE8OR!^^ReIUTv1GdRD(f{7j1{Nt z9?E1iZ^E^$-V_3LAYEloWzi`U*I8C!={K+2a5L~_Xnp&*Lo}Lk@H@93dL&B%1`o%+ znuVUo$Um5f9l_Sh#k8%;etC_2sWk!W9o1wD1w zkI&9ct0j){>)+P1APf6@STST?k2rN~cWn9X`hyi#RO9Gkh!2ZXhu?0`wgpD0i^p2Y z$yeA#=JH`V&_%vE*I%irz=qW|gm?^jdgGnz;BP(?NQ%ggDf~j*bt6i0ICfqf(9oq(HE8d zM?cqjwNyYY75sxCCpGxDjkPDZz5P3vh*o7A{OKm2my+lh~A=_+C zci8>}s)88djsOZIRp+GjcmGS7R0?n9zJsD>ev_9n{fsf9_^W_sIRsF!cA}FgT?5=& zeDbC6|F{&+B~`lMVmi#uZkC&>iV`w3gCyRAWfZA+;v3%7{$zn-hCm@?$>n~U=Lw=L zgyAtcu_PEvt%NWBJh(d|7X1*bFp5<}%)2Tn@cdNE7P8YwJ-hQto9nK!fl#@L^4+7u z$Q*opfI8w)7%2g z-b%5XxBtmRD7i<-7yi}Ps6!sMZ|1sTmGeS~e?M8z`qe)Dvz2wTi}R{mI48fsc&nG^ z9wj`IegP>7PZ~Ewe6n57YhIGs^ji^#0rMbTv#)PvQxo9BiZ4zlQg*0*SCi;Gj4xP0 zA5u+~F&8i0dQooJ?$8-B#4PR)$m2%-+ChAE9Iwo-XkO~ZYC%@?`FY=BG)(zE1CiU^ zbW^X}?M+@|T2fIFPb09@p3VwrAvXG1&^o)TDsqxe3oVujWwj4IMDW>{icZg}kz0@W z`I_&ZDop)rN8g2p#s`croa6{^9)=c2Ps@9pT>oCaO*+Ig7e?{lu3o&7nkS$YyllCC zEtNBu-sO}y@o{I=I!Lmu+WrS}_qE=Kl#Iu)_@C%r^QEptjmYrk>dZO=H!2(|*QQO) zoei;(BT6Sap4dS-5o^HMEdz@wzca_jfmrhC{(^NL?ba3KPp~uw#(kQ7O$VKlra`QI zIN0~fTtyu&k`ivhV+J z+LI+%Zms>fnAJ8V1mJ5MnIgV%ylE@G7vJJ@PQ@?x8yg3pYJKvcf=54Y|K~vdKTX(8 a42YgZ^#&tZ7;|qY11hgH6u!$@g#RDZgr?8{ literal 0 HcmV?d00001 diff --git a/src-tauri/icons/32x32.png b/src-tauri/icons/32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..8b082ec9f3edf4225dec7366b726fd5ff39b733a GIT binary patch literal 1011 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square142x142Logo.png b/src-tauri/icons/Square142x142Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..e2f055b463c850c42189a6033e1c3fb3b2220aa1 GIT binary patch literal 4250 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 UEE{8a8$*FpkOj$9NSOrv4*?r;=l}o! literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square30x30Logo.png b/src-tauri/icons/Square30x30Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..93d2500fecf5f91f6562b9eed8d37172c0d92170 GIT binary patch literal 957 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 X#aINEb96r4ltNQg(p0Qhun7MjRVLJR literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square44x44Logo.png b/src-tauri/icons/Square44x44Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..4fc2aa877a05740759a35469327e5efba58883da GIT binary patch literal 1402 zcmV-=1%>*FP)9(E6#nk}ozCxV5@~pes#`Mi(w* zfeST(7*`U-G{so)FC-PBs3=mYwM}U|)6UO(mvipB?{(VDv~M~sgk)|qnVCE9-us<% zzVn@P$7=szRN@vI)~y7#2Dk>e2Dk>e2DtJe1YpebyH90H-e|z42;RLpC-Zd91EvZR zqRiSlOTaebgRTlNdyj#P=cMvfqa&h&6<8l=Z#2-c(o~;C2}6JSuYjS9j179xfcda2 zd2gEBx}(j;3!4)-@p}%(&u7u>3S~?>EAiMm8?S9mmfffO)Fe(^%)zBKo?Irt3^tvY zSW#!-z0MT6);nsxZ!iyvz5*+?m-Ak*hN)p00cR~^@lmxF3wB+jiI2M)a7V+;>6a(` zAhgAxH4hA-=V-F$n+*QE=Ap?o@bj>zcoesKAjw4+Ncwb4O@aXL}p46P}zgobd(`h7afs{QvtRaU(19<&Q zU#Ici)d2Kf^76J;8{?FihFAu`JQ&ck9d7jbRpO%Jl_;&jq-4s2JlG&kydJ%V$1@uo z#tGUyc^Z1cM+~ky&Bc4l{}XVhMGalP%{5%Ft3LqC_kBS_Mj+#8hDK4*c&a8gM9A(psj*v4O05 zXI?ia1jdLKmW5b|V|&>119b?;;H0k(mGd0JKe==QbDZ}WnU;zgUr}^UQjr;%^3|So z7Gf2R*nrDgp}lWv$>Kxj8enL?vvzlHO5or_IuE?PD}{qPVMB}e-Q}RO&B9Y8i+>YnUb_(J zSSk_lQQ)s}AH!1t=zzr(XPz^~QUIoxV+6eI|2NRlooj7X09^9wQ3BNSU=p3J7BU4H0e4X*O2r@@vROt+8rG@y5X6Sl6gmAA`19~-dhcc}&Jy^_c0f8^BMHuC6OJ5#Dd zgEol0#O>w&yWJ=^O%ZQ@?wvn;ydJHTlw4$lr~+_!d&m+ap8qn9bHf2O?xzA!Z;R*| z2Fwi&gAP?B&R}DC|0Y_ui^{*E#$r9J`dR|AniAx|Mi)EQTKM$0oB}5?liB>no!2O- z#!x0mPR~c|QQV4FC2PC^-^(`NX5!u5sc2pSmPLSNz{fN_`~JCUm2}K$=CD}6A-*=2 zyTM-4XD&8=H5@K!tq~aG=my6&10%S{rOl+h}sHvsSk91fTeTGWh^R%9Io-YCA z3W$jNhjs{hsvyhC9$$5wqT2(5oaT#a(VDqQSo}4i*U#5i#O@`+gmT^TZ1gcZjC?SA zI}tnk9j0q88t_lHwg3PC07*qo IM6N<$f?fBi5C8xG literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square71x71Logo.png b/src-tauri/icons/Square71x71Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..7a12f0da7f54853c7053b2b1aee81510117c7710 GIT binary patch literal 2282 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 Eg7;!E=l}o! literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square89x89Logo.png b/src-tauri/icons/Square89x89Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..a797967d83fe98f8f500e58b99f9b2c0dd02c97f GIT binary patch literal 2784 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 mf^0#yVnMbbTac}^UETtA!Js4V=u%h!0000}F zzwiIgR`1<2Zqs=%^z#8k03-ks011EuKms5EkX8cG1d&yv@d=6g&*Cx5KF2^{By7kO zZ88{*R%Nu!Hzx|Ut;GGXMikQp+2;a?V1r@v-#J?va%HJ#~X-o1%a>Vv>2nL4SRKq=7B@V&kUuNj!ltl{- zL1#E65jnqvZwiQT(+QDKAQZTrhfI3omz?xG_)>vm#!x~4qaU~;LYqIDB9p;K*`jF3 zKiRdWfRMw9o$KQg1UAjG5%+yEMb8{GB?zTp|KfoAIcC~&9mc99I_M|WL#16Ex^Qh_Xxjg&rnX1A7CNBm}|NGBA?r$Uff4A zjgu4049#mQVLa07$e$%{P0}=KI&I40c4M~3sb#&EaHJ9hS7S-s-Ox4Ac3TWxs{-j(b+hQG-rhTsv~Fp5 z#_Kosgyr?v7ioI?XwDZH%_j~ijmQ2fmFJ)|a*{8|?{Y4X-ARq~3K`X0kP~iq{OpZ! z2?BFSG24xxQoWaMPSACWbtx=*gBJRV2sQ-~zdKVb&)vShy&&KFm>h zr$0qctcuZep?;C{4FpDFlTVN5Y2f#KS$bdVOUkND72Ym#2s^kHS$B~`Y8-z>gU+(a z;|v_JmbsX&1E#5n;DsRKw$IZvIO?Prsx*vNYlI6LMK7)k?_nSNfGet=fLqvePJpQD zys|^5t=z3bvEJgQ551A%kQ%l$L`dSJT36qn>*2fCGC3Mgaj0+U@oIpQQOm6%h=lE) z77;ykxX<4dchjx$qpaojXc%9gD%5RVd{=fDs8<=HWK@M6>ZQ)(C~A9;WVt`n=n)nL zKk23T_uLPrRLPVf<_3t9E<^{pjtJM=T7`S1tdetjRINCY3Uy$|HyQehy@~@_TU3)j z|G+7h>l~}!I^D9iHsUnlac@q^UTIV_qhyo6bL@Qn()fQF0gwPl03-ks f011EuKzRHEwd!H7A6~E200000NkvXXu0mjf9Sq+? literal 0 HcmV?d00001 diff --git a/src-tauri/icons/icon.icns b/src-tauri/icons/icon.icns new file mode 100644 index 0000000000000000000000000000000000000000..daf9775f4ddf5044422f88cb34039ab5b41108eb GIT binary patch literal 101952 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 G`9A=SKTeAP literal 0 HcmV?d00001 diff --git a/src-tauri/icons/icon.ico b/src-tauri/icons/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..efdc9aa4847a4b54ed8a4d4d935e81cb8efd147b GIT binary patch literal 14610 zcmeHsWn5HW+wPvBhE4?m38e(2OX)^ILQ0gB25F^XhLBDX=|)7P1eGr7E|G4Tp*v-m zc{l&(%lqN|o#&hn=fm?mXMLGjd+oLMz4p5A>$>iH0{{fT2Uu7Du(1GXxBy@S{-dDy zSKkB*09f!E9o@hBg*X6UOaK4^0{`lN#s`0i0YFafU;Sek0DPvr{(s$AfHzD4kVOvw zk=mN7q(t;Y;6>6$YD!Q483b>DUC;OM^*sgvT=Pdt@_OEooh3*D+oN}EkEo(c(i&8i zlx%El4D`X~b=}Se{%^F`*Gn53UO&agMny#_v>_vnXjsF>(Cdwtm)7w0BQ;(I?AMqH zU;~QLXZeSV(S2}!Zfw&(9T%3M!D<*++mV`LI&D~AOE4~^l%7UDqCb6kWlSo8G@9(D z{!}B2o~e>@rL(Il^78_fCdI5Ej)McE>xGfk$@#Tomp*+|d|3cs&Ofv|Y>p0#Dq9Ko;{S zh#V8EcuJs)GjPKm*0#6s;IJKB<*6;V+3{wE2L6EpWg|dUN-u?0TApVTwsaB5IZ{=9 z_2#8PE7Ir{9|OHVl9@@6qj9UiR?3d^nRtS?Jj@gUd`R-Cb0kvU7uLF6yULPgXosv4 z8BmxDNNrq*-#bu-`*uu!yvXA$-5_opNb7SKY9m%!!%JWx6?dWqvR(67<>X*v#vE-4 z`yJ7-1*5#&{{4$(=R@#kZd)I%8fXW>Q@|wuCJnQ((TBl;5Fx#dLxZ<-PPmDk7r5uV z-utgEmY*kbmQQag2@jJe)3%0D%r!3p-rKzj^v=^{Hp)_#ErRT&3>x;Pmql^RzSU0k zOI6fIKPMYcIktMyOVs$~vow~6bKp*JZ|b8vn_>l*otQ>Fd|737lEuzXY8ID^%FJB^ z$Y;m`m&?4)4{D~0h*POZVtTEaud0ZdJW48M(@`Nyc$F5WOB*TlvWFd_4Ep}NUz|tq zQV8wB_XDrC2(6pMPZYM7 za`6=Z#qnF(%@mj0=NZ+pvD{;G@qNSzVX%`LGp-7H7B}U>Um_JBcgHa7ze4=HAwT)VRppHQC47Af?}8%sbg2LHDJ{U=&6lru9KwWVYF z>LBC*kCZi)$`#Cm{|8{YhCYgafQk7CYXJaIw*LrV^3=lwz_Q69%2Mhu1(t(3Savin z{!p1ldOw+phd}y-RW@-O4lI>wY@d+7X6cXdt2Zm*3$HVB;9qXbp!CI_iQjdT4JHsU zZzpe=7OM#G=)OpvUhe>p=%6_1ZH|AR9BEJ;bDQvuwztU_`zhJFxGu*@DRddr+a1@j z?}g$pJ?e_PY74DpPPP@Í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 Kk^lXp^M3)iU<-Tz literal 0 HcmV?d00001 diff --git a/src-tauri/icons/icon.png b/src-tauri/icons/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..d6a04b11550c0cf0b36fd12e503ed134ca07ad95 GIT binary patch literal 12443 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 literal 0 HcmV?d00001 diff --git a/src-tauri/src/commands/config/mod.rs b/src-tauri/src/commands/config/mod.rs new file mode 100644 index 0000000..68a90fe --- /dev/null +++ b/src-tauri/src/commands/config/mod.rs @@ -0,0 +1,43 @@ +use crate::handlers::config::{get_config_path, Config}; + +#[tauri::command] +pub fn init_config() -> Result<(), String> { + println!("[commands::config::init_config] Initializing config..."); + let config_path = get_config_path().map_err(|e| e.to_string())?; + + println!( + "[commands::config::init_config] Config path: {}", + config_path.display() + ); + + Config::load_or_create(&config_path).map_err(|e| e.to_string())?; + println!("[commands::config::init_config] Config initialized successfully"); + Ok(()) +} + +#[tauri::command] +pub fn get_config() -> Result { + let config_path = get_config_path().map_err(|e| e.to_string())?; + let config = Config::load_or_create(&config_path).map_err(|e| e.to_string())?; + + println!( + "[commands::config::get_config] Config loaded successfully: {:?} from path: {}", + config, + config_path.display() + ); + + Ok(config) +} + +#[tauri::command] +pub fn save_config(config: Config) -> Result<(), String> { + let config_path = get_config_path().map_err(|e| e.to_string())?; + println!( + "[commands::config::save_config] Saving config: {:?} to path: {}", + config, + config_path.display() + ); + + config.save(&config_path).map_err(|e| e.to_string())?; + Ok(()) +} diff --git a/src-tauri/src/commands/fansly/mod.rs b/src-tauri/src/commands/fansly/mod.rs new file mode 100644 index 0000000..12eb3a1 --- /dev/null +++ b/src-tauri/src/commands/fansly/mod.rs @@ -0,0 +1,37 @@ +use crate::{ + handlers::fansly::Fansly, + structs::{FanslyAccountResponse, FanslyBaseResponse, SyncDataResponse}, +}; +use lazy_static::lazy_static; +use tokio::sync::Mutex; + +lazy_static! { + static ref FANSLY: Mutex = Mutex::new(Fansly::new(None)); +} + +#[tauri::command] +pub async fn fansly_set_token(token: Option) { + FANSLY.lock().await.set_token(token); +} + +#[tauri::command] +pub async fn fansly_get_me() -> Result, String> { + let fansly = FANSLY.lock().await; + let response = fansly.get_profile().await; + + match response { + Ok(response) => Ok(response), + Err(e) => Err(e.to_string()), + } +} + +#[tauri::command] +pub async fn fansly_sync() -> Result { + let fansly = FANSLY.lock().await; + let response = fansly.sync().await; + + match response { + Ok(response) => Ok(response), + Err(e) => Err(e.to_string()), + } +} diff --git a/src-tauri/src/commands/mod.rs b/src-tauri/src/commands/mod.rs new file mode 100644 index 0000000..1a8eb15 --- /dev/null +++ b/src-tauri/src/commands/mod.rs @@ -0,0 +1,3 @@ +pub mod config; +pub mod fansly; +pub mod utils; diff --git a/src-tauri/src/commands/utils/mod.rs b/src-tauri/src/commands/utils/mod.rs new file mode 100644 index 0000000..af76acf --- /dev/null +++ b/src-tauri/src/commands/utils/mod.rs @@ -0,0 +1,4 @@ +#[tauri::command] +pub fn quit(code: i32) { + std::process::exit(code); +} diff --git a/src-tauri/src/handlers/config/mod.rs b/src-tauri/src/handlers/config/mod.rs new file mode 100644 index 0000000..865b491 --- /dev/null +++ b/src-tauri/src/handlers/config/mod.rs @@ -0,0 +1,105 @@ +use serde::{Deserialize, Serialize}; +use std::fs::{self, File}; +use std::io::{self, Write}; +use std::path::{Path, PathBuf}; + +use crate::structs::{FanslyFollowersResponse, Subscription}; + +const CURRENT_VERSION: i32 = 1; // Set the current version of the config + +#[derive(Debug, Serialize, Deserialize)] +pub struct SyncData { + pub followers: Vec, + pub subscribers: Vec, +} + +#[derive(Debug, Serialize, Deserialize)] +pub struct Config { + pub version: i32, // Add a version field to the config (1, 2, 3, etc.) + pub is_first_run: bool, + pub fansly_token: String, + pub sync_interval: u64, + pub last_sync: u64, + pub last_sync_data: SyncData, +} + +impl Default for Config { + fn default() -> Self { + Config { + version: CURRENT_VERSION, // Version is set to CURRENT_VERSION by default + is_first_run: true, // First run is set to true by default + fansly_token: String::new(), // Fansly token is stored as a string + sync_interval: 1, // Every hour - sync interval is interpreted as hours + last_sync: 0, // Last sync time is stored as a UNIX timestamp + last_sync_data: SyncData { + followers: Vec::new(), + subscribers: Vec::new(), + }, // Last sync data is stored as a list of followers and subscribers + } + } +} + +impl Config { + pub fn load_or_create(path: &Path) -> io::Result { + if path.exists() { + let mut config: Self = serde_json::from_str(std::fs::read_to_string(path)?.as_str()) + .map_err(|e| { + io::Error::new( + io::ErrorKind::InvalidData, + format!("Could not parse config file: {}", e), + ) + })?; + if config.version != CURRENT_VERSION { + config = config.migrate()?; + config.save(path)?; + } + Ok(config) + } else { + let saved_config = Config::default().save(path); + saved_config + .and_then(|_| Config::load_or_create(path)) + .or_else(|e| Err(e)) + } + } + + fn migrate(mut self) -> io::Result { + while self.version < CURRENT_VERSION { + self = match self.version { + 1 => { + // If we're on version 1, migrate to version 2 (not implemented) + self.version += 1; + self + } + _ => { + // If we don't have a migration path, return an error + return Err(io::Error::new( + io::ErrorKind::InvalidData, + format!("No migration path for version {}", self.version), + )); + } + }; + } + Ok(self) + } + + pub fn save(&self, path: &Path) -> io::Result<()> { + let mut file = File::create(path)?; + file.write_all(serde_json::to_string_pretty(self).unwrap().as_bytes())?; + + // Return the saved config + Ok(()) + } +} + +pub fn get_config_path() -> io::Result { + let mut config_dir = dirs::config_dir().ok_or_else(|| { + io::Error::new( + io::ErrorKind::NotFound, + "Could not determine user's config directory", + ) + })?; + config_dir.push("FanslySync"); + fs::create_dir_all(&config_dir)?; + config_dir.push("config.json"); + Ok(config_dir) +} diff --git a/src-tauri/src/handlers/fansly/mod.rs b/src-tauri/src/handlers/fansly/mod.rs new file mode 100644 index 0000000..b477746 --- /dev/null +++ b/src-tauri/src/handlers/fansly/mod.rs @@ -0,0 +1,254 @@ +// Create a simple module for handling the Fansly API, using reqwest to make requests to the API. +// This module will contain a struct Fansly, which will have a method to get the user's profile information. +use crate::structs::{ + FanslyAccountResponse, FanslyBaseResponse, FanslyBaseResponseList, FanslyFollowersResponse, + FanslySubscriptionsResponse, Subscription, SyncDataResponse, +}; +use reqwest::header::{HeaderMap, HeaderValue, USER_AGENT}; + +pub struct Fansly { + client: reqwest::Client, + token: Option, +} + +impl Fansly { + pub fn new(token: Option) -> Self { + let mut headers = HeaderMap::new(); + + // Set the user agent to the FanslySync/0.1.0 tanner@fanslycreatorbot.com + headers.insert( + USER_AGENT, + HeaderValue::from_static("FanslySync/0.1.0 tanner@fanslycreatorbot.com"), + ); + + // If we have a token, add it to the headers\ + if let Some(token) = &token { + headers.insert( + "Authorization", + HeaderValue::from_str(&format!("{}", token)).unwrap(), + ); + } + + // Set our default base url to https://apiv3.fansly.com/api/v1/ + let client = reqwest::Client::builder() + .default_headers(headers) + .build() + .unwrap(); + + Self { client, token } + } + + // Helper function to set our token on the fly + pub fn set_token(&mut self, token: Option) { + self.token = token; + + // Re-create the client with the new token (if it exists) + let mut headers = HeaderMap::new(); + + headers.insert( + USER_AGENT, + HeaderValue::from_static("FanslySync/0.1.0 tanner@fanslycreatorbot.com"), + ); + + // If we have a token, add it to the headers + if let Some(token) = &self.token { + headers.insert( + "Authorization", + HeaderValue::from_str(&format!("{}", token)).unwrap(), + ); + } + + self.client = reqwest::Client::builder() + .default_headers(headers) + .build() + .unwrap(); + } + + pub async fn get_profile( + &self, + ) -> Result, reqwest::Error> { + let response = self + .client + .get("https://apiv3.fansly.com/api/v1/account/me") + .send() + .await?; + + if !response.status().is_success() { + eprintln!("[sync::process::get_profile] No successful response from API. Setting error state."); + return Err(response.error_for_status().unwrap_err()); + } else { + println!("[sync::process::get_profile] Got successful response from API."); + } + + let profile: FanslyBaseResponse = response.json().await?; + Ok(profile) + } + + async fn fetch_followers( + &self, + account_id: &str, + auth_token: &str, + offset: u32, + ) -> Result, reqwest::Error> { + let url = format!("https://apiv3.fansly.com/api/v1/account/{}/followers?ngsw-bypass=true&limit=100&offset={}", account_id, offset); + + let mut headers = reqwest::header::HeaderMap::new(); + headers.insert( + reqwest::header::AUTHORIZATION, + format!("{}", auth_token).parse().unwrap(), + ); + headers.insert( + reqwest::header::USER_AGENT, + "FanslySync/1.0.0 (tanner@teamhydra.dev)".parse().unwrap(), + ); + + headers.insert( + reqwest::header::CONTENT_TYPE, + "application/json".parse().unwrap(), + ); + + let response = self.client.get(url).headers(headers).send().await?; + + if !response.status().is_success() { + eprintln!("[sync::process::fetch_followers] No successful response from API. Setting error state."); + return Err(response.error_for_status().unwrap_err()); + } + + let followers: FanslyBaseResponseList = response.json().await?; + println!( + "[sync::process::fetch_followers] Got {} followers from API.", + followers.response.len() + ); + + Ok(followers) + } + + async fn fetch_subscribers( + &self, + auth_token: &str, + offset: u32, + ) -> Result, reqwest::Error> { + let url = format!("https://apiv3.fansly.com/api/v1/subscribers?status=3,4&limit=100&offset={}&ngsw-bypass=true", offset); + + let mut headers = reqwest::header::HeaderMap::new(); + headers.insert( + reqwest::header::AUTHORIZATION, + format!("{}", auth_token).parse().unwrap(), + ); + headers.insert( + reqwest::header::USER_AGENT, + "FanslySync/1.0.0 (sticks@teamhydra.dev)".parse().unwrap(), + ); + headers.insert( + reqwest::header::CONTENT_TYPE, + "application/json".parse().unwrap(), + ); + + let response = self.client.get(url).headers(headers).send().await?; + + if !response.status().is_success() { + eprintln!("[fanslySyncExt] No successful response from API. Setting error state."); + let error = response.error_for_status().unwrap_err(); + return Err(error); + } + + let subscriptions: FanslyBaseResponse = + response.json().await?; + println!( + "[fanslySyncExt] Got {} subscriptions from API.", + subscriptions.response.subscriptions.len() + ); + + Ok(subscriptions.response.subscriptions) + } + + pub async fn sync(&self) -> Result { + // Fetch profile + println!("[sync::process] Fetching profile..."); + let profile = self.get_profile().await.map_err(|e| e.to_string())?; + + if !profile.success { + return Err("Failed to fetch profile".to_string()); + } + + println!("[sync::process] Profile retrieved successfully."); + + let account = profile.response.account; + let total_followers = account.follow_count; + let total_subscribers = account.subscriber_count; + + println!( + "[sync::process] Account {} has {} followers and {} subscribers. Starting sync...", + account.id, total_followers, total_subscribers + ); + + let mut followers: Vec = Vec::new(); + let mut subscribers: Vec = Vec::new(); + + println!("[sync::process] Fetching followers and subscribers..."); + + // Fetch followers until we have all of them + let mut offset = 0; + let mut total_requests = 0; + while followers.len() < total_followers as usize { + println!( + "[sync::process] Fetching followers for account {} with offset {} (total: {})", + account.id, offset, total_followers + ); + let response = self + .fetch_followers(&account.id, &self.token.as_ref().unwrap(), offset) + .await + .map_err(|e| e.to_string())?; + + println!( + "[sync::process] Got {} followers from API.", + response.response.len() + ); + followers.extend(response.response); + offset += 100; + total_requests += 1; + + // Every 10 requests, sleep for a bit to avoid rate limiting + if total_requests % 10 == 0 { + tokio::time::sleep(tokio::time::Duration::from_secs(5)).await; + } + } + + // Fetch subscribers until we have all of them + offset = 0; + while subscribers.len() < total_subscribers as usize { + println!( + "[sync::process] Fetching subscribers with offset {} for account {} (total: {})", + offset, account.id, total_subscribers + ); + + let response = self + .fetch_subscribers(&self.token.as_ref().unwrap(), offset) + .await + .map_err(|e| e.to_string())?; + + subscribers.extend(response); + offset += 100; + total_requests += 1; + + // Every 10 requests, sleep for a bit to avoid rate limiting + if total_requests % 10 == 0 { + tokio::time::sleep(tokio::time::Duration::from_secs(5)).await; + } + } + + println!( + "[sync::process] Got {} followers and {} subscribers from API.", + followers.len(), + subscribers.len() + ); + + println!("[sync::process] Sync complete."); + + // Return JSON of what we fetched + Ok(SyncDataResponse { + followers, + subscribers, + }) + } +} diff --git a/src-tauri/src/handlers/mod.rs b/src-tauri/src/handlers/mod.rs new file mode 100644 index 0000000..10de946 --- /dev/null +++ b/src-tauri/src/handlers/mod.rs @@ -0,0 +1,2 @@ +pub mod config; +pub mod fansly; \ No newline at end of file diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs new file mode 100644 index 0000000..ac3e187 --- /dev/null +++ b/src-tauri/src/main.rs @@ -0,0 +1,26 @@ +// Prevents additional console window on Windows in release, DO NOT REMOVE!! +#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] + +mod commands; +mod handlers; +mod structs; + +use commands::config::{get_config, init_config, save_config}; +use commands::fansly::{fansly_get_me, fansly_set_token, fansly_sync}; +use commands::utils::quit; + +#[tokio::main] +async fn main() { + tauri::Builder::default() + .invoke_handler(tauri::generate_handler![ + init_config, + get_config, + save_config, + quit, + fansly_set_token, + fansly_get_me, + fansly_sync + ]) + .run(tauri::generate_context!()) + .expect("error while running tauri application"); +} diff --git a/src-tauri/src/structs/mod.rs b/src-tauri/src/structs/mod.rs new file mode 100644 index 0000000..6fe910b --- /dev/null +++ b/src-tauri/src/structs/mod.rs @@ -0,0 +1,196 @@ +use serde::{Deserialize, Serialize}; +use serde_json::Value; + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +pub struct SyncDataResponse { + pub followers: Vec, + pub subscribers: Vec, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct FanslyBaseResponse { + pub success: bool, + pub response: T, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct FanslyBaseResponseList { + pub success: bool, + pub response: Vec, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct FanslyFollowersResponse { + pub follower_id: String, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct FanslySubscriptionsResponse { + pub stats: SubscriptionsStats, + pub subscriptions: Vec, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct SubscriptionsStats { + pub total_active: i64, + pub total_expired: i64, + pub total: i64, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Subscription { + pub id: String, + pub history_id: String, + pub subscriber_id: String, + pub subscription_tier_id: String, + pub subscription_tier_name: String, + pub subscription_tier_color: String, + pub plan_id: String, + pub promo_id: Option, + pub gift_code_id: Value, + pub payment_method_id: String, + pub status: i64, + pub price: i64, + pub renew_price: i64, + pub renew_correlation_id: String, + pub auto_renew: i64, + pub billing_cycle: i64, + pub duration: i64, + pub renew_date: i64, + pub version: i64, + pub created_at: i64, + pub updated_at: i64, + pub ends_at: i64, + pub promo_price: Value, + pub promo_duration: Value, + pub promo_status: Value, + pub promo_starts_at: Value, + pub promo_ends_at: Value, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct FanslyAccountResponse { + pub account: Account, + pub correlation_id: String, + pub check_token: Value, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Account { + pub id: String, + pub email: String, + pub username: String, + pub display_name: String, + pub flags: i64, + pub version: i64, + pub created_at: i64, + pub follow_count: i64, + pub subscriber_count: i64, + pub permissions: Permissions, + pub timeline_stats: TimelineStats, + pub profile_access_flags: i64, + pub profile_flags: i64, + pub about: String, + pub location: String, + pub profile_socials: Vec, + pub status_id: i64, + pub last_seen_at: i64, + pub post_likes: i64, + pub main_wallet: MainWallet, + pub streaming: Streaming, + pub account_media_likes: i64, + pub earnings_wallet: EarningsWallet, + pub subscription_tiers: Vec, + pub profile_access: bool, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Permissions { + pub account_permission_flags: AccountPermissionFlags, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct AccountPermissionFlags { + pub flags: i64, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct TimelineStats { + pub account_id: String, + pub image_count: i64, + pub video_count: i64, + pub bundle_count: i64, + pub bundle_image_count: i64, + pub bundle_video_count: i64, + pub fetched_at: i64, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct MainWallet { + pub id: String, + pub account_id: String, + pub balance: i64, + #[serde(rename = "type")] + pub type_field: i64, + pub wallet_version: i64, + pub flags: i64, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Streaming { + pub account_id: String, + pub channel: Value, + pub enabled: bool, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct EarningsWallet { + pub id: String, + pub account_id: String, + pub balance: i64, + #[serde(rename = "type")] + pub type_field: i64, + pub wallet_version: i64, + pub flags: i64, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct SubscriptionTier { + pub id: String, + pub account_id: String, + pub name: String, + pub color: String, + pub pos: i64, + pub price: i64, + pub max_subscribers: i64, + pub subscription_benefits: Vec, + pub included_tier_ids: Vec, + pub plans: Vec, +} + +#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Plan { + pub id: String, + pub status: i64, + pub billing_cycle: i64, + pub price: i64, + pub use_amounts: i64, + pub promos: Vec, + pub uses: i64, +} diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json new file mode 100644 index 0000000..8b9de80 --- /dev/null +++ b/src-tauri/tauri.conf.json @@ -0,0 +1,89 @@ +{ + "$schema": "../node_modules/@tauri-apps/cli/schema.json", + "build": { + "beforeBuildCommand": "npm run build", + "beforeDevCommand": "npm run dev", + "devPath": "http://localhost:5173", + "distDir": "../build" + }, + "package": { + "productName": "fanslysync-desktop", + "version": "0.1.0" + }, + "tauri": { + "allowlist": { + "clipboard": { + "all": true, + "readText": false, + "writeText": false + }, + "dialog": { + "all": false, + "ask": true, + "confirm": true, + "message": true, + "open": false, + "save": false + }, + "notification": { + "all": true + }, + "os": { + "all": true + } + }, + "bundle": { + "active": true, + "category": "DeveloperTool", + "copyright": "", + "deb": { + "depends": [] + }, + "externalBin": [], + "icon": [ + "icons/32x32.png", + "icons/128x128.png", + "icons/128x128@2x.png", + "icons/icon.icns", + "icons/icon.ico" + ], + "identifier": "com.fanslycreatorbot.fanslysync", + "longDescription": "", + "macOS": { + "entitlements": null, + "exceptionDomain": "", + "frameworks": [], + "providerShortName": null, + "signingIdentity": null + }, + "resources": [], + "shortDescription": "", + "targets": "all", + "windows": { + "certificateThumbprint": null, + "digestAlgorithm": "sha256", + "timestampUrl": "" + } + }, + "security": { + "csp": null + }, + "updater": { + "active": true, + "endpoints": [ + "https://cdn.crabnebula.app/update/fansly-creator-bot/fansly-sync/{{target}}-{{arch}}/{{current_version}}" + ], + "dialog": true, + "pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IDJFODZGRDI4NjBFMDQ1RUMKUldUc1JlQmdLUDJHTGdRdSt6dWFISXE0MThsa0tvUDA2RWdMSStjQ0J6NVBhdmU4ajRMMms4a1cK" + }, + "windows": [ + { + "fullscreen": false, + "height": 650, + "resizable": false, + "title": "FanslySync", + "width": 600 + } + ] + } +} diff --git a/src/app.css b/src/app.css new file mode 100644 index 0000000..b5c61c9 --- /dev/null +++ b/src/app.css @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/src/app.d.ts b/src/app.d.ts new file mode 100644 index 0000000..743f07b --- /dev/null +++ b/src/app.d.ts @@ -0,0 +1,13 @@ +// See https://kit.svelte.dev/docs/types#app +// for information about these interfaces +declare global { + namespace App { + // interface Error {} + // interface Locals {} + // interface PageData {} + // interface PageState {} + // interface Platform {} + } +} + +export {}; diff --git a/src/app.html b/src/app.html new file mode 100644 index 0000000..77a5ff5 --- /dev/null +++ b/src/app.html @@ -0,0 +1,12 @@ + + + + + + + %sveltekit.head% + + +
%sveltekit.body%
+ + diff --git a/src/lib/index.ts b/src/lib/index.ts new file mode 100644 index 0000000..856f2b6 --- /dev/null +++ b/src/lib/index.ts @@ -0,0 +1 @@ +// place files you want to import through the `$lib` alias in this folder. diff --git a/src/lib/types.ts b/src/lib/types.ts new file mode 100644 index 0000000..be7cdae --- /dev/null +++ b/src/lib/types.ts @@ -0,0 +1,255 @@ +export type Config = { + version: number; + is_first_run: boolean; + fansly_token: string; + sync_interval: number; + last_sync: number; + last_sync_data: SyncData; +}; + +export interface SyncData { + followers: Follower[]; + subscribers: Subscriber[]; +} + +interface Subscriber { + id: string; + historyId: string; + subscriberId: string; + subscriptionTierId: string; + subscriptionTierName: string; + subscriptionTierColor: string; + planId: string; + promoId: null | string; + giftCodeId: null | string; + paymentMethodId: string; + status: number; + price: number; + renewPrice: number; + renewCorrelationId: string; + autoRenew: number; + billingCycle: number; + duration: number; + renewDate: number; + version: number; + createdAt: number; + updatedAt: number; + endsAt: number; + promoPrice: null | number; + promoDuration: null | number; + promoStatus: null | number; + promoStartsAt: null | number; + promoEndsAt: null | number; +} + +interface Follower { + followerId: string; +} + +export interface AccountInfoResponse { + success: boolean; + response: AccountInfo[]; +} + +export interface AccountInfo { + id: string; + username: string; + displayName: string; + flags: number; + version: number; + createdAt: number; + followCount: number; + subscriberCount: number; + permissions: Permissions; + profileAccessFlags: number; + profileFlags: number; + about: string; + location: string; + profileSocials: ProfileSocial[]; + pinnedPosts: PinnedPost[]; + walls: Wall[]; + timelineStats: TimelineStats; + statusId: number; + lastSeenAt: number; + mediaStoryState: MediaStoryState; + accountMediaLikes: number; + avatar: Avatar; + banner: Avatar; + postLikes: number; + streaming: Streaming; + subscriptionTiers: SubscriptionTier[]; + profileAccess: boolean; +} + +export interface SubscriptionTier { + id: string; + accountId: string; + name: string; + color: string; + pos: number; + price: number; + maxSubscribers: number; + subscriptionBenefits: string[]; + includedTierIds: string[]; + plans: Plan[]; +} + +interface Plan { + id: string; + status: number; + billingCycle: number; + price: number; + useAmounts: number; + promos: Promo[]; + uses: number; +} + +interface Promo { + id: string; + status: number; + price: number; + duration: number; + maxUses: number; + maxUsesBefore?: unknown; + newSubscribersOnly: number; + startsAt: number; + endsAt: number; + uses: number; +} + +interface Streaming { + accountId: string; + channel: Channel; + enabled: boolean; +} + +interface Channel { + id: string; + accountId: string; + playbackUrl: string; + chatRoomId: string; + status: number; + version: number; + createdAt: number; + updatedAt?: unknown; + stream: Stream; + arn?: unknown; + ingestEndpoint?: unknown; +} + +interface Stream { + id: string; + historyId: string; + channelId: string; + accountId: string; + title: string; + status: number; + viewerCount: number; + version: number; + createdAt: number; + updatedAt?: unknown; + lastFetchedAt: number; + startedAt: number; + permissions: Permissions2; +} + +interface Permissions2 { + permissionFlags: PermissionFlag[]; +} + +interface PermissionFlag { + id: string; + streamId: string; + type: number; + flags: number; + price: number; + metadata: string; +} + +interface Avatar { + id: string; + type: number; + status: number; + accountId: string; + mimetype: string; + flags: number; + location: string; + width: number; + height: number; + metadata: string; + updatedAt: number; + createdAt: number; + variants: Variant[]; + variantHash: VariantHash; + locations: Location[]; +} + +type VariantHash = unknown; + +interface Variant { + id: string; + type: number; + status: number; + mimetype: string; + flags: number; + location: string; + width: number; + height: number; + metadata: string; + updatedAt: number; + locations: Location[]; +} + +interface Location { + locationId: string; + location: string; +} + +interface MediaStoryState { + accountId: string; + status: number; + storyCount: number; + version: number; + createdAt: number; + updatedAt: number; + hasActiveStories: boolean; +} + +interface TimelineStats { + accountId: string; + imageCount: number; + videoCount: number; + bundleCount: number; + bundleImageCount: number; + bundleVideoCount: number; + fetchedAt: number; +} + +interface Wall { + id: string; + accountId: string; + pos: number; + name: string; + description: string; + metadata: string; +} + +interface PinnedPost { + postId: string; + accountId: string; + pos: number; + createdAt: number; +} + +interface ProfileSocial { + providerId: string; + handle: string; +} + +interface Permissions { + accountPermissionFlags: AccountPermissionFlags; +} + +interface AccountPermissionFlags { + flags: number; +} diff --git a/src/lib/utils.ts b/src/lib/utils.ts new file mode 100644 index 0000000..2bbf067 --- /dev/null +++ b/src/lib/utils.ts @@ -0,0 +1,9 @@ +// eslint-disable-next-line @typescript-eslint/no-explicit-any +export const awaiter = async (promise: Promise): Promise<[T | null, any | null]> => { + try { + const data: T = await promise; + return [data, null]; + } catch (err) { + return [null, err]; + } +}; diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte new file mode 100644 index 0000000..2e511e0 --- /dev/null +++ b/src/routes/+layout.svelte @@ -0,0 +1,5 @@ + + + diff --git a/src/routes/+layout.ts b/src/routes/+layout.ts new file mode 100644 index 0000000..ceccaaf --- /dev/null +++ b/src/routes/+layout.ts @@ -0,0 +1,2 @@ +export const prerender = true; +export const ssr = false; diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte new file mode 100644 index 0000000..6a785ae --- /dev/null +++ b/src/routes/+page.svelte @@ -0,0 +1,98 @@ + + +
+ +
+ FanslySync Logo +

FanslySync

+

+ {status} +

+ +
+ + Loading... +
+
+
diff --git a/src/routes/home/+page.svelte b/src/routes/home/+page.svelte new file mode 100644 index 0000000..e21cb3e --- /dev/null +++ b/src/routes/home/+page.svelte @@ -0,0 +1,299 @@ + + +
+ +
+
+ FanslySynct +

FanslySync

+ v0.1.0 +
+ +
+ + +
+

Sync

+

Manage automatic sync options and manual sync here.

+
+ {#if loadingSync} +
+
+ + Loading... +
+ +

Loading sync options, one moment...

+
+ {:else} +
+ +
+
+

Automatic Sync

+

+ Sync content automatically every {config?.sync_interval} hours. Please ensure you have + a stable internet connection. +

+
+ +
+
+
+ + + +

Automatic Sync is coming soon!

+

Stay tuned for updates.

+
+
+ + +
+

Manual Sync

+

+ Trigger a manual sync now, instead of waiting for an automatic sync. +

+
+ +
+
+
+ {/if} +
+
+ + + {#if syncState.show} +
+
+ {#if !syncState.success && !syncState.error} + + + + + + +
+

Syncing...

+

+ Please wait while we sync your followers and subscriber data. This can take awhile on + some connections. +

+
+ {:else if syncState.success} + +
+

Sync Successful!

+

+ Data synced successfully. Please run the import with the following link {syncState.message} + to import the data. +

+
+ + +
+ + +
+ {:else} + +
+

Sync Failed!

+

+ An error occurred while syncing your data. Details: {syncState.message} +

+
+ + + + {/if} +
+
+ {/if} +
diff --git a/src/routes/setup/+page.svelte b/src/routes/setup/+page.svelte new file mode 100644 index 0000000..95c9188 --- /dev/null +++ b/src/routes/setup/+page.svelte @@ -0,0 +1,266 @@ + + +
+ +
+ {#if loading} +
+ + Loading... +
+ +

Setup is loading...

+ {/if} + + {#if errored} + + + + +

Oops!

+

+ An error was encountered while initializing the setup, please try closing and reopening + FanslySync. +

+ {/if} + + {#if !loading && !errored} + {#if step === 0} +

Welcome to FanslySync!

+

+ Because this is your first time running FanslySync, we need to set up the connection to + your Fansly account. Click the button below to get started. +

+ + {#if errored} +

+ An error occurred while initializing the setup. Please try again. +

+ {/if} + + {#if !loading} + + {/if} + {:else if step === 1} +

Authenticate with Fansly

+

+ To establish a secure connection with Fansly, we require your Fansly Authentication Token. + We do not transmit this token to our servers and it is only used to authenticate with + Fansly and fetch data locally.

+ For more information on how to get your Fansly Authentication Token, please visit our documentation, + or join our Discord server if you need help or have any questions. +

+ + + + + {#if validationErrors.fanslyToken !== ''} +

{validationErrors.fanslyToken}

+ {/if} + + {#if !loading} + + {/if} + {:else if step == 2} +
+ + Loading... +
+ +

We are working our magic!

+

+ We are now authenticating with Fansly and fetching your data. This may take a few moments. +

+

+ {status} +

+ {:else if step === 3} + + + +

Setup Complete!

+

+ You're all set! FanslySync is now connected to your Fansly account and is ready to use. +

+ + + {/if} + {/if} +
+
diff --git a/static/fanslySync.png b/static/fanslySync.png new file mode 100644 index 0000000000000000000000000000000000000000..dae3639663e63d53b859f96e394ec20fc2688b9f GIT binary patch literal 19101 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
`1p5dUS`OxV-|#tu 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 KEtEEW|Nj77e(gN~ literal 0 HcmV?d00001 diff --git a/svelte.config.js b/svelte.config.js new file mode 100644 index 0000000..2466eee --- /dev/null +++ b/svelte.config.js @@ -0,0 +1,18 @@ +import adapter from '@sveltejs/adapter-static'; +import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'; + +/** @type {import('@sveltejs/kit').Config} */ +const config = { + // Consult https://kit.svelte.dev/docs/integrations#preprocessors + // for more information about preprocessors + preprocess: vitePreprocess(), + + kit: { + // adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list. + // If your environment is not supported, or you settled on a specific environment, switch out the adapter. + // See https://kit.svelte.dev/docs/adapters for more information about adapters. + adapter: adapter() + } +}; + +export default config; diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 0000000..bfe0bc2 --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,8 @@ +/** @type {import('tailwindcss').Config} */ +export default { + content: ['./src/**/*.{html,js,svelte,ts}'], + theme: { + extend: {} + }, + plugins: [] +}; diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..fc93cbd --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,19 @@ +{ + "extends": "./.svelte-kit/tsconfig.json", + "compilerOptions": { + "allowJs": true, + "checkJs": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "resolveJsonModule": true, + "skipLibCheck": true, + "sourceMap": true, + "strict": true, + "moduleResolution": "bundler" + } + // Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias + // except $lib which is handled by https://kit.svelte.dev/docs/configuration#files + // + // If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes + // from the referenced tsconfig.json - TypeScript does not merge them in +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..bbf8c7d --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,6 @@ +import { sveltekit } from '@sveltejs/kit/vite'; +import { defineConfig } from 'vite'; + +export default defineConfig({ + plugins: [sveltekit()] +});