From eb75d06c70e7944400dee69b4b5cff6496adcd36 Mon Sep 17 00:00:00 2001 From: Zach Ripka Date: Thu, 19 Feb 2026 11:59:45 +0100 Subject: [PATCH] Rewrite app using tauri. --- .gitignore | 32 +- .vscode/extensions.json | 3 + .vscode/settings.json | 15 +- README.md | 48 +- app/app.css | 17 - app/root.tsx | 76 - app/routes.ts | 44 - app/routes/index.tsx | 19 - app/routes/loadouts/$loadoutId.tsx | 572 -- .../$loadoutId/expressions/bottom.tsx | 271 - .../loadouts/$loadoutId/expressions/left.tsx | 271 - .../loadouts/$loadoutId/expressions/right.tsx | 271 - .../loadouts/$loadoutId/expressions/top.tsx | 271 - .../loadouts/$loadoutId/playercards/add.tsx | 183 - .../loadouts/$loadoutId/playertitles/add.tsx | 174 - .../$loadoutId/weapons/$weaponId/index.tsx | 253 - .../$weaponId/templates/$templateId/edit.tsx | 314 - .../weapons/$weaponId/templates/new.tsx | 401 - app/routes/loadouts/index.tsx | 592 -- app/routes/login.tsx | 29 - app/utils.server.ts | 348 - app/utils.ts | 266 - biome.json | 51 +- index.html | 14 + package-lock.json | 7624 ----------------- package.json | 88 +- pkg.json | 4 - pnpm-lock.yaml | 3964 +++++++++ pnpm-workspace.yaml | 2 + public/favicon.ico | Bin 15086 -> 0 bytes public/fonts/golos-ui/Golos-UI_VF.css | 10 - public/fonts/golos-ui/Golos-UI_VF.html | 160 - public/fonts/golos-ui/golos-ui_vf.woff | Bin 58828 -> 0 bytes public/fonts/golos-ui/golos-ui_vf.woff2 | Bin 44064 -> 0 bytes public/tauri.svg | 6 + public/vite.svg | 1 + react-router.config.ts | 8 +- server.ts | 57 - server/app.ts | 61 - server/appman.ts | 414 - server/userman.ts | 249 - server/valorantApi.ts | 132 - src-tauri/.gitignore | 7 + src-tauri/Cargo.lock | 5734 +++++++++++++ src-tauri/Cargo.toml | 35 + src-tauri/build.rs | 3 + src-tauri/capabilities/default.json | 10 + src-tauri/icons/128x128.png | Bin 0 -> 3512 bytes src-tauri/icons/128x128@2x.png | Bin 0 -> 7012 bytes src-tauri/icons/32x32.png | Bin 0 -> 974 bytes src-tauri/icons/Square107x107Logo.png | Bin 0 -> 2863 bytes src-tauri/icons/Square142x142Logo.png | Bin 0 -> 3858 bytes src-tauri/icons/Square150x150Logo.png | Bin 0 -> 3966 bytes src-tauri/icons/Square284x284Logo.png | Bin 0 -> 7737 bytes src-tauri/icons/Square30x30Logo.png | Bin 0 -> 903 bytes src-tauri/icons/Square310x310Logo.png | Bin 0 -> 8591 bytes src-tauri/icons/Square44x44Logo.png | Bin 0 -> 1299 bytes src-tauri/icons/Square71x71Logo.png | Bin 0 -> 2011 bytes src-tauri/icons/Square89x89Logo.png | Bin 0 -> 2468 bytes src-tauri/icons/StoreLogo.png | Bin 0 -> 1523 bytes src-tauri/icons/icon.icns | Bin 0 -> 98451 bytes src-tauri/icons/icon.ico | Bin 0 -> 86642 bytes src-tauri/icons/icon.png | Bin 0 -> 14183 bytes src-tauri/src/commands.rs | 416 + src-tauri/src/config.rs | 292 + src-tauri/src/game_detection.rs | 1010 +++ src-tauri/src/lib.rs | 246 + src-tauri/src/main.rs | 6 + src-tauri/src/valorant.rs | 723 ++ src-tauri/src/valorant_data.rs | 271 + src-tauri/tauri.conf.json | 35 + src/apiClient.ts | 187 + src/app.css | 12 + {app => src}/components/Gallery.tsx | 5 +- {app => src}/components/SwitchImage.tsx | 4 +- src/root.tsx | 77 + src/routes.ts | 24 + src/routes/app/index.tsx | 560 ++ src/routes/app/layout.tsx | 40 + src/routes/app/loadouts/detail.tsx | 443 + src/routes/app/loadouts/expressions.tsx | 265 + src/routes/app/loadouts/index.tsx | 5 + src/routes/app/loadouts/layout.tsx | 5 + src/routes/app/loadouts/new.tsx | 51 + src/routes/app/loadouts/playercards.tsx | 152 + src/routes/app/loadouts/playertitles.tsx | 147 + src/routes/app/loadouts/weapon-new.tsx | 454 + src/routes/app/loadouts/weapon.tsx | 196 + src/types.ts | 276 + src/valorant-data.ts | 24 + src/valpal.png | Bin 0 -> 637655 bytes src/vite-env.d.ts | 1 + tailwind.config.ts | 12 - tsconfig.json | 41 +- tsconfig.node.json | 15 +- tsconfig.vite.json | 27 - types.ts | 521 -- vite.config.ts | 45 +- 98 files changed, 15890 insertions(+), 13802 deletions(-) create mode 100644 .vscode/extensions.json delete mode 100644 app/app.css delete mode 100644 app/root.tsx delete mode 100644 app/routes.ts delete mode 100644 app/routes/index.tsx delete mode 100644 app/routes/loadouts/$loadoutId.tsx delete mode 100644 app/routes/loadouts/$loadoutId/expressions/bottom.tsx delete mode 100644 app/routes/loadouts/$loadoutId/expressions/left.tsx delete mode 100644 app/routes/loadouts/$loadoutId/expressions/right.tsx delete mode 100644 app/routes/loadouts/$loadoutId/expressions/top.tsx delete mode 100644 app/routes/loadouts/$loadoutId/playercards/add.tsx delete mode 100644 app/routes/loadouts/$loadoutId/playertitles/add.tsx delete mode 100644 app/routes/loadouts/$loadoutId/weapons/$weaponId/index.tsx delete mode 100644 app/routes/loadouts/$loadoutId/weapons/$weaponId/templates/$templateId/edit.tsx delete mode 100644 app/routes/loadouts/$loadoutId/weapons/$weaponId/templates/new.tsx delete mode 100644 app/routes/loadouts/index.tsx delete mode 100644 app/routes/login.tsx delete mode 100644 app/utils.server.ts delete mode 100644 app/utils.ts create mode 100644 index.html delete mode 100644 package-lock.json delete mode 100644 pkg.json create mode 100644 pnpm-lock.yaml create mode 100644 pnpm-workspace.yaml delete mode 100644 public/favicon.ico delete mode 100644 public/fonts/golos-ui/Golos-UI_VF.css delete mode 100644 public/fonts/golos-ui/Golos-UI_VF.html delete mode 100644 public/fonts/golos-ui/golos-ui_vf.woff delete mode 100644 public/fonts/golos-ui/golos-ui_vf.woff2 create mode 100644 public/tauri.svg create mode 100644 public/vite.svg delete mode 100644 server.ts delete mode 100644 server/app.ts delete mode 100644 server/appman.ts delete mode 100644 server/userman.ts delete mode 100644 server/valorantApi.ts create mode 100644 src-tauri/.gitignore create mode 100644 src-tauri/Cargo.lock create mode 100644 src-tauri/Cargo.toml create mode 100644 src-tauri/build.rs create mode 100644 src-tauri/capabilities/default.json create mode 100644 src-tauri/icons/128x128.png create mode 100644 src-tauri/icons/128x128@2x.png create mode 100644 src-tauri/icons/32x32.png create mode 100644 src-tauri/icons/Square107x107Logo.png create mode 100644 src-tauri/icons/Square142x142Logo.png create mode 100644 src-tauri/icons/Square150x150Logo.png create mode 100644 src-tauri/icons/Square284x284Logo.png create mode 100644 src-tauri/icons/Square30x30Logo.png create mode 100644 src-tauri/icons/Square310x310Logo.png create mode 100644 src-tauri/icons/Square44x44Logo.png create mode 100644 src-tauri/icons/Square71x71Logo.png create mode 100644 src-tauri/icons/Square89x89Logo.png create mode 100644 src-tauri/icons/StoreLogo.png create mode 100644 src-tauri/icons/icon.icns create mode 100644 src-tauri/icons/icon.ico create mode 100644 src-tauri/icons/icon.png create mode 100644 src-tauri/src/commands.rs create mode 100644 src-tauri/src/config.rs create mode 100644 src-tauri/src/game_detection.rs create mode 100644 src-tauri/src/lib.rs create mode 100644 src-tauri/src/main.rs create mode 100644 src-tauri/src/valorant.rs create mode 100644 src-tauri/src/valorant_data.rs create mode 100644 src-tauri/tauri.conf.json create mode 100644 src/apiClient.ts create mode 100644 src/app.css rename {app => src}/components/Gallery.tsx (78%) rename {app => src}/components/SwitchImage.tsx (87%) create mode 100644 src/root.tsx create mode 100644 src/routes.ts create mode 100644 src/routes/app/index.tsx create mode 100644 src/routes/app/layout.tsx create mode 100644 src/routes/app/loadouts/detail.tsx create mode 100644 src/routes/app/loadouts/expressions.tsx create mode 100644 src/routes/app/loadouts/index.tsx create mode 100644 src/routes/app/loadouts/layout.tsx create mode 100644 src/routes/app/loadouts/new.tsx create mode 100644 src/routes/app/loadouts/playercards.tsx create mode 100644 src/routes/app/loadouts/playertitles.tsx create mode 100644 src/routes/app/loadouts/weapon-new.tsx create mode 100644 src/routes/app/loadouts/weapon.tsx create mode 100644 src/types.ts create mode 100644 src/valorant-data.ts create mode 100644 src/valpal.png create mode 100644 src/vite-env.d.ts delete mode 100644 tailwind.config.ts delete mode 100644 tsconfig.vite.json delete mode 100644 types.ts diff --git a/.gitignore b/.gitignore index dcc6dbe..ca1c78b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,27 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +!.vscode/settings.json +.idea .DS_Store -/node_modules/ -*.tsbuildinfo +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? -# React Router -/.react-router/ -/build/ -user_*.json -/dist/ +.react-router diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..24d7cc6 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["tauri-apps.tauri-vscode", "rust-lang.rust-analyzer"] +} diff --git a/.vscode/settings.json b/.vscode/settings.json index b2acb54..f2a2aef 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,16 +1,9 @@ { - "editor.insertSpaces": false, + "files.trimTrailingWhitespace": true, "editor.formatOnSave": true, "editor.tabSize": 2, - "files.insertFinalNewline": true, - "files.trimTrailingWhitespace": true, - "typescript.tsdk": "node_modules/typescript/lib", - "search.exclude": { - "**/node_modules": true, - "**/bower_components": true, - "**/*.code-search": true, - "**/lib": true, - "**/build": true, - "**/dist": true + "editor.insertSpaces": false, + "editor.codeActionsOnSave": { + "source.organizeImports.biome": "explicit" } } diff --git a/README.md b/README.md index c1ca5b3..78b9392 100644 --- a/README.md +++ b/README.md @@ -1,33 +1,35 @@ # ValPal -I've created this project to allow Valorant players to create loadouts which can be randomized when joining a game. It supports agent specific loadouts, player cards, player titles, sprays, buddies, skin levels, and skin chromas. +A desktop app for Valorant players to create and randomize loadouts when joining a game. Supports agent-specific loadouts, player cards, player titles, sprays, buddies, skin levels, and skin chromas. -# Screenshots +## Features -Configurator main screen showing a loadout - -Configurator main screen showing an agent specific loadout - +- **Auto Shuffle** — automatically equips a random loadout when you lock in an agent +- **Agent Detection** — filters loadouts to ones matching your selected agent +- **Non-Pregame Shuffle** — randomizes loadouts for modes without agent select (Deathmatch, Escalation, Team Deathmatch, etc.) +- **Manual Equip** — equip any saved loadout on demand from the app -# Installation +## Installation -1. You can find the latest release [here](https://github.com/zachrip/valpal/releases/latest) - download valpal.exe -2. Create a folder somewhere (desktop or your user directory, or wherever else, you do you) -3. Run the .exe - windows will probably complain, click "more info" then "run anyway" -4. You should see an item added to your system tray - right click on it and click "Open ValPal" - this will open your browser to the configurator -5. Open Valorant (you must run the game for this to work) -6. Add a loadout and configure it with your skins -7. When you join a match, the app will detect when you've locked in as an agent. If you have `Agent specific loadouts` enabled it will configure loadouts for that agent if there are any (otherwise it will fall back to all enabled loadouts). You can disable the loadout shuffling all together if you prefer to equip loadouts by hand in the configurator +1. Download the latest `.msi` installer from [Releases](https://github.com/zachrip/valpal/releases/latest) +2. Run the installer — Windows may complain, click "More info" then "Run anyway" +3. Launch ValPal — it will appear in your system tray +4. Open Valorant +5. Create a loadout and configure it with your skins +6. When you join a match, the app will detect your agent lock-in and equip a random matching loadout -# Architecture +## Architecture -This app is based around [Remix](https://remix.run) and packaged using [pkg](https://github.com/vercel/pkg). It uses the local websocket/http server that Valorant runs to authenticate and detect when matches start. +ValPal is a [Tauri](https://tauri.app) app with a [React Router](https://reactrouter.com) frontend and a Rust backend. The backend connects to Valorant's local WebSocket/HTTP APIs to authenticate, detect game events, and manage loadouts. -# Contribute +- `src/` — React frontend (UI, loadout editor) +- `src-tauri/` — Rust backend (game detection, Valorant API integration, system tray) -1. Clone this repo -2. `npm install` -3. `npm run dev` -4. Run Valorant -5. Open [http://localhost:3000](http://localhost:3000) -6. The configurator code mostly lives in app/ - the rest of the stuff is in server/ (such as the game detection, system tray stuff, etc) +## Development + +Prerequisites: [Node.js](https://nodejs.org), [pnpm](https://pnpm.io), [Rust](https://rustup.rs) + +``` +pnpm install +pnpm tauri dev +``` diff --git a/app/app.css b/app/app.css deleted file mode 100644 index d9f1180..0000000 --- a/app/app.css +++ /dev/null @@ -1,17 +0,0 @@ -@font-face { - font-family: 'GolosUIWebVF'; - src: url('../fonts/golos-ui/golos-ui_vf.woff2') format('woff2'), - url('../fonts/golos-ui/golos-ui_vf.woff') format('woff'); - font-weight: normal; - font-style: normal; -} - -@tailwind base; -@tailwind components; -@tailwind utilities; - -@layer base { - html { - font-family: 'GolosUIWebVF', system-ui, sans-serif; - } -} diff --git a/app/root.tsx b/app/root.tsx deleted file mode 100644 index 11b9ffe..0000000 --- a/app/root.tsx +++ /dev/null @@ -1,76 +0,0 @@ -import { - isRouteErrorResponse, - Links, - Meta, - Outlet, - Scripts, - ScrollRestoration, -} from "react-router"; - -import type { Route } from "./+types/root"; -import stylesheet from "./app.css?url"; - -export const links: Route.LinksFunction = () => [ - { rel: 'stylesheet', href: stylesheet }, - { rel: 'preconnect', href: 'https://fonts.googleapis.com' }, - { - rel: 'preconnect', - href: 'https://fonts.gstatic.com', - crossOrigin: 'anonymous' - }, - { - rel: 'stylesheet', - href: 'https://fonts.googleapis.com/css2?family=Readex+Pro:wght@200;300;400;500;600;700&display=swap', - }, -]; - -export function Layout({ children }: { children: React.ReactNode }) { - return ( - - - - - - - - - {children} - - - - - ); -} - -export default function App() { - return ; -} - -export function ErrorBoundary({ error }: Route.ErrorBoundaryProps) { - let message = "Oops!"; - let details = "An unexpected error occurred."; - let stack: string | undefined; - - if (isRouteErrorResponse(error)) { - message = error.status === 404 ? "404" : "Error"; - details = - error.status === 404 - ? "The requested page could not be found." - : error.statusText || details; - } else if (import.meta.env.DEV && error && error instanceof Error) { - details = error.message; - stack = error.stack; - } - - return ( -
-

{message}

-

{details}

- {stack && ( -
-          {stack}
-        
- )} -
- ); -} diff --git a/app/routes.ts b/app/routes.ts deleted file mode 100644 index 1e3ba6b..0000000 --- a/app/routes.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { - type RouteConfig, - index, - layout, - prefix, - route, -} from '@react-router/dev/routes'; - -export default [ - index('routes/index.tsx'), - route('/login', 'routes/login.tsx'), - ...prefix('loadouts', [ - index('routes/loadouts/index.tsx'), - route(':loadoutId', 'routes/loadouts/$loadoutId.tsx', [ - route( - 'playercards/add', - 'routes/loadouts/$loadoutId/playercards/add.tsx', - ), - route( - 'playertitles/add', - 'routes/loadouts/$loadoutId/playertitles/add.tsx', - ), - ...prefix('expressions', [ - route('top', 'routes/loadouts/$loadoutId/expressions/top.tsx'), - route('bottom', 'routes/loadouts/$loadoutId/expressions/bottom.tsx'), - route('left', 'routes/loadouts/$loadoutId/expressions/left.tsx'), - route('right', 'routes/loadouts/$loadoutId/expressions/right.tsx'), - ]), - ...prefix('weapons/:weaponId', [ - index('routes/loadouts/$loadoutId/weapons/$weaponId/index.tsx'), - ...prefix('templates', [ - route( - 'new', - 'routes/loadouts/$loadoutId/weapons/$weaponId/templates/new.tsx', - ), - route( - ':templateId/edit', - 'routes/loadouts/$loadoutId/weapons/$weaponId/templates/$templateId/edit.tsx', - ), - ]), - ]), - ]), - ]), -] satisfies RouteConfig; diff --git a/app/routes/index.tsx b/app/routes/index.tsx deleted file mode 100644 index d422b69..0000000 --- a/app/routes/index.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import { redirect } from 'react-router'; -import { useLoaderData } from 'react-router'; -import { getUser } from '~/utils.server'; - -export async function loader() { - const user = await getUser(); - - if (!user) { - throw redirect('/login'); - } - - throw redirect('/loadouts'); -} - -export default function Index() { - const { userId } = useLoaderData(); - - return
{userId}
; -} diff --git a/app/routes/loadouts/$loadoutId.tsx b/app/routes/loadouts/$loadoutId.tsx deleted file mode 100644 index 27f2b20..0000000 --- a/app/routes/loadouts/$loadoutId.tsx +++ /dev/null @@ -1,572 +0,0 @@ -import type { LoaderFunctionArgs } from 'react-router'; -import { redirect } from 'react-router'; -import { Form, Link, Outlet, useLoaderData, useSubmit } from 'react-router'; -import { zfd } from 'zod-form-data'; -import { z } from 'zod'; - -import type { WeaponCategory } from 'types'; -import { Gallery } from '~/components/Gallery'; - -import { - categoryCanonicalNameMap, - categoryNameMap, - sortedWeapons, -} from '~/utils'; -import { getUser, getUserConfig, saveUserConfig } from '~/utils.server'; - -const updateSchema = zfd.formData({ - name: zfd.text(z.string().optional().default('Loadout')), - agents: z.record(z.string(), zfd.checkbox()).optional(), -}); - -export async function action({ request, params }: LoaderFunctionArgs) { - const user = await getUser(); - - if (!user) { - throw redirect('/login'); - } - - const formData = await request.formData(); - const action = formData.get('action') as string; - - switch (action) { - case 'update': { - const loadoutId = params.loadoutId; - const config = await getUserConfig(user.userId); - const loadout = config.loadouts.find( - (loadout) => loadout.id === loadoutId, - ); - - if (!loadout) { - throw redirect('/loadouts'); - } - - const { name, agents } = updateSchema.parse(formData); - - loadout.name = name; - loadout.agentIds = Object.entries(agents || {}).reduce>( - (acc, next) => { - if (next[1]) { - acc.push(next[0]); - } - return acc; - }, - [], - ); - await saveUserConfig(user.userId, config); - throw redirect(`/loadouts/${loadoutId}`); - } - default: { - throw new Error('Invalid action'); - } - } -} - -export const loader = async ({ params }: LoaderFunctionArgs) => { - const user = await getUser(); - - if (!user) { - throw redirect('/login'); - } - - const { loadoutId } = params; - - const userConfig = await getUserConfig(user.userId); - const loadout = userConfig.loadouts.find( - (loadout) => loadout.id === loadoutId, - ); - - if (!loadout) { - throw redirect('/loadouts'); - } - - const weapons = valorantData.weapons; - - return { - allAgents: valorantData.agents, - loadout: { - id: loadout.id, - name: loadout.name, - agents: loadout.agentIds.map((agentId) => { - const agent = valorantData.agents.find( - (agent) => agent.uuid === agentId, - )!; - return agent; - }), - playerCards: (loadout.playerCardIds.length - ? loadout.playerCardIds - : ['9fb348bc-41a0-91ad-8a3e-818035c4e561'] - ).map((id) => valorantData.playerCards.find((card) => card.uuid === id)!), - playerTitles: (loadout.playerTitleIds.length - ? loadout.playerTitleIds - : ['d13e579c-435e-44d4-cec2-6eae5a3c5ed4'] - ).map( - (id) => valorantData.playerTitles.find((title) => title.uuid === id)!, - ), - expressions: { - top: { - sprayIds: (loadout.expressionIds.top.sprayIds.length || - loadout.expressionIds.top.flexIds.length - ? loadout.expressionIds.top.sprayIds - : ['0a6db78c-48b9-a32d-c47a-82be597584c1'] - ).map( - (sprayId) => - valorantData.sprays.find((spray) => spray.uuid === sprayId)!, - ), - flexIds: loadout.expressionIds.top.flexIds.map( - (flexId) => valorantData.flex.find((flex) => flex.uuid === flexId)!, - ), - }, - right: { - sprayIds: (loadout.expressionIds.right.sprayIds.length || - loadout.expressionIds.right.flexIds.length - ? loadout.expressionIds.right.sprayIds - : ['0a6db78c-48b9-a32d-c47a-82be597584c1'] - ).map( - (sprayId) => - valorantData.sprays.find((spray) => spray.uuid === sprayId)!, - ), - flexIds: loadout.expressionIds.right.flexIds.map( - (flexId) => valorantData.flex.find((flex) => flex.uuid === flexId)!, - ), - }, - bottom: { - sprayIds: (loadout.expressionIds.bottom.sprayIds.length || - loadout.expressionIds.bottom.flexIds.length - ? loadout.expressionIds.bottom.sprayIds - : ['0a6db78c-48b9-a32d-c47a-82be597584c1'] - ).map( - (sprayId) => - valorantData.sprays.find((spray) => spray.uuid === sprayId)!, - ), - flexIds: loadout.expressionIds.bottom.flexIds.map( - (flexId) => valorantData.flex.find((flex) => flex.uuid === flexId)!, - ), - }, - left: { - sprayIds: loadout.expressionIds.left.sprayIds.map( - (sprayId) => - valorantData.sprays.find((spray) => spray.uuid === sprayId)!, - ), - flexIds: (loadout.expressionIds.left.flexIds.length || - loadout.expressionIds.left.sprayIds.length - ? loadout.expressionIds.left.flexIds - : ['af52b5a0-4a4c-03b2-c9d7-8187a08a2675'] - ).map( - (flexId) => valorantData.flex.find((flex) => flex.uuid === flexId)!, - ), - }, - }, - weapons: Object.entries(loadout.weapons).map( - ([weaponId, { templates }]) => { - const weapon = weapons.find((w) => w.uuid === weaponId)!; - - return { - id: weaponId, - displayName: weapon.displayName, - displayIcon: weapon.displayIcon, - category: weapon.category, - uuid: weapon.uuid, - templates: templates.map((template) => { - const skin = weapon.skins.find( - (skin) => skin.uuid === template.skinId, - )!; - const chromas = skin.chromas.filter((chroma) => - template.chromaIds.includes(chroma.uuid), - ); - const buddies = template.buddies.flatMap((buddy) => { - const buddyData = valorantData.buddies.find( - (b) => b.uuid === buddy.id, - )!; - - return buddy.levelIds.flatMap((levelId) => { - return { - id: buddy.id, - levelId, - displayName: buddyData.displayName, - displayIcon: buddyData.displayIcon, - }; - }); - }); - - return { - id: template.id, - skin, - chromas, - buddies, - }; - }), - }; - }, - ), - }, - }; -}; - -export default function Index() { - const { loadout, allAgents } = useLoaderData(); - const categories = loadout.weapons.reduce< - Record - >( - (acc, weapon) => { - const index = sortedWeapons[weapon.category].indexOf( - weapon.displayName.toLowerCase(), - ); - acc[weapon.category][index] = weapon; - return acc; - }, - { - 'EEquippableCategory::Sidearm': [], - 'EEquippableCategory::SMG': [], - 'EEquippableCategory::Rifle': [], - 'EEquippableCategory::Sniper': [], - 'EEquippableCategory::Shotgun': [], - 'EEquippableCategory::Heavy': [], - 'EEquippableCategory::Melee': [], - }, - ); - - const submit = useSubmit(); - - return ( - <> -
- - - - - Loadouts - -
{ - submit(e.currentTarget, { - replace: true, - }); - }} - > - -
-

- Loadout Name -

-
- -
-
-
-

Agents

-
- {allAgents.map((agent) => ( -
- a.uuid === agent.uuid, - )} - /> - -
- ))} -
-
-
- - - ); -} diff --git a/app/routes/loadouts/$loadoutId/expressions/bottom.tsx b/app/routes/loadouts/$loadoutId/expressions/bottom.tsx deleted file mode 100644 index a53b83f..0000000 --- a/app/routes/loadouts/$loadoutId/expressions/bottom.tsx +++ /dev/null @@ -1,271 +0,0 @@ -import { - Form, - useLoaderData, - useNavigate, - useParams, - useSubmit, -} from 'react-router'; -import * as DialogPrimitive from '@radix-ui/react-dialog'; -import * as TabsPrimitive from '@radix-ui/react-tabs'; -import type { Loadout } from '~/utils'; -import type { ActionFunctionArgs, LoaderFunctionArgs } from 'react-router'; -import { redirect } from 'react-router'; -import { getUser, getUserConfig, saveUserConfig } from '~/utils.server'; -import { zfd } from 'zod-form-data'; -import { z } from 'zod'; - -const schema = zfd.formData({ - tab: z.enum(['sprays', 'flex']), - sprays: z.record(z.string(), zfd.checkbox()).optional(), - flex: z.record(z.string(), zfd.checkbox()).optional(), -}); - -export async function action({ request, params }: ActionFunctionArgs) { - const user = await getUser(); - if (!user) { - throw redirect('/login'); - } - - const { loadoutId } = params; - - const userConfig = await getUserConfig(user.userId); - const loadout = userConfig.loadouts.find( - (loadout) => loadout.id === loadoutId, - ); - - if (!loadout) { - throw redirect('/loadouts'); - } - - const formData = await request.formData(); - - const out = schema.parse(formData); - - const newLoadout: Loadout = { - ...loadout, - expressionIds: { - ...loadout.expressionIds, - bottom: { - ...loadout.expressionIds.bottom, - ...(out.tab === 'sprays' - ? { - sprayIds: Object.entries(out.sprays || {}).reduce>( - (acc, next) => { - if (next[1]) { - acc.push(next[0]); - } - return acc; - }, - [], - ), - flexIds: loadout.expressionIds.bottom.flexIds, - } - : { - flexIds: Object.entries(out.flex || {}).reduce>( - (acc, next) => { - if (next[1]) { - acc.push(next[0]); - } - return acc; - }, - [], - ), - sprayIds: loadout.expressionIds.bottom.sprayIds, - }), - }, - }, - }; - - await saveUserConfig(user.userId, { - loadouts: [ - ...userConfig.loadouts.filter((l) => l.id !== loadoutId), - newLoadout, - ], - }); - - return { - success: true, - }; -} - -export async function loader({ params }: LoaderFunctionArgs) { - const user = await getUser(); - - if (!user) { - throw redirect('/login'); - } - - const { loadoutId } = params; - - const userConfig = await getUserConfig(user.userId); - const loadout = userConfig.loadouts.find( - (loadout) => loadout.id === loadoutId, - ); - - if (!loadout) { - throw redirect('/loadouts'); - } - - const entitlements = await user.getEntitlements(); - - const selectedSprays = loadout.expressionIds.bottom.sprayIds; - const ownedSprays = valorantData.sprays - .filter((spray) => - entitlements.spray.some( - (entitlement) => entitlement.ItemID === spray.uuid, - ), - ) - .sort((a, b) => a.displayName.localeCompare(b.displayName)); - - const selectedFlex = loadout.expressionIds.bottom.flexIds; - const ownedFlex = valorantData.flex - .filter((flex) => - entitlements.flex.some((entitlement) => entitlement.ItemID === flex.uuid), - ) - .sort((a, b) => a.displayName.localeCompare(b.displayName)); - - return { - selectedSprays, - ownedSprays, - selectedFlex, - ownedFlex, - }; -} - -export default function AddBottomSpray() { - const { ownedSprays, selectedSprays, ownedFlex, selectedFlex } = - useLoaderData(); - const navigate = useNavigate(); - const params = useParams(); - const submit = useSubmit(); - - return ( - navigate(`/loadouts/${params.loadoutId}`)} - > - - - -
- - Select Bottom Slot Expressions - - - - - - -
- - - - Sprays - - - Flex - - -
{ - submit(e.currentTarget, { - replace: true, - }); - }} - className="flex-auto overflow-y-auto scrollbar-thin scrollbar-thumb-white scrollbar-track-transparent scrollbar-thumb-rounded-full px-4 mr-4 mb-4 mt-4" - > - - -
- {ownedSprays.map((spray) => ( -
- - -
- ))} -
-
- - -
- {ownedFlex.map((flex) => ( -
- - -
- ))} -
-
-
-
-
-
-
-
- ); -} diff --git a/app/routes/loadouts/$loadoutId/expressions/left.tsx b/app/routes/loadouts/$loadoutId/expressions/left.tsx deleted file mode 100644 index 8b5277b..0000000 --- a/app/routes/loadouts/$loadoutId/expressions/left.tsx +++ /dev/null @@ -1,271 +0,0 @@ -import { - Form, - useLoaderData, - useNavigate, - useParams, - useSubmit, -} from 'react-router'; -import * as DialogPrimitive from '@radix-ui/react-dialog'; -import * as TabsPrimitive from '@radix-ui/react-tabs'; -import type { Loadout } from '~/utils'; -import type { ActionFunctionArgs, LoaderFunctionArgs } from 'react-router'; -import { redirect } from 'react-router'; -import { getUser, getUserConfig, saveUserConfig } from '~/utils.server'; -import { zfd } from 'zod-form-data'; -import { z } from 'zod'; - -const schema = zfd.formData({ - tab: z.enum(['sprays', 'flex']), - sprays: z.record(z.string(), zfd.checkbox()).optional(), - flex: z.record(z.string(), zfd.checkbox()).optional(), -}); - -export async function action({ request, params }: ActionFunctionArgs) { - const user = await getUser(); - if (!user) { - throw redirect('/login'); - } - - const { loadoutId } = params; - - const userConfig = await getUserConfig(user.userId); - const loadout = userConfig.loadouts.find( - (loadout) => loadout.id === loadoutId, - ); - - if (!loadout) { - throw redirect('/loadouts'); - } - - const formData = await request.formData(); - - const out = schema.parse(formData); - - const newLoadout: Loadout = { - ...loadout, - expressionIds: { - ...loadout.expressionIds, - left: { - ...loadout.expressionIds.left, - ...(out.tab === 'sprays' - ? { - sprayIds: Object.entries(out.sprays || {}).reduce>( - (acc, next) => { - if (next[1]) { - acc.push(next[0]); - } - return acc; - }, - [], - ), - flexIds: loadout.expressionIds.left.flexIds, - } - : { - flexIds: Object.entries(out.flex || {}).reduce>( - (acc, next) => { - if (next[1]) { - acc.push(next[0]); - } - return acc; - }, - [], - ), - sprayIds: loadout.expressionIds.left.sprayIds, - }), - }, - }, - }; - - await saveUserConfig(user.userId, { - loadouts: [ - ...userConfig.loadouts.filter((l) => l.id !== loadoutId), - newLoadout, - ], - }); - - return { - success: true, - }; -} - -export async function loader({ params }: LoaderFunctionArgs) { - const user = await getUser(); - - if (!user) { - throw redirect('/login'); - } - - const { loadoutId } = params; - - const userConfig = await getUserConfig(user.userId); - const loadout = userConfig.loadouts.find( - (loadout) => loadout.id === loadoutId, - ); - - if (!loadout) { - throw redirect('/loadouts'); - } - - const entitlements = await user.getEntitlements(); - - const selectedSprays = loadout.expressionIds.left.sprayIds; - const ownedSprays = valorantData.sprays - .filter((spray) => - entitlements.spray.some( - (entitlement) => entitlement.ItemID === spray.uuid, - ), - ) - .sort((a, b) => a.displayName.localeCompare(b.displayName)); - - const selectedFlex = loadout.expressionIds.left.flexIds; - const ownedFlex = valorantData.flex - .filter((flex) => - entitlements.flex.some((entitlement) => entitlement.ItemID === flex.uuid), - ) - .sort((a, b) => a.displayName.localeCompare(b.displayName)); - - return { - selectedSprays, - ownedSprays, - selectedFlex, - ownedFlex, - }; -} - -export default function AddLeftSpray() { - const { ownedSprays, selectedSprays, ownedFlex, selectedFlex } = - useLoaderData(); - const navigate = useNavigate(); - const params = useParams(); - const submit = useSubmit(); - - return ( - navigate(`/loadouts/${params.loadoutId}`)} - > - - - -
- - Select Left Slot Expressions - - - - - - -
- - - - Sprays - - - Flex - - -
{ - submit(e.currentTarget, { - replace: true, - }); - }} - className="flex-auto overflow-y-auto scrollbar-thin scrollbar-thumb-white scrollbar-track-transparent scrollbar-thumb-rounded-full px-4 mr-4 mb-4 mt-4" - > - - -
- {ownedSprays.map((spray) => ( -
- - -
- ))} -
-
- - -
- {ownedFlex.map((flex) => ( -
- - -
- ))} -
-
-
-
-
-
-
-
- ); -} diff --git a/app/routes/loadouts/$loadoutId/expressions/right.tsx b/app/routes/loadouts/$loadoutId/expressions/right.tsx deleted file mode 100644 index e2d8c1f..0000000 --- a/app/routes/loadouts/$loadoutId/expressions/right.tsx +++ /dev/null @@ -1,271 +0,0 @@ -import { - Form, - useLoaderData, - useNavigate, - useParams, - useSubmit, -} from 'react-router'; -import * as DialogPrimitive from '@radix-ui/react-dialog'; -import * as TabsPrimitive from '@radix-ui/react-tabs'; -import type { Loadout } from '~/utils'; -import type { ActionFunctionArgs, LoaderFunctionArgs } from 'react-router'; -import { redirect } from 'react-router'; -import { getUser, getUserConfig, saveUserConfig } from '~/utils.server'; -import { zfd } from 'zod-form-data'; -import { z } from 'zod'; - -const schema = zfd.formData({ - tab: z.enum(['sprays', 'flex']), - sprays: z.record(z.string(), zfd.checkbox()).optional(), - flex: z.record(z.string(), zfd.checkbox()).optional(), -}); - -export async function action({ request, params }: ActionFunctionArgs) { - const user = await getUser(); - if (!user) { - throw redirect('/login'); - } - - const { loadoutId } = params; - - const userConfig = await getUserConfig(user.userId); - const loadout = userConfig.loadouts.find( - (loadout) => loadout.id === loadoutId, - ); - - if (!loadout) { - throw redirect('/loadouts'); - } - - const formData = await request.formData(); - - const out = schema.parse(formData); - - const newLoadout: Loadout = { - ...loadout, - expressionIds: { - ...loadout.expressionIds, - right: { - ...loadout.expressionIds.right, - ...(out.tab === 'sprays' - ? { - sprayIds: Object.entries(out.sprays || {}).reduce>( - (acc, next) => { - if (next[1]) { - acc.push(next[0]); - } - return acc; - }, - [], - ), - flexIds: loadout.expressionIds.right.flexIds, - } - : { - flexIds: Object.entries(out.flex || {}).reduce>( - (acc, next) => { - if (next[1]) { - acc.push(next[0]); - } - return acc; - }, - [], - ), - sprayIds: loadout.expressionIds.right.sprayIds, - }), - }, - }, - }; - - await saveUserConfig(user.userId, { - loadouts: [ - ...userConfig.loadouts.filter((l) => l.id !== loadoutId), - newLoadout, - ], - }); - - return { - success: true, - }; -} - -export async function loader({ params }: LoaderFunctionArgs) { - const user = await getUser(); - - if (!user) { - throw redirect('/login'); - } - - const { loadoutId } = params; - - const userConfig = await getUserConfig(user.userId); - const loadout = userConfig.loadouts.find( - (loadout) => loadout.id === loadoutId, - ); - - if (!loadout) { - throw redirect('/loadouts'); - } - - const entitlements = await user.getEntitlements(); - - const selectedSprays = loadout.expressionIds.right.sprayIds; - const ownedSprays = valorantData.sprays - .filter((spray) => - entitlements.spray.some( - (entitlement) => entitlement.ItemID === spray.uuid, - ), - ) - .sort((a, b) => a.displayName.localeCompare(b.displayName)); - - const selectedFlex = loadout.expressionIds.right.flexIds; - const ownedFlex = valorantData.flex - .filter((flex) => - entitlements.flex.some((entitlement) => entitlement.ItemID === flex.uuid), - ) - .sort((a, b) => a.displayName.localeCompare(b.displayName)); - - return { - selectedSprays, - ownedSprays, - selectedFlex, - ownedFlex, - }; -} - -export default function AddRightSpray() { - const { ownedSprays, selectedSprays, ownedFlex, selectedFlex } = - useLoaderData(); - const navigate = useNavigate(); - const params = useParams(); - const submit = useSubmit(); - - return ( - navigate(`/loadouts/${params.loadoutId}`)} - > - - - -
- - Select Right Slot Expressions - - - - - - -
- - - - Sprays - - - Flex - - -
{ - submit(e.currentTarget, { - replace: true, - }); - }} - className="flex-auto overflow-y-auto scrollbar-thin scrollbar-thumb-white scrollbar-track-transparent scrollbar-thumb-rounded-full px-4 mr-4 mb-4 mt-4" - > - - -
- {ownedSprays.map((spray) => ( -
- - -
- ))} -
-
- - -
- {ownedFlex.map((flex) => ( -
- - -
- ))} -
-
-
-
-
-
-
-
- ); -} diff --git a/app/routes/loadouts/$loadoutId/expressions/top.tsx b/app/routes/loadouts/$loadoutId/expressions/top.tsx deleted file mode 100644 index e31ee2e..0000000 --- a/app/routes/loadouts/$loadoutId/expressions/top.tsx +++ /dev/null @@ -1,271 +0,0 @@ -import { - Form, - useLoaderData, - useNavigate, - useParams, - useSubmit, -} from 'react-router'; -import * as DialogPrimitive from '@radix-ui/react-dialog'; -import * as TabsPrimitive from '@radix-ui/react-tabs'; -import type { Loadout } from '~/utils'; -import type { ActionFunctionArgs, LoaderFunctionArgs } from 'react-router'; -import { redirect } from 'react-router'; -import { getUser, getUserConfig, saveUserConfig } from '~/utils.server'; -import { zfd } from 'zod-form-data'; -import { z } from 'zod'; - -const schema = zfd.formData({ - tab: z.enum(['sprays', 'flex']), - sprays: z.record(z.string(), zfd.checkbox()).optional(), - flex: z.record(z.string(), zfd.checkbox()).optional(), -}); - -export async function action({ request, params }: ActionFunctionArgs) { - const user = await getUser(); - if (!user) { - throw redirect('/login'); - } - - const { loadoutId } = params; - - const userConfig = await getUserConfig(user.userId); - const loadout = userConfig.loadouts.find( - (loadout) => loadout.id === loadoutId, - ); - - if (!loadout) { - throw redirect('/loadouts'); - } - - const formData = await request.formData(); - - const out = schema.parse(formData); - - const newLoadout: Loadout = { - ...loadout, - expressionIds: { - ...loadout.expressionIds, - top: { - ...loadout.expressionIds.top, - ...(out.tab === 'sprays' - ? { - sprayIds: Object.entries(out.sprays || {}).reduce>( - (acc, next) => { - if (next[1]) { - acc.push(next[0]); - } - return acc; - }, - [], - ), - flexIds: loadout.expressionIds.top.flexIds, - } - : { - flexIds: Object.entries(out.flex || {}).reduce>( - (acc, next) => { - if (next[1]) { - acc.push(next[0]); - } - return acc; - }, - [], - ), - sprayIds: loadout.expressionIds.top.sprayIds, - }), - }, - }, - }; - - await saveUserConfig(user.userId, { - loadouts: [ - ...userConfig.loadouts.filter((l) => l.id !== loadoutId), - newLoadout, - ], - }); - - return { - success: true, - }; -} - -export async function loader({ params }: LoaderFunctionArgs) { - const user = await getUser(); - - if (!user) { - throw redirect('/login'); - } - - const { loadoutId } = params; - - const userConfig = await getUserConfig(user.userId); - const loadout = userConfig.loadouts.find( - (loadout) => loadout.id === loadoutId, - ); - - if (!loadout) { - throw redirect('/loadouts'); - } - - const entitlements = await user.getEntitlements(); - - const selectedSprays = loadout.expressionIds.top.sprayIds; - const ownedSprays = valorantData.sprays - .filter((spray) => - entitlements.spray.some( - (entitlement) => entitlement.ItemID === spray.uuid, - ), - ) - .sort((a, b) => a.displayName.localeCompare(b.displayName)); - - const selectedFlex = loadout.expressionIds.top.flexIds; - const ownedFlex = valorantData.flex - .filter((flex) => - entitlements.flex.some((entitlement) => entitlement.ItemID === flex.uuid), - ) - .sort((a, b) => a.displayName.localeCompare(b.displayName)); - - return { - selectedSprays, - ownedSprays, - selectedFlex, - ownedFlex, - }; -} - -export default function AddTopSpray() { - const { ownedSprays, selectedSprays, ownedFlex, selectedFlex } = - useLoaderData(); - const navigate = useNavigate(); - const params = useParams(); - const submit = useSubmit(); - - return ( - navigate(`/loadouts/${params.loadoutId}`)} - > - - - -
- - Select Top Slot Expressions - - - - - - -
- - - - Sprays - - - Flex - - -
{ - submit(e.currentTarget, { - replace: true, - }); - }} - className="flex-auto overflow-y-auto scrollbar-thin scrollbar-thumb-white scrollbar-track-transparent scrollbar-thumb-rounded-full px-4 mr-4 mb-4 mt-4" - > - - -
- {ownedSprays.map((spray) => ( -
- - -
- ))} -
-
- - -
- {ownedFlex.map((flex) => ( -
- - -
- ))} -
-
-
-
-
-
-
-
- ); -} diff --git a/app/routes/loadouts/$loadoutId/playercards/add.tsx b/app/routes/loadouts/$loadoutId/playercards/add.tsx deleted file mode 100644 index 4293f3c..0000000 --- a/app/routes/loadouts/$loadoutId/playercards/add.tsx +++ /dev/null @@ -1,183 +0,0 @@ -import { - Form, - useLoaderData, - useNavigate, - useParams, - useSubmit, -} from 'react-router'; -import * as DialogPrimitive from '@radix-ui/react-dialog'; -import type { Loadout } from '~/utils'; -import type { ActionFunctionArgs, LoaderFunctionArgs } from 'react-router'; -import { redirect } from 'react-router'; -import { getUser, getUserConfig, saveUserConfig } from '~/utils.server'; -import { zfd } from 'zod-form-data'; -import { z } from 'zod'; - -const schema = zfd.formData({ - playerCards: z.record(z.string(), zfd.checkbox()).optional(), -}); - -export async function action({ request, params }: ActionFunctionArgs) { - const user = await getUser(); - if (!user) { - throw redirect('/login'); - } - - const { loadoutId } = params; - - const userConfig = await getUserConfig(user.userId); - const loadout = userConfig.loadouts.find( - (loadout) => loadout.id === loadoutId, - ); - - if (!loadout) { - throw redirect('/loadouts'); - } - - const formData = await request.formData(); - - const out = schema.parse(formData); - - const newLoadout: Loadout = { - ...loadout, - playerCardIds: Object.entries(out.playerCards || {}).reduce>( - (acc, next) => { - if (next[1]) { - acc.push(next[0]); - } - return acc; - }, - [], - ), - }; - - await saveUserConfig(user.userId, { - loadouts: [ - ...userConfig.loadouts.filter((l) => l.id !== loadoutId), - newLoadout, - ], - }); - - return { - success: true, - }; -} - -export async function loader({ params }: LoaderFunctionArgs) { - const user = await getUser(); - - if (!user) { - throw redirect('/login'); - } - - const { loadoutId } = params; - - const userConfig = await getUserConfig(user.userId); - const loadout = userConfig.loadouts.find( - (loadout) => loadout.id === loadoutId, - ); - - if (!loadout) { - throw redirect('/loadouts'); - } - - const entitlements = await user.getEntitlements(); - - const selectedPlayerCards = loadout.playerCardIds; - const ownedPlayerCards = valorantData.playerCards - .filter((playerCard) => - entitlements.player_card.some( - (entitlement) => entitlement.ItemID === playerCard.uuid, - ), - ) - .sort((a, b) => a.displayName.localeCompare(b.displayName)); - - return { - selectedPlayerCards, - ownedPlayerCards, - }; -} - -export default function AddPlayerCard() { - const { ownedPlayerCards, selectedPlayerCards } = - useLoaderData(); - const navigate = useNavigate(); - const params = useParams(); - const submit = useSubmit(); - - return ( - navigate(`/loadouts/${params.loadoutId}`)} - > - - - -
- - Select Player Cards - - - - - - -
-
{ - submit(e.currentTarget, { - replace: true, - }); - }} - className="flex-auto overflow-y-auto scrollbar-thin scrollbar-thumb-white scrollbar-track-transparent scrollbar-thumb-rounded-full px-4 mr-4 mb-4 mt-4" - > -
- {ownedPlayerCards.map((playerCard) => ( -
- - -
- ))} -
-
-
-
-
-
- ); -} diff --git a/app/routes/loadouts/$loadoutId/playertitles/add.tsx b/app/routes/loadouts/$loadoutId/playertitles/add.tsx deleted file mode 100644 index f3cea3e..0000000 --- a/app/routes/loadouts/$loadoutId/playertitles/add.tsx +++ /dev/null @@ -1,174 +0,0 @@ -import { - Form, - useLoaderData, - useNavigate, - useParams, - useSubmit, -} from 'react-router'; -import * as DialogPrimitive from '@radix-ui/react-dialog'; -import type { Loadout } from '~/utils'; -import type { ActionFunctionArgs, LoaderFunctionArgs } from 'react-router'; -import { redirect } from 'react-router'; -import { getUser, getUserConfig, saveUserConfig } from '~/utils.server'; -import { zfd } from 'zod-form-data'; -import { z } from 'zod'; - -const schema = zfd.formData({ - playerTitles: z.record(z.string(), zfd.checkbox()).optional(), -}); - -export async function action({ request, params }: ActionFunctionArgs) { - const user = await getUser(); - if (!user) { - throw redirect('/login'); - } - - const { loadoutId } = params; - - const userConfig = await getUserConfig(user.userId); - const loadout = userConfig.loadouts.find( - (loadout) => loadout.id === loadoutId, - ); - - if (!loadout) { - throw redirect('/loadouts'); - } - - const formData = await request.formData(); - - const out = schema.parse(formData); - - const newLoadout: Loadout = { - ...loadout, - playerTitleIds: Object.entries(out.playerTitles || {}).reduce< - Array - >((acc, next) => { - if (next[1]) { - acc.push(next[0]); - } - return acc; - }, []), - }; - - await saveUserConfig(user.userId, { - loadouts: [ - ...userConfig.loadouts.filter((l) => l.id !== loadoutId), - newLoadout, - ], - }); - - return { - success: true, - }; -} - -export async function loader({ params }: LoaderFunctionArgs) { - const user = await getUser(); - - if (!user) { - throw redirect('/login'); - } - - const { loadoutId } = params; - - const userConfig = await getUserConfig(user.userId); - const loadout = userConfig.loadouts.find( - (loadout) => loadout.id === loadoutId, - ); - - if (!loadout) { - throw redirect('/loadouts'); - } - - const entitlements = await user.getEntitlements(); - - const selectedPlayerTitles = loadout.playerTitleIds; - const ownedPlayerTitles = valorantData.playerTitles - .filter((playerTitle) => - entitlements.player_title.some( - (entitlement) => entitlement.ItemID === playerTitle.uuid, - ), - ) - .sort((a, b) => - (a.titleText || 'default').localeCompare(b.titleText || 'Default'), - ); - - return { - selectedPlayerTitles, - ownedPlayerTitles, - }; -} - -export default function AddPlayerTitle() { - const { ownedPlayerTitles, selectedPlayerTitles } = - useLoaderData(); - const navigate = useNavigate(); - const params = useParams(); - const submit = useSubmit(); - - return ( - navigate(`/loadouts/${params.loadoutId}`)} - > - - - -
- - Select Player Titles - - - - - - -
-
{ - submit(e.currentTarget, { - replace: true, - }); - }} - className="flex-auto overflow-y-auto scrollbar-thin scrollbar-thumb-white scrollbar-track-transparent scrollbar-thumb-rounded-full px-4 mr-4 mb-4 mt-4" - > -
- {ownedPlayerTitles.map((playerTitle) => ( -
- - -
- ))} -
-
-
-
-
-
- ); -} diff --git a/app/routes/loadouts/$loadoutId/weapons/$weaponId/index.tsx b/app/routes/loadouts/$loadoutId/weapons/$weaponId/index.tsx deleted file mode 100644 index 2dd8e75..0000000 --- a/app/routes/loadouts/$loadoutId/weapons/$weaponId/index.tsx +++ /dev/null @@ -1,253 +0,0 @@ -import { - Form, - Link, - useLoaderData, - useNavigate, - useParams, -} from 'react-router'; -import * as DialogPrimitive from '@radix-ui/react-dialog'; -import type { ActionFunctionArgs, LoaderFunctionArgs } from 'react-router'; -import { redirect } from 'react-router'; -import { getUser, getUserConfig, saveUserConfig } from '~/utils.server'; -import { SwitchImage } from '~/components/SwitchImage'; -import type { Loadout } from '~/utils'; - -export async function action({ request, params }: ActionFunctionArgs) { - const user = await getUser(); - - if (!user) { - throw redirect('/login'); - } - - const { loadoutId, weaponId } = params; - const formData = await request.formData(); - const action = formData.get('action'); - - const userConfig = await getUserConfig(user.userId); - const loadout = userConfig.loadouts.find( - (loadout) => loadout.id === loadoutId, - ); - - if (!loadout) { - throw redirect('/loadouts'); - } - - switch (action) { - case 'deleteTemplate': { - const templateId = formData.get('templateId'); - const existingWeapon = loadout.weapons[weaponId!]; - - if (!existingWeapon) { - throw new Error('Weapon not found in loadout'); - } - - const newTemplates = existingWeapon.templates.filter( - (template) => template.id !== templateId, - ); - - const newWeapon: Loadout['weapons'][number] = { - ...existingWeapon, - templates: newTemplates, - }; - - const newLoadout: Loadout = { - ...loadout, - weapons: { - ...loadout.weapons, - [weaponId!]: newWeapon, - }, - }; - - await saveUserConfig(user.userId, { - loadouts: [ - ...userConfig.loadouts.filter((l) => l.id !== loadoutId), - newLoadout, - ], - }); - - return { - success: true, - }; - } - default: { - return new Response(null, { - headers: { - 'Content-Type': 'application/json', - }, - status: 400, - }); - } - } -} - -export async function loader({ params }: LoaderFunctionArgs) { - const user = await getUser(); - - if (!user) { - throw redirect('/login'); - } - - const { loadoutId, weaponId } = params; - - const userConfig = await getUserConfig(user.userId); - const loadout = userConfig.loadouts.find( - (loadout) => loadout.id === loadoutId, - ); - - if (!loadout) { - throw redirect('/loadouts'); - } - - const weapons = valorantData.weapons; - - const weapon = weapons.find((weapon) => weapon.uuid === weaponId)!; - const templates = loadout.weapons[weaponId!].templates; - - return { - weapon, - templates: templates.map((template) => { - const skin = weapon.skins.find((skin) => skin.uuid === template.skinId)!; - const chromas = skin.chromas.filter((chroma) => - template.chromaIds.includes(chroma.uuid), - ); - - return { - id: template.id, - skin, - chromas, - }; - }), - }; -} - -export default function EditWeapon() { - const params = useParams(); - const { weapon, templates } = useLoaderData(); - const navigate = useNavigate(); - - return ( - navigate(`/loadouts/${params.loadoutId}`)} - > - - - -
- - {weapon.displayName} - - - - - - -
-
- {templates.map((template) => { - return ( -
-
-
- ({ - src: chroma.fullRender, - alt: chroma.displayName, - }))} - /> -
-

- {template.skin.displayName - .split(' ') - .slice(0, -1) - .join(' ')} -

-
-
-
- - - -
- - - - - - -
-
- ); - })} - - + - -
-
-
-
-
- ); -} diff --git a/app/routes/loadouts/$loadoutId/weapons/$weaponId/templates/$templateId/edit.tsx b/app/routes/loadouts/$loadoutId/weapons/$weaponId/templates/$templateId/edit.tsx deleted file mode 100644 index 7e3cb61..0000000 --- a/app/routes/loadouts/$loadoutId/weapons/$weaponId/templates/$templateId/edit.tsx +++ /dev/null @@ -1,314 +0,0 @@ -import { Form, useLoaderData, useNavigate, useParams } from 'react-router'; -import * as DialogPrimitive from '@radix-ui/react-dialog'; -import type { Loadout } from '~/utils'; -import { getOwnedChromas, getOwnedLevels } from '~/utils'; -import type { ActionFunctionArgs, LoaderFunctionArgs } from 'react-router'; -import { redirect } from 'react-router'; -import { getUser, getUserConfig, saveUserConfig } from '~/utils.server'; -import { zfd } from 'zod-form-data'; -import { z } from 'zod'; - -const schema = zfd.formData({ - skinId: z.string(), - chromas: z.record(z.string(), zfd.checkbox()).optional(), - levels: z.record(z.string(), zfd.checkbox()).optional(), - buddies: z - .record(z.string(), z.record(z.string(), zfd.checkbox())) - .optional(), -}); - -export async function action({ request, params }: ActionFunctionArgs) { - const user = await getUser(); - if (!user) { - throw redirect('/login'); - } - - const { loadoutId, weaponId } = params; - - const userConfig = await getUserConfig(user.userId); - const loadout = userConfig.loadouts.find( - (loadout) => loadout.id === loadoutId, - ); - - if (!loadout) { - throw redirect('/loadouts'); - } - - const formData = await request.formData(); - - const out = schema.parse(formData); - - const existingWeapon = loadout.weapons[weaponId!]; - - if (!existingWeapon) { - throw new Error('Weapon not found in loadout'); - } - - const existingTemplate = existingWeapon.templates.find( - (template) => template.id === params.templateId, - ); - - if (!existingTemplate) { - throw new Error('Template not found in weapon'); - } - - const skin = valorantData.weapons - .find((weapon) => weapon.uuid === weaponId) - ?.skins.find((skin) => skin.uuid === existingTemplate.skinId)!; - const defaultChroma = skin.chromas[skin.chromas.length - 1].uuid; - const defaultLevel = skin.levels[skin.levels.length - 1].uuid; - - const newTemplate = { - ...existingTemplate, - chromaIds: out.chromas - ? Object.keys(out.chromas).filter((key) => out.chromas![key]) - : [defaultChroma], - levelIds: out.levels - ? Object.keys(out.levels).filter((key) => out.levels![key]) - : [defaultLevel], - buddies: Object.keys(out.buddies || {}).map((buddyId) => ({ - id: buddyId, - levelIds: Object.keys(out.buddies![buddyId]).filter( - (key) => out.buddies![buddyId][key], - ), - })), - }; - - const newTemplates = [...loadout.weapons[weaponId!].templates!]; - newTemplates.splice( - newTemplates.findIndex((t) => t.id === params.templateId), - 1, - newTemplate, - ); - - const newWeapon: Loadout['weapons'][number] = { - ...existingWeapon, - templates: newTemplates, - }; - - const newLoadout: Loadout = { - ...loadout, - weapons: { - ...loadout.weapons, - [weaponId!]: newWeapon, - }, - }; - - await saveUserConfig(user.userId, { - loadouts: [ - ...userConfig.loadouts.filter((l) => l.id !== loadoutId), - newLoadout, - ], - }); - - throw redirect(`/loadouts/${loadoutId}/weapons/${weaponId}`); -} - -export async function loader({ params }: LoaderFunctionArgs) { - const user = await getUser(); - - if (!user) { - throw redirect('/login'); - } - - const { loadoutId, weaponId } = params; - - const userConfig = await getUserConfig(user.userId); - const loadout = userConfig.loadouts.find( - (loadout) => loadout.id === loadoutId, - ); - - if (!loadout) { - throw redirect('/loadouts'); - } - - const weapons = valorantData.weapons; - - const weapon = weapons.find((weapon) => weapon.uuid === weaponId)!; - const entitlements = await user.getEntitlements(); - const templates = loadout.weapons[weaponId!].templates; - - const template = templates.find( - (template) => template.id === params.templateId, - )!; - - const skin = weapon.skins.find((skin) => skin.uuid === template.skinId)!; - - const ownedBuddies = valorantData.buddies - .flatMap((buddy) => - buddy.levels - .map((level) => ({ - buddyId: buddy.uuid, - levelId: level.uuid, - displayName: buddy.displayName, - displayIcon: level.displayIcon, - })) - .filter((buddy) => - entitlements.buddy.some( - (entitlement) => entitlement.ItemID === buddy.levelId, - ), - ), - ) - .sort((a, b) => a.displayName.localeCompare(b.displayName)); - - return { - weapon, - skin: { - ...skin, - ownedChromas: getOwnedChromas(skin, entitlements), - ownedLevels: getOwnedLevels(skin, entitlements), - }, - ownedBuddies, - template, - }; -} - -export default function EditSkin() { - const { skin, template, ownedBuddies, weapon } = - useLoaderData(); - const navigate = useNavigate(); - const params = useParams(); - - return ( - - navigate(`/loadouts/${params.loadoutId}/weapons/${params.weaponId}`) - } - > - - - -
- - {skin.displayName} - - - - - - -
-
-
- -
- {skin.displayName} -
-

Chromas

-
- {skin.ownedChromas.map((chroma) => ( -
- - -
- ))} -
-

Levels

-
- {skin.ownedLevels.map((level, index) => ( -
- - -
- ))} -
- {weapon.uuid !== '2f59173c-4bed-b6c3-2191-dea9b58be9c7' && ( - <> -

Buddies

-
- {ownedBuddies.map((buddy) => ( -
- - b.id === buddy.buddyId && - b.levelIds.includes(buddy.levelId), - )} - /> - -
- ))} -
- - )} -
-
- - - Cancel - -
-
-
-
-
-
- ); -} diff --git a/app/routes/loadouts/$loadoutId/weapons/$weaponId/templates/new.tsx b/app/routes/loadouts/$loadoutId/weapons/$weaponId/templates/new.tsx deleted file mode 100644 index 1b9d67d..0000000 --- a/app/routes/loadouts/$loadoutId/weapons/$weaponId/templates/new.tsx +++ /dev/null @@ -1,401 +0,0 @@ -import { Form, useLoaderData, useNavigate, useParams } from 'react-router'; -import * as DialogPrimitive from '@radix-ui/react-dialog'; -import { useReducer } from 'react'; -import type { Loadout, ResolvedWeapon } from '~/utils'; -import type { ActionFunctionArgs, LoaderFunctionArgs } from 'react-router'; -import { redirect } from 'react-router'; -import { - getUser, - getUserConfig, - randomUUID, - saveUserConfig, -} from '~/utils.server'; -import { zfd } from 'zod-form-data'; -import { z } from 'zod'; - -const schema = zfd.formData({ - skinId: z.string(), - chromas: z.record(z.string(), zfd.checkbox()).optional(), - levels: z.record(z.string(), zfd.checkbox()).optional(), - buddies: z - .record(z.string(), z.record(z.string(), zfd.checkbox())) - .optional(), -}); - -export async function action({ request, params }: ActionFunctionArgs) { - const user = await getUser(); - if (!user) { - throw redirect('/login'); - } - - const { loadoutId, weaponId } = params; - - const userConfig = await getUserConfig(user.userId); - const loadout = userConfig.loadouts.find( - (loadout) => loadout.id === loadoutId, - ); - - if (!loadout) { - throw redirect('/loadouts'); - } - - const formData = await request.formData(); - - const out = schema.parse(formData); - - const existingWeapon = loadout.weapons[weaponId!]; - - if (!existingWeapon) { - throw new Error('Weapon not found in loadout'); - } - - const skin = valorantData.weapons - .find((weapon) => weapon.uuid === weaponId) - ?.skins.find((skin) => skin.uuid === out.skinId)!; - const defaultChroma = skin.chromas[skin.chromas.length - 1].uuid; - const defaultLevel = skin.levels[skin.levels.length - 1].uuid; - - const newWeapon: Loadout['weapons'][number] = { - ...existingWeapon, - templates: [ - ...(loadout.weapons[weaponId!].templates || []), - { - id: randomUUID(), - skinId: out.skinId, - chromaIds: out.chromas - ? Object.keys(out.chromas).filter((key) => out.chromas![key]) - : [defaultChroma], - levelIds: out.levels - ? Object.keys(out.levels).filter((key) => out.levels![key]) - : [defaultLevel], - buddies: Object.keys(out.buddies || {}).map((buddyId) => ({ - id: buddyId, - levelIds: Object.keys(out.buddies![buddyId]).filter( - (key) => out.buddies![buddyId][key], - ), - })), - }, - ], - }; - - const newLoadout: Loadout = { - ...loadout, - weapons: { - ...loadout.weapons, - [weaponId!]: newWeapon, - }, - }; - - await saveUserConfig(user.userId, { - loadouts: [ - ...userConfig.loadouts.filter((l) => l.id !== loadoutId), - newLoadout, - ], - }); - - throw redirect(`/loadouts/${loadoutId}/weapons/${weaponId}`); -} - -export async function loader({ params }: LoaderFunctionArgs) { - const user = await getUser(); - - if (!user) { - throw redirect('/login'); - } - - const { loadoutId, weaponId } = params; - - const userConfig = await getUserConfig(user.userId); - const loadout = userConfig.loadouts.find( - (loadout) => loadout.id === loadoutId, - ); - - if (!loadout) { - throw redirect('/loadouts'); - } - - const weapons = valorantData.weapons; - const entitlements = await user.getEntitlements(); - - const weapon = weapons.find((weapon) => weapon.uuid === weaponId)!; - - const ownedSkins = weapon.skins.reduce< - Array<{ - id: string; - name: string; - displayIcon: string; - chromas: Array; - levels: Array; - }> - >((acc, next) => { - const chromas = next.chromas.filter((chroma) => - entitlements.skin_chroma.find( - (entitlement) => entitlement.ItemID === chroma.uuid, - ), - ); - - const levels = next.levels.filter((level) => - entitlements.skin_level.find( - (entitlement) => entitlement.ItemID === level.uuid, - ), - ); - - if (chromas.length === 0 && levels.length === 0) { - return acc; - } - - return [ - ...acc, - { - id: next.uuid, - name: next.displayName, - displayIcon: next.displayIcon, - chromas: [next.chromas[0], ...chromas], - levels, - }, - ]; - }, []); - - const ownedBuddies = valorantData.buddies - .flatMap((buddy) => - buddy.levels - .map((level) => ({ - buddyId: buddy.uuid, - levelId: level.uuid, - displayName: buddy.displayName, - displayIcon: level.displayIcon, - })) - .filter((buddy) => - entitlements.buddy.some( - (entitlement) => entitlement.ItemID === buddy.levelId, - ), - ), - ) - .sort((a, b) => a.displayName.localeCompare(b.displayName)); - - return { - weapon: { - uuid: weapon.uuid, - displayName: weapon.displayName, - defaultSkinIcon: weapon.displayIcon, - category: weapon.category, - ownedSkins, - }, - ownedBuddies, - }; -} - -export default function NewSkin() { - const { weapon, ownedBuddies } = useLoaderData(); - const navigate = useNavigate(); - const params = useParams(); - - type NewSkinAction = { - type: 'SET_SELECTED_SKIN'; - payload: ResolvedWeapon['ownedSkins'][number]; - }; - - type NewSkinState = - | { - mode: 'select_skin'; - title: string; - } - | { - mode: 'select_chroma'; - title: string; - selectedSkin: ResolvedWeapon['ownedSkins'][number]; - }; - - const [state, dispatch] = useReducer( - (_state, action) => { - switch (action.type) { - case 'SET_SELECTED_SKIN': { - return { - mode: 'select_chroma', - title: action.payload.name, - selectedSkin: action.payload, - }; - } - } - }, - { - mode: 'select_skin', - title: `Select a skin`, - }, - ); - - return ( - - navigate(`/loadouts/${params.loadoutId}/weapons/${params.weaponId}`) - } - > - - - -
- - {state.title} - - - - - - -
- {state.mode === 'select_skin' && ( -
- {[...weapon.ownedSkins] - .sort((a, b) => { - return a.name.localeCompare(b.name); - }) - .map((skin) => ( - - ))} -
- )} - {state.mode === 'select_chroma' && ( -
-
- -
- {state.title} -
-

Chromas

-
- {state.selectedSkin.chromas.map((chroma) => ( -
- - -
- ))} -
-

Levels

-
- {state.selectedSkin.levels.map((level, index, arr) => ( -
- - -
- ))} -
- {weapon.uuid !== '2f59173c-4bed-b6c3-2191-dea9b58be9c7' && ( - <> -

Buddies

-
- {ownedBuddies.map((buddy) => ( -
- - -
- ))} -
- - )} -
-
- - - Cancel - -
-
- )} -
-
-
-
- ); -} diff --git a/app/routes/loadouts/index.tsx b/app/routes/loadouts/index.tsx deleted file mode 100644 index d07737e..0000000 --- a/app/routes/loadouts/index.tsx +++ /dev/null @@ -1,592 +0,0 @@ -import type { ActionFunctionArgs } from 'react-router'; -import { redirect } from 'react-router'; -import { Form, Link, useLoaderData } from 'react-router'; -import { entitlementTypeToIdMap } from 'types'; -import { Gallery } from '~/components/Gallery'; - -import { SwitchImage } from '~/components/SwitchImage'; -import { Loadout, weaponUuidToIndex } from '~/utils'; -import { - getDefaultLoadout, - getUser, - getUserConfig, - randomUUID, - saveUserConfig, -} from '~/utils.server'; - -export const action = async ({ request }: ActionFunctionArgs) => { - const user = await getUser(); - - if (!user) { - throw redirect('/login'); - } - - const formData = await request.formData(); - const action = formData.get('action') as string; - - switch (action) { - case 'create': { - const newLoadout = { - ...getDefaultLoadout(), - name: 'New Loadout', - }; - const config = await getUserConfig(user.userId); - - if (config.loadouts.find((loadout) => loadout.id === newLoadout.id)) { - throw new Error('Loadout already exists'); - } - - config.loadouts.push(newLoadout); - - await saveUserConfig(user.userId, config); - throw redirect(`/loadouts/${newLoadout.id}`); - } - case 'equip': { - const loadoutId = formData.get('loadoutId') as string; - const config = await getUserConfig(user.userId); - const loadout = config.loadouts.find( - (loadout) => loadout.id === loadoutId, - ); - - if (!loadout) { - throw redirect('/loadouts'); - } - - await appManager.equipLoadout(user, loadout); - - return { success: true }; - } - case 'enable': - case 'disable': { - const loadoutId = formData.get('loadoutId') as string; - const config = await getUserConfig(user.userId); - const loadout = config.loadouts.find( - (loadout) => loadout.id === loadoutId, - ); - - if (!loadout) { - throw redirect('/loadouts'); - } - - loadout.enabled = action === 'enable'; - - await saveUserConfig(user.userId, config); - - return { success: true }; - } - case 'duplicate': { - const loadoutId = formData.get('loadoutId') as string; - const config = await getUserConfig(user.userId); - const loadout = config.loadouts.find( - (loadout) => loadout.id === loadoutId, - ); - - if (!loadout) { - throw redirect('/loadouts'); - } - - const newLoadout = { - ...loadout, - id: randomUUID(), - name: `${loadout.name} (Copy)`, - }; - - config.loadouts.push(newLoadout); - - await saveUserConfig(user.userId, config); - - throw redirect(`/loadouts/${newLoadout.id}`); - } - case 'delete': { - const loadoutId = formData.get('loadoutId') as string; - - const config = await getUserConfig(user.userId); - const loadoutIndex = config.loadouts.findIndex( - (loadout) => loadout.id === loadoutId, - ); - - if (loadoutIndex === -1) { - throw redirect('/loadouts'); - } - - config.loadouts.splice(loadoutIndex, 1); - - await saveUserConfig(user.userId, config); - - return { success: true }; - } - case 'save-in-game': { - const currentInGameLoadout = await user.getLoadout(); - const config = await getUserConfig(user.userId); - - const [top, right, bottom, left] = currentInGameLoadout.ActiveExpressions; - - const newLoadout: Loadout = { - ...getDefaultLoadout(), - name: 'In-Game Loadout', - enabled: true, - id: randomUUID(), - weapons: Object.fromEntries( - currentInGameLoadout.Guns.map((gun) => [ - gun.ID, - { - templates: [ - { - id: gun.ID, - skinId: gun.SkinID, - buddies: gun.CharmID - ? [ - { - id: gun.CharmID, - levelIds: gun.CharmLevelID ? [gun.CharmLevelID] : [], - }, - ] - : [], - chromaIds: [gun.ChromaID], - levelIds: [gun.SkinLevelID], - }, - ], - }, - ]), - ), - expressionIds: { - top: { - sprayIds: - top.TypeID === entitlementTypeToIdMap.spray ? [top.AssetID] : [], - flexIds: - top.TypeID === entitlementTypeToIdMap.flex ? [top.AssetID] : [], - }, - right: { - sprayIds: - right.TypeID === entitlementTypeToIdMap.spray - ? [right.AssetID] - : [], - flexIds: - right.TypeID === entitlementTypeToIdMap.flex - ? [right.AssetID] - : [], - }, - bottom: { - sprayIds: - bottom.TypeID === entitlementTypeToIdMap.spray - ? [bottom.AssetID] - : [], - flexIds: - bottom.TypeID === entitlementTypeToIdMap.flex - ? [bottom.AssetID] - : [], - }, - left: { - sprayIds: - left.TypeID === entitlementTypeToIdMap.spray - ? [left.AssetID] - : [], - flexIds: - left.TypeID === entitlementTypeToIdMap.flex ? [left.AssetID] : [], - }, - }, - playerCardIds: [currentInGameLoadout.Identity.PlayerCardID], - playerTitleIds: [currentInGameLoadout.Identity.PlayerTitleID], - }; - - config.loadouts.push(newLoadout); - - await saveUserConfig(user.userId, config); - - throw redirect(`/loadouts/${newLoadout.id}`); - } - default: { - throw new Error('Invalid action'); - } - } -}; - -export const loader = async () => { - const user = await getUser(); - - if (!user) { - throw redirect('/login'); - } - - const userConfig = await getUserConfig(user.userId); - - const weapons = valorantData.weapons; - - const loadouts = userConfig.loadouts - .sort((a, b) => { - if (a.enabled === b.enabled) { - return a.name.localeCompare(b.name); - } - - return a.enabled ? -1 : 1; - }) - .map((loadout) => { - return { - id: loadout.id, - name: loadout.name, - enabled: loadout.enabled, - agents: loadout.agentIds.map( - (id) => valorantData.agents.find((a) => a.uuid === id)!, - ), - playerCards: (loadout.playerCardIds.length - ? loadout.playerCardIds - : ['9fb348bc-41a0-91ad-8a3e-818035c4e561'] - ).map((id) => valorantData.playerCards.find((c) => c.uuid === id)!), - playerTitles: (loadout.playerTitleIds.length - ? loadout.playerTitleIds - : ['d13e579c-435e-44d4-cec2-6eae5a3c5ed4'] - ).map( - (id) => valorantData.playerTitles.find((title) => title.uuid === id)!, - ), - expressions: { - top: { - sprayIds: (loadout.expressionIds.top.sprayIds.length || - loadout.expressionIds.top.flexIds.length - ? loadout.expressionIds.top.sprayIds - : ['0a6db78c-48b9-a32d-c47a-82be597584c1'] - ).map( - (sprayId) => - valorantData.sprays.find((spray) => spray.uuid === sprayId)!, - ), - flexIds: loadout.expressionIds.top.flexIds.map( - (flexId) => - valorantData.flex.find((flex) => flex.uuid === flexId)!, - ), - }, - right: { - sprayIds: (loadout.expressionIds.right.sprayIds.length || - loadout.expressionIds.right.flexIds.length - ? loadout.expressionIds.right.sprayIds - : ['0a6db78c-48b9-a32d-c47a-82be597584c1'] - ).map( - (sprayId) => - valorantData.sprays.find((spray) => spray.uuid === sprayId)!, - ), - flexIds: loadout.expressionIds.right.flexIds.map( - (flexId) => - valorantData.flex.find((flex) => flex.uuid === flexId)!, - ), - }, - bottom: { - sprayIds: (loadout.expressionIds.bottom.sprayIds.length || - loadout.expressionIds.bottom.flexIds.length - ? loadout.expressionIds.bottom.sprayIds - : ['0a6db78c-48b9-a32d-c47a-82be597584c1'] - ).map( - (sprayId) => - valorantData.sprays.find((spray) => spray.uuid === sprayId)!, - ), - flexIds: loadout.expressionIds.bottom.flexIds.map( - (flexId) => - valorantData.flex.find((flex) => flex.uuid === flexId)!, - ), - }, - left: { - sprayIds: loadout.expressionIds.left.sprayIds.map( - (sprayId) => - valorantData.sprays.find((spray) => spray.uuid === sprayId)!, - ), - flexIds: (loadout.expressionIds.left.flexIds.length || - loadout.expressionIds.left.sprayIds.length - ? loadout.expressionIds.left.flexIds - : ['af52b5a0-4a4c-03b2-c9d7-8187a08a2675'] - ).map( - (flexId) => - valorantData.flex.find((flex) => flex.uuid === flexId)!, - ), - }, - }, - weapons: Object.entries(loadout.weapons) - .sort((a, b) => { - const indexA = weaponUuidToIndex[a[0]]; - const indexB = weaponUuidToIndex[b[0]]; - - return indexA - indexB; - }) - .map(([weaponId, { templates }]) => { - const weapon = weapons.find((w) => w.uuid === weaponId)!; - - return { - id: weaponId, - displayName: weapon.displayName, - displayIcon: weapon.displayIcon, - category: weapon.category, - uuid: weapon.uuid, - templates: templates.map((template) => { - const skin = weapon.skins.find( - (skin) => skin.uuid === template.skinId, - )!; - const chromas = skin.chromas.filter((chroma) => - template.chromaIds.includes(chroma.uuid), - ); - const buddies = template.buddies.flatMap((buddy) => { - const buddyData = valorantData.buddies.find( - (b) => b.uuid === buddy.id, - )!; - - return buddy.levelIds.flatMap((levelId) => { - return { - id: buddy.id, - levelId, - displayName: buddyData.displayName, - displayIcon: buddyData.displayIcon, - }; - }); - }); - - return { - id: template.id, - skin, - chromas, - buddies, - }; - }), - }; - }), - }; - }); - - return { - loadouts, - }; -}; - -const buttonStyles = - 'cursor-pointer text-white px-2 py-1 border-2 border-white rounded-md hover:bg-white hover:text-slate-800'; - -export default function Index() { - const { loadouts } = useLoaderData(); - - return ( -
-
-

Loadouts

-
- - -
-
-
- {loadouts.map((loadout) => { - return ( -
-

- {loadout.name} - {!loadout.enabled && ( - <> - {' '} - (Disabled) - - )} -
- {loadout.agents.map((agent) => ( -
- {agent.displayName} -
- ))} -
-

-
-
-
- ({ - src: c.largeArt, - alt: c.displayName, - }))} - /> -
- ({ - ...t, - duration: 1000, - }))} - render={(title) => ( -

- {title.titleText || 'Default'} -

- )} - /> -
- {Object.entries(loadout.expressions).map( - ([key, sprays]) => { - return ( -
- ({ - src: - spray.animationGif || - spray.fullTransparentIcon || - spray.displayIcon, - alt: spray.displayName, - })), - ...sprays.flexIds.map((flex) => ({ - src: flex.displayIcon, - alt: flex.displayName, - })), - ]} - /> -
- ); - }, - )} -
-
-
- {loadout.weapons.map((weapon) => { - return ( -
- { - return template.chromas.flatMap<{ - chroma: { - icon: string; - name: string; - }; - buddy: { - icon: string; - name: string; - } | null; - duration: number; - }>((chroma) => { - if (template.buddies.length === 0) { - return [ - { - chroma: { - icon: - chroma.fullRender || - chroma.displayIcon, - name: chroma.displayName, - }, - buddy: null, - duration: 1000, - }, - ]; - } - - return template.buddies.map((buddy) => { - return { - chroma: { - icon: - chroma.fullRender || - chroma.displayIcon, - name: chroma.displayName, - }, - buddy: { - icon: buddy.displayIcon, - name: buddy.displayName, - }, - duration: 1000, - }; - }); - }); - }) - : [ - { - buddy: null, - chroma: { - icon: weapon.displayIcon, - name: weapon.displayName, - }, - duration: 1000, - }, - ] - } - render={(item) => ( - <> - {item.chroma.name} - {item.buddy && ( - {item.buddy.name} - )} - - )} - /> -
- ); - })} -
-
-
-
- - - -
-
- - - -
-
- - - -
- - Edit - -
- - - -
-
-
- ); - })} -
-
- ); -} diff --git a/app/routes/login.tsx b/app/routes/login.tsx deleted file mode 100644 index 25a8641..0000000 --- a/app/routes/login.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import type { MetaFunction } from 'react-router'; -import { redirect } from 'react-router'; - -import { getUser } from '~/utils.server'; - -export async function loader() { - const user = await getUser(); - - if (user) { - throw redirect('/'); - } - - return null; -} - -export const meta: MetaFunction = () => [ - { - httpEquiv: 'refresh', - content: '5', - }, -]; - -export default function Index() { - return ( -
- Please open Valorant to continue -
- ); -} diff --git a/app/utils.server.ts b/app/utils.server.ts deleted file mode 100644 index c237725..0000000 --- a/app/utils.server.ts +++ /dev/null @@ -1,348 +0,0 @@ -import axios, { isAxiosError } from 'axios'; -import fsPromise from 'fs/promises'; -import path from 'path'; -import https from 'https'; - -import type { - Loadout, - UserConfig, - UserConfigV1, - UserConfigV2, - UserConfigV3, -} from '~/utils'; -import { generateRequestHeaders, User } from 'server/userman'; -import { Regions, Shards } from 'types'; - -async function exists(filename: string) { - try { - await fsPromise.access(filename); - return true; - } catch { - return false; - } -} - -export async function getLockfile() { - const lockfilePath = path.resolve( - process.env.LOCALAPPDATA!, - 'Riot Games', - 'Riot Client', - 'Config', - 'lockfile', - ); - - if (!(await exists(lockfilePath))) { - return; - } - - const lockfile = await fsPromise.readFile(lockfilePath, 'utf8'); - const [name, pid, port, password] = lockfile.split(':'); - - return { - name, - pid, - port, - password, - }; -} - -function readTextFile(filename: string) { - return fsPromise.readFile(filename, 'utf-8'); -} - -function writeTextFile(filename: string, content: string) { - return fsPromise.writeFile(filename, content); -} - -export function randomUUID() { - return crypto.randomUUID(); -} - -export function randomItem(array: T[]) { - const index = Math.floor(Math.random() * array.length); - return array[index]; -} - -export function getDefaultLoadout(): Loadout { - return { - id: randomUUID(), - name: 'Default Loadout', - enabled: true, - agentIds: [], - weapons: { - '63e6c2b6-4a8e-869c-3d4c-e38355226584': { templates: [] }, - '55d8a0f4-4274-ca67-fe2c-06ab45efdf58': { templates: [] }, - '9c82e19d-4575-0200-1a81-3eacf00cf872': { templates: [] }, - 'ae3de142-4d85-2547-dd26-4e90bed35cf7': { templates: [] }, - 'ee8e8d15-496b-07ac-e5f6-8fae5d4c7b1a': { templates: [] }, - 'ec845bf4-4f79-ddda-a3da-0db3774b2794': { templates: [] }, - '910be174-449b-c412-ab22-d0873436b21b': { templates: [] }, - '44d4e95c-4157-0037-81b2-17841bf2e8e3': { templates: [] }, - '29a0cfab-485b-f5d5-779a-b59f85e204a8': { templates: [] }, - '1baa85b4-4c70-1284-64bb-6481dfc3bb4e': { templates: [] }, - 'e336c6b8-418d-9340-d77f-7a9e4cfe0702': { templates: [] }, - '42da8ccc-40d5-affc-beec-15aa47b42eda': { templates: [] }, - 'a03b24d3-4319-996d-0f8c-94bbfba1dfc7': { templates: [] }, - '4ade7faa-4cf1-8376-95ef-39884480959b': { templates: [] }, - 'c4883e50-4494-202c-3ec3-6b8a9284f00b': { templates: [] }, - '462080d1-4035-2937-7c09-27aa2a5c27a7': { templates: [] }, - 'f7e1b454-4ad4-1063-ec0a-159e56b58941': { templates: [] }, - '2f59173c-4bed-b6c3-2191-dea9b58be9c7': { templates: [] }, - '5f0aaf7a-4289-3998-d5ff-eb9a5cf7ef5c': { templates: [] }, - }, - playerCardIds: [], - playerTitleIds: [], - expressionIds: { - top: { - sprayIds: [], - flexIds: [], - }, - right: { - sprayIds: [], - flexIds: [], - }, - bottom: { - sprayIds: [], - flexIds: [], - }, - left: { - sprayIds: [], - flexIds: [], - }, - }, - }; -} - -const CONFIG_VERSION = 3; - -const migratePipeline = [ - { - version: 2, - migrate(old: UserConfigV1): UserConfigV2 { - return { - ...old, - loadouts: old.loadouts.map((loadout) => ({ - ...loadout, - sprayIds: { - top: loadout.sprayIds.midRound, - right: loadout.sprayIds.postRound, - bottom: [], - left: loadout.sprayIds.preRound, - }, - })), - version: 2, - }; - }, - }, - { - version: 3, - migrate(old: UserConfigV2): UserConfigV3 { - return { - ...old, - version: 3, - loadouts: old.loadouts.map((loadout) => ({ - ...loadout, - expressionIds: { - top: { - sprayIds: loadout.sprayIds.top, - flexIds: [], - }, - right: { - sprayIds: loadout.sprayIds.right, - flexIds: [], - }, - bottom: { - sprayIds: loadout.sprayIds.bottom, - flexIds: [], - }, - left: { - sprayIds: loadout.sprayIds.left, - flexIds: [], - }, - }, - })), - }; - }, - }, -] as const; - -function migrateConfig(config: any) { - const configVersion = 'version' in config ? config.version : 1; - - if (configVersion === CONFIG_VERSION) { - return config; - } - - const pipeline = migratePipeline.filter( - ({ version }) => version > configVersion, - ); - - if (!pipeline.length) { - throw new Error( - `No migration pipeline for config version ${configVersion}`, - ); - } - - return pipeline.reduce((acc, { migrate }) => migrate(acc), config); -} - -export async function getUserConfig(userId: string): Promise { - const userFileName = `user_${userId}.json`; - const userFilenamePath = path.resolve(process.cwd(), userFileName); - - if (!(await exists(userFilenamePath))) { - const newConfig: UserConfig = { - loadouts: [getDefaultLoadout()], - version: CONFIG_VERSION, - }; - - await writeTextFile(userFilenamePath, JSON.stringify(newConfig)); - } - - return migrateConfig(JSON.parse(await readTextFile(userFilenamePath))); -} - -export async function saveUserConfig( - userId: string, - config: Omit, -) { - const userFileName = `user_${userId}.json`; - const userFilenamePath = path.resolve(process.cwd(), userFileName); - - await writeTextFile( - userFilenamePath, - JSON.stringify({ - ...config, - version: CONFIG_VERSION, - }), - ); -} - -const httpClient = axios.create({ - httpsAgent: new https.Agent({ - rejectUnauthorized: false, - }), -}); - -declare global { - var userShardRegionCache: Map; -} - -global.userShardRegionCache = - global.userShardRegionCache || - new Map(); - -export async function getUser() { - try { - const lockfile = await getLockfile(); - - if (!lockfile) { - return null; - } - - const { port, password } = lockfile; - - const tokens = ( - await httpClient.get<{ - accessToken: string; - entitlements: unknown[]; - issuer: string; - subject: string; - token: string; - }>(`https://127.0.0.1:${port}/entitlements/v1/token`, { - headers: { - Authorization: `Basic ${Buffer.from(`riot:${password}`).toString( - 'base64', - )}`, - }, - }) - ).data; - - const shardRegionMap = [ - [Shards.NorthAmerica, Regions.NorthAmerica], - [Shards.NorthAmerica, Regions.LatinAmerica], - [Shards.NorthAmerica, Regions.Brazil], - [Shards.PBE, Regions.NorthAmerica], - [Shards.Europe, Regions.Europe], - [Shards.AsiaPacific, Regions.AsiaPacific], - [Shards.Korea, Regions.Korea], - ] as const; - - const res = - global.userShardRegionCache.get(tokens.subject) || - (await (async function findRegionAndShard(attempts = 0): Promise<{ - region: Regions; - shard: Shards; - } | null> { - for (const [shard, region] of shardRegionMap) { - try { - const response = await httpClient.get( - `https://glz-${region}-1.${shard}.a.pvp.net/parties/v1/players/${tokens.subject}`, - { - headers: generateRequestHeaders({ - accessToken: tokens.accessToken, - entitlementsToken: tokens.token, - riotClientVersion: - global.valorantData.version.riotClientVersion, - }), - }, - ); - - if (!response.data.Subject) { - continue; - } - - return { - region, - shard, - }; - } catch (e) { - if (isAxiosError(e)) { - switch (e.response?.status) { - case 404: { - console.log('tried', region, shard, 'got 404, continuing'); - break; - } - default: { - console.warn( - 'Caught error trying to get user for region/shard detection', - region, - shard, - e, - ); - break; - } - } - } - } - } - - if (attempts < 5) { - console.log('Failed to find user region and shard, retrying in 2.5s'); - await new Promise((resolve) => setTimeout(resolve, 2500)); - return findRegionAndShard(attempts + 1); - } - - return null; - })()); - - if (!res) { - return null; - } - - console.log('Found user region and shard', res); - userShardRegionCache.set(tokens.subject, res); - - return new User({ - riotClientVersion: global.valorantData.version.riotClientVersion, - accessToken: tokens.accessToken, - entitlementsToken: tokens.token, - region: res.region, - shard: res.shard, - userId: tokens.subject, - }); - } catch (e) { - console.warn('Caught error trying to get user', e); - return null; - } -} diff --git a/app/utils.ts b/app/utils.ts deleted file mode 100644 index b390d89..0000000 --- a/app/utils.ts +++ /dev/null @@ -1,266 +0,0 @@ -import type { EntitlementsByCategory, Weapon, WeaponCategory } from 'types'; - -export type LoadoutV1 = { - id: string; - name: string; - enabled: boolean; - agentIds: Array; - weapons: Record< - string, - { - templates: Array<{ - id: string; - skinId: string; - levelIds: Array; - chromaIds: Array; - buddies: Array<{ - id: string; - levelIds: Array; - }>; - }>; - } - >; - playerCardIds: Array; - playerTitleIds: Array; - sprayIds: { - preRound: Array; - midRound: Array; - postRound: Array; - }; -}; - -export type LoadoutV2 = { - id: string; - name: string; - enabled: boolean; - agentIds: Array; - weapons: Record< - string, - { - templates: Array<{ - id: string; - skinId: string; - levelIds: Array; - chromaIds: Array; - buddies: Array<{ - id: string; - levelIds: Array; - }>; - }>; - } - >; - playerCardIds: Array; - playerTitleIds: Array; - sprayIds: { - top: Array; - right: Array; - bottom: Array; - left: Array; - }; -}; - -export type Loadout = { - id: string; - name: string; - enabled: boolean; - agentIds: Array; - weapons: Record< - string, - { - templates: Array<{ - id: string; - skinId: string; - levelIds: Array; - chromaIds: Array; - buddies: Array<{ - id: string; - levelIds: Array; - }>; - }>; - } - >; - playerCardIds: Array; - playerTitleIds: Array; - expressionIds: { - top: { - sprayIds: Array; - flexIds: Array; - }; - right: { - sprayIds: Array; - flexIds: Array; - }; - bottom: { - sprayIds: Array; - flexIds: Array; - }; - left: { - sprayIds: Array; - flexIds: Array; - }; - }; -}; - -export type UserConfigV1 = { - loadouts: Array; -}; - -export type UserConfigV2 = { - version: 2; - loadouts: Array; -}; - -export type UserConfigV3 = { - version: 3; - loadouts: Array; -}; - -export { type UserConfigV3 as UserConfig }; - -export const categoryNameMap: Record = { - 'EEquippableCategory::Sidearm': 'sidearms', - 'EEquippableCategory::SMG': 'smgs', - 'EEquippableCategory::Rifle': 'rifles', - 'EEquippableCategory::Sniper': 'sniper rifles', - 'EEquippableCategory::Shotgun': 'shotguns', - 'EEquippableCategory::Heavy': 'machine guns', - 'EEquippableCategory::Melee': 'melee', -}; - -export const categoryCanonicalNameMap: Record = { - 'EEquippableCategory::Sidearm': 'sidearm', - 'EEquippableCategory::SMG': 'smg', - 'EEquippableCategory::Rifle': 'rifle', - 'EEquippableCategory::Sniper': 'sniper', - 'EEquippableCategory::Shotgun': 'shotgun', - 'EEquippableCategory::Heavy': 'heavy', - 'EEquippableCategory::Melee': 'melee', -}; - -export const sortedWeapons: Record = { - 'EEquippableCategory::Sidearm': [ - 'classic', - 'shorty', - 'frenzy', - 'ghost', - 'sheriff', - ], - 'EEquippableCategory::SMG': ['stinger', 'spectre'], - 'EEquippableCategory::Rifle': ['bulldog', 'guardian', 'phantom', 'vandal'], - 'EEquippableCategory::Sniper': ['marshal', 'outlaw', 'operator'], - 'EEquippableCategory::Shotgun': ['bucky', 'judge'], - 'EEquippableCategory::Heavy': ['ares', 'odin'], - 'EEquippableCategory::Melee': ['melee'], -}; - -export const weaponUUIDCanonicalNameMap: Record = { - '63e6c2b6-4a8e-869c-3d4c-e38355226584': 'odin', - '55d8a0f4-4274-ca67-fe2c-06ab45efdf58': 'ares', - '9c82e19d-4575-0200-1a81-3eacf00cf872': 'vandal', - 'ae3de142-4d85-2547-dd26-4e90bed35cf7': 'bulldog', - 'ee8e8d15-496b-07ac-e5f6-8fae5d4c7b1a': 'phantom', - 'ec845bf4-4f79-ddda-a3da-0db3774b2794': 'judge', - '910be174-449b-c412-ab22-d0873436b21b': 'bucky', - '44d4e95c-4157-0037-81b2-17841bf2e8e3': 'frenzy', - '29a0cfab-485b-f5d5-779a-b59f85e204a8': 'classic', - '1baa85b4-4c70-1284-64bb-6481dfc3bb4e': 'ghost', - 'e336c6b8-418d-9340-d77f-7a9e4cfe0702': 'sheriff', - '42da8ccc-40d5-affc-beec-15aa47b42eda': 'shorty', - 'a03b24d3-4319-996d-0f8c-94bbfba1dfc7': 'operator', - '4ade7faa-4cf1-8376-95ef-39884480959b': 'guardian', - 'c4883e50-4494-202c-3ec3-6b8a9284f00b': 'marshal', - '5f0aaf7a-4289-3998-d5ff-eb9a5cf7ef5c': 'outlaw', - '462080d1-4035-2937-7c09-27aa2a5c27a7': 'spectre', - 'f7e1b454-4ad4-1063-ec0a-159e56b58941': 'stinger', - '2f59173c-4bed-b6c3-2191-dea9b58be9c7': 'melee', -}; - -export const weaponCanonicalNameUUIDMap: Record = - Object.entries(weaponUUIDCanonicalNameMap).reduce( - (acc, [key, value]) => { - acc[value] = key; - return acc; - }, - {} as Record, - ); - -export const nameToIndex = Object.entries(sortedWeapons).reduce( - (acc, [_category, weapons]) => { - const totalAcc = Object.keys(acc).length; - weapons.forEach((weapon, index) => { - acc[weapon] = index + totalAcc; - }); - return acc; - }, - {} as Record, -); - -export const weaponUuidToIndex = Object.entries(sortedWeapons).reduce( - (acc, [_category, weapons]) => { - const totalAcc = Object.keys(acc).length; - weapons.forEach((weapon, index) => { - acc[weaponCanonicalNameUUIDMap[weapon]] = index + totalAcc; - }); - return acc; - }, - {} as Record, -); - -export type ResolvedWeapon = { - uuid: string; - displayName: string; - category: WeaponCategory; - defaultSkinIcon: string; - resolvedSkins: Array<{ - id: string; - name: string; - skinIcon: string; - buddyIcon: string; - }>; - ownedSkins: Array<{ - id: string; - name: string; - displayIcon: string; - chromas: Array<{ - uuid: string; - displayName: string; - displayIcon: string; - fullRender: string; - swatch: string; - streamedVideo: string; - assetPath: string; - }>; - levels: Array<{ - uuid: string; - displayName: string; - levelItem: string | null; - displayIcon: string | null; - streamedVideo: string; - assetPath: string; - }>; - }>; -}; - -export function getOwnedChromas( - skin: Weapon['skins'][number], - entitlements: EntitlementsByCategory, -) { - return skin.chromas.filter( - (chroma, index) => - index === 0 || - entitlements.skin_chroma.some( - (entitlement) => entitlement.ItemID === chroma.uuid, - ), - ); -} - -export function getOwnedLevels( - skin: Weapon['skins'][number], - entitlements: EntitlementsByCategory, -) { - return skin.levels.filter((level) => - entitlements.skin_level.some( - (entitlement) => entitlement.ItemID === level.uuid, - ), - ); -} diff --git a/biome.json b/biome.json index dd007aa..af099af 100644 --- a/biome.json +++ b/biome.json @@ -1,28 +1,39 @@ { - "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", + "$schema": "https://biomejs.dev/schemas/2.4.2/schema.json", + "vcs": { + "enabled": true, + "clientKind": "git", + "useIgnoreFile": true + }, + "files": { + "ignoreUnknown": false + }, "formatter": { "enabled": true, - "formatWithErrors": false, - "indentStyle": "tab", - "indentWidth": 2, - "lineEnding": "lf", - "lineWidth": 80, - "attributePosition": "auto", - "bracketSpacing": true + "indentStyle": "tab" + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true + } }, - "organizeImports": { "enabled": true }, - "linter": { "enabled": true, "rules": { "recommended": false } }, "javascript": { "formatter": { - "jsxQuoteStyle": "double", - "quoteProperties": "asNeeded", - "trailingCommas": "all", - "semicolons": "always", - "arrowParentheses": "always", - "bracketSameLine": false, - "quoteStyle": "single", - "attributePosition": "auto", - "bracketSpacing": true + "quoteStyle": "double" + } + }, + "css": { + "parser": { + "tailwindDirectives": true + } + }, + "assist": { + "enabled": true, + "actions": { + "source": { + "organizeImports": "on" + } } } -} +} \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..ff93803 --- /dev/null +++ b/index.html @@ -0,0 +1,14 @@ + + + + + + + Tauri + React + Typescript + + + +
+ + + diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 04c7048..0000000 --- a/package-lock.json +++ /dev/null @@ -1,7624 +0,0 @@ -{ - "name": "valpal", - "version": "0.0.10", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "valpal", - "version": "0.0.10", - "dependencies": { - "@radix-ui/react-dialog": "^1.1.4", - "@radix-ui/react-tabs": "^1.1.2", - "@react-router/express": "^7.1.1", - "@react-router/node": "^7.1.1", - "axios": "^1.7.9", - "compression": "^1.7.5", - "express": "^4.21.1", - "isbot": "^5.1.17", - "morgan": "^1.10.0", - "not-the-systray": "^0.3.1", - "react": "^19.0.0", - "react-dom": "^19.0.0", - "react-router": "^7.1.1", - "ws": "^8.18.0", - "zod-form-data": "^2.0.5" - }, - "devDependencies": { - "@biomejs/biome": "1.9.4", - "@react-router/dev": "^7.1.1", - "@types/compression": "^1.7.5", - "@types/express": "^5.0.0", - "@types/express-serve-static-core": "^5.0.1", - "@types/morgan": "^1.9.9", - "@types/node": "^20", - "@types/react": "^19.0.1", - "@types/react-dom": "^19.0.1", - "@types/ws": "^8.5.13", - "@yao-pkg/pkg": "^6.2.0", - "autoprefixer": "^10.4.20", - "cross-env": "^7.0.3", - "esbuild": "^0.24.2", - "postcss": "^8.4.49", - "tailwind-scrollbar": "^3.1.0", - "tailwindcss": "^3.4.16", - "typescript": "^5.7.2", - "vite": "^5.4.11", - "vite-tsconfig-paths": "^5.1.4" - } - }, - "node_modules/@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", - "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.25.9", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.3.tgz", - "integrity": "sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", - "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.26.0", - "@babel/generator": "^7.26.0", - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-module-transforms": "^7.26.0", - "@babel/helpers": "^7.26.0", - "@babel/parser": "^7.26.0", - "@babel/template": "^7.25.9", - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.26.0", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.3.tgz", - "integrity": "sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.26.3", - "@babel/types": "^7.26.3", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", - "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", - "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz", - "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-member-expression-to-functions": "^7.25.9", - "@babel/helper-optimise-call-expression": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/traverse": "^7.25.9", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", - "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", - "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", - "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", - "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", - "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz", - "integrity": "sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.25.9", - "@babel/helper-optimise-call-expression": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", - "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", - "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", - "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.25.9", - "@babel/types": "^7.26.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.3.tgz", - "integrity": "sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.26.3" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-syntax-decorators": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.25.9.tgz", - "integrity": "sha512-ryzI0McXUPJnRCvMo4lumIKZUzhYUO/ScI+Mz4YVaTLt04DHNSjEUjKVvbzQjZFLuod/cYEc07mJWhzl6v4DPg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", - "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", - "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz", - "integrity": "sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.26.0", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.26.3.tgz", - "integrity": "sha512-6+5hpdr6mETwSKjmJUdYw0EIkATiQhnELWlE3kJFBwSg/BGIVwVaVbX+gOXBCdc7Ln1RXZxyWGecIXhUfnl7oA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/plugin-syntax-typescript": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-typescript": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.26.0.tgz", - "integrity": "sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", - "@babel/plugin-syntax-jsx": "^7.25.9", - "@babel/plugin-transform-modules-commonjs": "^7.25.9", - "@babel/plugin-transform-typescript": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/template": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", - "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/parser": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.26.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.4.tgz", - "integrity": "sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.3", - "@babel/parser": "^7.26.3", - "@babel/template": "^7.25.9", - "@babel/types": "^7.26.3", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.3.tgz", - "integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@biomejs/biome": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-1.9.4.tgz", - "integrity": "sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog==", - "dev": true, - "hasInstallScript": true, - "license": "MIT OR Apache-2.0", - "bin": { - "biome": "bin/biome" - }, - "engines": { - "node": ">=14.21.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/biome" - }, - "optionalDependencies": { - "@biomejs/cli-darwin-arm64": "1.9.4", - "@biomejs/cli-darwin-x64": "1.9.4", - "@biomejs/cli-linux-arm64": "1.9.4", - "@biomejs/cli-linux-arm64-musl": "1.9.4", - "@biomejs/cli-linux-x64": "1.9.4", - "@biomejs/cli-linux-x64-musl": "1.9.4", - "@biomejs/cli-win32-arm64": "1.9.4", - "@biomejs/cli-win32-x64": "1.9.4" - } - }, - "node_modules/@biomejs/cli-darwin-arm64": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.9.4.tgz", - "integrity": "sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT OR Apache-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=14.21.3" - } - }, - "node_modules/@biomejs/cli-darwin-x64": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-1.9.4.tgz", - "integrity": "sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT OR Apache-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=14.21.3" - } - }, - "node_modules/@biomejs/cli-linux-arm64": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-1.9.4.tgz", - "integrity": "sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT OR Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=14.21.3" - } - }, - "node_modules/@biomejs/cli-linux-arm64-musl": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.9.4.tgz", - "integrity": "sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT OR Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=14.21.3" - } - }, - "node_modules/@biomejs/cli-linux-x64": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-1.9.4.tgz", - "integrity": "sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT OR Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=14.21.3" - } - }, - "node_modules/@biomejs/cli-linux-x64-musl": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-1.9.4.tgz", - "integrity": "sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT OR Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=14.21.3" - } - }, - "node_modules/@biomejs/cli-win32-arm64": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-1.9.4.tgz", - "integrity": "sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT OR Apache-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=14.21.3" - } - }, - "node_modules/@biomejs/cli-win32-x64": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-1.9.4.tgz", - "integrity": "sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT OR Apache-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=14.21.3" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", - "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", - "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", - "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", - "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", - "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", - "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", - "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", - "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", - "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", - "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", - "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", - "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", - "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", - "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", - "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", - "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", - "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", - "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", - "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", - "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", - "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", - "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", - "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", - "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", - "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "license": "ISC", - "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/fs-minipass": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", - "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.0.4" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", - "dev": true, - "license": "MIT", - "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://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@mjackson/node-fetch-server": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@mjackson/node-fetch-server/-/node-fetch-server-0.2.0.tgz", - "integrity": "sha512-EMlH1e30yzmTpGLQjlFmaDAjyOeZhng1/XCd7DExR8PNAnG/G1tyruZxEoUe11ClnwGhGrtsdnyyUx1frSzjng==", - "license": "MIT" - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "license": "MIT", - "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://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@npmcli/git": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-4.1.0.tgz", - "integrity": "sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/promise-spawn": "^6.0.0", - "lru-cache": "^7.4.4", - "npm-pick-manifest": "^8.0.0", - "proc-log": "^3.0.0", - "promise-inflight": "^1.0.1", - "promise-retry": "^2.0.1", - "semver": "^7.3.5", - "which": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/git/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/@npmcli/package-json": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-4.0.1.tgz", - "integrity": "sha512-lRCEGdHZomFsURroh522YvA/2cVb9oPIJrjHanCJZkiasz1BzcnLr3tBJhlV7S86MBJBuAQ33is2D60YitZL2Q==", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/git": "^4.1.0", - "glob": "^10.2.2", - "hosted-git-info": "^6.1.1", - "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^5.0.0", - "proc-log": "^3.0.0", - "semver": "^7.5.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/promise-spawn": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-6.0.2.tgz", - "integrity": "sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==", - "dev": true, - "license": "ISC", - "dependencies": { - "which": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@radix-ui/primitive": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.1.tgz", - "integrity": "sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA==", - "license": "MIT" - }, - "node_modules/@radix-ui/react-collection": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.1.tgz", - "integrity": "sha512-LwT3pSho9Dljg+wY2KN2mrrh6y3qELfftINERIzBUO9e0N+t0oMTyn3k9iv+ZqgrwGkRnLpNJrsMv9BZlt2yuA==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-primitive": "2.0.1", - "@radix-ui/react-slot": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.1.tgz", - "integrity": "sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-context": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.1.tgz", - "integrity": "sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-dialog": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.4.tgz", - "integrity": "sha512-Ur7EV1IwQGCyaAuyDRiOLA5JIUZxELJljF+MbM/2NC0BYwfuRrbpS30BiQBJrVruscgUkieKkqXYDOoByaxIoA==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.1", - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-dismissable-layer": "1.1.3", - "@radix-ui/react-focus-guards": "1.1.1", - "@radix-ui/react-focus-scope": "1.1.1", - "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-portal": "1.1.3", - "@radix-ui/react-presence": "1.1.2", - "@radix-ui/react-primitive": "2.0.1", - "@radix-ui/react-slot": "1.1.1", - "@radix-ui/react-use-controllable-state": "1.1.0", - "aria-hidden": "^1.1.1", - "react-remove-scroll": "^2.6.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-direction": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.0.tgz", - "integrity": "sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-dismissable-layer": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.3.tgz", - "integrity": "sha512-onrWn/72lQoEucDmJnr8uczSNTujT0vJnA/X5+3AkChVPowr8n1yvIKIabhWyMQeMvvmdpsvcyDqx3X1LEXCPg==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.1", - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-primitive": "2.0.1", - "@radix-ui/react-use-callback-ref": "1.1.0", - "@radix-ui/react-use-escape-keydown": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-focus-guards": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.1.tgz", - "integrity": "sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-focus-scope": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.1.tgz", - "integrity": "sha512-01omzJAYRxXdG2/he/+xy+c8a8gCydoQ1yOxnWNcRhrrBW5W+RQJ22EK1SaO8tb3WoUsuEw7mJjBozPzihDFjA==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-primitive": "2.0.1", - "@radix-ui/react-use-callback-ref": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-id": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.0.tgz", - "integrity": "sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-portal": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.3.tgz", - "integrity": "sha512-NciRqhXnGojhT93RPyDaMPfLH3ZSl4jjIFbZQ1b/vxvZEdHsBZ49wP9w8L3HzUQwep01LcWtkUvm0OVB5JAHTw==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-primitive": "2.0.1", - "@radix-ui/react-use-layout-effect": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-presence": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.2.tgz", - "integrity": "sha512-18TFr80t5EVgL9x1SwF/YGtfG+l0BS0PRAlCWBDoBEiDQjeKgnNZRVJp/oVBl24sr3Gbfwc/Qpj4OcWTQMsAEg==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-use-layout-effect": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-primitive": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.1.tgz", - "integrity": "sha512-sHCWTtxwNn3L3fH8qAfnF3WbUZycW93SM1j3NFDzXBiz8D6F5UTTy8G1+WFEaiCdvCVRJWj6N2R4Xq6HdiHmDg==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-slot": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-roving-focus": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.1.tgz", - "integrity": "sha512-QE1RoxPGJ/Nm8Qmk0PxP8ojmoaS67i0s7hVssS7KuI2FQoc/uzVlZsqKfQvxPE6D8hICCPHJ4D88zNhT3OOmkw==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.1", - "@radix-ui/react-collection": "1.1.1", - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-direction": "1.1.0", - "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-primitive": "2.0.1", - "@radix-ui/react-use-callback-ref": "1.1.0", - "@radix-ui/react-use-controllable-state": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-slot": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.1.tgz", - "integrity": "sha512-RApLLOcINYJA+dMVbOju7MYv1Mb2EBp2nH4HdDzXTSyaR5optlm6Otrz1euW3HbdOR8UmmFK06TD+A9frYWv+g==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-tabs": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.2.tgz", - "integrity": "sha512-9u/tQJMcC2aGq7KXpGivMm1mgq7oRJKXphDwdypPd/j21j/2znamPU8WkXgnhUaTrSFNIt8XhOyCAupg8/GbwQ==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.1", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-direction": "1.1.0", - "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-presence": "1.1.2", - "@radix-ui/react-primitive": "2.0.1", - "@radix-ui/react-roving-focus": "1.1.1", - "@radix-ui/react-use-controllable-state": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-callback-ref": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz", - "integrity": "sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-controllable-state": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.1.0.tgz", - "integrity": "sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-use-callback-ref": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-escape-keydown": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.0.tgz", - "integrity": "sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-use-callback-ref": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-layout-effect": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.0.tgz", - "integrity": "sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@react-router/dev": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@react-router/dev/-/dev-7.1.1.tgz", - "integrity": "sha512-+UCrQZBAmdRcC7Bx1ho89T/DeP+FzEErkzrTvdBCpstr8AzOQ6mKlaglXGty15o3fgihBSFF4/J67jGveYIR8Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.21.8", - "@babel/generator": "^7.21.5", - "@babel/parser": "^7.21.8", - "@babel/plugin-syntax-decorators": "^7.22.10", - "@babel/plugin-syntax-jsx": "^7.21.4", - "@babel/preset-typescript": "^7.21.5", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.22.5", - "@npmcli/package-json": "^4.0.1", - "@react-router/node": "7.1.1", - "arg": "^5.0.1", - "babel-dead-code-elimination": "^1.0.6", - "chokidar": "^4.0.0", - "dedent": "^1.5.3", - "es-module-lexer": "^1.3.1", - "exit-hook": "2.2.1", - "fs-extra": "^10.0.0", - "gunzip-maybe": "^1.4.2", - "jsesc": "3.0.2", - "lodash": "^4.17.21", - "pathe": "^1.1.2", - "picocolors": "^1.1.1", - "picomatch": "^2.3.1", - "prettier": "^2.7.1", - "react-refresh": "^0.14.0", - "semver": "^7.3.7", - "set-cookie-parser": "^2.6.0", - "valibot": "^0.41.0", - "vite-node": "3.0.0-beta.2" - }, - "bin": { - "react-router": "bin.js" - }, - "engines": { - "node": ">=20.0.0" - }, - "peerDependencies": { - "@react-router/serve": "^7.1.1", - "react-router": "^7.1.1", - "typescript": "^5.1.0", - "vite": "^5.1.0 || ^6.0.0", - "wrangler": "^3.28.2" - }, - "peerDependenciesMeta": { - "@react-router/serve": { - "optional": true - }, - "typescript": { - "optional": true - }, - "wrangler": { - "optional": true - } - } - }, - "node_modules/@react-router/express": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@react-router/express/-/express-7.1.1.tgz", - "integrity": "sha512-oiL2ADor3byuh7piajLTPr6007GmVPZ1Gh4HiN0uuZlz3vQ1rd0xZMSD9LnSrXhsrKEbPFaeCk8E2O67ZoABsg==", - "license": "MIT", - "dependencies": { - "@react-router/node": "7.1.1" - }, - "engines": { - "node": ">=20.0.0" - }, - "peerDependencies": { - "express": "^4.17.1", - "react-router": "7.1.1", - "typescript": "^5.1.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@react-router/node": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@react-router/node/-/node-7.1.1.tgz", - "integrity": "sha512-5X79SfJ1IEEsttt0oo9rhO9kgxXyBTKdVBsz3h0WHTkRzbRk0VEpVpBW3PQ1RpkgEaAHwJ8obVl4k4brdDSExA==", - "license": "MIT", - "dependencies": { - "@mjackson/node-fetch-server": "^0.2.0", - "source-map-support": "^0.5.21", - "stream-slice": "^0.1.2", - "undici": "^6.19.2" - }, - "engines": { - "node": ">=20.0.0" - }, - "peerDependencies": { - "react-router": "7.1.1", - "typescript": "^5.1.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.30.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.30.1.tgz", - "integrity": "sha512-pSWY+EVt3rJ9fQ3IqlrEUtXh3cGqGtPDH1FQlNZehO2yYxCHEX1SPsz1M//NXwYfbTlcKr9WObLnJX9FsS9K1Q==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.30.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.30.1.tgz", - "integrity": "sha512-/NA2qXxE3D/BRjOJM8wQblmArQq1YoBVJjrjoTSBS09jgUisq7bqxNHJ8kjCHeV21W/9WDGwJEWSN0KQ2mtD/w==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.30.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.30.1.tgz", - "integrity": "sha512-r7FQIXD7gB0WJ5mokTUgUWPl0eYIH0wnxqeSAhuIwvnnpjdVB8cRRClyKLQr7lgzjctkbp5KmswWszlwYln03Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.30.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.30.1.tgz", - "integrity": "sha512-x78BavIwSH6sqfP2xeI1hd1GpHL8J4W2BXcVM/5KYKoAD3nNsfitQhvWSw+TFtQTLZ9OmlF+FEInEHyubut2OA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.30.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.30.1.tgz", - "integrity": "sha512-HYTlUAjbO1z8ywxsDFWADfTRfTIIy/oUlfIDmlHYmjUP2QRDTzBuWXc9O4CXM+bo9qfiCclmHk1x4ogBjOUpUQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.30.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.30.1.tgz", - "integrity": "sha512-1MEdGqogQLccphhX5myCJqeGNYTNcmTyaic9S7CG3JhwuIByJ7J05vGbZxsizQthP1xpVx7kd3o31eOogfEirw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.30.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.30.1.tgz", - "integrity": "sha512-PaMRNBSqCx7K3Wc9QZkFx5+CX27WFpAMxJNiYGAXfmMIKC7jstlr32UhTgK6T07OtqR+wYlWm9IxzennjnvdJg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.30.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.30.1.tgz", - "integrity": "sha512-B8Rcyj9AV7ZlEFqvB5BubG5iO6ANDsRKlhIxySXcF1axXYUyqwBok+XZPgIYGBgs7LDXfWfifxhw0Ik57T0Yug==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.30.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.30.1.tgz", - "integrity": "sha512-hqVyueGxAj3cBKrAI4aFHLV+h0Lv5VgWZs9CUGqr1z0fZtlADVV1YPOij6AhcK5An33EXaxnDLmJdQikcn5NEw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.30.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.30.1.tgz", - "integrity": "sha512-i4Ab2vnvS1AE1PyOIGp2kXni69gU2DAUVt6FSXeIqUCPIR3ZlheMW3oP2JkukDfu3PsexYRbOiJrY+yVNSk9oA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.30.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.30.1.tgz", - "integrity": "sha512-fARcF5g296snX0oLGkVxPmysetwUk2zmHcca+e9ObOovBR++9ZPOhqFUM61UUZ2EYpXVPN1redgqVoBB34nTpQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.30.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.30.1.tgz", - "integrity": "sha512-GLrZraoO3wVT4uFXh67ElpwQY0DIygxdv0BNW9Hkm3X34wu+BkqrDrkcsIapAY+N2ATEbvak0XQ9gxZtCIA5Rw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.30.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.30.1.tgz", - "integrity": "sha512-0WKLaAUUHKBtll0wvOmh6yh3S0wSU9+yas923JIChfxOaaBarmb/lBKPF0w/+jTVozFnOXJeRGZ8NvOxvk/jcw==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.30.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.30.1.tgz", - "integrity": "sha512-GWFs97Ruxo5Bt+cvVTQkOJ6TIx0xJDD/bMAOXWJg8TCSTEK8RnFeOeiFTxKniTc4vMIaWvCplMAFBt9miGxgkA==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.30.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.30.1.tgz", - "integrity": "sha512-UtgGb7QGgXDIO+tqqJ5oZRGHsDLO8SlpE4MhqpY9Llpzi5rJMvrK6ZGhsRCST2abZdBqIBeXW6WPD5fGK5SDwg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.30.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.30.1.tgz", - "integrity": "sha512-V9U8Ey2UqmQsBT+xTOeMzPzwDzyXmnAoO4edZhL7INkwQcaW1Ckv3WJX3qrrp/VHaDkEWIBWhRwP47r8cdrOow==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.30.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.30.1.tgz", - "integrity": "sha512-WabtHWiPaFF47W3PkHnjbmWawnX/aE57K47ZDT1BXTS5GgrBUEpvOzq0FI0V/UYzQJgdb8XlhVNH8/fwV8xDjw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.30.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.30.1.tgz", - "integrity": "sha512-pxHAU+Zv39hLUTdQQHUVHf4P+0C47y/ZloorHpzs2SXMRqeAWmGghzAhfOlzFHHwjvgokdFAhC4V+6kC1lRRfw==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.30.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.30.1.tgz", - "integrity": "sha512-D6qjsXGcvhTjv0kI4fU8tUuBDF/Ueee4SVX79VfNDXZa64TfCW1Slkb6Z7O1p7vflqZjcmOVdZlqf8gvJxc6og==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@types/body-parser": { - "version": "1.19.5", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", - "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/compression": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/@types/compression/-/compression-1.7.5.tgz", - "integrity": "sha512-AAQvK5pxMpaT+nDvhHrsBhLSYG5yQdtkaJE1WYieSNY2mVFKAgmU4ks65rkZD5oqnGCFLyQpUr1CqI4DmUMyDg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/express": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", - "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", - "license": "MIT" - }, - "node_modules/@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/express": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.0.tgz", - "integrity": "sha512-DvZriSMehGHL1ZNLzi6MidnsDhUZM/x2pRdDIKdwbUNqqwHxMlRdkxtn6/EPKyqKpHqTl/4nRZsRNLpZxZRpPQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^5.0.0", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.4.tgz", - "integrity": "sha512-5kz9ScmzBdzTgB/3susoCgfqNDzBjvLL4taparufgSvlwjdLy6UyUy9T/tCpYd2GIdIilCatC4iSQS0QSYHt0w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/http-errors": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", - "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/mime": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", - "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/morgan": { - "version": "1.9.9", - "resolved": "https://registry.npmjs.org/@types/morgan/-/morgan-1.9.9.tgz", - "integrity": "sha512-iRYSDKVaC6FkGSpEVVIvrRGw0DfJMiQzIn3qr2G5B3C//AWkulhXgaBd7tS9/J79GWSYMTHGs7PfI5b3Y8m+RQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/node": { - "version": "20.17.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.12.tgz", - "integrity": "sha512-vo/wmBgMIiEA23A/knMfn/cf37VnuF52nZh5ZoW0GWt4e4sxNquibrMRJ7UQsA06+MBx9r/H1jsI9grYjQCQlw==", - "license": "MIT", - "dependencies": { - "undici-types": "~6.19.2" - } - }, - "node_modules/@types/qs": { - "version": "6.9.17", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.17.tgz", - "integrity": "sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/range-parser": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", - "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/react": { - "version": "19.0.4", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.4.tgz", - "integrity": "sha512-3O4QisJDYr1uTUMZHA2YswiQZRq+Pd8D+GdVFYikTutYsTz+QZgWkAPnP7rx9txoI6EXKcPiluMqWPFV3tT9Wg==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-dom": { - "version": "19.0.2", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.0.2.tgz", - "integrity": "sha512-c1s+7TKFaDRRxr1TxccIX2u7sfCnc3RxkVyBIUA2lCpyqCF+QoAwQ/CBg7bsMdVwP120HEH143VQezKtef5nCg==", - "devOptional": true, - "license": "MIT", - "peerDependencies": { - "@types/react": "^19.0.0" - } - }, - "node_modules/@types/send": { - "version": "0.17.4", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", - "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.7", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", - "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/http-errors": "*", - "@types/node": "*", - "@types/send": "*" - } - }, - "node_modules/@types/ws": { - "version": "8.5.13", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.13.tgz", - "integrity": "sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@yao-pkg/pkg": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/@yao-pkg/pkg/-/pkg-6.2.0.tgz", - "integrity": "sha512-kq1aDs9aa+fEtKQQ2AsxcL4Z82LsYw9ZQIwD3Q/wDq8ZPN69wCf2+OQp271lnqMybYInXwwBJ3swIb/nvaXS/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/generator": "^7.23.0", - "@babel/parser": "^7.23.0", - "@babel/types": "^7.23.0", - "@yao-pkg/pkg-fetch": "3.5.18", - "into-stream": "^6.0.0", - "minimist": "^1.2.6", - "multistream": "^4.1.0", - "picocolors": "^1.1.0", - "picomatch": "^4.0.2", - "prebuild-install": "^7.1.1", - "resolve": "^1.22.0", - "stream-meter": "^1.0.4", - "tar": "^7.4.3", - "tinyglobby": "^0.2.9", - "unzipper": "^0.12.3" - }, - "bin": { - "pkg": "lib-es5/bin.js" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@yao-pkg/pkg-fetch": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@yao-pkg/pkg-fetch/-/pkg-fetch-3.5.18.tgz", - "integrity": "sha512-tdUT7zS2lyXeJwkA8lDI4aVxHwauAc5lKj6Xui3/BtDe6vDsQ8KP+f66u07AI28DuTzKxjRJKNNXVdyGv2Ndsg==", - "dev": true, - "license": "MIT", - "dependencies": { - "https-proxy-agent": "^5.0.0", - "node-fetch": "^2.6.6", - "picocolors": "^1.1.0", - "progress": "^2.0.3", - "semver": "^7.3.5", - "tar-fs": "^2.1.1", - "yargs": "^16.2.0" - }, - "bin": { - "pkg-fetch": "lib-es5/bin.js" - } - }, - "node_modules/@yao-pkg/pkg/node_modules/picomatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "license": "MIT", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/accepts/node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true, - "license": "MIT" - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "dev": true, - "license": "MIT" - }, - "node_modules/aria-hidden": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz", - "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "license": "MIT" - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "license": "MIT" - }, - "node_modules/autoprefixer": { - "version": "10.4.20", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", - "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", - "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" - } - ], - "license": "MIT", - "dependencies": { - "browserslist": "^4.23.3", - "caniuse-lite": "^1.0.30001646", - "fraction.js": "^4.3.7", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.1", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/axios": { - "version": "1.7.9", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz", - "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==", - "license": "MIT", - "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/babel-dead-code-elimination": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/babel-dead-code-elimination/-/babel-dead-code-elimination-1.0.8.tgz", - "integrity": "sha512-og6HQERk0Cmm+nTT4Od2wbPtgABXFMPaHACjbKLulZIFMkYyXZLkUGuAxdgpMJBrxyt/XFpSz++lNzjbcMnPkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.23.7", - "@babel/parser": "^7.23.6", - "@babel/traverse": "^7.23.7", - "@babel/types": "^7.23.6" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "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" - } - ], - "license": "MIT" - }, - "node_modules/basic-auth": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", - "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", - "license": "MIT", - "dependencies": { - "safe-buffer": "5.1.2" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/basic-auth/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT" - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/bl/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true, - "license": "MIT" - }, - "node_modules/body-parser": { - "version": "1.20.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", - "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.13.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserify-zlib": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", - "integrity": "sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "pako": "~0.2.0" - } - }, - "node_modules/browserslist": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", - "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", - "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" - } - ], - "license": "MIT", - "dependencies": { - "caniuse-lite": "^1.0.30001688", - "electron-to-chromium": "^1.5.73", - "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.1" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "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" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "license": "MIT" - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cac": { - "version": "6.7.14", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", - "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", - "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/call-bound": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", - "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001692", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001692.tgz", - "integrity": "sha512-A95VKan0kdtrsnMubMKxEKUKImOPSuCpYgxSQBo036P5YYgVIcOYJEgt/txJWqObiRQeISNCfef9nvlQ0vbV7A==", - "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" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/chokidar": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", - "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", - "dev": true, - "license": "MIT", - "dependencies": { - "readdirp": "^4.0.1" - }, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/chownr": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", - "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=18" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/cliui/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/cliui/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/cliui/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "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/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "license": "MIT", - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.5.tgz", - "integrity": "sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q==", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "compressible": "~2.0.18", - "debug": "2.6.9", - "negotiator": "~0.6.4", - "on-headers": "~1.0.2", - "safe-buffer": "5.2.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "license": "MIT", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, - "license": "MIT" - }, - "node_modules/cookie": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", - "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", - "license": "MIT" - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/cross-env": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", - "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.1" - }, - "bin": { - "cross-env": "src/bin/cross-env.js", - "cross-env-shell": "src/bin/cross-env-shell.js" - }, - "engines": { - "node": ">=10.14", - "npm": ">=6", - "yarn": ">=1" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cross-spawn/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "devOptional": true, - "license": "MIT" - }, - "node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/dedent": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", - "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "babel-plugin-macros": "^3.1.0" - }, - "peerDependenciesMeta": { - "babel-plugin-macros": { - "optional": true - } - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "license": "MIT", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/detect-libc": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", - "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=8" - } - }, - "node_modules/detect-node-es": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", - "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", - "license": "MIT" - }, - "node_modules/didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true, - "license": "MIT" - }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "readable-stream": "^2.0.2" - } - }, - "node_modules/duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true, - "license": "MIT" - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "license": "MIT" - }, - "node_modules/electron-to-chromium": { - "version": "1.5.79", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.79.tgz", - "integrity": "sha512-nYOxJNxQ9Om4EC88BE4pPoNI8xwSFf8pU/BAeOl4Hh/b/i6V4biTAzwV7pXi3ARKeoYO5JZKMIXTryXSVer5RA==", - "dev": true, - "license": "ISC" - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "license": "MIT" - }, - "node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true, - "license": "MIT" - }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-module-lexer": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", - "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/es-object-atoms": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", - "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/esbuild": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", - "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.24.2", - "@esbuild/android-arm": "0.24.2", - "@esbuild/android-arm64": "0.24.2", - "@esbuild/android-x64": "0.24.2", - "@esbuild/darwin-arm64": "0.24.2", - "@esbuild/darwin-x64": "0.24.2", - "@esbuild/freebsd-arm64": "0.24.2", - "@esbuild/freebsd-x64": "0.24.2", - "@esbuild/linux-arm": "0.24.2", - "@esbuild/linux-arm64": "0.24.2", - "@esbuild/linux-ia32": "0.24.2", - "@esbuild/linux-loong64": "0.24.2", - "@esbuild/linux-mips64el": "0.24.2", - "@esbuild/linux-ppc64": "0.24.2", - "@esbuild/linux-riscv64": "0.24.2", - "@esbuild/linux-s390x": "0.24.2", - "@esbuild/linux-x64": "0.24.2", - "@esbuild/netbsd-arm64": "0.24.2", - "@esbuild/netbsd-x64": "0.24.2", - "@esbuild/openbsd-arm64": "0.24.2", - "@esbuild/openbsd-x64": "0.24.2", - "@esbuild/sunos-x64": "0.24.2", - "@esbuild/win32-arm64": "0.24.2", - "@esbuild/win32-ia32": "0.24.2", - "@esbuild/win32-x64": "0.24.2" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "license": "MIT" - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/exit-hook": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-2.2.1.tgz", - "integrity": "sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/expand-template": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", - "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", - "dev": true, - "license": "(MIT OR WTFPL)", - "engines": { - "node": ">=6" - } - }, - "node_modules/express": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", - "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", - "license": "MIT", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.3", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.7.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.3.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.3", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.12", - "proxy-addr": "~2.0.7", - "qs": "6.13.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.19.0", - "serve-static": "1.16.2", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", - "dev": true, - "license": "MIT", - "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.8" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fastq": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", - "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", - "dev": true, - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", - "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/follow-redirects": { - "version": "1.15.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", - "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "license": "MIT", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/foreground-child": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", - "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", - "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/form-data": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", - "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://github.com/sponsors/rawify" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true, - "license": "MIT" - }, - "node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "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://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", - "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "function-bind": "^1.1.2", - "get-proto": "^1.0.0", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-nonce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", - "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/github-from-package": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", - "dev": true, - "license": "MIT" - }, - "node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dev": true, - "license": "ISC", - "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/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/globrex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", - "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", - "dev": true, - "license": "MIT" - }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/gunzip-maybe": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/gunzip-maybe/-/gunzip-maybe-1.4.2.tgz", - "integrity": "sha512-4haO1M4mLO91PW57BMsDFf75UmwoRX0GkdD+Faw+Lr+r/OZrOCS0pIBwOL1xCKQqnQzbNFGgK2V2CpBUPeFNTw==", - "dev": true, - "license": "MIT", - "dependencies": { - "browserify-zlib": "^0.1.4", - "is-deflate": "^1.0.0", - "is-gzip": "^1.0.0", - "peek-stream": "^1.1.0", - "pumpify": "^1.3.3", - "through2": "^2.0.3" - }, - "bin": { - "gunzip-maybe": "bin.js" - } - }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hosted-git-info": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.3.tgz", - "integrity": "sha512-HVJyzUrLIL1c0QmviVh5E8VGyUS7xCFPS6yydaVd1UegW+ibV/CohqTH9MkOLDp5o+rb82DMo77PTuc9F/8GKw==", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^7.5.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "license": "MIT", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "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" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "license": "ISC" - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true, - "license": "ISC" - }, - "node_modules/into-stream": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-6.0.0.tgz", - "integrity": "sha512-XHbaOAvP+uFKUFsOgoNPRjLkwB+I22JFPFe5OjTkQ0nwgj6+pSjb4NmB6VMxaPshLiOf+zcpOCBQuLwC1KHhZA==", - "dev": true, - "license": "MIT", - "dependencies": { - "from2": "^2.3.0", - "p-is-promise": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-deflate": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-deflate/-/is-deflate-1.0.0.tgz", - "integrity": "sha512-YDoFpuZWu1VRXlsnlYMzKyVRITXj7Ej/V9gXQ2/pAe7X1J7M/RNOqaIYi6qUn+B7nGyB9pDXrv02dsB58d2ZAQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-gzip": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-gzip/-/is-gzip-1.0.0.tgz", - "integrity": "sha512-rcfALRIb1YewtnksfRIHGcIY93QnK8BIQ/2c9yDYcG/Y6+vRoJuTWBmmSEbyLLYtXm7q35pHOHbZFQBaLrhlWQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/isbot": { - "version": "5.1.21", - "resolved": "https://registry.npmjs.org/isbot/-/isbot-5.1.21.tgz", - "integrity": "sha512-0q3naRVpENL0ReKHeNcwn/G7BDynp0DqZUckKyFtM9+hmpnPqgm8+8wbjiVZ0XNhq1wPQV28/Pb8Snh5adeUHA==", - "license": "Unlicense", - "engines": { - "node": ">=18" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "license": "ISC" - }, - "node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "license": "BlueOak-1.0.0", - "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.7", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", - "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", - "dev": true, - "license": "MIT", - "bin": { - "jiti": "bin/jiti.js" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/jsesc": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", - "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", - "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/json-parse-even-better-errors": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", - "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/lilconfig": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", - "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true, - "license": "MIT" - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", - "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dev": true, - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.53.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.53.0.tgz", - "integrity": "sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/minizlib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.1.tgz", - "integrity": "sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "minipass": "^7.0.4", - "rimraf": "^5.0.5" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/mkdirp": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", - "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", - "dev": true, - "license": "MIT", - "bin": { - "mkdirp": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "dev": true, - "license": "MIT" - }, - "node_modules/morgan": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", - "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==", - "license": "MIT", - "dependencies": { - "basic-auth": "~2.0.1", - "debug": "2.6.9", - "depd": "~2.0.0", - "on-finished": "~2.3.0", - "on-headers": "~1.0.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/morgan/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/morgan/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/morgan/node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/multistream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/multistream/-/multistream-4.1.0.tgz", - "integrity": "sha512-J1XDiAmmNpRCBfIWJv+n0ymC4ABcf/Pl+5YvC5B/D2f/2+8PtHvCNxMPKiQcZyi922Hq69J2YOpb1pTywfifyw==", - "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" - } - ], - "license": "MIT", - "dependencies": { - "once": "^1.4.0", - "readable-stream": "^3.6.0" - } - }, - "node_modules/multistream/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/nanoid": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", - "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/napi-build-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", - "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==", - "dev": true, - "license": "MIT" - }, - "node_modules/negotiator": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", - "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/node-abi": { - "version": "3.71.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.71.0.tgz", - "integrity": "sha512-SZ40vRiy/+wRTf21hxkkEjPJZpARzUMVcJoQse2EF8qkUWbbO2z7vd5oA/H6bVH6SZQ5STGcu0KRDS7biNRfxw==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true, - "license": "MIT" - }, - "node_modules/node-releases": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", - "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", - "dev": true, - "license": "MIT" - }, - "node_modules/normalize-package-data": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-5.0.0.tgz", - "integrity": "sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^6.0.0", - "is-core-module": "^2.8.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/not-the-systray": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/not-the-systray/-/not-the-systray-0.3.1.tgz", - "integrity": "sha512-AO+jt6bO8tfZWtKUMHa8pgRktWAIZvHJ4PKPKwsrxaiGunLSppawJt0EM2uFtYO+tWgq6sRgPL7QPfNmT/UQFA==", - "hasInstallScript": true, - "license": "MIT", - "os": [ - "win32" - ], - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/npm-install-checks": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz", - "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "semver": "^7.1.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-normalize-package-bin": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", - "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-package-arg": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-10.1.0.tgz", - "integrity": "sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==", - "dev": true, - "license": "ISC", - "dependencies": { - "hosted-git-info": "^6.0.0", - "proc-log": "^3.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-pick-manifest": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-8.0.2.tgz", - "integrity": "sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==", - "dev": true, - "license": "ISC", - "dependencies": { - "npm-install-checks": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0", - "npm-package-arg": "^10.0.0", - "semver": "^7.3.5" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/object-inspect": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", - "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/p-is-promise": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz", - "integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true, - "license": "BlueOak-1.0.0" - }, - "node_modules/pako": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", - "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==", - "dev": true, - "license": "MIT" - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true, - "license": "MIT" - }, - "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, - "license": "BlueOak-1.0.0", - "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-scurry/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/path-to-regexp": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", - "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", - "license": "MIT" - }, - "node_modules/pathe": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", - "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/peek-stream": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/peek-stream/-/peek-stream-1.1.3.tgz", - "integrity": "sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA==", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "duplexify": "^3.5.0", - "through2": "^2.0.3" - } - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true, - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss": { - "version": "8.4.49", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", - "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", - "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" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-import": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "dev": true, - "license": "MIT", - "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://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", - "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "dev": true, - "license": "MIT", - "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": "4.0.2", - "resolved": "https://registry.npmjs.org/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" - } - ], - "license": "MIT", - "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/postcss-nested": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/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" - } - ], - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.1.1" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "postcss": "^8.2.14" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", - "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/prebuild-install": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.2.tgz", - "integrity": "sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "detect-libc": "^2.0.0", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", - "node-abi": "^3.3.0", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^4.0.0", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0" - }, - "bin": { - "prebuild-install": "bin.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/prebuild-install/node_modules/pump": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", - "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", - "dev": true, - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", - "dev": true, - "license": "MIT", - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/proc-log": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", - "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true, - "license": "MIT" - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", - "dev": true, - "license": "ISC" - }, - "node_modules/promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "dev": true, - "license": "MIT", - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "license": "MIT", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "license": "MIT" - }, - "node_modules/pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - } - }, - "node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/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" - } - ], - "license": "MIT" - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/react": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz", - "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz", - "integrity": "sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==", - "license": "MIT", - "dependencies": { - "scheduler": "^0.25.0" - }, - "peerDependencies": { - "react": "^19.0.0" - } - }, - "node_modules/react-refresh": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", - "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-remove-scroll": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.6.2.tgz", - "integrity": "sha512-KmONPx5fnlXYJQqC62Q+lwIeAk64ws/cUw6omIumRzMRPqgnYqhSSti99nbj0Ry13bv7dF+BKn7NB+OqkdZGTw==", - "license": "MIT", - "dependencies": { - "react-remove-scroll-bar": "^2.3.7", - "react-style-singleton": "^2.2.1", - "tslib": "^2.1.0", - "use-callback-ref": "^1.3.3", - "use-sidecar": "^1.1.2" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-remove-scroll-bar": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", - "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", - "license": "MIT", - "dependencies": { - "react-style-singleton": "^2.2.2", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-router": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.1.1.tgz", - "integrity": "sha512-39sXJkftkKWRZ2oJtHhCxmoCrBCULr/HAH4IT5DHlgu/Q0FCPV0S4Lx+abjDTx/74xoZzNYDYbOZWlJjruyuDQ==", - "license": "MIT", - "dependencies": { - "@types/cookie": "^0.6.0", - "cookie": "^1.0.1", - "set-cookie-parser": "^2.6.0", - "turbo-stream": "2.4.0" - }, - "engines": { - "node": ">=20.0.0" - }, - "peerDependencies": { - "react": ">=18", - "react-dom": ">=18" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - } - } - }, - "node_modules/react-router/node_modules/cookie": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", - "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/react-style-singleton": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", - "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", - "license": "MIT", - "dependencies": { - "get-nonce": "^1.0.0", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/readable-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "license": "MIT" - }, - "node_modules/readdirp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", - "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve": { - "version": "1.22.10", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", - "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-core-module": "^2.16.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", - "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^10.3.7" - }, - "bin": { - "rimraf": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rollup": { - "version": "4.30.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.30.1.tgz", - "integrity": "sha512-mlJ4glW020fPuLi7DkM/lN97mYEZGWeqBnrljzN0gs7GLctqX3lNWxKQ7Gl712UAX+6fog/L3jh4gb7R6aVi3w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "1.0.6" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.30.1", - "@rollup/rollup-android-arm64": "4.30.1", - "@rollup/rollup-darwin-arm64": "4.30.1", - "@rollup/rollup-darwin-x64": "4.30.1", - "@rollup/rollup-freebsd-arm64": "4.30.1", - "@rollup/rollup-freebsd-x64": "4.30.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.30.1", - "@rollup/rollup-linux-arm-musleabihf": "4.30.1", - "@rollup/rollup-linux-arm64-gnu": "4.30.1", - "@rollup/rollup-linux-arm64-musl": "4.30.1", - "@rollup/rollup-linux-loongarch64-gnu": "4.30.1", - "@rollup/rollup-linux-powerpc64le-gnu": "4.30.1", - "@rollup/rollup-linux-riscv64-gnu": "4.30.1", - "@rollup/rollup-linux-s390x-gnu": "4.30.1", - "@rollup/rollup-linux-x64-gnu": "4.30.1", - "@rollup/rollup-linux-x64-musl": "4.30.1", - "@rollup/rollup-win32-arm64-msvc": "4.30.1", - "@rollup/rollup-win32-ia32-msvc": "4.30.1", - "@rollup/rollup-win32-x64-msvc": "4.30.1", - "fsevents": "~2.3.2" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/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" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "license": "MIT" - }, - "node_modules/scheduler": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz", - "integrity": "sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==", - "license": "MIT" - }, - "node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/send": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/send/node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/serve-static": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", - "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", - "license": "MIT", - "dependencies": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.19.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/set-cookie-parser": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", - "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", - "license": "MIT" - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "license": "ISC" - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/side-channel": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", - "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3", - "side-channel-list": "^1.0.0", - "side-channel-map": "^1.0.1", - "side-channel-weakmap": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-list": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", - "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", - "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-weakmap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", - "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3", - "side-channel-map": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "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" - } - ], - "license": "MIT" - }, - "node_modules/simple-get": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", - "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", - "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" - } - ], - "license": "MIT", - "dependencies": { - "decompress-response": "^6.0.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", - "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", - "dev": true, - "license": "CC-BY-3.0" - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.20", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz", - "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/stream-meter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/stream-meter/-/stream-meter-1.0.4.tgz", - "integrity": "sha512-4sOEtrbgFotXwnEuzzsQBYEV1elAeFSO8rSGeTwabuX1RRn/kEq9JVH7I0MRBhKVRR0sJkr0M0QCH7yOLf9fhQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "readable-stream": "^2.1.4" - } - }, - "node_modules/stream-shift": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", - "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/stream-slice": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/stream-slice/-/stream-slice-0.1.2.tgz", - "integrity": "sha512-QzQxpoacatkreL6jsxnVb7X5R/pGw9OUv2qWTYWnmLpg4NdN31snPy/f3TdQE1ZUXaThRvj1Zw4/OGg0ZkaLMA==", - "license": "MIT" - }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "license": "MIT" - }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "license": "MIT", - "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://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "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/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/string-width-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sucrase": { - "version": "3.35.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", - "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", - "dev": true, - "license": "MIT", - "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/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tailwind-scrollbar": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/tailwind-scrollbar/-/tailwind-scrollbar-3.1.0.tgz", - "integrity": "sha512-pmrtDIZeHyu2idTejfV59SbaJyvp1VRjYxAjZBH0jnyrPRo6HL1kD5Glz8VPagasqr6oAx6M05+Tuw429Z8jxg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "tailwindcss": "3.x" - } - }, - "node_modules/tailwindcss": { - "version": "3.4.17", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz", - "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==", - "dev": true, - "license": "MIT", - "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.6.0", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.3.2", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.21.6", - "lilconfig": "^3.1.3", - "micromatch": "^4.0.8", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.1.1", - "postcss": "^8.4.47", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.2", - "postcss-nested": "^6.2.0", - "postcss-selector-parser": "^6.1.2", - "resolve": "^1.22.8", - "sucrase": "^3.35.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tailwindcss/node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "license": "MIT", - "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/tailwindcss/node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/tailwindcss/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/tar": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", - "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==", - "dev": true, - "license": "ISC", - "dependencies": { - "@isaacs/fs-minipass": "^4.0.0", - "chownr": "^3.0.0", - "minipass": "^7.1.2", - "minizlib": "^3.0.1", - "mkdirp": "^3.0.1", - "yallist": "^5.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", - "dev": true, - "license": "MIT", - "dependencies": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - } - }, - "node_modules/tar-fs/node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true, - "license": "ISC" - }, - "node_modules/tar-fs/node_modules/pump": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", - "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", - "dev": true, - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar-stream/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/tar/node_modules/yallist": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", - "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=18" - } - }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dev": true, - "license": "MIT", - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/tinyglobby": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.10.tgz", - "integrity": "sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==", - "dev": true, - "license": "MIT", - "dependencies": { - "fdir": "^6.4.2", - "picomatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/tinyglobby/node_modules/fdir": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.2.tgz", - "integrity": "sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/tinyglobby/node_modules/picomatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "license": "MIT", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true, - "license": "MIT" - }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/tsconfck": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-3.1.4.tgz", - "integrity": "sha512-kdqWFGVJqe+KGYvlSO9NIaWn9jT1Ny4oKVzAJsKii5eoE9snzTJzL4+MMVOMn+fikWGFmKEylcXL710V/kIPJQ==", - "dev": true, - "license": "MIT", - "bin": { - "tsconfck": "bin/tsconfck.js" - }, - "engines": { - "node": "^18 || >=20" - }, - "peerDependencies": { - "typescript": "^5.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/turbo-stream": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.0.tgz", - "integrity": "sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==", - "license": "ISC" - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "license": "MIT", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typescript": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", - "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", - "devOptional": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/undici": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.0.tgz", - "integrity": "sha512-BUgJXc752Kou3oOIuU1i+yZZypyZRqNPW0vqoMPl8VaoalSfeR0D8/t4iAS3yirs79SSMTxTag+ZC86uswv+Cw==", - "license": "MIT", - "engines": { - "node": ">=18.17" - } - }, - "node_modules/undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", - "license": "MIT" - }, - "node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/unzipper": { - "version": "0.12.3", - "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.12.3.tgz", - "integrity": "sha512-PZ8hTS+AqcGxsaQntl3IRBw65QrBI6lxzqDEL7IAo/XCEqRTKGfOX56Vea5TH9SZczRVxuzk1re04z/YjuYCJA==", - "dev": true, - "license": "MIT", - "dependencies": { - "bluebird": "~3.7.2", - "duplexer2": "~0.1.4", - "fs-extra": "^11.2.0", - "graceful-fs": "^4.2.2", - "node-int64": "^0.4.0" - } - }, - "node_modules/unzipper/node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", - "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", - "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" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.1" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/use-callback-ref": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", - "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/use-sidecar": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", - "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", - "license": "MIT", - "dependencies": { - "detect-node-es": "^1.1.0", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true, - "license": "MIT" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/valibot": { - "version": "0.41.0", - "resolved": "https://registry.npmjs.org/valibot/-/valibot-0.41.0.tgz", - "integrity": "sha512-igDBb8CTYr8YTQlOKgaN9nSS0Be7z+WRuaeYqGf3Cjz3aKmSnqEmYnkfVjzIuumGqfHpa3fLIvMEAfhrpqN8ng==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "typescript": ">=5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/validate-npm-package-name": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", - "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/vite": { - "version": "5.4.11", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.11.tgz", - "integrity": "sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.43", - "rollup": "^4.20.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": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/vite-node": { - "version": "3.0.0-beta.2", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.0.0-beta.2.tgz", - "integrity": "sha512-ofTf6cfRdL30Wbl9n/BX81EyIR5s4PReLmSurrxQ+koLaWUNOEo8E0lCM53OJkb8vpa2URM2nSrxZsIFyvY1rg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cac": "^6.7.14", - "debug": "^4.4.0", - "es-module-lexer": "^1.5.4", - "pathe": "^1.1.2", - "vite": "^5.0.0 || ^6.0.0" - }, - "bin": { - "vite-node": "vite-node.mjs" - }, - "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/vite-tsconfig-paths": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-5.1.4.tgz", - "integrity": "sha512-cYj0LRuLV2c2sMqhqhGpaO3LretdtMn/BVX4cPLanIZuwwrkVl+lK84E/miEXkCHWXuq65rhNN4rXsBcOB3S4w==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.1.1", - "globrex": "^0.1.2", - "tsconfck": "^3.0.3" - }, - "peerDependencies": { - "vite": "*" - }, - "peerDependenciesMeta": { - "vite": { - "optional": true - } - } - }, - "node_modules/vite/node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "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/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "license": "MIT", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", - "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "license": "MIT", - "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://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "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/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "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-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true, - "license": "ISC" - }, - "node_modules/yaml": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", - "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", - "dev": true, - "license": "ISC", - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/yargs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/zod": { - "version": "3.24.1", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.1.tgz", - "integrity": "sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==", - "license": "MIT", - "peer": true, - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - }, - "node_modules/zod-form-data": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/zod-form-data/-/zod-form-data-2.0.5.tgz", - "integrity": "sha512-T7dV6lTBCwkd8PyvJVCnjXKpgXomU8gEm/TcvEZY7qNdRhIo9T17HrdlHIK68PzTAYaV2HxR9rgwpTSWv0L+QQ==", - "license": "MIT", - "peerDependencies": { - "zod": ">= 3.11.0" - } - } - } -} diff --git a/package.json b/package.json index 01fe664..2c0d092 100644 --- a/package.json +++ b/package.json @@ -1,54 +1,36 @@ { - "name": "valpal", - "version": "0.0.10", - "private": true, - "type": "module", - "scripts": { - "build": "npm run build:react-router && npm run build:server && npm run pkg", - "build:react-router": "react-router build", - "build:server": "esbuild --platform=node --format=cjs ./server.ts --bundle --outfile=build/server.js --define:process.env.NODE_ENV=\\\"production\\\" --external:not-the-systray", - "dev": "cross-env NODE_ENV=development node --experimental-strip-types --experimental-transform-types --watch-path=./server.ts server.ts", - "start": "node --experimental-strip-types --experimental-transform-types server.ts", - "typecheck": "react-router typegen && tsc -b", - "pkg": "pkg -c pkg.json build/server.js --output dist/valpal.exe && editbin.exe /subsystem:windows dist/valpal.exe" - }, - "dependencies": { - "@radix-ui/react-dialog": "^1.1.4", - "@radix-ui/react-tabs": "^1.1.2", - "@react-router/express": "^7.1.1", - "@react-router/node": "^7.1.1", - "axios": "^1.7.9", - "compression": "^1.7.5", - "express": "^4.21.1", - "isbot": "^5.1.17", - "morgan": "^1.10.0", - "not-the-systray": "^0.3.1", - "react": "^19.0.0", - "react-dom": "^19.0.0", - "react-router": "^7.1.1", - "ws": "^8.18.0", - "zod-form-data": "^2.0.5" - }, - "devDependencies": { - "@biomejs/biome": "1.9.4", - "@react-router/dev": "^7.1.1", - "@types/compression": "^1.7.5", - "@types/express": "^5.0.0", - "@types/express-serve-static-core": "^5.0.1", - "@types/morgan": "^1.9.9", - "@types/node": "^20", - "@types/react": "^19.0.1", - "@types/react-dom": "^19.0.1", - "@types/ws": "^8.5.13", - "@yao-pkg/pkg": "^6.2.0", - "autoprefixer": "^10.4.20", - "cross-env": "^7.0.3", - "esbuild": "^0.24.2", - "postcss": "^8.4.49", - "tailwind-scrollbar": "^3.1.0", - "tailwindcss": "^3.4.16", - "typescript": "^5.7.2", - "vite": "^5.4.11", - "vite-tsconfig-paths": "^5.1.4" - } -} + "name": "valpal", + "private": true, + "version": "0.1.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "set \"RUSTFLAGS=--remap-path-prefix=%USERPROFILE%\\=/user/\" && tauri build", + "build:frontend": "tsc && react-router build", + "preview": "vite preview", + "tauri": "tauri" + }, + "dependencies": { + "@react-router/node": "^7.13.0", + "@tauri-apps/api": "^2", + "@tauri-apps/plugin-opener": "^2", + "isbot": "^5", + "react": "^19.1.0", + "react-aria-components": "^1.15.1", + "react-dom": "^19.1.0", + "react-router": "^7.13.0", + "tiny-invariant": "^1.3.3" + }, + "devDependencies": { + "@biomejs/biome": "2.4.2", + "@react-router/dev": "^7.13.0", + "@tailwindcss/vite": "^4.2.0", + "@tauri-apps/cli": "^2", + "@types/react": "^19.1.8", + "@types/react-dom": "^19.1.6", + "tailwindcss": "^4.2.0", + "typescript": "~5.8.3", + "vite": "^7.0.4", + "vite-tsconfig-paths": "^6.1.1" + } +} \ No newline at end of file diff --git a/pkg.json b/pkg.json deleted file mode 100644 index 03de5ba..0000000 --- a/pkg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "assets": ["build/**/*"], - "targets": ["win"] -} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..6b48c32 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,3964 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@react-router/node': + specifier: ^7.13.0 + version: 7.13.0(react-router@7.13.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(typescript@5.8.3) + '@tauri-apps/api': + specifier: ^2 + version: 2.10.1 + '@tauri-apps/plugin-opener': + specifier: ^2 + version: 2.5.3 + isbot: + specifier: ^5 + version: 5.1.35 + react: + specifier: ^19.1.0 + version: 19.2.4 + react-aria-components: + specifier: ^1.15.1 + version: 1.15.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react-dom: + specifier: ^19.1.0 + version: 19.2.4(react@19.2.4) + react-router: + specifier: ^7.13.0 + version: 7.13.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + tiny-invariant: + specifier: ^1.3.3 + version: 1.3.3 + devDependencies: + '@biomejs/biome': + specifier: 2.4.2 + version: 2.4.2 + '@react-router/dev': + specifier: ^7.13.0 + version: 7.13.0(jiti@2.6.1)(lightningcss@1.31.1)(react-router@7.13.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(typescript@5.8.3)(vite@7.3.1(jiti@2.6.1)(lightningcss@1.31.1)) + '@tailwindcss/vite': + specifier: ^4.2.0 + version: 4.2.0(vite@7.3.1(jiti@2.6.1)(lightningcss@1.31.1)) + '@tauri-apps/cli': + specifier: ^2 + version: 2.10.0 + '@types/react': + specifier: ^19.1.8 + version: 19.2.14 + '@types/react-dom': + specifier: ^19.1.6 + version: 19.2.3(@types/react@19.2.14) + tailwindcss: + specifier: ^4.2.0 + version: 4.2.0 + typescript: + specifier: ~5.8.3 + version: 5.8.3 + vite: + specifier: ^7.0.4 + version: 7.3.1(jiti@2.6.1)(lightningcss@1.31.1) + vite-tsconfig-paths: + specifier: ^6.1.1 + version: 6.1.1(typescript@5.8.3)(vite@7.3.1(jiti@2.6.1)(lightningcss@1.31.1)) + +packages: + + '@babel/code-frame@7.29.0': + resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.29.0': + resolution: {integrity: sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.29.0': + resolution: {integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.29.1': + resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-annotate-as-pure@7.27.3': + resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.28.6': + resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-create-class-features-plugin@7.28.6': + resolution: {integrity: sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-globals@7.28.0': + resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-member-expression-to-functions@7.28.5': + resolution: {integrity: sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.28.6': + resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.28.6': + resolution: {integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-optimise-call-expression@7.27.1': + resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-plugin-utils@7.28.6': + resolution: {integrity: sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==} + engines: {node: '>=6.9.0'} + + '@babel/helper-replace-supers@7.28.6': + resolution: {integrity: sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-skip-transparent-expression-wrappers@7.27.1': + resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.28.5': + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.27.1': + resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.28.6': + resolution: {integrity: sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.29.0': + resolution: {integrity: sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/plugin-syntax-jsx@7.28.6': + resolution: {integrity: sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-typescript@7.28.6': + resolution: {integrity: sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-commonjs@7.28.6': + resolution: {integrity: sha512-jppVbf8IV9iWWwWTQIxJMAJCWBuuKx71475wHwYytrRGQ2CWiDvYlADQno3tcYpS/T2UUWFQp3nVtYfK/YBQrA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-typescript@7.28.6': + resolution: {integrity: sha512-0YWL2RFxOqEm9Efk5PvreamxPME8OyY0wM5wh5lHjF+VtVhdneCWGzZeSqzOfiobVqQaNCd2z0tQvnI9DaPWPw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/preset-typescript@7.28.5': + resolution: {integrity: sha512-+bQy5WOI2V6LJZpPVxY+yp66XdZ2yifu0Mc1aP5CQKgjn4QM5IN2i5fAZ4xKop47pr8rpVhiAeu+nDQa12C8+g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/template@7.28.6': + resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.29.0': + resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.29.0': + resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} + engines: {node: '>=6.9.0'} + + '@biomejs/biome@2.4.2': + resolution: {integrity: sha512-vVE/FqLxNLbvYnFDYg3Xfrh1UdFhmPT5i+yPT9GE2nTUgI4rkqo5krw5wK19YHBd7aE7J6r91RRmb8RWwkjy6w==} + engines: {node: '>=14.21.3'} + hasBin: true + + '@biomejs/cli-darwin-arm64@2.4.2': + resolution: {integrity: sha512-3pEcKCP/1POKyaZZhXcxFl3+d9njmeAihZ17k8lL/1vk+6e0Cbf0yPzKItFiT+5Yh6TQA4uKvnlqe0oVZwRxCA==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [darwin] + + '@biomejs/cli-darwin-x64@2.4.2': + resolution: {integrity: sha512-P7hK1jLVny+0R9UwyGcECxO6sjETxfPyBm/1dmFjnDOHgdDPjPqozByunrwh4xPKld8sxOr5eAsSqal5uKgeBg==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [darwin] + + '@biomejs/cli-linux-arm64-musl@2.4.2': + resolution: {integrity: sha512-/x04YK9+7erw6tYEcJv9WXoBHcULI/wMOvNdAyE9S3JStZZ9yJyV67sWAI+90UHuDo/BDhq0d96LDqGlSVv7WA==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [linux] + + '@biomejs/cli-linux-arm64@2.4.2': + resolution: {integrity: sha512-DI3Mi7GT2zYNgUTDEbSjl3e1KhoP76OjQdm8JpvZYZWtVDRyLd3w8llSr2TWk1z+U3P44kUBWY3X7H9MD1/DGQ==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [linux] + + '@biomejs/cli-linux-x64-musl@2.4.2': + resolution: {integrity: sha512-wbBmTkeAoAYbOQ33f6sfKG7pcRSydQiF+dTYOBjJsnXO2mWEOQHllKlC2YVnedqZFERp2WZhFUoO7TNRwnwEHQ==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [linux] + + '@biomejs/cli-linux-x64@2.4.2': + resolution: {integrity: sha512-GK2ErnrKpWFigYP68cXiCHK4RTL4IUWhK92AFS3U28X/nuAL5+hTuy6hyobc8JZRSt+upXt1nXChK+tuHHx4mA==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [linux] + + '@biomejs/cli-win32-arm64@2.4.2': + resolution: {integrity: sha512-k2uqwLYrNNxnaoiW3RJxoMGnbKda8FuCmtYG3cOtVljs3CzWxaTR+AoXwKGHscC9thax9R4kOrtWqWN0+KdPTw==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [win32] + + '@biomejs/cli-win32-x64@2.4.2': + resolution: {integrity: sha512-9ma7C4g8Sq3cBlRJD2yrsHXB1mnnEBdpy7PhvFrylQWQb4PoyCmPucdX7frvsSBQuFtIiKCrolPl/8tCZrKvgQ==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [win32] + + '@esbuild/aix-ppc64@0.27.3': + resolution: {integrity: sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.27.3': + resolution: {integrity: sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.27.3': + resolution: {integrity: sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.27.3': + resolution: {integrity: sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.27.3': + resolution: {integrity: sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.27.3': + resolution: {integrity: sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.27.3': + resolution: {integrity: sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.27.3': + resolution: {integrity: sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.27.3': + resolution: {integrity: sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.27.3': + resolution: {integrity: sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.27.3': + resolution: {integrity: sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.27.3': + resolution: {integrity: sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.27.3': + resolution: {integrity: sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.27.3': + resolution: {integrity: sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.27.3': + resolution: {integrity: sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.27.3': + resolution: {integrity: sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.27.3': + resolution: {integrity: sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.27.3': + resolution: {integrity: sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.27.3': + resolution: {integrity: sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.27.3': + resolution: {integrity: sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.27.3': + resolution: {integrity: sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openharmony-arm64@0.27.3': + resolution: {integrity: sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + + '@esbuild/sunos-x64@0.27.3': + resolution: {integrity: sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.27.3': + resolution: {integrity: sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.27.3': + resolution: {integrity: sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.27.3': + resolution: {integrity: sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@formatjs/ecma402-abstract@2.3.6': + resolution: {integrity: sha512-HJnTFeRM2kVFVr5gr5kH1XP6K0JcJtE7Lzvtr3FS/so5f1kpsqqqxy5JF+FRaO6H2qmcMfAUIox7AJteieRtVw==} + + '@formatjs/fast-memoize@2.2.7': + resolution: {integrity: sha512-Yabmi9nSvyOMrlSeGGWDiH7rf3a7sIwplbvo/dlz9WCIjzIQAfy1RMf4S0X3yG724n5Ghu2GmEl5NJIV6O9sZQ==} + + '@formatjs/icu-messageformat-parser@2.11.4': + resolution: {integrity: sha512-7kR78cRrPNB4fjGFZg3Rmj5aah8rQj9KPzuLsmcSn4ipLXQvC04keycTI1F7kJYDwIXtT2+7IDEto842CfZBtw==} + + '@formatjs/icu-skeleton-parser@1.8.16': + resolution: {integrity: sha512-H13E9Xl+PxBd8D5/6TVUluSpxGNvFSlN/b3coUp0e0JpuWXXnQDiavIpY3NnvSp4xhEMoXyyBvVfdFX8jglOHQ==} + + '@formatjs/intl-localematcher@0.6.2': + resolution: {integrity: sha512-XOMO2Hupl0wdd172Y06h6kLpBz6Dv+J4okPLl4LPtzbr8f66WbIoy4ev98EBuZ6ZK4h5ydTN6XneT4QVpD7cdA==} + + '@internationalized/date@3.11.0': + resolution: {integrity: sha512-BOx5huLAWhicM9/ZFs84CzP+V3gBW6vlpM02yzsdYC7TGlZJX1OJiEEHcSayF00Z+3jLlm4w79amvSt6RqKN3Q==} + + '@internationalized/message@3.1.8': + resolution: {integrity: sha512-Rwk3j/TlYZhn3HQ6PyXUV0XP9Uv42jqZGNegt0BXlxjE6G3+LwHjbQZAGHhCnCPdaA6Tvd3ma/7QzLlLkJxAWA==} + + '@internationalized/number@3.6.5': + resolution: {integrity: sha512-6hY4Kl4HPBvtfS62asS/R22JzNNy8vi/Ssev7x6EobfCp+9QIB2hKvI2EtbdJ0VSQacxVNtqhE/NmF/NZ0gm6g==} + + '@internationalized/string@3.2.7': + resolution: {integrity: sha512-D4OHBjrinH+PFZPvfCXvG28n2LSykWcJ7GIioQL+ok0LON15SdfoUssoHzzOUmVZLbRoREsQXVzA6r8JKsbP6A==} + + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + + '@mjackson/node-fetch-server@0.2.0': + resolution: {integrity: sha512-EMlH1e30yzmTpGLQjlFmaDAjyOeZhng1/XCd7DExR8PNAnG/G1tyruZxEoUe11ClnwGhGrtsdnyyUx1frSzjng==} + + '@react-aria/autocomplete@3.0.0-rc.5': + resolution: {integrity: sha512-qcGr/ZlSJxw78QtXB29MnvCwGZKlJ5FGfSICjaX/KIg4ONGFR/u4QjP/axA+vhlPa9Ik7BNeikWQriTcYrkbhw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/breadcrumbs@3.5.31': + resolution: {integrity: sha512-j8F2NMHFGT/n3alfFKdO4bvrY/ymtdL04GdclY7Vc6zOmCnWoEZ2UA0sFuV7Rk9dOL8fAtYV1kMD1ZRO/EMcGA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/button@3.14.4': + resolution: {integrity: sha512-6mTPiSSQhELnWlnYJ1Tm1B0VL1GGKAs2PGAY3ZGbPGQPPDc6Wu82yIhuAO8TTFJrXkwAiqjQawgDLil/yB0V7Q==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/calendar@3.9.4': + resolution: {integrity: sha512-0BvU8cj6uHn622Vp8Xd21XxXtvp3Bh4Yk1pHloqDNmUvvdBN+ol3Xsm5gG3XKKkZ+6CCEi6asCbLaEg3SZSbyg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/checkbox@3.16.4': + resolution: {integrity: sha512-FcZj6/f27mNp2+G5yxyOMRZbZQjJ1cuWvo0PPnnZ4ybSPUmSzI4uUZBk1wvsJVP9F9n+J2hZuYVCaN8pyzLweA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/collections@3.0.2': + resolution: {integrity: sha512-5GV0fj1bvfdztHozlZQ1nzdmcZOAOdZ5BhwrSyuHbK5ptmQrpAoWUK+VTQlxkAfyn5i6niaaN/llP1v3RgEemw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/color@3.1.4': + resolution: {integrity: sha512-LNFo0A9EEn2HZ8O/hASschH++M+krfezcp01XPv0/2ZQJ5b5u7VvJlUOEXtPsD4i9+BzvkSAEoVUXdlJie9V2Q==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/combobox@3.14.2': + resolution: {integrity: sha512-qwBeb8cMgK3xwrvXYHPtcphduD/k+oTcU18JHPvEO2kmR32knB33H81C2/Zoh4x86zTDJXaEtPscXBWuQ/M7AQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/datepicker@3.16.0': + resolution: {integrity: sha512-QynYHIHE+wvuGopl/k05tphmDpykpfZ3l3eKnUfGrqvAYJEeCOyS0qoMlw7Vq3NscMLFbJI6ajqBmlmtgFNiSA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/dialog@3.5.33': + resolution: {integrity: sha512-C5FpLAMJU6gQU8gztWKlEJ2A0k/JKl0YijNOv3Lizk+vUdF5njROSrmFs16bY5Hd6ycmsK9x/Pqkq3m/OpNFXA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/disclosure@3.1.2': + resolution: {integrity: sha512-UQ/CmWcdcROfRTMtvfsnYHrEsPPNbwZifZ/UErQpbvU4kzal2N+PpuP3+kpdf4G7TeMt+uJ8S9dLzyFVijOj9A==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/dnd@3.11.5': + resolution: {integrity: sha512-3IGrABfK8Cf6/b/uEmGEDGeubWKMUK3umWunF/tdkWBnIaxpdj4gRkWFMw7siWQYnqir6AN567nrWXtHFcLKsA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/focus@3.21.4': + resolution: {integrity: sha512-6gz+j9ip0/vFRTKJMl3R30MHopn4i19HqqLfSQfElxJD+r9hBnYG1Q6Wd/kl/WRR1+CALn2F+rn06jUnf5sT8Q==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/form@3.1.4': + resolution: {integrity: sha512-GjPS85cE/34zal3vs6MOi7FxUsXwbxN4y6l1LFor2g92UK97gVobp238f3xdMW2T8IuaWGcnHeYFg+cjiZ51pQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/grid@3.14.7': + resolution: {integrity: sha512-8eaJThNHUs75Xf4+FQC2NKQtTOVYkkDdA8VbfbqG06oYDAn7ETb1yhbwoqh1jOv7MezCNkYjyFe4ADsz2rBVcw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/gridlist@3.14.3': + resolution: {integrity: sha512-t3nr29nU5jRG9MdWe9aiMd02V8o0pmidLU/7c4muWAu7hEH+IYdeDthGDdXL9tXAom/oQ+6yt6sOfLxpsVNmGA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/i18n@3.12.15': + resolution: {integrity: sha512-3CrAN7ORVHrckvTmbPq76jFZabqq+rScosGT5+ElircJ5rF5+JcdT99Hp5Xg6R10jk74e8G3xiqdYsUd+7iJMA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/interactions@3.27.0': + resolution: {integrity: sha512-D27pOy+0jIfHK60BB26AgqjjRFOYdvVSkwC31b2LicIzRCSPOSP06V4gMHuGmkhNTF4+YWDi1HHYjxIvMeiSlA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/label@3.7.24': + resolution: {integrity: sha512-lcJbUy6xyicWKNgzfrXksrJ2CeCST2rDxGAvHOmUxSbFOm26kK710DjaFvtO4tICWh/TKW5mC3sm77soNcVUGA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/landmark@3.0.9': + resolution: {integrity: sha512-YYyluDBCXupnMh91ccE5g27fczjYmzPebHqTkVYjH4B6k45pOoqsMmWBCMnOTl0qOCeioI+daT8W0MamAZzoSw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/link@3.8.8': + resolution: {integrity: sha512-hxQEvo5rrn2C0GOSwB/tROe+y//dyhmyXGbm8arDy6WF5Mj0wcjjrAu0/dhGYBqoltJa16iIEvs52xgzOC+f+Q==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/listbox@3.15.2': + resolution: {integrity: sha512-xcrgSediV8MaVmsuDrDPmWywF82/HOv+H+Y/dgr6GLCWl0XDj5Q7PyAhDzUsYdZNIne3B9muGh6IQc3HdkgWqg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/live-announcer@3.4.4': + resolution: {integrity: sha512-PTTBIjNRnrdJOIRTDGNifY2d//kA7GUAwRFJNOEwSNG4FW+Bq9awqLiflw0JkpyB0VNIwou6lqKPHZVLsGWOXA==} + + '@react-aria/menu@3.20.0': + resolution: {integrity: sha512-BAsHuf7kTVmawNUkTUd5RB3ZvL6DQQT7hgZ2cYKd/1ZwYq4KO2wWGYdzyTOtK1qimZL0eyHyQwDYv4dNKBH4gw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/meter@3.4.29': + resolution: {integrity: sha512-XAhJf8LlYQl+QQXqtpWvzjlrT8MZKEG6c8N3apC5DONgSKlCwfmDm4laGEJPqtuz3QGiOopsfSfyTFYHjWsfZw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/numberfield@3.12.4': + resolution: {integrity: sha512-TgKBjKOjyURzbqNR2wF4tSFmQKNK5DqE4QZSlQxpYYo1T6zuztkh+oTOUZ4IWCJymL5qLtuPfGHCZbR7B+DN2w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/overlays@3.31.1': + resolution: {integrity: sha512-U5BedzcXU97U5PWm4kIPnNoVpAs9KjTYfbkGx33vapmTVpGYhQyYW9eg6zW2E8ZKsyFJtQ/jkQnbWGen97aHSQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/progress@3.4.29': + resolution: {integrity: sha512-orSaaFLX5LdD9UyxgBrmP1J/ivyEFX+5v4ENPQM5RH5+Hl+0OJa+8ozI0AfVKBqCYc89BOZfG7kzi7wFHACZcQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/radio@3.12.4': + resolution: {integrity: sha512-2sjBAE8++EtAAfjwPdrqEVswbzR4Mvcy4n8SvwUxTo02yESa9nolBzCSdAUFUmhrNj3MiMA+zLxQ+KACfUjJOg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/searchfield@3.8.11': + resolution: {integrity: sha512-5R0prEC+jRFwPeJsK6G4RN8QG3V/+EaIuw9p79G1gFD+1dY81ZakiZIIJaLWRyO7AzYBGyC/QFHtz0m3KGQT/Q==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/select@3.17.2': + resolution: {integrity: sha512-oMpHStyMluRf67qxrzH5Qfcvw6ETQgZT1Qw2xvAxQVRd5IBb0PfzZS7TGiULOcMLqXAUOC28O/ycUGrGRKLarg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/selection@3.27.1': + resolution: {integrity: sha512-8WQ4AtWiBnk9UEeYkqpH12dd8KQW2aFbNZvM4sDfLtz7K7HWyY/MkqMe/snk9IcoSa7t4zr0bnoZJcWSGgn2PQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/separator@3.4.15': + resolution: {integrity: sha512-A1aPQhCaE8XeelNJYPjHtA2uh921ROh8PNiZI4o62x80wcziRoctN5PAtNHJAx7VKvX66A8ZVGbOqb7iqS3J5Q==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/slider@3.8.4': + resolution: {integrity: sha512-/FYCgK1qVqaz2VCDfR2x4BjyJ8lmWg1v8//+WIwKdIu4cz0KUs+U3yx0w1vp676RoERp3OEvkT3tb+/jHQ1hjA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/spinbutton@3.7.1': + resolution: {integrity: sha512-Nisah6yzxOC6983u/5ck0w+OQoa3sRKmpDvWpTEX0g2+ZIABOl8ttdSd65XKtxXmXHdK8X1zmrfeGOBfBR3sKA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/ssr@3.9.10': + resolution: {integrity: sha512-hvTm77Pf+pMBhuBm760Li0BVIO38jv1IBws1xFm1NoL26PU+fe+FMW5+VZWyANR6nYL65joaJKZqOdTQMkO9IQ==} + engines: {node: '>= 12'} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/switch@3.7.10': + resolution: {integrity: sha512-j7nrYnqX6H9J8GuqD0kdMECUozeqxeG19A2nsvfaTx3//Q7RhgIR9fqhQdVHW/wgraTlEHNH6AhDzmomBg0TNw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/table@3.17.10': + resolution: {integrity: sha512-xdEeyOzuETkOfAHhZrX7HOIwMUsCUr4rbPvHqdcNqg7Ngla2ck9iulZNAyvOPfFwELuBEd2rz1I9TYRQ2OzSQQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/tabs@3.11.0': + resolution: {integrity: sha512-9Gwo118GHrMXSyteCZL1L/LHLVlGSYkhGgiTL3e/UgnYjHfEfDJVTkV2JikuE2O/4uig52gQRlq5E99axLeE9Q==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/tag@3.8.0': + resolution: {integrity: sha512-sTV6uRKFIFU1aljKb0QjM6fPPnzBuitrbkkCUZCJ0w0RIX1JinZPh96NknNtjFwWmqoROjVNCq51EUd0Hh2SQw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/textfield@3.18.4': + resolution: {integrity: sha512-ts3Vdy2qNOzjCVeO+4RH8FSgTYN2USAMcYFeGbHOriCukVOrvgRsqcDniW7xaT60LgFdlWMJsCusvltSIyo6xw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/toast@3.0.10': + resolution: {integrity: sha512-irW5Cr4msbPo4A4ysjT70MDJbpGCe1h9SkFgdYXBPA4Xbi4jRT7TiEZeIS1I7Hsvp6shAK1Ld/m6NBS0b/gyzg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/toggle@3.12.4': + resolution: {integrity: sha512-yVcl8kEFLsV47aCA22EMPcd/KWoYqPIPSzoKjRD/iWmxcP6iGzSxDjdUgMQojNGY8Q6wL8lUxfRqKBjvl/uezQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/toolbar@3.0.0-beta.23': + resolution: {integrity: sha512-FzvNf2hWtjEwk8F2MBf4qSs6AAR/p2WFSws6kJ4f0SrWXl4wR9VDEwBEUQcIPbWCK2aUsyOjubCh55Cl4t3MoQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/tooltip@3.9.1': + resolution: {integrity: sha512-mvEhqpvF4v/wj9zw3a8bsAEnySutGbxKXXt39s6WvF6dkVfaXfsmV9ahuMCHH//UGh/yidZGLrXX4YVdrgS8lA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/tree@3.1.6': + resolution: {integrity: sha512-igLX+OQrbXCBLrtPWgUevU0iDrgTSAJh1ncHoPzfD/YDcyTDLqKdy2nZhNbJ/IdHCwTyzIknhFJ700K20Ymw9A==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/utils@3.33.0': + resolution: {integrity: sha512-yvz7CMH8d2VjwbSa5nGXqjU031tYhD8ddax95VzJsHSPyqHDEGfxul8RkhGV6oO7bVqZxVs6xY66NIgae+FHjw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/virtualizer@4.1.12': + resolution: {integrity: sha512-va0VAD28nq7rk1vHZvnkq591EbWuDKBwh2NzAEn+zz9JjMtpg4utcihNXECJ1DwMRkpaT6q+KpOE7dSdzTxPBQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/visually-hidden@3.8.30': + resolution: {integrity: sha512-iY44USEU8sJy0NOJ/sTDn3YlspbhHuVG3nx2YYrzfmxbS3i+lNwkCfG8kJ77dtmbuDLIdBGKENjGkbcwz3kiJg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-router/dev@7.13.0': + resolution: {integrity: sha512-0vRfTrS6wIXr9j0STu614Cv2ytMr21evnv1r+DXPv5cJ4q0V2x2kBAXC8TAqEXkpN5vdhbXBlbGQ821zwOfhvg==} + engines: {node: '>=20.0.0'} + hasBin: true + peerDependencies: + '@react-router/serve': ^7.13.0 + '@vitejs/plugin-rsc': ~0.5.7 + react-router: ^7.13.0 + react-server-dom-webpack: ^19.2.3 + typescript: ^5.1.0 + vite: ^5.1.0 || ^6.0.0 || ^7.0.0 + wrangler: ^3.28.2 || ^4.0.0 + peerDependenciesMeta: + '@react-router/serve': + optional: true + '@vitejs/plugin-rsc': + optional: true + react-server-dom-webpack: + optional: true + typescript: + optional: true + wrangler: + optional: true + + '@react-router/node@7.13.0': + resolution: {integrity: sha512-Mhr3fAou19oc/S93tKMIBHwCPfqLpWyWM/m0NWd3pJh/wZin8/9KhAdjwxhYbXw1TrTBZBLDENa35uZ+Y7oh3A==} + engines: {node: '>=20.0.0'} + peerDependencies: + react-router: 7.13.0 + typescript: ^5.1.0 + peerDependenciesMeta: + typescript: + optional: true + + '@react-stately/autocomplete@3.0.0-beta.4': + resolution: {integrity: sha512-K2Uy7XEdseFvgwRQ8CyrYEHMupjVKEszddOapP8deNz4hntYvT1aRm0m+sKa5Kl/4kvg9c/3NZpQcrky/vRZIg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-stately/calendar@3.9.2': + resolution: {integrity: sha512-AQj8/izwb7eY+KFqKcMLI2ygvnbAIwLuQG5KPHgJsMygFqnN4yzXKz5orGqVJnxEXLKiLPteVztx7b5EQobrtw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-stately/checkbox@3.7.4': + resolution: {integrity: sha512-oXHMkK22CWLcmNlunDuu4p52QXYmkpx6es9AjWx/xlh3XLZdJzo/5SANioOH1QvBtwPA/c2KQy+ZBqC21NtMHw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-stately/collections@3.12.9': + resolution: {integrity: sha512-2jywPMhVgMOh0XtutxPqIxFCIiLOnL/GXIrRKoBEo8M3Q24NoMRBavUrn9RTvjqNnec1i/8w1/8sq8cmCKEohA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-stately/color@3.9.4': + resolution: {integrity: sha512-SprAP5STMg6K0jq+A3UoimsvvTCIGItUtWurS/lDRoQJYajFR8IUdz+mekU/GaXzvFhMN32dijOtFcfxnA4cfA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-stately/combobox@3.12.2': + resolution: {integrity: sha512-h4YRmzA+s3aMwUrXm6jyWLN0BWWXUNiodArB1wC24xNdeI7S8O3mxz6G2r3Ne8AE02FXmZXs9SD30Mx5vVVuqQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-stately/data@3.15.1': + resolution: {integrity: sha512-lchubLxCWg1Yswpe9yRYJAjmzP0eTYZe+AQyFJQRIT6axRi9Gs92RIZ7zhwLXxI0vcWpnAWADB9kD4bsos7xww==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-stately/datepicker@3.16.0': + resolution: {integrity: sha512-mYtzKXufFVivrHjmxys3ryJFMPIQNhVqaSItmGnWv3ehxw+0HKBrROf3BFiEN4zP20euoP149ZaR4uNx90kMYw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-stately/disclosure@3.0.10': + resolution: {integrity: sha512-nUistLYMjBDy+yaS5H0y0Dwfcjr12zpIh7vjhQXF4wxIh3D08NRvV1NCQ0LV+IsMej/qoPJvKS4EnXHxBI3GmQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-stately/dnd@3.7.3': + resolution: {integrity: sha512-yBtzAimyYvJWnzP80Scx7l559+43TVSyjaMpUR6/s2IjqD3XoPKgPsv7KaFUmygBTkCBGBFJn404rYgMCOsu3g==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-stately/flags@3.1.2': + resolution: {integrity: sha512-2HjFcZx1MyQXoPqcBGALwWWmgFVUk2TuKVIQxCbRq7fPyWXIl6VHcakCLurdtYC2Iks7zizvz0Idv48MQ38DWg==} + + '@react-stately/form@3.2.3': + resolution: {integrity: sha512-NPvjJtns1Pq9uvqeRJCf8HIdVmOm2ARLYQ2F/sqXj1w5IChJ4oWL4Xzvj29/zBitgE1vVjDhnrnwSfNlHZGX0g==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-stately/grid@3.11.8': + resolution: {integrity: sha512-tCabR5U7ype+uEElS5Chv5n6ntUv3drXa9DwebjO05cFevUmjTkEfYPJWixpgX4UlCCvjdUFgzeQlJF+gCiozg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-stately/layout@4.5.3': + resolution: {integrity: sha512-BDYnvO2AKzvWfxxVM96kif3qCynsA+XcNoQC+T77exH+LLT8zlK9oOdarZXTlok/eZmjs6+5wmjq51PeL6eM5w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-stately/list@3.13.3': + resolution: {integrity: sha512-xN0v7rzhIKshhcshOzx+ZgVngXnGCtMPRdhoDLGaHzQy5YfxvKBMNLCnr5Lm4T1U/kIvHbyzxmr5uwmH8WxoIg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-stately/menu@3.9.10': + resolution: {integrity: sha512-dY9FzjQ+6iNInVujZPyMklDGoSbaoO0yguUnALAY+yfkPAyStEElfm4aXZgRfNKOTNHe9E34oV7qefSYsclvTg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-stately/numberfield@3.10.4': + resolution: {integrity: sha512-EniHHwXOw/Ta0x5j61OvldDAvLoi/8xOo//bzrqwnDvf2/1IKGFMD9CHs7HYhQw+9oNl3Q2V1meOTNPc4PvoMQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-stately/overlays@3.6.22': + resolution: {integrity: sha512-sWBnuy5dqVp8d+1e+ABTRVB3YBcOW86/90pF5PWY44au3bUFXVSUBO2QMdR/6JtojDoPRmrjufonI19/Zs/20w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-stately/radio@3.11.4': + resolution: {integrity: sha512-3svsW5VxJA5/p1vO+Qlxv+7Jq9g7f4rqX9Rbqdfd+pH7ykHaV0CUKkSRMaWfcY8Vgaf2xmcc6dvusPRqKX8T1A==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-stately/searchfield@3.5.18': + resolution: {integrity: sha512-C3/1wOON5oK0QBljj0vSbHm/IWgd29NxB+7zT1JjZcxtbcFxCj4HOxKdnPCT/d8Pojb0YS26QgKzatLZ0NnhgQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-stately/select@3.9.1': + resolution: {integrity: sha512-CJQRqv8Dg+0RRvcig3a2YfY6POJIscDINvidRF31yK6J72rsP01dY3ria9aJjizNDHR9Q5dWFp/z+ii0cOTWIQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-stately/selection@3.20.8': + resolution: {integrity: sha512-V1kRN1NLW+i/3Xv+Q0pN9OzuM0zFEW9mdXOOOq7l+YL6hFjqIjttT2/q4KoyiNV3W0hfoRFSTQ7XCgqnqtwEng==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-stately/slider@3.7.4': + resolution: {integrity: sha512-cSOYSx2nsOQejMg6Ql0+GUpqAiPwRA5teYXUghNvuBDtVxnd4l2rnXs54Ww48tU43xf2+L3kkmMofThjABoEPw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-stately/table@3.15.3': + resolution: {integrity: sha512-W1wR0O/PmdD8hCUFIAelHICjUX/Ii6ZldPlH6EILr9olyGpoCaY7XmnyG7kii1aANuQGBeskjJdXvS6LX/gyDw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-stately/tabs@3.8.8': + resolution: {integrity: sha512-BZImWT+pHZitImRQkoL7jVhTtpGPSra1Rhh4pi8epzwogeqseEIEpuWpQebjQP74r1kfNi/iT2p5Qb31eWfh1Q==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-stately/toast@3.1.3': + resolution: {integrity: sha512-mT9QJKmD523lqFpOp0VWZ6QHZENFK7HrodnNJDVc7g616s5GNmemdlkITV43fSY3tHeThCVvPu+Uzh7RvQ9mpQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-stately/toggle@3.9.4': + resolution: {integrity: sha512-tjWsshRJtHC+PI5NYMlnDlV/BTo1eWq6fmR6x1mXlQfKuKGTJRzhgJyaQ2mc5K+LkifD7fchOhfapHCrRlzwMg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-stately/tooltip@3.5.10': + resolution: {integrity: sha512-GauUdc6Of08Np2iUw4xx/DdgpvszS9CxJWYcRnNyAAGPLQrmniVrpJvb0EUKQTP9sUSci1SlmpvJh4SNZx26Bw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-stately/tree@3.9.5': + resolution: {integrity: sha512-UpvBlzL/MpFdOepDg+cohI/zvw8DEVM8cXY/OZ8tKUXWpew1HpUglwnAI3ivm0L2k9laUIB9siW0g04ZWiH9Lg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-stately/utils@3.11.0': + resolution: {integrity: sha512-8LZpYowJ9eZmmYLpudbo/eclIRnbhWIJZ994ncmlKlouNzKohtM8qTC6B1w1pwUbiwGdUoyzLuQbeaIor5Dvcw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-stately/virtualizer@4.4.5': + resolution: {integrity: sha512-MP33zys3nRYTk/+3BPchxlil9GrwbMksc3XuvNACeZqYEA/oEidsHffgPL+LY0iitKCmQE6pg49MI5HvBuOd2w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/autocomplete@3.0.0-alpha.37': + resolution: {integrity: sha512-9KkL/UEUHIqp4OD4PffeZPiRV93ZBKq84sBrzTbTIPN+os+N+Lfz45Mg67NM2RumR/KQSVE0gZp7OA0eOvxPYA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/breadcrumbs@3.7.18': + resolution: {integrity: sha512-zwltqx2XSELBRQeuCraxrdfT4fpIOVu6eQXsZ4RhWlsT7DLhzj3pUGkxdPDAMfYaVdyNBqc+nhiAnCwz6tUJ8A==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/button@3.15.0': + resolution: {integrity: sha512-X/K2/Oeuq7Hi8nMIzx4/YlZuvWFiSOHZt27p4HmThCnNO/9IDFPmvPrpkYjWN5eN9Nuk+P5vZUb4A7QJgYpvGA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/calendar@3.8.2': + resolution: {integrity: sha512-QbPFhvBQfrsz3x1Nnatr5SL+8XtbxvP4obESFuDrKmsqaaAv+jG5vwLiPTKp6Z3L+MWkCvKavBPuW+byhq+69A==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/checkbox@3.10.3': + resolution: {integrity: sha512-Xw4jHG7uK352Wc18XXzdzmtr3Xjg8d2tPoBGNgsw39f92EY2UpoDAPHxYR0BaDe04lGfAn6YwVivI4OGVbjXIg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/color@3.1.3': + resolution: {integrity: sha512-XM0x8iZpAf036w9qceD2RFroehLxKRwkVer7EvdJNs8K8iUN8TuhCagzsomiSJtyYh5MFysEVQ2ir85toiAFyw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/combobox@3.13.11': + resolution: {integrity: sha512-5/tdmTAvqPpiWzEeaV7uLLSbSTkkoQ1mVz6NfKMPuw4ZBkY3lPc9JDkkQjY/JrquZao+KY4Dx8ZIoS0NqkrFrw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/datepicker@3.13.4': + resolution: {integrity: sha512-B5sAPoYZfluDBpgVK3ADlHbXBKRkFCQFO18Bs091IvRRwqzfoO/uf+/9UpXMw+BEF4pciLf0/kdiVQTvI3MzlA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/dialog@3.5.23': + resolution: {integrity: sha512-3tMzweYuaDOaufF5tZPMgXSA0pPFJNgdg89YRITh0wMXMG0pm+tAKVQJL1TSLLhOiLCEL08V8M/AK67dBdr2IA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/form@3.7.17': + resolution: {integrity: sha512-wBFRJ3jehHw2X2Td/KwUNxFWOqXCK7OTGG9A+W3ZI3nDGyflHQpIjqKCKV1jRySs6sv7huiPckJ7ScDleCKf7w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/grid@3.3.7': + resolution: {integrity: sha512-riET3xeKPTcRWQy6hYCMxdbdL3yubPY5Ow66b2GA2rEqoYvmDBniYXAM2Oh+q9s+YgnAP7qJK++ym8NljvHiLA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/link@3.6.6': + resolution: {integrity: sha512-M6WXxUJFmiF6GNu7xUH0uHj0jsorFBN6npkfSCNM4puStC8NbUT2+ZPySQyZXCoHMQ89g6qZ6vCc8QduVkTE7Q==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/listbox@3.7.5': + resolution: {integrity: sha512-Cn+yNip+YZBaGzu+z5xPNgmfSupnLl+li7uG5hRc+EArkk8/G42myRXz6M8wPrLM1bFAq3r85tAbyoXVmKG5Jw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/menu@3.10.6': + resolution: {integrity: sha512-OJTznQ4xE/VddBJU+HO4x5tceSOdyQhiHA1bREE1aHl+PcgHOUZLdMjXp1zFaGF16HhItHJaxpifJ4hzf4hWQA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/meter@3.4.14': + resolution: {integrity: sha512-rNw0Do2AM3zLGZ0pSWweViuddg1uW99PWzE6RQXE8nsTHTeiwDZt9SYGdObEnjd+nJ3YzemqekG0Kqt93iNBcA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/numberfield@3.8.17': + resolution: {integrity: sha512-Q9n24OaSMXrebMowbtowmHLNclknN3XkcBIaYMwA2BIGIl+fZFnI8MERM0pG87W+wki6FepDExsDW9YxQF4pnw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/overlays@3.9.3': + resolution: {integrity: sha512-LzetThNNk8T26pQRbs1I7+isuFhdFYREy7wJCsZmbB0FnZgCukGTfOtThZWv+ry11veyVJiX68jfl4SV6ACTWA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/progress@3.5.17': + resolution: {integrity: sha512-JtiGlek6QS04bFrRj1WfChjPNr7+3/+pd6yZayXGUkQUPHt1Z/cFnv3QZ/tSQTdUt1XXmjnCak9ZH9JQBqe64Q==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/radio@3.9.3': + resolution: {integrity: sha512-w2BrMGIiZxYXPCnnB2NQyifwE/rRFMIW87MyawrKO9zPSbnDkqLIHAAtqmlNk2zkz1ZEWjk9opNsuztjP7D4sA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/searchfield@3.6.7': + resolution: {integrity: sha512-POo3spZcYD14aqo0f4eNbymJ8w9EKrlu0pOOjYYWI2P0GUSRmib9cBA9xZFhvRGHuNlHo3ePjeFitYQI7L3g1g==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/select@3.12.1': + resolution: {integrity: sha512-PtIUymvQNIIzgr+piJtK/8gbH7akWtbswIbfoADPSxtZEd1/vfUIO0s8c750s3XYNlmx/4DrhugQsLYwgC35yg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/shared@3.33.0': + resolution: {integrity: sha512-xuUpP6MyuPmJtzNOqF5pzFUIHH2YogyOQfUQHag54PRmWB7AbjuGWBUv0l1UDmz6+AbzAYGmDVAzcRDOu2PFpw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/slider@3.8.3': + resolution: {integrity: sha512-HCDegYiUA27CcJKvFwgpR8ktFKf2nAirXqQEgVPV4uxk6JIeiRx41yqM/xPJGfmaqa7BARYARLT41yN2V8Kadg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/switch@3.5.16': + resolution: {integrity: sha512-6fynclkyg0wGHo3f1bwk4Z+gZZEg0Z63iP5TFhgHWdZ8W+Uq6F3u7V4IgQpuJ2NleL1c2jy2/CKdS9v06ac2Og==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/table@3.13.5': + resolution: {integrity: sha512-4/CixlNmXSuJuX2IKuUlgNd/dEgNh3WvfE/bdwuI1t5JBdShP9tHIzSkgZbrzE2xX46NeA2xq4vXNO5kBv+QDA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/tabs@3.3.21': + resolution: {integrity: sha512-Dq9bKI62rHoI4LGGcBGlZ5s0aSwB0G4Y8o0r7hQZvf1eZWc9fmqdAdTTaGG/RUyhMIGRYWl5RRUBUuC5RmaO6w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/textfield@3.12.7': + resolution: {integrity: sha512-ddiacsS6sLFtAn2/fym7lR8nbdsLgPfelNDcsDqHiu6XUHh5TCNe8ItXHFaIiyfnKTH8uJqZrSli4wfAYNfMsw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/tooltip@3.5.1': + resolution: {integrity: sha512-h6xOAWbWUJKs9CzcCyzSPATLHq7W5dS866HkXLrtCrRDShLuzQnojZnctD2tKtNt17990hjnOhl36GUBuO5kyw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@remix-run/node-fetch-server@0.13.0': + resolution: {integrity: sha512-1EsNo0ZpgXu/90AWoRZf/oE3RVTUS80tiTUpt+hv5pjtAkw7icN4WskDwz/KdAw5ARbJLMhZBrO1NqThmy/McA==} + + '@rollup/rollup-android-arm-eabi@4.57.1': + resolution: {integrity: sha512-A6ehUVSiSaaliTxai040ZpZ2zTevHYbvu/lDoeAteHI8QnaosIzm4qwtezfRg1jOYaUmnzLX1AOD6Z+UJjtifg==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.57.1': + resolution: {integrity: sha512-dQaAddCY9YgkFHZcFNS/606Exo8vcLHwArFZ7vxXq4rigo2bb494/xKMMwRRQW6ug7Js6yXmBZhSBRuBvCCQ3w==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.57.1': + resolution: {integrity: sha512-crNPrwJOrRxagUYeMn/DZwqN88SDmwaJ8Cvi/TN1HnWBU7GwknckyosC2gd0IqYRsHDEnXf328o9/HC6OkPgOg==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.57.1': + resolution: {integrity: sha512-Ji8g8ChVbKrhFtig5QBV7iMaJrGtpHelkB3lsaKzadFBe58gmjfGXAOfI5FV0lYMH8wiqsxKQ1C9B0YTRXVy4w==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.57.1': + resolution: {integrity: sha512-R+/WwhsjmwodAcz65guCGFRkMb4gKWTcIeLy60JJQbXrJ97BOXHxnkPFrP+YwFlaS0m+uWJTstrUA9o+UchFug==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.57.1': + resolution: {integrity: sha512-IEQTCHeiTOnAUC3IDQdzRAGj3jOAYNr9kBguI7MQAAZK3caezRrg0GxAb6Hchg4lxdZEI5Oq3iov/w/hnFWY9Q==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.57.1': + resolution: {integrity: sha512-F8sWbhZ7tyuEfsmOxwc2giKDQzN3+kuBLPwwZGyVkLlKGdV1nvnNwYD0fKQ8+XS6hp9nY7B+ZeK01EBUE7aHaw==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.57.1': + resolution: {integrity: sha512-rGfNUfn0GIeXtBP1wL5MnzSj98+PZe/AXaGBCRmT0ts80lU5CATYGxXukeTX39XBKsxzFpEeK+Mrp9faXOlmrw==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.57.1': + resolution: {integrity: sha512-MMtej3YHWeg/0klK2Qodf3yrNzz6CGjo2UntLvk2RSPlhzgLvYEB3frRvbEF2wRKh1Z2fDIg9KRPe1fawv7C+g==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.57.1': + resolution: {integrity: sha512-1a/qhaaOXhqXGpMFMET9VqwZakkljWHLmZOX48R0I/YLbhdxr1m4gtG1Hq7++VhVUmf+L3sTAf9op4JlhQ5u1Q==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-loong64-gnu@4.57.1': + resolution: {integrity: sha512-QWO6RQTZ/cqYtJMtxhkRkidoNGXc7ERPbZN7dVW5SdURuLeVU7lwKMpo18XdcmpWYd0qsP1bwKPf7DNSUinhvA==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-loong64-musl@4.57.1': + resolution: {integrity: sha512-xpObYIf+8gprgWaPP32xiN5RVTi/s5FCR+XMXSKmhfoJjrpRAjCuuqQXyxUa/eJTdAE6eJ+KDKaoEqjZQxh3Gw==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-ppc64-gnu@4.57.1': + resolution: {integrity: sha512-4BrCgrpZo4hvzMDKRqEaW1zeecScDCR+2nZ86ATLhAoJ5FQ+lbHVD3ttKe74/c7tNT9c6F2viwB3ufwp01Oh2w==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-ppc64-musl@4.57.1': + resolution: {integrity: sha512-NOlUuzesGauESAyEYFSe3QTUguL+lvrN1HtwEEsU2rOwdUDeTMJdO5dUYl/2hKf9jWydJrO9OL/XSSf65R5+Xw==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.57.1': + resolution: {integrity: sha512-ptA88htVp0AwUUqhVghwDIKlvJMD/fmL/wrQj99PRHFRAG6Z5nbWoWG4o81Nt9FT+IuqUQi+L31ZKAFeJ5Is+A==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-riscv64-musl@4.57.1': + resolution: {integrity: sha512-S51t7aMMTNdmAMPpBg7OOsTdn4tySRQvklmL3RpDRyknk87+Sp3xaumlatU+ppQ+5raY7sSTcC2beGgvhENfuw==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.57.1': + resolution: {integrity: sha512-Bl00OFnVFkL82FHbEqy3k5CUCKH6OEJL54KCyx2oqsmZnFTR8IoNqBF+mjQVcRCT5sB6yOvK8A37LNm/kPJiZg==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.57.1': + resolution: {integrity: sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.57.1': + resolution: {integrity: sha512-HFps0JeGtuOR2convgRRkHCekD7j+gdAuXM+/i6kGzQtFhlCtQkpwtNzkNj6QhCDp7DRJ7+qC/1Vg2jt5iSOFw==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-openbsd-x64@4.57.1': + resolution: {integrity: sha512-H+hXEv9gdVQuDTgnqD+SQffoWoc0Of59AStSzTEj/feWTBAnSfSD3+Dql1ZruJQxmykT/JVY0dE8Ka7z0DH1hw==} + cpu: [x64] + os: [openbsd] + + '@rollup/rollup-openharmony-arm64@4.57.1': + resolution: {integrity: sha512-4wYoDpNg6o/oPximyc/NG+mYUejZrCU2q+2w6YZqrAs2UcNUChIZXjtafAiiZSUc7On8v5NyNj34Kzj/Ltk6dQ==} + cpu: [arm64] + os: [openharmony] + + '@rollup/rollup-win32-arm64-msvc@4.57.1': + resolution: {integrity: sha512-O54mtsV/6LW3P8qdTcamQmuC990HDfR71lo44oZMZlXU4tzLrbvTii87Ni9opq60ds0YzuAlEr/GNwuNluZyMQ==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.57.1': + resolution: {integrity: sha512-P3dLS+IerxCT/7D2q2FYcRdWRl22dNbrbBEtxdWhXrfIMPP9lQhb5h4Du04mdl5Woq05jVCDPCMF7Ub0NAjIew==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-gnu@4.57.1': + resolution: {integrity: sha512-VMBH2eOOaKGtIJYleXsi2B8CPVADrh+TyNxJ4mWPnKfLB/DBUmzW+5m1xUrcwWoMfSLagIRpjUFeW5CO5hyciQ==} + cpu: [x64] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.57.1': + resolution: {integrity: sha512-mxRFDdHIWRxg3UfIIAwCm6NzvxG0jDX/wBN6KsQFTvKFqqg9vTrWUE68qEjHt19A5wwx5X5aUi2zuZT7YR0jrA==} + cpu: [x64] + os: [win32] + + '@swc/helpers@0.5.18': + resolution: {integrity: sha512-TXTnIcNJQEKwThMMqBXsZ4VGAza6bvN4pa41Rkqoio6QBKMvo+5lexeTMScGCIxtzgQJzElcvIltani+adC5PQ==} + + '@tailwindcss/node@4.2.0': + resolution: {integrity: sha512-Yv+fn/o2OmL5fh/Ir62VXItdShnUxfpkMA4Y7jdeC8O81WPB8Kf6TT6GSHvnqgSwDzlB5iT7kDpeXxLsUS0T6Q==} + + '@tailwindcss/oxide-android-arm64@4.2.0': + resolution: {integrity: sha512-F0QkHAVaW/JNBWl4CEKWdZ9PMb0khw5DCELAOnu+RtjAfx5Zgw+gqCHFvqg3AirU1IAd181fwOtJQ5I8Yx5wtw==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [android] + + '@tailwindcss/oxide-darwin-arm64@4.2.0': + resolution: {integrity: sha512-I0QylkXsBsJMZ4nkUNSR04p6+UptjcwhcVo3Zu828ikiEqHjVmQL9RuQ6uT/cVIiKpvtVA25msu/eRV97JeNSA==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [darwin] + + '@tailwindcss/oxide-darwin-x64@4.2.0': + resolution: {integrity: sha512-6TmQIn4p09PBrmnkvbYQ0wbZhLtbaksCDx7Y7R3FYYx0yxNA7xg5KP7dowmQ3d2JVdabIHvs3Hx4K3d5uCf8xg==} + engines: {node: '>= 20'} + cpu: [x64] + os: [darwin] + + '@tailwindcss/oxide-freebsd-x64@4.2.0': + resolution: {integrity: sha512-qBudxDvAa2QwGlq9y7VIzhTvp2mLJ6nD/G8/tI70DCDoneaUeLWBJaPcbfzqRIWraj+o969aDQKvKW9dvkUizw==} + engines: {node: '>= 20'} + cpu: [x64] + os: [freebsd] + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.0': + resolution: {integrity: sha512-7XKkitpy5NIjFZNUQPeUyNJNJn1CJeV7rmMR+exHfTuOsg8rxIO9eNV5TSEnqRcaOK77zQpsyUkBWmPy8FgdSg==} + engines: {node: '>= 20'} + cpu: [arm] + os: [linux] + + '@tailwindcss/oxide-linux-arm64-gnu@4.2.0': + resolution: {integrity: sha512-Mff5a5Q3WoQR01pGU1gr29hHM1N93xYrKkGXfPw/aRtK4bOc331Ho4Tgfsm5WDGvpevqMpdlkCojT3qlCQbCpA==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [linux] + + '@tailwindcss/oxide-linux-arm64-musl@4.2.0': + resolution: {integrity: sha512-XKcSStleEVnbH6W/9DHzZv1YhjE4eSS6zOu2eRtYAIh7aV4o3vIBs+t/B15xlqoxt6ef/0uiqJVB6hkHjWD/0A==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [linux] + + '@tailwindcss/oxide-linux-x64-gnu@4.2.0': + resolution: {integrity: sha512-/hlXCBqn9K6fi7eAM0RsobHwJYa5V/xzWspVTzxnX+Ft9v6n+30Pz8+RxCn7sQL/vRHHLS30iQPrHQunu6/vJA==} + engines: {node: '>= 20'} + cpu: [x64] + os: [linux] + + '@tailwindcss/oxide-linux-x64-musl@4.2.0': + resolution: {integrity: sha512-lKUaygq4G7sWkhQbfdRRBkaq4LY39IriqBQ+Gk6l5nKq6Ay2M2ZZb1tlIyRNgZKS8cbErTwuYSor0IIULC0SHw==} + engines: {node: '>= 20'} + cpu: [x64] + os: [linux] + + '@tailwindcss/oxide-wasm32-wasi@4.2.0': + resolution: {integrity: sha512-xuDjhAsFdUuFP5W9Ze4k/o4AskUtI8bcAGU4puTYprr89QaYFmhYOPfP+d1pH+k9ets6RoE23BXZM1X1jJqoyw==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + bundledDependencies: + - '@napi-rs/wasm-runtime' + - '@emnapi/core' + - '@emnapi/runtime' + - '@tybys/wasm-util' + - '@emnapi/wasi-threads' + - tslib + + '@tailwindcss/oxide-win32-arm64-msvc@4.2.0': + resolution: {integrity: sha512-2UU/15y1sWDEDNJXxEIrfWKC2Yb4YgIW5Xz2fKFqGzFWfoMHWFlfa1EJlGO2Xzjkq/tvSarh9ZTjvbxqWvLLXA==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [win32] + + '@tailwindcss/oxide-win32-x64-msvc@4.2.0': + resolution: {integrity: sha512-CrFadmFoc+z76EV6LPG1jx6XceDsaCG3lFhyLNo/bV9ByPrE+FnBPckXQVP4XRkN76h3Fjt/a+5Er/oA/nCBvQ==} + engines: {node: '>= 20'} + cpu: [x64] + os: [win32] + + '@tailwindcss/oxide@4.2.0': + resolution: {integrity: sha512-AZqQzADaj742oqn2xjl5JbIOzZB/DGCYF/7bpvhA8KvjUj9HJkag6bBuwZvH1ps6dfgxNHyuJVlzSr2VpMgdTQ==} + engines: {node: '>= 20'} + + '@tailwindcss/vite@4.2.0': + resolution: {integrity: sha512-da9mFCaHpoOgtQiWtDGIikTrSpUFBtIZCG3jy/u2BGV+l/X1/pbxzmIUxNt6JWm19N3WtGi4KlJdSH/Si83WOA==} + peerDependencies: + vite: ^5.2.0 || ^6 || ^7 + + '@tauri-apps/api@2.10.1': + resolution: {integrity: sha512-hKL/jWf293UDSUN09rR69hrToyIXBb8CjGaWC7gfinvnQrBVvnLr08FeFi38gxtugAVyVcTa5/FD/Xnkb1siBw==} + + '@tauri-apps/cli-darwin-arm64@2.10.0': + resolution: {integrity: sha512-avqHD4HRjrMamE/7R/kzJPcAJnZs0IIS+1nkDP5b+TNBn3py7N2aIo9LIpy+VQq0AkN8G5dDpZtOOBkmWt/zjA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@tauri-apps/cli-darwin-x64@2.10.0': + resolution: {integrity: sha512-keDmlvJRStzVFjZTd0xYkBONLtgBC9eMTpmXnBXzsHuawV2q9PvDo2x6D5mhuoMVrJ9QWjgaPKBBCFks4dK71Q==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@tauri-apps/cli-linux-arm-gnueabihf@2.10.0': + resolution: {integrity: sha512-e5u0VfLZsMAC9iHaOEANumgl6lfnJx0Dtjkd8IJpysZ8jp0tJ6wrIkto2OzQgzcYyRCKgX72aKE0PFgZputA8g==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + + '@tauri-apps/cli-linux-arm64-gnu@2.10.0': + resolution: {integrity: sha512-YrYYk2dfmBs5m+OIMCrb+JH/oo+4FtlpcrTCgiFYc7vcs6m3QDd1TTyWu0u01ewsCtK2kOdluhr/zKku+KP7HA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@tauri-apps/cli-linux-arm64-musl@2.10.0': + resolution: {integrity: sha512-GUoPdVJmrJRIXFfW3Rkt+eGK9ygOdyISACZfC/bCSfOnGt8kNdQIQr5WRH9QUaTVFIwxMlQyV3m+yXYP+xhSVA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@tauri-apps/cli-linux-riscv64-gnu@2.10.0': + resolution: {integrity: sha512-JO7s3TlSxshwsoKNCDkyvsx5gw2QAs/Y2GbR5UE2d5kkU138ATKoPOtxn8G1fFT1aDW4LH0rYAAfBpGkDyJJnw==} + engines: {node: '>= 10'} + cpu: [riscv64] + os: [linux] + + '@tauri-apps/cli-linux-x64-gnu@2.10.0': + resolution: {integrity: sha512-Uvh4SUUp4A6DVRSMWjelww0GnZI3PlVy7VS+DRF5napKuIehVjGl9XD0uKoCoxwAQBLctvipyEK+pDXpJeoHng==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@tauri-apps/cli-linux-x64-musl@2.10.0': + resolution: {integrity: sha512-AP0KRK6bJuTpQ8kMNWvhIpKUkQJfcPFeba7QshOQZjJ8wOS6emwTN4K5g/d3AbCMo0RRdnZWwu67MlmtJyxC1Q==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@tauri-apps/cli-win32-arm64-msvc@2.10.0': + resolution: {integrity: sha512-97DXVU3dJystrq7W41IX+82JEorLNY+3+ECYxvXWqkq7DBN6FsA08x/EFGE8N/b0LTOui9X2dvpGGoeZKKV08g==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@tauri-apps/cli-win32-ia32-msvc@2.10.0': + resolution: {integrity: sha512-EHyQ1iwrWy1CwMalEm9z2a6L5isQ121pe7FcA2xe4VWMJp+GHSDDGvbTv/OPdkt2Lyr7DAZBpZHM6nvlHXEc4A==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + + '@tauri-apps/cli-win32-x64-msvc@2.10.0': + resolution: {integrity: sha512-NTpyQxkpzGmU6ceWBTY2xRIEaS0ZLbVx1HE1zTA3TY/pV3+cPoPPOs+7YScr4IMzXMtOw7tLw5LEXo5oIG3qaQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@tauri-apps/cli@2.10.0': + resolution: {integrity: sha512-ZwT0T+7bw4+DPCSWzmviwq5XbXlM0cNoleDKOYPFYqcZqeKY31KlpoMW/MOON/tOFBPgi31a2v3w9gliqwL2+Q==} + engines: {node: '>= 10'} + hasBin: true + + '@tauri-apps/plugin-opener@2.5.3': + resolution: {integrity: sha512-CCcUltXMOfUEArbf3db3kCE7Ggy1ExBEBl51Ko2ODJ6GDYHRp1nSNlQm5uNCFY5k7/ufaK5Ib3Du/Zir19IYQQ==} + + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + + '@types/react-dom@19.2.3': + resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==} + peerDependencies: + '@types/react': ^19.2.0 + + '@types/react@19.2.14': + resolution: {integrity: sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==} + + arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + + babel-dead-code-elimination@1.0.12: + resolution: {integrity: sha512-GERT7L2TiYcYDtYk1IpD+ASAYXjKbLTDPhBtYj7X1NuRMDTMtAx9kyBenub1Ev41lo91OHCKdmP+egTDmfQ7Ig==} + + baseline-browser-mapping@2.9.19: + resolution: {integrity: sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==} + hasBin: true + + browserslist@4.28.1: + resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + + caniuse-lite@1.0.30001770: + resolution: {integrity: sha512-x/2CLQ1jHENRbHg5PSId2sXq1CIO1CISvwWAj027ltMVG2UNgW+w9oH2+HzgEIRFembL8bUlXtfbBHR1fCg2xw==} + + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + engines: {node: '>= 14.16.0'} + + client-only@0.0.1: + resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + + confbox@0.2.4: + resolution: {integrity: sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + cookie@1.1.1: + resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==} + engines: {node: '>=18'} + + csstype@3.2.3: + resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decimal.js@10.6.0: + resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==} + + dedent@1.7.1: + resolution: {integrity: sha512-9JmrhGZpOlEgOLdQgSm0zxFaYoQon408V1v49aqTWuXENVlnCuY9JBZcXZiCsZQWDjTm5Qf/nIvAy77mXDAjEg==} + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + + detect-libc@2.1.2: + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} + engines: {node: '>=8'} + + electron-to-chromium@1.5.286: + resolution: {integrity: sha512-9tfDXhJ4RKFNerfjdCcZfufu49vg620741MNs26a9+bhLThdB+plgMeou98CAaHu/WATj2iHOOHTp1hWtABj2A==} + + enhanced-resolve@5.19.0: + resolution: {integrity: sha512-phv3E1Xl4tQOShqSte26C7Fl84EwUdZsyOuSSk9qtAGyyQs2s3jJzComh+Abf4g187lUUAvH+H26omrqia2aGg==} + engines: {node: '>=10.13.0'} + + es-module-lexer@1.7.0: + resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} + + esbuild@0.27.3: + resolution: {integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==} + engines: {node: '>=18'} + hasBin: true + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + exit-hook@2.2.1: + resolution: {integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==} + engines: {node: '>=6'} + + exsolve@1.0.8: + resolution: {integrity: sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==} + + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + globrex@0.1.2: + resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + intl-messageformat@10.7.18: + resolution: {integrity: sha512-m3Ofv/X/tV8Y3tHXLohcuVuhWKo7BBq62cqY15etqmLxg2DZ34AGGgQDeR+SCta2+zICb1NX83af0GJmbQ1++g==} + + isbot@5.1.35: + resolution: {integrity: sha512-waFfC72ZNfwLLuJ2iLaoVaqcNo+CAaLR7xCpAn0Y5WfGzkNHv7ZN39Vbi1y+kb+Zs46XHOX3tZNExroFUPX+Kg==} + engines: {node: '>=18'} + + jiti@2.6.1: + resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} + hasBin: true + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + jsesc@3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} + hasBin: true + + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + lightningcss-android-arm64@1.31.1: + resolution: {integrity: sha512-HXJF3x8w9nQ4jbXRiNppBCqeZPIAfUo8zE/kOEGbW5NZvGc/K7nMxbhIr+YlFlHW5mpbg/YFPdbnCh1wAXCKFg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [android] + + lightningcss-darwin-arm64@1.31.1: + resolution: {integrity: sha512-02uTEqf3vIfNMq3h/z2cJfcOXnQ0GRwQrkmPafhueLb2h7mqEidiCzkE4gBMEH65abHRiQvhdcQ+aP0D0g67sg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] + + lightningcss-darwin-x64@1.31.1: + resolution: {integrity: sha512-1ObhyoCY+tGxtsz1lSx5NXCj3nirk0Y0kB/g8B8DT+sSx4G9djitg9ejFnjb3gJNWo7qXH4DIy2SUHvpoFwfTA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + + lightningcss-freebsd-x64@1.31.1: + resolution: {integrity: sha512-1RINmQKAItO6ISxYgPwszQE1BrsVU5aB45ho6O42mu96UiZBxEXsuQ7cJW4zs4CEodPUioj/QrXW1r9pLUM74A==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + + lightningcss-linux-arm-gnueabihf@1.31.1: + resolution: {integrity: sha512-OOCm2//MZJ87CdDK62rZIu+aw9gBv4azMJuA8/KB74wmfS3lnC4yoPHm0uXZ/dvNNHmnZnB8XLAZzObeG0nS1g==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + + lightningcss-linux-arm64-gnu@1.31.1: + resolution: {integrity: sha512-WKyLWztD71rTnou4xAD5kQT+982wvca7E6QoLpoawZ1gP9JM0GJj4Tp5jMUh9B3AitHbRZ2/H3W5xQmdEOUlLg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-arm64-musl@1.31.1: + resolution: {integrity: sha512-mVZ7Pg2zIbe3XlNbZJdjs86YViQFoJSpc41CbVmKBPiGmC4YrfeOyz65ms2qpAobVd7WQsbW4PdsSJEMymyIMg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-x64-gnu@1.31.1: + resolution: {integrity: sha512-xGlFWRMl+0KvUhgySdIaReQdB4FNudfUTARn7q0hh/V67PVGCs3ADFjw+6++kG1RNd0zdGRlEKa+T13/tQjPMA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-linux-x64-musl@1.31.1: + resolution: {integrity: sha512-eowF8PrKHw9LpoZii5tdZwnBcYDxRw2rRCyvAXLi34iyeYfqCQNA9rmUM0ce62NlPhCvof1+9ivRaTY6pSKDaA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-win32-arm64-msvc@1.31.1: + resolution: {integrity: sha512-aJReEbSEQzx1uBlQizAOBSjcmr9dCdL3XuC/6HLXAxmtErsj2ICo5yYggg1qOODQMtnjNQv2UHb9NpOuFtYe4w==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [win32] + + lightningcss-win32-x64-msvc@1.31.1: + resolution: {integrity: sha512-I9aiFrbd7oYHwlnQDqr1Roz+fTz61oDDJX7n9tYF9FJymH1cIN1DtKw3iYt6b8WZgEjoNwVSncwF4wx/ZedMhw==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + + lightningcss@1.31.1: + resolution: {integrity: sha512-l51N2r93WmGUye3WuFoN5k10zyvrVs0qfKBhyC5ogUQ6Ew6JUSswh78mbSO+IU3nTWsyOArqPCcShdQSadghBQ==} + engines: {node: '>= 12.0.0'} + + lodash@4.17.23: + resolution: {integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + magic-string@0.30.21: + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + node-releases@2.0.27: + resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} + + p-map@7.0.4: + resolution: {integrity: sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==} + engines: {node: '>=18'} + + pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + engines: {node: '>=12'} + + pkg-types@2.3.0: + resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==} + + postcss@8.5.6: + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} + engines: {node: ^10 || ^12 || >=14} + + prettier@3.8.1: + resolution: {integrity: sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==} + engines: {node: '>=14'} + hasBin: true + + react-aria-components@1.15.1: + resolution: {integrity: sha512-irGhZ+vBvoY9xJHf/qzPLLwFZ8cBUrYwPERGhgjE62dy/RXMUiEW+1DeTHz0OvtjbvFbhNp/I7XM9IaBvmLALg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + react-aria@3.46.0: + resolution: {integrity: sha512-We0diSsMK35jw53JFjgF9w8obBjehAUI/TRiynnzSrjRd9eoHYQcecHlptke/HEFxvya/Gcm+LA21Im1+qnIeQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + react-dom@19.2.4: + resolution: {integrity: sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==} + peerDependencies: + react: ^19.2.4 + + react-refresh@0.14.2: + resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} + engines: {node: '>=0.10.0'} + + react-router@7.13.0: + resolution: {integrity: sha512-PZgus8ETambRT17BUm/LL8lX3Of+oiLaPuVTRH3l1eLvSPpKO3AvhAEb5N7ihAFZQrYDqkvvWfFh9p0z9VsjLw==} + engines: {node: '>=20.0.0'} + peerDependencies: + react: '>=18' + react-dom: '>=18' + peerDependenciesMeta: + react-dom: + optional: true + + react-stately@3.44.0: + resolution: {integrity: sha512-Il3trIp2Mo1SSa9PhQFraqOpC74zEFmwuMAlu5Fj3qdtihJOKOFqoyDl7ALRrVfnvCkau6rui155d/NMKvd+RQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + react@19.2.4: + resolution: {integrity: sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==} + engines: {node: '>=0.10.0'} + + readdirp@4.1.2: + resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} + engines: {node: '>= 14.18.0'} + + rollup@4.57.1: + resolution: {integrity: sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + scheduler@0.27.0: + resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.7.4: + resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} + engines: {node: '>=10'} + hasBin: true + + set-cookie-parser@2.7.2: + resolution: {integrity: sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + tailwindcss@4.2.0: + resolution: {integrity: sha512-yYzTZ4++b7fNYxFfpnberEEKu43w44aqDMNM9MHMmcKuCH7lL8jJ4yJ7LGHv7rSwiqM0nkiobF9I6cLlpS2P7Q==} + + tapable@2.3.0: + resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} + engines: {node: '>=6'} + + tiny-invariant@1.3.3: + resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + engines: {node: '>=12.0.0'} + + tsconfck@3.1.6: + resolution: {integrity: sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==} + engines: {node: ^18 || >=20} + hasBin: true + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + typescript@5.8.3: + resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} + engines: {node: '>=14.17'} + hasBin: true + + update-browserslist-db@1.2.3: + resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + use-sync-external-store@1.6.0: + resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + valibot@1.2.0: + resolution: {integrity: sha512-mm1rxUsmOxzrwnX5arGS+U4T25RdvpPjPN4yR0u9pUBov9+zGVtO84tif1eY4r6zWxVxu3KzIyknJy3rxfRZZg==} + peerDependencies: + typescript: '>=5' + peerDependenciesMeta: + typescript: + optional: true + + vite-node@3.2.4: + resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + + vite-tsconfig-paths@6.1.1: + resolution: {integrity: sha512-2cihq7zliibCCZ8P9cKJrQBkfgdvcFkOOc3Y02o3GWUDLgqjWsZudaoiuOwO/gzTzy17cS5F7ZPo4bsnS4DGkg==} + peerDependencies: + vite: '*' + + vite@7.3.1: + resolution: {integrity: sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@types/node': ^20.19.0 || >=22.12.0 + jiti: '>=1.21.0' + less: ^4.0.0 + lightningcss: ^1.21.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + +snapshots: + + '@babel/code-frame@7.29.0': + dependencies: + '@babel/helper-validator-identifier': 7.28.5 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/compat-data@7.29.0': {} + + '@babel/core@7.29.0': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) + '@babel/helpers': 7.28.6 + '@babel/parser': 7.29.0 + '@babel/template': 7.28.6 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + '@jridgewell/remapping': 2.3.5 + convert-source-map: 2.0.0 + debug: 4.4.3 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.29.1': + dependencies: + '@babel/parser': 7.29.0 + '@babel/types': 7.29.0 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + jsesc: 3.1.0 + + '@babel/helper-annotate-as-pure@7.27.3': + dependencies: + '@babel/types': 7.29.0 + + '@babel/helper-compilation-targets@7.28.6': + dependencies: + '@babel/compat-data': 7.29.0 + '@babel/helper-validator-option': 7.27.1 + browserslist: 4.28.1 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-create-class-features-plugin@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-member-expression-to-functions': 7.28.5 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0) + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/traverse': 7.29.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-globals@7.28.0': {} + + '@babel/helper-member-expression-to-functions@7.28.5': + dependencies: + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-imports@7.28.6': + dependencies: + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-validator-identifier': 7.28.5 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-optimise-call-expression@7.27.1': + dependencies: + '@babel/types': 7.29.0 + + '@babel/helper-plugin-utils@7.28.6': {} + + '@babel/helper-replace-supers@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-member-expression-to-functions': 7.28.5 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-skip-transparent-expression-wrappers@7.27.1': + dependencies: + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-string-parser@7.27.1': {} + + '@babel/helper-validator-identifier@7.28.5': {} + + '@babel/helper-validator-option@7.27.1': {} + + '@babel/helpers@7.28.6': + dependencies: + '@babel/template': 7.28.6 + '@babel/types': 7.29.0 + + '@babel/parser@7.29.0': + dependencies: + '@babel/types': 7.29.0 + + '@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-typescript@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-modules-commonjs@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-typescript@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + '@babel/preset-typescript@7.28.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-validator-option': 7.27.1 + '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + '@babel/template@7.28.6': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/parser': 7.29.0 + '@babel/types': 7.29.0 + + '@babel/traverse@7.29.0': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/helper-globals': 7.28.0 + '@babel/parser': 7.29.0 + '@babel/template': 7.28.6 + '@babel/types': 7.29.0 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.29.0': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 + + '@biomejs/biome@2.4.2': + optionalDependencies: + '@biomejs/cli-darwin-arm64': 2.4.2 + '@biomejs/cli-darwin-x64': 2.4.2 + '@biomejs/cli-linux-arm64': 2.4.2 + '@biomejs/cli-linux-arm64-musl': 2.4.2 + '@biomejs/cli-linux-x64': 2.4.2 + '@biomejs/cli-linux-x64-musl': 2.4.2 + '@biomejs/cli-win32-arm64': 2.4.2 + '@biomejs/cli-win32-x64': 2.4.2 + + '@biomejs/cli-darwin-arm64@2.4.2': + optional: true + + '@biomejs/cli-darwin-x64@2.4.2': + optional: true + + '@biomejs/cli-linux-arm64-musl@2.4.2': + optional: true + + '@biomejs/cli-linux-arm64@2.4.2': + optional: true + + '@biomejs/cli-linux-x64-musl@2.4.2': + optional: true + + '@biomejs/cli-linux-x64@2.4.2': + optional: true + + '@biomejs/cli-win32-arm64@2.4.2': + optional: true + + '@biomejs/cli-win32-x64@2.4.2': + optional: true + + '@esbuild/aix-ppc64@0.27.3': + optional: true + + '@esbuild/android-arm64@0.27.3': + optional: true + + '@esbuild/android-arm@0.27.3': + optional: true + + '@esbuild/android-x64@0.27.3': + optional: true + + '@esbuild/darwin-arm64@0.27.3': + optional: true + + '@esbuild/darwin-x64@0.27.3': + optional: true + + '@esbuild/freebsd-arm64@0.27.3': + optional: true + + '@esbuild/freebsd-x64@0.27.3': + optional: true + + '@esbuild/linux-arm64@0.27.3': + optional: true + + '@esbuild/linux-arm@0.27.3': + optional: true + + '@esbuild/linux-ia32@0.27.3': + optional: true + + '@esbuild/linux-loong64@0.27.3': + optional: true + + '@esbuild/linux-mips64el@0.27.3': + optional: true + + '@esbuild/linux-ppc64@0.27.3': + optional: true + + '@esbuild/linux-riscv64@0.27.3': + optional: true + + '@esbuild/linux-s390x@0.27.3': + optional: true + + '@esbuild/linux-x64@0.27.3': + optional: true + + '@esbuild/netbsd-arm64@0.27.3': + optional: true + + '@esbuild/netbsd-x64@0.27.3': + optional: true + + '@esbuild/openbsd-arm64@0.27.3': + optional: true + + '@esbuild/openbsd-x64@0.27.3': + optional: true + + '@esbuild/openharmony-arm64@0.27.3': + optional: true + + '@esbuild/sunos-x64@0.27.3': + optional: true + + '@esbuild/win32-arm64@0.27.3': + optional: true + + '@esbuild/win32-ia32@0.27.3': + optional: true + + '@esbuild/win32-x64@0.27.3': + optional: true + + '@formatjs/ecma402-abstract@2.3.6': + dependencies: + '@formatjs/fast-memoize': 2.2.7 + '@formatjs/intl-localematcher': 0.6.2 + decimal.js: 10.6.0 + tslib: 2.8.1 + + '@formatjs/fast-memoize@2.2.7': + dependencies: + tslib: 2.8.1 + + '@formatjs/icu-messageformat-parser@2.11.4': + dependencies: + '@formatjs/ecma402-abstract': 2.3.6 + '@formatjs/icu-skeleton-parser': 1.8.16 + tslib: 2.8.1 + + '@formatjs/icu-skeleton-parser@1.8.16': + dependencies: + '@formatjs/ecma402-abstract': 2.3.6 + tslib: 2.8.1 + + '@formatjs/intl-localematcher@0.6.2': + dependencies: + tslib: 2.8.1 + + '@internationalized/date@3.11.0': + dependencies: + '@swc/helpers': 0.5.18 + + '@internationalized/message@3.1.8': + dependencies: + '@swc/helpers': 0.5.18 + intl-messageformat: 10.7.18 + + '@internationalized/number@3.6.5': + dependencies: + '@swc/helpers': 0.5.18 + + '@internationalized/string@3.2.7': + dependencies: + '@swc/helpers': 0.5.18 + + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/sourcemap-codec@1.5.5': {} + + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + + '@mjackson/node-fetch-server@0.2.0': {} + + '@react-aria/autocomplete@3.0.0-rc.5(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-aria/combobox': 3.14.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/focus': 3.21.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/i18n': 3.12.15(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/interactions': 3.27.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/listbox': 3.15.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/searchfield': 3.8.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/textfield': 3.18.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-stately/autocomplete': 3.0.0-beta.4(react@19.2.4) + '@react-stately/combobox': 3.12.2(react@19.2.4) + '@react-types/autocomplete': 3.0.0-alpha.37(react@19.2.4) + '@react-types/button': 3.15.0(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-aria/breadcrumbs@3.5.31(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-aria/i18n': 3.12.15(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/link': 3.8.8(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-types/breadcrumbs': 3.7.18(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-aria/button@3.14.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-aria/interactions': 3.27.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/toolbar': 3.0.0-beta.23(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-stately/toggle': 3.9.4(react@19.2.4) + '@react-types/button': 3.15.0(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-aria/calendar@3.9.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@internationalized/date': 3.11.0 + '@react-aria/i18n': 3.12.15(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/interactions': 3.27.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/live-announcer': 3.4.4 + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-stately/calendar': 3.9.2(react@19.2.4) + '@react-types/button': 3.15.0(react@19.2.4) + '@react-types/calendar': 3.8.2(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-aria/checkbox@3.16.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-aria/form': 3.1.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/interactions': 3.27.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/label': 3.7.24(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/toggle': 3.12.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-stately/checkbox': 3.7.4(react@19.2.4) + '@react-stately/form': 3.2.3(react@19.2.4) + '@react-stately/toggle': 3.9.4(react@19.2.4) + '@react-types/checkbox': 3.10.3(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-aria/collections@3.0.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-aria/interactions': 3.27.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/ssr': 3.9.10(react@19.2.4) + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + use-sync-external-store: 1.6.0(react@19.2.4) + + '@react-aria/color@3.1.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-aria/i18n': 3.12.15(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/interactions': 3.27.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/numberfield': 3.12.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/slider': 3.8.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/spinbutton': 3.7.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/textfield': 3.18.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/visually-hidden': 3.8.30(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-stately/color': 3.9.4(react@19.2.4) + '@react-stately/form': 3.2.3(react@19.2.4) + '@react-types/color': 3.1.3(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-aria/combobox@3.14.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-aria/focus': 3.21.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/i18n': 3.12.15(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/listbox': 3.15.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/live-announcer': 3.4.4 + '@react-aria/menu': 3.20.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/overlays': 3.31.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/selection': 3.27.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/textfield': 3.18.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-stately/collections': 3.12.9(react@19.2.4) + '@react-stately/combobox': 3.12.2(react@19.2.4) + '@react-stately/form': 3.2.3(react@19.2.4) + '@react-types/button': 3.15.0(react@19.2.4) + '@react-types/combobox': 3.13.11(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-aria/datepicker@3.16.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@internationalized/date': 3.11.0 + '@internationalized/number': 3.6.5 + '@internationalized/string': 3.2.7 + '@react-aria/focus': 3.21.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/form': 3.1.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/i18n': 3.12.15(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/interactions': 3.27.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/label': 3.7.24(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/spinbutton': 3.7.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-stately/datepicker': 3.16.0(react@19.2.4) + '@react-stately/form': 3.2.3(react@19.2.4) + '@react-types/button': 3.15.0(react@19.2.4) + '@react-types/calendar': 3.8.2(react@19.2.4) + '@react-types/datepicker': 3.13.4(react@19.2.4) + '@react-types/dialog': 3.5.23(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-aria/dialog@3.5.33(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-aria/interactions': 3.27.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/overlays': 3.31.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-types/dialog': 3.5.23(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-aria/disclosure@3.1.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-aria/ssr': 3.9.10(react@19.2.4) + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-stately/disclosure': 3.0.10(react@19.2.4) + '@react-types/button': 3.15.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-aria/dnd@3.11.5(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@internationalized/string': 3.2.7 + '@react-aria/i18n': 3.12.15(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/interactions': 3.27.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/live-announcer': 3.4.4 + '@react-aria/overlays': 3.31.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-stately/collections': 3.12.9(react@19.2.4) + '@react-stately/dnd': 3.7.3(react@19.2.4) + '@react-types/button': 3.15.0(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-aria/focus@3.21.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-aria/interactions': 3.27.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + clsx: 2.1.1 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-aria/form@3.1.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-aria/interactions': 3.27.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-stately/form': 3.2.3(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-aria/grid@3.14.7(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-aria/focus': 3.21.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/i18n': 3.12.15(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/interactions': 3.27.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/live-announcer': 3.4.4 + '@react-aria/selection': 3.27.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-stately/collections': 3.12.9(react@19.2.4) + '@react-stately/grid': 3.11.8(react@19.2.4) + '@react-stately/selection': 3.20.8(react@19.2.4) + '@react-types/checkbox': 3.10.3(react@19.2.4) + '@react-types/grid': 3.3.7(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-aria/gridlist@3.14.3(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-aria/focus': 3.21.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/grid': 3.14.7(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/i18n': 3.12.15(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/interactions': 3.27.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/selection': 3.27.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-stately/list': 3.13.3(react@19.2.4) + '@react-stately/tree': 3.9.5(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-aria/i18n@3.12.15(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@internationalized/date': 3.11.0 + '@internationalized/message': 3.1.8 + '@internationalized/number': 3.6.5 + '@internationalized/string': 3.2.7 + '@react-aria/ssr': 3.9.10(react@19.2.4) + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-aria/interactions@3.27.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-aria/ssr': 3.9.10(react@19.2.4) + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-stately/flags': 3.1.2 + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-aria/label@3.7.24(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-aria/landmark@3.0.9(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + use-sync-external-store: 1.6.0(react@19.2.4) + + '@react-aria/link@3.8.8(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-aria/interactions': 3.27.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-types/link': 3.6.6(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-aria/listbox@3.15.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-aria/interactions': 3.27.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/label': 3.7.24(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/selection': 3.27.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-stately/collections': 3.12.9(react@19.2.4) + '@react-stately/list': 3.13.3(react@19.2.4) + '@react-types/listbox': 3.7.5(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-aria/live-announcer@3.4.4': + dependencies: + '@swc/helpers': 0.5.18 + + '@react-aria/menu@3.20.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-aria/focus': 3.21.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/i18n': 3.12.15(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/interactions': 3.27.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/overlays': 3.31.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/selection': 3.27.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-stately/collections': 3.12.9(react@19.2.4) + '@react-stately/menu': 3.9.10(react@19.2.4) + '@react-stately/selection': 3.20.8(react@19.2.4) + '@react-stately/tree': 3.9.5(react@19.2.4) + '@react-types/button': 3.15.0(react@19.2.4) + '@react-types/menu': 3.10.6(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-aria/meter@3.4.29(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-aria/progress': 3.4.29(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-types/meter': 3.4.14(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-aria/numberfield@3.12.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-aria/i18n': 3.12.15(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/interactions': 3.27.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/spinbutton': 3.7.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/textfield': 3.18.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-stately/form': 3.2.3(react@19.2.4) + '@react-stately/numberfield': 3.10.4(react@19.2.4) + '@react-types/button': 3.15.0(react@19.2.4) + '@react-types/numberfield': 3.8.17(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-aria/overlays@3.31.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-aria/focus': 3.21.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/i18n': 3.12.15(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/interactions': 3.27.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/ssr': 3.9.10(react@19.2.4) + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/visually-hidden': 3.8.30(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-stately/overlays': 3.6.22(react@19.2.4) + '@react-types/button': 3.15.0(react@19.2.4) + '@react-types/overlays': 3.9.3(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-aria/progress@3.4.29(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-aria/i18n': 3.12.15(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/label': 3.7.24(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-types/progress': 3.5.17(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-aria/radio@3.12.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-aria/focus': 3.21.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/form': 3.1.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/i18n': 3.12.15(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/interactions': 3.27.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/label': 3.7.24(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-stately/radio': 3.11.4(react@19.2.4) + '@react-types/radio': 3.9.3(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-aria/searchfield@3.8.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-aria/i18n': 3.12.15(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/textfield': 3.18.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-stately/searchfield': 3.5.18(react@19.2.4) + '@react-types/button': 3.15.0(react@19.2.4) + '@react-types/searchfield': 3.6.7(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-aria/select@3.17.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-aria/form': 3.1.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/i18n': 3.12.15(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/interactions': 3.27.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/label': 3.7.24(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/listbox': 3.15.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/menu': 3.20.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/selection': 3.27.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/visually-hidden': 3.8.30(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-stately/select': 3.9.1(react@19.2.4) + '@react-types/button': 3.15.0(react@19.2.4) + '@react-types/select': 3.12.1(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-aria/selection@3.27.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-aria/focus': 3.21.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/i18n': 3.12.15(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/interactions': 3.27.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-stately/selection': 3.20.8(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-aria/separator@3.4.15(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-aria/slider@3.8.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-aria/i18n': 3.12.15(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/interactions': 3.27.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/label': 3.7.24(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-stately/slider': 3.7.4(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@react-types/slider': 3.8.3(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-aria/spinbutton@3.7.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-aria/i18n': 3.12.15(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/live-announcer': 3.4.4 + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-types/button': 3.15.0(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-aria/ssr@3.9.10(react@19.2.4)': + dependencies: + '@swc/helpers': 0.5.18 + react: 19.2.4 + + '@react-aria/switch@3.7.10(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-aria/toggle': 3.12.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-stately/toggle': 3.9.4(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@react-types/switch': 3.5.16(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-aria/table@3.17.10(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-aria/focus': 3.21.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/grid': 3.14.7(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/i18n': 3.12.15(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/interactions': 3.27.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/live-announcer': 3.4.4 + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/visually-hidden': 3.8.30(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-stately/collections': 3.12.9(react@19.2.4) + '@react-stately/flags': 3.1.2 + '@react-stately/table': 3.15.3(react@19.2.4) + '@react-types/checkbox': 3.10.3(react@19.2.4) + '@react-types/grid': 3.3.7(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@react-types/table': 3.13.5(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-aria/tabs@3.11.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-aria/focus': 3.21.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/i18n': 3.12.15(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/selection': 3.27.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-stately/tabs': 3.8.8(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@react-types/tabs': 3.3.21(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-aria/tag@3.8.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-aria/gridlist': 3.14.3(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/i18n': 3.12.15(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/interactions': 3.27.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/label': 3.7.24(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/selection': 3.27.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-stately/list': 3.13.3(react@19.2.4) + '@react-types/button': 3.15.0(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-aria/textfield@3.18.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-aria/form': 3.1.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/interactions': 3.27.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/label': 3.7.24(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-stately/form': 3.2.3(react@19.2.4) + '@react-stately/utils': 3.11.0(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@react-types/textfield': 3.12.7(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-aria/toast@3.0.10(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-aria/i18n': 3.12.15(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/interactions': 3.27.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/landmark': 3.0.9(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-stately/toast': 3.1.3(react@19.2.4) + '@react-types/button': 3.15.0(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-aria/toggle@3.12.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-aria/interactions': 3.27.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-stately/toggle': 3.9.4(react@19.2.4) + '@react-types/checkbox': 3.10.3(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-aria/toolbar@3.0.0-beta.23(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-aria/focus': 3.21.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/i18n': 3.12.15(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-aria/tooltip@3.9.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-aria/interactions': 3.27.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-stately/tooltip': 3.5.10(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@react-types/tooltip': 3.5.1(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-aria/tree@3.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-aria/gridlist': 3.14.3(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/i18n': 3.12.15(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/selection': 3.27.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-stately/tree': 3.9.5(react@19.2.4) + '@react-types/button': 3.15.0(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-aria/utils@3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-aria/ssr': 3.9.10(react@19.2.4) + '@react-stately/flags': 3.1.2 + '@react-stately/utils': 3.11.0(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + clsx: 2.1.1 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-aria/virtualizer@4.1.12(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-aria/i18n': 3.12.15(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/interactions': 3.27.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-stately/virtualizer': 4.4.5(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-aria/visually-hidden@3.8.30(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-aria/interactions': 3.27.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-router/dev@7.13.0(jiti@2.6.1)(lightningcss@1.31.1)(react-router@7.13.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(typescript@5.8.3)(vite@7.3.1(jiti@2.6.1)(lightningcss@1.31.1))': + dependencies: + '@babel/core': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/parser': 7.29.0 + '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) + '@babel/preset-typescript': 7.28.5(@babel/core@7.29.0) + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + '@react-router/node': 7.13.0(react-router@7.13.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(typescript@5.8.3) + '@remix-run/node-fetch-server': 0.13.0 + arg: 5.0.2 + babel-dead-code-elimination: 1.0.12 + chokidar: 4.0.3 + dedent: 1.7.1 + es-module-lexer: 1.7.0 + exit-hook: 2.2.1 + isbot: 5.1.35 + jsesc: 3.0.2 + lodash: 4.17.23 + p-map: 7.0.4 + pathe: 1.1.2 + picocolors: 1.1.1 + pkg-types: 2.3.0 + prettier: 3.8.1 + react-refresh: 0.14.2 + react-router: 7.13.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + semver: 7.7.4 + tinyglobby: 0.2.15 + valibot: 1.2.0(typescript@5.8.3) + vite: 7.3.1(jiti@2.6.1)(lightningcss@1.31.1) + vite-node: 3.2.4(jiti@2.6.1)(lightningcss@1.31.1) + optionalDependencies: + typescript: 5.8.3 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - jiti + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + '@react-router/node@7.13.0(react-router@7.13.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(typescript@5.8.3)': + dependencies: + '@mjackson/node-fetch-server': 0.2.0 + react-router: 7.13.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + optionalDependencies: + typescript: 5.8.3 + + '@react-stately/autocomplete@3.0.0-beta.4(react@19.2.4)': + dependencies: + '@react-stately/utils': 3.11.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + + '@react-stately/calendar@3.9.2(react@19.2.4)': + dependencies: + '@internationalized/date': 3.11.0 + '@react-stately/utils': 3.11.0(react@19.2.4) + '@react-types/calendar': 3.8.2(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + + '@react-stately/checkbox@3.7.4(react@19.2.4)': + dependencies: + '@react-stately/form': 3.2.3(react@19.2.4) + '@react-stately/utils': 3.11.0(react@19.2.4) + '@react-types/checkbox': 3.10.3(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + + '@react-stately/collections@3.12.9(react@19.2.4)': + dependencies: + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + + '@react-stately/color@3.9.4(react@19.2.4)': + dependencies: + '@internationalized/number': 3.6.5 + '@internationalized/string': 3.2.7 + '@react-stately/form': 3.2.3(react@19.2.4) + '@react-stately/numberfield': 3.10.4(react@19.2.4) + '@react-stately/slider': 3.7.4(react@19.2.4) + '@react-stately/utils': 3.11.0(react@19.2.4) + '@react-types/color': 3.1.3(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + + '@react-stately/combobox@3.12.2(react@19.2.4)': + dependencies: + '@react-stately/collections': 3.12.9(react@19.2.4) + '@react-stately/form': 3.2.3(react@19.2.4) + '@react-stately/list': 3.13.3(react@19.2.4) + '@react-stately/overlays': 3.6.22(react@19.2.4) + '@react-stately/utils': 3.11.0(react@19.2.4) + '@react-types/combobox': 3.13.11(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + + '@react-stately/data@3.15.1(react@19.2.4)': + dependencies: + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + + '@react-stately/datepicker@3.16.0(react@19.2.4)': + dependencies: + '@internationalized/date': 3.11.0 + '@internationalized/number': 3.6.5 + '@internationalized/string': 3.2.7 + '@react-stately/form': 3.2.3(react@19.2.4) + '@react-stately/overlays': 3.6.22(react@19.2.4) + '@react-stately/utils': 3.11.0(react@19.2.4) + '@react-types/datepicker': 3.13.4(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + + '@react-stately/disclosure@3.0.10(react@19.2.4)': + dependencies: + '@react-stately/utils': 3.11.0(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + + '@react-stately/dnd@3.7.3(react@19.2.4)': + dependencies: + '@react-stately/selection': 3.20.8(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + + '@react-stately/flags@3.1.2': + dependencies: + '@swc/helpers': 0.5.18 + + '@react-stately/form@3.2.3(react@19.2.4)': + dependencies: + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + + '@react-stately/grid@3.11.8(react@19.2.4)': + dependencies: + '@react-stately/collections': 3.12.9(react@19.2.4) + '@react-stately/selection': 3.20.8(react@19.2.4) + '@react-types/grid': 3.3.7(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + + '@react-stately/layout@4.5.3(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-stately/collections': 3.12.9(react@19.2.4) + '@react-stately/table': 3.15.3(react@19.2.4) + '@react-stately/virtualizer': 4.4.5(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-types/grid': 3.3.7(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@react-types/table': 3.13.5(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-stately/list@3.13.3(react@19.2.4)': + dependencies: + '@react-stately/collections': 3.12.9(react@19.2.4) + '@react-stately/selection': 3.20.8(react@19.2.4) + '@react-stately/utils': 3.11.0(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + + '@react-stately/menu@3.9.10(react@19.2.4)': + dependencies: + '@react-stately/overlays': 3.6.22(react@19.2.4) + '@react-types/menu': 3.10.6(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + + '@react-stately/numberfield@3.10.4(react@19.2.4)': + dependencies: + '@internationalized/number': 3.6.5 + '@react-stately/form': 3.2.3(react@19.2.4) + '@react-stately/utils': 3.11.0(react@19.2.4) + '@react-types/numberfield': 3.8.17(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + + '@react-stately/overlays@3.6.22(react@19.2.4)': + dependencies: + '@react-stately/utils': 3.11.0(react@19.2.4) + '@react-types/overlays': 3.9.3(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + + '@react-stately/radio@3.11.4(react@19.2.4)': + dependencies: + '@react-stately/form': 3.2.3(react@19.2.4) + '@react-stately/utils': 3.11.0(react@19.2.4) + '@react-types/radio': 3.9.3(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + + '@react-stately/searchfield@3.5.18(react@19.2.4)': + dependencies: + '@react-stately/utils': 3.11.0(react@19.2.4) + '@react-types/searchfield': 3.6.7(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + + '@react-stately/select@3.9.1(react@19.2.4)': + dependencies: + '@react-stately/form': 3.2.3(react@19.2.4) + '@react-stately/list': 3.13.3(react@19.2.4) + '@react-stately/overlays': 3.6.22(react@19.2.4) + '@react-stately/utils': 3.11.0(react@19.2.4) + '@react-types/select': 3.12.1(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + + '@react-stately/selection@3.20.8(react@19.2.4)': + dependencies: + '@react-stately/collections': 3.12.9(react@19.2.4) + '@react-stately/utils': 3.11.0(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + + '@react-stately/slider@3.7.4(react@19.2.4)': + dependencies: + '@react-stately/utils': 3.11.0(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@react-types/slider': 3.8.3(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + + '@react-stately/table@3.15.3(react@19.2.4)': + dependencies: + '@react-stately/collections': 3.12.9(react@19.2.4) + '@react-stately/flags': 3.1.2 + '@react-stately/grid': 3.11.8(react@19.2.4) + '@react-stately/selection': 3.20.8(react@19.2.4) + '@react-stately/utils': 3.11.0(react@19.2.4) + '@react-types/grid': 3.3.7(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@react-types/table': 3.13.5(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + + '@react-stately/tabs@3.8.8(react@19.2.4)': + dependencies: + '@react-stately/list': 3.13.3(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@react-types/tabs': 3.3.21(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + + '@react-stately/toast@3.1.3(react@19.2.4)': + dependencies: + '@swc/helpers': 0.5.18 + react: 19.2.4 + use-sync-external-store: 1.6.0(react@19.2.4) + + '@react-stately/toggle@3.9.4(react@19.2.4)': + dependencies: + '@react-stately/utils': 3.11.0(react@19.2.4) + '@react-types/checkbox': 3.10.3(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + + '@react-stately/tooltip@3.5.10(react@19.2.4)': + dependencies: + '@react-stately/overlays': 3.6.22(react@19.2.4) + '@react-types/tooltip': 3.5.1(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + + '@react-stately/tree@3.9.5(react@19.2.4)': + dependencies: + '@react-stately/collections': 3.12.9(react@19.2.4) + '@react-stately/selection': 3.20.8(react@19.2.4) + '@react-stately/utils': 3.11.0(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + + '@react-stately/utils@3.11.0(react@19.2.4)': + dependencies: + '@swc/helpers': 0.5.18 + react: 19.2.4 + + '@react-stately/virtualizer@4.4.5(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@react-types/shared': 3.33.0(react@19.2.4) + '@swc/helpers': 0.5.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@react-types/autocomplete@3.0.0-alpha.37(react@19.2.4)': + dependencies: + '@react-types/combobox': 3.13.11(react@19.2.4) + '@react-types/searchfield': 3.6.7(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + react: 19.2.4 + + '@react-types/breadcrumbs@3.7.18(react@19.2.4)': + dependencies: + '@react-types/link': 3.6.6(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + react: 19.2.4 + + '@react-types/button@3.15.0(react@19.2.4)': + dependencies: + '@react-types/shared': 3.33.0(react@19.2.4) + react: 19.2.4 + + '@react-types/calendar@3.8.2(react@19.2.4)': + dependencies: + '@internationalized/date': 3.11.0 + '@react-types/shared': 3.33.0(react@19.2.4) + react: 19.2.4 + + '@react-types/checkbox@3.10.3(react@19.2.4)': + dependencies: + '@react-types/shared': 3.33.0(react@19.2.4) + react: 19.2.4 + + '@react-types/color@3.1.3(react@19.2.4)': + dependencies: + '@react-types/shared': 3.33.0(react@19.2.4) + '@react-types/slider': 3.8.3(react@19.2.4) + react: 19.2.4 + + '@react-types/combobox@3.13.11(react@19.2.4)': + dependencies: + '@react-types/shared': 3.33.0(react@19.2.4) + react: 19.2.4 + + '@react-types/datepicker@3.13.4(react@19.2.4)': + dependencies: + '@internationalized/date': 3.11.0 + '@react-types/calendar': 3.8.2(react@19.2.4) + '@react-types/overlays': 3.9.3(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + react: 19.2.4 + + '@react-types/dialog@3.5.23(react@19.2.4)': + dependencies: + '@react-types/overlays': 3.9.3(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + react: 19.2.4 + + '@react-types/form@3.7.17(react@19.2.4)': + dependencies: + '@react-types/shared': 3.33.0(react@19.2.4) + react: 19.2.4 + + '@react-types/grid@3.3.7(react@19.2.4)': + dependencies: + '@react-types/shared': 3.33.0(react@19.2.4) + react: 19.2.4 + + '@react-types/link@3.6.6(react@19.2.4)': + dependencies: + '@react-types/shared': 3.33.0(react@19.2.4) + react: 19.2.4 + + '@react-types/listbox@3.7.5(react@19.2.4)': + dependencies: + '@react-types/shared': 3.33.0(react@19.2.4) + react: 19.2.4 + + '@react-types/menu@3.10.6(react@19.2.4)': + dependencies: + '@react-types/overlays': 3.9.3(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + react: 19.2.4 + + '@react-types/meter@3.4.14(react@19.2.4)': + dependencies: + '@react-types/progress': 3.5.17(react@19.2.4) + react: 19.2.4 + + '@react-types/numberfield@3.8.17(react@19.2.4)': + dependencies: + '@react-types/shared': 3.33.0(react@19.2.4) + react: 19.2.4 + + '@react-types/overlays@3.9.3(react@19.2.4)': + dependencies: + '@react-types/shared': 3.33.0(react@19.2.4) + react: 19.2.4 + + '@react-types/progress@3.5.17(react@19.2.4)': + dependencies: + '@react-types/shared': 3.33.0(react@19.2.4) + react: 19.2.4 + + '@react-types/radio@3.9.3(react@19.2.4)': + dependencies: + '@react-types/shared': 3.33.0(react@19.2.4) + react: 19.2.4 + + '@react-types/searchfield@3.6.7(react@19.2.4)': + dependencies: + '@react-types/shared': 3.33.0(react@19.2.4) + '@react-types/textfield': 3.12.7(react@19.2.4) + react: 19.2.4 + + '@react-types/select@3.12.1(react@19.2.4)': + dependencies: + '@react-types/shared': 3.33.0(react@19.2.4) + react: 19.2.4 + + '@react-types/shared@3.33.0(react@19.2.4)': + dependencies: + react: 19.2.4 + + '@react-types/slider@3.8.3(react@19.2.4)': + dependencies: + '@react-types/shared': 3.33.0(react@19.2.4) + react: 19.2.4 + + '@react-types/switch@3.5.16(react@19.2.4)': + dependencies: + '@react-types/shared': 3.33.0(react@19.2.4) + react: 19.2.4 + + '@react-types/table@3.13.5(react@19.2.4)': + dependencies: + '@react-types/grid': 3.3.7(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + react: 19.2.4 + + '@react-types/tabs@3.3.21(react@19.2.4)': + dependencies: + '@react-types/shared': 3.33.0(react@19.2.4) + react: 19.2.4 + + '@react-types/textfield@3.12.7(react@19.2.4)': + dependencies: + '@react-types/shared': 3.33.0(react@19.2.4) + react: 19.2.4 + + '@react-types/tooltip@3.5.1(react@19.2.4)': + dependencies: + '@react-types/overlays': 3.9.3(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + react: 19.2.4 + + '@remix-run/node-fetch-server@0.13.0': {} + + '@rollup/rollup-android-arm-eabi@4.57.1': + optional: true + + '@rollup/rollup-android-arm64@4.57.1': + optional: true + + '@rollup/rollup-darwin-arm64@4.57.1': + optional: true + + '@rollup/rollup-darwin-x64@4.57.1': + optional: true + + '@rollup/rollup-freebsd-arm64@4.57.1': + optional: true + + '@rollup/rollup-freebsd-x64@4.57.1': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.57.1': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.57.1': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.57.1': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.57.1': + optional: true + + '@rollup/rollup-linux-loong64-gnu@4.57.1': + optional: true + + '@rollup/rollup-linux-loong64-musl@4.57.1': + optional: true + + '@rollup/rollup-linux-ppc64-gnu@4.57.1': + optional: true + + '@rollup/rollup-linux-ppc64-musl@4.57.1': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.57.1': + optional: true + + '@rollup/rollup-linux-riscv64-musl@4.57.1': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.57.1': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.57.1': + optional: true + + '@rollup/rollup-linux-x64-musl@4.57.1': + optional: true + + '@rollup/rollup-openbsd-x64@4.57.1': + optional: true + + '@rollup/rollup-openharmony-arm64@4.57.1': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.57.1': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.57.1': + optional: true + + '@rollup/rollup-win32-x64-gnu@4.57.1': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.57.1': + optional: true + + '@swc/helpers@0.5.18': + dependencies: + tslib: 2.8.1 + + '@tailwindcss/node@4.2.0': + dependencies: + '@jridgewell/remapping': 2.3.5 + enhanced-resolve: 5.19.0 + jiti: 2.6.1 + lightningcss: 1.31.1 + magic-string: 0.30.21 + source-map-js: 1.2.1 + tailwindcss: 4.2.0 + + '@tailwindcss/oxide-android-arm64@4.2.0': + optional: true + + '@tailwindcss/oxide-darwin-arm64@4.2.0': + optional: true + + '@tailwindcss/oxide-darwin-x64@4.2.0': + optional: true + + '@tailwindcss/oxide-freebsd-x64@4.2.0': + optional: true + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.0': + optional: true + + '@tailwindcss/oxide-linux-arm64-gnu@4.2.0': + optional: true + + '@tailwindcss/oxide-linux-arm64-musl@4.2.0': + optional: true + + '@tailwindcss/oxide-linux-x64-gnu@4.2.0': + optional: true + + '@tailwindcss/oxide-linux-x64-musl@4.2.0': + optional: true + + '@tailwindcss/oxide-wasm32-wasi@4.2.0': + optional: true + + '@tailwindcss/oxide-win32-arm64-msvc@4.2.0': + optional: true + + '@tailwindcss/oxide-win32-x64-msvc@4.2.0': + optional: true + + '@tailwindcss/oxide@4.2.0': + optionalDependencies: + '@tailwindcss/oxide-android-arm64': 4.2.0 + '@tailwindcss/oxide-darwin-arm64': 4.2.0 + '@tailwindcss/oxide-darwin-x64': 4.2.0 + '@tailwindcss/oxide-freebsd-x64': 4.2.0 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.2.0 + '@tailwindcss/oxide-linux-arm64-gnu': 4.2.0 + '@tailwindcss/oxide-linux-arm64-musl': 4.2.0 + '@tailwindcss/oxide-linux-x64-gnu': 4.2.0 + '@tailwindcss/oxide-linux-x64-musl': 4.2.0 + '@tailwindcss/oxide-wasm32-wasi': 4.2.0 + '@tailwindcss/oxide-win32-arm64-msvc': 4.2.0 + '@tailwindcss/oxide-win32-x64-msvc': 4.2.0 + + '@tailwindcss/vite@4.2.0(vite@7.3.1(jiti@2.6.1)(lightningcss@1.31.1))': + dependencies: + '@tailwindcss/node': 4.2.0 + '@tailwindcss/oxide': 4.2.0 + tailwindcss: 4.2.0 + vite: 7.3.1(jiti@2.6.1)(lightningcss@1.31.1) + + '@tauri-apps/api@2.10.1': {} + + '@tauri-apps/cli-darwin-arm64@2.10.0': + optional: true + + '@tauri-apps/cli-darwin-x64@2.10.0': + optional: true + + '@tauri-apps/cli-linux-arm-gnueabihf@2.10.0': + optional: true + + '@tauri-apps/cli-linux-arm64-gnu@2.10.0': + optional: true + + '@tauri-apps/cli-linux-arm64-musl@2.10.0': + optional: true + + '@tauri-apps/cli-linux-riscv64-gnu@2.10.0': + optional: true + + '@tauri-apps/cli-linux-x64-gnu@2.10.0': + optional: true + + '@tauri-apps/cli-linux-x64-musl@2.10.0': + optional: true + + '@tauri-apps/cli-win32-arm64-msvc@2.10.0': + optional: true + + '@tauri-apps/cli-win32-ia32-msvc@2.10.0': + optional: true + + '@tauri-apps/cli-win32-x64-msvc@2.10.0': + optional: true + + '@tauri-apps/cli@2.10.0': + optionalDependencies: + '@tauri-apps/cli-darwin-arm64': 2.10.0 + '@tauri-apps/cli-darwin-x64': 2.10.0 + '@tauri-apps/cli-linux-arm-gnueabihf': 2.10.0 + '@tauri-apps/cli-linux-arm64-gnu': 2.10.0 + '@tauri-apps/cli-linux-arm64-musl': 2.10.0 + '@tauri-apps/cli-linux-riscv64-gnu': 2.10.0 + '@tauri-apps/cli-linux-x64-gnu': 2.10.0 + '@tauri-apps/cli-linux-x64-musl': 2.10.0 + '@tauri-apps/cli-win32-arm64-msvc': 2.10.0 + '@tauri-apps/cli-win32-ia32-msvc': 2.10.0 + '@tauri-apps/cli-win32-x64-msvc': 2.10.0 + + '@tauri-apps/plugin-opener@2.5.3': + dependencies: + '@tauri-apps/api': 2.10.1 + + '@types/estree@1.0.8': {} + + '@types/react-dom@19.2.3(@types/react@19.2.14)': + dependencies: + '@types/react': 19.2.14 + + '@types/react@19.2.14': + dependencies: + csstype: 3.2.3 + + arg@5.0.2: {} + + babel-dead-code-elimination@1.0.12: + dependencies: + '@babel/core': 7.29.0 + '@babel/parser': 7.29.0 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + transitivePeerDependencies: + - supports-color + + baseline-browser-mapping@2.9.19: {} + + browserslist@4.28.1: + dependencies: + baseline-browser-mapping: 2.9.19 + caniuse-lite: 1.0.30001770 + electron-to-chromium: 1.5.286 + node-releases: 2.0.27 + update-browserslist-db: 1.2.3(browserslist@4.28.1) + + cac@6.7.14: {} + + caniuse-lite@1.0.30001770: {} + + chokidar@4.0.3: + dependencies: + readdirp: 4.1.2 + + client-only@0.0.1: {} + + clsx@2.1.1: {} + + confbox@0.2.4: {} + + convert-source-map@2.0.0: {} + + cookie@1.1.1: {} + + csstype@3.2.3: {} + + debug@4.4.3: + dependencies: + ms: 2.1.3 + + decimal.js@10.6.0: {} + + dedent@1.7.1: {} + + detect-libc@2.1.2: {} + + electron-to-chromium@1.5.286: {} + + enhanced-resolve@5.19.0: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.3.0 + + es-module-lexer@1.7.0: {} + + esbuild@0.27.3: + optionalDependencies: + '@esbuild/aix-ppc64': 0.27.3 + '@esbuild/android-arm': 0.27.3 + '@esbuild/android-arm64': 0.27.3 + '@esbuild/android-x64': 0.27.3 + '@esbuild/darwin-arm64': 0.27.3 + '@esbuild/darwin-x64': 0.27.3 + '@esbuild/freebsd-arm64': 0.27.3 + '@esbuild/freebsd-x64': 0.27.3 + '@esbuild/linux-arm': 0.27.3 + '@esbuild/linux-arm64': 0.27.3 + '@esbuild/linux-ia32': 0.27.3 + '@esbuild/linux-loong64': 0.27.3 + '@esbuild/linux-mips64el': 0.27.3 + '@esbuild/linux-ppc64': 0.27.3 + '@esbuild/linux-riscv64': 0.27.3 + '@esbuild/linux-s390x': 0.27.3 + '@esbuild/linux-x64': 0.27.3 + '@esbuild/netbsd-arm64': 0.27.3 + '@esbuild/netbsd-x64': 0.27.3 + '@esbuild/openbsd-arm64': 0.27.3 + '@esbuild/openbsd-x64': 0.27.3 + '@esbuild/openharmony-arm64': 0.27.3 + '@esbuild/sunos-x64': 0.27.3 + '@esbuild/win32-arm64': 0.27.3 + '@esbuild/win32-ia32': 0.27.3 + '@esbuild/win32-x64': 0.27.3 + + escalade@3.2.0: {} + + exit-hook@2.2.1: {} + + exsolve@1.0.8: {} + + fdir@6.5.0(picomatch@4.0.3): + optionalDependencies: + picomatch: 4.0.3 + + fsevents@2.3.3: + optional: true + + gensync@1.0.0-beta.2: {} + + globrex@0.1.2: {} + + graceful-fs@4.2.11: {} + + intl-messageformat@10.7.18: + dependencies: + '@formatjs/ecma402-abstract': 2.3.6 + '@formatjs/fast-memoize': 2.2.7 + '@formatjs/icu-messageformat-parser': 2.11.4 + tslib: 2.8.1 + + isbot@5.1.35: {} + + jiti@2.6.1: {} + + js-tokens@4.0.0: {} + + jsesc@3.0.2: {} + + jsesc@3.1.0: {} + + json5@2.2.3: {} + + lightningcss-android-arm64@1.31.1: + optional: true + + lightningcss-darwin-arm64@1.31.1: + optional: true + + lightningcss-darwin-x64@1.31.1: + optional: true + + lightningcss-freebsd-x64@1.31.1: + optional: true + + lightningcss-linux-arm-gnueabihf@1.31.1: + optional: true + + lightningcss-linux-arm64-gnu@1.31.1: + optional: true + + lightningcss-linux-arm64-musl@1.31.1: + optional: true + + lightningcss-linux-x64-gnu@1.31.1: + optional: true + + lightningcss-linux-x64-musl@1.31.1: + optional: true + + lightningcss-win32-arm64-msvc@1.31.1: + optional: true + + lightningcss-win32-x64-msvc@1.31.1: + optional: true + + lightningcss@1.31.1: + dependencies: + detect-libc: 2.1.2 + optionalDependencies: + lightningcss-android-arm64: 1.31.1 + lightningcss-darwin-arm64: 1.31.1 + lightningcss-darwin-x64: 1.31.1 + lightningcss-freebsd-x64: 1.31.1 + lightningcss-linux-arm-gnueabihf: 1.31.1 + lightningcss-linux-arm64-gnu: 1.31.1 + lightningcss-linux-arm64-musl: 1.31.1 + lightningcss-linux-x64-gnu: 1.31.1 + lightningcss-linux-x64-musl: 1.31.1 + lightningcss-win32-arm64-msvc: 1.31.1 + lightningcss-win32-x64-msvc: 1.31.1 + + lodash@4.17.23: {} + + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + + magic-string@0.30.21: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + + ms@2.1.3: {} + + nanoid@3.3.11: {} + + node-releases@2.0.27: {} + + p-map@7.0.4: {} + + pathe@1.1.2: {} + + pathe@2.0.3: {} + + picocolors@1.1.1: {} + + picomatch@4.0.3: {} + + pkg-types@2.3.0: + dependencies: + confbox: 0.2.4 + exsolve: 1.0.8 + pathe: 2.0.3 + + postcss@8.5.6: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + prettier@3.8.1: {} + + react-aria-components@1.15.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + dependencies: + '@internationalized/date': 3.11.0 + '@internationalized/string': 3.2.7 + '@react-aria/autocomplete': 3.0.0-rc.5(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/collections': 3.0.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/dnd': 3.11.5(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/focus': 3.21.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/interactions': 3.27.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/live-announcer': 3.4.4 + '@react-aria/overlays': 3.31.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/ssr': 3.9.10(react@19.2.4) + '@react-aria/textfield': 3.18.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/toolbar': 3.0.0-beta.23(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/virtualizer': 4.1.12(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-stately/autocomplete': 3.0.0-beta.4(react@19.2.4) + '@react-stately/layout': 4.5.3(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-stately/selection': 3.20.8(react@19.2.4) + '@react-stately/table': 3.15.3(react@19.2.4) + '@react-stately/utils': 3.11.0(react@19.2.4) + '@react-stately/virtualizer': 4.4.5(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-types/form': 3.7.17(react@19.2.4) + '@react-types/grid': 3.3.7(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + '@react-types/table': 3.13.5(react@19.2.4) + '@swc/helpers': 0.5.18 + client-only: 0.0.1 + react: 19.2.4 + react-aria: 3.46.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react-dom: 19.2.4(react@19.2.4) + react-stately: 3.44.0(react@19.2.4) + use-sync-external-store: 1.6.0(react@19.2.4) + + react-aria@3.46.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + dependencies: + '@internationalized/string': 3.2.7 + '@react-aria/breadcrumbs': 3.5.31(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/button': 3.14.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/calendar': 3.9.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/checkbox': 3.16.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/color': 3.1.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/combobox': 3.14.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/datepicker': 3.16.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/dialog': 3.5.33(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/disclosure': 3.1.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/dnd': 3.11.5(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/focus': 3.21.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/gridlist': 3.14.3(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/i18n': 3.12.15(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/interactions': 3.27.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/label': 3.7.24(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/landmark': 3.0.9(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/link': 3.8.8(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/listbox': 3.15.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/menu': 3.20.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/meter': 3.4.29(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/numberfield': 3.12.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/overlays': 3.31.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/progress': 3.4.29(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/radio': 3.12.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/searchfield': 3.8.11(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/select': 3.17.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/selection': 3.27.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/separator': 3.4.15(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/slider': 3.8.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/ssr': 3.9.10(react@19.2.4) + '@react-aria/switch': 3.7.10(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/table': 3.17.10(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/tabs': 3.11.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/tag': 3.8.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/textfield': 3.18.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/toast': 3.0.10(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/tooltip': 3.9.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/tree': 3.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/utils': 3.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-aria/visually-hidden': 3.8.30(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + react-dom@19.2.4(react@19.2.4): + dependencies: + react: 19.2.4 + scheduler: 0.27.0 + + react-refresh@0.14.2: {} + + react-router@7.13.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + dependencies: + cookie: 1.1.1 + react: 19.2.4 + set-cookie-parser: 2.7.2 + optionalDependencies: + react-dom: 19.2.4(react@19.2.4) + + react-stately@3.44.0(react@19.2.4): + dependencies: + '@react-stately/calendar': 3.9.2(react@19.2.4) + '@react-stately/checkbox': 3.7.4(react@19.2.4) + '@react-stately/collections': 3.12.9(react@19.2.4) + '@react-stately/color': 3.9.4(react@19.2.4) + '@react-stately/combobox': 3.12.2(react@19.2.4) + '@react-stately/data': 3.15.1(react@19.2.4) + '@react-stately/datepicker': 3.16.0(react@19.2.4) + '@react-stately/disclosure': 3.0.10(react@19.2.4) + '@react-stately/dnd': 3.7.3(react@19.2.4) + '@react-stately/form': 3.2.3(react@19.2.4) + '@react-stately/list': 3.13.3(react@19.2.4) + '@react-stately/menu': 3.9.10(react@19.2.4) + '@react-stately/numberfield': 3.10.4(react@19.2.4) + '@react-stately/overlays': 3.6.22(react@19.2.4) + '@react-stately/radio': 3.11.4(react@19.2.4) + '@react-stately/searchfield': 3.5.18(react@19.2.4) + '@react-stately/select': 3.9.1(react@19.2.4) + '@react-stately/selection': 3.20.8(react@19.2.4) + '@react-stately/slider': 3.7.4(react@19.2.4) + '@react-stately/table': 3.15.3(react@19.2.4) + '@react-stately/tabs': 3.8.8(react@19.2.4) + '@react-stately/toast': 3.1.3(react@19.2.4) + '@react-stately/toggle': 3.9.4(react@19.2.4) + '@react-stately/tooltip': 3.5.10(react@19.2.4) + '@react-stately/tree': 3.9.5(react@19.2.4) + '@react-types/shared': 3.33.0(react@19.2.4) + react: 19.2.4 + + react@19.2.4: {} + + readdirp@4.1.2: {} + + rollup@4.57.1: + dependencies: + '@types/estree': 1.0.8 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.57.1 + '@rollup/rollup-android-arm64': 4.57.1 + '@rollup/rollup-darwin-arm64': 4.57.1 + '@rollup/rollup-darwin-x64': 4.57.1 + '@rollup/rollup-freebsd-arm64': 4.57.1 + '@rollup/rollup-freebsd-x64': 4.57.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.57.1 + '@rollup/rollup-linux-arm-musleabihf': 4.57.1 + '@rollup/rollup-linux-arm64-gnu': 4.57.1 + '@rollup/rollup-linux-arm64-musl': 4.57.1 + '@rollup/rollup-linux-loong64-gnu': 4.57.1 + '@rollup/rollup-linux-loong64-musl': 4.57.1 + '@rollup/rollup-linux-ppc64-gnu': 4.57.1 + '@rollup/rollup-linux-ppc64-musl': 4.57.1 + '@rollup/rollup-linux-riscv64-gnu': 4.57.1 + '@rollup/rollup-linux-riscv64-musl': 4.57.1 + '@rollup/rollup-linux-s390x-gnu': 4.57.1 + '@rollup/rollup-linux-x64-gnu': 4.57.1 + '@rollup/rollup-linux-x64-musl': 4.57.1 + '@rollup/rollup-openbsd-x64': 4.57.1 + '@rollup/rollup-openharmony-arm64': 4.57.1 + '@rollup/rollup-win32-arm64-msvc': 4.57.1 + '@rollup/rollup-win32-ia32-msvc': 4.57.1 + '@rollup/rollup-win32-x64-gnu': 4.57.1 + '@rollup/rollup-win32-x64-msvc': 4.57.1 + fsevents: 2.3.3 + + scheduler@0.27.0: {} + + semver@6.3.1: {} + + semver@7.7.4: {} + + set-cookie-parser@2.7.2: {} + + source-map-js@1.2.1: {} + + tailwindcss@4.2.0: {} + + tapable@2.3.0: {} + + tiny-invariant@1.3.3: {} + + tinyglobby@0.2.15: + dependencies: + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + + tsconfck@3.1.6(typescript@5.8.3): + optionalDependencies: + typescript: 5.8.3 + + tslib@2.8.1: {} + + typescript@5.8.3: {} + + update-browserslist-db@1.2.3(browserslist@4.28.1): + dependencies: + browserslist: 4.28.1 + escalade: 3.2.0 + picocolors: 1.1.1 + + use-sync-external-store@1.6.0(react@19.2.4): + dependencies: + react: 19.2.4 + + valibot@1.2.0(typescript@5.8.3): + optionalDependencies: + typescript: 5.8.3 + + vite-node@3.2.4(jiti@2.6.1)(lightningcss@1.31.1): + dependencies: + cac: 6.7.14 + debug: 4.4.3 + es-module-lexer: 1.7.0 + pathe: 2.0.3 + vite: 7.3.1(jiti@2.6.1)(lightningcss@1.31.1) + transitivePeerDependencies: + - '@types/node' + - jiti + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + vite-tsconfig-paths@6.1.1(typescript@5.8.3)(vite@7.3.1(jiti@2.6.1)(lightningcss@1.31.1)): + dependencies: + debug: 4.4.3 + globrex: 0.1.2 + tsconfck: 3.1.6(typescript@5.8.3) + vite: 7.3.1(jiti@2.6.1)(lightningcss@1.31.1) + transitivePeerDependencies: + - supports-color + - typescript + + vite@7.3.1(jiti@2.6.1)(lightningcss@1.31.1): + dependencies: + esbuild: 0.27.3 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.57.1 + tinyglobby: 0.2.15 + optionalDependencies: + fsevents: 2.3.3 + jiti: 2.6.1 + lightningcss: 1.31.1 + + yallist@3.1.1: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..efc037a --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,2 @@ +onlyBuiltDependencies: + - esbuild diff --git a/public/favicon.ico b/public/favicon.ico deleted file mode 100644 index 5dbdfcddcb14182535f6d32d1c900681321b1aa3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15086 zcmeI33v3ic7{|AFEmuJ-;v>ep_G*NPi6KM`qNryCe1PIJ8siIN1WZ(7qVa)RVtmC% z)Ch?tN+afMKm;5@rvorJk zcXnoOc4q51HBQnQH_jn!cAg&XI1?PlX>Kl^k8qq0;zkha`kY$Fxt#=KNJAE9CMdpW zqr4#g8`nTw191(+H4xW8Tmyru2I^3=J1G3emPxkPXA=3{vvuvse_WWSshqaqls^-m zgB7q8&Vk*aYRe?sn$n53dGH#%3y%^vxv{pL*-h0Z4bmb_(k6{FL7HWIz(V*HT#IcS z-wE{)+0x1U!RUPt3gB97%p}@oHxF4|6S*+Yw=_tLtxZ~`S=z6J?O^AfU>7qOX`JNBbV&8+bO0%@fhQitKIJ^O^ zpgIa__qD_y07t@DFlBJ)8SP_#^j{6jpaXt{U%=dx!qu=4u7^21lWEYHPPY5U3TcoQ zX_7W+lvZi>TapNk_X>k-KO%MC9iZp>1E`N34gHKd9tK&){jq2~7OsJ>!G0FzxQFw6G zm&Vb(2#-T|rM|n3>uAsG_hnbvUKFf3#ay@u4uTzia~NY%XgCHfx4^To4BDU@)HlV? z@EN=g^ymETa1sQK{kRwyE4Ax8?wT&GvaG@ASO}{&a17&^v`y z!oPdiSiia^oov(Z)QhG2&|FgE{M9_4hJROGbnj>#$~ZF$-G^|zPj*QApltKe?;u;uKHJ~-V!=VLkg7Kgct)l7u39f@%VG8e3f$N-B zAu3a4%ZGf)r+jPAYCSLt73m_J3}p>}6Tx0j(wg4vvKhP!DzgiWANiE;Ppvp}P2W@m z-VbYn+NXFF?6ngef5CfY6ZwKnWvNV4z6s^~yMXw2i5mv}jC$6$46g?G|CPAu{W5qF zDobS=zb2ILX9D827g*NtGe5w;>frjanY{f)hrBP_2ehBt1?`~ypvg_Ot4x1V+43P@Ve8>qd)9NX_jWdLo`Zfy zoeam9)@Dpym{4m@+LNxXBPjPKA7{3a&H+~xQvr>C_A;7=JrfK~$M2pCh>|xLz>W6SCs4qC|#V`)# z)0C|?$o>jzh<|-cpf

K7osU{Xp5PG4-K+L2G=)c3f&}H&M3wo7TlO_UJjQ-Oq&_ zjAc9=nNIYz{c3zxOiS5UfcE1}8#iI4@uy;$Q7>}u`j+OU0N<*Ezx$k{x_27+{s2Eg z`^=rhtIzCm!_UcJ?Db~Lh-=_))PT3{Q0{Mwdq;0>ZL%l3+;B&4!&xm#%HYAK|;b456Iv&&f$VQHf` z>$*K9w8T+paVwc7fLfMlhQ4)*zL_SG{~v4QR;IuX-(oRtYAhWOlh`NLoX0k$RUYMi z2Y!bqpdN}wz8q`-%>&Le@q|jFw92ErW-hma-le?S z-@OZt2EEUm4wLsuEMkt4zlyy29_3S50JAcQHTtgTC{P~%-mvCTzrjXOc|{}N`Cz`W zSj7CrXfa7lcsU0J(0uSX6G`54t^7}+OLM0n(|g4waOQ}bd3%!XLh?NX9|8G_|06Ie zD5F1)w5I~!et7lA{G^;uf7aqT`KE&2qx9|~O;s6t!gb`+zVLJyT2T)l*8l(j diff --git a/public/fonts/golos-ui/Golos-UI_VF.css b/public/fonts/golos-ui/Golos-UI_VF.css deleted file mode 100644 index 3cefc01..0000000 --- a/public/fonts/golos-ui/Golos-UI_VF.css +++ /dev/null @@ -1,10 +0,0 @@ -/* Generated by ParaType (http://www.paratype.com)*/ -/* Font Golos UI: Copyright ? ParaType, 2018. All rights reserved.*/ - -@font-face { - font-family: 'GolosUIWebVF'; - src: url('Golos%20UI_VF.woff2') format('woff2'), - url('Golos%20UI_VF.woff') format('woff'); - font-weight: normal; - font-style: normal; -} diff --git a/public/fonts/golos-ui/Golos-UI_VF.html b/public/fonts/golos-ui/Golos-UI_VF.html deleted file mode 100644 index 21ef602..0000000 --- a/public/fonts/golos-ui/Golos-UI_VF.html +++ /dev/null @@ -1,160 +0,0 @@ - - - - - - - - - Font Face Demo - - - - - -

-

-Font:
- - -Golos UI VF

- -

-Sample Text:

-

-Jelly-like above the high wire, six quaking pachyderms kept the climax of the extravaganza in a dazzling state of flux.
Юный директор целиком сжевал весь объём продукции фундука (товара дефицитного и деликатесного), идя энергично через хрустящий камыш.

- -

-

-
-
- Character Set:            

-
-

- ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~   ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ­ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ ı Œ œ Š š Ÿ Ž ž ƒ ȷ ʼ ˆ ˇ ˙ ˚ ˜ ˝ Ё Ђ Ѓ Є Ѕ І Ї Ј Љ Њ Ћ Ќ Ў Џ А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я а б в г д е ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я ё ђ ѓ є ѕ і ї ј љ њ ћ ќ ў џ Ґ ґ Ғ ғ Ҕ ҕ Җ җ Ҙ ҙ Қ қ Ҝ ҝ Ҡ ҡ Ң ң Ҥ ҥ Ҫ ҫ Ү ү Ұ ұ Ҳ ҳ Ҷ ҷ Ҹ ҹ Һ һ Ӏ Ӄ ӄ Ӈ ӈ Ӌ ӌ ӏ Ӑ ӑ Ӓ ӓ Ӕ ӕ Ӗ ӗ Ә ә Ӛ ӛ Ӝ ӝ Ӟ ӟ Ӣ ӣ Ӥ ӥ Ӧ ӧ Ө ө Ӫ ӫ Ӯ ӯ Ӱ ӱ Ӳ ӳ Ӵ ӵ Ӹ ӹ Ԓ ԓ ẞ   ‐ ‑ ‒ – — ‘ ’ ‚ “ ” „ † ‡ • …   ‰ ‹ › ⁄ ⁴ € ₴ ₸ ₽ № ™ ← ↑ → ↓ ↖ ↗ ↘ ↙ − ∕                           -

-
-
-

OpenType features:

-
-
- -

-© ParaType, 2013. All rights reserved.
All trademarks mentioned in this document are the trademarks or registered trademarks of their respective holders. You may reproduce and
distribute this document as long as you do not remove ParaType copyright information and do not make any changes in the document.
Русская панграмма из книги В. В. Шахиджаняна «Соло на клавиатуре»

- - - \ No newline at end of file diff --git a/public/fonts/golos-ui/golos-ui_vf.woff b/public/fonts/golos-ui/golos-ui_vf.woff deleted file mode 100644 index b1713beb47e4411655074d8a27e4f45c3329c266..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58828 zcmZsBV|eb&_w`-dwr$(CeQMioPi@<$w%b$Nwr#to=G*80`})pgUCG{Avu9-{nQJnM zyMnkl00{7tjwS(UKRcj2%>S(aUlLW3k^le}L;(QgZ~y@N;R{jtTtZPn1pqLu0|0Qz z0RZmAE|RT82^BSA03cu$005x{0Kn|LOn+lbstYLt03o11ahZQA37jeIv{X=G_&Ela z{qbr3z`zCw6;ef2NcD%u`D2U!K+k*3+s@e5&;bB|aQTV%qZCv=+~vaG*v*9y06_n# z13>%(MtEfah?#@AEdT(Y4FEuL0RRZ2bil_!W^RT~Kk@v3IIKV54gF)8Xl~6R{nQKi^Mj7n72B=<>q}q&z+W4hS091*5dZ^n`g0Dj@pwG^fBWwR+%Jc3 zCXjECoF5w;@WcHtd8`{7m>3vz-|L421c;sM_kEX6eq;F)kNV#M06F6jjQ^2x)soHx(z?H%v!T^vH~>+Riz%f~vvjK=&8B-W;- zl`iOS3Iwv?1q2>ylZOpPXa?y3>ty0$VDR#sn{m~HI{kv7VwjV~rz$`uhz@N9t0L-tx}!l!(H+I9yQDhf=z?yiO$Am?mCjWIch^qp4#u z`md5a*8>6NL!8C+CyCd1`N_Nr6{;8Y-;v+{+?Erw+ZE|}-k!Sbx8v-$>5;Z-eT%SD zdcs;|eid$bP&?+ZpH2AV{FQ(J;?Usau*kCM#c@g7hUk>CKi%-x`771~;gjTcTI+AW zw7qf-?vuq|sqsPAuK&%yYr9^q;kvD5M2qvd16)IQQMF|FO|lElcHviWul+RfzfFiICKqHoj{#dPTkb8t4aFgf-~Ko33pt<77xry6 z_*NNb3ze0cM^vn~K3Jz5g3b<@k9ox0p!&s#zx4$7+=2Q#Wxs>y9 z>2#AtO`X!{$PgB0brnnck5CPj6lt?syDPD#2f};=#1fl6+d#lGEEt#@#s2v?jg4pEJZ68t{x~O8w5c;5fwM;D( z)MFd@u*M)0@G;X$RZCLI8IJEqeRI||JGoOfZ>%y#UgB6se+fl0hgpdv0{M5ZmBa97 zjn~2W$)S3RRBoM=>u>`wR6rLCLDMwX>|dq!^!NN?msoO16aqKAXUgJS{cHE2I*l{? z4p?A4!o-TAm1~HE(Z1Ft;P~pi1t%o=r?*ou-+y_gJ>%w0OGMYkb>dI0xUlV0wa@=* z0kaQ=hiUf4lkOPI8Az<>29E}#{qw%FUTxJ7ZNk~%=Y~6VLE-P4jH#d!>*1KOheivn zJC?G#VtUo*9_|~;qHmBB)HG3=-xpu^wvI6O$uqbV{(d&5*5pNIuE~Zv7k-_WtTEq1K*=$s-Vn(id(?Fnycev<9j1k)pMymoHP57uQ+Vzv`riBT165|ZlU$1ieB_MtkR z8#>hpU3HSZap$7P7tp{F73-3|f6pqR8CI7(uKL==O#eb=PD%1Kpa=8&Q9PMPg&(EX z2Z_7ZjQk*jimhI#k88zdFD3u?lovwAQ9smr%C*d=SykDgWn61z<;j63v&lXB*iEMd zzf8ZU^x;9w0KM;+Mt(n4p)>+kH%NEOQQGbf+tW>)U!)e>j9zXC{>g6~ZWf>GT=}bp ze;4NNV|O=7{W%*=zm~H0>32}^x)F~wNcZJ&eH6-KDtBr2owc?wLZH6=F4-?KdY8Kk zLIrvrHPO94Hj*Js`8fJ|R!m{PWxlq%^yYfJ?9E0WlAEHwfsh*bbbrR$sU$6%6fso) zo>y<_Jtv0628Pr&4N=hqu_Ax}Kv$r}2Fl0=HBxXbqm(+ZaA6s$Vwd7@MOw-z|1uyX zOD4#{3d-U^47ieS1bYjQ_V1X?{GNdj2xQ~~5|)g{qr<}qE^~iWyUst9G>#3`rHS2~ zzSVjo9e*1zh^xpIgBDR!DpSjsD*DHq&U3&|I8L6Ey`W@bWz)2jNji@FaZ|ausLT(& zU!^jS5blm{7U45^TyVCO+*dNVOWscdyn?5fqaKBPMF|!t3UUhTElgdkX-Sr;YWAxS zkOcP4Uki~RBN`)01{vst5Pwnp#m&^7VA7gu#;vq-@;Ui9|MeGFdVP#EgUVEy=KUxh zw+XkjSZG?h@K<8xy@r)|B8jg15?@m@F37{}2IqLek`(;DGam2 zVgSJ}czLiRAw5QpQ7CfI0qqLyd7b$hvYOYD>0gX;$DNj}1ew^4OEyeda&1&>WF@Pp z8NwyFL;D# zWK6@FF-NT(l7CARiJ_{Dy%uTJUl?*ZPqMoWE$iTF=o;Qx_HaE>!|7yRLt zzl~WR-RPYDbzCk-YfNF!q;G2sWxu|D@!C7?p6KfpRNUfX3q(`BIpVl&3?EhXY0TUm zuU3(~qA3ET!#RbOQVXq`u%5SEF5KOWwKJbrq1sfTm@)>HTKB73W2hqAhrJ;cnO#vD z>&V84Wr@8w@@lazM&&~m#gl!0)KlG|Py6Hx3=tD5?Z3GM;Agh^zsv(r2b2H-fDnK@ zfuexAf$o8^fw_U@fOUaAfTMutfUiNQLHt0?a+hKThQmx_t0-K02pc*1{gLN?ihg>F&G&b)0otlY?wlr zvX~l}Mwqsk9+*Lx9hf7S^O)P1=a`RJ04yvldn_-kP^?6(9ISGzb!2uY z18i&TBOGZQH5@}68yt6>K%5wybeuw*4_pXbWL$h)DqL1v0bF<7Dcn`uL);tOH#~4W z2|Q&yQ@jp*I($xi5qx=kEqoLFeEcE&Y5XJncLH<*5rQCsRDyhheS&L3MnXUp zM3hvNVw7@}YLpI?9+bV5qm<`V=v3TPCRB-3BUJa)+|(h|t<(cFNHlmf#x&M6&NRPi zLTQF*zG?YrrD#=YU1?)!OK5v&m*^nq*yz0JTIt^D`RR4(J?Jy&Tj>|+Zy4|x#25@1 zJQ&Iuwi%8Yff?}`xfrz=T^REi2N%%<>}$sj9!*+`1qDtRuH82mO*)#QvU@ULKTPim^SoKy%74ySFMzVPqc`vcIkNxAW#z8H-y`^{k_ zedTB0(p?+S8lZ|(WSs^e%A@L#OKhn8g&ex_CWZMmB2yZoIEpp-q*W=M3CjX?*NgSl z?v`sEfvt&rdTXi8kd#SI(gAFVy>oGtyNPQ|>ET8!!n za83W?sP0C1`$X);aIAw`nY3QowhL(^6j3N-biZb}<_4#iexf)j2w2P#6wmFVX^{(=(=N zQ)phOmhDXIgPHW+F$?a_>?WdK?V*`?C~4~jx;5j9YKwj3a%4aMj3UxJyE2j@^i#5Z zTsl~#7YB*gtT@&sWa7ZX=fNqqH3UYBU1vPx(S;A8x-?5?&M=GV%LS3Ig{~uscIXvB zC<>m-IDdFOn2Z!C8_;ZKX!>V^ZR!R$G#bysN{WOv+YlXFBWss7HO4l`8b_>K9hDg; zIWa#N+6Er^G4(;jV;O>tfHHF6EzIMV{(1BwQPecX_)DvZv1c~~3qoQqLEpvA5p zgU)){$!T%bnyUC-L--kIMFq zaP;UxWG?7DC{{?Sg}$i4v2dqjMYI!IAn{ zhVP}Yxi?bVBugx-|>q_94ToIXEu1wqHzq-RxE$Q2aDA_bHDO!dR3UQY< zRl`iO-P7SrtTqS}jUpe=9;5c#r4m7R>!@MaX5uyMhy;Iy0mYK^=7Gl51jiEJ=sU(3 zy2-S-3niskn{g+GjUn^NHAW zDuha^Djsaxp{=9RtOP>0tbM`wDXs}sN+I+RK4PWdtws20NUt6-1yYzHnO}vJFLEa_ zve+WFVAIu{%c4*&1(O1@K>|a~fEt!xcb2k)QvOxe>x0tOoy-yWFtaq4gqqSn_XWJY z0)854l>^^~deDniv!Zm8;`s5v2t9;J#GA^<9$|sM?*WqTb>T&Er956X2**}8@vNmZ zo0zoCrM^%j`TVeFNm8PP>*CERT`c!ihZv;ii|o=iV>5Q7tB@X9&#ijrs0p(2nnaYL zgaew-;YbIr|CUCCx^*98ncBBtV4dY;LQHWI&J{E(+VlTe=3U;<1xhBhu-D}#KL{uM z8{dZB#38Q0#hyyx3y(aSJJ7HwW6@${fyLCduq1Jzcw&#~61Nml$baGnC44Wrgmd=O0pru5|Tk~af6RAqEzl?3aWemTA1ciR=6#ThB; zEDI!JtL`XU5Bl+J#FJ-($i&I3MiOA zhgueaMZy=@v4y|T-~0A^Ffkt4nx&- z>}7B=j1F0#&0z@((-vl$y%Xnt#hkA!rYn3UDP5Esbbnb7*QwWZCdRu>Nt(h zp8jLsbX9s^2rKtL8rrOQ0~5)>w7Drro|5`3z4r?zp;#D^LZ4WGY>IpA)t>48qs$YN zvvg{dVqWSejD9wIT4okD&G46Fi3+ei{C4f9vWV-O&AEpeQ=rNl!Kct&D=*#OWx(vV z-=do{KeVc{D)bkD*7F=^T`D=mZ_WM8b<|ZGXXvFXk8}Nc;hcYdA0I4xXNarPc<*mW z%ssuWT6U{-H@y=w#Gek!ii`N}*6a~2tDxxt&VNztE%fy=$8RK&Szu58i5R+0^nZc8h8S8cz~d6KL*uIK*PLuo5bz0iFyG8Q~ksU8D7P7`Ss;qJKLVes-fdqNT+50Bb3rEN-;XSdG8O}a%J zj!#Za1WVHcS26~wFEMSVlv;}q3Nf5rgfgw(jS8+@0$^RB-_=+wLbBJ6P>nDCQQpJ`;;dNY>0kUUkl4A`#@q0F~&d% z-pM7|Eq^*V$}Xe_9&6vPuWgslirkzvpl2G(QL}vwH$>FC$f*%E6BO27>UTDp{$#q5 z2Do8+E*hPL<9O@WceO(f$u0fnw1eo!;Vd^H_Jx(zE@57<1~asK&f4^Z#+O_pTf<)Q z{#3PnM{A;sQLjyFS0~;}>l}nton0<{4O^<5hScT3{heZr?mFjHo`9=*PMcEW+Q%Y` zu)4KE*O!H!E=hWtweJMHYpvXI-iQvNGs2Sr1opJ24aWLt#P4)x@Mp)lw}hix>bB+? z@j6f0wmSQv8yk6_4PBgu_m{8Po0*b!xgvz#NV)L$$#)h177)ECvl=n+^!05;I{*4^ zgqwG6*VP!Mj!WgH(@?AY%txM`6!U;TWgc`-{1J?GpB!9z!u-Gp+#fR6p>k|vfnv+`Fg7_%C4pIF}H0oFi&AQ!5jGwTU@>xokb_*BKFt%YmTwI zVSnVlwRZks%&x^vS3I8zc~ElmF`Qo8n#nhJm(pWo^tnzi=WGOeJ@L)`YxiS&SLrcM zTJJvY>b^daSfI1nGW=}R@+vIUmm=txDct_IFX7q>L=bgL{O7w~c{T6ZoD=1(t4C&V zcKbrUdh5GF>7{yW=cU@amcikxc4@RFh1$-Y;I7%oNp^5&Yq<5@%ErF^W>9x3c4qAf z#Bq8{IrA8Y8$ZZr@fZ5<(lq=|Lv#V-o)CsR@yq?`1AW`)bmwK!ZJ`#z)Q!uTw%nnJHr((BvJrmK^ur zeSvGsbank%#jn^ao36)K6328a6-g?ETQGkn4sc`7=-()Oy9^sAufnh2KknZN#2@HS zf7bqep$u@AGH$&|WC{mT+1hUg63N!?iFBGxUR8Z|>QhGR@pJ~|B?CdE5TzjF9ZCe( z?6lfLQiZ7`I_NZ{+O#b=$93C_i{Uo>EWcgWl(AFUx7;jS{(5})-AqN3^1yfWT+K-y zWVri0zsFJx=7|U2!oUhM4-%`6y>e#6{o5;jtxS0#c=?q6$nAvx4v`2KLZKnZ*Jq@N z2TvgpkuFxtQ`UvYa-u|@qez+qml3OLqr$gl&5DNBivG8ATv6fF$CNqMphoY`dFiIc z#Bi@Sua5kUz9OPiq+ub`M=6s>r`t^@GI^-bn=ol|J!X=QBJgz=w?_q!AJeA-e<*~b zj8=o(B&<6QNR za7(ekAZ0}# z!MR+w4aJZ2Ujbrd0q8uxT?&{EY#F|pXfFzEsF7J?ahv?|=HeJ>rZM@;VOS-33#{O9 z=0|7=H@QjVNIjCB3gz@uDi07t?AXuJ-rAzFuWlkogDQPT~Tt&dMfw{S^z;nwD7xQWlV*4#q zw@zAXs5=#uP_w4}ZL*1jphMdyURvJXJ@#2tNwL{o_;y|sDY$O-{aZ}OwKJ-`!YNG0 zra5mz-3*FY)&gNm*0T1&u_PEdM~}4aa1nJDdvl?wAvi3ZMbPqGB1Rspk7yHUA!-DL zDI_pND*i4CGMLMqt+g%wNZ5LCH)f^quX)G2lO}{&zB;)e3JNqw(|Mg&xNv0sOCglzA zM!Ad(WxmQ+U`ar&e=krG`FHJ2yEXimgT`C;`}{Kz^wz&QggHIZFwZo~I!1dZfeQiq z8=HmgF8BD3z}3KuTQGl$AxH2fkwX3?hVYaR{aY~0mv7F|LY316M(9Ul!6^TtQ7a;s ztd90|I0&7qCsj4i&84Cx$li~4fHT$u+^WPQZh$B3`(3xz*C4I)@c{{;B{B`c-VVrC zmLlj`_tnCvvze;+DBnC~qSv2ssEjadp0O0}Vf}nEjZIi~)>55cHK{I*E^aHYoYNX7 z=rdLBFAZmSSx%pN_I`E?v1b#ZU6#iGY`$X`kHrh?9i6QtzHJ&4qCIFjeE_Q}1Cobi zT+58Svo6Z9E!;rcpf;O=ir+Ig!xE)b zkxCfSmd9F%6xU**FoJM#I5T(V_~CQVKR!)=UTD1C&Ac2xXngrgypBLMzZqQLh(rM$ zN?UTJO+d16q#d$~v4n|-c!n9-Y5i`m$_4QcdcY{D>P-zzAa|Eao#U#^nJQOxt`o~0 z4tsfSg-c-riJ9)IDl8e&vf{9mXtu$E=eip@JE666e_x)igzukhH^A)y!hI2PdRNY_ zez;av8#EK)PT|F%ge}33MR%PEb} z;0`FD>zW%iXq?Ewv=1*;cH~_B6pjSKDa7} ztBx??2+*SF%mz=Vihq(COg=nBed)DaUAbf#`*;!mlKSZ7*~ln%`M#GMR8M$W0Qp!0 zkEd^;&Po=-ssMU>l5RYpm7;I%Hd79NKrNVMn3u8>SCtOMMAT+Rk8aBhv$hV)(!E8e zmmSuAf7cm9x|;16AXizfzA@O615wjWqMtC~DQ*n?WAI)y#I~l!HhcKzGPc>BCS~ht z&W?Oj{UW**j*JZ4eNby7ba{6yY5vUQ8FUv+4A*J*!N?A&PLx$BS{f&$Uq4>NERt*u zn>OObajB+1&YuTL2H2||htf;@V*ioEF)f^nSC~oE5sakxKD8dHT*0PU8EihwX|%KZ zvn3YOtrl(Mh2TCgBcD6qFFgdEDR6b5jLbu%@+o0|K(_QTT5x`uX#s6>cy-{s0r2Zn zcx*egiz>DSG*%{!oKu@6z%SvODR#ek&AfqQ>o33;KF_bOXV9-$z3jv0O1<6pM zz#38@G0bg&Bzri3ReQ^+prJv_E)iju@-HmM=YB~RdTs`v(5*I{hcDi3h0voYvMTn~ z6E|3c2iKfQNudAuj+z5W>fYOadOGe`oM@JpW}oNf(q6MkgY7gL0mvDK``H#zyh5X= z4$i~_f9?*h#iJOIPky&JqQ5VZxv_1^Hd;N7VRSXkGt&*zH^yTDYh)2@;cq`l+w!@K zC11A=>~yCjZ2$xX{%vBKF7j62EF@kiBp12~WZpRCtYs3Rtbe`WJee%?5H@j_-$Kkr zrjfHm*o|-J=7OTqwX2p^O-F-yBU$#XnoC6(E;*aVFn$NOqnl_h%N0RPUZwxo8K1Z{55iF$=h8$s&kKdO?@Samz+WwAq3H74#x{ zqWYzR(Hn(u>RFTcZQAY?rj;`wF!tTEQMb>l!pT|1<5(OD2#9$OW{PY$U$r|X`HnUO z&W#*-GURfW)<%-`*)MiQOAgKJLRDdHW$Yl>Gg@XN?n5wW1Ekx%85tyD|5Q!IK^RQN zfsWcnlNb>YgLoY?3h!Y!tphd;yjR&g_k^wA26bD@nO8ZSoitpn?k5=6>FM0eNTjL? zX1SqjmGMATXz*s$>eOT%V}zqrA&e^AB6fEV2{S&&qh||Ajg3hhOcdP?Cxd+YvJ7}R ztv1j1mg!)Ywb?aXw&lv2r{!1{%H{OHMZFdCH^jfwztL+>b_Q`?xe(*gOsqizsxhiF z@&GckBwxUc5sA-1)FkMWj2R9-6QSYU*0?tr*-gC#6ny^()saWHUv~#{^y}CZ1|gC< z=(A39?3--28tbjz?h~Lb(Hl{*Ym#G?sF%oOV*}F_t$$a`0N^e>Gy|MX*tItQOx-i| znY^?(n6zQI-|Yl7(~ClO(N_ij@n;9sE{%I*m^6b@O2W4#9QqT~0V}#cp@@}KO4LPo z_wNnzEoiN)!`NG@nH2qbsbius)+19lJC@vK?+@nhfSXJGONYqD*39YtWa^aa93VX4 z*s(f&a2g}bF6ZwJ%`ESCKt?Z}2Z3K^?tt_6?F=&S-`T|MbvUjP(L5L+fFP_E@3ehr z`DSV<(0&gknD#t1oA3;_sr;WXJkMD{!rrkDX28~dxr(#%%##2Qgl^n{M4C4i$+xA? z*}Z*~Lq7GSu$D#C-(VyieRMzXB{mKH&$UZ?7GvX#8D*T*X;d2)tDN0~9O5d+;h)(|cFe%gtI6wMH7UCZ)i*o8%EXDc8!b1D5G{o|7l zu!MKRcb~MDj`ygJuWOH|fxEf6yNz^|KZBaOGw?Ki$Q!TEw;`WnCISeov%r{D0c{je zqBMt;mx%%SJ<`MIIl?Eg7?*Yq+&Eq$ z$I=p>GEF3h?3L0qMj&$zev@J^f(VSzD!vdefoO~a;gc(rHJiTVfYA(n#$$bxzI}Oy z9q~Vz0d3R0D&!v0y6|y~ujS&RQU2k8_E;1Xpg)!ZwHvuxy!_oo6*6ujD8ZLdQeo;!Zt;aY=9fxeySppT9H?BP5*vW%ozbebtC8weAT zGrt?pw|w26@qOx#xDTAxgr4wkEG#KD-s-#tv1eOalGCw^Sx{YM!+5);7v}gdfjxVF zX9JQ0$vB1{nWN3capYJ=^D;RZRlG+>$V<5J5aaXefv_E;>7ul*GiNVRL7!KWe;xz8 zuHn79cn)cLHfTbXo-%8|$~9QA@D>l%ddEBS{hy8>cptg_nb%NU1Ce&@LW6H2Ro`7} z2PgW!x$=^~Um_@WfB$8U6Zq9eAfEq$Zo~;nhvFJ7a46Ff-TzIKq5hyhxe=lSy}!O+ zyV>TQ?fGukcl<^31z$z9Nf_*36`uPpisB|>&e63zO$=VVNQ`}D*J_V@zieWZ*=q2-;NOpj=0#^=;;24 z-6E*JuTuVTx$D7BMUC}bDUhgR&rU!Ck+uJ58zqnMC zk#1@u?PNW8BVwwUHu3LSW6kmw${1$VZJ+*{?iW_G;NklVq4e(VKr>Qe81zLk)!m{Ad855=R0|oVO@h`AT7a1F$9vp3-t%n*RGI~O4 z`iuKe)l7QC6;@4#S5dQ@AA?F(Y1^O387GZNz~Y^MrT`WD7e}j^tiPk9Ki%#0@r`MA z8Hu;FQmuu254tq`iOpD^`-DLFHQ(rJjC$*@@FXYy1O(6P9}XE3NK(91rYIlh(tE{K zmXH(`s_{7Qf!HUJp6`CAiTJdU{%+7?X!Ng3zhTm}QXpA>v5mHI^e zGDqNkTZa=#Ax1v*4^|fxo`(Z%^EnR8DKSXun5@une<}`wD-^^hxdovRP9nLzw}wWL zsesMTR-Z=JEL#k0E>X_D2R4+E|0U=2m4Njrcyah4%WPM9hb745dm4MSIV2DZ@zx&w zRTkw3y<3lDvw6c(8#qZxpjlLEeOHq)K!dHSP9t4);g_2JrC0qY&0?%YyvsbldSzP1J)V*z zBe~Q!fYc;18~aTeV{Iq`Qzp1{On~|G>kmP0+ieDsfyeJXh3_!GBYTpO{Fo`gl(I!( zw1s6nGj=a`c06EAQ%Gh+)-Tcp{E?;Gs*rzCZ9+43#~wO5qEHhY9tzkGlUKYA$pe*8 zqkMX8sm;leFz0Q?f&${LwvjnB-xDH~rBp1Gkby3`? z!wtQ#1~S4Ex*iHucoc*xl2TMtvqpjlr_F^aB)(?40Ff9$UStEesn3=W{2`H-)-6(* zt1}d%&TWK9!KoqNk@$@3Z(&zY4<7u}eNf?@Y*yHKS5R7=&wm`xoOG-WkdFYO9&}knJ2{abz}p9@WC(gBVHKuZzjO59>~L4*#dI%LLNCNjBn>QjwT6 zym9B>4r(XitV9!ruIs`5D+SF@Nx-ZdJ7gucmR zWbx%4`dJCS-CI+Orc_a!XtxeB;xv*L(-bR`e0_TIQ69rF>eU0G1hwL!c9R&IuXWye z15-2Uf}E`wX^AQ`uZhk6=AUsY@!X?9+_Dme9dIeqU|Ym|op|NXKQL%@qRKD>g`J0mof!yOP`r_FY)}>W*Dy4oag>z^lWt86m$v82wNXU2RrWW z2t@_j){Gib9oc&AX9S6A0QwQ&jl zQiY}-an-hj6EX1+uA6FN{^r$EO!=C4s@?S2o+xoR2z{ejYz~ieTyXsKb}G}Butd=7 z2BU*c<^EfynrmCWVodPO&p+7{#P^XB^m4jN=!Z9?C-`@fMiN(Ttl>y6_~QsHx6+@h z-)$=Sb3c)bkP}WWS^TTnbkne&lbm@@&~{W^&kkk@+zu!A_tJj4t0w-8Y*A2?Kx4z+VLMd;nv{J;k?MtS8&Ue6ymwE_$wNCp)AT^9N6geddUmN8oc zgVim6@roYoi}E5{!}4odaN^%Midt93n8k_b)1R4e#qewCwi4ecI$?_d^U%UKmdlo_ zXq@AkmiVt3A_;I!$o?i8DF*ulHi4?glr?d!GIJq2-=`eZUNF>P*J0p3a?CbQmtB?H zyt!taEHyup|DboqG^zfQs+lx=RHqEFL1ZEb?q|q_ARbqr8wDl%?t8hs^k_Gi=PFFT zv~^QYJCkQw7vYg;Ir_`fOheJ(t5l(n&G%_M4i?w}dbEa-0AeHPTRyI7L~n@MAwP5! zzf?1m)hbLbn+TeaRo*m7_7)*kmBE=?GDCcyRVDd9&H%O@v}= zb+raXV1fI{NMc;Fmks!%v67Nf4ven=Q!4ye4?IO`0W1IT8NZE;e*RIyPgLP7Y!e6$ zHz>&+Zv0);{HrqOR66V8>Zy!t3o3V_Dd}}4E;CR*XBvw&;)H@?5)S@l#AL-ptGpTY znuBBY3ho%{zO9PZm+u5NV~U7^A}1mZg-{(_Jqc^6gw{0DNlYpt)EE|4m>h13ocZiu zg1<0&LcEZu0Rwx&#jLOc0R95t_3rhU;H4tG|704OW zKd+)l3!FQPX4_x7=t8RW*k)lvg$)VxDjl$_v%8YEtJhvH5K);|>zFXexd^U2c5971 z;nG;OfokKNMr%kPpf7M!q+khU0Pn~e#E~JO5mTpzhlD||*RMMLJYw(JF?)W$2_2A^ zeeJ}`ZD}waZMjGK2lS{Bs)(=`@8RofEWL#UPtuY(ffZ6kJ|aoBB9J3XU=?3h_eQ(a|RPSAf!*$xiyL|AT*6bLc*i7 zF-;Mdy|dizOgf*iwbW{RVNf}-J-f8JW8&Tfk6fmdnV{Xm8vw;hQK z@2psOGJ05a2qQcO<}iFOBw^Tziv&l%#5ASASn;@Plw}MP#X*z%TTh{%fCnGlf4wUA+jG2oHoCFCRHC`8_>2 ze9LSR3f<7Nm2Z0$RSgH}oETCZY*E>*@`J#E2E`(Zv<}GnM8t)2vB8%U8Ebo+IH#Bu z^KP@fuxZUM4leiu$BpyRtMt2jKWnV5_SDX6_^jQ^T(XfT>oYL*;BO89ilPyug>fXn z4hc$;t3JsujZ2=^lkbbWrjX^4@Utah?z9QROd`JBO8qUyV3)j*9FoDJ`0Dbsv`zTf9d`64aYM z296ZX2IKC0kE9j9C^N+Zu12(aSzDGot64I=Pc;%`pSZHoX7aGIbItOx?N@g|{?ijt zoZlJI*UZZpgGawv+R8;F0_fWQeYUse8VDE*KXBc=pZwwlE&kz#hOV(}QAM(nP6UTS% zF1N51+i157zNJ(})k3R^<|U8E)6H$UmnR0++N0xgB68=^GM2rBxooJWow;5=pMeSJiiU+!>v3lB~iPEos+C`iy;{(m@>}isbv_&uY7$#`N;kSUMdMto0}4=S`KIXeS4n3!7&M7 zr{nIPfVO!eQdqLaMnhXR$)j{c=BkezL~0Dgxgfy1B@JjO?FE4l;9|id#LlKok6UnR zOX*88;90;FCKeeIBUv@4Yu+sa_22RlBkjD)3t{#{5o(6T%l2i@s^!uAa!!o@9c3b$^4!Y-Y{r%zj;7ZE-3Gs#bn8C5TQm)X7|EkjN-@H!k z-T?w1To7P2cT2a5RxqMCsZ6AWFKiasOU;xRq*@gJt(~0Oz-=hToZ+XMojAYR#%>sr zkyK@w4i$qk7TYHa%m@N5&;^m>sutQ4^97UddfokPv3I`ru@uHY`HL^P=S_8PiQz=& zHzZ#mB>V(WL5F3u5(46ZASAJ`CDoMdY-Bl<=X(IXUgSMWrj#8Q#el;8&&LHvI6q|c zEuHPPE*OIE)bwgW6{+)=T*6G(SwUyc{m~R^=VjHkWb9-IFI(maqOnBLQEtc(br#uM znmfGMSTC;kn zrJQHk&AX5s@1I3Dc!dWu9owrQ3|kFQ$^)Q7i)HW-U(H@s^c>d|gL4kZYUk(AcNh(X zqgsA82n~&|AQQS-Z|mUH9*OHNM1MAIm&Xl}L+X!RkGZ9HKWXh3h1PY24YV5mN8G-0 zXuadIokgJb>dpSu-WLY86o9l$RHIwbrrGtSDtg5!{bqL;Xa3O`MW13{LO~U}U_EPx zmUI{#Dmp@;H5ILeJOIzRkg?~}T%Rod9Y*`+?XyywE8G5PuPdZ7>|P^xUBm-s!5*cr{-!no| zqt_=+-6}a1{A~@dVh`rqV*enXzA8=28+wq2tOBn`sWjJwkNvYL3LX~57geR^@2nCs zwwR4qY;_>#5+!Tsd~~2c8u^Viz`RUR%N@T3+KW%$@_lF&j!efeyE=3S#~G9yOT?%) z_oOZ1V1ve0sbdgx(32wn0j&uSixKBKCVXC=Cr1U5p6o9O5Rg(~+(_ZyaR|{bCOmEF z)iRN$9X&Le6%zVDXDC(v)3ubCVu~>MCmyp)|4ce^ap6Tw-kW6ZVm+&)tBZE`R#9n1 z(#)Of2;P&izJB~yT-$eP>*(le&QCHfCZy871};ur1H#%hzs9TkkDyq1UpJiM8Cjh$ zUwvck_$<)_ruNM>fgR*&?dK}|#w53$%*gQPcH)3a95=Ucc4@o$z8fY&s?>bTJECDC5Iv>0_ zkasgGqAbDnC(zhPJ?x#Ngd%4bx6T?FJZ0|A7f3q8DCmG=ZC-;`uPGL|AmEY=?8~P zJ-Y!TJTa5x-2(JtB&LB-Jlf?KR9RC{Dc}?I3+w_I!m^`(shA=jRU$FPza|o;$56G{ zNdri?Ekg8Alt7p$PniOy9&|Pz)X_LF*kxilj-d^uut|;ty=@t(e75Cc;!`}9X=5t7 zMugxZ4wHUM57mu01WC!yv|+i{_JI4yMk?+Xz5P5HEM3Mx)|`)$4(=sMJ!X0% zq8bS=JJs!KD`?Y#%d{mB|JHxcn;%fM`!fOsv_?;E&zqUw-g)I~r3_SmDafgnri%P* zrZB`E+r?zDb~P~9R3MM+Xhjw6bUeA7{XejtxbGbSB(Zy8j!zkJy4`E;tlPv^T`FCNsg8#+k#g^ znn8|zQJrwAkkL$}Sf*$96-}-c4|WP4I}nY{&;PP1qCvetbrD0rw+X^{kBFeSZ=IKgs~Gd|x!W|5oxJz*N9a`F$&QHb_{@u+ z-I8SBn6TX`Hx(Wy(^%F!$Sv8qi)9--KVq|=xT;z>?YSNZ(P2QhG zBd$HbD&@ngC9rh6n>kQzs8?qiFy$a;hCflw4tLZ*9@-u7Z-|Nm))R&==>t(X$Mn1MGG17Gv_cj!U4unE9|Mc; z*7$Wi_f8}KNV^2h-eg-GTJ;TcEI;XEhY2Rad3&zMy|XmTBa9jA@A&nuKcl9{8%x5z(q zPi))d%UDBGZXH`^KBV&h$z? zxB^(O+f{q7-=5WDjnAKRseXW7FYcELjRemh18&|-_K)T*?nLBmLlv2x!MR5^v7M|# z$@>--xiQ&9W~&C3vr9FWIlB7HkN@01JnxX8PxS4pHy|ZG1QBw;YY%0#y_M-H|2TO{ zZpfg|^SP;RLGy&k%f~|@#?>qvHDGOxm#2U*Eup2QA5%B1cEX7}QOJM-1mpB&M|K8w zI2#yY8FPGYE#n;*GJ=n}+Bn>lA76OeZ2|pDO_xlMiQ=5jgJGIvlma|apV(vi8+pt4 z0;V{Q2u>YaWGeXr+O5jWSc5yr7vSVoB7A5%m6MfU-sKa6Mp_X@vy>_RNOs0GryeD7 zB*J~4c|^3P6>?Qkm6oBe@0uwXK-S%Av<+TrH`HFL`Ph>!L?7QZ>2ZB;SQqpWMPhry zRT%SV@H37K)8zel+*&_Koj_=CN4O$}wdP-;!DAu60n`}iMD=vT?&DCxQ;~vx3DK&V zU_=iOJ=5Lt92Nq0)7aDesRr;QhJVGdP(8UvjBO?2R8NU4Ab&L_#ZM76TCx0Zu@db@Fupo|qqTG9Td_3a0jG(@24sTHAx zhZ3R*FbO>uU)|4* znT>FUqv}YRf?*mD4;7T>p~Kp^tihk-9uaQe9dn&I(ZbtUHO4osxAxC2+sZQC>M?bk z1{(U+%lmcqn4wQ}ZdY`)@&<2_khtu8EXlcGgw`qmNrkJ?wcm*FScSFKP}Ipr zp>pFNb40JPlK*_}#En8?P^rK9`dFvKTl@D%!lZ+(l8!5cHWCFIiL%Qu6^k;J474)( zKwa%T@qlQWTI_lms>e4}I;Ttec+wK$K-1?R{(N@(`hi%&H!SZ)V#QI)`}1(T8uH0g zv6w~K}S4-;p(5t4}}xClB)hG+|KK}vG$mx0+uxnxkEB*`n$&zf@Km}Dmjssr&! zu>I0(K9pl!Ut#osFnjbh!jkjBoAa1ix8S>ajR^2u^af&DsZw*o7e%Ey@%?8!bc1~{ z5~0&C$^*dtb#*Gy)`vIaGW#_5j&nK=m(Xuw?GHoMd=VM7RQ$j1pZN>cjI|Acj1X9h z`D%1kV00mO)4_V0DhIjENOS|P!p`I5v{rG7Kg793Y6N#A54&4>yzRR7Q`YM5pwyYp zB4Rl-JR2Jg=|ScsA1hN()vqr6AIGQQxvw?^`hr4J_D!5IL%X}tYH!nT{OO$<_TcsQ zq6z(PgH%$oxzsGe2F$x1ERlUH;!-A?ZfIIyxZOB;P^83TcTTMf2!%s?l@%u%-`rGI zh6=;M7?i!0&MP8#_=>d&G3=@- zm-Aa$uM6VT0Rty!{zw`&$Y-|GtD+0H)2X0)n;1|N(NkY{Cmu8}`y-GD75sA+)2Q>( zdpZ%z#t5d22clEUtOyL4nu>`J4lX-+5gnc}aE7Sl-}T{Y=ELs{;TNr9n6p3ur7Mh` zpvORic#O`A@%q}oiB)e-*HcgRy9}l=;zH)<4hfR2Wf=l4VTE=0Ek}(KrbX}4nKc@M zn?FCJtxSNm8!_9Q(#~W!X7EO79e_7T*Z8;Rt}3?9gZuNJojo6g4EiMP-w&59?>QI8 z6_lYFMz!zY?73Be(-8nhbs&j+it!sZswP&mj?mY=djlm^*o< zK#*^CeN~k#sw&WA+5&+RVkiARmN0$4Ylwg7lib&!rB}$yl9I#yez2R;`HQ+^ zfp5-+lWXd(7=V>%#=2Uop-ZLqgVfrxEJe9mJCNE=5*2-(0n2v?xTMs%8MCq%wgMyA zjK1Z)wtaQ=qZ(*)Spfmz(5hbgb59D^Xp_ng0(Um@#!vFVw>Awgg1Bz*cwUWEPTsqT z7_9-&TbK;IN_{-Y+7Dd!v$Q;)cc9kP?V(}Fi&>S7?8*X0^`A(fUx-Y;mI(53J8V=V zQpmzqsG056QYNx&YA8%^ZA-~>{;|ADI8_7)#9q$Q>)@CF#k_GdP+(F5^Ddv#C8?pN zjhpJi^(->1-9&?BXP>n7e?2$R)xBx+-E$=_;0n#?{Ft1b-CPCTNvcxgfKFY8FOhxq zqH=xk06&(U;grIXn-9UT$y#og*rIYU7MR1eTVu-p7BqgXhdk2(Q?%U~^+{#Uc;Jf) z4Tl)?>h_K&7#?1tzdvU&KzAhd{_9Dr+*=;-TOYv%68-^9gc>c49G5keX#|C@f0P)BbFESirI5z&P6Bp^gQr#ZBi&QF(&l!;kR@8tDdT#E}y_qCSTJ-77yoL zQZ?g!nkP-+xAeIyQLnr1@1Tk0?w|^}bWEc5p1-c1{9691m~|E_Iu5R!ooOthJ~SfR z+y0z8>vhN}Sorwhs50+A+1KZ`QzmFgXT)@UJM6g^=98?Vfpe@9yUdxmrRQ`E=Lj!o zhV`xG1M0X)>d<|C@xQ3iV4>D}DN)0^O4675e;2GUOE)HEF&+^E6THc9x8|;fj-Cac z7Wdhn)cj(PK0gF*GpfNWj>`8}Zu^Jv3jU^_CcIM?Rm-#xxw4{8Si@RuAzr}cpYz!^(@^elRo5|vtytm~f4nY!PRa(_gEvt+ z=kJPB*6_DH2bi_6gn!p)4Xc8j^^CCUcq+okDDsUc5UTpgn4pBNR~`&HTG7Zk8==vM zs@qPM?;4kMoX^=)Y;$rp$4j^-r|eB)3GiBuZo-H`^jr=jm|K1Ro7|JcE8Lo_95J!c zQHj^E$%xFLD)76Xn~>D<^kqsvaMLK3MNYCZMl(7HsaJnKNxa3UE3=70w%bC+)g*Fu zmk(`)a3b_0(I=1G@ruVxq^^GFPPXzfGIEIB#x`$xI5{p$*Wg#G$w+?=o?&UfOUHlN z!Ca3`nF^nO6yW6)@oiWQ`J1X(vDEwuFw4pEb259Tv~+kf%@c$?pjH;;+Yh;zZ$N@5 z)|5Uh!!$iPN&lmEi9XgmLkWM2c}Q>KFt0ettQa|EFpUC7GgrE#;S-wXtrxle@OVk6 zmyxUQbvsdQ(QwL)GIgqqKg4Fd(CE4l`yDTG1qZFLCd-2yyOo->~d8 zWPi%QHT)~^Jsg1Fol@`VqE$tJD?oq5G=Zl*sZ{zwK62hGZy>U*U5oOevazwPJTW|G zD=guSe0%0Bt1zo*$&_kOb3OP{o^K#ZWE7pZXwW*R!bxmA-YANzf%dm{yJ$#zJVeZyY>K1qsz(-iY(p<^I@V*zkDuFnb<9tuekO zgTy@@DniwJMlspC?6E=!yl7nIhByD!y0K50R1t@sNnJRR{!0)+j0`sjR6>-LUp^)> zTBU&^)c|)KL@-#(r}kHs`wZ!_tLrCPO$8D{4#?52g8iojA871D-$UV0JhDO0?^ z@AkJ+@1WH@J;zOAT8%MR@foiz0%ya0Stt4KG^@Do-!*XDB7H@Z$OaJ?UXdc7uDJ99 zh0g!qEj6#iJkbRjo%g?695jA+V#QVys5VHrUtaubNZ-4mscWtN=!_?9PTuB~f^Ly? zg=44ANco@N-o?_{3`J1d#j@pBlvPeMp%{xgnCgWuO%AC~l$%)g_f3PM_7O}^>U~Fx zHR9RHMqBHCAb%K}P0ji|1f_l$|2C9b^2T{r@PC;bA09ps`f#i)Z{vOAkanL3=N5h= zqe(=gK`~~eb58l2r7ZWA`2W>|usylDa(kAsCL7pxwUjl`C!jktRR5M~yBN6jW_FeW zRG!zK?fqJTqJyhoK*h_7ph&TUq`D$Ci~979FE3+VHGTLFIvI>PK*h8$GSGpdR_G(d6XeXKX|sG;Dvj@m;Mncw{b8SpY*LW_Y7hm^&^x&#Q$ zfDN3erSd4uho!qlu*7cO5xKxQvd0)NXj-hQgHz zNzF&xHw>_U9dTRR8XfWUb#Lj_>#117tf%GK`lQws1vOn!sG2s{{&{{kbY;06L_cJI zyma0BYdegb_0E27f0{iq>UkG=UG7nFce8mXyHvRo>Ynyc(|_t0cz9aPO@G#gB-+ao zcgiMTyoGS+Y(dg_^4sU@@v21W{ZXal<$D+83+#`dN%S#~@SR_|e+Uv})Q>d?QXkMX*2LHLM8Mw)@SWLsi9g<`?*Tp1VGMMMWe%R{-M0JEEX0l776y*!IB*v}CpKoq z<|QKsj+*O!=Tc^t3rJ3oA1qb_uSzdUb)Lmoi!pHVt{C8_N1<*|KVhTcnO}Adim?~t zA-SIRl}p5GZghk0*u!(|NJV@J5M$A12D-$8;0wLYXygV-jdn|dAd4JGz*8$BGbPME zm|qz`dx?k9&<$>G(gHs10=`E?c#D7V9b$!dJ1(w_3*Pd2|G3!lJXhR*ZeOws@_0>c z4AONWoajRc@3@D3J=XB!SYWBvcIPA1KL33+Gsa;oV18LL*HFgrci4Pl`nw1pZMA(# zyFAdv_jjXFqaS#HLUZ-Y#2x(M##{3FNp8o)kGe+789P;zCqJ*m9wrO2w=jjy`qR9U zM<0*d!#b{QEg!ax;**`bDSy3nVt)13gVvH%khqtp-}TiUrt!}do;OX9?OEfJWHOh5 z0dbKOxlO1knrE&}#r;_JmRF&f+gsj}yU+eu`?cT)R$U&JLl;bJ979uxUQM5WkqZn# z63U9;KXXw(_~!Rwe1Y_8<3|P}!Io1{B2_Ht<7Er@^hjoFmv7S0Jso{1eX|KbTN^G1os6P9BQz-7|2W^hW%TCFBl-Y8FeI;0aQ5BWH=$# zI;2^o`&nVS-f(jJY>Nm~J!ZI$A4+R@oRV=$Zg1JG_1wY&0y5Ngi1@W73V*V$%2SFlo-PTGELVldC7hcu( zr!f6ij88rV8u35rV770$7OUjF%<{G~edM$TcFkW05LC>9E?Tuk7yEgm`>+s53jis% zSoRonl@XDBia|Y4VrS@MBT`kMSU*%qB0KG)3WNt+>x!v60LN`cE29!hUo4atHXk3= zofA}!5_OAIlhNDJ;*4AvfYwG1J>r5vECW?+na>Y`8=tuymTs5=xSRC_baO;=c4N!OxdxYm1vB zZ?Nt_n8!KaErePTcL^@L^ASP<%v%wfr0;H5K`LP?XV^WF;BG-i(4}Wue@3>Z`6ElF z^=Z^Xj=r~M7FiEbxNvpK*Z(?tF9~h3#A-lU`Qc6%+H_8x+XsxB`o|pz`u$6g)j{VE z!rw?_>-etMg|`iv_ruagUUMWLLt+iGUoi}-qbuiu2nyJs*1}DKRY8_yNM&%4xp5 zaJ0lZDVkn2SybS%)gKKGXz9w{-x}!Ah>2g~ZHSydTxQYkPpCgDKPPW5G44i(rweA~ z73kg|^by;%8ot#G{#mCUT>_3Mc=x&TIkRuWASB`` zEu_$pBrxp+)|oWh;UoPBh9~~kN9)uwOHkop>tUix2;_sWh-#^5f7Ocr``o2!O{Cyg zgB-1E2moqBn5)Q*9dR+8h%$PX^HN#6FSGeKRn550L^EnO32i)aadF}-(xh@P9#%-Y zipgL`;rn(39+sQpcM5VR&2c=DDiVETs7Hs113}-~&Q+_+Q8y14)nJClBjb9ADra56 zH)r?!(eg*JN^H48v=}_(R5vbU0BxHQCdHa4I(~29yvtdoFY)9m47dyVMX%6MbLGcH z8tP57+7nhCj1t+~XK3T6J^kC(Z-#Mg>n`s>fI9JAyZNN?;LN3owwix%GzqG)+{dk1 zW`}n=y8Aj1dvGC?SX2n|oV1TCAu9TF-+ha@G#7WsefEK)^p3?Ht}*xS zP7BoD=`d}d)E)az+p;PDx7g@#UmF4AiygzNCh69`C3l+R3%84WSH!n1X^B$d)gedF z?Hjkc5UqfuyOFhFdH?&!SSeRLjbbY6UPWgJ$ARV+QvY-6mIoQU|I_mw1ae_2GIpcU z4_xhDMs#TbC2Ch528i!iZp=GI6LRlvjS9qO;Yh0+qd zY)BDLUZGl*p)&Cb22q*ny=3$LgehtxfNxMyE2do-{Ut!vI!l^_gfQED!e0ORaMN5O zn)i>uuO4^p`SWbl=i|xI5!nlXI7=C1M3V_x&#NnA&v3#%HQc{pW=(Z&9qla^s9=3A z9Dj&wQBdyS?$TYaE{ogURN+ggG~ruYZ5u_J7{8n~8_O_?7AUXT@c$G_PV+_87PZz? zbB8^((Lch!#1(4$%-0Pb*`)DUnUDSml-9mRK}CU(?z%xBnxn#t~B{`D& z3FWGd|A{S>#cE4TQCgQ8OWu;GxYl{KaD*x;DDyymIk$Y`@w*$Xh$+nV<@EM(a&ckx zy%w7y-*i2mBussf)j^;;yT}p#fKUkLN^G?Y~Rj|cY zI)Aw5Wyz#m-9oCp+DM#e|Klx0P6)331(}gaU&Fqj&1xpH%$=1z2nU1B8vQAfM9Mo)gxdP(`YfZl2|~R$Y5j7qmIkKmTsX z)UCmZ)NT678zB_Xb$)!)6=}m?pCm!pte8v|PSj49`2Xl2y{P+ zp4P*ZrUKlXOkAf-@TtBittL|TbJ>#Lg!DynK#*J|j%@x+{!IU#0NbR7ccT)ppzu-) z%J9HVe8)a|yY0&XZKNw9GoP`p{uzi~Wu7D>&jF#*-APX3_fY-+oAi_ zCT>L$XY9$zE>QZx34swuY_Nd2jWI2)GW5D*D7F{5hYo!*R_2uHfa3j1HX`=zLY}G8 z7n2pLHjE{)jNdQMIsog&;agK#nz$*11?Ob5g1Q9-h z+k(3-FX#`~IXQTt2J*=qEBZ3y-t0vM?X;4ozpVJd5u43cmHQcOVxR_w}FDoPux+(z?h>D zX%_&ti#V6dklr%>tAYOAPldZ)zhz>W?Vopp!bicNqp)Dd?=QQ*2!8iDLdNui5rhWf zgcPvgh&mvkF>Beva}ucJ;c+-P(#P~&bAJ_ zRkD5qal)?C0wTBx%?;2d`!%`o6CIHz2Rw%z6xO3<9C4erp?xC9fC%c_Zk4?PX8{9G zV7HD8enZ3>qpbA(^-qvp|GqXvbzMkY_w;MQ#O z&F{)}{9XcLAwFTM?-F)|HqV3;U!i0D^D%M!mJugP>(_{s3E~5xj^v|n?VK{cLLQ7dCs^p_n!iu-z8uB z)%Lk#4k6|Dj`@QVJt(JkR!$F4hQIoe+wJTDrwvS3a6;#DhR@wmqyNV#IAQ)o-|P&NyL?!wT)2zh&vGB;Bltk^UP> zm!;lq+%H<4Ybf8HUzNv^R<@+EEh?x~Qlqm@s%9;_OKN|GFy)me%S*Bz=Gen?LTvr5 zBU(+e6!*VPeVVN}`%$j_%p1AqVjpD?%~sO?ZH_eWY2PqBr})T#DD*$M))MUh^U79= z{aEw<+KugVlaDrt;r}+{PlsLic%2AaV{{~{$(H`d^o-$Ge|6n&bJA_C)={sfTS`71 z{XgdG!sVp=sLcPga;7p+;empcpMr1B3;(_6$t`c7fZ66r6!W(+OygI;{@pI38ho_+3LPaZk`OYsEp>u;6RT=u0B55w<4-GF-r zcKp=)!4!x6U*-w&eD31M?5e(&-v4gz$1Phkx8p38qo{`SNh3>gBaIEdCX_o8Md{(h zfmN0&i{|*!iW;ewmQg}~a?#B4S1(YK@>T8~OtC-%ICp zR&o@Z@_;y>z-ndz;#{Jwl`74uO2t9r^xw)kWmSl`12-n#DuummHjJrdvZe*AO3J>B zS&Hd4j13qCBF@IkBTN{(b9_+~2l%6d=FYB$>Kn77tgS}9^P`dK8`kE4#NN_*Jmq`` zt>vbi=Ui9wcmB1>Mc{(lI;Tz>Eht)hPPuqAp|QwFBV|-9)JH-HA7CicRAeKTl#b|I3o6ldYHZH#8wJ(T^i4j?$BD7c3 z);O zxJhwIXE#03MbmgXx`8P=>Vb--PhO))ZbyrjhLg&;OG?7Oq-RJ1q03w{CZT=GV~^Z9 z(;oXVinAu16icg*Xtmf3u%=JXJVHdKFeOV7`p(7SmOQJi$}A~)SKn1e2}YAeuHQyk z)*{45?xVG;{2n!RYDGw-+rxJ%(xK?vw`v6dh9z++mPRdb$&5|2qEZ{{KA^W1w*#xOpW%03lk2k>iKV(#Ug+8RHJQTU3me0X&iYNWaQ-ykhscbh}vp@7D z3w&sDd?@5@gl6f@i^M<3^<|P^{Y7hLD_lcjW@mWShE83*g5~E&yb?c>H}jiMY+vL$ zMK5QMd6msib>5p8r$gH$FPFL&VO$~v3z1LZbjvF472m4`tNkn5?-70BiP(e}<2v)b zMx`qR?Nw7{+Efr}@ZT!td*?OF>Tmqw9_>!*<`3tvN^GV065?~!Gp`K+&Ic{kW9=7b zDO=|W7ec2%0dBe{`OWe(<-p?Z{T@f2!1aBeIp@VY*-On?XYi#Ar_@KCEI#&Tc6ZNO zdppe{X`+kt|Vj2kI79MafZ&42R$tp-%IR2H8eT;7}SiXY$n4Ek&H}!U6&Dl zOIU<7ytDoWpVlu5hZ=LA8y}703WzPOEu|h_*Y0rg7+KVKb|83pj7w^6mhD$jEaYXK z1l$w-dutI3`YQ@}2xrvlRGhEw>i_VSEkdIV;uDH7)$&rc2$T?3nOxZ`onHq~WlFg`DdN>>GN37{Lmx|{y)?#e9_up3X4^+;V$t@? zyLHKVQ#w2~;)$}YjQ^acaw(X%NEc+Fy2JGa$REevN!-w=)k(;oYHN%VyVhJ3e2$S* zX_2)4CC5uJoS9(dJQ=}oK&OV{3g+w9HDEAZ47@jhSpLo#xYW`N(ShU^q`S>fi`{|v z5cs}L=m16lzM!a1+6`sCZzUJWn?a?yii`o!&HnkqZK=s#sSs?AW6X4H2>4SdF>`9c zOnEYlz#OTz=;TYNfy@~YZGi63t*Mn3p`M1wsU(=`nJS~;)H>tj8w6Skay1ZG1{-bp zVE2GN+kdmIjlHpCjREOFhT(3QIG{gQI~cnhMk33Tn)yDi)@Q@`(6cc+5=sS zY6Gs|^vQE&e8v9+>+#J78bH@HeK}@8=K*B{Q4@5&&GEANO%H~zhw%#fG@@DZF{rsm zu$H(30x94TXG!>%@M{>ikWJBa_~h@I6=q(1fO+4M4G!ULTuh{kj&I6st`jKr?#tgV z>R(-53Z4QjKn{kJklzT5lW^I^pbi|%z0c@7R&#H{Ob;B6lR>EnQDHKUCsc%c*f^ zU|s;1VW^!?uy93qb{sb0H>J|-(u@Ty6xiP%X$!oleW}`XoC2BGZq?ch%uC?T{|V~R zcAiHmVgDac6KGS7wOc6AzCThE=%D@&<9}4xvFg9?qFKbnv1Bu5AXqEud ziKFB&Jx`5JbB_nt3fvKPvUIakSiH*nsi>TW5AK6{d80MNWjBbXjR0FNga1}La|_)^ zd)hJq1^Zsyf=EM{4m#id3rL#h#<;4MD&zR74lCo@s~*|o zdj`~~3H(*=t<<^7N z?x8cl_rSD)shRmiy5e1ibqn0ESRy*Lg`b{_AO4yc?F8(goXUPOVh$I9x2pU|g?q-n zc&B^fx~jhKCP{-Mq1p|l+e?l5q`oeFZ^0CiC)vZO!%8A(SE@S9%Bc;-N~hbHX~+4j zp88~Ya{sp_R_gRbW%tckt{{B~hZ(CzAm+~NL_U9mX1*OZDJZk&Jn6kymn$SLLX+|9k?qneVFfa4`~$BqnGgl>Z6SAqW|9 zfsqIz!`tkq?O;yaE7dU8bTB2+*zGgs8-cD<`p7u8$gc?I6u`CRe=i1{itdc}2+lI& zFJW)IwL~^xVh|c^M0M-t#i(X@hW`P;jm93khI_=5&Jo7?`ujjl?EbVXgWh0RWJ>=3 zQpCt%C<*HI0${QK%bu@N5;}#T_{=f*esXWFepYdD-RcQt#yvmz?W6;b5T^IfI$OWS0)9w$H&*r9O9>lAPVw88dDPjr~ z9J3=mTWH75G{&qL)_pcexY(`{>W}=9j?vm5ZMNDwCHb^14*#Q{raIjby%R#RR9jUM zlCK2l8pqW8@qwfxYJLI4{d*YuWfJ_7ncngAU#(XyKIx@^v-;4y+O{2%eA(7L`er0R z)evApx!XI3R-oAF>XT)CSJhQjKGgFZ9tEa6}Q+^+^YIro?G+BHC?_9 z2Am0B&czhMOyHW9^>w|m-^kMC-^N6{@m`O~QvEvCe;Y=xw|Lf7gKbgwJK9(J1w|;7 zK}YZ)1OjN?7Ukh=di+DS5nTy8NK?QsvoE0jK;H5u^wl?iy?+hJWgLkqOfxjkSO-|YYaKH{7`Xk7o^Fp1$ZVixr|W<#T(x+NtpE2OcqGAj zk|Iw0HHm%vsaU>{-7Gv{S~(PmATX-?-j^9aK;N)hX)!un56)5n-G_fmK=|H2Dx}-% zvAz36^#s6q*U@LI+c#$K`*%??Z$*B&LM5x2WVMJYChyZa2^~3H6P`1ZY{0Rv;z#8^ z9cw(+!nWD+MIc#;OP60M%}XfY-a0#-6l+R!NZPkKEfX|HlhWna^KSL_~O){ z*)Ah=^ue&ejfIc{!+Pva?(;cP7yT@9>#~y-$GZa62(%nI7+&-nT(oX`epVyqtHtY- z4>+)-y$$R!^#Km*b|y^#6XV6{&)%a}Dl!bt6XW^mn(SmnvB!Oed(nkNwspIqLQ{1O z;FXXSt?D+Kymm!9z4XF@bfneW*g#SV!KvY5)-eAb)1dS;3=2|}n zc=x=oYfHBw(8JIjy`%C06x3H7z1n`?DW3epcR}6-^$0?ZLk(S{A4C-5CI_D(nCFrr zE}g{9)YY=HOw~K&H<;w870*dS<4tGZ65MqDBwEEIKku`7i6^$mH3OuD!gmFKg}u6R z^xznGeIOqJvxAVM@&~JO0QFL~8)eqx_8|9k28Zx zH)GvSW3A@qc4qI?_rwJt&x{v=b|QPh0GV0QdHhur(l1FaNV_E_(4W@zNO!~&I_h{ihY z;SEej5+I>tu!>Vdh93-tZ$Czd8s!N!Q_ z!|t_ijJvsSebRZC5;wn7YIO<*>g7(C>EuFR?7eIlKtHF?4`lYd5oHfGKHqf)@IJ;d zl6R)MpdR}sX^#8u%B4D;lgyeHA}2CZ`Gx?iz^%KD8(ur%m-{Y@FNjV))-STO9&cD` z469(JeEXBrCV4efgYWSMwSDDmcL`N7jvKn&$Yi~kcMRkZ$B!V%+-q~7@mVCu{JH)G z6TF>Sb}S$6;a3tn851GCzGrCtSuFa+Mu<56?duJ>;cV;0`4B%00#XL`5qCNu5$Xlh zwLhp>OIn0jh@5Emqf@g0R{Z-2v*{KWHq5zg@Rf@a+v^s7A&TmKjqppTEu5>wf!4;~ zP+Q!#R|BnwJT#vKVN(Y$$SRe47mJNIeX4yoEz}4Hm)s8y*?d8^vcRl^Ij1}ZOl`+K z(q!qDivGlT(opFR2?n2eOVkzw1PJAyG#Wjf5|Zi()ug&|ZG(eH$d!=%T33}z6aCKn z=z)|(0Mp<$GGDN0C75l>Kzqf%_aDPM*t;c$; z@O;J{UBg}=gO`ku|48dqlmE!eqV);&47kx((zX=Jeqf8nE_OqD*6V(Y!64`8qCg~N z_?DW$)kQO5V#|R)ez+>Ityhad4>8sQHx`)gpY0cW%nTH@YkQ*^u#!~wU42%DLmau~q3(Yff1#n1a&iUrM*-M-4UL^HnHSXH5wsgKNLCuw=FI6! z$#}Yuz0Xn%Mw#!5^vR}@Oe)_CyY}6|%QPwOEecBHMcl2*T!UD+C<^1~Rc|v*;y7kt zeEcB=Q%G*0EDI23ND@luB-Mi!bf%8t==v0-eFhUEFbc#zb2wif4b_x;*qI^t2ipV? zr_8jYk+Z#u$}C@tywIlE6b|3+-!7cYCnOJo8e9A_n8vx_R*&Lzl!5o^|k!n z8t;>UEe9w|1TU~G`A$1p;kexW91`_Exlkf)k$@AzhoceyEgwh!F-A><&U87M5t26X zJoTUeCrG|zAM<}pw|!MGxB`iDxV$tU*!%HSyYDS&n7tH*z^8+weFL2Pnjf8L2rx?l zs8_5Bg3Iuzy97pAqEXIQK*Rr*Hc^?<>6Y8_lb6tJ!A zW~WME=o3~iwpTy5L>B}RBv3>BVyMkYXfe3}zVnL8@GcMggFH(9t~WR2x{u@?|3pBZ z2mRCNx=Lq@{L?vKUC@sM;z592z=ESQ3`qJw`EBxc=AWR2mJqI0qkmdszz;70jLs2J z`0xHzSxfS*r?usALS@*|0E}C#VaGf2bV<&UB06tkOtp^q z2+F-c1=+Kk?oKUZ>*^>|lNTtaad^S3GvHy6foo)nCFO~cHs}$sYoiMO5MvLYQu@R=FHG?Tkk^&Tkx1h<|SXZBgiH zbHt-qw%zzC!P`7Oxy<;jVub-mNHDF@3y#68{Cz2D!+nOU;3nU{7RYRtZuRw;kAV+c zvgZ=x2V(uQd`wDd)bUHl7e$e#hrRC1Uv)|-n%hFY?(Zd+^6g!oE^m7q^$MGs&9JAO zh8vWXYyDSkut_AblR0F~j}4vmRA-nU$`1v1mW$>KZq57TA42gRg2pA0OwQvmo$H)aH4|(B0lu3kcDJ!HD@p;IDQl9+mj3m2m!CxD#tKn|$T#q7`U-$_ z{a-DtgM!F#W8BP}A0JB(`WV)&Af!qd`~YCC+yhPMGonz|lkOe!GugbYNW0AO}T3Av2M(S`E}P#NX$hzc-Nd0n`7#)@gWg) ztQTeD;lz2vb_0*|8qGg9pPCJp1@XsbXAVK=si@Y(RlA#IBXcP>hpz*;;PtHSn-Hh$ z2c#|rvaSigC}OnR|H>T~9J(g@2;F`5%9swhpW~3u)IZ5sCKn0S6w6zwu3c_5Z2tTH zT0gnNPr$S>Dlf9h!gz$r$HuV%dHPO{QuTNmN--SWo&Jgg#s?24HP zi1#;}dskbtO0;1RES{P?hmx~pi&@l?GDS;}KNuY5xrm56m`SsJse{X^kr;8Cx9S=3 zV~B^RqAvsEyZf1jb&GBqOL;c_Mocv_nrO3{<-6w{2*$v!8DYYPbjd$8?IgU}PBOUL z+O#NN_1o>9a-YDugWB%!(1(@JqLEX|UFg=>*fh-8!d@OKJ1c$aiqo9Nwxcq0y!yJ8 zG6Q#{IU4W!dkA2Du&SL9-b%6wNlR!Wr*Yt%C4I)39L;J=n_QRfiv+F48CE}h!EHOc zLn81w4EjC)~Ro%_}1xf#zWlXbTGl}$N8e~mHHz0cYGRdemIOOU1J2&F<%QC8QGs-sDC7c^m4=jHMuWG+q2@(EU*>kGr ztNmy=rm)QQ{iVk;<}OSa1x!jc1ZN9LB>kTXX2 zC**4Sczh5+@%D@~&ukUHQrxg?gAtMh*vNR%xhKKu;aeIm{ z?+g;0XjMjofO5^@`^N)y!I9zp+*eFCJ`yW;N^B+_Puz{5#|i%JEdz9 zZ0@YMO#w&WkE8vf3x^bWrCIWjF97$3j=67kUHPA3&-U61f|sPA zy*vbrTZHZZPT=1IRkveQN+eNvz0jYP7%2QBH$^tec$3?jk8KZD z>L-(YUKar%U+V%YUjE!ms5US^tP>Fs_Ax2IJ9l%);&SN~_uNQ#+#>Y|?cysza{XQ_ zIQ|HyOQJh-BawC~tt;i1Tus`grJkr?U_C69hd=J$+93O9=B?zJ^D_8u2;7bBL!d3} z`m1Lv%`{%T@B){7UP!w@*n8~lK`KJIUXz{kZq@fj235AL(gQPDRyk$lG=?r{k~pU1-4;5SJ$@5f)YYd)DW5S_Nwk)In9URSoG zrfYP*XU#l+&hFW@Stp1(ZM7{QzD_I^VbYqicCJz&wI5t0?lMQgH*E?f&(9V{=K|$f6b)r#9qvi8|l#HTUTmLFDVzl?8G*y7p z4(p}VQu8NCuw%Z$7)1T1LPyp4^=)Mx8-=TOoafQp*|P-Gb^Z^HuLcc#)XK0 zZ0?|te%$FTJ&{>+4P8tb<)JNNlt&**=*z&g_)&V1PZ9kYL`5u?XyJG!9*;FI=0rvw zU%H%+Gx2AdVsTDo;)%w1f-|0X1J8SUp6yXR zd~Ic~&$G8T(4y;+&dAANcJO?V40Z>d!HFA3yW2k1V^?y7Qn8+k1Gli+V%qy&8JsWtH*La>(8 zNgKN?`X2VOkNq6rAaC*(hj^b4_>hnIgp+*ADNgelpYsJ@a)z(?nr}GEInMJf7r4kJ zE^~$N_?{p5k)QaPU##}O@jF+!#vfegPyXU>{^4J4aFhS&vS*L7>WtA?jn_m?)>J*9 z2d!4qHAAyBM-OYB9#y^O>j^E?lX^-|E2g*>>sdXgC0eRRy`W~b>P4;4O0Cvf>%lwf z_`iaYXj%men9dAlF^5N(#{v%1p@>Q}Sd|)~IyHpT;kt9wBIHqLb;`0%^`+9PUCk72 zH%y^zMv*(It^3sOPIfc!UX$MEr1Q8KrM8JftzY9<>ro}F@v_Y6hW5J2l-?fd?WVh3 zF0dSuAwC)6lA+(tPLWMpY1(Y&neSLQivb0G_S}3$Et3kHmehsXAhu$F z0gxCEn3MsMObiU7p$=f|zyRU_#TfsAC>O?2Kp|jY1OP=@1e*W=c-muNWME|A0AdCP z5e8-;DZ{{2o}N(x5@29skYdndU;?t37#SHSFff4eArK!V&B(;~1;S^FfQvCR?Sb$? zGyq2C2q*vmc-muNWME(rU|?ckWDsFsX5c7K&nRJ>z`y{)OnZQGKnX@h2%nJ&h`#_a zGeiymtiA>uc-qvxd2}OrejoO$`$VBo00{x|CXroK##=?Cdo>CezVK>ry1a}38k!2C7lCQH~)v%k;Y;l794Dvza?%-Pf6b-eOCHW>6fK1N{+0{pO(KMx0Q#K|6Tbl z#Zz_lN%dRRA5#BE_2<=JRllSjs6nAn`0It=)au$_(|%dAi=Qq2c<~pDd%B`Oq5p{f zyCtLaS4+Q8Ixs$Ee9riPjIS7edA|I~^7od1t^8(Xq4Kxj=bu%&)yviYvwAQ^P5s2w zzps6w_D^g7Z*8k~P=C7q@%j(ff3kjk`lHjIn*N8=KRx|#rrn0t_(bCe8yk%uYy9kt zHZwQ#=*)*_K0fm;Gv7J$BTc#4Xg=6{uKAam|5fvQn}4f$wfTF^uQcy8hqKJAK07=6 z^6dXL`#ZCLJp0~kXEvUDX6}EP`&VKfm;=%a@k__402mzq!1% ze6T!Rxw7(ID?hOEg_ZwxC>0~`lY{n>2sHU z^wRGwoCNhd%P5&wS_~ zedzZ;zUx|KJj%w z`E~!|>;A*n4W6BO_LXP<`)7aoS@*eTpZojI{pxf7?zunt@Z5*L=fgko;XiqP=J{`V z{=1+5!RO8A|KamL{`}89{|nFm_Va)E!m}@Y{)HcV;b&g>H!u9g3xDv!yD#j$FnE!A zQG0Rb#Rp#ep%;Jq#Xo%U`iqAzj$UG4D!nxS(jzZD_tI-Ged?vpy!10KwXS?C{CwAy zzj4L7@}pON_R4Qv`O=l6j~E|$_9L%<U z)o%fwtdN=4fj_Sh_=In+5K*9LilHcm7NYT(5rlq$OL(y$@+RzJC>r+Bg5US~0>5A9 zV!aM;<{Dl}zLH%@zLH*vg@b9D;eFm;qaETfs;dmv=v}g#9{oyw^efrXWWMM7eLD#H z4ljnjR^<7D&T$3J_gLNu#++aYp2zdPFG(f^FF}%gpXWW#q~Ha&@p)^0+jaNgwZEfi z-k>q3DAVw&H(f_mcSnw-S%PgVitFmSNx@6db=OrC+cqh9F|b3iNZPvZ%Ukz@dF!4D zy`iV6T#}64!4S65I1D*XlqF{n(6p#3k|c>77dnnRj%hk@3I#q%_=2^jC$uEVrII@u z`{QwxB*|4ZblpLxBk?pvvy@e&B5&Y0C0z(vwb1Pjt!F&DZ8vIi6gjQKcDvo_4m?ki zidAFxV92t?sj9B)B}wvjb`I>2WrsV{(@GS{)0UAW4D4E1Y;^~2-x);-p-i2kyjE-f z#*LD~P^?HNiCJWV-r=2{#d*!+r|LIvwym_^T;6Xk@3%=P>y0&%Tzw-O7c1X?HQ&GX zV&vi0w|g#ZUPxF`flZcV#p$)%JkPRxcQg#i=x9IYHBI9Q3q!?_a6E!7v}R#I;)KNT z5ydf~a3e_^`D5R&l*D!T*KBxxQZ8#^ZxAw4x!?DEN{|GGME}KD^slNYTDo`Fc?P*95A2IYBidTgTupX=~?ys ztfdK$;xI9Aq5wm!s*akmzaG zT4PHkG8$Q&ZRS5s|b~Nt33M7&ssXhA5YmI39G{-9a2HrL_lxK@aHM z?hRl@)FMa#y{G~Kc6M&Uw$lN^H=2vEH4VXfD26Qzf{4&LIR_zpv$8T@;ex%Bua2)N4pN=Co+ym$4yL#_ix^Z*SRALMI>(Tz55_hwskY@x6I( z78lYhq`x=?>7O)%SI#a@F$;0vk4q(K)a`ajNXFgnSSXDnnimAQpsRwwk;JS~AcD$@ zK!&m`dv3cO!gM8J7@JJOuw?CWIO;pj;$n$(VOF}t1Gxi#*hF7kbU-`!gb`JcgT+c? zz7C%SiM1Yw*`^o{_cMT^8&b6#ELwf#Mzt~`J5S7 zCX#_pwJs$LysjcCgQ74Lh&&`avT$JEtm@T+S)r{FV2giWPOtC{`8a(tAE$baOh$Y1 z%EzacjE8!us4zolU_vWJPbd~8SrlpskZwWK%Vn7f`u)C3+KPbNN;K|w+wHmeW>tvV z(3^I|Rhzc0Y0c)0QPwrwB&!N?Uod87>NE2&0A+5p58L6PscvpoHGt>^Rph8R=l1W( zd;C2U4fG-3%~g+}7My-SXhFe~fU{&7b&(>n#D}4Ge1Zx{k;0qhz^yi~T~5DPfyp&x^9#~*j6h= zp13=(xkLdi(^Ra>aV##}I`VNu1KZw#5xBM2=@|+RY3#WQPUOl;MRAXCaD1h_lK1kg zB;>m&o$Y0i%I`p z1tmUm0o3>rBjBikI2^-(jRhDku22x8(V*WCXuuNdLX_YIlE|#WSe0ZJm^EPKuA6Wi z%Oq}h?K!}4uytCkbX;N73nifEYSloI1uC--W7H=F7@`7^VF;&mp7{3R-rnBO5@O^9 zI-%BOA2=%=sL)?uq7s@);&^efB7#_Q$6{p>K#Lo45=^kfg>L(%bq;-u2Ys!;k!b7! zZNfBrqahN^(2EFvE`2b7wxH3af+UUtz$SzOh#98vBZ|uT4IS6aCiddjS=AeO1Zy9Fu7~In{O~eOEG_ zcf%ghBRd_{2l7!}eLcqvnPw(<^)N+rEFj%fOLx*6Ph*e~hym5Y93CFFTB)9H z6Hp8p!7>7hG_7R7SeHtN)-+I%0ybD(SGXAL5w)lZH0i=gT}1tz& zEfis6tSL|fcs)r)Q4ClzK;i~l1dNYlod?B>!(?eFVG5wZ**FFNrkb{y2SnTl)nKwH zhDKoUY1Z0H;~p|p8xXz(+*DEkSHek2IC9dhKL8`D+lTWsfnz~JMG^Fa=Ab^Y@kfFI8b&@DG~kB*Mq5X2V1r}h{m zn6;i7EF9QJFveF)m5RcFjqFt}P^ZBZ|dRQQO=e5d)`SVM-$Xtt}G=MG$7QIKkS}c{`>j_W;wVr>fEsFrRCgWYGlkfNHZFN~_u229f*@FjEV5ykwHd zq_%_{rHT1<#Oyjuir6*EU85?5ZZfSkYBitZvv*Y80vRaEU?73{jkh!`=G`!ScSCJW zQwP=R!GUhqYIw_Ki}@wb`=$Jj<@`G3{5q1W4)8kJMSyy@Hl$YV0I!gp{;EZOEkE~} z*H3eHNzbh^P<@wLN>W0Tgh~iqQBCUT$Rz68TuM;Egr7!-w=#a3 z&=oQ>lO#w>5x}qb!iB{e@N^4Es+A;CZSg`j3m4DKG{6{|VkZWj;&M`=C0@7dC7LP4 zAUq@rcv&j9A_>r^7{Qc8sX-PYCv(BD2Rg+R4TBz{Kr^ztd}}^ppU&@c2{|iguvB#L zTrwb|*4~(Px|sx-u$#qs2pDOTMWCFls}v zH$+2s1k`I;9Dr<)z9!{3rpWV=kMfVV>Mf6wH5j*YRo~o&q4QFs*2AIWlVCJ(?6yhW zxnqi|8V*nts@c7NAfKhbo!@(PCB;Rl#hw2_Q~6&Eo$sUQm610#N*e3igONWRxBw_9 zQBh>OHIfm|$2sd6o$Ww(Tr0&Qv63 zu)V##v)^^w2QBoVxFI8zfZgFcJ7A2(#l?kYeX7x@rE@4*&%#JkKriJPlw=i=47;sX zx9|2HFSALYv#o>M*I~%_9iLP6qAKu$$NJ3P9h`dBQ#$VC=1Y3 z6vh@?gVxv9SqlA|xfCwsEh`-3-!f?nfObu?bd7gblP#^W3;%rN+Bq_4YzUq-?h1UD zlzcewBK%t9oekAl(rn$isVTRp1(Yja55E@qgBi=pwBR zWyfBjw)CccJz28h`-|!KZ|7I3ncvOZp;+hxMct;{)V^ycb0 z`U)&{^b)qJ)nhNAlpiCVx?}RnB=<;hXj$ZN18kx4ZPIMR zKVR9n|NXB4Bp;2S0mb66&-9))`hXwd5VxV&lQ#aB`7z%*k%2yLQ3ytK5YwXQ4M*cR z0aldy0KJDJCW1Yb1h87N)+?acInH-M!VHH)KlK^F3>D)DtbkHUU=T(Na>=^nqU{lQ z`}_NDz(Er`U1yxiYV-oNY|e)d#sCU0TV^$3(Pio$-MV!P$li?+KqN!682CX<78Z&e z*rTy#ELf-T^T+cZEXy*q&hy}{045d)Iv$KNIY#8%_TtXd37oliW0yMm~x`7Pe&&fc%fi)uvh;cY7;F2&R ztE*)$=v}{ly%%uh)vT4@khk(1CP;3H2Sm-UF#oW)OKXgXr(CAl(HQm)?wf1$(Uj+4BIpw4TpWZ*OMf$uZB!!W-(b0EK^Nl z!o-=a%&?XoQ}>K%`>5++i=6IJdkUI~5a7wO}0WMf`sgnoHK2#>L?=uJ&SXM}E zJK*`iw$^6zA%iQxe6OtNr1Rb_MOPW)!phAXJ!=kKS1cExf)2ysPyi|@ilP#4Z;usa zyq&k~p5yt0J?HJCo)31OSecob z(X^SFwng2zVKOdo**XjQdCxWBi(DG~H)s4|Pn?{uVGrjELup|Uh9$iqbJ@i8&&;2M zga8vrXxaiBX%PSpdaMOODqtXjCt*UTbm*m=#K?yA#L4+=@8W#wDwlxN@D}D9hQ#%8 zV)xF>uLKrIOkjdpFoHR20TnSPYnoAS!f2`luAS0o7qCV*;Ed&rhaS0ddQ7Xx;~HRv zlp05b29p^$-$J)V%Gajo4}kQX;n?4(A|KC`%Q{lrwoO>A4qw=CFe9eSYl`k6^2AYp zqDjukWY8pFax)A!P{ScBn+&{#+(FH2i)E96H!t?}R1uktznr)0FHbzv&@Nq5;760wAQ;XP%)6wj zV44hkxJ^D`Dp+t7#q-?RX*)TC7hneGn^VoHnVE`K%I2{f5~)B)}&yY-05fQmk zwC2IgU{beQF7xT+SQ(5`Cajb*A7vUwqw)YGRrb?(2_S18eLX!?4aIT{Tn7gQTnr2b z;f85yx`r;K-3gO<}#I-^HT5CljD z(6ZExIQGoK86j|gFVrFkG5{Z^gkA59WRpWo$p|K*%{tq}MUYYLqtkM1`;5?%y)iUv zbS$;*-@1FfP@uhKG$oO@S%xnZ3V@r7DK){?J~{%^bl`84TcDaNT0xOg?;oes>vgcw zizy|+w)yTmZ@>Na!Gw-p&+qg4MDsliD%|%=B`^^{kJy8N4km_dujdg&Y{h~AG=`2` z#(D%5A2#Lz2i>+kbP;QWuG>b=^#N5Dikc#cB6IA+ zJ7f3fHc}eGg%1_1Q2;Y;K`s2ekC3K2*ZJ2N!mcpib%&6XBefT#A4&nwU}(^f#*8y1NTC* zsZ38#6`8=|K$XpuL~JLh+&KOKd(GeR`5B%A({W@F&ixOr@`S<}H%MnGJMXppyw~zp zEm6_<#1>P!F6hYqhHl^o{HI%{!igBdKyBp3>jDNZJw~8RK8PfAVqaZiLg&O5F)-N} zyjxkGTgH#3Ha7>Ck%~wO80)mh>pBR5ZJRHE7##Zg-0JG;)zcQ3oJ)Hq4LMy)h4jqs z8llpoUd@ksbQ8w7*Svfl)!lCo?2JptY5H++#5^V z4#uLlu5Vw*j~!=wJ7TmG8yjs~I<$38_lF=D3%tDz{a9DVS+`&-N_j@uB!A!=j`IiZ zx^}YYa>h9{Rf{qd9WwZeK0RzlPTZs3TjEy2G$(SatvxRfV!A2(VJ*%!_Yt@FmEg#baA4(2M5jOVp+Sn z-3JQ;HiPNEcT1};HJb<4JR`|mFdRi3Kx(j%cQW(G04dX`*QZ4)!*P>1@pBXYEFuT7 z)FdWL(?#C{TSw%NI>SmusPJB~VzUI(B8KfTVQm;Q+jVVtxfnE4-nr2x#>I;lHSOX> zMX@bzb#;4N6wOkWo53fV7LfX=lBw>~c`mQjm zgYkV$GfBk+PV{{fzS@}Dx9xp+eZ^i)HuVQ}y`G3c*Q0k8I5F-7YDWG|?qERSM4&+leGiSCWL0%QAt{8jj3T6h~-q$FbXX zV@?2cZOSx5m;ycSyJLForO0(Bxm3FjU!`D-do6ongkyqL2{Yb`ev4pIRkZ}u$`HSM z2Q=`Vu1`e1)BvU2DDl=y0FXJZ0)n~%JmVbgw!0*CL!}0L6a<)ra}-cwp)yl3NW^k1 z4UAf^S2T|J&e6WKzkdXt37WM$a*_h;kHhBE`^mXCDd4e1K)EpNXcgTqD5DX$P4P3@?5>cyBFq*#S zx?uuFj1L#1G#<2;m~q)c&SeV|Jc=$6HA(Uhs{lOU62;FytOBMN*P|%^unGaE98py_ z|FF)94Pri@Jr?MpEYsVLMz_o5>_|F4lFsjc6}D{rUVZ(P9a*m-;iOR(4!6wLglbty zy*R03mhh$oa+A=QDMHKH*Ga+?{~Ainn4YTM=PE4CDoL8J1;S)NR1;gg;}FfQXqBL>rc!j*By~Gr@Od}F@q^l zW@FC*8hsD~iM&B(*7qErVb#siGqA7VnLL#zS|bcGfi89dJTD^~jvC&3L;H zgykJ=oD-!%uMsm)T?La9nEm=u1@vxqESn$8PWX|GtgED(%e1HSxq3F6t5TMm#T`p< zn$lswL(qdDUqjG5m|B%2CM!t*Xx72bX5+*tWyhX8trP~H59ayd;i2P+iU?M@lweX> zsRY*7Ix8Zwxvw=vcu>?}6?hiy`usH><)E%R7JWEWuVt;icsiF`RWg=i(y*ignug(d z;55wZNzyQ#WD?IbN*Sjz6g@ElpqW7OtfHj(T#k_D{l+wqG`#7uNe}IzN#t`RD>cZd zFZ-|x3UPTR_VW*`!0a>WmVH=-O43rez|BAIze<46Nf=sh(2?g^Z=8Dsl^(&Icf=Zn z*I1+OUgKNx5&LX@#7twNY|!?ZWI)#_B5JWT+AgAFAzOa$6HVzO|Ynkx6yVZ!mudLama zZ5)8Q=)fug1_yx(K-2XxlLr^Hko&F%S|g0Lu|_y+!njZbs1IvrqOO4;Ntl8c-xuiEbP8lUE4UB3<-ooTD@&#(IZ zliocQM^Tt6@DRk#VBm#8kfnr(B74|9nQ_%UWF?v9Q$9xTdSaqkn{L3*CJpk|R8Y@vZ4vm|R_xlMwy_1024!l->7s z1tw|CH^vcVDO5CuKNCiPuQN;eyUs)@FGmyBiu~~q%(iSAU^ZkTB2BAe&kad1?4bZ0 zjEe=ntwTwc7_H;vL<_^;P>$vo2bf#S|K$!3c`gOVK`N3I}5XbDSi#$DiG~xrHn# zCduI!|6Oxo^7G?7FD;F&NdjvMAtu82hM`%A z$MA<211wI1ZK}jg%wI54Fw!Wn>r?1D6PRE$0*EP*G_S2UqNI(A4GMA)5D|0OD&apO*>12>|*?yXz5 zZg(jC+)<`*l$rBq_Ovwp^U{)E$oKpYllW5tP{Rkf>v>Uv`8=c1I5r<UAp= zn0SOq5<KP4y8ZTw$4j!VCg-l1KsiXB;Lcl7DPF z;Ak$et(PLCmN0~=4wEbisE-m7lo^3{07ui)e9(FCmRwYVAcBdO12|SF!=zOrxiL-O zykVn*C%#X9kgBVgB?PK;G!iE%8PILVi%(<>ZEuexS{iLtt%rb!DoW8UZ42mC`$$MgbRqqPZYSmpF%m)>*f4^#gIhpFL&&=eXy+ zNH2}N2VoTZj*H9UD8?V7izx)?7lS1)is-QB*)sw8r8FR)PAsKpA_>53Cn207iTJ}1 zj-|~KCFXH@59U3KGOs=5XKT{@z`4^p>JCDhbNh~My8&pa04zJLh|yC;AQ-XVn#{TN zbR5%@8Lc#mi3>bMprL_Y)b&!4BeKYXC84o#7L$hgJ{gmy&y42AMmFAmq2$`B6>m$& zE8fy|uJrN3>S7Wm6iW$XFznzDmMVf`iN_;(NTYTUIa-#0u^4pGGVGcNlcqTY-ldKg zx#c#a7~*|b5CS?rPQ(B};U{SV8PAw?n&q=4gR+49m@Xn5j=}h{E>lr_oSFg3Bw?5Y z(=*cKUE3bVjHH(x$JTWL$iVJsMcum0#5oa!X!8vsDqWt)6N(pABF(^7DYSb&ad%-m z>X(Z=oD)RH^Uts(LN6~zr_!2iZ}(xU7gz4=ZqLoBF!}FYpJ~qhh2rhg*Zlf3>z$U* zW@_F)&!luWSMyA!$=yVl<+Hh(_s=vbW$BtceNV1QZz3r_5T)N+B>-zBTw@MuwS$Q_ z>$CYW-!&NtEkU@OkgWeyCduQNnU2k zOFY)cppcDDWM~4g@WL~xPm`?8=Xp9DAzO_?nrFZsA$~|BqNvvtfB)7^S?B$jp@64- zFt87N9s@)xl}MSc-@MVbo}c7&rW__~=mAXPQ`wy{V5Cuenn+G(e0~tG{dpn47bh8J zlem(fc(`;P-v&57JS`Op1)Q0J27<@8cmNIs9v3TO&M}K=sJ_W|Iy^&Nn|C90P1`oS z9d<@Qv}~zfuPd0IG+kARYw=)2O)F<}Q@I;A6rM_QkJ;4gr>#gVzkx}ST$T{YWyz3* zH1qKQSg2Mla-qehxsMh~|BdtfuU+dZxpiKqjVDPyyjvFWFo#}uiDJV)_QrX~!)Qop zj*WDUw-w^*XUb`DL;DY%JJ%L`qWP`0?+_J9CU++ zsrEEzJK)8brUVKEMM4QhACx@65FT(arpGG8Ig|E&JbWh%4AM@IQHnqY8PBS1KQd`kW zC{8X+g6S$qM2XMRGUH?&w1J^A{t%Po-Lb#1ydMM{2V~lquIOo50*#BJq=QyrHzJZz zpG4VJ5PKyh%i#~;LSPC`ac&Fv{C4X&bMxMQc-W8Lq#qwYvkqZxAqoA=y}@UmL#0yo zJS;cBr@lj3u@+J6B@vTkPQo_Gav(t0jigfMCX~TGSO81pls~X?ai!N=SzWBlsYlQ# zTZ_1^IstVCU1(*lzrL=wT7j{UJO5(qeIkngk$cXULU+$On+v=OHV)b}s+!Q410rF4 z6HHhDT*ZXwd+2(Js#@GswOXVcGfNWUIfkaz^>*9wQ6JzU=LAf-inZ!_y`#Ooy;?0| z6}0;`g^hN1fdZ-q@8xcaTFv4fdho${X4k~Et3oM1%TDvadw$;_LOn_Qe&(vGE zGC`kdkrWJvr6`nPimv7;2@h>g9L?)`${Mc_%tZj!foV}jl}b4;tion_{+WxV+-mMr zp`qByohG)FNI4Z-cGSoL^eC_|?_Lg15Ju7HASzfxNpy zV|DcdIsVZrr?X(It+1Z-`-K8^z*gCP3gm1*S>!ETGmsbL!(0o@Lvr1X>U*6Paeu#F z_ih;T;+H+3sD1Ha&myczl}hQ0#3t2h;VY+#Z_h{KJM%lv&5}HX$YuFzX$Jehwr@e&S3yD_28|y-r5h0#YNj4TaRXSX}FjX!60L>_5&S_27`St z9}Zo%jM%sx3R56crvxFM$kcmRUTd1IC?MT1$@hXq-rbOJwRp9!JB(Eh*q^(uTg)Fu^m#h|EGKB zv$@X2Fu}4YWvVUcnkv$OO3US<0-Ug7av(Pej8oBzfH$2LdP|#|nbK&_VpmpXt3dy+ zm|Rr_QzAZ7UFK8A)n&-Z;#>Iwjx>Xbn(n7H7c&qf7rIHo?{@(^^r_Nxl4KQS(xNgX zXqSsX@N%)-4leE=Vdm};GG^)tuK-`(ycyN&vb%TlCPMY${ywv~XbBNIzX8CS0=y*@ z{A-pIcWVpUUgp6FE6=X1Y;C#82hQ+))=8zZet@!GGBGksxC4~-y2-4Pd)qKj#hdL|kYzb^uTAgV-s=q9aYC~! z`_xlUJ-R%l4-c@)!;U3?>5s4PVr{0qtuL9P6Ns1$KD=}7{n|`%uGTL&${Jlk(c5b7 z*LSLGG_*NerCZ9+D&4KbmS++TvJ)kf!`@biaFCs>n;iD|LWVFVn(UbjVcet0)(WQ; znRY}@DYBAIvVb>xT<%M65!7rtXtfMjG=+CkT%l4XD26iVvei@BDNjtYQwW{acQ}R? zx~mO>C?P)^<7OjQ?6vv*G_LO+KA(A4Jd{odw2%<-C<-kjw3Hcv;P z9zTvkQKx!-rsHessr%Mi=c;e%{>q!2v+C9zg;Tmfd@NZfitVFL-%sdbCG@-`EBU}u zxau~qT2qoD*Oeq{h+dYC=Z(;r&qPVK>bBkWE-ffzxPNnVt61E6_r{(Z@v|2_+m5n2 z4jJa} zjBwu_N9KH1xeyyqM*C^~j$8X9BG=RMJPUQ%;^R09255i9ak;GWX&^0$O%XG`(uy9Y zI66puMh7F4xm&B^@q9L(n5-fgIBAe0W>F8R1{j+xW(^6f#knJN#cpJ!Dlp39M?7!U z5B9LwT0a(1C)JkhogGnYHk+Dg@vTmOFba~ZS*422&CS*zRMihcao>C8bOp(^%V8Go zp$Hb|!L?5@7UTkYEbw{6?4Bihj{^)58L6P6s0R2p2IV>&jY3*drM%QFb8j@@a++ux z0D_^gPMFBXLBeU3TBTeAyFOheq3~xS0guNqtMSHk4TC+v4UXMDYIoWru3R@J>$vIr zM*&{Wd-}1-DibfJ(}+8lrrNWy7h`nKjSGe2Kdd+S7|XgR$$F_+l-LA@ril5*xXg~X zmh6C*(=;y~%RCB!9UK8;9tHLK@gLSzk)lGZKNm;qrP*0SOa_C&tg2F8=l1Q}s`Wl- znlE~5REN;YoV`ZfAg3kChwjF+smUTSJgpFtI2a8id8GAZxg?ZIb7^0MR!;Dwm4_pjBpt%v(T~d5W`4cgfX#-7`$>M_n9lF z5%k(4D7GXiok=Wd8IHZNuE}JGQ#*i%$ilwpV`Elw}zLdamB$+HJ4b$RkscVpj z2~Jo{l8{)I=WyZQBgm4vE~PcxI1-N>+nH;WNDC&o1<0GU;g2@an~RR!8v>5Ra%~_E zF8FwdNm0}G?(S~eW3rXMv1l|J4MP+aT>5u^4DHFXBT2)dmab^F$liuzm&?1l-fqvJ zQ|_`w-u#cp&|a~av>1auOwuIMbV8VPGE{qRE`Ez!7T-$Jgwb^Lxf3IQZ$;&Fz3C7Q z@HC+z_ALlT{cA}%xuT#I|);%bAlE#bxudlcVAhxe@f z^E9fDW5C3+jKffeVK8ANRJ%#<<4Evfxr~GHC=7;qJRaxO;41c{9&i)^LL3opZd>05 zz9K+qov#g#dvG~CnX%zYCNSvNjJoe%d&TF~0n;HJEUr>JU~Z5Pyu(?2zdXoFX&^(U zv0MS@uicInCB_Ub&UN{6*%FXW)53%T+C6Dq#9}hWL=c{#MZ-XmZ7m<92y}o9n?`91 zz^_|d<7#z`m|1MKq?HvcZAutiOkfH$h)te~W4KoT`t{{yjc4@b3|_4--~Y z3mQl=4{%6cf55s3aE6yaS}8@Ccy=`6xDb=A1|u)4PMvBE8Zq#Nap&O3nVGH`BI&%l z6$D$Goro{hre|EI+rwaHTAi7|V5s1Z|gRbL%*2u6+$Q)zg zSI(dnQ%vHls!zOLW=?>xQI?J)S|Dx1(a5Sx5<*=PgH3A~5))%QU>Gx!0k%RCW(9r1 z#4PhC@Kra%S31_z0=~EEhJnlO;|xrdj=@wZuS9Zoox)Uakk&;-UBGH!03>3uSQHbB z4Wh`8uA;^lMQF&tr$y14+CBgqeVn99Va9&%y{I@lJ6nt_cIbOhfb1?3#LdSfH_MujFQHayX7_*tUzrR5C`Nn zR6s1ganWtxxxIa|#DyIMIF7o0TvSEZ#Mrg8tX#?6f*TAvnM@6z$C1}rL5AG;sxlY9 zG2j1P>zq0LH~is2JcFYDUw-a*$R#_9^ktz0mO*E!hR1vGAm)@mx#(}F+4p5t^6P@#_$ zrQ79zmYY+6eM<%I&pX0$cK!Qejz?q}1P2d_$8mC461!=doGef9iOFF>Y@S)yCpg70 zR338#4Qnw6Eafta7KILXcXQkl9-)l`;uFIFbHkXNldojP#mx5Heia(Wg!^;h)>c?u<7%W< zs~ILgAWQXluyiU8{$f5pv-dK=sR}O{>B}cb|759`*?TGeRLPf&&gBzyesArUd+9wu zdLMo5(UcM50f4Zjb*_tOpk$K8_4o6jwyE5My2ae}pq_*7`h1S=_LaNn?o7>kfzM}! z*C>~`8sX(OK8aw+H<=b`H3?td#ODyS&pA6s0c#v40r4I$dBl?dj&hjEqu9LBC0%1; z`Q20L&CSh}2vbUYpei00tExtA8Y{6InnqEsWzL6guZKn9DYk%*TtMx`khH=*Xgsdn z-dJumn+>qeDF-al+g%dJJZipDZFasfJHI&JY%)yCG7Elx51lu+2OMS#uWLzwHK!58 zs3l`_Gm~mp@>YIil7GR7g_41>X%z_#SFvIx7BHR%y7n-#(t6rtu?n4QfZb}TA?`~`L~SfCEoB<( zsk~KBO}wo=o{y{SK^Ekxhb?|F3;pc%ER(KOlDi=v`Z(k>eS_nYdE-VF>sjf%=RKT7 zfWC4APFh`!??!&uGm)Ri&)(lr6GY`y$F>=Usj@ACrXi_>7{AC2WQ#ToYSNB3raKD^ zV(;k2ty^%$ocMN#1~Yrn1B{g$$rin|#N0KWsjTncdFAwat;aw{qH70BBVpA65@)q@ zic*}`ZH>p{xPLeaGx?*Twf-=dKCb{+BP(w~Ct(_KYJ)wN#Yg^_c6wiLOktc>t>1G^8|dA{s0(a69E$=?A&@qnHRr0hk!_5ee6(Gm9N?% z(Cr)o{!P+cE_3y(a0ryde9jj0o-IydrgwrM)R;YtePJN1btffL7QBhw|+cbF+=4|C_aG-}5If(B5648o}@2d|9^G*_14@VASP z7T@9UQ9NlBkL&fYoE1j$xLU1JsnyQA7xV$WaK<4!!?X>DJ1H3yX_skGM`J2!MwO2WFTd%g6mXJ6>21+q=VLGhq^pLuS3fa3pnf zWMN(G-WR!SCQO3dob>^NlGHozck370YZ4eNtedk-Y6L9RI%-AU_^3kN#ZA#d(ri05uC^7}k*C%*!y+deP#ilDU7 z2$zTeT6bU3x98TNyK9Pw&Kt$^K75kH`rb6+B^9uIUQJh!{ z-D-8Ne164#r)#Y@h3Rt(_KRFrf$P6G zNY$p^uOMpQK03747n!N|sfQ{6c&0umesFKC;y!4Vc2e;%Z34>`&uxgPwv^4}f@_h` z1kxc-<=i!!pFKOtqmy;vh*Zb6$)YlrEsIQ9SX&)AOOWTZcajI3ZIeZ%i#s2*sCVBr z;g!>V^UP{JjVq^ZX$Jwei?dSQTtOB6c};GlZQ36Wv3;^dEiYpkd-(W#cD1=Hr|Ux& zd!9i$`}4*w^rbBfOtp5e|FLyCXX*0Y zoF!(mj3HesuAv}tqe3AKYxjC<1%uF%M2|?<9S)sNZF_%TQP9fRX$KM(1H^4-d)u<8 zr6rSR1OTX1*W_>F6PR`<((l=PB%YnDaCOo_AXvz;o{d65Q}I7$;8>RAhGM!R&%0?V zo41ebKHS{%dL3&9gXlZ0*Z{3OpA7&n$s*R!-`jx`?+glMj;q#0$5g)b&h}obeRR}0 zc7(H{ZJ5aim%bGc0*&eoDg}Bek|< zij>#74W@Hcxb`)B0$w^p$#bA@c`8cRq_G86)v*r1RBfuFXIRKGr!Y+<0Q7il+^Dh$ z5D+!;#vEv4K6D587|sZKR$l}fSiN}h!eWM$EK^CB9rPUut0S%pOfm?0wNycMy>Z`s z@>!Mza|i34DZEr;kD|;i#}llH7KB%cv5xC!^;%;}lTmqF65QP9Q**|egLc3l=!Y?y z4{~qi4mrocr3trpI~G|oB{XO1^%_hEs&-2PF>iCJHDjG$OP`)R35lWAQG$;qMP2W> zp@~lyC0MVQl#HrF7121{*~xGs+;#WBMjQ-huTvNeXt#+{pI@BB{vJMCAr=8Krm*&U zSD@k@-|fSb z(LPs*r6SIBMuJZ!VF1jzj8v>xYexQLQG8CH+vzxi2QEqG)DVo# z?3qiXFu$~NVRiGJ%^UCatvW8aWHLsrW-!I5|1Gg!o2zQOf)%k^@OjCgCSf$>aCLv`Nl0+zoER`3bHuVJhFlHD< zfc7)J9$&HM-deddMU?5~3oBcj*Y}2JpB?n> zyMuCh@a}~R^G4WihsOMctX|)wZ7*j&=d@{)C-)r}ETt-G3<=l9``#fmPJ*T#jwA?8 zWue;@mj8b<*C*vxa7J#O+;{YWGVM=y&vR$=;!GGaY3dO^6VM%pqlCvuW4f|7u(T;G zZs$9o%6W9Yrka^eRlhakdAv~t12R|rIUv~E+dJxcmi7=1lSCnSby> z>;5hA{j4BCh65((AbWnirD-UeDG!u<>dwtt;_P5`*`LeW6KP_b04 z7mLhz7>i=!B6#c*3QJztea{yFM-om*m)~A3Wn4^Lu7D|QQh^^?j{#n4R>aWjAH27< zrR&bS@4WNQ&4YmlI)}^ZesjfH=yBf;qOsEgbUEdBx52Q!e)D#FfF*?!Py+}-*UO9m zRtF&4$QLyUAB4w?{C`3O?cV3%pjQ@v1A0!aKiy;QeS&$c;IhFrz(AziwKzMf;>y7_ zR@cd`i6!#>YZt$^r=p+DZ(3u73Rw8*`_(l$Z4SvAwZ;@y7Z%L)9d@NHBPZK;)_0&} zEy&wJx+c@z+v}P%yjx1vn!HWqmdV_D^UYf(4ewvo)z;*+S0wA(>8q{DX%ETCex92T z6ZQ*ifwb4DHsSWY{km8uo9mOf)*0Un)`6aE5}cWy%NEwC3Z7pvCAdI(39-ILt>R_! ztnY{Ju{I`Ua?>naHFh0m9MgiLX$r04pGx}V#CYti8KHByySsbngoM+o0D!6*XO+)< zLGYkVdws*{YJBzD*=PPvUbVB&{+)c*CeHvq`)QO;J_|U1BCvkqiNM)=DSIyP$@f#Z zXhOeKLTy|l$s5=1|HR!%iBx`48*d*Kxg~h>vfOh`YaEE*nMOdPc+C z60GLbcHMEhMjxMd%qgh-(J>N5!|p!N$o~Ey5%EbBFq#}mKIoaGbX@4uF@39l%Oq`X zDA)IgGX0x(e$ynI>3Pqeei}u!LQd4n&T9|SblJH3^|5?0h9UfHlD?TfqZtFMo@W;CJ{1%! zc1{tjs-UEpsHiZ=w2Xr5Me9cX%utKn-^YhTvuUwflci%_mrWKQ8ZtB~dGfU2v)PFB z2vZ?>e&h+s2&3R6W?9do`h62#7Evsw8^_%Zx*G&$QB}KkA?~8{g9M^zTh#u(2``IO zE#_7b+}gOm-ZZJkvPmsBuCAwwd&8tIzid)3UxxotgXd?R$wnk(c$J33E&k>{jN$&x z4br|!!|@jX8()S_e)%`fxf={7wY9fS_Oe=mpCi9wQor)%I(ajz0QkB4OE@z<_zgO# zFPh9E81I&u9{vU$KYGPvt~`325j>TjIW>tc_`bu>@qqIzQR8{XQT%P+5?yy!c}{6H z8kX2ll-=E``)}QIukfCqo~c?Q2p^u;vMctso+aK4UiZetr7qhtRE9|n%?)y?MxOmt{^s+45!5BBlNL ztP1$_=n=WA!mn6MOMhyCcd>nDAD7M&xxl+vokh<$n{I)AYitzpxGhdu&b#G`<;>tG zP=!`m!xjhdg??nQ2>|&aY_(zb1Z(@jvIc6SZL#)Q=Dt53a^Ddqya*Y~O&soK+HxqB z5S*sFlu=4i7clWEZ7`!VMj^ytoTPg_yD};g`V9%A7&NzckOcvawOMSj=}lk&T=@pN z4owK`mQJw=i=bWL{X<;eIe#5%6vU$r>aYocxT&T;LL&jkWz5vyX2(`ME}z@ralOgG z!Q-k@RkR;x8SUBjjQK8FI!1f8SLdPO9P~^$j6Ep4s8bGO5DG8q==5F14hI&~dL$3p z;T2-Zd>y`rQYPLDpY!f=JHB^IV#z6M!xXk6ECTHKX8iY#3HB6ZGIU?4Zuq79g4t+q zmhH``=W%d-@%bwBj2wx6U!W|Hj=Va)MtOqvO;yC2No+Bm5<<1}1ZolmZkum>n@8V{ z-ho0g#nBJh^}rMW0C?JCU|?WmfB+33W=hG)ONX*Kiy>@75ZfoQBu~e=vM2}6006}s z3Yq`_0C?KfnRz^vUH`{tvy8Ei$UfP3*NiNsEZG`cWJ{wMV`7A1W-JqTwz5RIQCch! z5ou9Ew#X6{N+~HV+AJ;Hkret}W2vdT`|0_;UeEK#GuLZg*PQM8p6i_N_kBL+3gF>9fA3AqFg{6{2lmp%ZJ0DFqq)(%&{*~?e^}YHpjy6a?Tn8eBU|? zW%VgG1&acZoNyNeCmOcZ6uSaIvl85BUNXMHVwKW@H+JvV%e*GAPs_tSlhSDu$y)mx`S! zfuI#)U@#@f7h`4$$cXV_aabG<3oLxLit*t9EKUc&>FBP}U9%O~&emBMr)6_IXb~r7 zATfwRCSlB|v|uW2(HsD1Et*sQR?ISpaay+MM5cvNNMt%_8l#D^!U1tmIrag9azNm5 zPyq;-&jX8tLLn997xB(Ehoyvh`W2b!a&BtWM>R^VX7rs`uV^`J{UUNT?0^|m(X6sy z$YOH1IF<^XFRh06shxq$@67AG|4pQYa870XxaUM z2~ z#OWg;LiIxq1vW3YeSXPbqH(;8jJeaFHQW(((te})SMecpt_;+DzdbSA{3CoUy1XoR zJ2#`F+L#la%^@&27zKr~pMluvg{hS0M~EUsJdaHUdEC6oICgjNkN3t8-`K`z4FWh$ zZqT(kIJlrtgc6_t$StPP&Tl5@3)&m#(MH2_CHqgZW6hH9TSO^@MoyL40?GBW^ z_q+7@Ia0cAQyk|ueb3^}$3^##N@XC;gQfza8=8~mhpxBf%*z`sR&>5oCQ6!AQ0 z-o??>z~F;OT38i8X)%;#e~97lF=I{%qtIDl22RalO>GsDDh3AtdKmU6fstiNrD2Gn z3_mK3vWx7438j-U)Sv(+8xIy6U>sY^1N5apGJ`1L;zuw7fZo2GY|IIfZBlU{H`y&$_%=?UjR4HH9;FV;MCu1T_G{=UO_jb+`=XSq} zIxO9nyU3OefC(V*4Feni9K8K4TEC+wl3>wuuKUKWIc$c6f7J)eF}IBlKZhu5aG63) zHW$;YX2(Z-@A3s%G`b9D_IAUK-wr6Amv*}$vo_Kic>unsC1$x<=(x-J$1O3 zrb12O4=#G;j!E|24l*|{Erz~v@sEz@bOLsmWYb2=YBqKLb9r>nKsPe*p&mHAjEnQl2Z zCHnRVm(%CkM9Dw$WTDEZFZcRhuNG8vnta}v{b$Wvd5;b6eH6F6Op=pmoVs>)s&QY1 zkWi+CTq%Rn%&789EQtqZd?qTM8yHRAYn~OJr@M*iy6qcu*bo1-qw9KDJi6mPe~9!8 zQfIB$r`wlbB=u^jbgaVgnO38Qw6DgzN{Vy}XfY?nM*CT%s;l)7CR6dmTFTzJosb9) zB?=mdF|eQ5>eAWfaIefD*~-jg-j03}-@&LHHvWWon(mKw-Y0;U1 zB=3Jz0Jud3pbn@4%K3`<@(HV!TVlVrTw4DfmKJ^K#YJBf5c#&~!@m83{|zXri_5

-KsM=w#pxUEd)E;>J#l< zB6}0-1|I?M+wTV4JgOTg_0;Q5mtUHyyG?Qyw`J#n+0adGkB~R*l~c^Sxa!LhPcP}5 zOguh0Nasx-6^^Ao4;`1elo?>q3$)rPb?WnIKTbq)>FAE4*X*8vK|r*EgYqLgk4b? zR?(hI{2s-l~P|DhSUckXzn~G3red)E;r$ zre>t3YvzTU%lh3r#Rz}MPr#+Prsy<0Aa&q#*S58d>Y#cj3MD5~8XsJAOEG+mDA^@< zLE)^{wcxf!`*T|fuG=4$nHQKTCXl`Psma^cB^kwHv*h(OmN#-l2a#|`?jW)ZI< zE_JCOFok6kHmymj>HIObg=Pmm!h$w!=eMvl4dOdLYH+M#?Eo@Fa8`<0853DfnVie1 z;uTe&h$bM{XA_1*ucKoFAzB7}r&QB4o?V#SS_(b4B1c0TFZoceu4O*rpkqryMO@Oh z@%5FC1xy`vt;oxdFi3RBn7=roXZR%Grjd*{zT6YtdBsT1kK}Z$fx;+nlU^5{@wBC0 zsvi*wVyYCxRQeL8sD;fb=BIsb`A4J|zNws8^|OZh&*}~ql-6KDUGp7EIB;WRunZ;N zAFZJQp@m}{ULG@I0A&Z27DORpg%*@Gf{T~ii3rk(>Py6m0V@`I#mn!&%3=mD_iL#D z{&T@^$<#$hAOejf}Tp1O5Z`+wz&28?+kq`GrRQmMhl1(+PTxv8W2^gaH)DOwM|5Ejg5Es|w z8oILbWC^rm;P%LnA>naAF`@poX7uN%TOJqjryP&a)vo0{IbRlCtQ37zrBCtUM7F@` zi&cbOBA!=94A*%}AkJ?M9mTp&U2wr0pd_CXcsugWe3?DgpxkxDtP+ug6 z0syL%e3^Wy1c_yG1hB~!2o&QRsT?vMh>RZDGVx&3AnKV*9O4KO8*IAbapS$SE#eM04^6x5IiXW6WuQeGXKt>wc2*Zwt!OgDi+DA3 zBdx8qiO#4kZMp`~zYMx*9_E6)HuE1c{L>0^T|e)Ws>0f2z{SUsf&06F;HA+Yn(f*$^w&n$HoJYjuP+EBKiAioHh+9PAk(;Hv_WZ5 zT52YEnu(1=tObFk2ZKTZum3EIeu2Ip&ZYBX^FY~+TsqiRfnvGf;G{qx5J3FfJR#v& zUiQ;)K#DDeS~xlXo?ZcZ%D09HtS~}Q!O^J4!jB+uQ!>lt%1G|R9}d!av7m-8kce5i zaU?|=%|+NW9Et4|0EjNFDOmA=Ww2)-PHE0h`y@U8zEsH|P<|3&b` zz0cYFt_Ng$D1(<7JDATl)kOPRSSs{)BjW{l-0TERr9KmOLXj7n%V0XKb~h5ojAK

b+2n*pR?MtSAM<4HSV-$i2lR9Sto~L&p51X+Vko@)BKOI|9CHR=Pbv_5 z(vP}hdw$^#c`9&6?_`P+mqo8D@`^Ch;NX;tB`uow;fGt9UYFp^q=NDgXA^;rK{bhX zrQRngD14xXG~e4JNpRo2{&~f<@rr?R#JpRCwy*EXbj0r*w$i~^ktLrT71-hK9lxtj ze0#)ovxNOJ&n$|MRn0%oDDP-~)AigePwc(NG1q;ZZT;ghA`MiSTz%9=`!oBDROL!C zu9=L;czCTm07c_>&&8)+vY`bk_-V}FamXwaiu9g(dARVQRlkAcDZf3iMrp%`wKzW@LL diff --git a/public/fonts/golos-ui/golos-ui_vf.woff2 b/public/fonts/golos-ui/golos-ui_vf.woff2 deleted file mode 100644 index 105549ab49b58afd430eef501abd459143d7330c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44064 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

5Rd{21a6t@&p-S2`F^m*EW(9 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 + + + + + diff --git a/public/vite.svg b/public/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/react-router.config.ts b/react-router.config.ts index 6ff16f9..72a4d21 100644 --- a/react-router.config.ts +++ b/react-router.config.ts @@ -1,7 +1,9 @@ import type { Config } from "@react-router/dev/config"; export default { - // Config options... - // Server-side render by default, to enable SPA mode set this to `false` - ssr: true, + // Config options... + // Server-side render by default, to enable SPA mode set this to `false` + ssr: false, + appDirectory: "src", + buildDirectory: "dist", } satisfies Config; diff --git a/server.ts b/server.ts deleted file mode 100644 index e1ba41c..0000000 --- a/server.ts +++ /dev/null @@ -1,57 +0,0 @@ -import compression from 'compression'; -import express from 'express'; -import { readdirSync } from 'fs'; -import morgan from 'morgan'; -import path from 'path'; - -(async () => { - const PORT = Number.parseInt(process.env.PORT || '3000'); - - const app = express(); - - app.use(compression()); - app.disable('x-powered-by'); - - if (process.env.NODE_ENV === 'development') { - console.log('Starting development server'); - const viteDevServer = await import('vite').then((vite) => - vite.createServer({ - server: { middlewareMode: true }, - }), - ); - app.use(viteDevServer.middlewares); - app.use(async (req, res, next) => { - try { - const source = await viteDevServer.ssrLoadModule('./server/app.ts'); - const server = await source.init(); - return await server(req, res, next); - } catch (error) { - if (typeof error === 'object' && error instanceof Error) { - viteDevServer.ssrFixStacktrace(error); - } - next(error); - } - }); - } else { - console.log('Starting production server'); - app.use( - '/assets', - express.static(path.join(__dirname, '../build/client/assets'), { - immutable: true, - maxAge: '1y', - }), - ); - app.use( - express.static(path.join(__dirname, '../build/client'), { maxAge: '1h' }), - ); - // @ts-ignore - const server = await import('./build/server/index.js'); - app.use(await server.init()); - } - - app.use(morgan('tiny')); - - app.listen(PORT, () => { - console.log(`Server is running on http://localhost:${PORT}`); - }); -})(); diff --git a/server/app.ts b/server/app.ts deleted file mode 100644 index 94da0fe..0000000 --- a/server/app.ts +++ /dev/null @@ -1,61 +0,0 @@ -import 'react-router'; -import { createRequestHandler } from '@react-router/express'; -import express from 'express'; - -declare module 'react-router' { - interface AppLoadContext { - VALUE_FROM_EXPRESS: string; - } -} - -import { AppManager } from './appman'; -import { initSkinData } from './valorantApi'; - -import packageJson from '../package.json'; -import axios from 'axios'; - -declare global { - var appManager: AppManager; -} - -export async function init() { - await initSkinData(); - - global.appManager = new AppManager(); - - if (process.env.NODE_ENV === 'production') { - try { - const { data } = await axios.get( - `https://api.github.com/repos/zachrip/valpal/releases/latest`, - ); - - if (data.tag_name !== packageJson.version) { - global.appManager.notify( - 'Update Available', - `There's a new version of ValPal available! Please update at: ${data.html_url}`, - ); - } - } catch (e) { - global.appManager.notify( - 'Update Check Failed', - 'Failed to check for updates. ' + e, - ); - } - } - - const app = express(); - - app.use( - createRequestHandler({ - // @ts-expect-error - virtual module provided by React Router at build time - build: () => import('virtual:react-router/server-build'), - getLoadContext() { - return { - VALUE_FROM_EXPRESS: 'Hello from Express', - }; - }, - }), - ); - - return app; -} diff --git a/server/appman.ts b/server/appman.ts deleted file mode 100644 index 1bf7a6f..0000000 --- a/server/appman.ts +++ /dev/null @@ -1,414 +0,0 @@ -import { NotifyIcon, Icon, Menu } from 'not-the-systray'; -import { - entitlementTypeToIdMap, - type Agent, - type ValorantLoadout, -} from 'types'; -import type { Loadout } from '~/utils'; -import { - getLockfile, - getUser, - getUserConfig, - randomItem, -} from '~/utils.server'; -import type { User } from './userman'; -import { exec } from 'child_process'; -import WebSocket from 'ws'; - -function open(url: string) { - exec(`start ${url}`); -} - -function tryParseJson(json: string): T | null { - try { - return JSON.parse(json); - } catch (e) { - return null; - } -} - -const notificationIcon = Icon.load(Icon.ids.info, Icon.large); - -const loadoutShufflingItemId = 1; -const agentDetectionItemId = 2; -const openItemId = 3; -const quitItemId = 4; - -export class AppManager { - private isAutoShuffleEnabled = true; - private isAgentDetectionEnabled = true; - - private appIcon = new NotifyIcon({ - icon: Icon.load(Icon.ids.app, Icon.small), - tooltip: 'ValPal', - onSelect: ({ mouseX, mouseY }) => { - this.handleMenu(mouseX, mouseY); - }, - }); - - private menu = new Menu([ - { - id: openItemId, - text: 'Open ValPal', - }, - { - id: loadoutShufflingItemId, - text: 'Loadout shuffling', - checked: true, - }, - { - id: agentDetectionItemId, - text: 'Agent specific loadouts', - checked: true, - }, - { - id: quitItemId, - text: 'Quit', - }, - ]); - - constructor() { - this.connect(); - } - - notify(title: string, text: string) { - this.appIcon.update({ - notification: { - icon: notificationIcon, - title, - text, - }, - }); - } - - private handleMenu = (x: number, y: number) => { - const id = this.menu.showSync(x, y); - switch (id) { - case null: { - break; - } - case openItemId: { - open('http://localhost:3000'); - break; - } - case loadoutShufflingItemId: { - const { checked } = this.menu.get(loadoutShufflingItemId); - this.menu.update(loadoutShufflingItemId, { checked: !checked }); - this.isAutoShuffleEnabled = !checked; - break; - } - case agentDetectionItemId: { - const { checked } = this.menu.get(agentDetectionItemId); - this.menu.update(agentDetectionItemId, { checked: !checked }); - this.isAgentDetectionEnabled = !checked; - break; - } - case quitItemId: { - this.appIcon.remove(); - process.exit(0); - break; - } - } - }; - - async connect() { - try { - console.log('Attempting to connect to websocket'); - - const lockfile = await getLockfile(); - - if (!lockfile) { - console.log('Lockfile not found'); - setTimeout(() => { - this.connect(); - }, 5000); - return; - } - - const { port, password } = lockfile; - const ws = new WebSocket(`wss://riot:${password}@127.0.0.1:${port}`, { - rejectUnauthorized: false, - }); - - const matchCharacterSelectionStates = new Map(); - - ws.addEventListener('open', async () => { - try { - console.log('Connected to websocket'); - ws.send(JSON.stringify([5, 'OnJsonApiEvent'])); - } catch (e) { - console.warn('Caught error in websocket open handler', e); - } - }); - - let abortController: AbortController = new AbortController(); - - ws.addEventListener('message', async ({ data }) => { - try { - const parsed = tryParseJson<[number, string, object]>( - data.toString(), - ); - - if (!parsed) { - return; - } - - const [type, event, payload] = parsed; - - if (type !== 8 || event !== 'OnJsonApiEvent') { - return; - } - - const { uri, eventType } = payload as { - uri: string; - eventType: string; - data: object; - }; - - const uriMatch = uri.match(/\/pregame\/v1\/matches\/(.*)/); - if (eventType === 'Create' && uriMatch && uriMatch[1]) { - const matchId = uriMatch[1]; - console.log('Match found:', matchId); - - const existingState = matchCharacterSelectionStates.get(matchId); - - if (existingState === 'locked') { - console.log('Match already locked, no need to process'); - return; - } - - const user = await getUser(); - - if (!user) { - console.log('User not found'); - return; - } - - const match = await user.getPregame(); - - const player = match.AllyTeam.Players.find( - (player) => player.Subject === user.userId, - ); - - const newState = player?.CharacterSelectionState; - - if ( - newState && - newState !== matchCharacterSelectionStates.get(matchId) - ) { - if (newState === 'locked' && this.isAutoShuffleEnabled) { - this.equip( - user, - this.isAgentDetectionEnabled ? player.CharacterID : undefined, - ); - } - - matchCharacterSelectionStates.set(matchId, newState); - } - } - } catch (e) { - console.warn('Caught error in websocket message handler:', e); - } - }); - - ws.addEventListener('close', () => { - try { - abortController?.abort(); - console.log('Disconnected from websocket'); - setTimeout(() => { - this.connect(); - }, 5000); - } catch (e) { - console.warn('Caught error in websocket close handler:', e); - } - }); - - ws.addEventListener('error', (err) => { - console.warn('WS error:', err); - // this.notify('Websocket Error', err.message); - }); - } catch (e) { - console.warn('Caught error in connect method:', e); - } - } - - equip = async (user: User, agentId?: string) => { - const config = await getUserConfig(user.userId); - - const agent: Agent | undefined = valorantData.agents.find( - (a) => a.uuid === agentId, - )!; - - const loadoutsToConsider = (function ( - loadouts: Loadout[], - agentId?: string, - ) { - if (!agentId) { - console.log('No agent specified, considering all loadouts.'); - return loadouts; - } - - const agentSpecificLoadouts = loadouts.filter((l) => - l.agentIds.includes(agentId), - ); - - if (agentSpecificLoadouts.length === 0) { - console.log( - 'No loadouts for', - agentId, - `(${agent.displayName})`, - 'falling back to all loadouts.', - ); - return loadouts; - } - - console.log( - 'Only considering loadouts for', - agentId, - `(${agent.displayName})`, - ); - return agentSpecificLoadouts; - })( - config.loadouts.filter((loadout) => loadout.enabled), - agentId, - ); - - if (loadoutsToConsider.length === 0) { - console.log('No loadouts, not equipping.'); - return; - } - - const loadout = randomItem(loadoutsToConsider); - this.equipLoadout(user, loadout); - }; - - async equipLoadout(user: User, loadout: Loadout) { - const weapons = valorantData.weapons; - - const [existingLoadout, entitlements] = await Promise.all([ - user.getLoadout(), - user.getEntitlements(), - ]); - - const buddyEntitlements = entitlements.buddy.reduce((acc, buddy) => { - const existing = acc.get(buddy.ItemID) || []; - existing.push(buddy.InstanceID); - - acc.set(buddy.ItemID, existing); - return acc; - }, new Map()); - - const loadoutToEquip: ValorantLoadout = { - ...existingLoadout, - Identity: { - ...existingLoadout.Identity, - PlayerCardID: - randomItem(loadout.playerCardIds) || - '9fb348bc-41a0-91ad-8a3e-818035c4e561', - }, - ActiveExpressions: [ - randomItem([ - ...loadout.expressionIds.top.sprayIds.map((id) => ({ - TypeID: entitlementTypeToIdMap.spray, - AssetID: id, - })), - ...loadout.expressionIds.top.flexIds.map((id) => ({ - TypeID: entitlementTypeToIdMap.flex, - AssetID: id, - })), - ]) || { - TypeID: entitlementTypeToIdMap.spray, - AssetID: '0a6db78c-48b9-a32d-c47a-82be597584c1', - }, - randomItem([ - ...loadout.expressionIds.right.sprayIds.map((id) => ({ - TypeID: entitlementTypeToIdMap.spray, - AssetID: id, - })), - ...loadout.expressionIds.right.flexIds.map((id) => ({ - TypeID: entitlementTypeToIdMap.flex, - AssetID: id, - })), - ]) || { - TypeID: entitlementTypeToIdMap.spray, - AssetID: '0a6db78c-48b9-a32d-c47a-82be597584c1', - }, - randomItem([ - ...loadout.expressionIds.bottom.sprayIds.map((id) => ({ - TypeID: entitlementTypeToIdMap.spray, - AssetID: id, - })), - ...loadout.expressionIds.bottom.flexIds.map((id) => ({ - TypeID: entitlementTypeToIdMap.flex, - AssetID: id, - })), - ]) || { - TypeID: entitlementTypeToIdMap.spray, - AssetID: '0a6db78c-48b9-a32d-c47a-82be597584c1', - }, - randomItem([ - ...loadout.expressionIds.left.sprayIds.map((id) => ({ - TypeID: entitlementTypeToIdMap.spray, - AssetID: id, - })), - ...loadout.expressionIds.left.flexIds.map((id) => ({ - TypeID: entitlementTypeToIdMap.flex, - AssetID: id, - })), - ]) || { - TypeID: entitlementTypeToIdMap.flex, - AssetID: 'af52b5a0-4a4c-03b2-c9d7-8187a08a2675', - }, - ], - Guns: Object.entries(loadout.weapons).map(([weaponId, { templates }]) => { - if (!templates.length) { - const weapon = weapons.find((w) => w.uuid === weaponId)!; - const skin = weapon.skins.find( - (s) => s.uuid === weapon.defaultSkinUuid, - )!; - - return { - ID: weaponId, - SkinID: skin.uuid, - ChromaID: skin.chromas[0].uuid, - SkinLevelID: skin.levels[0].uuid, - Attachments: [], - }; - } - - const template = randomItem(templates); - - const buddyData = (() => { - const buddy = randomItem(template.buddies); - if (!buddy) return null; - - const buddyLevelId = randomItem(buddy.levelIds); - - const consumedBuddy = ( - buddyEntitlements.get(buddyLevelId) || [] - ).shift(); - - if (!consumedBuddy) return null; - - return { - CharmInstanceID: consumedBuddy, - CharmID: buddy.id, - CharmLevelID: buddyLevelId, - }; - })(); - - return { - ID: weaponId, - SkinID: template.skinId, - ChromaID: randomItem(template.chromaIds), - SkinLevelID: randomItem(template.levelIds), - Attachments: [], - ...buddyData, - }; - }), - }; - - console.log('Equipping loadout', loadoutToEquip); - await user.equipLoadout(loadoutToEquip); - } -} diff --git a/server/userman.ts b/server/userman.ts deleted file mode 100644 index 9e6d1c2..0000000 --- a/server/userman.ts +++ /dev/null @@ -1,249 +0,0 @@ -import https from 'https'; - -import axios from 'axios'; -import type { - EntitlementsByCategory, - EntitlementsByType, - Gun, - Identity, - Session, - ValorantLoadout, - Shards, - PregamePlayer, - PregameMatch, - Regions, - ActiveExpression, -} from 'types'; -import { entitlementIdToTypeMap } from 'types'; - -const agent = new https.Agent({ - ciphers: [ - 'TLS_CHACHA20_POLY1305_SHA256', - 'TLS_AES_128_GCM_SHA256', - 'TLS_AES_256_GCM_SHA384', - 'TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256', - ].join(':'), - honorCipherOrder: true, - minVersion: 'TLSv1.2', -}); - -const httpClient = axios.create({ - httpsAgent: agent, -}); - -function getPlayerDataServiceUrl(region: Regions) { - return `https://pd.${region}.a.pvp.net`; -} - -function getPartyServiceUrl(region: Regions, shard: Shards) { - return `https://glz-${region}-1.${shard}.a.pvp.net`; -} - -export function generateRequestHeaders( - args: { - accessToken: string; - entitlementsToken: string; - riotClientVersion: string; - }, - extraHeaders: Record = {}, -) { - const defaultHeaders = { - Authorization: `Bearer ${args.accessToken}`, - 'X-Riot-Entitlements-JWT': args.entitlementsToken, - 'X-Riot-ClientVersion': args.riotClientVersion, - 'X-Riot-ClientPlatform': btoa( - JSON.stringify({ - platformType: 'PC', - platformOS: 'Windows', - platformOSVersion: '10.0.19042.1.256.64bit', - platformChipset: 'Unknown', - }), - ), - }; - - // merge in extra headers - return { - ...defaultHeaders, - ...extraHeaders, - }; -} - -export class User { - private accessToken: string; - private entitlementsToken: string; - public userId: string; - public region: Regions; - public shard: Shards; - - private requestHeaders: Record; - - constructor(args: { - accessToken: string; - entitlementsToken: string; - riotClientVersion: string; - userId: string; - region: Regions; - shard: Shards; - }) { - this.accessToken = args.accessToken; - this.entitlementsToken = args.entitlementsToken; - this.userId = args.userId; - this.region = args.region; - this.shard = args.shard; - this.requestHeaders = generateRequestHeaders({ - riotClientVersion: args.riotClientVersion, - accessToken: this.accessToken, - entitlementsToken: this.entitlementsToken, - }); - } - - getTokens() { - return { - accessToken: this.accessToken, - entitlementsToken: this.entitlementsToken, - }; - } - - async getLoadout() { - const { data } = await httpClient.get<{ - Subject: string; - Version: number; - Guns: Gun[]; - ActiveExpressions: ActiveExpression[]; - Identity: Identity; - Incognito: boolean; - }>( - `${getPlayerDataServiceUrl(this.region)}/personalization/v3/players/${ - this.userId - }/playerloadout`, - { - headers: this.requestHeaders, - }, - ); - - return data; - } - - async getEntitlements() { - const { data } = await httpClient.get<{ - EntitlementsByTypes: EntitlementsByType[]; - }>( - `${getPlayerDataServiceUrl(this.region)}/store/v1/entitlements/${ - this.userId - }`, - { - headers: this.requestHeaders, - }, - ); - - return data.EntitlementsByTypes.reduce( - (acc, curr) => { - const entitlementType = entitlementIdToTypeMap[curr.ItemTypeID]; - if (!entitlementType) { - return acc; - } - - acc[entitlementType].push(...curr.Entitlements); - return acc; - }, - { - skin_level: [], - skin_chroma: [], - agent: [], - contract_definition: [], - buddy: [], - spray: [], - flex: [ - { - ItemID: 'af52b5a0-4a4c-03b2-c9d7-8187a08a2675', - TypeID: '03a572de-4234-31ed-d344-ababa488f981', - InstanceID: 'af52b5a0-4a4c-03b2-c9d7-8187a08a2675', - }, - ], - player_card: [], - player_title: [], - } as EntitlementsByCategory, - ); - } - - async getPlayer() { - const { data } = await httpClient.put< - Array<{ - DisplayName: string; - Subject: string; - GameName: string; - TagLine: string; - }> - >( - `${getPlayerDataServiceUrl(this.region)}/name-service/v2/players`, - [this.userId], - { - headers: this.requestHeaders, - }, - ); - - return data[0]; - } - - async getSession() { - const { data } = await httpClient.get( - `${getPartyServiceUrl(this.region, this.shard)}/session/v1/sessions/${ - this.userId - }`, - { - headers: this.requestHeaders, - }, - ); - - return data; - } - - async getParty() { - const { data } = await httpClient.get( - `${getPartyServiceUrl(this.region, this.shard)}/parties/v1/players/${ - this.userId - }`, - { - headers: this.requestHeaders, - }, - ); - - return data; - } - - async getPregame() { - const { data } = await httpClient.get( - `${getPartyServiceUrl(this.region, this.shard)}/pregame/v1/players/${ - this.userId - }`, - { - headers: this.requestHeaders, - }, - ); - - const { data: pregameData } = await httpClient.get( - `${getPartyServiceUrl(this.region, this.shard)}/pregame/v1/matches/${ - data.MatchID - }`, - { - headers: this.requestHeaders, - }, - ); - - return pregameData; - } - - async equipLoadout(loadout: ValorantLoadout) { - const { data } = await httpClient.put( - `${getPlayerDataServiceUrl(this.region)}/personalization/v3/players/${ - this.userId - }/playerloadout`, - loadout, - { - headers: this.requestHeaders, - }, - ); - - return data; - } -} diff --git a/server/valorantApi.ts b/server/valorantApi.ts deleted file mode 100644 index 03cde22..0000000 --- a/server/valorantApi.ts +++ /dev/null @@ -1,132 +0,0 @@ -import axios from 'axios'; -import type { - Buddy, - PlayerCard, - Weapon, - Spray, - Flex, - Agent, - PlayerTitle, -} from 'types'; - -const httpClient = axios.create(); - -async function getWeapons() { - const { data } = await httpClient.get<{ - status: number; - data: Weapon[]; - }>('https://valorant-api.com/v1/weapons'); - - return data.data; -} - -async function getBuddies() { - const { data } = await httpClient.get<{ - status: number; - data: Buddy[]; - }>('https://valorant-api.com/v1/buddies'); - - return data.data; -} - -async function getSprays() { - const { data } = await httpClient.get<{ - status: number; - data: Spray[]; - }>('https://valorant-api.com/v1/sprays'); - - return data.data; -} - -async function getFlexes() { - const { data } = await httpClient.get<{ - status: number; - data: Flex[]; - }>('https://valorant-api.com/v1/flex'); - - return data.data; -} - -async function getPlayerCards() { - const { data } = await httpClient.get<{ - status: number; - data: PlayerCard[]; - }>('https://valorant-api.com/v1/playercards'); - - return data.data; -} - -async function getPlayerTitles() { - const { data } = await httpClient.get<{ - status: number; - data: PlayerTitle[]; - }>('https://valorant-api.com/v1/playertitles'); - - return data.data; -} - -async function getAgents() { - const { data } = await httpClient.get<{ - status: number; - data: Agent[]; - }>('https://valorant-api.com/v1/agents'); - - return data.data.filter((agent) => agent.isPlayableCharacter); -} - -async function getVersion() { - const { data } = await httpClient.get<{ - status: number; - data: { riotClientVersion: string }; - }>('https://valorant-api.com/v1/version'); - - return data.data; -} - -export async function initSkinData() { - const [ - weapons, - buddies, - sprays, - flex, - playerCards, - playerTitles, - agents, - version, - ] = await Promise.all([ - getWeapons(), - getBuddies(), - getSprays(), - getFlexes(), - getPlayerCards(), - getPlayerTitles(), - getAgents(), - getVersion(), - ]); - - global.valorantData = { - weapons, - buddies, - sprays, - flex, - playerCards, - playerTitles, - agents, - version, - }; -} - -declare global { - var valorantData: { - weapons: Weapon[]; - buddies: Buddy[]; - sprays: Spray[]; - flex: Flex[]; - playerCards: PlayerCard[]; - playerTitles: PlayerTitle[]; - agents: Agent[]; - version: { - riotClientVersion: string; - }; - }; -} diff --git a/src-tauri/.gitignore b/src-tauri/.gitignore new file mode 100644 index 0000000..b21bd68 --- /dev/null +++ b/src-tauri/.gitignore @@ -0,0 +1,7 @@ +# Generated by Cargo +# will have compiled files and executables +/target/ + +# Generated by Tauri +# will have schema files for capabilities auto-completion +/gen/schemas diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock new file mode 100644 index 0000000..f54554f --- /dev/null +++ b/src-tauri/Cargo.lock @@ -0,0 +1,5734 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "adler2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" + +[[package]] +name = "aho-corasick" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" +dependencies = [ + "memchr", +] + +[[package]] +name = "alloc-no-stdlib" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" +dependencies = [ + "alloc-no-stdlib", +] + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anyhow" +version = "1.0.101" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f0e0fee31ef5ed1ba1316088939cea399010ed7731dba877ed44aeb407a75ea" + +[[package]] +name = "async-broadcast" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532" +dependencies = [ + "event-listener", + "event-listener-strategy", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-channel" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2" +dependencies = [ + "concurrent-queue", + "event-listener-strategy", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-executor" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c96bf972d85afc50bf5ab8fe2d54d1586b4e0b46c97c50a0c9e71e2f7bcd812a" +dependencies = [ + "async-task", + "concurrent-queue", + "fastrand", + "futures-lite", + "pin-project-lite", + "slab", +] + +[[package]] +name = "async-io" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "456b8a8feb6f42d237746d4b3e9a178494627745c3c56c6ea55d92ba50d026fc" +dependencies = [ + "autocfg", + "cfg-if", + "concurrent-queue", + "futures-io", + "futures-lite", + "parking", + "polling", + "rustix", + "slab", + "windows-sys 0.61.2", +] + +[[package]] +name = "async-lock" +version = "3.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290f7f2596bd5b78a9fec8088ccd89180d7f9f55b94b0576823bbbdc72ee8311" +dependencies = [ + "event-listener", + "event-listener-strategy", + "pin-project-lite", +] + +[[package]] +name = "async-process" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc50921ec0055cdd8a16de48773bfeec5c972598674347252c0399676be7da75" +dependencies = [ + "async-channel", + "async-io", + "async-lock", + "async-signal", + "async-task", + "blocking", + "cfg-if", + "event-listener", + "futures-lite", + "rustix", +] + +[[package]] +name = "async-recursion" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "async-signal" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43c070bbf59cd3570b6b2dd54cd772527c7c3620fce8be898406dd3ed6adc64c" +dependencies = [ + "async-io", + "async-lock", + "atomic-waker", + "cfg-if", + "futures-core", + "futures-io", + "rustix", + "signal-hook-registry", + "slab", + "windows-sys 0.61.2", +] + +[[package]] +name = "async-task" +version = "4.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" + +[[package]] +name = "async-trait" +version = "0.1.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "atk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "241b621213072e993be4f6f3a9e4b45f65b7e6faad43001be957184b7bb1824b" +dependencies = [ + "atk-sys", + "glib", + "libc", +] + +[[package]] +name = "atk-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5e48b684b0ca77d2bbadeef17424c2ea3c897d44d566a1617e7e8f30614d086" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "autocfg" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" +dependencies = [ + "serde_core", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block2" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5" +dependencies = [ + "objc2", +] + +[[package]] +name = "blocking" +version = "1.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e83f8d02be6967315521be875afa792a316e28d57b5a2d401897e2a7921b7f21" +dependencies = [ + "async-channel", + "async-task", + "futures-io", + "futures-lite", + "piper", +] + +[[package]] +name = "brotli" +version = "8.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bd8b9603c7aa97359dbd97ecf258968c95f3adddd6db2f7e7a5bef101c84560" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "874bb8112abecc98cbd6d81ea4fa7e94fb9449648c93cc89aa40c81c24d7de03" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + +[[package]] +name = "bumpalo" +version = "3.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c6f81257d10a0f602a294ae4182251151ff97dbb504ef9afcdda4a64b24d9b4" + +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" +dependencies = [ + "serde", +] + +[[package]] +name = "cairo-rs" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2" +dependencies = [ + "bitflags 2.11.0", + "cairo-sys-rs", + "glib", + "libc", + "once_cell", + "thiserror 1.0.69", +] + +[[package]] +name = "cairo-sys-rs" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + +[[package]] +name = "camino" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e629a66d692cb9ff1a1c664e41771b3dcaf961985a9774c0eb0bd1b51cf60a48" +dependencies = [ + "serde_core", +] + +[[package]] +name = "cargo-platform" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.19.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba" +dependencies = [ + "camino", + "cargo-platform", + "semver", + "serde", + "serde_json", + "thiserror 2.0.18", +] + +[[package]] +name = "cargo_toml" +version = "0.22.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "374b7c592d9c00c1f4972ea58390ac6b18cbb6ab79011f3bdc90a0b82ca06b77" +dependencies = [ + "serde", + "toml 0.9.12+spec-1.1.0", +] + +[[package]] +name = "cc" +version = "1.2.56" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aebf35691d1bfb0ac386a69bac2fde4dd276fb618cf8bf4f5318fe285e821bb2" +dependencies = [ + "find-msvc-tools", + "shlex", +] + +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + +[[package]] +name = "cfb" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38f2da7a0a2c4ccf0065be06397cc26a81f4e528be095826eee9d4adbb8c60f" +dependencies = [ + "byteorder", + "fnv", + "uuid", +] + +[[package]] +name = "cfg-expr" +version = "0.15.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" +dependencies = [ + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cfg-if" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" + +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + +[[package]] +name = "chrono" +version = "0.4.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fac4744fb15ae8337dc853fee7fb3f4e48c0fbaa23d0afe49c447b4fab126118" +dependencies = [ + "iana-time-zone", + "js-sys", + "num-traits", + "serde", + "wasm-bindgen", + "windows-link 0.2.1", +] + +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + +[[package]] +name = "concurrent-queue" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "cookie" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ddef33a339a91ea89fb53151bd0a4689cfce27055c291dfa69945475d22c747" +dependencies = [ + "time", + "version_check", +] + +[[package]] +name = "core-foundation" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "core-graphics" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa95a34622365fa5bbf40b20b75dba8dfa8c94c734aea8ac9a5ca38af14316f1" +dependencies = [ + "bitflags 2.11.0", + "core-foundation", + "core-graphics-types", + "foreign-types", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" +dependencies = [ + "bitflags 2.11.0", + "core-foundation", + "libc", +] + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" + +[[package]] +name = "crypto-common" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "cssparser" +version = "0.29.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f93d03419cb5950ccfd3daf3ff1c7a36ace64609a1a8746d493df1ca0afde0fa" +dependencies = [ + "cssparser-macros", + "dtoa-short", + "itoa", + "matches", + "phf 0.10.1", + "proc-macro2", + "quote", + "smallvec", + "syn 1.0.109", +] + +[[package]] +name = "cssparser-macros" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" +dependencies = [ + "quote", + "syn 2.0.116", +] + +[[package]] +name = "ctor" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a2785755761f3ddc1492979ce1e48d2c00d09311c39e4466429188f3dd6501" +dependencies = [ + "quote", + "syn 2.0.116", +] + +[[package]] +name = "darling" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.116", +] + +[[package]] +name = "darling_macro" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "data-encoding" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7a1e2f27636f116493b8b860f5546edb47c8d8f8ea73e1d2a20be88e28d1fea" + +[[package]] +name = "deranged" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc3dc5ad92c2e2d1c193bbbbdf2ea477cb81331de4f3103f267ca18368b988c4" +dependencies = [ + "powerfmt", + "serde_core", +] + +[[package]] +name = "derive_more" +version = "0.99.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6edb4b64a43d977b8e99788fe3a04d483834fba1215a7e02caa415b626497f7f" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "rustc_version", + "syn 2.0.116", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "dirs" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.61.2", +] + +[[package]] +name = "dispatch" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" + +[[package]] +name = "dispatch2" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec" +dependencies = [ + "bitflags 2.11.0", + "objc2", +] + +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "dlopen2" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e2c5bd4158e66d1e215c49b837e11d62f3267b30c92f1d171c4d3105e3dc4d4" +dependencies = [ + "dlopen2_derive", + "libc", + "once_cell", + "winapi", +] + +[[package]] +name = "dlopen2_derive" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fbbb781877580993a8707ec48672673ec7b81eeba04cfd2310bd28c08e47c8f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "dpi" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76" +dependencies = [ + "serde", +] + +[[package]] +name = "dtoa" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c3cf4824e2d5f025c7b531afcb2325364084a16806f6d47fbc1f5fbd9960590" + +[[package]] +name = "dtoa-short" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd1511a7b6a56299bd043a9c167a6d2bfb37bf84a6dfceaba651168adfb43c87" +dependencies = [ + "dtoa", +] + +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + +[[package]] +name = "dyn-clone" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" + +[[package]] +name = "embed-resource" +version = "3.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55a075fc573c64510038d7ee9abc7990635863992f83ebc52c8b433b8411a02e" +dependencies = [ + "cc", + "memchr", + "rustc_version", + "toml 0.9.12+spec-1.1.0", + "vswhom", + "winreg", +] + +[[package]] +name = "embed_plist" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" + +[[package]] +name = "endi" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66b7e2430c6dff6a955451e2cfc438f09cea1965a9d6f87f7e3b90decc014099" + +[[package]] +name = "enumflags2" +version = "0.7.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1027f7680c853e056ebcec683615fb6fbbc07dbaa13b4d5d9442b146ded4ecef" +dependencies = [ + "enumflags2_derive", + "serde", +] + +[[package]] +name = "enumflags2_derive" +version = "0.7.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "erased-serde" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89e8918065695684b2b0702da20382d5ae6065cf3327bc2d6436bd49a71ce9f3" +dependencies = [ + "serde", + "serde_core", + "typeid", +] + +[[package]] +name = "errno" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + +[[package]] +name = "event-listener" +version = "5.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener-strategy" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" +dependencies = [ + "event-listener", + "pin-project-lite", +] + +[[package]] +name = "fastrand" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" + +[[package]] +name = "fdeflate" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "field-offset" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" +dependencies = [ + "memoffset", + "rustc_version", +] + +[[package]] +name = "find-msvc-tools" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" + +[[package]] +name = "flate2" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + +[[package]] +name = "foreign-types" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" +dependencies = [ + "foreign-types-macros", + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-macros" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "foreign-types-shared" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" + +[[package]] +name = "form_urlencoded" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futf" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" +dependencies = [ + "mac", + "new_debug_unreachable", +] + +[[package]] +name = "futures-channel" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" + +[[package]] +name = "futures-executor" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" + +[[package]] +name = "futures-lite" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad" +dependencies = [ + "fastrand", + "futures-core", + "futures-io", + "parking", + "pin-project-lite", +] + +[[package]] +name = "futures-macro" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "futures-sink" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893" + +[[package]] +name = "futures-task" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" + +[[package]] +name = "futures-util" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" +dependencies = [ + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "slab", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "gdk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9f245958c627ac99d8e529166f9823fb3b838d1d41fd2b297af3075093c2691" +dependencies = [ + "cairo-rs", + "gdk-pixbuf", + "gdk-sys", + "gio", + "glib", + "libc", + "pango", +] + +[[package]] +name = "gdk-pixbuf" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50e1f5f1b0bfb830d6ccc8066d18db35c487b1b2b1e8589b5dfe9f07e8defaec" +dependencies = [ + "gdk-pixbuf-sys", + "gio", + "glib", + "libc", + "once_cell", +] + +[[package]] +name = "gdk-pixbuf-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gdk-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c2d13f38594ac1e66619e188c6d5a1adb98d11b2fcf7894fc416ad76aa2f3f7" +dependencies = [ + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "pkg-config", + "system-deps", +] + +[[package]] +name = "gdkwayland-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "140071d506d223f7572b9f09b5e155afbd77428cd5cc7af8f2694c41d98dfe69" +dependencies = [ + "gdk-sys", + "glib-sys", + "gobject-sys", + "libc", + "pkg-config", + "system-deps", +] + +[[package]] +name = "gdkx11" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3caa00e14351bebbc8183b3c36690327eb77c49abc2268dd4bd36b856db3fbfe" +dependencies = [ + "gdk", + "gdkx11-sys", + "gio", + "glib", + "libc", + "x11", +] + +[[package]] +name = "gdkx11-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e2e7445fe01ac26f11601db260dd8608fe172514eb63b3b5e261ea6b0f4428d" +dependencies = [ + "gdk-sys", + "glib-sys", + "libc", + "system-deps", + "x11", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "wasi 0.11.1+wasi-snapshot-preview1", + "wasm-bindgen", +] + +[[package]] +name = "getrandom" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "r-efi", + "wasip2", + "wasm-bindgen", +] + +[[package]] +name = "getrandom" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "139ef39800118c7683f2fd3c98c1b23c09ae076556b435f8e9064ae108aaeeec" +dependencies = [ + "cfg-if", + "libc", + "r-efi", + "wasip2", + "wasip3", +] + +[[package]] +name = "gio" +version = "0.18.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "gio-sys", + "glib", + "libc", + "once_cell", + "pin-project-lite", + "smallvec", + "thiserror 1.0.69", +] + +[[package]] +name = "gio-sys" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", + "winapi", +] + +[[package]] +name = "glib" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5" +dependencies = [ + "bitflags 2.11.0", + "futures-channel", + "futures-core", + "futures-executor", + "futures-task", + "futures-util", + "gio-sys", + "glib-macros", + "glib-sys", + "gobject-sys", + "libc", + "memchr", + "once_cell", + "smallvec", + "thiserror 1.0.69", +] + +[[package]] +name = "glib-macros" +version = "0.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc" +dependencies = [ + "heck 0.4.1", + "proc-macro-crate 2.0.2", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "glib-sys" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898" +dependencies = [ + "libc", + "system-deps", +] + +[[package]] +name = "glob" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" + +[[package]] +name = "gobject-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gtk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd56fb197bfc42bd5d2751f4f017d44ff59fbb58140c6b49f9b3b2bdab08506a" +dependencies = [ + "atk", + "cairo-rs", + "field-offset", + "futures-channel", + "gdk", + "gdk-pixbuf", + "gio", + "glib", + "gtk-sys", + "gtk3-macros", + "libc", + "pango", + "pkg-config", +] + +[[package]] +name = "gtk-sys" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f29a1c21c59553eb7dd40e918be54dccd60c52b049b75119d5d96ce6b624414" +dependencies = [ + "atk-sys", + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "system-deps", +] + +[[package]] +name = "gtk3-macros" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52ff3c5b21f14f0736fed6dcfc0bfb4225ebf5725f3c0209edeec181e4d73e9d" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "foldhash", +] + +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "html5ever" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b7410cae13cbc75623c98ac4cbfd1f0bedddf3227afc24f370cf0f50a44a11c" +dependencies = [ + "log", + "mac", + "markup5ever", + "match_token", +] + +[[package]] +name = "http" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" +dependencies = [ + "bytes", + "itoa", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "hyper" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11" +dependencies = [ + "atomic-waker", + "bytes", + "futures-channel", + "futures-core", + "http", + "http-body", + "httparse", + "itoa", + "pin-project-lite", + "pin-utils", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.27.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" +dependencies = [ + "http", + "hyper", + "hyper-util", + "rustls", + "rustls-pki-types", + "tokio", + "tokio-rustls", + "tower-service", + "webpki-roots", +] + +[[package]] +name = "hyper-util" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-channel", + "futures-util", + "http", + "http-body", + "hyper", + "ipnet", + "libc", + "percent-encoding", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "log", + "wasm-bindgen", + "windows-core 0.62.2", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "ico" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e795dff5605e0f04bff85ca41b51a96b83e80b281e96231bcaaf1ac35103371" +dependencies = [ + "byteorder", + "png", +] + +[[package]] +name = "icu_collections" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" +dependencies = [ + "displaydoc", + "potential_utf", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locale_core" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_normalizer" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" +dependencies = [ + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" + +[[package]] +name = "icu_properties" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec" +dependencies = [ + "icu_collections", + "icu_locale_core", + "icu_properties_data", + "icu_provider", + "zerotrie", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af" + +[[package]] +name = "icu_provider" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" +dependencies = [ + "displaydoc", + "icu_locale_core", + "writeable", + "yoke", + "zerofrom", + "zerotrie", + "zerovec", +] + +[[package]] +name = "id-arena" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" +dependencies = [ + "equivalent", + "hashbrown 0.16.1", + "serde", + "serde_core", +] + +[[package]] +name = "infer" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a588916bfdfd92e71cacef98a63d9b1f0d74d6599980d11894290e7ddefffcf7" +dependencies = [ + "cfb", +] + +[[package]] +name = "ipnet" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" + +[[package]] +name = "iri-string" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c91338f0783edbd6195decb37bae672fd3b165faffb89bf7b9e6942f8b1a731a" +dependencies = [ + "memchr", + "serde", +] + +[[package]] +name = "is-docker" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3" +dependencies = [ + "once_cell", +] + +[[package]] +name = "is-wsl" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5" +dependencies = [ + "is-docker", + "once_cell", +] + +[[package]] +name = "itoa" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" + +[[package]] +name = "javascriptcore-rs" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca5671e9ffce8ffba57afc24070e906da7fc4b1ba66f2cabebf61bf2ea257fcc" +dependencies = [ + "bitflags 1.3.2", + "glib", + "javascriptcore-rs-sys", +] + +[[package]] +name = "javascriptcore-rs-sys" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af1be78d14ffa4b75b66df31840478fef72b51f8c2465d4ca7c194da9f7a5124" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "jni" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" +dependencies = [ + "cesu8", + "cfg-if", + "combine", + "jni-sys", + "log", + "thiserror 1.0.69", + "walkdir", + "windows-sys 0.45.0", +] + +[[package]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" + +[[package]] +name = "js-sys" +version = "0.3.85" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3" +dependencies = [ + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "json-patch" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "863726d7afb6bc2590eeff7135d923545e5e964f004c2ccf8716c25e70a86f08" +dependencies = [ + "jsonptr", + "serde", + "serde_json", + "thiserror 1.0.69", +] + +[[package]] +name = "jsonptr" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dea2b27dd239b2556ed7a25ba842fe47fd602e7fc7433c2a8d6106d4d9edd70" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "keyboard-types" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a" +dependencies = [ + "bitflags 2.11.0", + "serde", + "unicode-segmentation", +] + +[[package]] +name = "kuchikiki" +version = "0.8.8-speedreader" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02cb977175687f33fa4afa0c95c112b987ea1443e5a51c8f8ff27dc618270cc2" +dependencies = [ + "cssparser", + "html5ever", + "indexmap 2.13.0", + "selectors", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "leb128fmt" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" + +[[package]] +name = "libappindicator" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03589b9607c868cc7ae54c0b2a22c8dc03dd41692d48f2d7df73615c6a95dc0a" +dependencies = [ + "glib", + "gtk", + "gtk-sys", + "libappindicator-sys", + "log", +] + +[[package]] +name = "libappindicator-sys" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e9ec52138abedcc58dc17a7c6c0c00a2bdb4f3427c7f63fa97fd0d859155caf" +dependencies = [ + "gtk-sys", + "libloading", + "once_cell", +] + +[[package]] +name = "libc" +version = "0.2.182" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112" + +[[package]] +name = "libloading" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +dependencies = [ + "cfg-if", + "winapi", +] + +[[package]] +name = "libredox" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616" +dependencies = [ + "bitflags 2.11.0", + "libc", +] + +[[package]] +name = "linux-raw-sys" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" + +[[package]] +name = "litemap" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" + +[[package]] +name = "lock_api" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" +dependencies = [ + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" + +[[package]] +name = "lru-slab" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" + +[[package]] +name = "mac" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" + +[[package]] +name = "markup5ever" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7a7213d12e1864c0f002f52c2923d4556935a43dec5e71355c2760e0f6e7a18" +dependencies = [ + "log", + "phf 0.11.3", + "phf_codegen 0.11.3", + "string_cache", + "string_cache_codegen", + "tendril", +] + +[[package]] +name = "match_token" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88a9689d8d44bf9964484516275f5cd4c9b59457a6940c1d5d0ecbb94510a36b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "matches" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" + +[[package]] +name = "memchr" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" + +[[package]] +name = "memoffset" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" +dependencies = [ + "autocfg", +] + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "miniz_oxide" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" +dependencies = [ + "adler2", + "simd-adler32", +] + +[[package]] +name = "mio" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" +dependencies = [ + "libc", + "wasi 0.11.1+wasi-snapshot-preview1", + "windows-sys 0.61.2", +] + +[[package]] +name = "muda" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01c1738382f66ed56b3b9c8119e794a2e23148ac8ea214eda86622d4cb9d415a" +dependencies = [ + "crossbeam-channel", + "dpi", + "gtk", + "keyboard-types", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", + "once_cell", + "png", + "serde", + "thiserror 2.0.18", + "windows-sys 0.60.2", +] + +[[package]] +name = "ndk" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" +dependencies = [ + "bitflags 2.11.0", + "jni-sys", + "log", + "ndk-sys", + "num_enum", + "raw-window-handle", + "thiserror 1.0.69", +] + +[[package]] +name = "ndk-context" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" + +[[package]] +name = "ndk-sys" +version = "0.6.0+11769913" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" +dependencies = [ + "jni-sys", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + +[[package]] +name = "nodrop" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" + +[[package]] +name = "num-conv" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050" + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_enum" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1207a7e20ad57b847bbddc6776b968420d38292bbfe2089accff5e19e82454c" +dependencies = [ + "num_enum_derive", + "rustversion", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7" +dependencies = [ + "proc-macro-crate 3.4.0", + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "objc2" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c2599ce0ec54857b29ce62166b0ed9b4f6f1a70ccc9a71165b6154caca8c05" +dependencies = [ + "objc2-encode", + "objc2-exception-helper", +] + +[[package]] +name = "objc2-app-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c" +dependencies = [ + "bitflags 2.11.0", + "block2", + "libc", + "objc2", + "objc2-cloud-kit", + "objc2-core-data", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-core-image", + "objc2-core-text", + "objc2-core-video", + "objc2-foundation", + "objc2-quartz-core", +] + +[[package]] +name = "objc2-cloud-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73ad74d880bb43877038da939b7427bba67e9dd42004a18b809ba7d87cee241c" +dependencies = [ + "bitflags 2.11.0", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-data" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b402a653efbb5e82ce4df10683b6b28027616a2715e90009947d50b8dd298fa" +dependencies = [ + "bitflags 2.11.0", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-foundation" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" +dependencies = [ + "bitflags 2.11.0", + "dispatch2", + "objc2", +] + +[[package]] +name = "objc2-core-graphics" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807" +dependencies = [ + "bitflags 2.11.0", + "dispatch2", + "objc2", + "objc2-core-foundation", + "objc2-io-surface", +] + +[[package]] +name = "objc2-core-image" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5d563b38d2b97209f8e861173de434bd0214cf020e3423a52624cd1d989f006" +dependencies = [ + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-text" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cde0dfb48d25d2b4862161a4d5fcc0e3c24367869ad306b0c9ec0073bfed92d" +dependencies = [ + "bitflags 2.11.0", + "objc2", + "objc2-core-foundation", + "objc2-core-graphics", +] + +[[package]] +name = "objc2-core-video" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d425caf1df73233f29fd8a5c3e5edbc30d2d4307870f802d18f00d83dc5141a6" +dependencies = [ + "bitflags 2.11.0", + "objc2", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-io-surface", +] + +[[package]] +name = "objc2-encode" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" + +[[package]] +name = "objc2-exception-helper" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7a1c5fbb72d7735b076bb47b578523aedc40f3c439bea6dfd595c089d79d98a" +dependencies = [ + "cc", +] + +[[package]] +name = "objc2-foundation" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" +dependencies = [ + "bitflags 2.11.0", + "block2", + "libc", + "objc2", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-io-surface" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180788110936d59bab6bd83b6060ffdfffb3b922ba1396b312ae795e1de9d81d" +dependencies = [ + "bitflags 2.11.0", + "objc2", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-javascript-core" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a1e6550c4caed348956ce3370c9ffeca70bb1dbed4fa96112e7c6170e074586" +dependencies = [ + "objc2", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-quartz-core" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96c1358452b371bf9f104e21ec536d37a650eb10f7ee379fff67d2e08d537f1f" +dependencies = [ + "bitflags 2.11.0", + "objc2", + "objc2-core-foundation", + "objc2-foundation", +] + +[[package]] +name = "objc2-security" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "709fe137109bd1e8b5a99390f77a7d8b2961dafc1a1c5db8f2e60329ad6d895a" +dependencies = [ + "bitflags 2.11.0", + "objc2", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-ui-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d87d638e33c06f577498cbcc50491496a3ed4246998a7fbba7ccb98b1e7eab22" +dependencies = [ + "bitflags 2.11.0", + "objc2", + "objc2-core-foundation", + "objc2-foundation", +] + +[[package]] +name = "objc2-web-kit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2e5aaab980c433cf470df9d7af96a7b46a9d892d521a2cbbb2f8a4c16751e7f" +dependencies = [ + "bitflags 2.11.0", + "block2", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", + "objc2-javascript-core", + "objc2-security", +] + +[[package]] +name = "once_cell" +version = "1.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" + +[[package]] +name = "open" +version = "5.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43bb73a7fa3799b198970490a51174027ba0d4ec504b03cd08caf513d40024bc" +dependencies = [ + "dunce", + "is-wsl", + "libc", + "pathdiff", +] + +[[package]] +name = "openssl-probe" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "ordered-stream" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50" +dependencies = [ + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "pango" +version = "0.18.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4" +dependencies = [ + "gio", + "glib", + "libc", + "once_cell", + "pango-sys", +] + +[[package]] +name = "pango-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "parking" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" + +[[package]] +name = "parking_lot" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-link 0.2.1", +] + +[[package]] +name = "pathdiff" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" + +[[package]] +name = "percent-encoding" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" + +[[package]] +name = "phf" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12" +dependencies = [ + "phf_shared 0.8.0", +] + +[[package]] +name = "phf" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" +dependencies = [ + "phf_macros 0.10.0", + "phf_shared 0.10.0", + "proc-macro-hack", +] + +[[package]] +name = "phf" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" +dependencies = [ + "phf_macros 0.11.3", + "phf_shared 0.11.3", +] + +[[package]] +name = "phf_codegen" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815" +dependencies = [ + "phf_generator 0.8.0", + "phf_shared 0.8.0", +] + +[[package]] +name = "phf_codegen" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a" +dependencies = [ + "phf_generator 0.11.3", + "phf_shared 0.11.3", +] + +[[package]] +name = "phf_generator" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526" +dependencies = [ + "phf_shared 0.8.0", + "rand 0.7.3", +] + +[[package]] +name = "phf_generator" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" +dependencies = [ + "phf_shared 0.10.0", + "rand 0.8.5", +] + +[[package]] +name = "phf_generator" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" +dependencies = [ + "phf_shared 0.11.3", + "rand 0.8.5", +] + +[[package]] +name = "phf_macros" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0" +dependencies = [ + "phf_generator 0.10.0", + "phf_shared 0.10.0", + "proc-macro-hack", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "phf_macros" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" +dependencies = [ + "phf_generator 0.11.3", + "phf_shared 0.11.3", + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "phf_shared" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" +dependencies = [ + "siphasher 0.3.11", +] + +[[package]] +name = "phf_shared" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +dependencies = [ + "siphasher 0.3.11", +] + +[[package]] +name = "phf_shared" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" +dependencies = [ + "siphasher 1.0.2", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "piper" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" +dependencies = [ + "atomic-waker", + "fastrand", + "futures-io", +] + +[[package]] +name = "pkg-config" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" + +[[package]] +name = "plist" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "740ebea15c5d1428f910cd1a5f52cebf8d25006245ed8ade92702f4943d91e07" +dependencies = [ + "base64 0.22.1", + "indexmap 2.13.0", + "quick-xml", + "serde", + "time", +] + +[[package]] +name = "png" +version = "0.17.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526" +dependencies = [ + "bitflags 1.3.2", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide", +] + +[[package]] +name = "polling" +version = "3.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218" +dependencies = [ + "cfg-if", + "concurrent-queue", + "hermit-abi", + "pin-project-lite", + "rustix", + "windows-sys 0.61.2", +] + +[[package]] +name = "potential_utf" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" +dependencies = [ + "zerovec", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "prettyplease" +version = "0.2.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" +dependencies = [ + "proc-macro2", + "syn 2.0.116", +] + +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit 0.19.15", +] + +[[package]] +name = "proc-macro-crate" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24" +dependencies = [ + "toml_datetime 0.6.3", + "toml_edit 0.20.2", +] + +[[package]] +name = "proc-macro-crate" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" +dependencies = [ + "toml_edit 0.23.10+spec-1.0.0", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro-hack" +version = "0.5.20+deprecated" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" + +[[package]] +name = "proc-macro2" +version = "1.0.106" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quick-xml" +version = "0.38.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b66c2058c55a409d601666cffe35f04333cf1013010882cec174a7467cd4e21c" +dependencies = [ + "memchr", +] + +[[package]] +name = "quinn" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" +dependencies = [ + "bytes", + "cfg_aliases", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash", + "rustls", + "socket2", + "thiserror 2.0.18", + "tokio", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-proto" +version = "0.11.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" +dependencies = [ + "bytes", + "getrandom 0.3.4", + "lru-slab", + "rand 0.9.2", + "ring", + "rustc-hash", + "rustls", + "rustls-pki-types", + "slab", + "thiserror 2.0.18", + "tinyvec", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-udp" +version = "0.5.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" +dependencies = [ + "cfg_aliases", + "libc", + "once_cell", + "socket2", + "tracing", + "windows-sys 0.60.2", +] + +[[package]] +name = "quote" +version = "1.0.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", + "rand_pcg", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.5", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.5", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.17", +] + +[[package]] +name = "rand_core" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" +dependencies = [ + "getrandom 0.3.4", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "rand_pcg" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "raw-window-handle" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" + +[[package]] +name = "redox_syscall" +version = "0.5.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" +dependencies = [ + "bitflags 2.11.0", +] + +[[package]] +name = "redox_users" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" +dependencies = [ + "getrandom 0.2.17", + "libredox", + "thiserror 2.0.18", +] + +[[package]] +name = "ref-cast" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "regex" +version = "1.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a96887878f22d7bad8a3b6dc5b7440e0ada9a245242924394987b21cf2210a4c" + +[[package]] +name = "reqwest" +version = "0.12.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-core", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-rustls", + "hyper-util", + "js-sys", + "log", + "percent-encoding", + "pin-project-lite", + "quinn", + "rustls", + "rustls-pki-types", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "tokio", + "tokio-rustls", + "tower", + "tower-http", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "webpki-roots", +] + +[[package]] +name = "reqwest" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab3f43e3283ab1488b624b44b0e988d0acea0b3214e694730a055cb6b2efa801" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-core", + "futures-util", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-util", + "js-sys", + "log", + "percent-encoding", + "pin-project-lite", + "serde", + "serde_json", + "sync_wrapper", + "tokio", + "tokio-util", + "tower", + "tower-http", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", +] + +[[package]] +name = "ring" +version = "0.17.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" +dependencies = [ + "cc", + "cfg-if", + "getrandom 0.2.17", + "libc", + "untrusted", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustc-hash" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "146c9e247ccc180c1f61615433868c99f3de3ae256a30a43b49f67c2d9171f34" +dependencies = [ + "bitflags 2.11.0", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.61.2", +] + +[[package]] +name = "rustls" +version = "0.23.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c665f33d38cea657d9614f766881e4d510e0eda4239891eea56b4cadcf01801b" +dependencies = [ + "once_cell", + "ring", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls-native-certs" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "612460d5f7bea540c490b2b6395d8e34a953e52b491accd6c86c8164c5932a63" +dependencies = [ + "openssl-probe", + "rustls-pki-types", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-pki-types" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd" +dependencies = [ + "web-time", + "zeroize", +] + +[[package]] +name = "rustls-webpki" +version = "0.103.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7df23109aa6c1567d1c575b9952556388da57401e4ace1d15f79eedad0d8f53" +dependencies = [ + "ring", + "rustls-pki-types", + "untrusted", +] + +[[package]] +name = "rustversion" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" + +[[package]] +name = "ryu" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "schannel" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "schemars" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" +dependencies = [ + "dyn-clone", + "indexmap 1.9.3", + "schemars_derive", + "serde", + "serde_json", + "url", + "uuid", +] + +[[package]] +name = "schemars" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] + +[[package]] +name = "schemars" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2b42f36aa1cd011945615b92222f6bf73c599a102a300334cd7f8dbeec726cc" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 2.0.116", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "security-framework" +version = "3.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d17b898a6d6948c3a8ee4372c17cb384f90d2e6e912ef00895b14fd7ab54ec38" +dependencies = [ + "bitflags 2.11.0", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "321c8673b092a9a42605034a9879d73cb79101ed5fd117bc9a597b89b4e9e61a" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "selectors" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c37578180969d00692904465fb7f6b3d50b9a2b952b87c23d0e2e5cb5013416" +dependencies = [ + "bitflags 1.3.2", + "cssparser", + "derive_more", + "fxhash", + "log", + "phf 0.8.0", + "phf_codegen 0.8.0", + "precomputed-hash", + "servo_arc", + "smallvec", +] + +[[package]] +name = "semver" +version = "1.0.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" +dependencies = [ + "serde", + "serde_core", +] + +[[package]] +name = "serde" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde-untagged" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9faf48a4a2d2693be24c6289dbe26552776eb7737074e6722891fadbe6c5058" +dependencies = [ + "erased-serde", + "serde", + "serde_core", + "typeid", +] + +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "serde_derive_internals" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "serde_json" +version = "1.0.149" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "serde_repr" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "serde_spanned" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_spanned" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8bbf91e5a4d6315eee45e704372590b30e260ee83af6639d64557f51b067776" +dependencies = [ + "serde_core", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_with" +version = "3.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fa237f2807440d238e0364a218270b98f767a00d3dada77b1c53ae88940e2e7" +dependencies = [ + "base64 0.22.1", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.13.0", + "schemars 0.9.0", + "schemars 1.2.1", + "serde_core", + "serde_json", + "serde_with_macros", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "3.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52a8e3ca0ca629121f70ab50f95249e5a6f925cc0f6ffe8256c45b728875706c" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "serialize-to-javascript" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04f3666a07a197cdb77cdf306c32be9b7f598d7060d50cfd4d5aa04bfd92f6c5" +dependencies = [ + "serde", + "serde_json", + "serialize-to-javascript-impl", +] + +[[package]] +name = "serialize-to-javascript-impl" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "772ee033c0916d670af7860b6e1ef7d658a4629a6d0b4c8c3e67f09b3765b75d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "servo_arc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52aa42f8fdf0fed91e5ce7f23d8138441002fa31dca008acf47e6fd4721f741" +dependencies = [ + "nodrop", + "stable_deref_trait", +] + +[[package]] +name = "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.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "signal-hook-registry" +version = "1.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" +dependencies = [ + "errno", + "libc", +] + +[[package]] +name = "simd-adler32" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "siphasher" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2aa850e253778c88a04c3d7323b043aeda9d3e30d5971937c1855769763678e" + +[[package]] +name = "slab" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" + +[[package]] +name = "smallvec" +version = "1.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" + +[[package]] +name = "socket2" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86f4aa3ad99f2088c990dfa82d367e19cb29268ed67c574d10d0a4bfe71f07e0" +dependencies = [ + "libc", + "windows-sys 0.60.2", +] + +[[package]] +name = "softbuffer" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aac18da81ebbf05109ab275b157c22a653bb3c12cf884450179942f81bcbf6c3" +dependencies = [ + "bytemuck", + "js-sys", + "ndk", + "objc2", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-foundation", + "objc2-quartz-core", + "raw-window-handle", + "redox_syscall", + "tracing", + "wasm-bindgen", + "web-sys", + "windows-sys 0.61.2", +] + +[[package]] +name = "soup3" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "471f924a40f31251afc77450e781cb26d55c0b650842efafc9c6cbd2f7cc4f9f" +dependencies = [ + "futures-channel", + "gio", + "glib", + "libc", + "soup3-sys", +] + +[[package]] +name = "soup3-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ebe8950a680a12f24f15ebe1bf70db7af98ad242d9db43596ad3108aab86c27" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" + +[[package]] +name = "string_cache" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf776ba3fa74f83bf4b63c3dcbbf82173db2632ed8452cb2d891d33f459de70f" +dependencies = [ + "new_debug_unreachable", + "parking_lot", + "phf_shared 0.11.3", + "precomputed-hash", + "serde", +] + +[[package]] +name = "string_cache_codegen" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c711928715f1fe0fe509c53b43e993a9a557babc2d0a3567d0a3006f1ac931a0" +dependencies = [ + "phf_generator 0.11.3", + "phf_shared 0.11.3", + "proc-macro2", + "quote", +] + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "swift-rs" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4057c98e2e852d51fdcfca832aac7b571f6b351ad159f9eda5db1655f8d0c4d7" +dependencies = [ + "base64 0.21.7", + "serde", + "serde_json", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.116" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3df424c70518695237746f84cede799c9c58fcb37450d7b23716568cc8bc69cb" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" +dependencies = [ + "futures-core", +] + +[[package]] +name = "synstructure" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "system-deps" +version = "6.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" +dependencies = [ + "cfg-expr", + "heck 0.5.0", + "pkg-config", + "toml 0.8.2", + "version-compare", +] + +[[package]] +name = "tao" +version = "0.34.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3a753bdc39c07b192151523a3f77cd0394aa75413802c883a0f6f6a0e5ee2e7" +dependencies = [ + "bitflags 2.11.0", + "block2", + "core-foundation", + "core-graphics", + "crossbeam-channel", + "dispatch", + "dlopen2", + "dpi", + "gdkwayland-sys", + "gdkx11-sys", + "gtk", + "jni", + "lazy_static", + "libc", + "log", + "ndk", + "ndk-context", + "ndk-sys", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "once_cell", + "parking_lot", + "raw-window-handle", + "scopeguard", + "tao-macros", + "unicode-segmentation", + "url", + "windows", + "windows-core 0.61.2", + "windows-version", + "x11-dl", +] + +[[package]] +name = "tao-macros" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4e16beb8b2ac17db28eab8bca40e62dbfbb34c0fcdc6d9826b11b7b5d047dfd" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "target-lexicon" +version = "0.12.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" + +[[package]] +name = "tauri" +version = "2.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "463ae8677aa6d0f063a900b9c41ecd4ac2b7ca82f0b058cc4491540e55b20129" +dependencies = [ + "anyhow", + "bytes", + "cookie", + "dirs", + "dunce", + "embed_plist", + "getrandom 0.3.4", + "glob", + "gtk", + "heck 0.5.0", + "http", + "jni", + "libc", + "log", + "mime", + "muda", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "objc2-ui-kit", + "objc2-web-kit", + "percent-encoding", + "plist", + "raw-window-handle", + "reqwest 0.13.2", + "serde", + "serde_json", + "serde_repr", + "serialize-to-javascript", + "swift-rs", + "tauri-build", + "tauri-macros", + "tauri-runtime", + "tauri-runtime-wry", + "tauri-utils", + "thiserror 2.0.18", + "tokio", + "tray-icon", + "url", + "webkit2gtk", + "webview2-com", + "window-vibrancy", + "windows", +] + +[[package]] +name = "tauri-build" +version = "2.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca7bd893329425df750813e95bd2b643d5369d929438da96d5bbb7cc2c918f74" +dependencies = [ + "anyhow", + "cargo_toml", + "dirs", + "glob", + "heck 0.5.0", + "json-patch", + "schemars 0.8.22", + "semver", + "serde", + "serde_json", + "tauri-utils", + "tauri-winres", + "toml 0.9.12+spec-1.1.0", + "walkdir", +] + +[[package]] +name = "tauri-codegen" +version = "2.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aac423e5859d9f9ccdd32e3cf6a5866a15bedbf25aa6630bcb2acde9468f6ae3" +dependencies = [ + "base64 0.22.1", + "brotli", + "ico", + "json-patch", + "plist", + "png", + "proc-macro2", + "quote", + "semver", + "serde", + "serde_json", + "sha2", + "syn 2.0.116", + "tauri-utils", + "thiserror 2.0.18", + "time", + "url", + "uuid", + "walkdir", +] + +[[package]] +name = "tauri-macros" +version = "2.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b6a1bd2861ff0c8766b1d38b32a6a410f6dc6532d4ef534c47cfb2236092f59" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.116", + "tauri-codegen", + "tauri-utils", +] + +[[package]] +name = "tauri-plugin" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "692a77abd8b8773e107a42ec0e05b767b8d2b7ece76ab36c6c3947e34df9f53f" +dependencies = [ + "anyhow", + "glob", + "plist", + "schemars 0.8.22", + "serde", + "serde_json", + "tauri-utils", + "toml 0.9.12+spec-1.1.0", + "walkdir", +] + +[[package]] +name = "tauri-plugin-opener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc624469b06f59f5a29f874bbc61a2ed737c0f9c23ef09855a292c389c42e83f" +dependencies = [ + "dunce", + "glob", + "objc2-app-kit", + "objc2-foundation", + "open", + "schemars 0.8.22", + "serde", + "serde_json", + "tauri", + "tauri-plugin", + "thiserror 2.0.18", + "url", + "windows", + "zbus", +] + +[[package]] +name = "tauri-runtime" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b885ffeac82b00f1f6fd292b6e5aabfa7435d537cef57d11e38a489956535651" +dependencies = [ + "cookie", + "dpi", + "gtk", + "http", + "jni", + "objc2", + "objc2-ui-kit", + "objc2-web-kit", + "raw-window-handle", + "serde", + "serde_json", + "tauri-utils", + "thiserror 2.0.18", + "url", + "webkit2gtk", + "webview2-com", + "windows", +] + +[[package]] +name = "tauri-runtime-wry" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5204682391625e867d16584fedc83fc292fb998814c9f7918605c789cd876314" +dependencies = [ + "gtk", + "http", + "jni", + "log", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "once_cell", + "percent-encoding", + "raw-window-handle", + "softbuffer", + "tao", + "tauri-runtime", + "tauri-utils", + "url", + "webkit2gtk", + "webview2-com", + "windows", + "wry", +] + +[[package]] +name = "tauri-utils" +version = "2.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcd169fccdff05eff2c1033210b9b94acd07a47e6fa9a3431cf09cfd4f01c87e" +dependencies = [ + "anyhow", + "brotli", + "cargo_metadata", + "ctor", + "dunce", + "glob", + "html5ever", + "http", + "infer", + "json-patch", + "kuchikiki", + "log", + "memchr", + "phf 0.11.3", + "proc-macro2", + "quote", + "regex", + "schemars 0.8.22", + "semver", + "serde", + "serde-untagged", + "serde_json", + "serde_with", + "swift-rs", + "thiserror 2.0.18", + "toml 0.9.12+spec-1.1.0", + "url", + "urlpattern", + "uuid", + "walkdir", +] + +[[package]] +name = "tauri-winres" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1087b111fe2b005e42dbdc1990fc18593234238d47453b0c99b7de1c9ab2c1e0" +dependencies = [ + "dunce", + "embed-resource", + "toml 0.9.12+spec-1.1.0", +] + +[[package]] +name = "tempfile" +version = "3.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0136791f7c95b1f6dd99f9cc786b91bb81c3800b639b3478e561ddb7be95e5f1" +dependencies = [ + "fastrand", + "getrandom 0.4.1", + "once_cell", + "rustix", + "windows-sys 0.61.2", +] + +[[package]] +name = "tendril" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" +dependencies = [ + "futf", + "mac", + "utf-8", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" +dependencies = [ + "thiserror-impl 2.0.18", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "time" +version = "0.3.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" +dependencies = [ + "deranged", + "itoa", + "num-conv", + "powerfmt", + "serde_core", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" + +[[package]] +name = "time-macros" +version = "0.2.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "tinystr" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tinyvec" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" +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.49.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86" +dependencies = [ + "bytes", + "libc", + "mio", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "windows-sys 0.61.2", +] + +[[package]] +name = "tokio-macros" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "tokio-rustls" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" +dependencies = [ + "rustls", + "tokio", +] + +[[package]] +name = "tokio-tungstenite" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edc5f74e248dc973e0dbb7b74c7e0d6fcc301c694ff50049504004ef4d0cdcd9" +dependencies = [ + "futures-util", + "log", + "rustls", + "rustls-native-certs", + "rustls-pki-types", + "tokio", + "tokio-rustls", + "tungstenite", +] + +[[package]] +name = "tokio-util" +version = "0.7.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" +dependencies = [ + "serde", + "serde_spanned 0.6.9", + "toml_datetime 0.6.3", + "toml_edit 0.20.2", +] + +[[package]] +name = "toml" +version = "0.9.12+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf92845e79fc2e2def6a5d828f0801e29a2f8acc037becc5ab08595c7d5e9863" +dependencies = [ + "indexmap 2.13.0", + "serde_core", + "serde_spanned 1.0.4", + "toml_datetime 0.7.5+spec-1.1.0", + "toml_parser", + "toml_writer", + "winnow 0.7.14", +] + +[[package]] +name = "toml_datetime" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_datetime" +version = "0.7.5+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.13.0", + "toml_datetime 0.6.3", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" +dependencies = [ + "indexmap 2.13.0", + "serde", + "serde_spanned 0.6.9", + "toml_datetime 0.6.3", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.23.10+spec-1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269" +dependencies = [ + "indexmap 2.13.0", + "toml_datetime 0.7.5+spec-1.1.0", + "toml_parser", + "winnow 0.7.14", +] + +[[package]] +name = "toml_parser" +version = "1.0.9+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "702d4415e08923e7e1ef96cd5727c0dfed80b4d2fa25db9647fe5eb6f7c5a4c4" +dependencies = [ + "winnow 0.7.14", +] + +[[package]] +name = "toml_writer" +version = "1.0.6+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab16f14aed21ee8bfd8ec22513f7287cd4a91aa92e44edfe2c17ddd004e92607" + +[[package]] +name = "tower" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper", + "tokio", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-http" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" +dependencies = [ + "bitflags 2.11.0", + "bytes", + "futures-util", + "http", + "http-body", + "iri-string", + "pin-project-lite", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + +[[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + +[[package]] +name = "tracing" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "tracing-core" +version = "0.1.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" +dependencies = [ + "once_cell", +] + +[[package]] +name = "tray-icon" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e85aa143ceb072062fc4d6356c1b520a51d636e7bc8e77ec94be3608e5e80c" +dependencies = [ + "crossbeam-channel", + "dirs", + "libappindicator", + "muda", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-foundation", + "once_cell", + "png", + "serde", + "thiserror 2.0.18", + "windows-sys 0.60.2", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "tungstenite" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18e5b8366ee7a95b16d32197d0b2604b43a0be89dc5fac9f8e96ccafbaedda8a" +dependencies = [ + "byteorder", + "bytes", + "data-encoding", + "http", + "httparse", + "log", + "rand 0.8.5", + "rustls", + "rustls-pki-types", + "sha1", + "thiserror 1.0.69", + "utf-8", +] + +[[package]] +name = "typeid" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" + +[[package]] +name = "typenum" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" + +[[package]] +name = "uds_windows" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" +dependencies = [ + "memoffset", + "tempfile", + "winapi", +] + +[[package]] +name = "unic-char-property" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221" +dependencies = [ + "unic-char-range", +] + +[[package]] +name = "unic-char-range" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc" + +[[package]] +name = "unic-common" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc" + +[[package]] +name = "unic-ucd-ident" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e230a37c0381caa9219d67cf063aa3a375ffed5bf541a452db16e744bdab6987" +dependencies = [ + "unic-char-property", + "unic-char-range", + "unic-ucd-version", +] + +[[package]] +name = "unic-ucd-version" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4" +dependencies = [ + "unic-common", +] + +[[package]] +name = "unicode-ident" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" + +[[package]] +name = "unicode-segmentation" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" + +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "url" +version = "2.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", + "serde_derive", +] + +[[package]] +name = "urlpattern" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70acd30e3aa1450bc2eece896ce2ad0d178e9c079493819301573dae3c37ba6d" +dependencies = [ + "regex", + "serde", + "unic-ucd-ident", + "url", +] + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "uuid" +version = "1.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b672338555252d43fd2240c714dc444b8c6fb0a5c5335e65a07bba7742735ddb" +dependencies = [ + "getrandom 0.4.1", + "js-sys", + "serde_core", + "wasm-bindgen", +] + +[[package]] +name = "valpal" +version = "0.1.0" +dependencies = [ + "base64 0.22.1", + "chrono", + "futures-util", + "http", + "rand 0.9.2", + "reqwest 0.12.28", + "rustls", + "serde", + "serde_json", + "tauri", + "tauri-build", + "tauri-plugin-opener", + "tokio", + "tokio-tungstenite", + "uuid", +] + +[[package]] +name = "version-compare" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03c2856837ef78f57382f06b2b8563a2f512f7185d732608fd9176cb3b8edf0e" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "vswhom" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be979b7f07507105799e854203b470ff7c78a1639e330a58f183b5fea574608b" +dependencies = [ + "libc", + "vswhom-sys", +] + +[[package]] +name = "vswhom-sys" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb067e4cbd1ff067d1df46c9194b5de0e98efd2810bbc95c5d5e5f25a3231150" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "wasi" +version = "0.11.1+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" + +[[package]] +name = "wasip2" +version = "1.0.2+wasi-0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasip3" +version = "0.4.0+wasi-0.3.0-rc-2026-01-06" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.108" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70a6e77fd0ae8029c9ea0063f87c46fde723e7d887703d74ad2616d792e51e6f" +dependencies = [ + "cfg-if", + "futures-util", + "js-sys", + "once_cell", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.108" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.108" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55" +dependencies = [ + "bumpalo", + "proc-macro2", + "quote", + "syn 2.0.116", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.108" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "wasm-encoder" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" +dependencies = [ + "leb128fmt", + "wasmparser", +] + +[[package]] +name = "wasm-metadata" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" +dependencies = [ + "anyhow", + "indexmap 2.13.0", + "wasm-encoder", + "wasmparser", +] + +[[package]] +name = "wasm-streams" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1ec4f6517c9e11ae630e200b2b65d193279042e28edd4a2cda233e46670bbb" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "wasmparser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" +dependencies = [ + "bitflags 2.11.0", + "hashbrown 0.15.5", + "indexmap 2.13.0", + "semver", +] + +[[package]] +name = "web-sys" +version = "0.3.85" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "312e32e551d92129218ea9a2452120f4aabc03529ef03e4d0d82fb2780608598" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web-time" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webkit2gtk" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1027150013530fb2eaf806408df88461ae4815a45c541c8975e61d6f2fc4793" +dependencies = [ + "bitflags 1.3.2", + "cairo-rs", + "gdk", + "gdk-sys", + "gio", + "gio-sys", + "glib", + "glib-sys", + "gobject-sys", + "gtk", + "gtk-sys", + "javascriptcore-rs", + "libc", + "once_cell", + "soup3", + "webkit2gtk-sys", +] + +[[package]] +name = "webkit2gtk-sys" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "916a5f65c2ef0dfe12fff695960a2ec3d4565359fdbb2e9943c974e06c734ea5" +dependencies = [ + "bitflags 1.3.2", + "cairo-sys-rs", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "gtk-sys", + "javascriptcore-rs-sys", + "libc", + "pkg-config", + "soup3-sys", + "system-deps", +] + +[[package]] +name = "webpki-roots" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22cfaf3c063993ff62e73cb4311efde4db1efb31ab78a3e5c457939ad5cc0bed" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "webview2-com" +version = "0.38.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7130243a7a5b33c54a444e54842e6a9e133de08b5ad7b5861cd8ed9a6a5bc96a" +dependencies = [ + "webview2-com-macros", + "webview2-com-sys", + "windows", + "windows-core 0.61.2", + "windows-implement", + "windows-interface", +] + +[[package]] +name = "webview2-com-macros" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a921c1b6914c367b2b823cd4cde6f96beec77d30a939c8199bb377cf9b9b54" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "webview2-com-sys" +version = "0.38.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "381336cfffd772377d291702245447a5251a2ffa5bad679c99e61bc48bacbf9c" +dependencies = [ + "thiserror 2.0.18", + "windows", + "windows-core 0.61.2", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "window-vibrancy" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9bec5a31f3f9362f2258fd0e9c9dd61a9ca432e7306cc78c444258f0dce9a9c" +dependencies = [ + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", + "raw-window-handle", + "windows-sys 0.59.0", + "windows-version", +] + +[[package]] +name = "windows" +version = "0.61.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" +dependencies = [ + "windows-collections", + "windows-core 0.61.2", + "windows-future", + "windows-link 0.1.3", + "windows-numerics", +] + +[[package]] +name = "windows-collections" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" +dependencies = [ + "windows-core 0.61.2", +] + +[[package]] +name = "windows-core" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link 0.1.3", + "windows-result 0.3.4", + "windows-strings 0.4.2", +] + +[[package]] +name = "windows-core" +version = "0.62.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link 0.2.1", + "windows-result 0.4.1", + "windows-strings 0.5.1", +] + +[[package]] +name = "windows-future" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" +dependencies = [ + "windows-core 0.61.2", + "windows-link 0.1.3", + "windows-threading", +] + +[[package]] +name = "windows-implement" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "windows-interface" +version = "0.59.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "windows-link" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" + +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-numerics" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" +dependencies = [ + "windows-core 0.61.2", + "windows-link 0.1.3", +] + +[[package]] +name = "windows-result" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-result" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows-strings" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-strings" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.5", +] + +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm 0.52.6", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.53.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" +dependencies = [ + "windows-link 0.2.1", + "windows_aarch64_gnullvm 0.53.1", + "windows_aarch64_msvc 0.53.1", + "windows_i686_gnu 0.53.1", + "windows_i686_gnullvm 0.53.1", + "windows_i686_msvc 0.53.1", + "windows_x86_64_gnu 0.53.1", + "windows_x86_64_gnullvm 0.53.1", + "windows_x86_64_msvc 0.53.1", +] + +[[package]] +name = "windows-threading" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-version" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4060a1da109b9d0326b7262c8e12c84df67cc0dbc9e33cf49e01ccc2eb63631" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_i686_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.7.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.55.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb5a765337c50e9ec252c2069be9bf91c7df47afb103b642ba3a53bf8101be97" +dependencies = [ + "cfg-if", + "windows-sys 0.59.0", +] + +[[package]] +name = "wit-bindgen" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" +dependencies = [ + "wit-bindgen-rust-macro", +] + +[[package]] +name = "wit-bindgen-core" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" +dependencies = [ + "anyhow", + "heck 0.5.0", + "wit-parser", +] + +[[package]] +name = "wit-bindgen-rust" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" +dependencies = [ + "anyhow", + "heck 0.5.0", + "indexmap 2.13.0", + "prettyplease", + "syn 2.0.116", + "wasm-metadata", + "wit-bindgen-core", + "wit-component", +] + +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" +dependencies = [ + "anyhow", + "prettyplease", + "proc-macro2", + "quote", + "syn 2.0.116", + "wit-bindgen-core", + "wit-bindgen-rust", +] + +[[package]] +name = "wit-component" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" +dependencies = [ + "anyhow", + "bitflags 2.11.0", + "indexmap 2.13.0", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder", + "wasm-metadata", + "wasmparser", + "wit-parser", +] + +[[package]] +name = "wit-parser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" +dependencies = [ + "anyhow", + "id-arena", + "indexmap 2.13.0", + "log", + "semver", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser", +] + +[[package]] +name = "writeable" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" + +[[package]] +name = "wry" +version = "0.54.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb26159b420aa77684589a744ae9a9461a95395b848764ad12290a14d960a11a" +dependencies = [ + "base64 0.22.1", + "block2", + "cookie", + "crossbeam-channel", + "dirs", + "dpi", + "dunce", + "gdkx11", + "gtk", + "html5ever", + "http", + "javascriptcore-rs", + "jni", + "kuchikiki", + "libc", + "ndk", + "objc2", + "objc2-app-kit", + "objc2-core-foundation", + "objc2-foundation", + "objc2-ui-kit", + "objc2-web-kit", + "once_cell", + "percent-encoding", + "raw-window-handle", + "sha2", + "soup3", + "tao-macros", + "thiserror 2.0.18", + "url", + "webkit2gtk", + "webkit2gtk-sys", + "webview2-com", + "windows", + "windows-core 0.61.2", + "windows-version", + "x11-dl", +] + +[[package]] +name = "x11" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "502da5464ccd04011667b11c435cb992822c2c0dbde1770c988480d312a0db2e" +dependencies = [ + "libc", + "pkg-config", +] + +[[package]] +name = "x11-dl" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" +dependencies = [ + "libc", + "once_cell", + "pkg-config", +] + +[[package]] +name = "yoke" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" +dependencies = [ + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", + "synstructure", +] + +[[package]] +name = "zbus" +version = "5.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfeff997a0aaa3eb20c4652baf788d2dfa6d2839a0ead0b3ff69ce2f9c4bdd1" +dependencies = [ + "async-broadcast", + "async-executor", + "async-io", + "async-lock", + "async-process", + "async-recursion", + "async-task", + "async-trait", + "blocking", + "enumflags2", + "event-listener", + "futures-core", + "futures-lite", + "hex", + "libc", + "ordered-stream", + "rustix", + "serde", + "serde_repr", + "tracing", + "uds_windows", + "uuid", + "windows-sys 0.61.2", + "winnow 0.7.14", + "zbus_macros", + "zbus_names", + "zvariant", +] + +[[package]] +name = "zbus_macros" +version = "5.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bbd5a90dbe8feee5b13def448427ae314ccd26a49cac47905cafefb9ff846f1" +dependencies = [ + "proc-macro-crate 3.4.0", + "proc-macro2", + "quote", + "syn 2.0.116", + "zbus_names", + "zvariant", + "zvariant_utils", +] + +[[package]] +name = "zbus_names" +version = "4.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffd8af6d5b78619bab301ff3c560a5bd22426150253db278f164d6cf3b72c50f" +dependencies = [ + "serde", + "winnow 0.7.14", + "zvariant", +] + +[[package]] +name = "zerocopy" +version = "0.8.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db6d35d663eadb6c932438e763b262fe1a70987f9ae936e60158176d710cae4a" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4122cd3169e94605190e77839c9a40d40ed048d305bfdc146e7df40ab0f3e517" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "zerofrom" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", + "synstructure", +] + +[[package]] +name = "zeroize" +version = "1.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" + +[[package]] +name = "zerotrie" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", +] + +[[package]] +name = "zerovec" +version = "0.11.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.116", +] + +[[package]] +name = "zmij" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" + +[[package]] +name = "zvariant" +version = "5.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68b64ef4f40c7951337ddc7023dd03528a57a3ce3408ee9da5e948bd29b232c4" +dependencies = [ + "endi", + "enumflags2", + "serde", + "winnow 0.7.14", + "zvariant_derive", + "zvariant_utils", +] + +[[package]] +name = "zvariant_derive" +version = "5.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "484d5d975eb7afb52cc6b929c13d3719a20ad650fea4120e6310de3fc55e415c" +dependencies = [ + "proc-macro-crate 3.4.0", + "proc-macro2", + "quote", + "syn 2.0.116", + "zvariant_utils", +] + +[[package]] +name = "zvariant_utils" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f75c23a64ef8f40f13a6989991e643554d9bef1d682a281160cf0c1bc389c5e9" +dependencies = [ + "proc-macro2", + "quote", + "serde", + "syn 2.0.116", + "winnow 0.7.14", +] diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml new file mode 100644 index 0000000..dd24449 --- /dev/null +++ b/src-tauri/Cargo.toml @@ -0,0 +1,35 @@ +[package] +name = "valpal" +version = "0.1.0" +description = "A Tauri App" +authors = ["you"] +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[lib] +# The `_lib` suffix may seem redundant but it is necessary +# to make the lib name unique and wouldn't conflict with the bin name. +# This seems to be only an issue on Windows, see https://github.com/rust-lang/cargo/issues/8519 +name = "valpal_lib" +crate-type = ["staticlib", "cdylib", "rlib"] + +[build-dependencies] +tauri-build = { version = "2", features = [] } + +[dependencies] +tauri = { version = "2", features = ["tray-icon", "devtools"] } +tauri-plugin-opener = "2" +serde = { version = "1", features = ["derive"] } +serde_json = "1" +tokio = { version = "1", features = ["full"] } +tokio-tungstenite = { version = "0.24", features = ["rustls-tls-native-roots"] } +futures-util = "0.3" +reqwest = { version = "0.12", features = ["json", "rustls-tls"], default-features = false } +base64 = "0.22" +uuid = { version = "1", features = ["v4"] } +rand = "0.9" +rustls = { version = "0.23", default-features = false, features = ["ring", "std"] } +http = "1.0" +chrono = "0.4" + diff --git a/src-tauri/build.rs b/src-tauri/build.rs new file mode 100644 index 0000000..d860e1e --- /dev/null +++ b/src-tauri/build.rs @@ -0,0 +1,3 @@ +fn main() { + tauri_build::build() +} diff --git a/src-tauri/capabilities/default.json b/src-tauri/capabilities/default.json new file mode 100644 index 0000000..4cdbf49 --- /dev/null +++ b/src-tauri/capabilities/default.json @@ -0,0 +1,10 @@ +{ + "$schema": "../gen/schemas/desktop-schema.json", + "identifier": "default", + "description": "Capability for the main window", + "windows": ["main"], + "permissions": [ + "core:default", + "opener:default" + ] +} diff --git a/src-tauri/icons/128x128.png b/src-tauri/icons/128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..6be5e50e9b9ae84d9e2ee433f32ef446495eaf3b GIT binary patch literal 3512 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 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..e81becee571e96f76aa5667f9324c05e5e7a4479 GIT binary patch literal 7012 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 Sh@|Ye~|0>}wMPLT8jm@Y!H33Sz}5aFI6 zM9Lzqz|;A*0sGs=2A1uU!1nk2dGF7knQwr99SAFen)x(eCO;F8y2C~0FD1YxRTPcy zPWVxkUYmeuz}Tv?7&Fe-!UE{)ZW)Mb;H)^#eHDv$`dkZGguJz@^MA!ZNGAUqt{|0H zpZ7Ch9S`q5!>R%}>}62!+(T^evyO+ImSo2wpu)su4^3nw5(%)KD%gbSev^*HZZ&3( z#&c@Z0gH|}Ck)w6fh0&NBJ62ib%R}(3@$VFl*_#l2W$wQ-~4RmZZAt5O*^2Q5}Xr8Hy@c`#pM?kc?hFWxRXr*mUfUCXf4ka5DD~ zat6d85COB05l#(P9*cQZ3EC8fVdS~?&vN#rce(aF9@xp80O2{{FBvU+{X>Hoh;xI` z{$e^Nw1y*VbO8wv`8|-m?NwNaKGTGaF{P^JLB^DbOYWIbn%eT`*!^C1H36=O8Z-M> zkD~88ry`eSo`tEBN4>w7OWZwUzlh{WM1m8R6zepqGcGMaV7vWY9b?K4b6~|HVG)ec wi>I@ws#sZo7or4_*4M>7;p5{nr2pZ?Uu4>Krr0kU)&Kwi07*qoM6N<$f)&@lf&c&j literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square107x107Logo.png b/src-tauri/icons/Square107x107Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..0ca4f27198838968bd60ed7d371bfa23496b7fe5 GIT binary patch literal 2863 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 Y2S8W#vM)6=T>t<807*qoM6N<$f*y@n<^TWy literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square284x284Logo.png b/src-tauri/icons/Square284x284Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..c021d2ba76619c08969ab688db3b27f29257aa6f GIT binary patch literal 7737 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square30x30Logo.png b/src-tauri/icons/Square30x30Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..621970023096ed9f494ba18ace15421a45cd65fa GIT binary patch literal 903 zcmV;219<$2P)2 z+CUKPMqaqGiH;zb!R4$B-WXS^YzQr=@UH>k4?*L)&R=zYjBrZenKdc9|JlS$SO*RJ zKt8FSTDAdk1g_WPAO!p^V!AuL;Lm;uQyV;zKq)J3i(;q*;k+pD%f3eltU`PYdy9(k0&%` zuWAPcV6|-y?|?7O1W!KSK}pbk8#~!|FA@(VJkt^V@0lio{afoAeo*f&$W2s6${5!1eKvAGD2$GZwSB98L2ZVS- zKn8ENRkZ*sb!@QugOrQNK3(sy1v%J#m|rpB+h|Nkqa3FRT>74xSs{#&saU2Lf!_Iq zKmuKAESh`gs!fneGWn+nf}l?7jE$HW!Af&vE5=G!QU)U2v&HLIBGXKk4nQx{hsHjL zLPMAo5=*uInFbq7(aa`Y2VX5wCmaeqvECOFv)a>0t>ZaEb*cJccER=BB?KFZhV$c^ znL*l8x*UYZv4WK|j?~Jt6~~F%{pk~z5A*>^M`?r5m9@RJ_x|uEtX(6Vk@Y()MVto* z93wr)%3m%|#OZ~srm>zF(JvDuTq*@;d&^>_BJm5hOU`3FjG70L#Vzv9I?`<7$T@

5l#v3A#xI3*z~1~fvo9Q(N^(==!|_FZ z*duZ=+M1~)8E|otX8KNZlr?qels#x_1Xq@9IIw~@9uAREJVH)Xw^}UclF6327}E42 zT)E&?U%TK?(+K7%R!`H5oX0i)4Qn5??Iw3p5J~6_u+aWehY{DSn}3V2p$bgjnAu?o)v@iC254fXeMv50$9YrpU`N?u@QIWs)T?SP|fa}(|9 zqAX+!7`cx=4)cCBg5h~pu(?@9`)aCr#oyz$ld=#RFxYCNZCZls@4v2~*e-t6PEVvV z&bbK3b3wt(Coc!ufAbXXC<**#HQ%J9k`New6iG<5RjtO4XVO?dCvwxD{kJ#tfQr(X zg^NTwF-FwAeS_{V4bfel8l`~NbfrTR2s!G>WduFWxH(t~aK4q=6rEE^$+Uox>gJO2 z{L<;6Q6nHa5#ZEM>H58not!)z(6*_=^~8}jWf*IG$AUKVWOZ4?)GfF z+BM#*wKKmLFD7E~W3U!$IVm$k_k1f&Kz6WV8@55P?r~bcg-Za-!rvW?ns&)KOGT2~ zlkAyqhQj=P$Eg3w#K~}zH@J5bo-BfHjInKSz$@?+Z)NPD4pHj^_Qxmi`UqoTy=`sV zLVxrXGuBr=QRm|}wg75yetQQK4fY3#P_~J}zEfPnb2C4Wo!E(d*(cA;b?7$g2in<( zPn)ghX}nzJPmb6(3Dpeg_GW~Hc}Lt=lgsSZz z!5QXyz7KaR;D`3Ee}d`af{H>WWZ|Io1QI3~4Ll_`g1(cRnhLK73Ro)7zPCd={1W2x zRp%Xlvv4>!<2@}$hz|!V{T}_eHx2xkLl^hQoZTCnsjCl|W_@5Fx2(+j0ogy&Y+;L- z<)G$*CiN7hOm^s!{U>1F7U=iNk{+u~dAC!eDz%=|glFW0jEZU1&o(G_c#wTxUjnG} z#cg3>jEpUi#Mlq@t?Msg_#geK^Lx@DyHWf7=AS5vVyM7YOjvUVCfcpVR<(+5!H?9- zySI6s>o3m&*zr||=wcPGyBkQV`EWJl@bH8qobjOp+sXL*)=&yX)8aAbf~tGv?a2SN zu^Ddo-z?DWk9h9Yz#5p^NU#x~wYSd?H@w@!2Gb4G)6-utEMV~~M85Br5ff(v5O1|T z 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 bool { + err.contains("BAD_CLAIMS") +} + +async fn get_user_or_err(state: &AppState) -> Result { + valorant::get_user(&state.region_cache, &state.user_cache) + .await? + .ok_or_else(|| "No user logged in.".to_string()) +} + +async fn refresh_user(state: &AppState) -> Result { + valorant::invalidate_user_cache(&state.user_cache).await; + get_user_or_err(state).await +} + +#[tauri::command] +pub async fn get_user( + state: State<'_, AppState>, +) -> Result, String> { + let t = std::time::Instant::now(); + let result = valorant::get_user(&state.region_cache, &state.user_cache).await; + println!("[CMD] get_user: {:?}", t.elapsed()); + result +} + +#[tauri::command] +pub async fn get_loadout( + state: State<'_, AppState>, +) -> Result { + let t = std::time::Instant::now(); + let user = get_user_or_err(&state).await?; + println!("[CMD] get_loadout: get_user took {:?}", t.elapsed()); + let t2 = std::time::Instant::now(); + match valorant::get_loadout(&user).await { + Ok(v) => { + println!("[CMD] get_loadout: get_loadout took {:?}, total {:?}", t2.elapsed(), t.elapsed()); + Ok(v) + } + Err(e) if is_token_expired_error(&e) => { + println!("[CMD] get_loadout: token expired, refreshing..."); + let user = refresh_user(&state).await?; + valorant::get_loadout(&user).await + } + Err(e) => Err(e), + } +} + +#[tauri::command] +pub async fn get_entitlements( + state: State<'_, AppState>, +) -> Result { + let t = std::time::Instant::now(); + let user = get_user_or_err(&state).await?; + match valorant::get_entitlements(&user).await { + Ok(v) => { + println!("[CMD] get_entitlements: {:?}", t.elapsed()); + Ok(v) + } + Err(e) if is_token_expired_error(&e) => { + println!("[CMD] get_entitlements: token expired, refreshing..."); + let user = refresh_user(&state).await?; + valorant::get_entitlements(&user).await + } + Err(e) => Err(e), + } +} + +#[tauri::command] +pub async fn equip_loadout( + state: State<'_, AppState>, + loadout: ValorantLoadout, +) -> Result { + let t = std::time::Instant::now(); + let user = get_user_or_err(&state).await?; + match valorant::equip_loadout(&user, loadout.clone()).await { + Ok(()) => { + println!("[CMD] equip_loadout: {:?}", t.elapsed()); + Ok(true) + } + Err(e) if is_token_expired_error(&e) => { + println!("[CMD] equip_loadout: token expired, refreshing..."); + let user = refresh_user(&state).await?; + valorant::equip_loadout(&user, loadout).await?; + Ok(true) + } + Err(e) => Err(e), + } +} + +#[tauri::command] +pub async fn get_user_config( + state: State<'_, AppState>, +) -> Result { + let t = std::time::Instant::now(); + let user = get_user_or_err(&state).await?; + let result = config::get_user_config(&state.config_dir, &user.user_id).await; + println!("[CMD] get_user_config: {:?}", t.elapsed()); + result +} + +#[tauri::command] +pub async fn save_user_config( + state: State<'_, AppState>, + config: UserConfig, +) -> Result { + let user = get_user_or_err(&state).await?; + config::save_user_config(&state.config_dir, &user.user_id, &config).await?; + Ok(config) +} + +#[tauri::command] +pub async fn create_loadout( + state: State<'_, AppState>, + loadout: Loadout, +) -> Result { + let user = get_user_or_err(&state).await?; + let mut user_config = config::get_user_config(&state.config_dir, &user.user_id).await?; + user_config.loadouts.push(loadout.clone()); + config::save_user_config(&state.config_dir, &user.user_id, &user_config).await?; + Ok(loadout) +} + +#[tauri::command] +pub async fn update_loadout( + state: State<'_, AppState>, + loadout: Loadout, +) -> Result { + let user = get_user_or_err(&state).await?; + let mut user_config = config::get_user_config(&state.config_dir, &user.user_id).await?; + let existing = user_config + .loadouts + .iter_mut() + .find(|l| l.id == loadout.id) + .ok_or_else(|| "Loadout not found.".to_string())?; + *existing = loadout.clone(); + config::save_user_config(&state.config_dir, &user.user_id, &user_config).await?; + Ok(loadout) +} + +#[tauri::command] +pub async fn delete_loadout( + state: State<'_, AppState>, + loadout_id: String, +) -> Result { + let t = std::time::Instant::now(); + let user = get_user_or_err(&state).await?; + println!("[CMD] delete_loadout: get_user took {:?}", t.elapsed()); + let mut user_config = config::get_user_config(&state.config_dir, &user.user_id).await?; + let original_len = user_config.loadouts.len(); + user_config.loadouts.retain(|l| l.id != loadout_id); + if user_config.loadouts.len() < original_len { + config::save_user_config(&state.config_dir, &user.user_id, &user_config).await?; + println!("[CMD] delete_loadout: total {:?}", t.elapsed()); + Ok(loadout_id) + } else { + Err("Loadout not found.".to_string()) + } +} + +#[tauri::command] +pub async fn save_in_game_loadout( + state: State<'_, AppState>, + name: String, +) -> Result { + let t = std::time::Instant::now(); + let mut user = get_user_or_err(&state).await?; + println!("[CMD] save_in_game_loadout: get_user took {:?}", t.elapsed()); + let t2 = std::time::Instant::now(); + let in_game_loadout = match valorant::get_loadout(&user).await { + Ok(v) => v, + Err(e) if is_token_expired_error(&e) => { + println!("[CMD] save_in_game_loadout: token expired, refreshing..."); + user = refresh_user(&state).await?; + valorant::get_loadout(&user).await? + } + Err(e) => return Err(e), + }; + println!("[CMD] save_in_game_loadout: get_loadout took {:?}", t2.elapsed()); + let t3 = std::time::Instant::now(); + let val_data = valorant_data::get_valorant_data(&state.valorant_data_cache).await?; + println!("[CMD] save_in_game_loadout: get_valorant_data took {:?}", t3.elapsed()); + let default_skin_ids: Vec = val_data + .weapons + .iter() + .map(|w| w.default_skin_uuid.clone()) + .collect(); + let mut user_config = config::get_user_config(&state.config_dir, &user.user_id).await?; + let loadout = convert_valorant_loadout_to_config(&in_game_loadout, &name, &default_skin_ids); + user_config.loadouts.push(loadout.clone()); + config::save_user_config(&state.config_dir, &user.user_id, &user_config).await?; + println!("[CMD] save_in_game_loadout: total {:?}", t.elapsed()); + Ok(loadout) +} + +#[tauri::command] +pub async fn get_valorant_data( + state: State<'_, AppState>, +) -> Result { + valorant_data::get_valorant_data(&state.valorant_data_cache).await +} + +#[tauri::command] +pub fn get_valorant_status(state: State<'_, AppState>) -> bool { + state.valorant_connected.load(Ordering::SeqCst) +} + +#[tauri::command] +pub fn get_shuffle_settings(state: State<'_, AppState>) -> ShuffleSettingsPayload { + ShuffleSettingsPayload { + auto_shuffle_enabled: state.shuffle_settings.is_auto_shuffle_enabled(), + agent_detection_enabled: state.shuffle_settings.is_agent_detection_enabled(), + non_pregame_shuffle_enabled: state.shuffle_settings.is_non_pregame_shuffle_enabled(), + } +} + +#[tauri::command] +pub fn set_auto_shuffle_enabled( + app_handle: tauri::AppHandle, + state: State<'_, AppState>, + tray_state: State<'_, TrayMenuState>, + enabled: bool, +) -> Result<(), String> { + state.shuffle_settings.set_auto_shuffle_enabled(enabled); + tray_state + .auto_shuffle_item + .set_checked(enabled) + .map_err(|e| e.to_string())?; + let _ = tray_state.agent_detection_item.set_enabled(enabled); + let _ = tray_state.non_pregame_shuffle_item.set_enabled(enabled); + let _ = app_handle.emit( + "shuffle-settings-changed", + ShuffleSettingsPayload { + auto_shuffle_enabled: enabled, + agent_detection_enabled: state.shuffle_settings.is_agent_detection_enabled(), + non_pregame_shuffle_enabled: state.shuffle_settings.is_non_pregame_shuffle_enabled(), + }, + ); + Ok(()) +} + +#[tauri::command] +pub fn set_agent_detection_enabled( + app_handle: tauri::AppHandle, + state: State<'_, AppState>, + tray_state: State<'_, TrayMenuState>, + enabled: bool, +) -> Result<(), String> { + state.shuffle_settings.set_agent_detection_enabled(enabled); + tray_state + .agent_detection_item + .set_checked(enabled) + .map_err(|e| e.to_string())?; + let _ = app_handle.emit( + "shuffle-settings-changed", + ShuffleSettingsPayload { + auto_shuffle_enabled: state.shuffle_settings.is_auto_shuffle_enabled(), + agent_detection_enabled: enabled, + non_pregame_shuffle_enabled: state.shuffle_settings.is_non_pregame_shuffle_enabled(), + }, + ); + Ok(()) +} + +#[tauri::command] +pub fn set_non_pregame_shuffle_enabled( + app_handle: tauri::AppHandle, + state: State<'_, AppState>, + tray_state: State<'_, TrayMenuState>, + enabled: bool, +) -> Result<(), String> { + state.shuffle_settings.set_non_pregame_shuffle_enabled(enabled); + tray_state + .non_pregame_shuffle_item + .set_checked(enabled) + .map_err(|e| e.to_string())?; + let _ = app_handle.emit( + "shuffle-settings-changed", + ShuffleSettingsPayload { + auto_shuffle_enabled: state.shuffle_settings.is_auto_shuffle_enabled(), + agent_detection_enabled: state.shuffle_settings.is_agent_detection_enabled(), + non_pregame_shuffle_enabled: enabled, + }, + ); + Ok(()) +} + +#[tauri::command] +pub async fn equip_loadout_by_id( + state: State<'_, AppState>, + loadout_id: String, +) -> Result { + let t = std::time::Instant::now(); + let user = get_user_or_err(&state).await?; + let user_config = config::get_user_config(&state.config_dir, &user.user_id).await?; + let loadout = user_config + .loadouts + .iter() + .find(|l| l.id == loadout_id) + .ok_or_else(|| "Loadout not found.".to_string())? + .clone(); + + let existing = match valorant::get_loadout(&user).await { + Ok(v) => v, + Err(e) if is_token_expired_error(&e) => { + let user = refresh_user(&state).await?; + valorant::get_loadout(&user).await? + } + Err(e) => return Err(e), + }; + + let entitlements = match valorant::get_entitlements(&user).await { + Ok(v) => v, + Err(e) if is_token_expired_error(&e) => { + let user = refresh_user(&state).await?; + valorant::get_entitlements(&user).await? + } + Err(e) => return Err(e), + }; + + let valorant_loadout = + crate::game_detection::build_valorant_loadout(&loadout, &existing, &entitlements); + + let equip_user = get_user_or_err(&state).await?; + match valorant::equip_loadout(&equip_user, valorant_loadout.clone()).await { + Ok(()) => { + println!("[CMD] equip_loadout_by_id: {:?}", t.elapsed()); + Ok(true) + } + Err(e) if is_token_expired_error(&e) => { + let user = refresh_user(&state).await?; + valorant::equip_loadout(&user, valorant_loadout).await?; + Ok(true) + } + Err(e) => Err(e), + } +} + +fn convert_valorant_loadout_to_config(loadout: &ValorantLoadout, name: &str, default_skin_ids: &[String]) -> Loadout { + use crate::config::{BuddyTemplate, ExpressionIds, ExpressionSlot, WeaponConfig, WeaponTemplate}; + use std::collections::HashMap; + + let spray_type_id = "d5f120f8-ff8c-4aac-92ea-f2b5acbe9475"; + let flex_type_id = "03a572de-4234-31ed-d344-ababa488f981"; + + let mut expression_ids = ExpressionIds { + top: ExpressionSlot { spray_ids: vec![], flex_ids: vec![] }, + right: ExpressionSlot { spray_ids: vec![], flex_ids: vec![] }, + bottom: ExpressionSlot { spray_ids: vec![], flex_ids: vec![] }, + left: ExpressionSlot { spray_ids: vec![], flex_ids: vec![] }, + }; + + let slots = [ + &mut expression_ids.top, + &mut expression_ids.right, + &mut expression_ids.bottom, + &mut expression_ids.left, + ]; + for (i, slot) in slots.into_iter().enumerate() { + if let Some(expr) = loadout.active_expressions.get(i) { + if expr.type_id == spray_type_id { + slot.spray_ids.push(expr.asset_id.clone()); + } else if expr.type_id == flex_type_id { + slot.flex_ids.push(expr.asset_id.clone()); + } + } + } + + let weapons: HashMap = loadout + .guns + .iter() + .filter(|gun| !default_skin_ids.contains(&gun.skin_id)) + .map(|gun| { + let buddies = if let (Some(charm_id), Some(charm_level_id)) = + (&gun.charm_id, &gun.charm_level_id) + { + vec![BuddyTemplate { + id: charm_id.clone(), + level_ids: vec![charm_level_id.clone()], + }] + } else { + vec![] + }; + + ( + gun.id.clone(), + WeaponConfig { + templates: vec![WeaponTemplate { + id: gun.id.clone(), + skin_id: gun.skin_id.clone(), + level_ids: vec![gun.skin_level_id.clone()], + chroma_ids: vec![gun.chroma_id.clone()], + buddies, + }], + }, + ) + }) + .collect(); + + Loadout { + id: uuid::Uuid::new_v4().to_string(), + name: name.to_string(), + enabled: true, + agent_ids: vec![], + weapons, + player_card_ids: vec![loadout.identity.player_card_id.clone()], + player_title_ids: vec![loadout.identity.player_title_id.clone()], + expression_ids, + } +} diff --git a/src-tauri/src/config.rs b/src-tauri/src/config.rs new file mode 100644 index 0000000..c500503 --- /dev/null +++ b/src-tauri/src/config.rs @@ -0,0 +1,292 @@ +use serde::{Deserialize, Serialize}; +use serde_json::Value; +use std::collections::HashMap; +use std::path::{Path, PathBuf}; +use tokio::fs; + +const CONFIG_VERSION: u32 = 3; + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct WeaponTemplate { + pub id: String, + #[serde(rename = "skinId")] + pub skin_id: String, + #[serde(rename = "levelIds")] + pub level_ids: Vec, + #[serde(rename = "chromaIds")] + pub chroma_ids: Vec, + pub buddies: Vec, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct BuddyTemplate { + pub id: String, + #[serde(rename = "levelIds")] + pub level_ids: Vec, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct WeaponConfig { + pub templates: Vec, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct ExpressionSlot { + #[serde(rename = "sprayIds")] + pub spray_ids: Vec, + #[serde(rename = "flexIds")] + pub flex_ids: Vec, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct ExpressionIds { + pub top: ExpressionSlot, + pub right: ExpressionSlot, + pub bottom: ExpressionSlot, + pub left: ExpressionSlot, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct Loadout { + pub id: String, + pub name: String, + pub enabled: bool, + #[serde(rename = "agentIds")] + pub agent_ids: Vec, + pub weapons: HashMap, + #[serde(rename = "playerCardIds")] + pub player_card_ids: Vec, + #[serde(rename = "playerTitleIds")] + pub player_title_ids: Vec, + #[serde(rename = "expressionIds")] + pub expression_ids: ExpressionIds, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct UserConfig { + pub version: u32, + pub loadouts: Vec, +} + +impl Default for UserConfig { + fn default() -> Self { + Self { + version: CONFIG_VERSION, + loadouts: vec![create_default_loadout()], + } + } +} + +pub fn create_default_loadout() -> Loadout { + let weapon_ids = vec![ + "63e6c2b6-4a8e-869c-3d4c-e38355226584", + "55d8a0f4-4274-ca67-fe2c-06ab45efdf58", + "9c82e19d-4575-0200-1a81-3eacf00cf872", + "ae3de142-4d85-2547-dd26-4e90bed35cf7", + "ee8e8d15-496b-07ac-e5f6-8fae5d4c7b1a", + "ec845bf4-4f79-ddda-a3da-0db3774b2794", + "910be174-449b-c412-ab22-d0873436b21b", + "44d4e95c-4157-0037-81b2-17841bf2e8e3", + "29a0cfab-485b-f5d5-779a-b59f85e204a8", + "1baa85b4-4c70-1284-64bb-6481dfc3bb4e", + "e336c6b8-418d-9340-d77f-7a9e4cfe0702", + "42da8ccc-40d5-affc-beec-15aa47b42eda", + "a03b24d3-4319-996d-0f8c-94bbfba1dfc7", + "4ade7faa-4cf1-8376-95ef-39884480959b", + "c4883e50-4494-202c-3ec3-6b8a9284f00b", + "462080d1-4035-2937-7c09-27aa2a5c27a7", + "f7e1b454-4ad4-1063-ec0a-159e56b58941", + "2f59173c-4bed-b6c3-2191-dea9b58be9c7", + "5f0aaf7a-4289-3998-d5ff-eb9a5cf7ef5c", + ]; + + let weapons: HashMap = weapon_ids + .into_iter() + .map(|id| (id.to_string(), WeaponConfig { templates: vec![] })) + .collect(); + + Loadout { + id: uuid::Uuid::new_v4().to_string(), + name: "Default Loadout".to_string(), + enabled: true, + agent_ids: vec![], + weapons, + player_card_ids: vec![], + player_title_ids: vec![], + expression_ids: ExpressionIds { + top: ExpressionSlot { + spray_ids: vec![], + flex_ids: vec![], + }, + right: ExpressionSlot { + spray_ids: vec![], + flex_ids: vec![], + }, + bottom: ExpressionSlot { + spray_ids: vec![], + flex_ids: vec![], + }, + left: ExpressionSlot { + spray_ids: vec![], + flex_ids: vec![], + }, + }, + } +} + +fn get_config_path(base_dir: &Path, user_id: &str) -> PathBuf { + base_dir.join(format!("user_{}.json", user_id)) +} + +fn migrate_v1_to_v2(config: &mut Value) { + if let Some(loadouts) = config.get_mut("loadouts").and_then(|v| v.as_array_mut()) { + for loadout in loadouts.iter_mut() { + if let Some(spray_ids) = loadout.get("sprayIds").cloned() { + let pre_round = spray_ids + .get("preRound") + .and_then(|v| v.as_array()) + .cloned() + .unwrap_or_default(); + let mid_round = spray_ids + .get("midRound") + .and_then(|v| v.as_array()) + .cloned() + .unwrap_or_default(); + let post_round = spray_ids + .get("postRound") + .and_then(|v| v.as_array()) + .cloned() + .unwrap_or_default(); + + let new_spray_ids = serde_json::json!({ + "top": mid_round, + "right": post_round, + "bottom": [], + "left": pre_round + }); + + loadout["sprayIds"] = new_spray_ids; + } + } + } + config["version"] = serde_json::json!(2); +} + +fn migrate_v2_to_v3(config: &mut Value) { + if let Some(loadouts) = config.get_mut("loadouts").and_then(|v| v.as_array_mut()) { + for loadout in loadouts.iter_mut() { + if let Some(spray_ids) = loadout.get("sprayIds").cloned() { + let top = spray_ids + .get("top") + .and_then(|v| v.as_array()) + .cloned() + .unwrap_or_default(); + let right = spray_ids + .get("right") + .and_then(|v| v.as_array()) + .cloned() + .unwrap_or_default(); + let bottom = spray_ids + .get("bottom") + .and_then(|v| v.as_array()) + .cloned() + .unwrap_or_default(); + let left = spray_ids + .get("left") + .and_then(|v| v.as_array()) + .cloned() + .unwrap_or_default(); + + let expression_ids = serde_json::json!({ + "top": { "sprayIds": top, "flexIds": [] }, + "right": { "sprayIds": right, "flexIds": [] }, + "bottom": { "sprayIds": bottom, "flexIds": [] }, + "left": { "sprayIds": left, "flexIds": [] } + }); + + loadout["expressionIds"] = expression_ids; + loadout.as_object_mut().map(|o| o.remove("sprayIds")); + } + } + } + config["version"] = serde_json::json!(3); +} + +fn migrate_config(content: &str) -> Result<(UserConfig, bool), String> { + let mut config: Value = + serde_json::from_str(content).map_err(|e| format!("Failed to parse config: {}", e))?; + + let original_version = config.get("version").and_then(|v| v.as_u64()).unwrap_or(1) as u32; + let mut migrated = original_version != CONFIG_VERSION; + + if original_version < 2 { + println!("Migrating config from v1 to v2..."); + migrate_v1_to_v2(&mut config); + } + + let version = config.get("version").and_then(|v| v.as_u64()).unwrap_or(2) as u32; + + if version < 3 { + println!("Migrating config from v2 to v3..."); + migrate_v2_to_v3(&mut config); + } + + if config.get("version").is_none() { + config["version"] = serde_json::json!(CONFIG_VERSION); + migrated = true; + } + + let user_config = serde_json::from_value(config) + .map_err(|e| format!("Failed to parse migrated config: {}", e))?; + Ok((user_config, migrated)) +} + +pub async fn get_user_config(base_dir: &Path, user_id: &str) -> Result { + let path = get_config_path(base_dir, user_id); + + if !path.exists() { + let config = UserConfig::default(); + save_user_config(base_dir, user_id, &config).await?; + return Ok(config); + } + + let content = fs::read_to_string(&path) + .await + .map_err(|e| format!("Failed to read config: {}", e))?; + + let (config, migrated) = migrate_config(&content)?; + + if migrated { + save_user_config(base_dir, user_id, &config).await?; + } + + Ok(config) +} + +pub async fn save_user_config( + base_dir: &Path, + user_id: &str, + config: &UserConfig, +) -> Result<(), String> { + let path = get_config_path(base_dir, user_id); + + if let Some(parent) = path.parent() { + fs::create_dir_all(parent) + .await + .map_err(|e| format!("Failed to create config directory: {}", e))?; + } + + let config_to_save = UserConfig { + version: CONFIG_VERSION, + loadouts: config.loadouts.clone(), + }; + + let content = serde_json::to_string_pretty(&config_to_save) + .map_err(|e| format!("Failed to serialize: {}", e))?; + + fs::write(&path, content) + .await + .map_err(|e| format!("Failed to write config: {}", e))?; + + Ok(()) +} diff --git a/src-tauri/src/game_detection.rs b/src-tauri/src/game_detection.rs new file mode 100644 index 0000000..fa40360 --- /dev/null +++ b/src-tauri/src/game_detection.rs @@ -0,0 +1,1010 @@ +use crate::config::{self, Loadout}; +use crate::valorant::{self, EntitlementsResponse, RegionShardCache, UserData, UserDataCache, ValorantLoadout}; +use base64::{engine::general_purpose, Engine as _}; +use futures_util::{SinkExt, StreamExt}; +use rand::prelude::IndexedRandom; +use serde::Deserialize; +use std::collections::HashMap; +use std::path::PathBuf; +use std::sync::atomic::{AtomicBool, Ordering}; +use std::sync::Arc; +use tauri::Emitter; +use tokio::io::AsyncWriteExt; +use tokio::sync::{Mutex, RwLock}; +use tokio_tungstenite::{connect_async_tls_with_config, Connector}; + +#[derive(Debug, Clone, Default)] +pub struct ShuffleSettings { + pub auto_shuffle_enabled: Arc, + pub agent_detection_enabled: Arc, + pub non_pregame_shuffle_enabled: Arc, +} + +impl ShuffleSettings { + pub fn new() -> Self { + Self { + auto_shuffle_enabled: Arc::new(AtomicBool::new(true)), + agent_detection_enabled: Arc::new(AtomicBool::new(true)), + non_pregame_shuffle_enabled: Arc::new(AtomicBool::new(true)), + } + } + + pub fn is_auto_shuffle_enabled(&self) -> bool { + self.auto_shuffle_enabled.load(Ordering::SeqCst) + } + + pub fn is_agent_detection_enabled(&self) -> bool { + self.agent_detection_enabled.load(Ordering::SeqCst) + } + + pub fn is_non_pregame_shuffle_enabled(&self) -> bool { + self.non_pregame_shuffle_enabled.load(Ordering::SeqCst) + } + + pub fn set_auto_shuffle_enabled(&self, enabled: bool) { + self.auto_shuffle_enabled.store(enabled, Ordering::SeqCst); + } + + pub fn set_agent_detection_enabled(&self, enabled: bool) { + self.agent_detection_enabled.store(enabled, Ordering::SeqCst); + } + + pub fn set_non_pregame_shuffle_enabled(&self, enabled: bool) { + self.non_pregame_shuffle_enabled.store(enabled, Ordering::SeqCst); + } +} + +#[derive(Debug, Deserialize)] +struct PartyResponse { + #[serde(rename = "ID")] + id: String, + #[serde(rename = "State")] + state: String, + #[serde(rename = "Members")] + members: Vec, + #[serde(rename = "MatchmakingData")] + matchmaking_data: MatchmakingData, + #[serde(rename = "QueueEntryTime")] + queue_entry_time: String, +} + +#[derive(Debug, Deserialize)] +struct PartyMember { + #[serde(rename = "Subject")] + subject: String, + #[serde(rename = "IsReady")] + is_ready: bool, + #[serde(rename = "IsOwner")] + is_owner: Option, +} + +#[derive(Debug, Deserialize)] +struct MatchmakingData { + #[serde(rename = "QueueID")] + queue_id: String, +} + +#[derive(Debug, Deserialize)] +struct PregameMatchResponse { + #[serde(rename = "AllyTeam")] + ally_team: AllyTeam, +} + +#[derive(Debug, Deserialize)] +struct AllyTeam { + #[serde(rename = "Players")] + players: Vec, +} + +#[derive(Debug, Deserialize)] +struct Player { + #[serde(rename = "Subject")] + subject: String, + #[serde(rename = "CharacterID")] + character_id: String, + #[serde(rename = "CharacterSelectionState")] + character_selection_state: String, +} + +// Queue IDs for modes with SkipPregame/AssignRandomAgents: +// deathmatch = Deathmatch +// ggteam = Escalation +// snowball = Snowball Fight +// hurm = Team Deathmatch +// valaram = All Random One Site (AROS) +// skirmish2v2 = Skirmish +// +// Full queue ID mapping: +// competitive = Competitive +// unrated = Unrated +// swiftplay = Swiftplay +// spikerush = Spike Rush +// onefa = Replication +// newmap = New Map +// custom = Custom +const NON_PREGAME_QUEUES: &[&str] = &[ + "deathmatch", + "ggteam", + "snowball", + "hurm", + "valaram", + "skirmish2v2", +]; + +pub struct GameDetector { + region_cache: RegionShardCache, + user_cache: UserDataCache, + settings: ShuffleSettings, + config_dir: PathBuf, + match_states: Arc>>, + party_states: Arc>>, + app_handle: tauri::AppHandle, + connected: Arc, + ws_log: Arc>>, +} + +impl GameDetector { + pub fn new( + region_cache: RegionShardCache, + user_cache: UserDataCache, + settings: ShuffleSettings, + config_dir: PathBuf, + app_handle: tauri::AppHandle, + connected: Arc, + ) -> Self { + Self { + region_cache, + user_cache, + settings, + config_dir, + match_states: Arc::new(RwLock::new(HashMap::new())), + party_states: Arc::new(RwLock::new(HashMap::new())), + app_handle, + connected, + ws_log: Arc::new(Mutex::new(None)), + } + } + + fn set_connected(&self, status: bool) { + let prev = self.connected.swap(status, Ordering::SeqCst); + if prev != status { + let _ = self.app_handle.emit("valorant-status", status); + } + } + + async fn log(&self, msg: &str) { + println!("{}", msg); + self.log_to_file(msg).await; + } + + async fn log_to_file(&self, msg: &str) { + let mut guard = self.ws_log.lock().await; + if let Some(file) = guard.as_mut() { + let timestamp = chrono::Local::now().format("%H:%M:%S%.3f"); + let line = format!("[{}] {}\n", timestamp, msg); + let _ = file.write_all(line.as_bytes()).await; + let _ = file.flush().await; + } + } + + pub async fn run(&self) { + self.log("[GameDetector] Starting game detection loop...").await; + loop { + self.log("[GameDetector] Attempting to connect to Riot Client...").await; + match self.connect_and_listen().await { + Ok(()) => { + self.log("[GameDetector] Connection closed normally").await; + } + Err(e) => { + self.log(&format!("[GameDetector] Error: {}", e)).await; + } + } + self.set_connected(false); + self.log("[GameDetector] Will retry in 5 seconds...").await; + tokio::time::sleep(tokio::time::Duration::from_secs(5)).await; + } + } + + async fn connect_and_listen(&self) -> Result<(), Box> { + { + let log_path = self.config_dir.join("debug.log"); + match tokio::fs::File::create(&log_path).await { + Ok(file) => { + *self.ws_log.lock().await = Some(file); + self.log(&format!("[GameDetector] Opened log: {}", log_path.display())).await; + } + Err(e) => { + eprintln!("[GameDetector] Failed to create log: {}", e); + } + } + } + + let lockfile = match valorant::get_lockfile().await? { + Some(lf) => { + self.log(&format!("[GameDetector] Found lockfile: port={}", lf.port)).await; + lf + } + None => { + return Err("Lockfile not found (Riot Client not running?)".into()); + } + }; + + let url = format!("wss://127.0.0.1:{}/", lockfile.port); + + let auth = format!("riot:{}", lockfile.password); + let auth_header = format!("Basic {}", general_purpose::STANDARD.encode(&auth)); + + let connector = Connector::Rustls(Arc::new( + rustls::ClientConfig::builder() + .dangerous() + .with_custom_certificate_verifier(Arc::new(NoVerifier)) + .with_no_client_auth(), + )); + + let request = http::Request::builder() + .uri(&url) + .header("Authorization", auth_header) + .header("Host", format!("127.0.0.1:{}", lockfile.port)) + .header("Upgrade", "websocket") + .header("Connection", "Upgrade") + .header( + "Sec-WebSocket-Key", + tokio_tungstenite::tungstenite::handshake::client::generate_key(), + ) + .header("Sec-WebSocket-Version", "13") + .body(()) + .map_err(|e| format!("Failed to build request: {}", e))?; + + let (ws_stream, _) = connect_async_tls_with_config(request, None, false, Some(connector)) + .await + .map_err(|e| format!("Failed to connect to Riot WebSocket: {}", e))?; + + self.log(&format!("[GameDetector] Connected to Riot Client WebSocket on port {}", lockfile.port)).await; + + { + let mut cached = self.user_cache.write().await; + *cached = None; + self.log("[GameDetector] Cleared user cache on new connection").await; + } + + self.set_connected(true); + + let (mut write, mut read) = ws_stream.split(); + + self.log("[GameDetector] Subscribing to OnJsonApiEvent...").await; + write + .send(tokio_tungstenite::tungstenite::Message::Text( + r#"[5, "OnJsonApiEvent"]"#.to_string().into(), + )) + .await?; + self.log("[GameDetector] Subscription sent, waiting for events...").await; + + while let Some(msg) = read.next().await { + match msg { + Ok(tokio_tungstenite::tungstenite::Message::Text(text)) => { + if text.is_empty() { + continue; + } + + self.log_to_file(&format!("[WS] {}", text)).await; + + let preview = if text.len() > 200 { + format!("{}... ({} bytes total)", &text[..200], text.len()) + } else { + text.to_string() + }; + self.log(&format!("[GameDetector] Received message: {}", preview)).await; + + if let Err(e) = self.handle_riot_message(&text).await { + self.log(&format!("[GameDetector] Error handling message: {}", e)).await; + } + } + Ok(tokio_tungstenite::tungstenite::Message::Close(frame)) => { + self.log(&format!("[GameDetector] WebSocket closed: {:?}", frame)).await; + break; + } + Err(e) => { + self.log(&format!("[GameDetector] WebSocket error: {}", e)).await; + break; + } + _ => {} + } + } + + self.log("[GameDetector] WebSocket loop ended").await; + + Ok(()) + } + + async fn handle_riot_message( + &self, + text: &str, + ) -> Result<(), Box> { + let parsed: serde_json::Value = serde_json::from_str(text)?; + + let arr = match parsed.as_array() { + Some(a) => a, + None => return Ok(()), + }; + + if arr.len() < 3 { + return Ok(()); + } + + let msg_type = arr[0].as_u64().unwrap_or(0); + let event = arr[1].as_str().unwrap_or(""); + + if msg_type != 8 || event != "OnJsonApiEvent" { + return Ok(()); + } + + let payload = &arr[2]; + let uri = payload["uri"].as_str().unwrap_or(""); + let event_type = payload["eventType"].as_str().unwrap_or(""); + + self.log(&format!("[GameDetector] Event: uri={}, type={}", uri, event_type)).await; + + if let Some(party_id) = uri + .strip_prefix("/riot-messaging-service/v1/message/ares-parties/parties/v1/parties/") + { + if event_type == "Create" { + self.handle_party_event(party_id).await; + } + return Ok(()); + } + + let match_id = if let Some(caps) = uri.strip_prefix("/pregame/v1/matches/") { + caps.to_string() + } else { + return Ok(()); + }; + + self.log(&format!("[GameDetector] Pregame event: match_id={}, event_type={}", match_id, event_type)).await; + + if event_type != "Create" { + self.log(&format!("[GameDetector] Ignoring non-Create event type: '{}'", event_type)).await; + return Ok(()); + } + + self.log(&format!("[GameDetector] Pregame match found: {}", match_id)).await; + + { + let states = self.match_states.read().await; + self.log(&format!("[GameDetector] Current tracked match states: {:?}", states.keys().collect::>())).await; + if states.get(&match_id) == Some(&"locked".to_string()) { + self.log(&format!("[GameDetector] Match {} already locked, skipping", match_id)).await; + return Ok(()); + } + } + + self.log("[GameDetector] Fetching user data...").await; + let mut user = match valorant::get_user(&self.region_cache, &self.user_cache).await? { + Some(u) => { + self.log(&format!("[GameDetector] Got user: id={}, region={:?}, shard={:?}", u.user_id, u.region, u.shard)).await; + u + } + None => { + self.log("[GameDetector] No user data available, aborting").await; + return Ok(()); + } + }; + + self.log("[GameDetector] Fetching pregame data...").await; + let pregame = match self.get_pregame(&user).await { + Ok(p) => { + self.log("[GameDetector] Pregame data retrieved successfully").await; + p + } + Err(e) if e.contains("BAD_CLAIMS") => { + self.log("[GameDetector] Token expired during pregame, refreshing...").await; + valorant::invalidate_user_cache(&self.user_cache).await; + user = match valorant::get_user(&self.region_cache, &self.user_cache).await? { + Some(u) => { + self.log(&format!("[GameDetector] Refreshed user: id={}", u.user_id)).await; + u + } + None => { + self.log("[GameDetector] No user data after refresh, aborting").await; + return Ok(()); + } + }; + match self.get_pregame(&user).await { + Ok(p) => { + self.log("[GameDetector] Pregame data retrieved after token refresh").await; + p + } + Err(e) => { + self.log(&format!("[GameDetector] Failed to get pregame after refresh: {}", e)).await; + return Err(e.into()); + } + } + } + Err(e) => { + self.log(&format!("[GameDetector] Failed to get pregame: {}", e)).await; + return Err(e.into()); + } + }; + + self.log(&format!("[GameDetector] Pregame ally team has {} players", pregame.ally_team.players.len())).await; + for p in &pregame.ally_team.players { + self.log(&format!("[GameDetector] Player: subject={}, character={}, state={}", p.subject, p.character_id, p.character_selection_state)).await; + } + + let player = pregame + .ally_team + .players + .iter() + .find(|p| p.subject == user.user_id); + + if let Some(player) = player { + self.log(&format!("[GameDetector] Found our player: character={}, state={}", player.character_id, player.character_selection_state)).await; + + let new_state = &player.character_selection_state; + let mut states = self.match_states.write().await; + let old_state = states.get(&match_id).cloned(); + + self.log(&format!("[GameDetector] State comparison: old={:?}, new={}", old_state, new_state)).await; + + if old_state.as_deref() != Some(new_state) { + self.log("[GameDetector] State changed! Evaluating actions...").await; + + let auto_shuffle = self.settings.is_auto_shuffle_enabled(); + let agent_detection = self.settings.is_agent_detection_enabled(); + self.log(&format!("[GameDetector] Settings: auto_shuffle={}, agent_detection={}", auto_shuffle, agent_detection)).await; + + if new_state == "locked" && auto_shuffle { + self.log("[GameDetector] Agent locked and auto-shuffle enabled, triggering loadout equip").await; + + let agent_id = if agent_detection { + self.log(&format!("[GameDetector] Agent detection enabled, using agent_id={}", player.character_id)).await; + Some(player.character_id.clone()) + } else { + self.log("[GameDetector] Agent detection disabled, no agent filter").await; + None + }; + + match self.equip_random_loadout(&user, agent_id.as_deref()).await { + Ok(()) => self.log("[GameDetector] Loadout equip completed successfully").await, + Err(e) => self.log(&format!("[GameDetector] Failed to equip loadout: {}", e)).await, + } + } else if new_state != "locked" { + self.log(&format!("[GameDetector] State is '{}', not 'locked' — skipping loadout equip", new_state)).await; + } else { + self.log("[GameDetector] Auto-shuffle is disabled, skipping loadout equip").await; + } + + states.insert(match_id.clone(), new_state.clone()); + self.log(&format!("[GameDetector] Updated match {} state to '{}'", match_id, new_state)).await; + } else { + self.log(&format!("[GameDetector] State unchanged ({}), no action needed", new_state)).await; + } + } else { + self.log(&format!("[GameDetector] Our player (id={}) not found in pregame ally team", user.user_id)).await; + } + + Ok(()) + } + + async fn handle_party_event(&self, party_id: &str) { + self.log(&format!("[GameDetector] Party event detected: party_id={}", party_id)).await; + + let user = match valorant::get_user(&self.region_cache, &self.user_cache).await { + Ok(Some(u)) => u, + Ok(None) => { + self.log("[GameDetector] No user data for party lookup").await; + return; + } + Err(e) => { + self.log(&format!("[GameDetector] Failed to get user for party lookup: {}", e)).await; + return; + } + }; + + let party = match self.get_party(&user, party_id).await { + Ok(p) => p, + Err(e) => { + self.log(&format!("[GameDetector] Failed to get party {}: {}", party_id, e)).await; + return; + } + }; + + self.log("[GameDetector] === Party State ===").await; + self.log(&format!("[GameDetector] Party ID: {}", party.id)).await; + self.log(&format!("[GameDetector] State: {}", party.state)).await; + self.log(&format!("[GameDetector] Queue ID: {}", party.matchmaking_data.queue_id)).await; + self.log(&format!("[GameDetector] Queue Entry Time: {}", party.queue_entry_time)).await; + self.log(&format!("[GameDetector] Members: {}", party.members.len())).await; + for member in &party.members { + self.log(&format!("[GameDetector] - {} (ready={}, owner={})", member.subject, member.is_ready, member.is_owner.unwrap_or(false))).await; + } + self.log("[GameDetector] ===================").await; + + let party_key = format!("{}:{}", party_id, party.queue_entry_time); + let mut states = self.party_states.write().await; + let old_state = states.get(&party_key).cloned(); + + self.log(&format!("[GameDetector] Party key={}, old_state={:?}, new_state={}", party_key, old_state, party.state)).await; + + if old_state.as_deref() == Some(&party.state) { + return; + } + + states.insert(party_key, party.state.clone()); + drop(states); + + if party.state != "MATCHMAKING" { + return; + } + + let queue_id = party.matchmaking_data.queue_id.to_lowercase(); + let is_non_pregame = NON_PREGAME_QUEUES.iter().any(|q| queue_id == *q); + + if !is_non_pregame { + self.log(&format!("[GameDetector] Queue '{}' has pregame, skipping non-pregame shuffle", queue_id)).await; + return; + } + + let auto_shuffle = self.settings.is_auto_shuffle_enabled(); + let non_pregame = self.settings.is_non_pregame_shuffle_enabled(); + self.log(&format!("[GameDetector] Non-pregame queue detected: auto_shuffle={}, non_pregame_shuffle={}", auto_shuffle, non_pregame)).await; + + if !auto_shuffle || !non_pregame { + self.log("[GameDetector] Shuffle disabled for non-pregame modes, skipping").await; + return; + } + + self.log(&format!("[GameDetector] Triggering loadout equip for non-pregame queue '{}'", queue_id)).await; + match self.equip_random_loadout(&user, None).await { + Ok(()) => self.log("[GameDetector] Non-pregame loadout equip completed successfully").await, + Err(e) => self.log(&format!("[GameDetector] Non-pregame loadout equip failed: {}", e)).await, + } + } + + async fn get_party(&self, user: &UserData, party_id: &str) -> Result { + let client = reqwest::Client::builder() + .use_rustls_tls() + .build() + .map_err(|e| e.to_string())?; + + let url = format!( + "https://glz-{}-1.{}.a.pvp.net/parties/v1/parties/{}", + user.region.as_str(), + user.shard.as_str(), + party_id + ); + + self.log(&format!("[GameDetector] GET {}", url)).await; + + let response = client + .get(&url) + .header("Authorization", format!("Bearer {}", user.access_token)) + .header("X-Riot-Entitlements-JWT", &user.entitlements_token) + .header("X-Riot-ClientVersion", &user.riot_client_version) + .header("X-Riot-ClientPlatform", valorant::create_client_platform_header()) + .send() + .await + .map_err(|e| format!("Party request failed: {}", e))?; + + let status = response.status(); + self.log(&format!("[GameDetector] Party endpoint responded: {}", status)).await; + + let body = response.text().await.unwrap_or_default(); + self.log(&format!("[GameDetector] Party response ({}): {}", status, body)).await; + + if !status.is_success() { + return Err(format!("Party request failed ({}): {}", status, body)); + } + + let party: PartyResponse = serde_json::from_str(&body) + .map_err(|e| format!("Failed to parse party response: {}", e))?; + + Ok(party) + } + + async fn get_pregame(&self, user: &UserData) -> Result { + let client = reqwest::Client::builder() + .use_rustls_tls() + .build() + .map_err(|e| e.to_string())?; + + let url = format!( + "https://glz-{}-1.{}.a.pvp.net/pregame/v1/players/{}", + user.region.as_str(), + user.shard.as_str(), + user.user_id + ); + + self.log(&format!("[GameDetector] GET {}", url)).await; + + #[derive(Deserialize)] + struct PlayerResponse { + #[serde(rename = "MatchID")] + match_id: String, + } + + let response = client + .get(&url) + .header("Authorization", format!("Bearer {}", user.access_token)) + .header("X-Riot-Entitlements-JWT", &user.entitlements_token) + .header("X-Riot-ClientVersion", &user.riot_client_version) + .header("X-Riot-ClientPlatform", valorant::create_client_platform_header()) + .send() + .await + .map_err(|e| format!("Request failed: {}", e))?; + + let status = response.status(); + self.log(&format!("[GameDetector] Player endpoint responded: {}", status)).await; + if !status.is_success() { + let body = response.text().await.unwrap_or_default(); + return Err(format!("Player request failed ({}): {}", status, body)); + } + + let player_response: PlayerResponse = response + .json() + .await + .map_err(|e| format!("Failed to parse player response: {}", e))?; + + self.log(&format!("[GameDetector] Player response match_id: {}", player_response.match_id)).await; + + let match_url = format!( + "https://glz-{}-1.{}.a.pvp.net/pregame/v1/matches/{}", + user.region.as_str(), + user.shard.as_str(), + player_response.match_id + ); + + self.log(&format!("[GameDetector] GET {}", match_url)).await; + + let match_response_raw = client + .get(&match_url) + .header("Authorization", format!("Bearer {}", user.access_token)) + .header("X-Riot-Entitlements-JWT", &user.entitlements_token) + .header("X-Riot-ClientVersion", &user.riot_client_version) + .header("X-Riot-ClientPlatform", valorant::create_client_platform_header()) + .send() + .await + .map_err(|e| format!("Match request failed: {}", e))?; + + let match_status = match_response_raw.status(); + self.log(&format!("[GameDetector] Match endpoint responded: {}", match_status)).await; + if !match_status.is_success() { + let body = match_response_raw.text().await.unwrap_or_default(); + return Err(format!("Match request failed ({}): {}", match_status, body)); + } + + let match_response: PregameMatchResponse = match_response_raw + .json() + .await + .map_err(|e| format!("Failed to parse match response: {}", e))?; + + self.log(&format!("[GameDetector] Pregame match parsed: {} players in ally team", match_response.ally_team.players.len())).await; + + Ok(match_response) + } + + async fn equip_random_loadout( + &self, + user: &UserData, + agent_id: Option<&str>, + ) -> Result<(), String> { + self.log(&format!("[GameDetector] equip_random_loadout called: user={}, agent_id={:?}", user.user_id, agent_id)).await; + + let user_config = config::get_user_config(&self.config_dir, &user.user_id).await?; + + self.log(&format!("[GameDetector] User config loaded: {} total loadouts", user_config.loadouts.len())).await; + + let enabled_loadouts: Vec<&Loadout> = + user_config.loadouts.iter().filter(|l| l.enabled).collect(); + + self.log(&format!("[GameDetector] Enabled loadouts: {} (names: [{}])", enabled_loadouts.len(), enabled_loadouts.iter().map(|l| l.name.as_str()).collect::>().join(", "))).await; + + if enabled_loadouts.is_empty() { + self.log("[GameDetector] No enabled loadouts, nothing to equip").await; + return Ok(()); + } + + let loadouts_to_consider: Vec<&Loadout> = if let Some(agent) = agent_id { + let agent_specific: Vec<&Loadout> = enabled_loadouts + .iter() + .filter(|l| l.agent_ids.contains(&agent.to_string())) + .copied() + .collect(); + + self.log(&format!("[GameDetector] Agent filter '{}': {} agent-specific loadouts found (names: [{}])", agent, agent_specific.len(), agent_specific.iter().map(|l| l.name.as_str()).collect::>().join(", "))).await; + + if agent_specific.is_empty() { + self.log(&format!("[GameDetector] No agent-specific loadouts, falling back to all {} enabled loadouts", enabled_loadouts.len())).await; + enabled_loadouts + } else { + agent_specific + } + } else { + self.log(&format!("[GameDetector] No agent filter, using all {} enabled loadouts", enabled_loadouts.len())).await; + enabled_loadouts + }; + + let loadout = { + let mut rng = rand::rng(); + loadouts_to_consider.choose(&mut rng).cloned().cloned() + }; + let loadout = match loadout { + Some(l) => { + self.log(&format!("[GameDetector] Randomly selected loadout: {} (id: {})", l.name, l.id)).await; + l + } + None => return Ok(()), + }; + + self.log("[GameDetector] Fetching existing loadout and entitlements...").await; + let (existing_loadout, entitlements) = + tokio::join!(valorant::get_loadout(user), valorant::get_entitlements(user)); + + let (existing_loadout, entitlements, user_refreshed) = + match (&existing_loadout, &entitlements) { + (Err(e), _) | (_, Err(e)) if e.contains("BAD_CLAIMS") => { + self.log("[GameDetector] Token expired in equip_random_loadout, refreshing...").await; + valorant::invalidate_user_cache(&self.user_cache).await; + let fresh_user = + match valorant::get_user(&self.region_cache, &self.user_cache).await? { + Some(u) => u, + None => return Err("No user after refresh".to_string()), + }; + let (el, ent) = tokio::join!( + valorant::get_loadout(&fresh_user), + valorant::get_entitlements(&fresh_user) + ); + (el?, ent?, Some(fresh_user)) + } + _ => (existing_loadout?, entitlements?, None), + }; + + self.log("[GameDetector] Existing loadout and entitlements retrieved").await; + + let equip_user = user_refreshed.as_ref().unwrap_or(user); + + self.log(&format!("[GameDetector] Building valorant loadout from '{}'...", loadout.name)).await; + let valorant_loadout = + build_valorant_loadout(&loadout, &existing_loadout, &entitlements); + + self.log(&format!("[GameDetector] Built loadout: {} guns, {} expressions, card={}, title={}", valorant_loadout.guns.len(), valorant_loadout.active_expressions.len(), valorant_loadout.identity.player_card_id, valorant_loadout.identity.player_title_id)).await; + + self.log("[GameDetector] Sending equip request to Valorant API...").await; + valorant::equip_loadout(equip_user, valorant_loadout).await?; + + self.log(&format!("[GameDetector] Loadout '{}' equipped successfully!", loadout.name)).await; + + Ok(()) + } +} + +pub fn build_valorant_loadout( + loadout: &Loadout, + existing: &ValorantLoadout, + entitlements: &EntitlementsResponse, +) -> ValorantLoadout { + use rand::prelude::IndexedRandom; + + let mut rng = rand::rng(); + + let buddy_type_id = "dd3bf334-87f3-40bd-b043-682a57a8dc3a"; + let spray_type_id = "d5f120f8-ff8c-4aac-92ea-f2b5acbe9475"; + let flex_type_id = "03a572de-4234-31ed-d344-ababa488f981"; + + let buddy_entitlements: HashMap> = entitlements + .entitlements_by_types + .iter() + .find(|e| e.item_type_id == buddy_type_id) + .map(|e| { + let mut map: HashMap> = HashMap::new(); + for ent in &e.entitlements { + if let Some(instance_id) = &ent.instance_id { + map.entry(ent.item_id.clone()) + .or_default() + .push(instance_id.clone()); + } + } + map + }) + .unwrap_or_default(); + + let mut used_buddies: HashMap = HashMap::new(); + + let guns: Vec = loadout + .weapons + .iter() + .map(|(weapon_id, config)| { + if config.templates.is_empty() { + if let Some(existing_gun) = existing.guns.iter().find(|g| g.id == *weapon_id) { + return valorant::Gun { + id: weapon_id.clone(), + skin_id: existing_gun.skin_id.clone(), + skin_level_id: existing_gun.skin_level_id.clone(), + chroma_id: existing_gun.chroma_id.clone(), + charm_instance_id: None, + charm_id: None, + charm_level_id: None, + attachments: vec![], + }; + } + + return valorant::Gun { + id: weapon_id.clone(), + skin_id: String::new(), + skin_level_id: String::new(), + chroma_id: String::new(), + charm_instance_id: None, + charm_id: None, + charm_level_id: None, + attachments: vec![], + }; + } + + let template = config.templates.choose(&mut rng).unwrap(); + + let chroma_id = template + .chroma_ids + .choose(&mut rng) + .cloned() + .unwrap_or_default(); + let level_id = template + .level_ids + .choose(&mut rng) + .cloned() + .unwrap_or_default(); + + let buddy_data = if !template.buddies.is_empty() { + if let Some(buddy) = template.buddies.choose(&mut rng) { + if let Some(level_id) = buddy.level_ids.choose(&mut rng) { + let used_count = used_buddies.entry(level_id.clone()).or_insert(0); + if let Some(instances) = buddy_entitlements.get(level_id) { + if *used_count < instances.len() { + let instance = instances[*used_count].clone(); + *used_count += 1; + Some((instance, buddy.id.clone(), level_id.clone())) + } else { + None + } + } else { + None + } + } else { + None + } + } else { + None + } + } else { + None + }; + + valorant::Gun { + id: weapon_id.clone(), + skin_id: template.skin_id.clone(), + skin_level_id: level_id, + chroma_id, + charm_instance_id: buddy_data.as_ref().map(|(i, _, _)| i.clone()), + charm_id: buddy_data.as_ref().map(|(_, c, _)| c.clone()), + charm_level_id: buddy_data.map(|(_, _, l)| l), + attachments: vec![], + } + }) + .collect(); + + let mut build_expression = + |slot: &config::ExpressionSlot, default_spray: &str, default_flex: &str| { + let options: Vec = slot + .spray_ids + .iter() + .map(|id| valorant::ActiveExpression { + type_id: spray_type_id.to_string(), + asset_id: id.clone(), + }) + .chain(slot.flex_ids.iter().map(|id| valorant::ActiveExpression { + type_id: flex_type_id.to_string(), + asset_id: id.clone(), + })) + .collect(); + + if options.is_empty() { + if !default_spray.is_empty() { + valorant::ActiveExpression { + type_id: spray_type_id.to_string(), + asset_id: default_spray.to_string(), + } + } else { + valorant::ActiveExpression { + type_id: flex_type_id.to_string(), + asset_id: default_flex.to_string(), + } + } + } else { + options.choose(&mut rng).unwrap().clone() + } + }; + + let default_spray = "0a6db78c-48b9-a32d-c47a-82be597584c1"; + let default_flex = "af52b5a0-4a4c-03b2-c9d7-8187a08a2675"; + + let active_expressions = vec![ + build_expression(&loadout.expression_ids.top, default_spray, ""), + build_expression(&loadout.expression_ids.right, default_spray, ""), + build_expression(&loadout.expression_ids.bottom, default_spray, ""), + build_expression(&loadout.expression_ids.left, "", default_flex), + ]; + + let player_card_id = loadout + .player_card_ids + .choose(&mut rng) + .cloned() + .unwrap_or_else(|| "9fb348bc-41a0-91ad-8a3e-818035c4e561".to_string()); + + let player_title_id = loadout + .player_title_ids + .choose(&mut rng) + .cloned() + .unwrap_or_else(|| existing.identity.player_title_id.clone()); + + ValorantLoadout { + subject: existing.subject.clone(), + version: existing.version, + guns, + active_expressions, + identity: valorant::Identity { + player_card_id, + player_title_id, + account_level: existing.identity.account_level, + preferred_level_border_id: existing.identity.preferred_level_border_id.clone(), + hide_account_level: existing.identity.hide_account_level, + }, + incognito: existing.incognito, + } +} + +#[derive(Debug)] +struct NoVerifier; + +impl rustls::client::danger::ServerCertVerifier for NoVerifier { + fn verify_server_cert( + &self, + _end_entity: &rustls::pki_types::CertificateDer<'_>, + _intermediates: &[rustls::pki_types::CertificateDer<'_>], + _server_name: &rustls::pki_types::ServerName<'_>, + _ocsp_response: &[u8], + _now: rustls::pki_types::UnixTime, + ) -> Result { + Ok(rustls::client::danger::ServerCertVerified::assertion()) + } + + fn verify_tls12_signature( + &self, + _message: &[u8], + _cert: &rustls::pki_types::CertificateDer<'_>, + _dss: &rustls::DigitallySignedStruct, + ) -> Result { + Ok(rustls::client::danger::HandshakeSignatureValid::assertion()) + } + + fn verify_tls13_signature( + &self, + _message: &[u8], + _cert: &rustls::pki_types::CertificateDer<'_>, + _dss: &rustls::DigitallySignedStruct, + ) -> Result { + Ok(rustls::client::danger::HandshakeSignatureValid::assertion()) + } + + fn supported_verify_schemes(&self) -> Vec { + vec![ + rustls::SignatureScheme::RSA_PKCS1_SHA256, + rustls::SignatureScheme::ECDSA_NISTP256_SHA256, + rustls::SignatureScheme::RSA_PKCS1_SHA384, + rustls::SignatureScheme::ECDSA_NISTP384_SHA384, + rustls::SignatureScheme::RSA_PKCS1_SHA512, + rustls::SignatureScheme::ECDSA_NISTP521_SHA512, + rustls::SignatureScheme::RSA_PSS_SHA256, + rustls::SignatureScheme::RSA_PSS_SHA384, + rustls::SignatureScheme::RSA_PSS_SHA512, + rustls::SignatureScheme::ED25519, + ] + } +} diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs new file mode 100644 index 0000000..bbfcac4 --- /dev/null +++ b/src-tauri/src/lib.rs @@ -0,0 +1,246 @@ +mod commands; +mod config; +mod game_detection; +mod valorant; +mod valorant_data; + +use game_detection::ShuffleSettings; +use std::path::PathBuf; +use std::sync::atomic::AtomicBool; +use std::sync::Arc; +use tauri::menu::{CheckMenuItem, Menu, MenuItem, PredefinedMenuItem}; +use tauri::tray::{MouseButton, MouseButtonState, TrayIconBuilder, TrayIconEvent}; +use tauri::{Emitter, Manager}; +use tokio::sync::RwLock; +use valorant::{RegionShardCache, UserDataCache}; +use valorant_data::ValorantDataCache; + +pub struct AppState { + pub region_cache: RegionShardCache, + pub user_cache: UserDataCache, + pub config_dir: PathBuf, + pub valorant_data_cache: ValorantDataCache, + pub valorant_connected: Arc, + pub shuffle_settings: ShuffleSettings, +} + +pub struct TrayMenuState { + pub auto_shuffle_item: CheckMenuItem, + pub agent_detection_item: CheckMenuItem, + pub non_pregame_shuffle_item: CheckMenuItem, +} + +#[cfg_attr(mobile, tauri::mobile_entry_point)] +pub fn run() { + tauri::Builder::default() + .plugin(tauri_plugin_opener::init()) + .setup(|app| { + let config_dir = app + .path() + .app_data_dir() + .expect("failed to resolve app data dir"); + + let region_cache: RegionShardCache = + Arc::new(RwLock::new(std::collections::HashMap::new())); + + let valorant_data_cache: ValorantDataCache = Arc::new(RwLock::new(None)); + let user_cache: UserDataCache = Arc::new(RwLock::new(None)); + let valorant_connected = Arc::new(AtomicBool::new(false)); + let shuffle_settings = ShuffleSettings::new(); + + let state = AppState { + region_cache: Arc::clone(®ion_cache), + user_cache: Arc::clone(&user_cache), + config_dir: config_dir.clone(), + valorant_data_cache, + valorant_connected: Arc::clone(&valorant_connected), + shuffle_settings: shuffle_settings.clone(), + }; + + app.manage(state); + + let auto_shuffle_item = CheckMenuItem::with_id( + app, + "auto_shuffle", + "Auto Shuffle", + true, + true, + None::<&str>, + )?; + let agent_detection_item = CheckMenuItem::with_id( + app, + "agent_detection", + "Agent Detection", + true, + true, + None::<&str>, + )?; + let non_pregame_shuffle_item = CheckMenuItem::with_id( + app, + "non_pregame_shuffle", + "Shuffle in Non-Pregame Modes", + true, + true, + None::<&str>, + )?; + let separator = PredefinedMenuItem::separator(app)?; + let show_item = MenuItem::with_id(app, "show", "Show", true, None::<&str>)?; + let quit_item = MenuItem::with_id(app, "quit", "Quit", true, None::<&str>)?; + + let menu = Menu::with_items( + app, + &[ + &auto_shuffle_item, + &agent_detection_item, + &non_pregame_shuffle_item, + &separator, + &show_item, + &quit_item, + ], + )?; + + let settings_for_tray = shuffle_settings.clone(); + let auto_shuffle_clone = auto_shuffle_item.clone(); + let agent_detection_clone = agent_detection_item.clone(); + let non_pregame_shuffle_clone = non_pregame_shuffle_item.clone(); + + TrayIconBuilder::new() + .icon(app.default_window_icon().unwrap().clone()) + .tooltip("valpal") + .menu(&menu) + .show_menu_on_left_click(false) + .on_menu_event(move |app, event| { + match event.id.as_ref() { + "auto_shuffle" => { + if let Ok(checked) = auto_shuffle_clone.is_checked() { + settings_for_tray.set_auto_shuffle_enabled(checked); + let _ = agent_detection_clone.set_enabled(checked); + let _ = non_pregame_shuffle_clone.set_enabled(checked); + let _ = app.emit( + "shuffle-settings-changed", + ShuffleSettingsPayload { + auto_shuffle_enabled: checked, + agent_detection_enabled: settings_for_tray + .is_agent_detection_enabled(), + non_pregame_shuffle_enabled: settings_for_tray + .is_non_pregame_shuffle_enabled(), + }, + ); + } + } + "agent_detection" => { + if let Ok(checked) = agent_detection_clone.is_checked() { + settings_for_tray.set_agent_detection_enabled(checked); + let _ = app.emit( + "shuffle-settings-changed", + ShuffleSettingsPayload { + auto_shuffle_enabled: settings_for_tray + .is_auto_shuffle_enabled(), + agent_detection_enabled: checked, + non_pregame_shuffle_enabled: settings_for_tray + .is_non_pregame_shuffle_enabled(), + }, + ); + } + } + "non_pregame_shuffle" => { + if let Ok(checked) = non_pregame_shuffle_clone.is_checked() { + settings_for_tray.set_non_pregame_shuffle_enabled(checked); + let _ = app.emit( + "shuffle-settings-changed", + ShuffleSettingsPayload { + auto_shuffle_enabled: settings_for_tray + .is_auto_shuffle_enabled(), + agent_detection_enabled: settings_for_tray + .is_agent_detection_enabled(), + non_pregame_shuffle_enabled: checked, + }, + ); + } + } + "show" => { + if let Some(window) = app.get_webview_window("main") { + let _ = window.show(); + let _ = window.set_focus(); + } + } + "quit" => { + app.exit(0); + } + _ => {} + } + }) + .on_tray_icon_event(|tray, event| { + if let TrayIconEvent::Click { + button: MouseButton::Left, + button_state: MouseButtonState::Up, + .. + } = event + { + let app = tray.app_handle(); + if let Some(window) = app.get_webview_window("main") { + let _ = window.show(); + let _ = window.set_focus(); + } + } + }) + .build(app)?; + + app.manage(TrayMenuState { + auto_shuffle_item, + agent_detection_item, + non_pregame_shuffle_item, + }); + + let app_handle = app.handle().clone(); + let detector = game_detection::GameDetector::new( + region_cache, + user_cache, + shuffle_settings, + config_dir, + app_handle, + valorant_connected, + ); + + tauri::async_runtime::spawn(async move { + detector.run().await; + }); + + Ok(()) + }) + .on_window_event(|window, event| { + if let tauri::WindowEvent::CloseRequested { api, .. } = event { + api.prevent_close(); + let _ = window.hide(); + } + }) + .invoke_handler(tauri::generate_handler![ + commands::get_user, + commands::get_loadout, + commands::get_entitlements, + commands::equip_loadout, + commands::get_user_config, + commands::save_user_config, + commands::create_loadout, + commands::update_loadout, + commands::delete_loadout, + commands::save_in_game_loadout, + commands::get_valorant_data, + commands::get_valorant_status, + commands::get_shuffle_settings, + commands::set_auto_shuffle_enabled, + commands::set_agent_detection_enabled, + commands::set_non_pregame_shuffle_enabled, + commands::equip_loadout_by_id, + ]) + .run(tauri::generate_context!()) + .expect("error while running tauri application"); +} + +#[derive(Clone, serde::Serialize)] +#[serde(rename_all = "camelCase")] +pub struct ShuffleSettingsPayload { + pub auto_shuffle_enabled: bool, + pub agent_detection_enabled: bool, + pub non_pregame_shuffle_enabled: bool, +} diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs new file mode 100644 index 0000000..8a2a27e --- /dev/null +++ b/src-tauri/src/main.rs @@ -0,0 +1,6 @@ +// Prevents additional console window on Windows in release, DO NOT REMOVE!! +#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] + +fn main() { + valpal_lib::run() +} diff --git a/src-tauri/src/valorant.rs b/src-tauri/src/valorant.rs new file mode 100644 index 0000000..61cbd71 --- /dev/null +++ b/src-tauri/src/valorant.rs @@ -0,0 +1,723 @@ +use base64::{engine::general_purpose, Engine as _}; +use reqwest::Client; +use serde::{de::DeserializeOwned, Deserialize, Serialize}; +use std::collections::HashMap; +use std::sync::Arc; +use tokio::sync::RwLock; + +fn log_response_preview(body: &str, max_len: usize) -> String { + if body.len() > max_len { + format!("{}... ({} bytes total)", &body[..max_len], body.len()) + } else { + body.to_string() + } +} + +async fn parse_json_response( + response: reqwest::Response, + context: &str, +) -> Result { + let status = response.status(); + let url = response.url().to_string(); + + let body = response.text().await.map_err(|e| { + eprintln!("[API] Failed to read response body from {}: {}", url, e); + format!("Failed to read response body: {}", e) + })?; + + println!( + "[API] {} response ({}): {}", + context, + status, + log_response_preview(&body, 500) + ); + + if !status.is_success() { + eprintln!( + "[API] {} failed with status {}: {}", + context, + status, + log_response_preview(&body, 1000) + ); + return Err(format!( + "{} failed ({}): {}", + context, + status, + log_response_preview(&body, 200) + )); + } + + serde_json::from_str(&body).map_err(|e| { + eprintln!("[API] {} JSON parse error: {}", context, e); + eprintln!( + "[API] {} raw body was: {}", + context, + log_response_preview(&body, 2000) + ); + format!( + "JSON parse error for {}: {} (body: {})", + context, + e, + log_response_preview(&body, 200) + ) + }) +} + +#[derive(Debug, Serialize, Deserialize, Clone)] +pub enum Region { + AP, + EU, + KO, + NA, + LATAM, + BR, +} + +impl Region { + pub fn as_str(&self) -> &str { + match self { + Region::AP => "ap", + Region::EU => "eu", + Region::KO => "ko", + Region::NA => "na", + Region::LATAM => "latam", + Region::BR => "br", + } + } +} + +#[derive(Debug, Serialize, Deserialize, Clone)] +pub enum Shard { + NA, + EU, + AP, + KR, + PBE, +} + +impl Shard { + pub fn as_str(&self) -> &str { + match self { + Shard::NA => "na", + Shard::EU => "eu", + Shard::AP => "ap", + Shard::KR => "kr", + Shard::PBE => "pbe", + } + } +} + +#[derive(Debug, Clone)] +pub struct Lockfile { + pub port: String, + pub password: String, +} + +#[derive(Debug, Serialize, Deserialize, Clone)] +pub struct PlayerInfo { + pub display_name: String, + pub game_name: String, + pub tag_line: String, +} + +#[derive(Debug, Serialize, Deserialize, Clone)] +pub struct UserData { + pub access_token: String, + pub entitlements_token: String, + pub user_id: String, + pub region: Region, + pub shard: Shard, + pub riot_client_version: String, + pub player_info: PlayerInfo, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "PascalCase")] +pub struct Gun { + #[serde(rename = "ID")] + pub id: String, + #[serde(rename = "SkinID")] + pub skin_id: String, + #[serde(rename = "SkinLevelID")] + pub skin_level_id: String, + #[serde(rename = "ChromaID")] + pub chroma_id: String, + #[serde(rename = "CharmInstanceID")] + pub charm_instance_id: Option, + #[serde(rename = "CharmID")] + pub charm_id: Option, + #[serde(rename = "CharmLevelID")] + pub charm_level_id: Option, + pub attachments: Vec, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "PascalCase")] +pub struct ActiveExpression { + #[serde(rename = "TypeID")] + pub type_id: String, + #[serde(rename = "AssetID")] + pub asset_id: String, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "PascalCase")] +pub struct Identity { + #[serde(rename = "PlayerCardID")] + pub player_card_id: String, + #[serde(rename = "PlayerTitleID")] + pub player_title_id: String, + pub account_level: u32, + #[serde(rename = "PreferredLevelBorderID")] + pub preferred_level_border_id: String, + pub hide_account_level: bool, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "PascalCase")] +pub struct ValorantLoadout { + pub subject: String, + pub version: u32, + pub guns: Vec, + pub active_expressions: Vec, + pub identity: Identity, + pub incognito: bool, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct Entitlement { + #[serde(rename = "TypeID")] + pub type_id: String, + #[serde(rename = "ItemID")] + pub item_id: String, + #[serde(rename = "InstanceID")] + #[serde(default)] + pub instance_id: Option, +} + +#[derive(Debug, Serialize, Deserialize)] +pub struct EntitlementsByType { + #[serde(rename = "ItemTypeID")] + pub item_type_id: String, + #[serde(rename = "Entitlements")] + pub entitlements: Vec, +} + +#[derive(Debug, Serialize, Deserialize)] +pub struct EntitlementsResponse { + #[serde(rename = "EntitlementsByTypes")] + pub entitlements_by_types: Vec, +} + +pub type RegionShardCache = Arc>>; + +const USER_CACHE_TTL: std::time::Duration = std::time::Duration::from_secs(55 * 60); + +pub type UserDataCache = Arc>>; + +fn get_player_data_service_url(region: &Region) -> String { + format!("https://pd.{}.a.pvp.net", region.as_str()) +} + +pub fn create_client_platform_header() -> String { + let platform_info = serde_json::json!({ + "platformType": "PC", + "platformOS": "Windows", + "platformOSVersion": "10.0.19042.1.256.64bit", + "platformChipset": "Unknown" + }); + general_purpose::STANDARD.encode(platform_info.to_string()) +} + +fn create_http_client() -> Result { + Client::builder() + .use_rustls_tls() + .min_tls_version(reqwest::tls::Version::TLS_1_2) + .build() +} + +fn create_local_http_client() -> Result { + Client::builder() + .danger_accept_invalid_certs(true) + .use_rustls_tls() + .build() +} + +pub async fn get_lockfile() -> Result, String> { + let local_appdata = std::env::var("LOCALAPPDATA").map_err(|_| "LOCALAPPDATA not set")?; + + let lockfile_path = std::path::Path::new(&local_appdata) + .join("Riot Games") + .join("Riot Client") + .join("Config") + .join("lockfile"); + + if !lockfile_path.exists() { + return Ok(None); + } + + let content = tokio::fs::read_to_string(&lockfile_path) + .await + .map_err(|e| e.to_string())?; + + let parts: Vec<&str> = content.split(':').collect(); + if parts.len() < 4 { + return Err("Invalid lockfile format".to_string()); + } + + Ok(Some(Lockfile { + port: parts[2].to_string(), + password: parts[3].to_string(), + })) +} + +pub async fn get_riot_client_version() -> Result { + let client = reqwest::Client::new(); + + #[derive(Deserialize)] + struct VersionData { + data: RiotClientVersionData, + } + + #[derive(Deserialize)] + #[serde(rename_all = "camelCase")] + struct RiotClientVersionData { + riot_client_version: String, + } + + let url = "https://valorant-api.com/v1/version"; + println!("[API] GET {}", url); + + let response = client.get(url).send().await.map_err(|e| { + eprintln!("[API] get_riot_client_version request failed: {}", e); + e.to_string() + })?; + + let version_data: VersionData = + parse_json_response(response, "get_riot_client_version").await?; + println!( + "[API] Got riot client version: {}", + version_data.data.riot_client_version + ); + Ok(version_data.data.riot_client_version) +} + +#[derive(Deserialize)] +struct LocalTokenResponse { + #[serde(rename = "accessToken")] + access_token: String, + token: String, + subject: String, +} + +#[derive(Deserialize)] +struct PlayerResponse { + #[serde(rename = "DisplayName")] + display_name: String, + #[serde(rename = "GameName")] + game_name: String, + #[serde(rename = "TagLine")] + tag_line: String, +} + +#[derive(Deserialize)] +struct IdTokenResponse { + token: String, +} + +#[derive(Deserialize)] +struct RiotGeoResponse { + affinities: RiotGeoAffinities, +} + +#[derive(Deserialize)] +struct RiotGeoAffinities { + live: String, +} + +async fn get_id_token(lockfile: &Lockfile) -> Result { + let client = create_local_http_client().map_err(|e| e.to_string())?; + let auth = format!("riot:{}", lockfile.password); + let auth_header = format!("Basic {}", general_purpose::STANDARD.encode(&auth)); + + let url = format!( + "https://127.0.0.1:{}/rso-auth/v1/authorization/id-token", + lockfile.port + ); + println!("[API] GET {}", url); + + let response = client + .get(&url) + .header("Authorization", auth_header) + .send() + .await + .map_err(|e| { + eprintln!("[API] get_id_token request failed: {}", e); + format!("get_id_token request failed: {}", e) + })?; + + let token_response: IdTokenResponse = + parse_json_response(response, "get_id_token").await?; + Ok(token_response.token) +} + +async fn detect_region_shard( + user_id: &str, + access_token: &str, + id_token: &str, + cache: &RegionShardCache, +) -> Result, String> { + { + let cache_lock = cache.read().await; + if let Some(cached) = cache_lock.get(user_id) { + println!( + "[API] Region/shard cache hit for {}: {:?}/{:?}", + user_id, cached.0, cached.1 + ); + return Ok(Some(cached.clone())); + } + } + + println!("[API] Detecting region via Riot Geo for user {}...", user_id); + + let client = create_http_client().map_err(|e| e.to_string())?; + + let url = "https://riot-geo.pas.si.riotgames.com/pas/v1/product/valorant"; + println!("[API] PUT {}", url); + + let response = client + .put(url) + .header("Authorization", format!("Bearer {}", access_token)) + .json(&serde_json::json!({ "id_token": id_token })) + .send() + .await + .map_err(|e| { + eprintln!("[API] Riot Geo request failed: {}", e); + format!("Riot Geo request failed: {}", e) + })?; + + let geo: RiotGeoResponse = parse_json_response(response, "riot_geo").await?; + + println!("[API] Riot Geo affinity: live={}", geo.affinities.live); + + let result = match geo.affinities.live.as_str() { + "na" => (Region::NA, Shard::NA), + "eu" => (Region::EU, Shard::EU), + "ap" => (Region::AP, Shard::AP), + "kr" => (Region::KO, Shard::KR), + "latam" => (Region::LATAM, Shard::NA), + "br" => (Region::BR, Shard::NA), + other => return Err(format!("Unknown region affinity: {}", other)), + }; + + println!("[API] Mapped to region {:?}, shard {:?}", result.0, result.1); + + let mut cache_lock = cache.write().await; + cache_lock.insert(user_id.to_string(), result.clone()); + + Ok(Some(result)) +} + +async fn get_player_info( + user_id: &str, + access_token: &str, + entitlements_token: &str, + riot_client_version: &str, + region: &Region, +) -> Result { + let client = create_http_client().map_err(|e| e.to_string())?; + + let url = format!( + "{}/name-service/v2/players", + get_player_data_service_url(region) + ); + + println!("[API] PUT {} (get_player_info)", url); + + let response = client + .put(&url) + .header("Authorization", format!("Bearer {}", access_token)) + .header("X-Riot-Entitlements-JWT", entitlements_token) + .header("X-Riot-ClientVersion", riot_client_version) + .header("X-Riot-ClientPlatform", create_client_platform_header()) + .json(&vec![user_id]) + .send() + .await + .map_err(|e| { + eprintln!("[API] get_player_info request failed: {}", e); + e.to_string() + })?; + + let players: Vec = parse_json_response(response, "get_player_info").await?; + + let player = players.into_iter().next().ok_or_else(|| { + eprintln!("[API] get_player_info returned empty array"); + "No player data returned".to_string() + })?; + + println!( + "[API] Got player info: {}#{}", + player.game_name, player.tag_line + ); + + Ok(PlayerInfo { + display_name: player.display_name, + game_name: player.game_name, + tag_line: player.tag_line, + }) +} + +pub async fn invalidate_user_cache(user_cache: &UserDataCache) { + let mut cached = user_cache.write().await; + *cached = None; +} + +pub async fn get_user( + region_cache: &RegionShardCache, + user_cache: &UserDataCache, +) -> Result, String> { + { + let cached = user_cache.read().await; + if let Some((ref data, ref cached_at)) = *cached { + if cached_at.elapsed() < USER_CACHE_TTL { + println!("[API] get_user: cache hit for {}#{} (age: {:?})", data.player_info.game_name, data.player_info.tag_line, cached_at.elapsed()); + return Ok(Some(data.clone())); + } + println!("[API] get_user: cache expired for {}#{} (age: {:?})", data.player_info.game_name, data.player_info.tag_line, cached_at.elapsed()); + } + } + + let total_start = std::time::Instant::now(); + println!("[API] get_user: cache miss, fetching..."); + + let t = std::time::Instant::now(); + let lockfile = match get_lockfile().await? { + Some(lf) => { + println!("[API] get_user: Found lockfile on port {} ({:?})", lf.port, t.elapsed()); + lf + } + None => { + println!("[API] get_user: No lockfile found ({:?})", t.elapsed()); + return Ok(None); + } + }; + + let t = std::time::Instant::now(); + let riot_client_version = get_riot_client_version().await?; + println!("[API] get_user: got riot_client_version ({:?})", t.elapsed()); + + let client = create_local_http_client().map_err(|e| e.to_string())?; + + let auth = format!("riot:{}", lockfile.password); + let auth_header = format!("Basic {}", general_purpose::STANDARD.encode(&auth)); + + let url = format!("https://127.0.0.1:{}/entitlements/v1/token", lockfile.port); + + let t = std::time::Instant::now(); + let response = match client + .get(&url) + .header("Authorization", auth_header) + .send() + .await + { + Ok(resp) => resp, + Err(e) => { + eprintln!("[API] get_user local token request failed: {}", e); + return Ok(None); + } + }; + + if response.status() == reqwest::StatusCode::NOT_FOUND { + println!("[API] get_user: local token endpoint returned 404 (Valorant not running)"); + return Ok(None); + } + + let tokens: LocalTokenResponse = + parse_json_response(response, "get_user (local token)").await?; + println!("[API] get_user: Got tokens for user {} ({:?})", tokens.subject, t.elapsed()); + + let t = std::time::Instant::now(); + let id_token = get_id_token(&lockfile).await?; + println!("[API] get_user: got id_token ({:?})", t.elapsed()); + + let t = std::time::Instant::now(); + let region_shard = match detect_region_shard( + &tokens.subject, + &tokens.access_token, + &id_token, + region_cache, + ) + .await? + { + Some(rs) => { + println!("[API] get_user: detect_region_shard ({:?})", t.elapsed()); + rs + } + None => { + println!("[API] get_user: Could not detect region/shard ({:?})", t.elapsed()); + return Ok(None); + } + }; + + let t = std::time::Instant::now(); + let player_info = get_player_info( + &tokens.subject, + &tokens.access_token, + &tokens.token, + &riot_client_version, + ®ion_shard.0, + ) + .await?; + println!("[API] get_user: get_player_info ({:?})", t.elapsed()); + + let user_data = UserData { + access_token: tokens.access_token, + entitlements_token: tokens.token, + user_id: tokens.subject, + region: region_shard.0, + shard: region_shard.1, + riot_client_version, + player_info, + }; + + println!( + "[API] get_user: TOTAL {:?} for {}#{}", + total_start.elapsed(), user_data.player_info.game_name, user_data.player_info.tag_line + ); + + { + let mut cached = user_cache.write().await; + *cached = Some((user_data.clone(), std::time::Instant::now())); + } + + Ok(Some(user_data)) +} + +pub async fn get_loadout(user: &UserData) -> Result { + let client = create_http_client().map_err(|e| e.to_string())?; + + let url = format!( + "{}/personalization/v3/players/{}/playerloadout", + get_player_data_service_url(&user.region), + user.user_id + ); + + println!("[API] GET {} (get_loadout)", url); + + let response = client + .get(&url) + .header("Authorization", format!("Bearer {}", user.access_token)) + .header("X-Riot-Entitlements-JWT", &user.entitlements_token) + .header("X-Riot-ClientVersion", &user.riot_client_version) + .header("X-Riot-ClientPlatform", create_client_platform_header()) + .send() + .await + .map_err(|e| { + eprintln!("[API] get_loadout request failed: {}", e); + e.to_string() + })?; + + let loadout: ValorantLoadout = parse_json_response(response, "get_loadout").await?; + println!( + "[API] get_loadout: Got loadout with {} guns", + loadout.guns.len() + ); + Ok(loadout) +} + +pub async fn get_entitlements(user: &UserData) -> Result { + let client = create_http_client().map_err(|e| e.to_string())?; + + let url = format!( + "{}/store/v1/entitlements/{}", + get_player_data_service_url(&user.region), + user.user_id + ); + + println!("[API] GET {} (get_entitlements)", url); + + let response = client + .get(&url) + .header("Authorization", format!("Bearer {}", user.access_token)) + .header("X-Riot-Entitlements-JWT", &user.entitlements_token) + .header("X-Riot-ClientVersion", &user.riot_client_version) + .header("X-Riot-ClientPlatform", create_client_platform_header()) + .send() + .await + .map_err(|e| { + eprintln!("[API] get_entitlements request failed: {}", e); + e.to_string() + })?; + + let entitlements: EntitlementsResponse = + parse_json_response(response, "get_entitlements").await?; + + let total_items: usize = entitlements + .entitlements_by_types + .iter() + .map(|t| t.entitlements.len()) + .sum(); + println!( + "[API] get_entitlements: Got {} types with {} total items", + entitlements.entitlements_by_types.len(), + total_items + ); + + Ok(entitlements) +} + +pub async fn equip_loadout(user: &UserData, loadout: ValorantLoadout) -> Result<(), String> { + let client = create_http_client().map_err(|e| e.to_string())?; + + let url = format!( + "{}/personalization/v3/players/{}/playerloadout", + get_player_data_service_url(&user.region), + user.user_id + ); + + println!("[API] PUT {} (equip_loadout)", url); + + let request_body = serde_json::to_string(&loadout).unwrap_or_else(|e| { + eprintln!("[API] equip_loadout: Failed to serialize loadout: {}", e); + "{}".to_string() + }); + println!( + "[API] equip_loadout request body: {}", + log_response_preview(&request_body, 500) + ); + + let response = client + .put(&url) + .header("Authorization", format!("Bearer {}", user.access_token)) + .header("X-Riot-Entitlements-JWT", &user.entitlements_token) + .header("X-Riot-ClientVersion", &user.riot_client_version) + .header("X-Riot-ClientPlatform", create_client_platform_header()) + .json(&loadout) + .send() + .await + .map_err(|e| { + eprintln!("[API] equip_loadout request failed: {}", e); + e.to_string() + })?; + + let status = response.status(); + let body = response.text().await.unwrap_or_default(); + + println!( + "[API] equip_loadout response ({}): {}", + status, + log_response_preview(&body, 500) + ); + + if !status.is_success() { + eprintln!("[API] equip_loadout failed ({}): {}", status, body); + return Err(format!( + "Failed to equip loadout ({}): {}", + status, + log_response_preview(&body, 200) + )); + } + + println!("[API] equip_loadout: Success!"); + Ok(()) +} diff --git a/src-tauri/src/valorant_data.rs b/src-tauri/src/valorant_data.rs new file mode 100644 index 0000000..ebf7109 --- /dev/null +++ b/src-tauri/src/valorant_data.rs @@ -0,0 +1,271 @@ +use reqwest::Client; +use serde::{Deserialize, Serialize}; +use std::sync::Arc; +use tokio::sync::RwLock; + +const BASE_URL: &str = "https://valorant-api.com/v1"; + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct SkinChroma { + pub uuid: String, + pub display_name: String, + pub display_icon: Option, + pub full_render: String, + pub swatch: Option, + pub streamed_video: Option, + pub asset_path: String, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct SkinLevel { + pub uuid: String, + pub display_name: String, + pub level_item: Option, + pub display_icon: Option, + pub streamed_video: Option, + pub asset_path: String, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Skin { + pub uuid: String, + pub display_name: String, + pub theme_uuid: Option, + pub content_tier_uuid: Option, + pub display_icon: Option, + pub wallpaper: Option, + pub asset_path: String, + pub chromas: Vec, + pub levels: Vec, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Weapon { + pub uuid: String, + pub display_name: String, + pub category: String, + pub default_skin_uuid: String, + pub display_icon: String, + pub kill_stream_icon: String, + pub asset_path: String, + pub skins: Vec, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct BuddyLevel { + pub uuid: String, + pub charm_level: u32, + pub display_name: String, + pub display_icon: String, + pub asset_path: String, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Buddy { + pub uuid: String, + pub display_name: String, + pub is_hidden_if_not_owned: bool, + pub theme_uuid: Option, + pub display_icon: String, + pub asset_path: String, + pub levels: Vec, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct PlayerCard { + pub uuid: String, + pub display_name: String, + pub is_hidden_if_not_owned: bool, + pub theme_uuid: Option, + pub display_icon: String, + pub small_art: String, + pub wide_art: String, + pub large_art: Option, + pub asset_path: String, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct SprayLevel { + pub uuid: String, + pub spray_level: u32, + pub display_name: String, + pub display_icon: Option, + pub asset_path: String, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Spray { + pub uuid: String, + pub display_name: String, + pub category: Option, + pub theme_uuid: Option, + pub display_icon: String, + pub full_icon: Option, + pub full_transparent_icon: Option, + pub animation_png: Option, + pub animation_gif: Option, + pub asset_path: String, + pub levels: Vec, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Flex { + pub uuid: String, + pub display_name: String, + pub display_icon: String, + pub asset_path: String, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct PlayerTitle { + pub uuid: String, + pub display_name: Option, + pub title_text: Option, + pub is_hidden_if_not_owned: bool, + pub asset_path: String, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Role { + pub uuid: String, + pub display_name: String, + pub description: String, + pub display_icon: String, + pub asset_path: String, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Ability { + pub slot: String, + pub display_name: String, + pub description: String, + pub display_icon: Option, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Agent { + pub uuid: String, + pub display_name: String, + pub description: String, + pub developer_name: String, + pub character_tags: Option>, + pub display_icon: String, + pub display_icon_small: String, + pub bust_portrait: String, + pub full_portrait: String, + pub full_portrait_v2: String, + pub killfeed_portrait: String, + pub background: String, + pub background_gradient_colors: Option>, + pub asset_path: String, + pub is_full_portrait_right_facing: bool, + pub is_playable_character: bool, + pub is_available_for_test: bool, + pub is_base_content: bool, + pub role: Option, + pub abilities: Vec, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct ValorantData { + pub weapons: Vec, + pub buddies: Vec, + #[serde(rename = "playerCards")] + pub player_cards: Vec, + pub sprays: Vec, + #[serde(rename = "playerTitles")] + pub player_titles: Vec, + pub agents: Vec, + pub flex: Vec, +} + +pub type ValorantDataCache = Arc>>; + +#[derive(Deserialize)] +struct ApiResponse { + data: T, +} + +fn json_context_at(body: &str, column: usize) -> String { + let start = column.saturating_sub(120); + let end = (column + 60).min(body.len()); + let snippet = &body[start..end]; + let pointer = column - start; + format!("...{}...\n {}^", snippet, " ".repeat(pointer)) +} + +async fn fetch_data( + client: &Client, + endpoint: &str, +) -> Result { + let url = format!("{}{}", BASE_URL, endpoint); + let resp = client + .get(&url) + .send() + .await + .map_err(|e| format!("Failed to fetch {}: {}", endpoint, e))?; + + let body = resp + .text() + .await + .map_err(|e| format!("Failed to read body from {}: {}", endpoint, e))?; + + let api_resp: ApiResponse = serde_json::from_str(&body).map_err(|e| { + let context = json_context_at(&body, e.column().saturating_sub(1)); + format!( + "Failed to parse {}: {}\n\nContext:\n{}", + endpoint, e, context + ) + })?; + + Ok(api_resp.data) +} + +pub async fn get_valorant_data(cache: &ValorantDataCache) -> Result { + { + let read = cache.read().await; + if let Some(data) = read.as_ref() { + return Ok(data.clone()); + } + } + + let client = Client::new(); + let (weapons, buddies, player_cards, sprays, player_titles, agents, flex) = tokio::try_join!( + fetch_data::>(&client, "/weapons"), + fetch_data::>(&client, "/buddies"), + fetch_data::>(&client, "/playercards"), + fetch_data::>(&client, "/sprays"), + fetch_data::>(&client, "/playertitles"), + fetch_data::>(&client, "/agents?isPlayableCharacter=true"), + fetch_data::>(&client, "/flex"), + )?; + + let data = ValorantData { + weapons, + buddies, + player_cards, + sprays, + player_titles, + agents, + flex, + }; + + let mut write = cache.write().await; + *write = Some(data.clone()); + + Ok(data) +} diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json new file mode 100644 index 0000000..a6c2a42 --- /dev/null +++ b/src-tauri/tauri.conf.json @@ -0,0 +1,35 @@ +{ + "$schema": "https://schema.tauri.app/config/2", + "productName": "valpal", + "version": "0.1.0", + "identifier": "net.zachrip.valpal", + "build": { + "beforeDevCommand": "pnpm dev", + "devUrl": "http://localhost:1420", + "beforeBuildCommand": "pnpm build:frontend", + "frontendDist": "../dist/client" + }, + "app": { + "windows": [ + { + "title": "valpal", + "width": 800, + "height": 600 + } + ], + "security": { + "csp": null + } + }, + "bundle": { + "active": true, + "targets": "msi", + "icon": [ + "icons/32x32.png", + "icons/128x128.png", + "icons/128x128@2x.png", + "icons/icon.icns", + "icons/icon.ico" + ] + } +} \ No newline at end of file diff --git a/src/apiClient.ts b/src/apiClient.ts new file mode 100644 index 0000000..b4c1cf5 --- /dev/null +++ b/src/apiClient.ts @@ -0,0 +1,187 @@ +import { invoke } from "@tauri-apps/api/core"; + +export type Region = "AP" | "EU" | "KO" | "NA" | "LATAM" | "BR"; +export type Shard = "NA" | "EU" | "AP" | "KR" | "PBE"; + +export interface Gun { + ID: string; + SkinID: string; + SkinLevelID: string; + ChromaID: string; + CharmInstanceID?: string; + CharmID?: string; + CharmLevelID?: string; + Attachments: unknown[]; +} + +export interface ActiveExpression { + TypeID: string; + AssetID: string; +} + +export interface Identity { + PlayerCardID: string; + PlayerTitleID: string; + AccountLevel: number; + PreferredLevelBorderID: string; + HideAccountLevel: boolean; +} + +export interface ValorantLoadout { + Subject: string; + Version: number; + Guns: Gun[]; + ActiveExpressions: ActiveExpression[]; + Identity: Identity; + Incognito: boolean; +} + +export interface PlayerInfo { + display_name: string; + game_name: string; + tag_line: string; +} + +export interface UserData { + access_token: string; + entitlements_token: string; + user_id: string; + region: Region; + shard: Shard; + riot_client_version: string; + player_info: PlayerInfo; +} + +export interface Entitlement { + TypeID: string; + ItemID: string; + InstanceID?: string; +} + +export interface EntitlementsByType { + ItemTypeID: string; + Entitlements: Entitlement[]; +} + +export interface EntitlementsResponse { + EntitlementsByTypes: EntitlementsByType[]; +} + +export interface BuddyTemplate { + id: string; + levelIds: string[]; +} + +export interface WeaponTemplate { + id: string; + skinId: string; + levelIds: string[]; + chromaIds: string[]; + buddies: BuddyTemplate[]; +} + +export interface WeaponConfig { + templates: WeaponTemplate[]; +} + +export interface ExpressionSlot { + sprayIds: string[]; + flexIds: string[]; +} + +export interface ExpressionIds { + top: ExpressionSlot; + right: ExpressionSlot; + bottom: ExpressionSlot; + left: ExpressionSlot; +} + +export interface Loadout { + id: string; + name: string; + enabled: boolean; + agentIds: string[]; + weapons: Record; + playerCardIds: string[]; + playerTitleIds: string[]; + expressionIds: ExpressionIds; +} + +export interface UserConfig { + version: number; + loadouts: Loadout[]; +} + +export async function getUser(): Promise { + return invoke("get_user"); +} + +export async function getLoadout(): Promise { + return invoke("get_loadout"); +} + +export async function getEntitlements(): Promise { + return invoke("get_entitlements"); +} + +export async function equipLoadout(loadout: ValorantLoadout): Promise { + return invoke("equip_loadout", { loadout }); +} + +export async function getUserConfig(): Promise { + return invoke("get_user_config"); +} + +export async function saveUserConfig(config: UserConfig): Promise { + return invoke("save_user_config", { config }); +} + +export async function createLoadout(loadout: Loadout): Promise { + return invoke("create_loadout", { loadout }); +} + +export async function updateLoadout(loadout: Loadout): Promise { + return invoke("update_loadout", { loadout }); +} + +export async function deleteLoadout(loadoutId: string): Promise { + return invoke("delete_loadout", { loadoutId }); +} + +export async function saveInGameLoadout(name: string): Promise { + return invoke("save_in_game_loadout", { name }); +} + +export async function getValorantStatus(): Promise { + return invoke("get_valorant_status"); +} + +export interface ShuffleSettings { + autoShuffleEnabled: boolean; + agentDetectionEnabled: boolean; + nonPregameShuffleEnabled: boolean; +} + +export async function getShuffleSettings(): Promise { + return invoke("get_shuffle_settings"); +} + +export async function setAutoShuffleEnabled(enabled: boolean): Promise { + return invoke("set_auto_shuffle_enabled", { enabled }); +} + +export async function setAgentDetectionEnabled( + enabled: boolean, +): Promise { + return invoke("set_agent_detection_enabled", { enabled }); +} + +export async function setNonPregameShuffleEnabled( + enabled: boolean, +): Promise { + return invoke("set_non_pregame_shuffle_enabled", { enabled }); +} + +export async function equipLoadoutById(loadoutId: string): Promise { + return invoke("equip_loadout_by_id", { loadoutId }); +} diff --git a/src/app.css b/src/app.css new file mode 100644 index 0000000..a194a81 --- /dev/null +++ b/src/app.css @@ -0,0 +1,12 @@ +@import "tailwindcss"; + +@theme { + --font-sans: "Inter", ui-sans-serif, system-ui, sans-serif, + "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; +} + +html, +body { + @apply bg-slate-800; + color-scheme: dark; +} diff --git a/app/components/Gallery.tsx b/src/components/Gallery.tsx similarity index 78% rename from app/components/Gallery.tsx rename to src/components/Gallery.tsx index 5f05065..52d7c51 100644 --- a/app/components/Gallery.tsx +++ b/src/components/Gallery.tsx @@ -1,12 +1,11 @@ -import type { ReactNode } from 'react'; -import { useEffect, useState } from 'react'; +import { useEffect, useState } from "react"; export const Gallery = >({ items, render, }: { items: T; - render: (data: T[number]) => JSX.Element; + render: (data: T[number]) => React.ReactNode; }) => { const [selectedElement, setSelectedElement] = useState(0); diff --git a/app/components/SwitchImage.tsx b/src/components/SwitchImage.tsx similarity index 87% rename from app/components/SwitchImage.tsx rename to src/components/SwitchImage.tsx index 58ef50b..a98f6c8 100644 --- a/app/components/SwitchImage.tsx +++ b/src/components/SwitchImage.tsx @@ -1,5 +1,5 @@ -import type { FunctionComponent } from 'react'; -import { useEffect, useState } from 'react'; +import type { FunctionComponent } from "react"; +import { useEffect, useState } from "react"; export const SwitchImage: FunctionComponent< { diff --git a/src/root.tsx b/src/root.tsx new file mode 100644 index 0000000..ca4f7df --- /dev/null +++ b/src/root.tsx @@ -0,0 +1,77 @@ +import { + isRouteErrorResponse, + Links, + Meta, + Outlet, + Scripts, + ScrollRestoration, +} from "react-router"; + +import type { Route } from "./+types/root"; +import "./app.css"; + +export const links: Route.LinksFunction = () => [ + { rel: "preconnect", href: "https://fonts.googleapis.com" }, + { + rel: "preconnect", + href: "https://fonts.gstatic.com", + crossOrigin: "anonymous", + }, + { + rel: "stylesheet", + href: "https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap", + }, +]; + +export function Layout({ children }: { children: React.ReactNode }) { + return ( + + + + + + + + + {children} + + + + + ); +} + +export default function App() { + return ; +} + +export function ErrorBoundary({ error }: Route.ErrorBoundaryProps) { + let message = "Oops!"; + let details = "An unexpected error occurred."; + let stack: string | undefined; + + console.error(error); + + if (isRouteErrorResponse(error)) { + message = error.status === 404 ? "404" : "Error"; + details = + error.status === 404 + ? "The requested page could not be found." + : error.statusText || details; + } else if (import.meta.env.DEV && error && error instanceof Error) { + details = error.message; + stack = error.stack; + } + + return ( +

+

{message}

+

{details}

+ {stack && ( +
+					{stack}
+				
+ )} +
+ ); +} diff --git a/src/routes.ts b/src/routes.ts new file mode 100644 index 0000000..0c9e093 --- /dev/null +++ b/src/routes.ts @@ -0,0 +1,24 @@ +import { + index, + layout, + type RouteConfig, + route, +} from "@react-router/dev/routes"; + +export default [ + layout("routes/app/layout.tsx", [ + index("routes/app/index.tsx"), + route("loadouts", "routes/app/loadouts/layout.tsx", [ + index("routes/app/loadouts/index.tsx"), + route("new", "routes/app/loadouts/new.tsx"), + route(":loadoutId", "routes/app/loadouts/detail.tsx", [ + route("weapons/:weaponId", "routes/app/loadouts/weapon.tsx", [ + route("new", "routes/app/loadouts/weapon-new.tsx"), + ]), + route("playercards", "routes/app/loadouts/playercards.tsx"), + route("playertitles", "routes/app/loadouts/playertitles.tsx"), + route("expressions/:slot", "routes/app/loadouts/expressions.tsx"), + ]), + ]), + ]), +] satisfies RouteConfig; diff --git a/src/routes/app/index.tsx b/src/routes/app/index.tsx new file mode 100644 index 0000000..2df4524 --- /dev/null +++ b/src/routes/app/index.tsx @@ -0,0 +1,560 @@ +import { listen } from "@tauri-apps/api/event"; +import { useEffect } from "react"; +import { Form, Link, redirect, useFetcher, useRevalidator } from "react-router"; +import type { ShuffleSettings } from "~/apiClient"; +import * as api from "~/apiClient"; +import { Gallery } from "~/components/Gallery"; +import { SwitchImage } from "~/components/SwitchImage"; +import { weaponUuidToIndex } from "~/types"; +import { getValorantData } from "~/valorant-data"; +import valpalLogo from "~/valpal.png"; +import type { Route } from "./+types/index"; + +export async function clientLoader() { + const [valorantData, user, shuffleSettings] = await Promise.all([ + getValorantData(), + api.getUser(), + api.getShuffleSettings(), + ]); + + if (!user) { + return { user: null, currentLoadout: null, loadouts: [], shuffleSettings }; + } + + let userConfig: api.UserConfig; + let inGameLoadout: api.ValorantLoadout; + try { + [userConfig, inGameLoadout] = await Promise.all([ + api.getUserConfig(), + api.getLoadout(), + ]); + } catch { + return { user: null, currentLoadout: null, loadouts: [], shuffleSettings }; + } + + const currentLoadout = { + playerCard: valorantData.playerCards.find( + (c) => c.uuid === inGameLoadout.Identity.PlayerCardID, + ), + playerTitle: valorantData.playerTitles.find( + (t) => t.uuid === inGameLoadout.Identity.PlayerTitleID, + ), + weapons: inGameLoadout.Guns.map((gun) => { + const weapon = valorantData.weapons.find((w) => w.uuid === gun.ID); + const skin = weapon?.skins.find((s) => s.uuid === gun.SkinID); + const chroma = skin?.chromas.find((c) => c.uuid === gun.ChromaID); + return { + weapon, + templates: chroma ? [{ skin, chromas: [chroma] }] : [], + }; + }).sort((a, b) => { + const indexA = weaponUuidToIndex[a.weapon?.uuid ?? ""] ?? 999; + const indexB = weaponUuidToIndex[b.weapon?.uuid ?? ""] ?? 999; + return indexA - indexB; + }), + }; + + const loadouts = userConfig.loadouts + .sort((a, b) => { + if (a.enabled === b.enabled) { + return a.name.localeCompare(b.name); + } + return a.enabled ? -1 : 1; + }) + .map((loadout) => { + const defaultSpray = "0a6db78c-48b9-a32d-c47a-82be597584c1"; + const defaultFlex = "af52b5a0-4a4c-03b2-c9d7-8187a08a2675"; + + const findSprays = (ids: string[]) => + ids.flatMap((id) => { + const s = valorantData.sprays.find((spray) => spray.uuid === id); + return s ? [s] : []; + }); + const findFlex = (ids: string[]) => + ids.flatMap((id) => { + const f = valorantData.flex.find((flex) => flex.uuid === id); + return f ? [f] : []; + }); + const resolveSlotSprays = (slot: api.ExpressionSlot) => + findSprays( + slot.sprayIds.length || slot.flexIds.length + ? slot.sprayIds + : [defaultSpray], + ); + const resolveSlotFlex = (slot: api.ExpressionSlot) => + findFlex( + slot.flexIds.length || slot.sprayIds.length + ? slot.flexIds + : [defaultFlex], + ); + + return { + ...loadout, + agents: loadout.agentIds + .map((id) => valorantData.agents.find((a) => a.uuid === id)) + .filter((a) => a !== undefined) + .sort((a, b) => + (a.displayName ?? "").localeCompare(b.displayName ?? ""), + ), + playerCards: (loadout.playerCardIds.length + ? loadout.playerCardIds + : ["9fb348bc-41a0-91ad-8a3e-818035c4e561"] + ) + .map((id) => valorantData.playerCards.find((c) => c.uuid === id)) + .filter(Boolean), + playerTitles: (loadout.playerTitleIds.length + ? loadout.playerTitleIds + : ["d13e579c-435e-44d4-cec2-6eae5a3c5ed4"] + ) + .map((id) => valorantData.playerTitles.find((t) => t.uuid === id)) + .filter(Boolean), + expressions: { + top: { + sprays: resolveSlotSprays(loadout.expressionIds.top), + flexes: findFlex(loadout.expressionIds.top.flexIds), + }, + right: { + sprays: resolveSlotSprays(loadout.expressionIds.right), + flexes: findFlex(loadout.expressionIds.right.flexIds), + }, + bottom: { + sprays: resolveSlotSprays(loadout.expressionIds.bottom), + flexes: findFlex(loadout.expressionIds.bottom.flexIds), + }, + left: { + sprays: findSprays(loadout.expressionIds.left.sprayIds), + flexes: resolveSlotFlex(loadout.expressionIds.left), + }, + }, + weapons: valorantData.weapons + .slice() + .sort((a, b) => { + const indexA = weaponUuidToIndex[a.uuid] ?? 999; + const indexB = weaponUuidToIndex[b.uuid] ?? 999; + return indexA - indexB; + }) + .map((weapon) => { + const config = loadout.weapons[weapon.uuid]; + const templates = (config?.templates || []).map((template) => { + const skin = weapon.skins.find((s) => s.uuid === template.skinId); + const chromas = + skin?.chromas.filter((c) => + template.chromaIds.includes(c.uuid), + ) || []; + return { skin, chromas }; + }); + + return { weapon, templates }; + }), + }; + }); + + return { user, currentLoadout, loadouts, shuffleSettings }; +} + +export async function clientAction({ request }: Route.ClientActionArgs) { + const formData = await request.formData(); + const intent = formData.get("intent"); + + if (intent === "delete") { + const loadoutId = formData.get("loadoutId") as string; + await api.deleteLoadout(loadoutId); + return redirect("/"); + } + + if (intent === "saveInGame") { + await api.saveInGameLoadout("In-Game Loadout"); + return redirect("/"); + } + + if (intent === "setAutoShuffle") { + await api.setAutoShuffleEnabled(formData.get("enabled") === "true"); + return { ok: true }; + } + + if (intent === "setAgentDetection") { + await api.setAgentDetectionEnabled(formData.get("enabled") === "true"); + return { ok: true }; + } + + if (intent === "setNonPregameShuffle") { + await api.setNonPregameShuffleEnabled(formData.get("enabled") === "true"); + return { ok: true }; + } + + if (intent === "equip") { + const loadoutId = formData.get("loadoutId") as string; + await api.equipLoadoutById(loadoutId); + return { ok: true }; + } + + throw new Error(`Unknown intent: ${intent}`); +} + +const buttonStyles = + "cursor-pointer text-white px-3 py-2 border-2 border-white rounded-md hover:bg-white hover:text-slate-800 transition-colors"; + +function Toggle({ + fetcher, + checked, + intent, + label, + disabled, +}: { + fetcher: ReturnType; + checked: boolean; + intent: string; + label: string; + disabled?: boolean; +}) { + const optimistic = fetcher.formData + ? fetcher.formData.get("enabled") === "true" + : checked; + + return ( + + + + + + ); +} + +export default function Index({ loaderData }: Route.ComponentProps) { + const { user, currentLoadout, loadouts, shuffleSettings } = loaderData; + + const autoShuffleFetcher = useFetcher(); + const agentDetectionFetcher = useFetcher(); + const nonPregameShuffleFetcher = useFetcher(); + const revalidator = useRevalidator(); + + const autoShuffleOn = autoShuffleFetcher.formData + ? autoShuffleFetcher.formData.get("enabled") === "true" + : shuffleSettings.autoShuffleEnabled; + + useEffect(() => { + const unlistenShuffle = listen("shuffle-settings-changed", () => { + revalidator.revalidate(); + }); + const unlistenStatus = listen("valorant-status", () => { + revalidator.revalidate(); + }); + + return () => { + unlistenShuffle.then((fn) => fn()); + unlistenStatus.then((fn) => fn()); + }; + }, [revalidator]); + + if (!user) { + return ( +
+
+ ValPal Logo +
+

+ Waiting for Valorant... +

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

+ {user?.player_info.game_name} + + #{user?.player_info.tag_line} + +

+
+ + New Loadout + + + +
+
+
+ + + +
+
+

+ Currently Equipped + + (In-Game) + +

+ +
+
+
+ {currentLoadout.playerCard && ( + {currentLoadout.playerCard.displayName + )} +
+

+ {currentLoadout.playerTitle?.titleText || "Default"} +

+
+
+ {currentLoadout.weapons.map((weapon) => ( +
+ {weapon?.templates?.[0]?.chromas?.[0] ? ( + {weapon.templates[0].skin?.displayName + ) : ( + {weapon?.weapon?.displayName + )} + + {weapon?.weapon?.displayName} + +
+ ))} +
+
+
+ + +
+
+
+

+ Saved Loadouts +

+
+
+
+ {loadouts.map((loadout) => ( +
+

+ {loadout.name} + {!loadout.enabled && ( + (Disabled) + )} +
+ {loadout.agents.map((agent) => ( +
+ {agent?.displayName +
+ ))} +
+

+
+
+
+ ({ + src: c?.largeArt ?? "", + alt: c?.displayName ?? "", + }))} + /> +
+ ({ + ...t, + duration: 1000, + }))} + render={(title) => ( +

+ {title?.titleText || "Default"} +

+ )} + /> +
+ {Object.entries(loadout.expressions).map(([key, exps]) => ( +
+ ({ + icon: + spray.animationGif ?? + spray.fullTransparentIcon ?? + spray.displayIcon ?? + "", + displayName: spray.displayName ?? "", + duration: 1000, + })), + ...exps.flexes.map((flex) => ({ + icon: flex.displayIcon ?? "", + displayName: flex.displayName ?? "", + duration: 1000, + })), + ]} + render={(expression) => ( + {expression.displayName + )} + /> +
+ ))} +
+
+
+ {loadout.weapons.map((weapon) => ( +
+ {weapon?.templates?.[0]?.chromas?.[0] ? ( + {weapon.templates[0].skin?.displayName + ) : ( + {weapon?.weapon?.displayName + )} + + {weapon?.weapon?.displayName} + +
+ ))} +
+
+
+
+ + + +
+ + Edit + +
{ + if ( + !confirm("Are you sure you want to delete this loadout?") + ) { + e.preventDefault(); + } + }} + > + + + +
+
+
+ ))} + {loadouts.length === 0 && ( +
+

No loadouts yet.

+

+ Create a new loadout or save your current in-game loadout to get + started. +

+
+ )} +
+
+ ); +} diff --git a/src/routes/app/layout.tsx b/src/routes/app/layout.tsx new file mode 100644 index 0000000..e919ab1 --- /dev/null +++ b/src/routes/app/layout.tsx @@ -0,0 +1,40 @@ +import { listen } from "@tauri-apps/api/event"; +import { useEffect, useState } from "react"; +import { Outlet, useRevalidator } from "react-router"; +import * as api from "~/apiClient"; +import valpalLogo from "~/valpal.png"; + +export default function Layout() { + const [connected, setConnected] = useState(null); + const revalidator = useRevalidator(); + + useEffect(() => { + api.getValorantStatus().then(setConnected); + + const unlisten = listen("valorant-status", (event) => { + setConnected(event.payload); + if (event.payload) { + revalidator.revalidate(); + } + }); + + return () => { + unlisten.then((fn) => fn()); + }; + }, [revalidator]); + + if (!connected) { + return ( +
+
+ ValPal Logo +
+

+ Waiting for Valorant... +

+
+ ); + } + + return ; +} diff --git a/src/routes/app/loadouts/detail.tsx b/src/routes/app/loadouts/detail.tsx new file mode 100644 index 0000000..441f0a7 --- /dev/null +++ b/src/routes/app/loadouts/detail.tsx @@ -0,0 +1,443 @@ +import { useEffect, useState } from "react"; +import { Link, Outlet } from "react-router"; +import type { Loadout } from "~/apiClient"; +import * as api from "~/apiClient"; +import { Gallery } from "~/components/Gallery"; +import { weaponUuidToIndex } from "~/types"; +import { getValorantData } from "~/valorant-data"; +import type { Route } from "./+types/detail"; + +type WeaponGalleryItem = { + chroma: { icon: string; name: string }; + buddy: { icon: string; name: string } | null; + duration: number; +}; + +export async function clientLoader({ params }: Route.ClientLoaderArgs) { + const [valorantData, userConfig] = await Promise.all([ + getValorantData(), + api.getUserConfig(), + ]); + + const loadout = userConfig.loadouts.find((l) => l.id === params.loadoutId); + if (!loadout) { + throw new Error("Loadout not found"); + } + + return { valorantData, loadout }; +} + +export default function LoadoutDetailComponent({ + loaderData, +}: Route.ComponentProps) { + const { valorantData, loadout: initialLoadout } = loaderData; + const [loadout, setLoadout] = useState(initialLoadout); + + useEffect(() => { + setLoadout(initialLoadout); + }, [initialLoadout]); + + const toggleAgent = (agentId: string) => { + const newLoadout = { + ...loadout, + agentIds: loadout.agentIds.includes(agentId) + ? loadout.agentIds.filter((id) => id !== agentId) + : [...loadout.agentIds, agentId], + }; + setLoadout(newLoadout); + api.updateLoadout(newLoadout); + }; + + const findCards = (ids: string[]) => + ids.flatMap((id) => { + const c = valorantData.playerCards.find((card) => card.uuid === id); + return c ? [c] : []; + }); + const findTitles = (ids: string[]) => + ids.flatMap((id) => { + const t = valorantData.playerTitles.find((title) => title.uuid === id); + return t ? [t] : []; + }); + const findSprays = (ids: string[]) => + ids.flatMap((id) => { + const s = valorantData.sprays.find((spray) => spray.uuid === id); + return s ? [s] : []; + }); + const findFlex = (ids: string[]) => + ids.flatMap((id) => { + const f = valorantData.flex.find((flex) => flex.uuid === id); + return f ? [f] : []; + }); + + const playerCards = findCards( + loadout.playerCardIds.length + ? loadout.playerCardIds + : ["9fb348bc-41a0-91ad-8a3e-818035c4e561"], + ); + + const playerTitles = findTitles( + loadout.playerTitleIds.length + ? loadout.playerTitleIds + : ["d13e579c-435e-44d4-cec2-6eae5a3c5ed4"], + ); + + const resolveSlotSprays = ( + slot: api.ExpressionSlot, + defaultSprayId: string, + ) => + findSprays( + slot.sprayIds.length || slot.flexIds.length + ? slot.sprayIds + : [defaultSprayId], + ); + const resolveSlotFlex = (slot: api.ExpressionSlot, defaultFlexId: string) => + findFlex( + slot.flexIds.length || slot.sprayIds.length + ? slot.flexIds + : [defaultFlexId], + ); + + const defaultSpray = "0a6db78c-48b9-a32d-c47a-82be597584c1"; + const defaultFlex = "af52b5a0-4a4c-03b2-c9d7-8187a08a2675"; + + const expressions = { + top: { + sprays: resolveSlotSprays(loadout.expressionIds.top, defaultSpray), + flexes: findFlex(loadout.expressionIds.top.flexIds), + }, + right: { + sprays: resolveSlotSprays(loadout.expressionIds.right, defaultSpray), + flexes: findFlex(loadout.expressionIds.right.flexIds), + }, + bottom: { + sprays: resolveSlotSprays(loadout.expressionIds.bottom, defaultSpray), + flexes: findFlex(loadout.expressionIds.bottom.flexIds), + }, + left: { + sprays: findSprays(loadout.expressionIds.left.sprayIds), + flexes: resolveSlotFlex(loadout.expressionIds.left, defaultFlex), + }, + }; + + return ( + <> +
+ + + Loadouts + + +
+
+

+ Loadout Name +

+
+ { + setLoadout({ ...loadout, name: e.target.value }); + }} + onBlur={() => api.updateLoadout(loadout)} + /> +
+
+
+

Agents

+
+ {valorantData.agents.slice().sort((a, b) => (a.displayName ?? "").localeCompare(b.displayName ?? "")).map((agent) => ( + + ))} +
+
+
+ +
+
+
+

+ Player Cards +

+
+ + ({ + ...card, + duration: 1000, + }))} + render={(card) => ( +
+
+ {card.displayName +
+

+ {(card.displayName ?? "").slice(0, -5)} +

+
+ )} + /> +
+ Edit +
+ +
+
+ +
+

+ Player Titles +

+
+ + ({ ...t, duration: 1000 }))} + render={(title) => ( +

+ {title.titleText || "Default"} +

+ )} + /> +
+ Edit +
+ +
+
+ +
+

+ Expressions +

+
+ {( + Object.entries(expressions) as [ + string, + { + sprays: typeof valorantData.sprays; + flexes: typeof valorantData.flex; + }, + ][] + ).map(([key, exps]) => ( + + ({ + icon: + spray.animationGif ?? + spray.fullTransparentIcon ?? + spray.displayIcon ?? + "", + displayName: spray.displayName ?? "", + duration: 1000, + })), + ...exps.flexes.map((flex) => ({ + icon: flex.displayIcon ?? "", + displayName: flex.displayName ?? "", + duration: 1000, + })), + ]} + render={(expression) => ( + {expression.displayName + )} + /> +
+ {key} +
+ + ))} +
+
+
+ +
+ {valorantData.weapons + .slice() + .sort((a, b) => { + const indexA = weaponUuidToIndex[a.uuid] ?? 999; + const indexB = weaponUuidToIndex[b.uuid] ?? 999; + return indexA - indexB; + }) + .map((weapon) => { + const config = loadout.weapons[weapon.uuid]; + const templates = config?.templates || []; + + const galleryItems: WeaponGalleryItem[] = + templates.length > 0 + ? templates.flatMap((template) => { + const skin = weapon.skins.find( + (s) => s.uuid === template.skinId, + ); + if (!skin) return []; + + const chromas = skin.chromas.filter((c) => + template.chromaIds.includes(c.uuid), + ); + const buddies = template.buddies.flatMap((buddy) => { + const buddyData = valorantData.buddies.find( + (b) => b.uuid === buddy.id, + ); + if (!buddyData) return []; + return buddy.levelIds.map((levelId) => ({ + id: buddy.id, + levelId, + displayName: buddyData.displayName, + displayIcon: buddyData.displayIcon, + })); + }); + + if (chromas.length === 0) return []; + + return chromas.flatMap( + (chroma): WeaponGalleryItem[] => { + if (buddies.length === 0) { + return [ + { + chroma: { + icon: + chroma.fullRender ?? + chroma.displayIcon ?? + "", + name: chroma.displayName ?? "", + }, + buddy: null, + duration: 1000, + }, + ]; + } + return buddies.map((buddy) => ({ + chroma: { + icon: + chroma.fullRender ?? + chroma.displayIcon ?? + "", + name: chroma.displayName ?? "", + }, + buddy: { + icon: buddy.displayIcon ?? "", + name: buddy.displayName ?? "", + }, + duration: 1000, + })); + }, + ); + }) + : [ + { + chroma: { + icon: weapon.displayIcon ?? "", + name: weapon.displayName ?? "", + }, + buddy: null, + duration: 1000, + }, + ]; + + return ( + + ( + <> + {item.chroma.name} + {item.buddy && ( + {item.buddy.name} + )} + + )} + /> + + {weapon.displayName} + +
+ Edit +
+ + ); + })} +
+
+
+ + + ); +} diff --git a/src/routes/app/loadouts/expressions.tsx b/src/routes/app/loadouts/expressions.tsx new file mode 100644 index 0000000..ffb10c3 --- /dev/null +++ b/src/routes/app/loadouts/expressions.tsx @@ -0,0 +1,265 @@ +import { useState } from "react"; +import { + Dialog, + DialogTrigger, + Heading, + Modal, + ModalOverlay, +} from "react-aria-components"; +import { useNavigate, useRevalidator } from "react-router"; +import type { ExpressionSlot, Loadout } from "~/apiClient"; +import * as api from "~/apiClient"; +import { + type Entitlement, + entitlementTypeToIdMap, + type Flex, + type Spray, +} from "~/types"; +import { getValorantData } from "~/valorant-data"; +import type { Route } from "./+types/expressions"; + +type SlotName = "top" | "right" | "bottom" | "left"; + +export async function clientLoader({ params }: Route.ClientLoaderArgs) { + const slot = params.slot as SlotName; + if (!["top", "right", "bottom", "left"].includes(slot)) { + throw new Error("Invalid slot"); + } + + const [valorantData, userConfig, entitlementsData] = await Promise.all([ + getValorantData(), + api.getUserConfig(), + api.getEntitlements(), + ]); + + const loadout = userConfig.loadouts.find( + (l: Loadout) => l.id === params.loadoutId, + ); + if (!loadout) { + throw new Error("Loadout not found"); + } + + const sprayType = entitlementsData.EntitlementsByTypes.find( + (e: { ItemTypeID: string }) => + e.ItemTypeID === entitlementTypeToIdMap.spray, + ); + const flexType = entitlementsData.EntitlementsByTypes.find( + (e: { ItemTypeID: string }) => e.ItemTypeID === entitlementTypeToIdMap.flex, + ); + + const sprayEntitlements: Entitlement[] = sprayType?.Entitlements || []; + const flexEntitlements: Entitlement[] = flexType?.Entitlements || []; + + const ownedSprays = valorantData.sprays + .filter((spray: Spray) => + sprayEntitlements.some((e: Entitlement) => e.ItemID === spray.uuid), + ) + .sort((a: Spray, b: Spray) => + (a.displayName ?? "").localeCompare(b.displayName ?? ""), + ); + + const ownedFlex = valorantData.flex + .filter((flex: Flex) => + flexEntitlements.some((e: Entitlement) => e.ItemID === flex.uuid), + ) + .sort((a: Flex, b: Flex) => + (a.displayName ?? "").localeCompare(b.displayName ?? ""), + ); + + return { + slot, + loadout, + selectedSprays: loadout.expressionIds[slot].sprayIds, + selectedFlex: loadout.expressionIds[slot].flexIds, + ownedSprays, + ownedFlex, + }; +} + +export default function ExpressionPickerModal({ + loaderData, + params, +}: Route.ComponentProps) { + const { + slot, + loadout, + selectedSprays: initialSprays, + selectedFlex: initialFlex, + ownedSprays, + ownedFlex, + } = loaderData; + const navigate = useNavigate(); + const revalidator = useRevalidator(); + const [selectedSprays, setSelectedSprays] = useState(initialSprays); + const [selectedFlex, setSelectedFlex] = useState(initialFlex); + const [currentTab, setCurrentTab] = useState<"sprays" | "flex">("sprays"); + + const toggleSpray = async (sprayId: string) => { + const newSelected = selectedSprays.includes(sprayId) + ? selectedSprays.filter((id) => id !== sprayId) + : [...selectedSprays, sprayId]; + + setSelectedSprays(newSelected); + + const newExpressionSlot: ExpressionSlot = { + sprayIds: newSelected, + flexIds: selectedFlex, + }; + + const newLoadout: Loadout = { + ...loadout, + expressionIds: { + ...loadout.expressionIds, + [slot]: newExpressionSlot, + }, + }; + + await api.updateLoadout(newLoadout); + revalidator.revalidate(); + }; + + const toggleFlex = async (flexId: string) => { + const newSelected = selectedFlex.includes(flexId) + ? selectedFlex.filter((id) => id !== flexId) + : [...selectedFlex, flexId]; + + setSelectedFlex(newSelected); + + const newExpressionSlot: ExpressionSlot = { + sprayIds: selectedSprays, + flexIds: newSelected, + }; + + const newLoadout: Loadout = { + ...loadout, + expressionIds: { + ...loadout.expressionIds, + [slot]: newExpressionSlot, + }, + }; + + await api.updateLoadout(newLoadout); + revalidator.revalidate(); + }; + + const slotTitle = slot.charAt(0).toUpperCase() + slot.slice(1); + + return ( + { + if (!open) navigate(`/loadouts/${params.loadoutId}`); + }} + > + + + +
+ + Select {slotTitle} Slot Expressions + + +
+
+ + +
+
+ {currentTab === "sprays" && ( +
+ {ownedSprays.map((spray: Spray) => ( + + ))} +
+ )} + {currentTab === "flex" && ( +
+ {ownedFlex.map((flex: Flex) => ( + + ))} +
+ )} +
+
+
+
+
+ ); +} diff --git a/src/routes/app/loadouts/index.tsx b/src/routes/app/loadouts/index.tsx new file mode 100644 index 0000000..95feb6e --- /dev/null +++ b/src/routes/app/loadouts/index.tsx @@ -0,0 +1,5 @@ +import { redirect } from "react-router"; + +export function clientLoader() { + return redirect("/"); +} diff --git a/src/routes/app/loadouts/layout.tsx b/src/routes/app/loadouts/layout.tsx new file mode 100644 index 0000000..ccc4e34 --- /dev/null +++ b/src/routes/app/loadouts/layout.tsx @@ -0,0 +1,5 @@ +import { Outlet } from "react-router"; + +export default function LoadoutsLayout() { + return ; +} diff --git a/src/routes/app/loadouts/new.tsx b/src/routes/app/loadouts/new.tsx new file mode 100644 index 0000000..2955db3 --- /dev/null +++ b/src/routes/app/loadouts/new.tsx @@ -0,0 +1,51 @@ +import { redirect } from "react-router"; +import type { Loadout } from "~/apiClient"; +import * as api from "~/apiClient"; + +const weaponIds = [ + "63e6c2b6-4a8e-869c-3d4c-e38355226584", + "55d8a0f4-4274-ca67-fe2c-06ab45efdf58", + "9c82e19d-4575-0200-1a81-3eacf00cf872", + "ae3de142-4d85-2547-dd26-4e90bed35cf7", + "ee8e8d15-496b-07ac-e5f6-8fae5d4c7b1a", + "ec845bf4-4f79-ddda-a3da-0db3774b2794", + "910be174-449b-c412-ab22-d0873436b21b", + "44d4e95c-4157-0037-81b2-17841bf2e8e3", + "29a0cfab-485b-f5d5-779a-b59f85e204a8", + "1baa85b4-4c70-1284-64bb-6481dfc3bb4e", + "e336c6b8-418d-9340-d77f-7a9e4cfe0702", + "42da8ccc-40d5-affc-beec-15aa47b42eda", + "a03b24d3-4319-996d-0f8c-94bbfba1dfc7", + "4ade7faa-4cf1-8376-95ef-39884480959b", + "c4883e50-4494-202c-3ec3-6b8a9284f00b", + "462080d1-4035-2937-7c09-27aa2a5c27a7", + "f7e1b454-4ad4-1063-ec0a-159e56b58941", + "2f59173c-4bed-b6c3-2191-dea9b58be9c7", + "5f0aaf7a-4289-3998-d5ff-eb9a5cf7ef5c", + "410b2e0b-4ceb-1321-1727-20858f7f3477", +]; + +export async function clientLoader() { + const newLoadout: Loadout = { + id: crypto.randomUUID(), + name: "New Loadout", + enabled: true, + agentIds: [], + weapons: Object.fromEntries(weaponIds.map((id) => [id, { templates: [] }])), + playerCardIds: [], + playerTitleIds: [], + expressionIds: { + top: { sprayIds: [], flexIds: [] }, + right: { sprayIds: [], flexIds: [] }, + bottom: { sprayIds: [], flexIds: [] }, + left: { sprayIds: [], flexIds: [] }, + }, + }; + + await api.createLoadout(newLoadout); + return redirect(`/loadouts/${newLoadout.id}`); +} + +export default function NewLoadoutComponent() { + return null; +} diff --git a/src/routes/app/loadouts/playercards.tsx b/src/routes/app/loadouts/playercards.tsx new file mode 100644 index 0000000..af80e48 --- /dev/null +++ b/src/routes/app/loadouts/playercards.tsx @@ -0,0 +1,152 @@ +import { useState } from "react"; +import { + Dialog, + DialogTrigger, + Heading, + Modal, + ModalOverlay, +} from "react-aria-components"; +import { useNavigate, useRevalidator } from "react-router"; +import type { Loadout } from "~/apiClient"; +import * as api from "~/apiClient"; +import { + type Entitlement, + entitlementTypeToIdMap, + type PlayerCard, +} from "~/types"; +import { getValorantData } from "~/valorant-data"; +import type { Route } from "./+types/playercards"; + +export async function clientLoader({ params }: Route.ClientLoaderArgs) { + const [valorantData, userConfig, entitlementsData] = await Promise.all([ + getValorantData(), + api.getUserConfig(), + api.getEntitlements(), + ]); + + const loadout = userConfig.loadouts.find( + (l: Loadout) => l.id === params.loadoutId, + ); + if (!loadout) { + throw new Error("Loadout not found"); + } + + const playerCardType = entitlementsData.EntitlementsByTypes.find( + (e: { ItemTypeID: string }) => + e.ItemTypeID === entitlementTypeToIdMap.player_card, + ); + const playerCardEntitlements: Entitlement[] = + playerCardType?.Entitlements || []; + + const ownedPlayerCards = valorantData.playerCards + .filter((card: PlayerCard) => + playerCardEntitlements.some((e: Entitlement) => e.ItemID === card.uuid), + ) + .sort((a: PlayerCard, b: PlayerCard) => + (a.displayName ?? "").localeCompare(b.displayName ?? ""), + ); + + return { + loadout, + selectedPlayerCards: loadout.playerCardIds, + ownedPlayerCards, + }; +} + +export default function PlayerCardsModal({ + loaderData, + params, +}: Route.ComponentProps) { + const { + loadout, + selectedPlayerCards: initialSelected, + ownedPlayerCards, + } = loaderData; + const navigate = useNavigate(); + const revalidator = useRevalidator(); + const [selectedCards, setSelectedCards] = useState(initialSelected); + + const toggleCard = async (cardId: string) => { + const newSelected = selectedCards.includes(cardId) + ? selectedCards.filter((id) => id !== cardId) + : [...selectedCards, cardId]; + + setSelectedCards(newSelected); + + const newLoadout: Loadout = { + ...loadout, + playerCardIds: newSelected, + }; + + await api.updateLoadout(newLoadout); + revalidator.revalidate(); + }; + + return ( + { + if (!open) navigate(`/loadouts/${params.loadoutId}`); + }} + > + + + +
+ + Select Player Cards + + +
+
+
+ {ownedPlayerCards.map((playerCard: PlayerCard) => ( + + ))} +
+
+
+
+
+
+ ); +} diff --git a/src/routes/app/loadouts/playertitles.tsx b/src/routes/app/loadouts/playertitles.tsx new file mode 100644 index 0000000..516ac74 --- /dev/null +++ b/src/routes/app/loadouts/playertitles.tsx @@ -0,0 +1,147 @@ +import { useState } from "react"; +import { + Dialog, + DialogTrigger, + Heading, + Modal, + ModalOverlay, +} from "react-aria-components"; +import { useNavigate, useRevalidator } from "react-router"; +import type { Loadout } from "~/apiClient"; +import * as api from "~/apiClient"; +import { + type Entitlement, + entitlementTypeToIdMap, + type PlayerTitle, +} from "~/types"; +import { getValorantData } from "~/valorant-data"; +import type { Route } from "./+types/playertitles"; + +export async function clientLoader({ params }: Route.ClientLoaderArgs) { + const [valorantData, userConfig, entitlementsData] = await Promise.all([ + getValorantData(), + api.getUserConfig(), + api.getEntitlements(), + ]); + + const loadout = userConfig.loadouts.find( + (l: Loadout) => l.id === params.loadoutId, + ); + if (!loadout) { + throw new Error("Loadout not found"); + } + + const playerTitleType = entitlementsData.EntitlementsByTypes.find( + (e: { ItemTypeID: string }) => + e.ItemTypeID === entitlementTypeToIdMap.player_title, + ); + const playerTitleEntitlements: Entitlement[] = + playerTitleType?.Entitlements || []; + + const ownedPlayerTitles = valorantData.playerTitles + .filter((title: PlayerTitle) => + playerTitleEntitlements.some((e: Entitlement) => e.ItemID === title.uuid), + ) + .sort((a: PlayerTitle, b: PlayerTitle) => + (a.displayName ?? "").localeCompare(b.displayName ?? ""), + ); + + return { + loadout, + selectedPlayerTitles: loadout.playerTitleIds, + ownedPlayerTitles, + }; +} + +export default function PlayerTitlesModal({ + loaderData, + params, +}: Route.ComponentProps) { + const { + loadout, + selectedPlayerTitles: initialSelected, + ownedPlayerTitles, + } = loaderData; + const navigate = useNavigate(); + const revalidator = useRevalidator(); + const [selectedTitles, setSelectedTitles] = + useState(initialSelected); + + const toggleTitle = async (titleId: string) => { + const newSelected = selectedTitles.includes(titleId) + ? selectedTitles.filter((id) => id !== titleId) + : [...selectedTitles, titleId]; + + setSelectedTitles(newSelected); + + const newLoadout: Loadout = { + ...loadout, + playerTitleIds: newSelected, + }; + + await api.updateLoadout(newLoadout); + revalidator.revalidate(); + }; + + return ( + { + if (!open) navigate(`/loadouts/${params.loadoutId}`); + }} + > + + + +
+ + Select Player Titles + + +
+
+
+ {ownedPlayerTitles.map((title: PlayerTitle) => ( + + ))} +
+
+
+
+
+
+ ); +} diff --git a/src/routes/app/loadouts/weapon-new.tsx b/src/routes/app/loadouts/weapon-new.tsx new file mode 100644 index 0000000..8cb3a6f --- /dev/null +++ b/src/routes/app/loadouts/weapon-new.tsx @@ -0,0 +1,454 @@ +import { useReducer } from "react"; +import { + Dialog, + DialogTrigger, + Heading, + Modal, + ModalOverlay, +} from "react-aria-components"; +import { redirect, useNavigate } from "react-router"; +import invariant from "tiny-invariant"; +import type { Loadout } from "~/apiClient"; +import * as api from "~/apiClient"; +import { + type Buddy, + type BuddyLevel, + type Entitlement, + entitlementTypeToIdMap, + type Skin, + type SkinChroma, + type SkinLevel, +} from "~/types"; +import { getValorantData } from "~/valorant-data"; +import type { Route } from "./+types/weapon-new"; + +interface OwnedSkin { + id: string; + name: string; + displayIcon: string; + chromas: Array<{ + uuid: string; + displayName: string; + displayIcon: string; + fullRender: string; + }>; + levels: Array<{ + uuid: string; + displayName: string; + displayIcon: string; + }>; +} + +type OwnedBuddy = { + buddyId: string; + levelId: string; + displayName: string; + displayIcon: string; +}; + +export async function clientLoader({ params }: Route.ClientLoaderArgs) { + const { loadoutId, weaponId } = params; + if (!loadoutId || !weaponId) throw new Error("Missing params"); + + const [valorantData, userConfig, entitlementsData] = await Promise.all([ + getValorantData(), + api.getUserConfig(), + api.getEntitlements(), + ]); + + const loadout = userConfig.loadouts.find((l: Loadout) => l.id === loadoutId); + if (!loadout) { + throw new Error("Loadout not found"); + } + + const weapon = valorantData.weapons.find( + (w: { uuid: string }) => w.uuid === weaponId, + ); + if (!weapon) { + throw new Error("Weapon not found"); + } + + const skinChromaType = entitlementsData.EntitlementsByTypes.find( + (e: { ItemTypeID: string }) => + e.ItemTypeID === entitlementTypeToIdMap.skin_chroma, + ); + const skinLevelType = entitlementsData.EntitlementsByTypes.find( + (e: { ItemTypeID: string }) => + e.ItemTypeID === entitlementTypeToIdMap.skin_level, + ); + const buddyType = entitlementsData.EntitlementsByTypes.find( + (e: { ItemTypeID: string }) => + e.ItemTypeID === entitlementTypeToIdMap.buddy, + ); + + const skinChromaEntitlements: Entitlement[] = + skinChromaType?.Entitlements || []; + const skinLevelEntitlements: Entitlement[] = + skinLevelType?.Entitlements || []; + const buddyEntitlements: Entitlement[] = buddyType?.Entitlements || []; + + const ownedSkins = weapon.skins.reduce( + (acc: OwnedSkin[], skin: Skin) => { + const chromas = skin.chromas.filter((chroma: SkinChroma) => + skinChromaEntitlements.some( + (e: Entitlement) => e.ItemID === chroma.uuid, + ), + ); + + const levels = skin.levels.filter((level: SkinLevel) => + skinLevelEntitlements.some((e: Entitlement) => e.ItemID === level.uuid), + ); + + if (chromas.length === 0 && levels.length === 0) { + return acc; + } + + acc.push({ + id: skin.uuid, + name: skin.displayName ?? "", + displayIcon: skin.displayIcon ?? "", + chromas: [skin.chromas[0], ...chromas].map((c) => ({ + uuid: c.uuid, + displayName: c.displayName ?? "", + displayIcon: c.displayIcon ?? "", + fullRender: c.fullRender ?? "", + })), + levels: levels.map((l) => ({ + uuid: l.uuid, + displayName: l.displayName ?? "", + displayIcon: l.displayIcon ?? "", + })), + }); + + return acc; + }, + [], + ); + + const ownedBuddies: OwnedBuddy[] = valorantData.buddies + .flatMap((buddy: Buddy) => + buddy.levels + .map((level: BuddyLevel) => ({ + buddyId: buddy.uuid, + levelId: level.uuid, + displayName: buddy.displayName ?? "", + displayIcon: level.displayIcon ?? "", + })) + .filter((b: OwnedBuddy) => + buddyEntitlements.some((e: Entitlement) => e.ItemID === b.levelId), + ), + ) + .sort((a: OwnedBuddy, b: OwnedBuddy) => + (a.displayName ?? "").localeCompare(b.displayName ?? ""), + ); + + return { weapon, loadout, ownedSkins, ownedBuddies }; +} + +export async function clientAction({ + request, + params, +}: Route.ClientActionArgs) { + const { loadoutId, weaponId } = params; + if (!loadoutId || !weaponId) throw new Error("Missing params"); + + const formData = await request.formData(); + const skinId = formData.get("skinId") as string; + const loadoutJson = formData.get("loadout") as string; + const loadout: Loadout = JSON.parse(loadoutJson); + + const chromaIds: string[] = []; + const levelIds: string[] = []; + const buddies: Record = {}; + + formData.forEach((value, key) => { + if (key.startsWith("chromas[") && value === "on") { + chromaIds.push(key.slice(8, -1)); + } + if (key.startsWith("levels[") && value === "on") { + levelIds.push(key.slice(7, -1)); + } + if (key.startsWith("buddies[") && value === "on") { + const match = key.match(/buddies\[(.+?)\]\[(.+?)\]/); + if (match) { + const [, buddyId, levelId] = match; + if (!buddies[buddyId]) buddies[buddyId] = []; + buddies[buddyId].push(levelId); + } + } + }); + + const ownedSkins: OwnedSkin[] = JSON.parse( + formData.get("ownedSkins") as string, + ); + const skin = ownedSkins.find((s) => s.id === skinId); + invariant(skin, "Skin not found"); + const defaultChroma = skin.chromas[skin.chromas.length - 1].uuid; + const defaultLevel = skin.levels[skin.levels.length - 1]?.uuid; + + const existingWeapon = loadout.weapons[weaponId]; + + const newLoadout: Loadout = { + ...loadout, + weapons: { + ...loadout.weapons, + [weaponId]: { + ...existingWeapon, + templates: [ + ...(existingWeapon?.templates || []), + { + id: crypto.randomUUID(), + skinId, + chromaIds: chromaIds.length ? chromaIds : [defaultChroma], + levelIds: levelIds.length + ? levelIds + : defaultLevel + ? [defaultLevel] + : [], + buddies: Object.entries(buddies).map(([id, lvlIds]) => ({ + id, + levelIds: lvlIds, + })), + }, + ], + }, + }, + }; + + await api.updateLoadout(newLoadout); + return redirect(`/loadouts/${loadoutId}/weapons/${weaponId}`); +} + +type NewSkinAction = { + type: "SET_SELECTED_SKIN"; + payload: OwnedSkin; +}; + +type NewSkinState = + | { mode: "select_skin"; title: string } + | { mode: "select_chroma"; title: string; selectedSkin: OwnedSkin }; + +export default function NewSkinTemplateModal({ + loaderData, + params, +}: Route.ComponentProps) { + const { weapon, loadout, ownedSkins, ownedBuddies } = loaderData; + const loadoutId = params.loadoutId; + const weaponId = params.weaponId; + const navigate = useNavigate(); + + const [state, dispatch] = useReducer( + (_state, action) => { + switch (action.type) { + case "SET_SELECTED_SKIN": + return { + mode: "select_chroma", + title: action.payload.name, + selectedSkin: action.payload, + }; + } + }, + { mode: "select_skin", title: "Select a skin" }, + ); + + const closeUrl = `/loadouts/${loadoutId}/weapons/${weaponId}`; + + return ( + { + if (!open) navigate(closeUrl); + }} + > + + + +
+ + {state.title} + + +
+ {state.mode === "select_skin" && ( +
+ {[...ownedSkins] + .sort((a, b) => (a.name ?? "").localeCompare(b.name ?? "")) + .map((skin) => ( + + ))} +
+ )} + {state.mode === "select_chroma" && ( +
+ + + +
+
+ {state.title +
+

Chromas

+
+ {state.selectedSkin.chromas.map((chroma) => ( +
+ + +
+ ))} +
+

Levels

+
+ {state.selectedSkin.levels.map((level, index, arr) => ( +
+ + +
+ ))} +
+ {weapon.uuid !== "2f59173c-4bed-b6c3-2191-dea9b58be9c7" && ( + <> +

Buddies

+
+ {ownedBuddies.map((buddy: OwnedBuddy) => ( +
+ + +
+ ))} +
+ + )} +
+
+ + +
+
+ )} +
+
+
+
+ ); +} diff --git a/src/routes/app/loadouts/weapon.tsx b/src/routes/app/loadouts/weapon.tsx new file mode 100644 index 0000000..60581ce --- /dev/null +++ b/src/routes/app/loadouts/weapon.tsx @@ -0,0 +1,196 @@ +import { + Dialog, + DialogTrigger, + Heading, + Modal, + ModalOverlay, +} from "react-aria-components"; +import { Link, Outlet, useNavigate, useRevalidator } from "react-router"; +import type { Loadout } from "~/apiClient"; +import * as api from "~/apiClient"; +import { SwitchImage } from "~/components/SwitchImage"; +import type { Skin, SkinChroma } from "~/types"; +import { getValorantData } from "~/valorant-data"; +import type { Route } from "./+types/weapon"; + +export async function clientLoader({ params }: Route.ClientLoaderArgs) { + const { loadoutId, weaponId } = params; + if (!loadoutId || !weaponId) throw new Error("Missing params"); + + const [valorantData, userConfig] = await Promise.all([ + getValorantData(), + api.getUserConfig(), + ]); + + const loadout = userConfig.loadouts.find((l) => l.id === loadoutId); + if (!loadout) { + throw new Error("Loadout not found"); + } + + const weapon = valorantData.weapons.find((w) => w.uuid === weaponId); + if (!weapon) { + throw new Error("Weapon not found"); + } + + const templates = loadout.weapons[weaponId]?.templates || []; + + return { + weaponId, + weapon, + loadout, + templates: templates.map( + (template: { id: string; skinId: string; chromaIds: string[] }) => { + const skin = weapon.skins.find((s: Skin) => s.uuid === template.skinId); + const chromas = + skin?.chromas.filter((c: SkinChroma) => + template.chromaIds.includes(c.uuid), + ) || []; + + return { id: template.id, skin, chromas }; + }, + ), + }; +} + +export default function WeaponTemplatesModal({ + loaderData, + params, +}: Route.ComponentProps) { + const { weaponId, weapon, templates, loadout } = loaderData; + const loadoutId = params.loadoutId; + const navigate = useNavigate(); + const revalidator = useRevalidator(); + + const handleDeleteTemplate = async (templateId: string) => { + const existingWeapon = loadout.weapons[weaponId]; + if (!existingWeapon) return; + + const newTemplates = existingWeapon.templates.filter( + (t: { id: string }) => t.id !== templateId, + ); + + const newLoadout: Loadout = { + ...loadout, + weapons: { + ...loadout.weapons, + [weaponId]: { + ...existingWeapon, + templates: newTemplates, + }, + }, + }; + + await api.updateLoadout(newLoadout); + revalidator.revalidate(); + }; + + return ( + <> + { + if (!open) navigate(`/loadouts/${loadoutId}`); + }} + > + + + +
+ + {weapon.displayName ?? ""} + + +
+
+ {templates.map( + (template: { + id: string; + skin: Skin | undefined; + chromas: SkinChroma[]; + }) => ( +
+
+
+ ({ + src: + (chroma.fullRender ?? "") || + (chroma.displayIcon ?? ""), + alt: chroma.displayName ?? "", + }), + )} + /> +
+

+ {(template.skin?.displayName ?? "") + .split(" ") + .slice(0, -1) + .join(" ")} +

+
+
+ +
+
+ ), + )} + + + + +
+
+
+
+
+ + + ); +} diff --git a/src/types.ts b/src/types.ts new file mode 100644 index 0000000..674ddf8 --- /dev/null +++ b/src/types.ts @@ -0,0 +1,276 @@ +export type WeaponCategory = + | "EEquippableCategory::Sidearm" + | "EEquippableCategory::SMG" + | "EEquippableCategory::Rifle" + | "EEquippableCategory::Sniper" + | "EEquippableCategory::Shotgun" + | "EEquippableCategory::Heavy" + | "EEquippableCategory::Melee"; + +export interface SkinChroma { + uuid: string; + displayName: string; + displayIcon: string | null; + fullRender: string; + swatch: string | null; + streamedVideo: string | null; + assetPath: string; +} + +export interface SkinLevel { + uuid: string; + displayName: string; + levelItem: string | null; + displayIcon: string | null; + streamedVideo: string | null; + assetPath: string; +} + +export interface Skin { + uuid: string; + displayName: string; + themeUuid: string | null; + contentTierUuid: string | null; + displayIcon: string | null; + wallpaper: string | null; + assetPath: string; + chromas: SkinChroma[]; + levels: SkinLevel[]; +} + +export interface Weapon { + uuid: string; + displayName: string; + category: WeaponCategory; + defaultSkinUuid: string; + displayIcon: string; + killStreamIcon: string; + assetPath: string; + skins: Skin[]; +} + +export interface BuddyLevel { + uuid: string; + charmLevel: number; + displayName: string; + displayIcon: string; + assetPath: string; +} + +export interface Buddy { + uuid: string; + displayName: string; + isHiddenIfNotOwned: boolean; + themeUuid: string | null; + displayIcon: string; + assetPath: string; + levels: BuddyLevel[]; +} + +export interface PlayerCard { + uuid: string; + displayName: string; + isHiddenIfNotOwned: boolean; + themeUuid: string | null; + displayIcon: string; + smallArt: string; + wideArt: string; + largeArt: string | null; + assetPath: string; +} + +export interface SprayLevel { + uuid: string; + sprayLevel: number; + displayName: string; + displayIcon: string | null; + assetPath: string; +} + +export interface Spray { + uuid: string; + displayName: string; + category: string | null; + themeUuid: string | null; + displayIcon: string; + fullIcon: string | null; + fullTransparentIcon: string | null; + animationPng: string | null; + animationGif: string | null; + assetPath: string; + levels: SprayLevel[]; +} + +export interface Flex { + uuid: string; + displayName: string; + displayIcon: string; + assetPath: string; +} + +export interface PlayerTitle { + uuid: string; + displayName: string | null; + titleText: string | null; + isHiddenIfNotOwned: boolean; + assetPath: string; +} + +export interface Role { + uuid: string; + displayName: string; + description: string; + displayIcon: string; + assetPath: string; +} + +export interface Ability { + slot: string; + displayName: string; + description: string; + displayIcon: string | null; +} + +export interface Agent { + uuid: string; + displayName: string; + description: string; + developerName: string; + characterTags: string[] | null; + displayIcon: string; + displayIconSmall: string; + bustPortrait: string; + fullPortrait: string; + fullPortraitV2: string; + killfeedPortrait: string; + background: string; + backgroundGradientColors: string[] | null; + assetPath: string; + isFullPortraitRightFacing: boolean; + isPlayableCharacter: boolean; + isAvailableForTest: boolean; + isBaseContent: boolean; + role: Role | null; + abilities: Ability[]; +} + +export type EntitlementTypes = + | "skin_level" + | "skin_chroma" + | "agent" + | "contract_definition" + | "buddy" + | "spray" + | "flex" + | "player_card" + | "player_title"; + +export interface Entitlement { + TypeID: string; + ItemID: string; + InstanceID?: string; +} + +export const entitlementIdToTypeMap: Record = { + "e7c63390-eda7-46e0-bb7a-a6abdacd2433": "skin_level", + "3ad1b2b2-acdb-4524-852f-954a76ddae0a": "skin_chroma", + "01bb38e1-da47-4e6a-9b3d-945fe4655707": "agent", + "f85cb6f7-33e5-4dc8-b609-ec7212301948": "contract_definition", + "dd3bf334-87f3-40bd-b043-682a57a8dc3a": "buddy", + "d5f120f8-ff8c-4aac-92ea-f2b5acbe9475": "spray", + "03a572de-4234-31ed-d344-ababa488f981": "flex", + "3f296c07-64c3-494c-923b-fe692a4fa1bd": "player_card", + "de7caa6b-adf7-4588-bbd1-143831e786c6": "player_title", +}; + +export const entitlementTypeToIdMap: Record = { + skin_level: "e7c63390-eda7-46e0-bb7a-a6abdacd2433", + skin_chroma: "3ad1b2b2-acdb-4524-852f-954a76ddae0a", + agent: "01bb38e1-da47-4e6a-9b3d-945fe4655707", + contract_definition: "f85cb6f7-33e5-4dc8-b609-ec7212301948", + buddy: "dd3bf334-87f3-40bd-b043-682a57a8dc3a", + spray: "d5f120f8-ff8c-4aac-92ea-f2b5acbe9475", + flex: "03a572de-4234-31ed-d344-ababa488f981", + player_card: "3f296c07-64c3-494c-923b-fe692a4fa1bd", + player_title: "de7caa6b-adf7-4588-bbd1-143831e786c6", +}; + +export const categoryNameMap: Record = { + "EEquippableCategory::Sidearm": "sidearms", + "EEquippableCategory::SMG": "smgs", + "EEquippableCategory::Rifle": "rifles", + "EEquippableCategory::Sniper": "sniper rifles", + "EEquippableCategory::Shotgun": "shotguns", + "EEquippableCategory::Heavy": "machine guns", + "EEquippableCategory::Melee": "melee", +}; + +export const categoryCanonicalNameMap: Record = { + "EEquippableCategory::Sidearm": "sidearm", + "EEquippableCategory::SMG": "smg", + "EEquippableCategory::Rifle": "rifle", + "EEquippableCategory::Sniper": "sniper", + "EEquippableCategory::Shotgun": "shotgun", + "EEquippableCategory::Heavy": "heavy", + "EEquippableCategory::Melee": "melee", +}; + +export const sortedWeapons: Record = { + "EEquippableCategory::Sidearm": [ + "classic", + "shorty", + "frenzy", + "ghost", + "bandit", + "sheriff", + ], + "EEquippableCategory::SMG": ["stinger", "spectre"], + "EEquippableCategory::Rifle": ["bulldog", "guardian", "phantom", "vandal"], + "EEquippableCategory::Sniper": ["marshal", "outlaw", "operator"], + "EEquippableCategory::Shotgun": ["bucky", "judge"], + "EEquippableCategory::Heavy": ["ares", "odin"], + "EEquippableCategory::Melee": ["melee"], +}; + +export const weaponUUIDCanonicalNameMap: Record = { + "63e6c2b6-4a8e-869c-3d4c-e38355226584": "odin", + "55d8a0f4-4274-ca67-fe2c-06ab45efdf58": "ares", + "9c82e19d-4575-0200-1a81-3eacf00cf872": "vandal", + "ae3de142-4d85-2547-dd26-4e90bed35cf7": "bulldog", + "ee8e8d15-496b-07ac-e5f6-8fae5d4c7b1a": "phantom", + "ec845bf4-4f79-ddda-a3da-0db3774b2794": "judge", + "910be174-449b-c412-ab22-d0873436b21b": "bucky", + "44d4e95c-4157-0037-81b2-17841bf2e8e3": "frenzy", + "29a0cfab-485b-f5d5-779a-b59f85e204a8": "classic", + "1baa85b4-4c70-1284-64bb-6481dfc3bb4e": "ghost", + "410b2e0b-4ceb-1321-1727-20858f7f3477": "bandit", + "e336c6b8-418d-9340-d77f-7a9e4cfe0702": "sheriff", + "42da8ccc-40d5-affc-beec-15aa47b42eda": "shorty", + "a03b24d3-4319-996d-0f8c-94bbfba1dfc7": "operator", + "4ade7faa-4cf1-8376-95ef-39884480959b": "guardian", + "c4883e50-4494-202c-3ec3-6b8a9284f00b": "marshal", + "5f0aaf7a-4289-3998-d5ff-eb9a5cf7ef5c": "outlaw", + "462080d1-4035-2937-7c09-27aa2a5c27a7": "spectre", + "f7e1b454-4ad4-1063-ec0a-159e56b58941": "stinger", + "2f59173c-4bed-b6c3-2191-dea9b58be9c7": "melee", +}; + +export const weaponCanonicalNameUUIDMap: Record = + Object.entries(weaponUUIDCanonicalNameMap).reduce( + (acc, [key, value]) => { + acc[value] = key; + return acc; + }, + {} as Record, + ); + +export const weaponUuidToIndex = Object.entries(sortedWeapons).reduce( + (acc, [_category, weapons]) => { + const totalAcc = Object.keys(acc).length; + weapons.forEach((weapon, index) => { + acc[weaponCanonicalNameUUIDMap[weapon]] = index + totalAcc; + }); + return acc; + }, + {} as Record, +); diff --git a/src/valorant-data.ts b/src/valorant-data.ts new file mode 100644 index 0000000..46d0923 --- /dev/null +++ b/src/valorant-data.ts @@ -0,0 +1,24 @@ +import { invoke } from "@tauri-apps/api/core"; +import type { + Agent, + Buddy, + Flex, + PlayerCard, + PlayerTitle, + Spray, + Weapon, +} from "./types"; + +export interface ValorantData { + weapons: Weapon[]; + buddies: Buddy[]; + playerCards: PlayerCard[]; + sprays: Spray[]; + playerTitles: PlayerTitle[]; + agents: Agent[]; + flex: Flex[]; +} + +export async function getValorantData(): Promise { + return invoke("get_valorant_data"); +} diff --git a/src/valpal.png b/src/valpal.png new file mode 100644 index 0000000000000000000000000000000000000000..4836ab20c6d2b3a25a4076a603bef6e582de95b9 GIT binary patch literal 637655 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 diff --git a/tailwind.config.ts b/tailwind.config.ts deleted file mode 100644 index 421f823..0000000 --- a/tailwind.config.ts +++ /dev/null @@ -1,12 +0,0 @@ -import type { Config } from 'tailwindcss'; - -export default { - content: ['./app/**/{**,.client,.server}/**/*.{js,jsx,ts,tsx}'], - theme: {}, - plugins: [ - require('tailwind-scrollbar')({ - preferredStrategy: 'pseudoelements', - nocompatible: true, - }), - ], -} satisfies Config; diff --git a/tsconfig.json b/tsconfig.json index cea27d4..ff96009 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,14 +1,31 @@ { - "files": [], - "references": [ - { "path": "./tsconfig.node.json" }, - { "path": "./tsconfig.vite.json" } - ], - "compilerOptions": { - "checkJs": true, - "verbatimModuleSyntax": true, - "skipLibCheck": true, - "strict": true, - "noEmit": true - } + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + "rootDirs": [".", "./.react-router/types"], + "baseUrl": ".", + "paths": { + "~/*": ["./src/*"] + }, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] } diff --git a/tsconfig.node.json b/tsconfig.node.json index 4cf0b2e..42872c5 100644 --- a/tsconfig.node.json +++ b/tsconfig.node.json @@ -1,13 +1,10 @@ { - "extends": "./tsconfig.json", - "include": ["server.ts", "tailwind.config.ts", "vite.config.ts"], "compilerOptions": { "composite": true, - "strict": true, - "types": ["node"], - "lib": ["ES2022"], - "target": "ES2022", - "module": "ES2022", - "moduleResolution": "bundler" - } + "skipLibCheck": true, + "module": "ESNext", + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] } diff --git a/tsconfig.vite.json b/tsconfig.vite.json deleted file mode 100644 index 2675918..0000000 --- a/tsconfig.vite.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "include": [ - ".react-router/types/**/*", - "app/**/*", - "app/**/.server/**/*", - "app/**/.client/**/*", - "server/**/*", - "types.ts" - ], - "compilerOptions": { - "composite": true, - "strict": true, - "lib": ["DOM", "DOM.Iterable", "ES2022"], - "types": ["vite/client"], - "target": "ES2022", - "module": "ES2022", - "moduleResolution": "bundler", - "jsx": "react-jsx", - "baseUrl": ".", - "rootDirs": [".", "./.react-router/types"], - "paths": { - "~/*": ["./app/*"] - }, - "esModuleInterop": true, - "resolveJsonModule": true - } -} diff --git a/types.ts b/types.ts deleted file mode 100644 index d09ecd7..0000000 --- a/types.ts +++ /dev/null @@ -1,521 +0,0 @@ -export enum Regions { - AsiaPacific = 'AP', - Europe = 'EU', - Korea = 'KO', - NorthAmerica = 'NA', - LatinAmerica = 'LATAM', - Brazil = 'BR', -} - -export enum Shards { - NorthAmerica = 'NA', - Europe = 'EU', - AsiaPacific = 'AP', - Korea = 'KR', - PBE = 'PBE', -} - -export const regionToShard: Record = { - [Regions.AsiaPacific]: Shards.AsiaPacific, - [Regions.Europe]: Shards.Europe, - [Regions.Korea]: Shards.Korea, - [Regions.NorthAmerica]: Shards.NorthAmerica, - [Regions.LatinAmerica]: Shards.NorthAmerica, - [Regions.Brazil]: Shards.NorthAmerica, -}; - -export interface AdsStats { - zoomMultiplier: number; - fireRate: number; - runSpeedMultiplier: number; - burstCount: number; - firstBulletAccuracy: number; -} - -export interface DamageRange { - rangeStartMeters: number; - rangeEndMeters: number; - headDamage: number; - bodyDamage: number; - legDamage: number; -} - -export interface WeaponStats { - fireRate: number; - magazineSize: number; - runSpeedMultiplier: number; - equipTimeSeconds: number; - reloadTimeSeconds: number; - firstBulletAccuracy: number; - shotgunPelletCount: number; - wallPenetration: string; - feature: string; - fireMode?: any; - altFireType: string; - adsStats: AdsStats; - altShotgunStats?: any; - airBurstStats?: any; - damageRanges: DamageRange[]; -} - -export interface GridPosition { - row: number; - column: number; -} - -export interface ShopData { - cost: number; - category: string; - categoryText: string; - gridPosition: GridPosition; - canBeTrashed: boolean; - image?: any; - newImage: string; - newImage2?: any; - assetPath: string; -} - -export interface SkinChroma { - uuid: string; - displayName: string; - displayIcon: string; - fullRender: string; - swatch: string; - streamedVideo: string; - assetPath: string; -} - -export interface SkinLevel { - uuid: string; - displayName: string; - levelItem: string; - displayIcon: string; - streamedVideo: string; - assetPath: string; -} - -export interface Skin { - uuid: string; - displayName: string; - themeUuid: string; - contentTierUuid: string; - displayIcon: string; - wallpaper: string; - assetPath: string; - chromas: SkinChroma[]; - levels: SkinLevel[]; -} - -export interface Weapon { - uuid: string; - displayName: string; - category: WeaponCategory; - defaultSkinUuid: string; - displayIcon: string; - killStreamIcon: string; - assetPath: string; - weaponStats: WeaponStats; - shopData: ShopData; - skins: Skin[]; -} - -export interface Entitlement { - TypeID: string; - ItemID: string; - InstanceID: string; -} - -export type WeaponCategory = - | 'EEquippableCategory::Sidearm' - | 'EEquippableCategory::SMG' - | 'EEquippableCategory::Rifle' - | 'EEquippableCategory::Sniper' - | 'EEquippableCategory::Shotgun' - | 'EEquippableCategory::Heavy' - | 'EEquippableCategory::Melee'; - -export interface BuddyLevel { - uuid: string; - charmLevel: number; - displayName: string; - displayIcon: string; - assetPath: string; -} - -export interface Buddy { - uuid: string; - displayName: string; - isHiddenIfNotOwned: boolean; - themeUuid: string; - displayIcon: string; - assetPath: string; - levels: BuddyLevel[]; -} - -export interface Gun { - ID: string; - SkinID: string; - SkinLevelID: string; - ChromaID: string; - CharmInstanceID?: string; - CharmID?: string; - CharmLevelID?: string; - Attachments: any[]; -} - -export interface ActiveExpression { - TypeID: string; - AssetID: string; -} - -export interface Identity { - PlayerCardID: string; - PlayerTitleID: string; - AccountLevel: number; - PreferredLevelBorderID: string; - HideAccountLevel: boolean; -} - -export interface AdsStats { - zoomMultiplier: number; - fireRate: number; - runSpeedMultiplier: number; - burstCount: number; - firstBulletAccuracy: number; -} - -export interface DamageRange { - rangeStartMeters: number; - rangeEndMeters: number; - headDamage: number; - bodyDamage: number; - legDamage: number; -} - -export interface WeaponStats { - fireRate: number; - magazineSize: number; - runSpeedMultiplier: number; - equipTimeSeconds: number; - reloadTimeSeconds: number; - firstBulletAccuracy: number; - shotgunPelletCount: number; - wallPenetration: string; - feature: string; - fireMode?: any; - altFireType: string; - adsStats: AdsStats; - altShotgunStats?: any; - airBurstStats?: any; - damageRanges: DamageRange[]; -} - -export interface GridPosition { - row: number; - column: number; -} - -export interface Entitlement { - TypeID: string; - ItemID: string; - InstanceID: string; -} - -export interface EntitlementsByType { - ItemTypeID: string; - Entitlements: Entitlement[]; -} - -type EntitlementTypes = - | 'skin_level' - | 'skin_chroma' - | 'agent' - | 'contract_definition' - | 'buddy' - | 'spray' - | 'flex' - | 'player_card' - | 'player_title'; - -export const entitlementIdToTypeMap: Record = { - 'e7c63390-eda7-46e0-bb7a-a6abdacd2433': 'skin_level', - '3ad1b2b2-acdb-4524-852f-954a76ddae0a': 'skin_chroma', - '01bb38e1-da47-4e6a-9b3d-945fe4655707': 'agent', - 'f85cb6f7-33e5-4dc8-b609-ec7212301948': 'contract_definition', - 'dd3bf334-87f3-40bd-b043-682a57a8dc3a': 'buddy', - 'd5f120f8-ff8c-4aac-92ea-f2b5acbe9475': 'spray', - '03a572de-4234-31ed-d344-ababa488f981': 'flex', - '3f296c07-64c3-494c-923b-fe692a4fa1bd': 'player_card', - 'de7caa6b-adf7-4588-bbd1-143831e786c6': 'player_title', -}; - -export const entitlementTypeToIdMap: Record = { - skin_level: 'e7c63390-eda7-46e0-bb7a-a6abdacd2433', - skin_chroma: '3ad1b2b2-acdb-4524-852f-954a76ddae0a', - agent: '01bb38e1-da47-4e6a-9b3d-945fe4655707', - contract_definition: 'f85cb6f7-33e5-4dc8-b609-ec7212301948', - buddy: 'dd3bf334-87f3-40bd-b043-682a57a8dc3a', - spray: 'd5f120f8-ff8c-4aac-92ea-f2b5acbe9475', - flex: '03a572de-4234-31ed-d344-ababa488f981', - player_card: '3f296c07-64c3-494c-923b-fe692a4fa1bd', - player_title: 'de7caa6b-adf7-4588-bbd1-143831e786c6', -}; - -export interface ClientPlatformInfo { - platformType: string; - platformOS: string; - platformOSVersion: string; - platformChipset: string; -} - -export interface Session { - subject: string; - cxnState: string; - clientID: string; - clientVersion: string; - loopState: string; - loopStateMetadata: string; - version: number; - lastHeartbeatTime: Date; - expiredTime: Date; - heartbeatIntervalMillis: number; - playtimeNotification: string; - playtimeMinutes: number; - isRestricted: boolean; - userinfoValidTime: Date; - restrictionType: string; - clientPlatformInfo: ClientPlatformInfo; -} - -export interface PregamePlayer { - Subject: string; - MatchID: string; - Version: number; -} - -export interface PlayerIdentity { - Subject: string; - PlayerCardID: string; - PlayerTitleID: string; - AccountLevel: number; - PreferredLevelBorderID: string; - Incognito: boolean; - HideAccountLevel: boolean; -} - -export interface SeasonalBadgeInfo { - SeasonID: string; - NumberOfWins: number; - WinsByTier?: any; - Rank: number; - LeaderboardRank: number; -} - -export interface Player { - Subject: string; - CharacterID: string; - CharacterSelectionState: string; - PregamePlayerState: string; - CompetitiveTier: number; - PlayerIdentity: PlayerIdentity; - SeasonalBadgeInfo: SeasonalBadgeInfo; - IsCaptain: boolean; -} - -export interface Team { - TeamID: string; - Players: Player[]; -} - -export interface PlayerIdentity2 { - Subject: string; - PlayerCardID: string; - PlayerTitleID: string; - AccountLevel: number; - PreferredLevelBorderID: string; - Incognito: boolean; - HideAccountLevel: boolean; -} - -export interface SeasonalBadgeInfo2 { - SeasonID: string; - NumberOfWins: number; - WinsByTier?: any; - Rank: number; - LeaderboardRank: number; -} - -export interface Player2 { - Subject: string; - CharacterID: string; - CharacterSelectionState: string; - PregamePlayerState: string; - CompetitiveTier: number; - PlayerIdentity: PlayerIdentity2; - SeasonalBadgeInfo: SeasonalBadgeInfo2; - IsCaptain: boolean; -} - -export interface AllyTeam { - TeamID: string; - Players: Player2[]; -} - -export interface CastedVotes {} - -export interface PregameMatch { - ID: string; - Version: number; - Teams: Team[]; - AllyTeam: AllyTeam; - EnemyTeam?: any; - ObserverSubjects: any[]; - MatchCoaches: any[]; - EnemyTeamSize: number; - EnemyTeamLockCount: number; - PregameState: string; - LastUpdated: Date; - MapID: string; - MapSelectPool: any[]; - BannedMapIDs: any[]; - CastedVotes: CastedVotes; - MapSelectSteps: any[]; - MapSelectStep: number; - Team1: string; - GamePodID: string; - Mode: string; - VoiceSessionID: string; - MUCName: string; - QueueID: string; - ProvisioningFlowID: string; - IsRanked: boolean; - PhaseTimeRemainingNS: number; - StepTimeRemainingNS: number; - altModesFlagADA: boolean; - TournamentMetadata?: any; - RosterMetadata?: any; -} - -export type EntitlementsByCategory = Record; - -export type ValorantLoadout = { - Guns: Array<{ - ID: string; - SkinID: string; - SkinLevelID: string; - ChromaID: string; - Attachments: Array; - }>; - ActiveExpressions: Array<{ - TypeID: string; - AssetID: string; - }>; - Identity: { - PlayerCardID: string; - PlayerTitleID: string; - AccountLevel: number; - PreferredLevelBorderID: string; - HideAccountLevel: boolean; - }; - Incognito: boolean; -}; - -export type PlayerCard = { - uuid: string; - displayName: string; - isHiddenIfNotOwned: boolean; - themeUuid: string; - displayIcon: string; - smallArt: string; - wideArt: string; - largeArt: string; - assetPath: string; -}; - -export type SprayLevel = { - uuid: string; - sprayLevel: number; - displayName: string; - displayIcon: string; - assetPath: string; -}; - -export type Spray = { - uuid: string; - displayName: string; - category: string; - themeUuid: string; - displayIcon: string; - fullIcon: string; - fullTransparentIcon: string; - animationPng: string; - animationGif: string; - assetPath: string; - levels: SprayLevel[]; -}; - -export type Flex = { - uuid: string; - displayName: string; - displayIcon: string; - assetPath: string; -}; - -export type PlayerTitle = { - uuid: string; - displayName: string; - titleText: string; - isHiddenIfNotOwned: boolean; - assetPath: string; -}; - -export type Role = { - uuid: string; - displayName: string; - description: string; - displayIcon: string; - assetPath: string; -}; - -export type Ability = { - slot: string; - displayName: string; - description: string; - displayIcon: string; -}; - -export type MediaList = { - id: number; - wwise: string; - wave: string; -}; - -export type VoiceLine = { - minDuration: number; - maxDuration: number; - mediaList: MediaList[]; -}; - -export type Agent = { - uuid: string; - displayName: string; - description: string; - developerName: string; - characterTags: string[]; - displayIcon: string; - displayIconSmall: string; - bustPortrait: string; - fullPortrait: string; - fullPortraitV2: string; - killfeedPortrait: string; - background: string; - backgroundGradientColors: string[]; - assetPath: string; - isFullPortraitRightFacing: boolean; - isPlayableCharacter: boolean; - isAvailableForTest: boolean; - isBaseContent: boolean; - role: Role; - abilities: Ability[]; - voiceLine: VoiceLine; -}; diff --git a/vite.config.ts b/vite.config.ts index b1adcd5..85695e3 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,21 +1,34 @@ import { reactRouter } from "@react-router/dev/vite"; -import autoprefixer from "autoprefixer"; -import tailwindcss from "tailwindcss"; +import tailwindcss from "@tailwindcss/vite"; import { defineConfig } from "vite"; import tsconfigPaths from "vite-tsconfig-paths"; -export default defineConfig(({ isSsrBuild }) => ({ - build: { - rollupOptions: isSsrBuild - ? { - input: "./server/app.ts", - } - : undefined, - }, - css: { - postcss: { - plugins: [tailwindcss, autoprefixer], - }, - }, - plugins: [reactRouter(), tsconfigPaths()], +// @ts-expect-error process is a nodejs global +const host = process.env.TAURI_DEV_HOST; + +// https://vite.dev/config/ +export default defineConfig(async () => ({ + plugins: [tailwindcss(), reactRouter(), tsconfigPaths()], + + // Vite options tailored for Tauri development and only applied in `tauri dev` or `tauri build` + // + // 1. prevent Vite from obscuring rust errors + clearScreen: false, + // 2. tauri expects a fixed port, fail if that port is not available + server: { + port: 1420, + strictPort: true, + host: host || false, + hmr: host + ? { + protocol: "ws", + host, + port: 1421, + } + : undefined, + watch: { + // 3. tell Vite to ignore watching `src-tauri` + ignored: ["**/src-tauri/**"], + }, + }, }));

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%0A6(@5) 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square310x310Logo.png b/src-tauri/icons/Square310x310Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f9bc04839491e66c07b16ab03743c0c53b4109cc GIT binary patch literal 8591 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 JPDHLkV1lm|RXG3v literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square71x71Logo.png b/src-tauri/icons/Square71x71Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..63440d7984936a9caa89275928d8dce97e4d033b GIT binary patch literal 2011 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∓t$dRJGIadE?vc zx9WD#yZ&gK=iVbgW=x8$s!dnTwR z$LA6KX5PB94SQsTt@_0w)Wp*>DZooc+yn+wArY_n0v(5fU_{T9ilTv24DWI$xV`nc z3{+|u-7xq9YO*)nq&|JG$+uorM!36j`Y_YDq7b@e;EE`e_kBn+VeD__Tpy`5H};b8 zRl=EXaa0(9Hf_7B3FT5hA>o%w4iFCnvaX(!)Em=eMd*2R;xj*67fnoKFGCuh8wdTk zJU$%WZS+#OOBT>vfumpIf@qCCyAu5Sng<@)D@i~a<+9Fl)S9-Ht1*o<$A3(PJoxe# zwee^q>8J&|+KY>%tnSK1r_9$)rHMkq4qA;{5)nhIz&lAFKGQ-^W4D-MG4%z&s504giKVGtnX*-@y{u^)!Ca)GbmhT#Kgf*P!v zb&~2|&D66J&D&xpn@0t{dVG%uvL4|!at=KB{%h>IFcI7?0XH7?oCWF(8)~*tEt%Iq z3#PbMs{}U~nBbXz?lhKHsp^P@HGZd2;!@Q-^@X}wp`UsZ`Up<9OA0;h14Pme)lJ9CQR9oDm<~vvW!%9C9n;!y{&=Q^l{eXx8X3O{l}Yddf$f!uZMP z8W8CbIatsQ%(2v;T-iWXu?8OGmC+5ULb9L~XBuvrdy@M3hNdwPY2IOfz94+p>WDv` zf;xTR?o5D12Pnh!^T_A7hs~+j5KAUsFqgY|EDwM^ur>SM+J}Vgc9ZIL{VF*2{T;Vk zmb@u{8W7}RPh%16;Ywm0IaVV*OH%r-JvMmLJ4H`;faq{4;oDhz?Xt*0^z76*+6511 zalExG1Q}-Y&H3edzkkSdd+H4!ed(@%M*G@IC{TCM@j3i-2?0vbuwPo`xPrlIY;hwj z<0Z?-S;f(<#mIe*;X-qTA}+lD<&Y~5^A6w4QddrePX69G zTQ^F`TcXefc_cmIt&}01K%4CSzh7H;;U6>;#xt}THDa{I_OE?vASq=H zt8>y%5W_1KEmSu4kLK<)`Gct5EyY3sb%C*|ZGVhlOVbeV~h)3A9lIQkd^lOz$t=Ltmo8ga4=s-)5 zD2Y8$H)=S8#LkY{hNVQ&}g5#RH%qCRR;h%7eG z5)p<%pi5e0{J>IC2&3WPZ0Fc|?GeF4)bUWIT9za3ZH&b~axrIv9J>zg8Vx6NjIch& zmu(?9UX{ z8OQVBu<3MEN5F6#jHzF!qX)rOqdCl)G(|WO3)}vE3Xp-56hvY}_h*gT0X{hI89Hhk zE+jok@GYOb$KPtgoSXKd)G zPTbudXYmXC$itH9Z=2ax2nf!%O`}d>-fwQZZ zas7L2#C@h~dV#@=6={aVZ;K_St~#+xmL{UxdFZ*iZ3exc_rAq2^2EH?k}R1dwM{Ud zxq%bSGG^WOYFrBtgz)y27Sp*`264>AKpEHQDy zqA&r|(Frqr5w+YUF1oJJ>bL&od-Zhp9XCl|fQ^S~`w}jThG;hQ@gcKx2$k)$Ebu9W z6o}3&f$mP4IP`1=_%&;?@~}B^KVKKUC%;E}Bb!Q8)FAzw<<)#g)Ve=ngxEpgmXg&V z?2{}Pc^Z&&c?czfkP$5o!5G0}2x~W1pjTpG`~Tlv#2!c!YN+lbFxNyOHd=UG+=3w_ zublxk+IP9o0<;qCevC!@<9-G}c-m4F8p98JwUMBWh;ttAqP$@Tz~wSi03O+HZAgrC?JJbEDez&8C0 zlAR=R34+-3vTfkIUg)Y++d>(|t_$rwsptG01W~enA*0hPq;bZEA^S0G|6KiH2jSUV zpKRnGC?QT`)=|tKm|^$V3${pOR+_J#Kr-+wBhkw3VdKD=O4h`%((EpQaQS;zJ>k0Y6wqslbamifF zR}G5!BukwvOhLW`4cZyg6RF3rkw(Y^q5L1e#+RsS4K-NvDo~0L2d$GroI?5VmQqTd z0Eo0>9=adrHV(jdieYh(t_>D^0A=klCF3cbtYYMN5l)94yef#xmt1wa_&u5V_EFFU z1+VVtuD}TLcK$HqP|V~G+E$sh`aI($GJpBCz&Y+gSB+aJ3gz(r_v!i6V`6J!YK0X% z`^h$n^h{Y6`v+la8Q;32$H(;9cWyV3Nj1!+d!CED0(gkhe7!?I`AAwx0_HcoaYsP* zGCc6D8lW4=Zom(CZ#%RGVl!NT=J;Mg}#S4E`EpKlo~A7Vm7QbLsW9XDTl1P8X@z; zpACB9JIgW+GfAop*XjW*A@hOTw1=;2Vr;ty@9nf5R2)P(Kup_6y18H)K)L=MkW*{o zqmm^f(^+^!!>n7{>~NhaHhh?c9>M)r!w?{-Kr4%IMU+NWYv_DqH?_N?Tb6=natf`& zh#eZdhsqB4-~N%ubmyhyw~dzPyfDJ~+rBvQlGi5L0YydWbysJb^-0|e7p_!vC;W|p zEFRp}f>jfxd1d@nTUlko=A#rVh+Hhswy+B|nU#LGZ;na`EPUvz5`lc;=qaav(GTRP zzhX;x-PV--K#W;@m%76w`8JdO8r0M%)imA^BD1bKbrAW%5ShomdRYzK1QmqAMF9b} z264Pnb|P$Y-yrQw2@UbCP^+^Z%7>HlzYbJU0v7nX&1=HY54NiNC8INJ@_VVs8HGDr zbV$X`%b}q$&-Ma1{HcMqq!GOt<0ox$y9-fP>C(V)M(FLlSniJJSDxPxfM=6RlawT{ zXYlGL_Nc;`RiS8BD{Y@PG0@S&v8IBu?@3E8e)vc`@NFx5U8?wN{d#PT(GDA=m4%d; zf-7oeyr9U~z`@*U5)DIFOA?5R<@BZFS|*G)Q;Ob@K1?4!V!kU~8&3TXw1I3D?CVz@ z+FxzVCqiCnrSK2##?q~#Xvwn2x&H3nMS8&QJzW?WZ5ZB20~d>B^%G&Gi5$`8Pk#H z$bc~*4<04-u4Nebs~NGP>vGvd?mJM@Cly0Ua-rrzZr#{jUc=9G@~j+SYi2LWc3>XQ znRsWae3v&lM$&#IK%N~&H}vX@@a$tTt~Q@oAZt{ba7P@JH2`RQfX2cOixk=M5+cii z0gEr>5DELrMt4Gf^n0+jIC{k-aCK9jva!pkwwt!fMSMpRhalsk6j|c@t$@Ho?2tJ7 zcqN0Oh#6njN1O5tG&QS75*K->%$0}-2oFjY=Gn9!L#rx6p11U=7W`DuS<9z zq^s+}cm>Z5xsQD_E867gq=m$`@APfN^{DXfw`9t08DI*^KOY{+pYo%HZmHsTy33-v zAAKGiou28R+Z__hZ!`*Y}s{m!|)?FA^>OQp{rS zv=hq(!J<~*X0LRIdwxklFVIn6=qZWw`Q{L4C<=L-_mvV?F4!QzCeDr;<%BOMwRYjqBHLE;aoRW-g8%xXWqI1GtS`(&sF z-+5H~OTtSS3F4`dSfv_CDy-0Lh}Vs#vT4To7J)DU>B=;q>_z}lW-xZN2+`Uc?kyto z+3DWfJyke9e9K2F>Za7QD%h(39Tg=rWEu6wO`KlNd1`#QIphq1z2L&oim(^bnowjh zRa*f(eb0|qeBFKd-}$G0G4q>0HSRSxQ>g2PpQ=v$KNWE_-y789JKZEJ+jfHw~-Xb2bf_x*1*S9&rw7lt-ypnPW`tM@aNbuWJ7`OEMXZ~hqb0a znpg(Z;A^kRTz%{*KpZSFyAC>&TzkS(&V#-L0Q}7cv$+9tkBI?wk$EntXh&}1-{Jv# z1ZS6oY@M?;I*SYFkAKz7*Z`;Cx$@n&yq~{rqK?q4_;noWY_u>}v3NN4VFLawsd22e z0B&fB1iDK=ASrDGS==bieF$!w7~cO=a$)H5C1j^C-BBpp3)(Ci0N>{VxWEaI!0zK@ z(vN=d%I=hVvF(^h$<=qqF(2Y?nc?dkZ?JU+!wB&dya2t_3H1~&7`s@Yqqs+@D8;35 z57C3nt(wF>9q5gVP{O1}=(V$^IL)mEhR^Ej(#j?<(?=?c@W2 zS3M|e=^hSh0O|5tYwCk*bd31?<@Sa1+r}CTx;f14ecwohucvQSA%@PL{C5WFptzld zmU&Mqmb&@*9ajho6+*XJ`esq+azQcDo>nIEvUt2wB+>u1_8HmegxaQtDDG zE^sz+0XMlf9amxC1GJH<@QaWlZdDlMFR{x+m>uu|2INv6(*}#yHi zwRB?0c>ggB=Z%BjUY+$IH9}rO2yNIknDimcX6Mp=sQK3j*sfNdwkS|SgQ>w4g|c&` z#)V!r{lz2ce{9gBQ^7<$fh+akbD<3}LYIr2$7dM?y`OWuB(J2x48z9$vBT|C5=DF! z)4$NnpFZ~If>(M_r24#H7h5K#1g80EaUMes-C+-oyKjeyk9z!i_a<{om1cn~byBZB zQ~ye9etyay4Uy^1@`$>U#{}>p+DO4#x1KPXQSiro*T7I%==i+5+{4x^a)J_yoBpxx zPaqed5`pKT&7Olmfly#ByvbS+e*u+257WnWS*I`uUc*1n|1l5iwie#5cnS#|^fvO90mh5vrN zrlDuSm);YE%b<3bojo%+ZrG9@?BqB#=;2pXope{KEEqHR7{4-F%;COl2nzH|?;Da0CqzE7D0E zrKjE)FupBqDKx{}LrPJm9AmICFlShkEou8yll293_re-0C23G(mA2Wo@w_q6yhse{ z$C`p)dEvOM=<8D}4fln&l0RUn{>=(OfQ^8~&e@{FM)zDPUWJkOYG6)D5B>T7(CO>I z2XgBXt)~wE;g3!;(|qEJe!907dW4;)jlZb9e01@$h!d0X^b;=PL{VGYS%C3GF=qPS z)$Ur;#yBCb&Iu#L@ z|6a$nG7HA`I-bs%RY1PFdX)5^wir^Ej|=0m#s8k-vaG7AO~pSw8N=9OVxW}@NPxx= z(%{K##^(eQ;oi3gRE-@^xDS~o{H>fKjHemq4ulELA;r|ix{iJm5ieOg@Ir@tveq*a>~PD~Vr!doF2m?J64g3`{MeF@FqOcDM%~SP z&6ruH3$7Yk)h7N3k%EvP8{WDHutF*3a}G&dC_s(o4s+{<`g#IKC^!zBGCL}y#0i>0 zGw6xiv9~V~3|T~#GF2_Lav&qG_3Oly*yltV?r~k9Mu5EDKC=D<{1)IX;~1L%nAy8F zZ< zbs_3Jk3}R@Rf;43biBfLyS$OLFIS}e6`&@|Z1zxHcg)HAtRcmfYAmplZ zDt%L7Hp#p*6*Nc1Xn+YY@ZQ0J|NE8K@T;X zkdk_b1vU|bai%u;BF`VgIMdgPv}gugMF6iSB>**LM?(T^s9@!23szn#(e|xkC_`P- z;^}eCYN;JtaY~}nvR4=#kc^9cU2h33I3>Q607kn#HfL+96KGdxeiwUvA_d2QmHtWy z=mzB*s?*p$%F6aXwhvbea2+#3Bdf~k}%?5eM8-FqA-De%-A+M9C zNinC4dX-(#B{D7fKr7qo@2jX6R=;%k=Y=D7^LlDht$D^$r zf7@Qee9Cg?arg_YwPR4wTYd3*7O>4XeU;_|&*js697))y@q3Y5-Bx2{11*|J`^3RT z+X*L&U%K>JdMtKH^fj?R#enM%>8ZoUVZYkL#lamiZ|PrpYM8S2V;?-T9r}psJ9oMv11d~M zX6&b!+k4LLs`J&JzwC1Ws1SZ#z`t5zRezc`{w`~{P!!) z5v+BROI2wl#2P$@SDXMS+7-NObUsq<0fP{|W zP)84se0uI3prYQSqJ;?wqzgvQjYN;}Z(dfbH(MN=NYdQf8?nGK>;8%vD6yR!8aG|> zv@rt9NZi%s+P$bxg&E>+f;7QH;4WmKT5Nt3+hNK>G_UwOe=`y1dFMfT{7|OQpormV z=GN#4VO8v+Ai&2?Fao&C{*!@#{YF;!b;nbb0c7TWQEg%Y4=|g2_we%eN6XmiKuF73 z2&vw93TG?(_`~8H^i3)A*Nql62|rgkSYs^k)5lwSugTRY%j07|?(REjQTD6?kFD4@ zPba_kP$zp1Vp?ulU;|vsFggtP6W`|R=~6ghA@v&uqM}4Nd$H~G1VFGbpQP?gP;gBv zG1RWILIvf>HGK-pGS;)czs0$+m(gu*c*{)uWhL&5 z1rs75L!n@le)em$3}b;;V;i~k)#Vp!wDHt0NZPAFeeqRP#blp+5+6H~jw|Fh?pJ$$ zBeo;~vCHR0kEx+)Srf*p=+X+77JqMz%`{UXe%f-)}jreB~7L6+^*0ekKroQUlBuCu^d zGn@I)5}7<4penxH1fD!=OKv%M&O`X?w-Te6*Npy&qt+%nA%S*;a+sv!m8$-V3zvVJ z3wIw8P?md6;oUn^nbwr(Xx&9uB=|6@==bfTFVy`j<*Yex?m;PF0#CP%$2cBjMhy4R zY(w)~XWVLe5Xc0u>lcbep|^J)^iTeT`x{!O9>~PA+1CFM;4>^~6g|s!t;Zu6%mIWL z;3Ql`QB13yMLmO#L@1Z#Iie}}osRV~{vNEdb_(T-uxojTK07%05ZCn^x4%7ZUn&CfrF?QMA2 z?|Gcosc`4Zvo*kOKCA-y*C<2U_Is%{x#V|J6)ROfaj}tDfBHg>apU6F5JUPT^UMXc z8C}~m)P#o;{ZYc4vB)_Q%F%&vHAhK)sRb*@d&>W9%c*aqa2@;${DlXinFup-!MWx{G51^j+sdW2Q3=Xhq>xq8fI~E;k0r6{n){k zPhgtn^n41(5VPqm8{(2R6g1oc*x0E*DqVS5%MT75?29`6>aY0KyZBAig$#6V6_WOk zyP~Y0S8Ii>*=Uc4HAL-3m(z$2{BW7KTJE#Gg!!w7xb1IFh-C z*4_Q>Nk=qoOt5nln@A#LQqe;{|8^1ls~3^^i-7ae6iForqVolJ?W~PVyL%$jJ(!$~ zj*=_zE9*%D;FW|`(lbq=B^cs;>@e_#Wn2{-?jnRWf&MS^j3(>X<51h?u2}Z-Ls2(O zta#O#G4#C8M40h!msMQT=0d;w=~X-N5c{$zkvT$-7a;_hAuGuN6`~u>4J4msXV)ET zbDBFs0qbI`=LQ`Y)5QDV+E`gh;#l?R@vz&N6MR9zam*tR)>#{qCue*-U3|sPBwo2T4x|lhNnE%jr zd#G!84y0S3CTX*Qg_|u1_AGfI*BD}2U}bu3wpi|adhe#_^q z&44Y=W1)3&H`9;yP_Oc5D0)&|U8muPIE-*jZ1taT-P6I?;Mp!n!l|ei7@zv?16g(YFZsSjgX{s(%4@il{r}5dpoFZ@sztr#yi6 z!bgbBRQv1{In@EUgWo;)ke$~AX|>bEoNN=X;w$6|)!APtLx9zMRt(CK?IP`as*uLU zaw}$I<@_MAOBa` z2Bdl1NaqULrF;))C8Es`(nt6Q$=fTDAMStEoH&(StvG86X|zq5WCQ2nkPeWT5GY<{*3vDg}?ySgop^}$kv4$Tuihu^h&MuSqmaMozb zF0Y*F3<7XGdpOTVohz zT$-zXg#0BWX&pH~m;-BB=u4Txlz5*3?)J22x+eatXD~Wt8G!LQysFJvR?(>FuWcjX ziUdP?K)1BMpLxSA>$LX>%#iUcWlfTKwYOF26_&k~HZ!Tg<5kjq$}MLIKnRcrs^oF- zmkfSKx_1ywVolf3Jd26Eep2ZNAEr=a%!GPXU;Z`5T^h~tI#Cw$usz!IgE}22Z3#$o zwGL;syU}g}oEmF!e1B&rMTd?SYr52sT#eb1S9L6?NaCk_7})ow#BxjrjM<)U86BO1 zwizK@7sMymSW8!)b)jdplZpOd6qNGaIspcKfg{9*9q{R7eVEd9f}G@=V60}rNh9EK z95LeT-J$(H>u;xd!jFCk-#Dwm>Jf13)o`_NH~3G!9s7^>5A*lG@4S`Sai0MvrW>zd zw|?CrxZbB`VqHa%mWi(}a{1HZXf1{3pdv#SWYt38)nJjIq@7aRsRn{|uGeoP*z+a- zyNv{?%}YUmq+nonN)sfX(1Q5%6wqV*{>FDpV0F+8_6R{+#SZ|2@1elWkflfK4t!#C zp{S{U@sGefg_O@%<4FIs{qxhlR}jDEvJ0tD%oT7wu5svI0WVusy`O}+*ak)iNbSR` zO10nHV=mDEaO;qi@hdELet9wVzU~K7W?M7kP#e;Z_AlZ$zre!@nc#EZJzD{Qm4>-- z!&~6&tM>^m;Eg6kdSpIBA?y(SwcUCk(5BpVKNIEsf%6kg>XbfyNe*on+DvjR}3idg^aoxMn{v=b$Rpp$+( zyVO9Rb<%ej4%rZq3edzhqe!Br03Cg)QNl^{SfhQaxYE*jBwT=x;5G0t&gDSOy*=X} zrQY5$6Sj0JA&SoAxZoYe#h#$PAoTOEc6`cJ2&71t!@?m)!kU#;<&PEL55Dqv2&5yJ(qZ~NpKdDfPnNO^~MZQfKoATdvB}+sHeS6_+CGw$`%6Fiy4xP>jI4y0x{~t%! z9Z%K&|Igj_UYVB=k&&5jFB)cKXWo*^%0;r`-b+PfluhOOgzUY=y~;=f*<{=hvSqJ( zfA{E!fy4QpUj`WNvEFfF^fUOXkzVoB8b=RMv?DOm4 zH+j61c#g{PYEJpb~tpANn%782DQ~naray^BQ4GRY6dzRzvInDEgLTOI*sKLU*@B;U?wVzM9(z}Ic;yx+(E6>sD092}_~syrUxU0Wn#2UT zWrDu>?@w6vp11ars@i3R$Zhx7@7U_*?JN0;O{TnbTWe|kW$)8=k{9W%Ty>NR+QrV(0Of`QVaI-S!v@}p;Rp>+k${LDa9 zN(eTx831#VDePv1MtOp@@;H$EqhEw0BIg@}(lAKM4p88O9+zJ4pJ{5x5rJiPZUPV|Fxdc^gU!?B?2Ueract^A!0yO-u-?u`BZpZ;@1i*w~=ct&AO zO%x_B7p>G`75>p(Kx8)Kh3T&edgTSkaHt(eYY?2#sr6oa?>?U`=@vF?f>xh4{7Qo~Kfx zo!V-UJDuT6%>`0|dSq9txGRYXZ>J9iYu+~SuqVBdupj-Y*vp5%B>8x&fIaY*@|1X^ zCLZ%v^gb_O0_@VfYFQoOg_*Bcc#~eMOyTPF<6pjgnVAJtUHp`te<_I;-}T*7YvIiP zQzo?tS3h<_?T{YUu<^9X9=}_8zJH+I#qFwe=s_8E-?)G#9)}-V^(4oWZ-Kt2G+v7= zZrr+dnU>GTzMKkvIGYw#k1?kmmv)(7kdN${!Bgvf!>fxGPWZfL#e{@NkEi&DVpnEd z0ZLXQL7M9+BI_~l2wh0ghT%)oG-zZ#vBzLd9!OvqTYq}vSN90WOYMp+lT%8}Yo^w6CSnK}F7nh3~a93yrPUH4?N@Gi8s{~evoA$s;6ZVo;s-wHz8 zw$Y-8C*CFg5(Qb$nXhqa@~|tJed$<@aJ9N zTBXyD$?~`firlqeO`f8S8-(QqIJdHS|wbR8omZv*`3e<%`;qwYesj};(A~lc`(6yLA8T~r#f z)v9-vV5sUIA+6?&&HH8Qz2XeNqPg%`s|jK0^=eRRPLL zM=)qnq?$N`aYz}-@=J;@I;_lx^Qswb>;jU2l0p#b*{=W_XFHOxvRPb=l-V24OX2X7 zOI*Me%uPuo0@N$()&c@A%>}B8U@PwsRUbTB8jT)8n}YN7_=kA<^}mz9V9*~EvJQ(% z=>F5^pLXe4$&v4!1q#I4{9uJea%8rlm_yowjGg;+z>trN5bZLN?!F0L)*3p>SHSUn zl+s70GIf31(Zo)-g}HFIH4N`(jo4t$J*H|MjvA(-wR^(So0WfWOuDOu26l}buW7lc zb-AmFh+%m(j@Gj&Brcjln3?Jf4kcXZu@0)vsS~xnXhggMRIGep<*RqWZ&+bc5C-5_ zBLQ!Fd%@9xfk^1?)md=ih9thg)%$125xAnl6xEqGogsNt_Dql@Yx$$ahVBEDCorR>l#nnHhG^7nin5mDM!wu6rHbRUqyKHL} zbt*XuvQw}RR;aAsa73&qd3`F)Uh2BX`iRf{aH9I~G+pOc+QgJMcZw|0W;&#%<;FF+ z@-_BNlH4_LVH{eN=*^j%xo{;-lE?WC(Do@o;6X!a?isFs8vzrj=>$f?e0H~uFeKe# zDoBcz5F!6f(r4PqC;>so+SvMw-~;)}0-q5?zW{Ym%zqYAORQCdAtklJu*GLWB}x~} zvzzY;F&cH;-h6UX8+gPcysSp4=n13Uv6}w%?`uxIdt}orx>kV0xd0G@Y}gxN*6rh# zh42uF6gZYqpXbZ%GaA&~j@&bbFFLzB=E33RkEhhdE&3k@1Rkx~tMd___X*0x;Bw@k zcWWaGYe?fA+UMF>)KvMassElMf*pjAbzC!VSi_zRvi;s5`hf`2<<@;*awm|t%Dod< z*y2w%aDSf>}ET* zAj11!_ePUEA;Sj0##o+`!6fj_zY1}`ic_0Seua>mp{o)14Ic+*XD(ccVkTfhqJ}LZnv#GU% z-uckKUpHv%BP7xp*gJM}Wa@e;h-25a5&7jmll({g1!uvUKG^91i8`=kB=QC5i5m$2 z6>rAb48>x_MuiQ(GHm_`lOet@Kp$j0d-%~E-^^_3c=ZF6*3(BZPGR|O3|0^0pcF_0 zRl0zsEM>D`YXZdzo?nKko@H90v=={Hy1!gf?FUt0xMwPY_lugyKUj)*3D|LC1|2{t zafrs%zoMH}QUK{re|HDn1k`9h{b zg$8)KqBzp+m~3Tz8Ixwz*mQ#MS)RU^@@}sp7|b{VhzZ+oUWk4VBXnu=Ulr8jz}YER z3F2BucHuxePzJ%QWNJp@+q2KYHOY#=1FnPaAMb}8VqFp2CryE-j;_=Yr`@~%3#E?0 z$VvzE6mxzTI>GEzbu&?pVMZ}ms|i^xTWywf@SH8FO}N8yM_zni1F26s5--5!E}2MkAQGozuU zo#;CBMi0R#NWmcpUnO9uKoIu=dCM7MZcjbpm8dFm^%U1hex8E{TgF1;r9k6gr4M;d zXa?}h%uPQXpn1l^n3%AWyKrLpNJpB?mLPQ)PmbUY`f76$~|KSv1*2o6ClBnA9O?D0?g^1DD8+bMgg4D@us z09?rnM1_98iY$xj_Ok4nt5^z?ol4Bkxu30a*$%kRT6oPC{2hv6Git(fK)(>Q>;OYg z-Zz$F$a{|m%ygD2W+QJshi{ceT%ae=+w!r*77Vk*?m{9=sd`(}rfq(4`0M&qX%8wD zYOxmn?sa?cY>tK~u+OkW(2Yd^YwsSPxf?*uccAVE13Z;+CwHT zRWpEL$K49>(cNmu(;ZUoCCw4+`M+6AnV<{?mYMWF>+r_>0s5W);Vu|U-)vG3_JYYC zzjM@D%;e?!$Ou$kb-$ABthv2I(F0}SE+&qLjEG6`Tgs)Ykmkje^c1ZIRWlZ!D+ zT2tCb=>f-6LpsxJWHoUHA{$eC$ZHgN7eRLM!=OpSuXI)&T`P(2G;)UsjfU!A>n+`*Z*DO0UoneM%4e=;1Q~c$brTFiB^l`B;^npC!b-X{LymO`;os_}} zv^^32!|oBTlpa8(68lImJ_Xr=rt)~3Vlvw-N7!{&0|gH5yRl+zG-6mAm-|w+=3 zfYn*_zwAL(JtRZi0}jbG_IU}1gL^WpRbtaz98r-TPF^Jpv-W_3n$k6n2j`Le&=^aa zy+1)7;*^grWjuaFG85eLb)OL_KI)&T*^iwz@TA^1N>nW6ZlJT?lA9w$tDZ$Vg#Y0vu2YoaFh)*Rb+=?Du~T8guWathw+6RHq=>s2(UC zeW9XGxJl>J<{UVw$sO@9qI=<&y6 z+ zTNz(No~R0ah?AnMhyRUUFafi_f-Eyt1|GvUyI-c4+_)NUZ5fNH2x=ZuPwfftxpveS zxpB1)MA306N9~A~z%D=-mDYg_rS1_}lJrD~JgoJ>W)=Ir-0@%l2|Mj6Spw__rj;A5 zwp&w<%^9Imu&d(S%*`ava4LO4gMJki)b9EfV#+#yOHd34v?5Ta^pG9o3e@J7c(~Ys z;685uqU}M#{2Uz&JQp9#o+>foiKGlEVoMtAvbk}9sF#hv?Y$fgX$;@VS13|KHV|k; zq7^1wml*_Bco^^79t|aLXXbLe1 zn^rM(r2VxYk(pAV3v`UPAh?V`@Ca?+n?FP}SUnf@d`e)w=eZaK4A}TyxMl*9Uqh8- z1d%f846_SX*3=N1389h{8&ZDk zb=@2CT#`5T%zh3|JSXd@|Lt-@jNN_NSG0H$^995PXW46iM!*ZBzul&Tu9njsH%4#H zprpW$G9#|3*lbW#o`2N+-Qw^A$Bj5S%y}k6RRUgI7Pcfudjl^l9MTO%;4tZioO{gc z-}zhgtpwk@2@q5hSeH1VJo1`X;FueES(jm9HLYcQg{Q8oCkwnk^_2#g{x=shW{Ubx z0bu-YrAPhJn;c5qAjR=8T*Qsg{-~au|NYu{%{)2_{4*L(>eb(7r>j-1#CA!{D5dOh-D$^0!Ihr;1kLLitVYO*JNLSX||kKG309x zPHHH2(g0`XGd&~OaHmdGy=H%TTbh0iSV^1=ijs1>m{JUx^~71C09iL={#Iw<3+Pp! zx$nRV(^$~{Bg>QRKN;j7zKtg#p1%TI=HF8<$pO-^F>n&NH!kB%mHH)VIXZ|dgYk?V zN5^rdyVCCo7Lc7H*%2nGPfleMT}BoLiXE6z56Zc%w_dxB4e?S#?|^B0)3FK>ouk{B zNO1n~m=KENq~P8om?S>z{3S|nPGkhOB)9i7&s_q?!9Q{g$J51|VUb9J_Qyr~c!U$b zJL!kMp>;T4dp}hiVGsx&VJ2M!pNpPo8N z=}odGK@PC!?Qa>9@?W{oQ&7wq&7E9Yjc_^8*kInIzjl&3Q{xc{{8PS|bdkW;`eCK$ zv6MTwqZ*7=2c#hfsbJKqFDmN$k-9BVF?X`>G$+Qg!AKYWM z%q(hlV(Uy~+wSS*GE}fH1L*oR&rJC1=F|sRnXo=a&KMi3m#?mS4v0y-twh02$1=K~ zVq^rxyp{(ZdoS?!5xhSrLk-IDSApaIw&b|+m(ExR&QM#VlEfrHJHDgqh+us86@VM! z%}K=csljH8X?ohAKnTV{%u=^%1+&hGCG#|?mIEC8!kSGxvLHsox083w@OeGi*};E< z3|HPtN2L5VDM2l03 z_=|vFkbecsz~o9@F?(g~i?Qelp!^|FE|zqM)6h&d|4Q;%8K)EGeN%xlG5kymv|z(+ zqBZ^u#}_axC|L^K;MR}e2N)9gi4O^gH&4FG4B{*+G2!ziaa|Rrz=&SnYf^?le=&YD zVzl?gIgs^AHy`MuDCF_y9n=Tsa=d(pF?_Jkk3y394TkzL{&o+50gUz`?dG@A$zRJw zbkRzD+)Ap9387?(a@a%CSdhOTC|HOG{BHtf+V=3Zx)Q_>!XYy@^+W^_UXJ9DWn_`Y zIga8OBTp->H=dYq9Pm5Qnwdtq>HFGG)c&05!t-TB=4_yz23@r1d6r!KnH;Bi)O9$W z9Orn6bIfs&bQT9{ zCJSHO=!{c4&2`6zT_8+BpQ}Z9{_AeTIVmSSMx>mF&%Oi~@k)=1cuji)xQCHleP!L{ zcr#~ddyY9SC5OLXVeBjBnik?%rYwq}{goz)fNau0XJeqjU9<$OGH19~_)?{V!047@ z+P;_^=W1Fuvx0+GGKqA}%F=Q5Fry_#3a9wykaT?ngZtm146ttJLc?E09s9Jull!m| z172jKT;$qp{2j|<^eb{k>2%wn#gWYr-M>Pr`sFPQgmzNo5BJ^3W(|HLkY-UwP;YQQ z1dLhK!}{E-R+6Nr@zL@}vve^MV+Jgms5|Ff1#pyhSLl%a3hcLI2VpIQsdHeb`|VXa zkWbO)+TIQxupY4A0%rx0+_(7|W;>do^{te1;of-8N;rB;L`&I{0vyDgH9JVH;OEFXUdi(VrGY(RKoC0UV?7&C2RHP1(tgMciBo?@Cj6vB3QceLZ+ zF=c9GXpsaq;p*OJEvC&K71ap*J)ob3pwjmHKs4q9__&nbgF&#BdKZYd)k2X~+{Aoe zxuBWAeR~NcFH^M!POIwhkUbT$Pz{nXBLBrJZ|izT_kF%!*=24NWi6P|+N5I7@JK)X zq7}06NQ_kfBv~h^#zfHzwDS5xml#`@q;dKsi*)G+fBOH&Uct=tv>2J(yH<691LhGACMT6hmfbUuR zWA}g0k@$pc=>VJ630lE9U;+Fvg+1R+{b1h8e(l{J16>+K9>!%aRM}v~@D)x0Bksd! zA?`BB&Hf7wh0D&qw;Z^DDv%s%f2K^0-sz}C_gOGel5CJ8|HHREFblbu8?gAttj^RH zokWcuNtA%1nXJ9m6>|ze$_ZiZTl8|vehjd< z*sT{qM?>+Vwp|@odUl#G)CiDpyH&X5?n)fG`Dpjf<%lGi5m?N72qu;e!gdUR?v;4LFNnO*r*T7TBeOy->M-AnNn3LZU}UrI}fE~Gbl1Td!(A7S=Tk=Y5NZh{2Q zRuxk1t&k5<3JhMRA2b}K`hiR3JWF~JOzZcAfL8x2z{nX2A|6+QC;iyR9cPE_Ka0H2 zdLhkF3+c^F$Yt<^?4Wf+YbI>lEi~vc1$rUXW{ihn60AJR<$Nyw()yEpKU4ZpF{5Mo zZy7AFkfV;x0*8~=tVBisT@rra30MH>S!Lrlmf#?5+Lub>6=ln-PS7SuagYV?eR811XtL}#zTY^s9fT?mhZMOmfzKogZ?fSbqOv0k3 z4r@bb32mr^@<=tL2~h!2(;tp!XYm^C7(MD3@e+G|}g9k>Uom zew$(}1w!$Qhz4ASN}^N64<9re*~#VJ>L2R7>Exez-c)erbvKsf>#u3zkl83J-tTky ziU;k{8B&9xQ_oD*$lB=27W+5gq+h{4Hjh&@Xo1cZjWVXF_hvr^5qzgp&**8!=EC`7qm@gMRm%brm1^Ej&q(H(ZDIS|VSw zK=(#QJ!8nd&Q>i;m&yuoTlwE^HQt9SbJC9Jl70IUS+5cF%k~Gm4RoiSP$*y#boMKr z;gQGlXQtW=n{&D#r$Dqf<7OT}ySCrNNN%o8vH>DNYMHb`IaQDKcwTd!7zi6& z`}mCtg5aXvM%*2o6X*=MC~GHmv5rL#Z<0Rtfb2RkBCP9QGTpYeb2U6&+TqpENcw51 zg)9fDyX~}G5xvA!7?X|1A@6P$jDyE`k+(Ry8~{@cGJ#b|64PBi=W{r9L2*#oGRyBy z#7g_A`lpZTHy1Q;ope*Re;ph7NO{IFw|RUUf~?r9{mb+4F}=Fqj$k=4>mczht6?RP zk`6MnQ`*n_k%mpc`8VqJR{w|{$9-uVuo{%Sn*@+^^Av8-9^z<1h;yxk63!*M$pfv6 z&R_VJrui?3Tbz2!^h%xQ-OYXYwAUTksTnBOr%U@JLuYuMa$GWewFY3 zP=ZKz-QU3OSkv}l>rOd8_m4%-h~q)g=U_*a)8e*2*XprxJQ^I#zzznbw)iU}b?QS= z56_a%=CtyEzq`pZDTl+51z$$tV?kd|09Udr=POP&*UOa&na6h$}rM?5bTTB1u_Z(kD zw%wuPm=5B+#k>=Rs$zwY250ORx$I_a0TnQkpG`fi{xlt0^O_+%DWaTt<1igz0^}!(V&*NaZ3LvJX zi?fgO&`1#VLY)Bm8e#C{b4c}>(u=agbZzgc=Whp>oT6urFZJ#SiN}7;dti@e4?iAo z;&?=o1I9~%;{hQ_uVwu2LC!P1hHpX|BdEma~UaCBh31#`h zQ(FglD6I0%BtU`fB)VEzbJL{kBSR*zrfedn2oS|oA+fIry4BBb0SuGMeh<{1O!-6w zgJ>azNP)gx-G4Vyad`N%Q9X(~rhjk!0X445e1yepS!6b@RD+|&J6QUTCJK7sg z*Z-xn^j51sKQh#NpCxn9)Oi7B)+V&1kmA_R%y;Lr7_q1Mpmc$269>lhlup9#KIr zUsf6gye9TOb#Y;&7v*n_2%UJquClFKg=rXe<0DbPItIi*|3`eQ&F~R%L#xW}iYlK2 z-X>V64K$N%<>2jE#^i zD9F+k?+voYQ{oJdTpcvG$QaE=kTdq2j%q(7RqCrFO#{=r^^&H z_w{Z#pHBv~uW=NXid+hI-v1R>=yA>w;FEvNOy;?(B>!C%>X07ysAy8-9mMN}FxD2- zET+JACE$U00GXkdt4l9Z^&hS<4#V`#rB*m%=ulMSA8rbo2`B6R9Aj3VV0@lB_~Ppe0Q2i1=1X2E zz=)_p-kV~#Zn+VG=9zR8)R{^TGk1oh@FFyRupY!t>K2KiqpSMJ zk0%g#b?_%+&w4-}{r&1oXTw1bhRBN#j~4qTFRtuk%?Ma5Q8x2@PtsoBAM$MA*wv)h zHyGI26eOSa0B_&l2?Q*?K-eirw*wpgZ+0VKrQR4i=T&dY-!3mCUr^Pz;+ng|kKzXB zc*e~I>vMn}el%N-M`;o)OTg8F6fzm3!^+fwF?Vee1gVTTt-k>#y14V>;7UN5|5Zzp({z43 zO!LY7$gQ?$FD9NRVhZb@@K0XyU?Wtsq-9{^*k9=5ZX$aXh(pp|ma6v&5MyR|$r%}9 z0yl8Ndm!(sHkyK~UvgUc{ES4Y?zI!`dA>ZIkp$_A(DaNaF)Apo2i*Xbc$NG{rP`kI zN3@@N?cHm!UNxnZKT5VAdqiJB=^KZ{?V->bZsE8!ON zrZa9`1veZuw2Qz3cI{!D^FMU+_f~F?LxSHQgK%nE(t)s!VkWN5^hu;TZ~y7<#hmQq zQj@F6A>Vgk7~Rj2UW0+?)CKW}ZU60ijGg2>WaQ}48$4J*HHzq@y7yDlp9B4IMs+wV z)_(TMGhU#)n6`u0I82F%dtHYi_&F z_ULmuLOnksaIk^N{(=L$%Q^4f3MXA;gu*wYzmR`VJdsVJ91LUGITl*tZ$DT16Y7r3 z#f<0M{^}|#eafUsnUG7zK?ruyiO-4ocT(>RTs)xB7r}!1?yPmqZ!mteVst+x-KpU5 z+M6=`72`Aj7E#WsECr{}6OMlp1-wOKI^h;IZ9Eo@G5B_{nM^z6@o>xVgyO0FW5&CT zorlL}m12O?W){*VE^n7A#Csu84y29B^e+f`%~WVjasdp$p~wVs>*YshN7%_10>XAd z{eDH4#7O#2N%Q}`e=Q<-$jKI{t zJvK|kj)pzUbUaGKr|h8Z5i7nQ|4^s%Bw^5d%;d!mz!(2Ahy@5g}PflQnKppN@7k^Io&Yb)&EX-f^Td8CwD zQd`C6-Y|^F1I8P3GbXU8muloj26;}b0!U_Lj#2MsE&&)tQ>`w zdHG$+6gM+w!adQXDK>8 z+8F4T2MwtrF4d_n@^KTyb9CcjF|etQk^DxcN+AG&h*ZPS{g|pJa$X$u`mY++EPAdm z6_Xmz36R|Ny3X1$R>a&V<-MF^6V8;uDM+KW3~gXjps-XhV=e<25Rt8npjrm`0b^kO zxKnf`(#|vnkJ~)6lbx%oWVTxqU~+S3F{?R;mRM0@XB(R&2@r?@@G}1_f6}|q&i!1k zrcVx_i4b>9QRFqSDI6_Nw~_M%|FP)Nw5Vn<~7KdHF!?3UW+A!66?9`jP_J*8_?$HTjt?1k)=bFU{>=h7&gY zLcn3=k?dyniev{!%=1J-&RNK0$>YDz;uYR@m9P10j6RK3wBFo4JP8!&e`AR?&2qd$ z_{Kij>Zr5xky#?**l!)63OEDE#>^sG&RIH)s4_uc1r$oala5M8Q|N3={`Knny>Gba zXq>5QkkdO`5am0dyLSrRmFy0#OTcTAB8L>BhIld3+!-`HGGh#XO4_k%dPu(bZD`VW zedg8Z$FZX$kv#`Y0|>X?8lK;_UMzQHFm(gN8xybRp|k5}!V7Am)U|IY0lxT|yb&8` z0@52)>7aWTVY=UW1z*R|C=amg(YdznSGrbbaMVEJnw1=gZUyX8WH6`;J%9yRI-k}5 znPXSjnbfOjunoI$8aMjS)krk$^<@AClOyQOAMXE0Q~vU6 zzwnzV+?x)xK(lsZ?~)-A!yKd6xdH74)ApGM$2=zx35q;~^6NuHcqIeH>pJ8#Z@;SP z^8=cB@T^-HS_HA5#E{3wq-Dt)blTvG8~xC7dz7vzZv40U0nOwpkQc|az(2|JV!1AWc8D7@<&XjCmoE@Iwm;Msrn`kQ-qM zA5ViW5a+!KW^5+~&uKflWz=EE6kTkNYofA<7cC;&$RJ=P{zVS6(=$z=<=w$?t0R$8 zhT+=8%+&HgFr&k~Dph+{RO~uR;gmTGw;6JU3E9t%lSV=g_WyfH4@uZ=x`i~rj$xO^ zd0$XkQ9Tmo7eY^gto@P}c-OVq*P=HPtq-m%%(ZZ32F*&M#m4v5-mhh&$O5uJzabrq z6V=fS9?%2=lGP>H$o8PG-*Q^Uj9$MW=C5=!;k7wH4+K+Y-zV1_*+BV!s*nNgVM$=e z2dQfC+|(SDd;xRPlgZ$%Psy21AD)S*E8h56hBzW_nMjU0g7HXuR0ydLmIM)0B*VJ> zq$=_+)(C9MjMwGp3AWC#S;-B|7tv6_Zf+>}ix$U~U2E7!h^Yyu>dnl&p7Gf~FWUJ9j_Z@g5f8gxmg2Vrp{I2IxHM z5xvGCrcg+w#{xI$pInaPh9+?KvO@Skp|oC+L>;K$82ioO3SOP{lTOp$$47W$x>(Hp z`_xlO6~GX06Z|C*1%3}3Ep+O-?1Uq0bs;X7Qme|o8Jm;fhYB+qI8{!@hk=d zWkA^y0}}H%22OMhvCX~I-@uQ*&ctn)t$N-LX{c$g+co%E%f1}7f_*x9UXZpXe38=# zzeW3y2DqrprmsCsyu7X%_QBT9Zmr4O*Yq#-`>&pzx=aV?*T1fQCn|0GrT-4NdtEmI zip_PW_8MH}Ap#MCwM8btv4_ZOP}#3w;A7&i=b&2UqIk18!jQbzgWlZFBzQRMbizy@ ztKhX{G{SSUnq75ZFX)yD;aB;ZVwDUA<+{;gB68RfZPT>)zBtp{j!s0ldu3XNLOOyJ zhmJbhsO@g?2hFg3{sz{N*LYpO=zqEu5fKs^-Kyr=aGVwIKAwQM%rkkgJO7CTJoPAK zb;+;&n^MGEiHuIB3MJE%s}37RF>|Ib#>aA6c0#X)Fb^+54M zD8|{mK!dJ8Zu9QZ*H_N`sO7&a;Wv_}T2iUYyPmrVzed+C14CP3KlLeOF}Ru(>plJ2 z`uOPR+MA~@0z@~vi4|uN)!eba*eYzdeI0T>ynPb;_~Nsf=Er?H z#njagDQ!nN)-~I~Hmh1Uir#j+r?}K+6jJv|jyAZR(7L^%M47-*A048v<-Opt_s1a? zwS?T}UnGx{#*QoX7G}V~BU87^?m59IO>HqWTu@cCsVY&;wdKcylZP*lH1X1_hrZqA zQp^(xzu||5o8^x$Z;Qt01+@vf4geGa1J<&!N$+B z=mN><#;UJId*t#Osl@j2S|#gS+jsw1@~dqyRAqIw?NPCl%fn9lA;ZGj{q+Q!xhT8j z9F-L5m^tujt75z9v;*gA3ETTVH@8|vk;C7_*a(ecT+Ti3ez!BpuYJvTCgP}BrAW52v~1P7#C5Djq5DI@ zlZrnkf+~Tm{iiRx^5V#Xm>*fqDw%w2*myozR^rITezyxo?~N>y1FgM`t3>T<+J=|4 zevth5KyLjdPkWrXb>6!;TkZaEz3C+uLOQ?qq%@HIZV6e_Z=y|hy5^{jR<``h_vZ4K z-{`q*g)`=x{pyeyv(Q?ZMJ@ae+6`9OS@z~oOdd2XMbwJJUorg=;T8DduSo$;$;WM5 zSDG!@Dc~UpMP)VSS7^y+s0)S6?wzK5R6PsvbleV0*8w&h%Ur{P0JUScIDA9O(E6Hw#b?HPkrx%ZJ{h*l`0Yp(?5sudcwp$*_J=0z9XchVmuY~-5vz>A@usF2b z79IzQ07BTL&X7n4A=SMfn9fgi!XB)tz%bxHriH=&pW6l_e+x%xKRr012bY6}nW^9g z{53yNma@X9&?l42(_uDsi^-mAQMiiOY*J~K>?N7UIqI#ieqH>cLY#RrFJ`^l;A`i# zaiC-4d`vGU_TMQ?cf90BtO5rkvqP#8EVut=bxp*mjV8JKihQiY9&i6|~Uf{;ktiA3>WM6pz{e+7# z8G$pPtn{;@_y0yXet3qUm|XBlVaWJ`yACZaNc=(Dxol>O=InxyU2NV*X`VGTq^mlt zmEcU*ChAmxM?D{1$1Zt4lLB-3_1E7XjGcMdwLa16TDO4vV@i8Vo8ba`QM;jJnGf)s zv>sSx3Lmf?TLzTv`Cb5Vb0d_(DNGtYzL#x8%7e7m#%XOoLk)T>nkaW{TuvkEn(L8+ z_m@LdkbRud#6EnD1UeTPtaSSmv`BcRdkY*7Yy#8dg)sD_%H0RQ7r&5%B7rjV;lp#6 zeXMGrz(_!MT^;-(&A|jdO&b+Cqd9T`!m~rd#(VBfb2{W$a7dd{0jfGfDwi&Sn0giE zf_}ecw68*Tb)=sFX!ABmg7^Yfg4T-+7MA06C}rx}NbJGiI~kqkqSPK!eh$i5RC?-> zh5}s&&++4(b1ovT3VX)O6+=gWoKat5pU0`N5k8Rcn0Z%n-fxvLO4+*94zI6!(Sd(>Ewuw%tS2%9}-R0i#38 z@ennrHGF$|r(mXvxtkF!59G1xL)c~iDCYAl>wn>0zQOkfah~nUF(c2}@cy04whF-+ z=M{n*2l%x=QGEiHb;DOiNqgJHSq?Rg7%MH8&Ct!Cg93P$0J)MiTafY&pCo+ehjKpI zZbF+mE#EWEvX!amq;CFSz8fqV;68^&u|tU(5zc^Xe(i>)Ah!dbrVTcbq;7{Q1>te* zc4GLW?QmXnt?2Qo$2cXUAAFSqf-$Ahb^{gJanZ9(io1TJNr0?6k>lbK9y;Vz5~QwKj+;C{=&isT0ZK=|i@-xlEZ%}8`3+43gRF4v zV9GzLcyHre@{{(+iy~H32WEFp^Hhe2rz@KAyF5fsolTx6?q2F;q7*C>O2%~#}XFjHXi63z1+5COjxl&e# z99ZZ7zxK}huc`kJ`)5gaN={NrKt&LQ4e3%8>6(CqNOx|80+I$uhaaR%r4<;8AcBCj zgqxs*w8UV8?cVqP3+_MQ-cS4CJkIub=Q;1!bv>^H4OaaZU=HV#e{vHmSeX~M&0o^$ zuRV@EE=IVS9SW(WY|7i*75-%8-frb=v+3JlUfN+d%@tBwQzLBg+@hnivo$92U8oHa zb$hduP{T&O8SpVB^Ji6%#s{LveD{&3JB-=O^vzk*bf$E0!|kMI-wP!5P$AzNPoBaG zB>@_&zRBmtcjf2r)E4wyf{`{V%iU}K-~<1w znVzHfm9azWOTE5p@qtBDC-PQ3sM?CI!BtB0mMI`%f-{E=**K>mv=Eo{A$%Y)kh%UW z_SCrAeSFiR&zhE@#;v*{mwvMLn)L^{bq9w#da4AE2cX(f6k`bY&G zxo<2%Qw3kwY1w0bSVuNY-(wE!)_c*ae7+vzYSpgoDgaqjCCP-nYl0{gTDD~HN>cO^ zcDyBRV+{9KeRJLQ|?ybnL!X6RX7dB6?ih-8Awd`nbQ=1`# z9xJxqyj<2F;t~tFRG&gU9(IOrM_gX<_w)0Q+ohc!^x})( zmDUrt^(6lItpy!lp33sIZAtVu zs0B46jMzm$dG}U2UsnG*Kd}Jzr-JoMQzISrN^}#wzkp^2OLE@nx5#B8W`u}*cSz91 zb+yJtO(9C#X1paIz;G^s)U9jpPpRkksc%WtEk8S}6)>OBdr%rvX-qL#6$gz6jgtNg zJ6)S(++9l7nmO}3o?^+QGc3xLyo2DNuhATQ-tYgk^u=N4IX-C=1eCD69*c?NKVSM> zB399?)OBVerj*mwY`F24U!A)E*Hs>cH_K1b7p`(_KzgGm^-xA1n0==v&n>M`kJJ^a(YrfR z_0!iAa`Q`K9%>9!^AJ1>H-1Yt+J(;(dXsX!m`n#j#B*2uhXQ?mzBG=CFyV^a)LaE) z5BK2=;58jS?FSsV`o{(wb=Oc%b{>oT{gY4P8yRQPK7Zh?QZ_L}2k+)H?&_8OP`(EW ztA|lrm+V!gc8TxyK+InJnlkH3rEIv8VmSjP!ez=_d&A3M=LY5J+$dp}u@k-zQGs#`Wp-|D+@ZO#$<&6C!c(8JJ<(IE|i;iRb^fkazPpM_okkalCz;NGh zZ1(YCJLvm<$v!s|Wof_AvpMG|pcTtz&;wb3 zO$A4uPpAHyzr$)rkAEJldv9M4oUf-geP8vOgWrl>v7TxuNtUAPOczW0jKQMjwTOtruI z(L`RBrMeZCK(vkZ-($Uxb3L|KG0orVr%prS#(T3muDhJQnNL5u_4TGSm&#)a<2S(1 z`<7KzD%fXW0RvnMv|{ygg_+O8!jEUrJKiW!b>_&dFl7jQc&n2ZW^}oS{vh(hBQWY3 z?bW5~!j zIQS#5T1BWXqn`?FE!MATDCMBN@*&v$&%@1yQgx0IQ>~Mp^#8KGbr^?SU23a#M7<4M z;~YsW2O1Z~tkbv8R?g!x9p!+i{B>Lhz2|$+n%iXMdyIp+rU%MdX|Ts1iFBZ_l^C99 zHm28`U~!!0YP=$t;On1SBmUZ%hdq_7u>AIuZyDaSiguxkUp1#|{F6x6VsjlZ5GYrB zSr(8<^)~|n!96q@W)m-VP?Sv7-dA<$JdGK>+g%bg#AA$6c&de)6i>xPZtjm2Y`-%m=s$q)O`Qirjm2R%hPThlb%uTf=?Rc6S zsLyhY2tW8mX9ZeyS0bi)-)Bk0%0-zC*rkPg)h8(5OZe(ghPYmAY+yX>UFPswYs$-W z*Xh~@iUY`VSLwJ)!cXh1mT&}*-rHQlyS*%^;A0~Yz4J?p+F|>z>ObRA0u2uav0Xe3 z9+10`L=x4*F}$1fMwEIF+09t7K5XAG_$2!%P2BtlLndOXemQH6n5uYcWJ zj-~_)x4_L=STVfbo0DR|&@3mdMwtUef(&X>Z}-$vZwm0keW#>`IZGQC62E#;V_k&K zc|JlKw8(X4?onMud(Pi$<;aLqnfG>lJCo?t7+)Uyz1bj|m7=+~Vd1QyI?`^F8E?kG zGypfi#$Sl8ocd(*+r?p5E4(mpxzMg;H@rNDKGN~O(f^t<>nk!Fls$K@-b8n@7#vR! z!!e}d2c&vQ)6`YBo>5TraEzXU<+G@v=dASq#FyKzGhgr!%oih|D zxje9;Vw~?IcJT|%9er4E^kdX3GJ;wEf4YPWX)qcHwjbr-? z5`L_ZY_N2<>B!mB2h@eWnPKnONY{?dI;69Qf#Xw01mVvz4~U~xL2_lQczamzy1cTF z5B7OzNnJ7dxuRudaZ~LYkJ)nv{ZN`WXO_NKc z^-bj2A=m_^ax`w;O!HM14{jQkt7RkT0|I`Wr0v+NnxHtX+2z6GS5L3i{Q310WG)Bz zv2D|VOG?)=FWMlLpf`J?dXS{(VOby!6ZNg^!(HV?w2n+Jbtrxder(<{KhP@6pf^ZQ`QnmrefF zn#8>dzs?Qa{c&d|1lhzh^3li>W$H(r_ld_m(1waz!O`;r2lKrVZ3=Bsnl-+DO{;c3Tss z_r%LdwMbgY{4GCvOBCF1wrOKZR?Vlr^`>qe+q!^`U~hm)Mj#0L2CPOqtN}-#wa&Bc zv>yykGonN1XrhBw6{Y|Fq$(s9wO~nMF<)Okh(`JWwoF$VCIp(@J_{5|!m2FgJjuTg zz(a9<^~Pu8PJ)%l+g3w3BAYN&d!jafm&beZVAdvz=pNJ`CQvB7jNut#;@TR!nL`6V z&7?aSV7eTsVe6+!r_+xg@9ZT!8+3dy>uJSWMA549SaNAtZd#yvO3Cg^8x1PjjM(ml! zCDBvoZ@fF@Qowj|=1}V^uDXP}zpIB3kmm<|Zh0r%m(3<72_cpea{^lim%8T1R^B;d=Cbo@@~ztG#H3ALv5dsO z-sFhHAgmDW9=!L94skX#BBc)R2TNQBcrJjW8~*1>>PNp?!zNMH46jJ^^7Pcjza{;g zC|>5cQ(Rv+X;Hm&R?S5NKCQ<*r$Dmp;IOgCYtF~81_>m!d-6j~0-UDVX z!HX)8Mh}c^ggKs8ReoA+O_M}OG76JV19n0IWxHNH;{3-?@P*Ef;*c)?Fd5%C!~ z9^~;#x=XI$nEmRNFjgSE{WyfK6k%+C#(Ez%)($)pdBW~6cI`XXxUrtM4B542SUyuz zgcq#?^7pnrv9m1e1UIpz3wjDYy?asW)l}r|P;klt5y!l`Hqz#m-&BdwZq}__oco&M zIlL59;c9)^t7i66U$+4zEOK-!rZs?nOH*+%w`9$#Hi;Q@yr||{s@X`>mE*eH>h7XJ z7dAt@d)V?Zq#*wtK_n_4i<;dZm|qB0%VB|EF`0N1^>6$69dMsosTDhu zfiA2E6$JC2e&aHW*bXR>f_B0UBPiVQZoY zTfG)G720?GwQ|+acW`icXEVxl2rSycL=TO}#c?^VVz`X#H%vRzCs2zg2qh-N=Rrom z7?}RkCxbZQOq$*fYWE(NJeLVlB9ifm4j=`ks~}}hFfoP9YG8BP@oK+sb>6pD6C`KY z(#~^{et}v)rc2v#Ytb13crPHbr&li9i-JD3}GcQB7ooB0R zW+8{Yk$R+}`TEA#RO$U%rN4OZES8eCj25GviRpX5vwFrgDFUmTfL{cC^mkp21B6@W zx{8w5kt>*6OyJ=u0AbWL0Uh!^C#H{gZRq2JltB&-U`uKs@ zKBXlEI9f1oIux>W_BccXBaKAj4`gk+BCi|frQpP@thpL(N_?$nb5U5he8+{;JI*E| z6)QSQzoucnmH!p(4P?a+Xr1i+JwZ}jEE^vxURay)seL2DK`_JyCXTkl)>>^sfs9i+ zIUE%;6-AjaKpuUzFFL~5=>4O-IlWD|WG%;tbzeUdU!WCBL@%$qC3L6bd57+5>Kj-T<1ak)F+BMH;N~y506R z);Iil2FcqC{6%`WP3aEsCOMvs^#Cu*9iy!arAq?+K-pcvYSsO>DU}9lH!O&TGK9-v?+72)-Yi(f7RPr>t=4?es`#+;XY|AgzCgx~K81{M znqT_XTv>iW6i6}9#pz00E`^qa5e!MXgQ|iJNyryNFr8P`Mi#fbSF}EtrlzziK6Tu%P)dfx zT=_Ll=s|-$PU{xSm$5_Sah(#yan8Ae5>ai8n4HGQKt;i zAmJY;4{A4L_mHLAZ&pw$&o5@`gPLB0RK~n6y(Ygkl6?<@C07# zKz*oCjSX4VTH~3zw|y;zOyA&#dix-lHCH#Zp>CS}WLmZ1Dl1N0I?pkhsW;?F1L{;I2!!OUZ3_ZDk}77)x=O<~p#H+SmbGu0zx}QXhtF?~&GxiVg7LY7wG8}(f z;`t{nei^@RI9<6QfHP_zq9T$|G_( z3%&k+qT(c}i^r(;rzqUb*TI~RQz|t)ck%)-`Tq58uEaS2*hC3=DKNgi;S%o(R=UQ* z2&?v82<}?tJkvsL4*1^K=ZK zlNAR3!o(tSp;y4yj;E!aYZ}78vsKd-2H!C+KvmmJQv0*8qYjt>d;D1x=2Y2@gk;vk zxX@~}yeB=c8F1$EfDLE?V!5QRO<+{p9+$SJ2^=95mN16Gi0Q|lVTR{Gbt{=>UB-t} zv;)w|3t|QN)&V#kKK3ebAojFjM0#VtH`Uy=0u=E~s@CX9Zkv?SMW6|KF#PFG0?%vG zI<`DmNo8-M0tKqRU3N68HP*?{z(oV%uRkgD|K`1`@@d6eNavTz&EUp(u{$+#b2>vB z6L4+rHI+cv_l*pY(0d-nsn0TF2fDy*s&F}hO#^-#g=Q~UvT)Jx&JO*Sv>Op;pRiA) z;}yN}*Cj_T+6i?%I-$H`dkJ>e19l+~&~NXTl--25WAJh)89yHL4DN8gEOGkz(1#ZI z*pnWMTM;8clOshM;7fK0c2Tpcvsdd`h!7P27*su5eRMM)SrY@F8 zX|wxH&5;6h-T=8!ZUvU@4)FHLd|2!eX!N+4t{@}s3S!r@4?4S3+zD-U3_a<557i|Y zD1+i8v7V8PW*JV;^?gCtd!snbU;H#S&%)wv5T)hPBRRs`9&KM~x+=+N*)JXgIlZ>T z`SFUhpyds@?|vXv)Fa%Jn_~9d?_u3P1=ro`9OlVPzfP za#(YUd-bC_B%UI*ollaDEB{-pUvV1$d+Jjl+gj?_+42BOSE%px8-2*MIPlbY>|Q(s z;^qDXb6?%`!VRvjE>S`!Uv^|04#KQ}VuTjwy=a-VJ> zq}(rFF5T0;9d*b2ebn6Xagnd1HXzzw_*wgpQtVJ9eik#?axbM;GfJPt4|P17(o-!bm0F-^jb07pn4_-J3t zZpH%jAGg|EVv^h!@Sivto0n?~RY#5NGEMmv1-l?@ujGyS>bJb~i;7aZqivO%jNfO1 zg~wDLjhx#SoCzzD3#l7xDLZ5--^mf%446dLg9w7e;53C~(B4M$B7Cvqo_`;*FY&^i zcTK;-q zC@j{oe=MkPGcTXLCuUFX(#cY2bdG06!#r4Th}uDknl*~15g|rzwTgc;Q;iOsd44hK zIxFM#x!$-Vx0zl6f=V>W7$;1}IF42zv9=lfVw9nq)R7LQ^OEMfz%D;Nk0we7UBW|04+0i5C%OybMKF_8uAv! zaPER*W%TQADG9^g^>suH7chU;zCD$h)GCT)k+^GSeuIAr)SUH`XkK}U{Qb)BJPHrG zS}w&aZiq`fx&I~?tHKknB?&4aCH0U7iKkO^zJobQ2Zs}!LIS{$q=41Ds%nHRi zH97$<=D*nTii`#w>m(;Wnrl0Pp#Gqa;MGTi;PTQ)Z}?Yw23dYEX#B$=$b*#-FaR68 z`n!W+94h>Sx%knmH5aQFti|c@mm_-1Qi#;upLu6q=1%q(+gTgV833M2=!D|^*87U5 zz6i%J3fSng%&1wWw<}Y zeRVAvb7x$LUR>}6)p>n)M}^;5p+^xe-+w@Feg~mPofuTj9fNMMU#SUQVmoW7ss3yj zP5(?bgzknKyLlNub_6p=8z$4fq%(?_6c)ODIb(QUJr}&yPLRjCyUv z=K?GfX+)m1t09?HXcs~~j~++6BDa_+|3P(!C>QMJoX^|tUjgn-tUX^zCl z7a+3>e%;H}qn!?p0e|+VbQIgsV|}8Km`>#3;Xpj>Pw>axmoeKU`=6wIKFYy-#Y~{e z60x!T3C8}%4#t!Nh!#(B09{dOdJWQhLyXz!ns$S4UiS$bQ|E_JzBki07UaJC2Cvc? z)XKLffSZHx0CeyG!cIj>LECR2B-p*0v2k3LSpEZn*1G{OH5MH|2}t3kO!r^$#xc^p9ek&5!tBx)7X%`V#D)L+92cj* z-)K3rep~h4DJWD2^}G!C7svBfd-X@^g7sN0;FZQLF^;!SFuZxaJvMs4Sl8-}V6{Jw zoL587oqI>x#6`3DhL>4Sv4{&(wJE<`Z?P-m1j5k0=kr8RLMo9*{y5QY)nDq(nWJ!e z#{l2b3o>~9_f?obuP7{g5o@s38osW7Jbwi*M!vXXQIGsQim&S4iM^np^jScOV?^*d zc7A6rY)Y<}IF2ugr{0@bzomDFvT#__f$OPfr3sHf*a9ynFDo4C0XiW8Y~~J>(*;(? z9UOY5tV^S7=o>Z{8l=d+X5wImB1pC9Rr&)9Qw=Ktjncd9+&1(wm^UGs6N>BBxGkn1M#C*rf&Dij+Nr29GxAwpJeD^G7HSftSGjO%uCQUwQ`pD_-7M^ zEBHyrJ;4R1PHh$5ctS^mxn-lb$n&Kn1;`VVp}TJ_QO_R&If0iYfP&NX!pn#I7;-kU z{9?@XJNaD*`mQnS5iMEd#b5A)J$_Rb*1jEA-*^ZS-?nN%dnWX*?78<1b|xI^6Kj_5 ztm#Hl4U|8oWXga67kVIr4%YxksWb&c2H-FOspwJs=@ef^)M;D&jdTEVG=KOsCr{+{ zPf(#v8}1RCpdM5LBmGl973i(ywGVm53@nHj2lJI@FOm=yHcKdJ_maPl#9GdXYfZ-) zGXh3@s;uTrOH{=W%-cpsWnMv@QuY1dt;<}w(SBv6Y%I;okxa?Nw--q1Zg*|O0SI3! zKzNWr;4EGBa#gs?G3}IvOP*Fh(2&XJ89BAf-v9#lW6i^EqYMZ40<>lG8OFrR^y98* z2YRO2ie65!Ewz>Xs$%jFE!=Vx^|!m;AcaIyb4J?3Ii5g^%CkwYZt$M`AU1 zRdL9vV?}bA=$%Yj8&0KE7IFf*|o}HuBlmD^9F&B6JY7fYwlN%Y2M2-BaBG`s3a@t(z?m9N+B6Z*uT=v&O zV7bJ8mZnd21>0|9)bp}KEPXI*)YEsO3x~S~ANVukQUD^wbLdwWv1(;*wEAxsri^uy z97!UeRQmT4ja5Xh%Phxq@Pmz^yNP}~I?qFIPCCeisPvJ;4kzCen?-u)uE4*P+MzS` zCS?7Re{-8H4!!jF_UCDg8lE(EBJ~E-uZeAoL!|-H*7YX0gxWW*Y@CddR}$3o-WU#W zFWgdxuZLv!J3ri{)6G3c-PQc5cRr0c8&+A&#|{`Xuf1i{cl**V@$&jQ=OJOhspclN zBIymm^xMweDEX-Qle24MtJ7xiZqY`_uIhR${8V^Xus#WXmJ*9W00Uqt5eq0*98xWT z?)+fZ;*-!ekJWzNYF5(3APE{mK{pfr?PXT|T^7Ad*YN&ogjoM`r>}0j1q*1}3%Gd3 zr>Ag6_Hj94!7Sb+^&c}}Z?v&4j;k)}pNjXK*G(p~vTjDnBtTF|x!phsoEecJiusPR6^2B^h3-Ps$YN|@{N1<<1|*!^Cz(T0s%D((Jx+Jc+UM_ zL=f@iMK-t{D?4C=ywdM#*G(6;f71C^)xl+31BSUdu_Luxv5{!#!m32D*j06>_(k+z zp4v`|c_&*C{4F*a@JD6fGg}0hIk1iRkX1`0MHBgNqkq+J{LH+shmBNlQ53w}MzmBq z6HT=VH>I5e!<8762yD7EmXtrm@59OZ;eRE^C9OMl>j|4u(%{ziZ^86Joh#0hbH%r0 zyH=O~;(A-O*_~eSV9BRhSM|*r7CLSNjAHXNv$f^^j-yHW`oy1`2^T-`pfzz(-{V`N zYYqn%fNHE<7wgkFZVUAm5wz0F?dsoFOLgepw?o|YS_WrF$7*Q|$YYiiC@NBs0|p_n zMSg6nWfIw6OR)Hc@c@RuseN;L(yzEGL6edJ;;OMH@PfY{xRQy}^J{D~Cz)~7H^0fq z6$V@u58@FND@mAq*?s!-eF-_fWM;mt=pu-E$p)4den|;^j{jdr5ZA$V-^3R?IY(vP zON2uHCQ&g4eu9Oe_V5Q$@pH=m&VS}8=Vb78e)w~su_?W{=f}!>W_@|Vjr%Ogwt&mB z+|=B-;4SFd`n7=7M=h}sVEyPE*{z{e^wG zM2SI)2wx+}gPvuVuD7uG2A$oDi6H4rc4U%x55F*t-j*(m>ZXgyrfDmnKS z%={E&l``CX)7hYNG|M23aUmD+Yc=~Yd0vdp?utM?%dL@MAp+) zn9x==l8!U!*&S8q#=qXk#>sAtNs7HMkF$Gj7w3h$&rt z7UT5mN^}Z60K%iB0f0;4M5ciw%e%_FJE0*NMO!@knbi1Ud z>tzZ7BTu4S1{os2uJWK9cF!&rLtM3D%!w*3lBkuF19*pMLFAey_(b{nz9cR#U;KNf zU^M&tlGpTPesS{7UL^ZF;iFF*@9IhlXCIDuto5}7XkG(m*$T%a*+rx0WO4={MiGo) zY-=h^|7s^Z{FxcDfUsmBO%n8G=bRWzTg=H&Kc1Sg?(*m>nIwjMho!z@CglO_xXRn5 zu7ZOZ{OCP~TxmUjpAa5XN=bnhCdsU+1cbS{f6M3)vWuKnrgb^=hEjqg zE_bueo91WE4~Y5Sn)qHiGwNgZ5HCVa(ThM2jV0{G%70<#(}o6Vx~S3e>-3TL1P-~X zJmAr!YsRuy#c_>#msEC-jN*U9T4jmOdGMM=I&mr;wXZB>nvQx1GW|WQ+99-#>Huq$ zeK`DMcUbI6XB%Y{fAYKs^c+b`amq*5@6zE)RH!t7jXr#rocOl)jsxJ$GW$Rm1wQ@G zi&X}?lVkXsel~gcvt!@nfKwzM^17gUf6ALc&+Ee<8)Bi)bV|}~!D>ool0d2yXfLSl z^A6$5u(69|_ap&ls{jg)^=z8?9|LrLnPj9?` zd;D}6-E@od${s(1&A~}#3pDLKFuqe-(y{(Cp(Jv{ zkJ2khj3vah$yOdtENRJdZc5X(4~Jj0u7`n;BD$OmSnG=yQ4AMBmyara<0h`P;jCJi z%~=xSNe&m|^w{IlpD-CpfZyekTz3Zg_=iov!^*9-E!s^3a~N3=fGC{$jckr#PR(lzwaZc@{(#A<+8nbb^6}I?38kB?0p8BL2gq$W-58}Z&(@6^(XdldAO~F$IE^J;h z&W01^2u8Eegl000q}MO`qzjMNTz^FxyJJQavP_v>c;iC*lM}SsVt?JTFLWqp$J+Kr zIGL-WqQlj*2T(=vWO;mC3eLQg@F54wA4iLc#l@4<2cW}&lxiBez&GZODJpN*UMuKZ zPyT~gs;B7s(GOh5nSSKS*|WitcqBVE%^?qvFNER(85x?m8c|UHPQ-Q9ics7jo?OUx zPpoOG4m3%{LuBEEjJT1UN(IgOIzPW2hjZr1&AO$7|#F1$d7X`fq8F4lHY7rDH z=m8@XYtW3s;O%ZAaAnL1DHE*I` zJFF_SME1@KPTw93=vrGob+bYWgn%E%ev0ga5)J_hU1pughm)hO9m=j>*DuAQyb@Tf zsSD?di!oaI7qvt=_(`gBEqNavr>2LGKIYu(@mgUvu$0xX`uezIcj) z=-KQl*r!K$z{l8`{6VNp012mr77OvMy^N#%{(r2L>Wd(o3@Afu(7Y0dc`oy&+D6@g zyenM0E)#(5mop|*p8@WmXx3v3l=@VN5_mU>5%&6GWxP*K)cMed{P`<^8>NxO#TS!fY;ve33IW_#mL)&Yd$3@uQ^|K4C#YVxetWH=_)9pxkMEj^NjyM zvR)L2{O^_&U}6NVQbAuu^iu_;d}_DSrMSm@?swfWB;3q4}XaMRkw|u)!JA@qQt8R~GT$4RNf1a=1MjO&L-xxDVb2cIWBG!qB3iXw^1d zl^9}P2#6w2TkKVKT`yY=E1(9kzeNBstTuiWlfjH@C1`p`u5l&sU*nfxwtegNL&>O~ z%jwZ&4BdhLh1vHV36N;lDN9nA@VKgC-Z6+u+l3dt{|d0&lAx)lj!3eEXuk&zv>8&A;r=kzw5^YOVH+) z#2bDP^zBlVF&uTr2$YAgVfWCI9xk|QU-m>;&Ll@Zg-Zpr`z5F?=lDcr{T(NvZQnqB zP4FoeZ@B%VhoRrH8!D*iaCgJJ5cndWSQ?{5z6d$Ui#O$!L6n$6{|S#iyPsjC&T(o< z_m@i#C>DqFuciB=Z}k*_ueV(+IC<&$@Q+E;i3G1SI`J8HJFedP@w8DnkoXJ|me%V6 z%DvJ)SvsihSp4&MYj273Z{?X~hqn&{;#N(-A^RWh_|ugk@S4kJipOliLGEL!Vlo;h zH$`Fwp=hq5I;*(tvTb|1;RHc(*e{)i=gncJ0>jWxPm?2{QdbaS!Fk)Cy81JQVnn9D z8)eUDj3(HR7D0%%>){J0*WcKm>U)y}dD3=-OP$926{~r5JKAC~k zv#aVE(^0aQ$`!|a>T)>^T`lZRg}VI}n$=LX#ir?o<<^0sg5 zN|-@JdGY{GL;`XeNW08l_wf?EikSl}`;3gBb&#N(&gd_jOIhFp{l~`p?&+8lTDK}l zRR=(1F6Br(ybl7u7*)p4+<$%-TPb#5`hFH({TTy}b4Z?TSuDBNMp^fx=?&C{@;~ya zMF)H_j;;gOr?;1{&&2z#9#xLg$7W0~6W#ogS0%ZyuDXv!w)N~--?|OHz2?TdrO6fN zYVahQA)_b-@h6UkEc`P|p}o4O2m9)9jg5Jfj}D9||9S7)Tahm&) z1wC&y8OS?qtK3u_g%(G~OnZxVet5e2CV6=z@}g@=*NcsplC;J!QAkBFq~>pWtW2ARe Kx8Vjl{{H|h@<;Lj literal 0 HcmV?d00001 diff --git a/src-tauri/icons/icon.ico b/src-tauri/icons/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..b3636e4b22ba65db9061cd60a77b02c92022dfd6 GIT binary patch literal 86642 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 AKmY&$ literal 0 HcmV?d00001 diff --git a/src-tauri/icons/icon.png b/src-tauri/icons/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..e1cd2619e0b5ec089cbba5ec7b03ddf2b1dfceb6 GIT binary patch literal 14183 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