From 2235190b65870a8feb3ae056f1f158d05d1645b2 Mon Sep 17 00:00:00 2001 From: Linden Date: Sun, 13 Oct 2024 00:03:29 -0300 Subject: [PATCH] =?UTF-8?q?init:=20Let's=20GO=20!=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .changeset/config.json | 15 + .github/assets/logo.png | Bin 0 -> 64829 bytes .github/assets/logo.svg | 8 + .github/workflows/ci.yaml | 50 + .github/workflows/release.yml | 39 + .gitignore | 45 + .husky/commit-msg | 18 + .husky/pre-commit | 20 + README.md | 149 ++ apps/don/.npmignore | 10 + apps/don/CHANGELOG.md | 25 + apps/don/README.md | 34 + apps/don/index.html | 16 + apps/don/package.json | 27 + apps/don/public/_headers | 15 + apps/don/public/_redirects | 1 + apps/don/src/App.module.css | 33 + apps/don/src/App.tsx | 27 + apps/don/src/assets/favicon.ico | Bin 0 -> 15086 bytes apps/don/src/index.css | 13 + apps/don/src/index.tsx | 15 + apps/don/src/logo.svg | 1 + apps/don/src/sum.test.ts | 7 + apps/don/tsconfig.json | 13 + apps/don/vite.config.ts | 20 + biome.json | 43 + package.json | 46 + packages/.gitkeep | 0 pnpm-lock.yaml | 3318 +++++++++++++++++++++++++++++++ pnpm-workspace.yaml | 3 + scripts/clean.sh | 3 + scripts/commit.js | 10 + scripts/publish.sh | 32 + tsconfig.json | 29 + turbo.json | 30 + 35 files changed, 4115 insertions(+) create mode 100644 .changeset/config.json create mode 100644 .github/assets/logo.png create mode 100644 .github/assets/logo.svg create mode 100644 .github/workflows/ci.yaml create mode 100644 .github/workflows/release.yml create mode 100644 .gitignore create mode 100644 .husky/commit-msg create mode 100644 .husky/pre-commit create mode 100644 README.md create mode 100644 apps/don/.npmignore create mode 100644 apps/don/CHANGELOG.md create mode 100644 apps/don/README.md create mode 100644 apps/don/index.html create mode 100644 apps/don/package.json create mode 100644 apps/don/public/_headers create mode 100644 apps/don/public/_redirects create mode 100644 apps/don/src/App.module.css create mode 100644 apps/don/src/App.tsx create mode 100644 apps/don/src/assets/favicon.ico create mode 100644 apps/don/src/index.css create mode 100644 apps/don/src/index.tsx create mode 100644 apps/don/src/logo.svg create mode 100644 apps/don/src/sum.test.ts create mode 100644 apps/don/tsconfig.json create mode 100644 apps/don/vite.config.ts create mode 100644 biome.json create mode 100644 package.json create mode 100644 packages/.gitkeep create mode 100644 pnpm-lock.yaml create mode 100644 pnpm-workspace.yaml create mode 100755 scripts/clean.sh create mode 100644 scripts/commit.js create mode 100755 scripts/publish.sh create mode 100644 tsconfig.json create mode 100644 turbo.json diff --git a/.changeset/config.json b/.changeset/config.json new file mode 100644 index 0000000..3cf29ad --- /dev/null +++ b/.changeset/config.json @@ -0,0 +1,15 @@ +{ + "$schema": "https://unpkg.com/@changesets/config@3.0.4/schema.json", + "changelog": "@changesets/cli/changelog", + "commit": [ + "../scripts/commit.js", + { + "customOption": true + } + ], + "fixed": [], + "linked": [], + "access": "public", + "baseBranch": "main", + "updateInternalDependencies": "minor" +} diff --git a/.github/assets/logo.png b/.github/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..17c27ae860145106c283016f8cf307910a50b1d5 GIT binary patch literal 64829 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 + + + + + + + diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 0000000..0def94b --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,50 @@ +name: CI + +on: + push: + branches: + - main + pull_request: + branches: + - main + +jobs: + build: + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [18.17.x, 20.x, 22.x] + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - uses: pnpm/action-setup@v4 + with: + version: 9.12.1 + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node-version }} + cache: "pnpm" + + - name: Install dependencies + run: pnpm install + + - name: Run code check + run: pnpm lint:check + + - name: Run tests + run: pnpm test + + - name: Upload results to Codecov + uses: codecov/codecov-action@v4 + with: + token: ${{ secrets.CODECOV_TOKEN }} + fail_ci_if_error: true + file: packages/app/coverage/coverage-final.json + + - name: Build the application + run: pnpm build diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..093fbd6 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,39 @@ +name: Release + +on: + push: + branches: + - main + +concurrency: ${{ github.workflow }}-${{ github.ref }} + +jobs: + release: + name: Release + runs-on: ubuntu-latest + steps: + - name: Checkout Repo + uses: actions/checkout@v4 + + - uses: pnpm/action-setup@v4 + with: + version: 9.12.1 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 22.x + cache: pnpm + + - name: Install Dependencies + run: pnpm install + + - name: Create Release Pull Request or Publish to npm + id: changesets + uses: changesets/action@v1 + with: + title: Release packages + publish: pnpm run publish + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..938ea61 --- /dev/null +++ b/.gitignore @@ -0,0 +1,45 @@ +# Build +dist/ +lib/ +coverage/ +.turbo/ +types/ + +# Development +node_modules/ +*.local +**/.devcontainer.json +devcontainer/ +# Cache +.cache +.mf +.rollup.cache +tsconfig.tsbuildinfo + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +# Editor +.vscode/* +!.vscode/launch.json +!.vscode/*.code-snippets + +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +# Husky +**/_/ + +# Local Netlify folder +.netlify \ No newline at end of file diff --git a/.husky/commit-msg b/.husky/commit-msg new file mode 100644 index 0000000..71c4550 --- /dev/null +++ b/.husky/commit-msg @@ -0,0 +1,18 @@ +if [ -n "$GITHUB_ACTIONS" ]; then + echo "Running on GitHub Actions, skip commit messages" +else + INPUT_FILE=$1 + START_LINE=`head -n1 $INPUT_FILE` + # Define a regex for conventional commit messages with scope + CONVENTIONAL_COMMIT_REGEX="^(init|feat|fix|docs|style|refactor|perf|test|chore|build|ci|revert)(\([a-zA-Z0-9]+\))?: .+" + + # Check if the commit message matches the regex + if ! [[ "${START_LINE}" =~ ${CONVENTIONAL_COMMIT_REGEX} ]]; then + echo "Commit message is not conventional. It should follow the format: (): " + echo "Your message:" + echo "--------------" + echo $START_LINE + echo "--------------" + exit 1 + fi +fi \ No newline at end of file diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100644 index 0000000..f146bd1 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,20 @@ +if [ -n "$GITHUB_ACTIONS" ]; then + echo "Running on GitHub Actions, skip checking changesets" +else + echo "Running locally" + # Check for changesets + if git diff --name-only | grep -q '^.changeset/.*\.md$'; then + echo "Detected uncommitted changesets" + else + pnpm changeset status --since=main + fi + + # Check for changed files and filter out certain suffixes + if git diff --cached --name-only | grep -E '\.(ts|tsx|json|html)$' | grep -q .; then + echo "Running checks..." + pnpm lint:check + pnpm test + else + echo "No relevant changes, skipping checks." + fi +fi \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..df2aaca --- /dev/null +++ b/README.md @@ -0,0 +1,149 @@ +
+

+ Don Logo +

+
+

+ + Don CI + + + Cloudflare Pages + + + Codecov + + License +

+
+
+ +

Personal Financial Management App

+ +## Table of Contents + +- [Tech stack](#tech-stack) +- [Project Structure](#project-structure) +- [Development](#development) +- [Production](#production) +- [Roadmap](#roadmap) + +## Tech stack + +[pNpm](https://pnpm.io/): Fast, disk space efficient package manager + +[Release Please](https://github.com/googleapis/release-please): Release Please automates CHANGELOG generation, the creation of GitHub releases, and version bumps for your projects. + +[Husky](https://github.com/typicode/husky): Auto run `lint`, `unit tests`, `build` before commit. + +[SolidJS](https://www.solidjs.com/): Simple and performant reactivity for building user interfaces. + +[Vite](https://vitejs.dev/): Frontend Tooling. It uses Rollup and esbuild internally for bundling + +[Vitest](https://vitest.dev/): Testing Framework. + +## Project Structure + +This project is using Qwik with [QwikCity](https://qwik.dev/qwikcity/overview/). QwikCity is just an extra set of tools on top of Qwik to make it easier to build a full site, including directory-based routing, layouts, and more. + +Inside your project, you'll see the following directory structure: + +``` +├── public/ +│ └── ... +└── src/ + ├── components/ + │ └── ... + └── routes/ + └── ... +``` + +- `src/routes`: Provides the directory-based routing, which can include a hierarchy of `layout.tsx` layout files, and an `index.tsx` file as the page. Additionally, `index.ts` files are endpoints. Please see the [routing docs](https://qwik.dev/qwikcity/routing/overview/) for more info. + +- `src/components`: Recommended directory for components. + +- `public`: Any static assets, like images, can be placed in the public directory. Please see the [Vite public directory](https://vitejs.dev/guide/assets.html#the-public-directory) for more info. + +## Development + +Development mode uses [Vite's development server](https://vitejs.dev/). The `dev` command will server-side render (SSR) the output during development. + +```shell +pnpm start +``` + +> Note: during dev mode, Vite may request a significant number of `.js` files. This does not represent a Qwik production build. + +## Production + +The production build will generate client and server modules by running both client and server build commands. The build command will use Typescript to run a type check on the source code. + +```shell +pnpm build +``` + +## Roadmap + +- 🚧 **TODO** Account Aggregation + + - Link multiple bank accounts, credit cards, loans, and investment accounts. + - Real-time synchronization of balances and transactions. + +- 🚧 **TODO** Expense Tracking + + - Automatically categorize transactions (e.g., groceries, entertainment, utilities) by taking pictures of receipts. + - Manual entry of expenses and transactions. + - Support for splitting transactions (e.g., shared bills). + - Tagging expenses for more personalized tracking (e.g., vacations, business). + +- 🚧 **TODO** Income Tracking + + - Record and categorize income (salary, freelance, dividends, etc.). + - Monitor recurring income streams and one-time payments. + - Integration with payroll systems and tax tracking for income insights. + +- 🚧 **TODO** Bill Management + + - Add and track recurring bills (rent, utilities, subscriptions, etc.). + - Bill reminders and notifications (upcoming due dates). + - Ability to set up autopay or mark bills as paid. + +- 🚧 **TODO** Investment Tracking + + - Link investment accounts and track portfolio performance. + - Track asset allocations (stocks, bonds, mutual funds, etc.). + - Monitor net worth based on assets and liabilities. + - Portfolio diversification and investment insights. + +- 🚧 **TODO** Debt Management + + - Track loans (student loans, mortgages, credit card debt). + - Payment reminders and automated debt payoff plans (e.g., debt snowball, debt avalanche). + - Interest calculation and amortization schedules. + +- 🚧 **TODO** Financial Insights & Reports + + - Visualize monthly cash flow (income vs. expenses). + - Detect trends in cash flow patterns (e.g., surpluses, deficits). + - Forecast future cash flow based on current spending patterns. + - Generate monthly, quarterly, and annual financial reports. + - Provide insights into spending patterns, income trends, and savings performance. + - Track overall net worth based on assets (bank balances, properties) and liabilities (debts, loans). + - Historical data visualization to track net worth growth or decline. + +- 🚧 **TODO** Credit Score Monitoring + + - Link with credit score agencies to monitor and report credit scores. + - Provide insights on how to improve the credit score. + - Offer alerts for changes in credit reports. + +- 🚧 **TODO** Alerts & Notifications + + - Customizable alerts for various financial events (e.g., low balance, overspending, bill due). + - Notifications for account changes, suspicious activity, or significant financial milestones. + - Weekly or monthly summaries of financial activities. + +- 🚧 **TODO** Security Features + - Bank-level encryption to protect sensitive data. + - Biometric login (fingerprint, face ID). + - Automatic logout after a period of inactivity. diff --git a/apps/don/.npmignore b/apps/don/.npmignore new file mode 100644 index 0000000..0d8ad56 --- /dev/null +++ b/apps/don/.npmignore @@ -0,0 +1,10 @@ +# Ignore source files +src/ + +# Ignore test files +tests/ +__tests__/ + +# Ignore configuration files +*.config.js +.env \ No newline at end of file diff --git a/apps/don/CHANGELOG.md b/apps/don/CHANGELOG.md new file mode 100644 index 0000000..5d134ad --- /dev/null +++ b/apps/don/CHANGELOG.md @@ -0,0 +1,25 @@ +# @linden_quan/don + +## 0.1.5 + +### Patch Changes + +- f24e746: Test changeset + +## 0.1.4 + +### Patch Changes + +- 173b776: Test changeset + +## 0.1.3 + +### Patch Changes + +- Test changeset + +## 0.1.2 + +### Patch Changes + +- f232ce2: Test changesets diff --git a/apps/don/README.md b/apps/don/README.md new file mode 100644 index 0000000..6a17645 --- /dev/null +++ b/apps/don/README.md @@ -0,0 +1,34 @@ +## Usage + +Those templates dependencies are maintained via [pnpm](https://pnpm.io) via `pnpm up -Lri`. + +This is the reason you see a `pnpm-lock.yaml`. That being said, any package manager will work. This file can be safely be removed once you clone a template. + +```bash +$ npm install # or pnpm install or yarn install +``` + +### Learn more on the [Solid Website](https://solidjs.com) and come chat with us on our [Discord](https://discord.com/invite/solidjs) + +## Available Scripts + +In the project directory, you can run: + +### `npm run dev` or `npm start` + +Runs the app in the development mode.
+Open [http://localhost:3000](http://localhost:3000) to view it in the browser. + +The page will reload if you make edits.
+ +### `npm run build` + +Builds the app for production to the `dist` folder.
+It correctly bundles Solid in production mode and optimizes the build for the best performance. + +The build is minified and the filenames include the hashes.
+Your app is ready to be deployed! + +## Deployment + +You can deploy the `dist` folder to any static host provider (netlify, surge, now, etc.) diff --git a/apps/don/index.html b/apps/don/index.html new file mode 100644 index 0000000..48c59fc --- /dev/null +++ b/apps/don/index.html @@ -0,0 +1,16 @@ + + + + + + + + Solid App + + + +
+ + + + diff --git a/apps/don/package.json b/apps/don/package.json new file mode 100644 index 0000000..a6858b5 --- /dev/null +++ b/apps/don/package.json @@ -0,0 +1,27 @@ +{ + "name": "@linden_quan/don", + "version": "0.1.0", + "description": "don client app", + "type": "module", + "scripts": { + "start": "vite", + "dev": "vite", + "build": "vite build", + "preview": "vite preview", + "test": "vitest --no-watch --coverage", + "clean": "rm -rf dist node_modules coverage .turbo" + }, + "license": "MIT", + "publishConfig": { + "access": "public" + }, + "devDependencies": { + "@solidjs/testing-library": "^0.8.10", + "@testing-library/jest-dom": "^6.6.2", + "@vitest/coverage-v8": "2.1.4", + "jsdom": "^25.0.1", + "solid-devtools": "^0.30.1", + "vite-plugin-solid": "^2.10.2", + "solid-js": "^1.9.3" + } +} diff --git a/apps/don/public/_headers b/apps/don/public/_headers new file mode 100644 index 0000000..8b57e9a --- /dev/null +++ b/apps/don/public/_headers @@ -0,0 +1,15 @@ +/* + Content-Security-Policy: script-src 'self' https: 'unsafe-inline'; frame-src 'self'; object-src 'none'; base-uri 'self' + Cache-Control: public, max-age=2592000 + Cross-Origin-Resource-Policy: same-origin + Cross-Origin-Embedder-Policy: require-corp + Cross-Origin-Opener-Policy: same-origin + Origin-Agent-Cluster: ?1 + Referrer-Policy: no-referrer + Strict-Transport-Security: max-age=31536000; includeSubDomains + X-Content-Type-Options: nosniff + X-Download-Options: noopen + X-DNS-Prefetch-Control: off + X-Permitted-Cross-Domain-Policies: none + X-Frame-Options: DENY + X-Robots-Tag: noindex, nofollow diff --git a/apps/don/public/_redirects b/apps/don/public/_redirects new file mode 100644 index 0000000..ad37e2c --- /dev/null +++ b/apps/don/public/_redirects @@ -0,0 +1 @@ +/* /index.html 200 diff --git a/apps/don/src/App.module.css b/apps/don/src/App.module.css new file mode 100644 index 0000000..48308b2 --- /dev/null +++ b/apps/don/src/App.module.css @@ -0,0 +1,33 @@ +.App { + text-align: center; +} + +.logo { + animation: logo-spin infinite 20s linear; + height: 40vmin; + pointer-events: none; +} + +.header { + background-color: #282c34; + min-height: 100vh; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + font-size: calc(10px + 2vmin); + color: white; +} + +.link { + color: #b318f0; +} + +@keyframes logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} diff --git a/apps/don/src/App.tsx b/apps/don/src/App.tsx new file mode 100644 index 0000000..c55d86d --- /dev/null +++ b/apps/don/src/App.tsx @@ -0,0 +1,27 @@ +import type { Component } from "solid-js"; + +import styles from "./App.module.css"; +import logo from "./logo.svg"; + +const App: Component = () => { + return ( +
+
+ logo +

+ Edit src/App.tsx and save to reload. +

+ + Learn Solid & changesets + +
+
+ ); +}; + +export default App; diff --git a/apps/don/src/assets/favicon.ico b/apps/don/src/assets/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..b836b2bccac650e0e7d90514083add91d2c027ff GIT binary patch literal 15086 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 WLaxim%Fn{v*G , root!); diff --git a/apps/don/src/logo.svg b/apps/don/src/logo.svg new file mode 100644 index 0000000..025aa30 --- /dev/null +++ b/apps/don/src/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/don/src/sum.test.ts b/apps/don/src/sum.test.ts new file mode 100644 index 0000000..6847aee --- /dev/null +++ b/apps/don/src/sum.test.ts @@ -0,0 +1,7 @@ +import { describe, expect, it } from "vitest"; + +describe("sum function", () => { + it("should return the sum of two numbers", () => { + expect(1 + 1).toBe(2); + }); +}); diff --git a/apps/don/tsconfig.json b/apps/don/tsconfig.json new file mode 100644 index 0000000..ed8ea2e --- /dev/null +++ b/apps/don/tsconfig.json @@ -0,0 +1,13 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "types": [ + "vite/client", + "@testing-library/jest-dom" + ] + }, + "include": [ + "./src", + "./test" + ] +} diff --git a/apps/don/vite.config.ts b/apps/don/vite.config.ts new file mode 100644 index 0000000..83fb69e --- /dev/null +++ b/apps/don/vite.config.ts @@ -0,0 +1,20 @@ +import { defineConfig } from "vite"; +import solidPlugin from "vite-plugin-solid"; +// import devtools from 'solid-devtools/vite'; + +export default defineConfig({ + plugins: [ + /* + Uncomment the following line to enable solid-devtools. + For more info see https://github.com/thetarnav/solid-devtools/tree/main/packages/extension#readme + */ + // devtools(), + solidPlugin(), + ], + server: { + port: 3000, + }, + build: { + target: "esnext", + }, +}); diff --git a/biome.json b/biome.json new file mode 100644 index 0000000..e761ae7 --- /dev/null +++ b/biome.json @@ -0,0 +1,43 @@ +{ + "$schema": "https://biomejs.dev/schemas/1.9.3/schema.json", + "files": { + "ignoreUnknown": true, + "ignore": [ + "**/dist/**", + "**/coverage/**", + "node_modules/", + ".husky/", + ".github/", + ".turbo/", + "**/.netlify/**" + ] + }, + "formatter": { + "enabled": true, + "indentStyle": "space", + "indentWidth": 2 + }, + "organizeImports": { + "enabled": true + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true, + "suspicious": { + "noExplicitAny": "off" + }, + "a11y": { + "useButtonType": "off" + }, + "style": { + "noNonNullAssertion": "off" + } + } + }, + "json": { + "formatter": { + "lineWidth": 1 + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..5aca8e4 --- /dev/null +++ b/package.json @@ -0,0 +1,46 @@ +{ + "name": "don", + "version": "1.0.0", + "private": true, + "description": "personal financial management app", + "author": "Linden Quan", + "repository": { + "type": "git", + "url": "https://github.com/lindenquan/don" + }, + "engines": { + "node": ">=18.17.0", + "pnpm": ">=9.12.1" + }, + "packageManager": "pnpm@9.12.1", + "keywords": [ + "financial management" + ], + "license": "ISC", + "scripts": { + "preinstall": "npx only-allow pnpm", + "postinstall": "husky", + "lint:check": "biome check --verbose", + "lint:fix": "biome check --write", + "build": "turbo build", + "test": "turbo test", + "clean": "turbo clean; ./scripts/clean.sh", + "publish": "changeset publish" + }, + "devDependencies": { + "@biomejs/biome": "1.9.4", + "@changesets/cli": "^2.27.10", + "dotenv": "^16.4.5", + "husky": "^9.1.7", + "turbo": "^2.3.3", + "typescript": "^5.7.2", + "vite": "^5.4.11", + "vitest": "^2.1.6" + }, + "browserslist": [ + "> 1%", + "last 2 versions", + "since 2023", + "not dead" + ] +} diff --git a/packages/.gitkeep b/packages/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..afc6edf --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,3318 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + devDependencies: + '@biomejs/biome': + specifier: 1.9.4 + version: 1.9.4 + '@changesets/cli': + specifier: ^2.27.10 + version: 2.27.10 + dotenv: + specifier: ^16.4.5 + version: 16.4.5 + husky: + specifier: ^9.1.7 + version: 9.1.7 + turbo: + specifier: ^2.3.3 + version: 2.3.3 + typescript: + specifier: ^5.7.2 + version: 5.7.2 + vite: + specifier: ^5.4.11 + version: 5.4.11 + vitest: + specifier: ^2.1.6 + version: 2.1.6(jsdom@25.0.1) + + apps/don: + devDependencies: + '@solidjs/testing-library': + specifier: ^0.8.10 + version: 0.8.10(solid-js@1.9.3) + '@testing-library/jest-dom': + specifier: ^6.6.2 + version: 6.6.3 + '@vitest/coverage-v8': + specifier: 2.1.4 + version: 2.1.4(vitest@2.1.6(jsdom@25.0.1)) + jsdom: + specifier: ^25.0.1 + version: 25.0.1 + solid-devtools: + specifier: ^0.30.1 + version: 0.30.1(solid-js@1.9.3)(vite@5.4.11) + solid-js: + specifier: ^1.9.3 + version: 1.9.3 + vite-plugin-solid: + specifier: ^2.10.2 + version: 2.10.2(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11) + +packages: + + '@adobe/css-tools@4.4.1': + resolution: {integrity: sha512-12WGKBQzjUAI4ayyF4IAtfw2QR/IDoqk6jTddXDhtYTJF9ASmoE1zst7cVtP0aL/F1jUJL5r+JxKXKEgHNbEUQ==} + + '@ampproject/remapping@2.3.0': + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + + '@babel/code-frame@7.26.2': + resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.26.2': + resolution: {integrity: sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.26.0': + resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.26.2': + resolution: {integrity: sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.25.9': + resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.18.6': + resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.25.9': + resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.26.0': + resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-plugin-utils@7.25.9': + resolution: {integrity: sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.25.9': + resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.25.9': + resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.25.9': + resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.26.0': + resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.26.2': + resolution: {integrity: sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/plugin-syntax-jsx@7.25.9': + resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-typescript@7.25.9': + resolution: {integrity: sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/runtime@7.26.0': + resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} + engines: {node: '>=6.9.0'} + + '@babel/template@7.25.9': + resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.25.9': + resolution: {integrity: sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.26.0': + resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==} + engines: {node: '>=6.9.0'} + + '@bcoe/v8-coverage@0.2.3': + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + + '@biomejs/biome@1.9.4': + resolution: {integrity: sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog==} + engines: {node: '>=14.21.3'} + hasBin: true + + '@biomejs/cli-darwin-arm64@1.9.4': + resolution: {integrity: sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [darwin] + + '@biomejs/cli-darwin-x64@1.9.4': + resolution: {integrity: sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [darwin] + + '@biomejs/cli-linux-arm64-musl@1.9.4': + resolution: {integrity: sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [linux] + + '@biomejs/cli-linux-arm64@1.9.4': + resolution: {integrity: sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [linux] + + '@biomejs/cli-linux-x64-musl@1.9.4': + resolution: {integrity: sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [linux] + + '@biomejs/cli-linux-x64@1.9.4': + resolution: {integrity: sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [linux] + + '@biomejs/cli-win32-arm64@1.9.4': + resolution: {integrity: sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [win32] + + '@biomejs/cli-win32-x64@1.9.4': + resolution: {integrity: sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [win32] + + '@changesets/apply-release-plan@7.0.6': + resolution: {integrity: sha512-TKhVLtiwtQOgMAC0fCJfmv93faiViKSDqr8oMEqrnNs99gtSC1sZh/aEMS9a+dseU1ESZRCK+ofLgGY7o0fw/Q==} + + '@changesets/assemble-release-plan@6.0.5': + resolution: {integrity: sha512-IgvBWLNKZd6k4t72MBTBK3nkygi0j3t3zdC1zrfusYo0KpdsvnDjrMM9vPnTCLCMlfNs55jRL4gIMybxa64FCQ==} + + '@changesets/changelog-git@0.2.0': + resolution: {integrity: sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==} + + '@changesets/cli@2.27.10': + resolution: {integrity: sha512-PfeXjvs9OfQJV8QSFFHjwHX3QnUL9elPEQ47SgkiwzLgtKGyuikWjrdM+lO9MXzOE22FO9jEGkcs4b+B6D6X0Q==} + hasBin: true + + '@changesets/config@3.0.4': + resolution: {integrity: sha512-+DiIwtEBpvvv1z30f8bbOsUQGuccnZl9KRKMM/LxUHuDu5oEjmN+bJQ1RIBKNJjfYMQn8RZzoPiX0UgPaLQyXw==} + + '@changesets/errors@0.2.0': + resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} + + '@changesets/get-dependents-graph@2.1.2': + resolution: {integrity: sha512-sgcHRkiBY9i4zWYBwlVyAjEM9sAzs4wYVwJUdnbDLnVG3QwAaia1Mk5P8M7kraTOZN+vBET7n8KyB0YXCbFRLQ==} + + '@changesets/get-release-plan@4.0.5': + resolution: {integrity: sha512-E6wW7JoSMcctdVakut0UB76FrrN3KIeJSXvB+DHMFo99CnC3ZVnNYDCVNClMlqAhYGmLmAj77QfApaI3ca4Fkw==} + + '@changesets/get-version-range-type@0.4.0': + resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} + + '@changesets/git@3.0.2': + resolution: {integrity: sha512-r1/Kju9Y8OxRRdvna+nxpQIsMsRQn9dhhAZt94FLDeu0Hij2hnOozW8iqnHBgvu+KdnJppCveQwK4odwfw/aWQ==} + + '@changesets/logger@0.1.1': + resolution: {integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==} + + '@changesets/parse@0.4.0': + resolution: {integrity: sha512-TS/9KG2CdGXS27S+QxbZXgr8uPsP4yNJYb4BC2/NeFUj80Rni3TeD2qwWmabymxmrLo7JEsytXH1FbpKTbvivw==} + + '@changesets/pre@2.0.1': + resolution: {integrity: sha512-vvBJ/If4jKM4tPz9JdY2kGOgWmCowUYOi5Ycv8dyLnEE8FgpYYUo1mgJZxcdtGGP3aG8rAQulGLyyXGSLkIMTQ==} + + '@changesets/read@0.6.2': + resolution: {integrity: sha512-wjfQpJvryY3zD61p8jR87mJdyx2FIhEcdXhKUqkja87toMrP/3jtg/Yg29upN+N4Ckf525/uvV7a4tzBlpk6gg==} + + '@changesets/should-skip-package@0.1.1': + resolution: {integrity: sha512-H9LjLbF6mMHLtJIc/eHR9Na+MifJ3VxtgP/Y+XLn4BF7tDTEN1HNYtH6QMcjP1uxp9sjaFYmW8xqloaCi/ckTg==} + + '@changesets/types@4.1.0': + resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} + + '@changesets/types@6.0.0': + resolution: {integrity: sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ==} + + '@changesets/write@0.3.2': + resolution: {integrity: sha512-kDxDrPNpUgsjDbWBvUo27PzKX4gqeKOlhibaOXDJA6kuBisGqNHv/HwGJrAu8U/dSf8ZEFIeHIPtvSlZI1kULw==} + + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.21.5': + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.21.5': + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.21.5': + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.21.5': + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@istanbuljs/schema@0.1.3': + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + + '@manypkg/find-root@1.1.0': + resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} + + '@manypkg/get-packages@1.1.3': + resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@nothing-but/utils@0.12.1': + resolution: {integrity: sha512-1qZU1Q5El0IjE7JT/ucvJNzdr2hL3W8Rm27xNf1p6gb3Nw8pGnZmxp6/GEW9h+I1k1cICxXNq25hBwknTQ7yhg==} + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@rollup/rollup-android-arm-eabi@4.28.0': + resolution: {integrity: sha512-wLJuPLT6grGZsy34g4N1yRfYeouklTgPhH1gWXCYspenKYD0s3cR99ZevOGw5BexMNywkbV3UkjADisozBmpPQ==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.28.0': + resolution: {integrity: sha512-eiNkznlo0dLmVG/6wf+Ifi/v78G4d4QxRhuUl+s8EWZpDewgk7PX3ZyECUXU0Zq/Ca+8nU8cQpNC4Xgn2gFNDA==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.28.0': + resolution: {integrity: sha512-lmKx9yHsppblnLQZOGxdO66gT77bvdBtr/0P+TPOseowE7D9AJoBw8ZDULRasXRWf1Z86/gcOdpBrV6VDUY36Q==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.28.0': + resolution: {integrity: sha512-8hxgfReVs7k9Js1uAIhS6zq3I+wKQETInnWQtgzt8JfGx51R1N6DRVy3F4o0lQwumbErRz52YqwjfvuwRxGv1w==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.28.0': + resolution: {integrity: sha512-lA1zZB3bFx5oxu9fYud4+g1mt+lYXCoch0M0V/xhqLoGatbzVse0wlSQ1UYOWKpuSu3gyN4qEc0Dxf/DII1bhQ==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.28.0': + resolution: {integrity: sha512-aI2plavbUDjCQB/sRbeUZWX9qp12GfYkYSJOrdYTL/C5D53bsE2/nBPuoiJKoWp5SN78v2Vr8ZPnB+/VbQ2pFA==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.28.0': + resolution: {integrity: sha512-WXveUPKtfqtaNvpf0iOb0M6xC64GzUX/OowbqfiCSXTdi/jLlOmH0Ba94/OkiY2yTGTwteo4/dsHRfh5bDCZ+w==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.28.0': + resolution: {integrity: sha512-yLc3O2NtOQR67lI79zsSc7lk31xjwcaocvdD1twL64PK1yNaIqCeWI9L5B4MFPAVGEVjH5k1oWSGuYX1Wutxpg==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.28.0': + resolution: {integrity: sha512-+P9G9hjEpHucHRXqesY+3X9hD2wh0iNnJXX/QhS/J5vTdG6VhNYMxJ2rJkQOxRUd17u5mbMLHM7yWGZdAASfcg==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.28.0': + resolution: {integrity: sha512-1xsm2rCKSTpKzi5/ypT5wfc+4bOGa/9yI/eaOLW0oMs7qpC542APWhl4A37AENGZ6St6GBMWhCCMM6tXgTIplw==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-powerpc64le-gnu@4.28.0': + resolution: {integrity: sha512-zgWxMq8neVQeXL+ouSf6S7DoNeo6EPgi1eeqHXVKQxqPy1B2NvTbaOUWPn/7CfMKL7xvhV0/+fq/Z/J69g1WAQ==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.28.0': + resolution: {integrity: sha512-VEdVYacLniRxbRJLNtzwGt5vwS0ycYshofI7cWAfj7Vg5asqj+pt+Q6x4n+AONSZW/kVm+5nklde0qs2EUwU2g==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.28.0': + resolution: {integrity: sha512-LQlP5t2hcDJh8HV8RELD9/xlYtEzJkm/aWGsauvdO2ulfl3QYRjqrKW+mGAIWP5kdNCBheqqqYIGElSRCaXfpw==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.28.0': + resolution: {integrity: sha512-Nl4KIzteVEKE9BdAvYoTkW19pa7LR/RBrT6F1dJCV/3pbjwDcaOq+edkP0LXuJ9kflW/xOK414X78r+K84+msw==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.28.0': + resolution: {integrity: sha512-eKpJr4vBDOi4goT75MvW+0dXcNUqisK4jvibY9vDdlgLx+yekxSm55StsHbxUsRxSTt3JEQvlr3cGDkzcSP8bw==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-win32-arm64-msvc@4.28.0': + resolution: {integrity: sha512-Vi+WR62xWGsE/Oj+mD0FNAPY2MEox3cfyG0zLpotZdehPFXwz6lypkGs5y38Jd/NVSbOD02aVad6q6QYF7i8Bg==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.28.0': + resolution: {integrity: sha512-kN/Vpip8emMLn/eOza+4JwqDZBL6MPNpkdaEsgUtW1NYN3DZvZqSQrbKzJcTL6hd8YNmFTn7XGWMwccOcJBL0A==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.28.0': + resolution: {integrity: sha512-Bvno2/aZT6usSa7lRDL2+hMjVAGjuqaymF1ApZm31JXzniR/hvr14jpU+/z4X6Gt5BPlzosscyJZGUvguXIqeQ==} + cpu: [x64] + os: [win32] + + '@solid-devtools/debugger@0.23.4': + resolution: {integrity: sha512-EfTB1Eo313wztQYGJ4Ec/wE70Ay2d603VCXfT3RlyqO5QfLrQGRHX5NXC07hJpQTJJJ3tbNgzO7+ZKo76MM5uA==} + peerDependencies: + solid-js: ^1.8.0 + + '@solid-devtools/shared@0.13.2': + resolution: {integrity: sha512-Y4uaC4EfTVwBR537MZwfaY/eiWAh+hW4mbtnwNuUw/LFmitHSkQhNQTUlLQv/S0chtwrYWQBxvXos1dC7e8R9g==} + peerDependencies: + solid-js: ^1.8.0 + + '@solid-primitives/bounds@0.0.118': + resolution: {integrity: sha512-Qj42w8LlnhJ3r/t+t0c0vrdwIvvQMPgjEFGmLiwREaA85ojLbgL9lSBq2tKvljeLCvRVkgj10KEUf+vc99VCIg==} + peerDependencies: + solid-js: ^1.6.12 + + '@solid-primitives/cursor@0.0.112': + resolution: {integrity: sha512-TAtU7qD7ipSLSXHnq8FhhosAPVX+dnOCb/ITcGcLlj8e/C9YKcxDhgBHJ3R/d1xDRb5/vO/szJtEz6fnQD311Q==} + peerDependencies: + solid-js: ^1.6.12 + + '@solid-primitives/event-bus@1.0.11': + resolution: {integrity: sha512-bSwVA4aI2aNHomSbEroUnisMSyDDXJbrw4U8kFEvrcYdlLrJX5i6QeCFx+vj/zdQQw62KAllrEIyWP8KMpPVnQ==} + peerDependencies: + solid-js: ^1.6.12 + + '@solid-primitives/event-listener@2.3.3': + resolution: {integrity: sha512-DAJbl+F0wrFW2xmcV8dKMBhk9QLVLuBSW+TR4JmIfTaObxd13PuL7nqaXnaYKDWOYa6otB00qcCUIGbuIhSUgQ==} + peerDependencies: + solid-js: ^1.6.12 + + '@solid-primitives/keyboard@1.2.8': + resolution: {integrity: sha512-pJtcbkjozS6L1xvTht9rPpyPpX55nAkfBzbFWdf3y0Suwh6qClTibvvObzKOf7uzQ+8aZRDH4LsoGmbTKXtJjQ==} + peerDependencies: + solid-js: ^1.6.12 + + '@solid-primitives/media@2.2.9': + resolution: {integrity: sha512-QUmU62D4/d9YWx/4Dvr/UZasIkIpqNXz7wosA5GLmesRW9XlPa3G5M6uOmTw73SByHNTCw0D6x8bSdtvvLgzvQ==} + peerDependencies: + solid-js: ^1.6.12 + + '@solid-primitives/platform@0.1.2': + resolution: {integrity: sha512-sSxcZfuUrtxcwV0vdjmGnZQcflACzMfLriVeIIWXKp8hzaS3Or3tO6EFQkTd3L8T5dTq+kTtLvPscXIpL0Wzdg==} + peerDependencies: + solid-js: ^1.6.12 + + '@solid-primitives/refs@1.0.8': + resolution: {integrity: sha512-+jIsWG8/nYvhaCoG2Vg6CJOLgTmPKFbaCrNQKWfChalgUf9WrVxWw0CdJb3yX15n5lUcQ0jBo6qYtuVVmBLpBw==} + peerDependencies: + solid-js: ^1.6.12 + + '@solid-primitives/resize-observer@2.0.26': + resolution: {integrity: sha512-KbPhwal6ML9OHeUTZszBbt6PYSMj89d4wVCLxlvDYL4U0+p+xlCEaqz6v9dkCwm/0Lb+Wed7W5T1dQZCP3JUUw==} + peerDependencies: + solid-js: ^1.6.12 + + '@solid-primitives/rootless@1.4.5': + resolution: {integrity: sha512-GFJE9GC3ojx0aUKqAUZmQPyU8fOVMtnVNrkdk2yS4kd17WqVSpXpoTmo9CnOwA+PG7FTzdIkogvfLQSLs4lrww==} + peerDependencies: + solid-js: ^1.6.12 + + '@solid-primitives/scheduled@1.4.4': + resolution: {integrity: sha512-BTGdFP7t+s7RSak+s1u0eTix4lHP23MrbGkgQTFlt1E+4fmnD/bEx3ZfNW7Grylz3GXgKyXrgDKA7jQ/wuWKgA==} + peerDependencies: + solid-js: ^1.6.12 + + '@solid-primitives/static-store@0.0.5': + resolution: {integrity: sha512-ssQ+s/wrlFAEE4Zw8GV499yBfvWx7SMm+ZVc11wvao4T5xg9VfXCL9Oa+x4h+vPMvSV/Knv5LrsLiUa+wlJUXQ==} + peerDependencies: + solid-js: ^1.6.12 + + '@solid-primitives/static-store@0.0.8': + resolution: {integrity: sha512-ZecE4BqY0oBk0YG00nzaAWO5Mjcny8Fc06CdbXadH9T9lzq/9GefqcSe/5AtdXqjvY/DtJ5C6CkcjPZO0o/eqg==} + peerDependencies: + solid-js: ^1.6.12 + + '@solid-primitives/styles@0.0.111': + resolution: {integrity: sha512-1mBxOGAPXmfD5oYCvqjKBDN7SuNjz2qz7RdH7KtsuNLQh6lpuSKadtHnLvru0Y8Vz1InqTJisBIy/6P5kyDmPw==} + peerDependencies: + solid-js: ^1.6.12 + + '@solid-primitives/utils@6.2.3': + resolution: {integrity: sha512-CqAwKb2T5Vi72+rhebSsqNZ9o67buYRdEJrIFzRXz3U59QqezuuxPsyzTSVCacwS5Pf109VRsgCJQoxKRoECZQ==} + peerDependencies: + solid-js: ^1.6.12 + + '@solidjs/testing-library@0.8.10': + resolution: {integrity: sha512-qdeuIerwyq7oQTIrrKvV0aL9aFeuwTd86VYD3afdq5HYEwoox1OBTJy4y8A3TFZr8oAR0nujYgCzY/8wgHGfeQ==} + engines: {node: '>= 14'} + peerDependencies: + '@solidjs/router': '>=0.9.0' + solid-js: '>=1.0.0' + peerDependenciesMeta: + '@solidjs/router': + optional: true + + '@testing-library/dom@10.4.0': + resolution: {integrity: sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==} + engines: {node: '>=18'} + + '@testing-library/jest-dom@6.6.3': + resolution: {integrity: sha512-IteBhl4XqYNkM54f4ejhLRJiZNqcSCoXUOG2CPK7qbD322KjQozM4kHQOfkG2oln9b9HTYqs+Sae8vBATubxxA==} + engines: {node: '>=14', npm: '>=6', yarn: '>=1'} + + '@types/aria-query@5.0.4': + resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} + + '@types/babel__core@7.20.5': + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + + '@types/babel__generator@7.6.8': + resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} + + '@types/babel__template@7.4.4': + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + + '@types/babel__traverse@7.20.6': + resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} + + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + + '@types/node@12.20.55': + resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} + + '@vitest/coverage-v8@2.1.4': + resolution: {integrity: sha512-FPKQuJfR6VTfcNMcGpqInmtJuVXFSCd9HQltYncfR01AzXhLucMEtQ5SinPdZxsT5x/5BK7I5qFJ5/ApGCmyTQ==} + peerDependencies: + '@vitest/browser': 2.1.4 + vitest: 2.1.4 + peerDependenciesMeta: + '@vitest/browser': + optional: true + + '@vitest/expect@2.1.6': + resolution: {integrity: sha512-9M1UR9CAmrhJOMoSwVnPh2rELPKhYo0m/CSgqw9PyStpxtkwhmdM6XYlXGKeYyERY1N6EIuzkQ7e3Lm1WKCoUg==} + + '@vitest/mocker@2.1.6': + resolution: {integrity: sha512-MHZp2Z+Q/A3am5oD4WSH04f9B0T7UvwEb+v5W0kCYMhtXGYbdyl2NUk1wdSMqGthmhpiThPDp/hEoVwu16+u1A==} + peerDependencies: + msw: ^2.4.9 + vite: ^5.0.0 || ^6.0.0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + + '@vitest/pretty-format@2.1.6': + resolution: {integrity: sha512-exZyLcEnHgDMKc54TtHca4McV4sKT+NKAe9ix/yhd/qkYb/TP8HTyXRFDijV19qKqTZM0hPL4753zU/U8L/gAA==} + + '@vitest/runner@2.1.6': + resolution: {integrity: sha512-SjkRGSFyrA82m5nz7To4CkRSEVWn/rwQISHoia/DB8c6IHIhaE/UNAo+7UfeaeJRE979XceGl00LNkIz09RFsA==} + + '@vitest/snapshot@2.1.6': + resolution: {integrity: sha512-5JTWHw8iS9l3v4/VSuthCndw1lN/hpPB+mlgn1BUhFbobeIUj1J1V/Bj2t2ovGEmkXLTckFjQddsxS5T6LuVWw==} + + '@vitest/spy@2.1.6': + resolution: {integrity: sha512-oTFObV8bd4SDdRka5O+mSh5w9irgx5IetrD5i+OsUUsk/shsBoHifwCzy45SAORzAhtNiprUVaK3hSCCzZh1jQ==} + + '@vitest/utils@2.1.6': + resolution: {integrity: sha512-ixNkFy3k4vokOUTU2blIUvOgKq/N2PW8vKIjZZYsGJCMX69MRa9J2sKqX5hY/k5O5Gty3YJChepkqZ3KM9LyIQ==} + + agent-base@7.1.1: + resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} + engines: {node: '>= 14'} + + ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} + engines: {node: '>=12'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + + aria-query@5.3.0: + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + + aria-query@5.3.2: + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} + engines: {node: '>= 0.4'} + + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + babel-plugin-jsx-dom-expressions@0.39.3: + resolution: {integrity: sha512-6RzmSu21zYPlV2gNwzjGG9FgODtt9hIWnx7L//OIioIEuRcnpDZoY8Tr+I81Cy1SrH4qoDyKpwHHo6uAMAeyPA==} + peerDependencies: + '@babel/core': ^7.20.12 + + babel-preset-solid@1.9.3: + resolution: {integrity: sha512-jvlx5wDp8s+bEF9sGFw/84SInXOA51ttkUEroQziKMbxplXThVKt83qB6bDTa1HuLNatdU9FHpFOiQWs1tLQIg==} + peerDependencies: + '@babel/core': ^7.0.0 + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + better-path-resolve@1.0.0: + resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} + engines: {node: '>=4'} + + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + browserslist@4.24.2: + resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==} + 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.30001683: + resolution: {integrity: sha512-iqmNnThZ0n70mNwvxpEC2nBJ037ZHZUoBI5Gorh1Mw6IlEAZujEoU1tXA628iZfzm7R9FvFzxbfdgml82a3k8Q==} + + chai@5.1.2: + resolution: {integrity: sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==} + engines: {node: '>=12'} + + chalk@3.0.0: + resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} + engines: {node: '>=8'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + + check-error@2.1.1: + resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} + engines: {node: '>= 16'} + + ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + css.escape@1.5.1: + resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} + + cssstyle@4.1.0: + resolution: {integrity: sha512-h66W1URKpBS5YMI/V8PyXvTMFT8SupJ1IzoIV8IeBC/ji8WVmrO8dGlTi+2dh6whmdk6BiKJLD/ZBkhWbcg6nA==} + engines: {node: '>=18'} + + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + data-urls@5.0.0: + resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} + engines: {node: '>=18'} + + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decimal.js@10.4.3: + resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + + deep-eql@5.0.2: + resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} + engines: {node: '>=6'} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + + detect-indent@6.1.0: + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} + + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + + dom-accessibility-api@0.5.16: + resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} + + dom-accessibility-api@0.6.3: + resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==} + + dotenv@16.4.5: + resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} + engines: {node: '>=12'} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + electron-to-chromium@1.5.64: + resolution: {integrity: sha512-IXEuxU+5ClW2IGEYFC2T7szbyVgehupCWQe5GNh+H065CD6U6IFN0s4KeAMFGNmQolRU4IV7zGBWSYMmZ8uuqQ==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + enquirer@2.4.1: + resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} + engines: {node: '>=8.6'} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + es-module-lexer@1.5.4: + resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} + + esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} + hasBin: true + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + + expect-type@1.1.0: + resolution: {integrity: sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==} + engines: {node: '>=12.0.0'} + + extendable-error@0.1.7: + resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} + + external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + + fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + + fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + + foreground-child@3.3.0: + resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} + engines: {node: '>=14'} + + form-data@4.0.1: + resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} + engines: {node: '>= 6'} + + fs-extra@7.0.1: + resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} + engines: {node: '>=6 <7 || >=8'} + + fs-extra@8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} + + 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'} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + + globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + html-encoding-sniffer@4.0.0: + resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} + engines: {node: '>=18'} + + html-entities@2.3.3: + resolution: {integrity: sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==} + + html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + + http-proxy-agent@7.0.2: + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} + engines: {node: '>= 14'} + + https-proxy-agent@7.0.5: + resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} + engines: {node: '>= 14'} + + human-id@1.0.2: + resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} + + husky@9.1.7: + resolution: {integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==} + engines: {node: '>=18'} + hasBin: true + + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-potential-custom-element-name@1.0.1: + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + + is-subdir@1.2.0: + resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} + engines: {node: '>=4'} + + is-what@4.1.16: + resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} + engines: {node: '>=12.13'} + + is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} + + istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} + + istanbul-lib-source-maps@5.0.6: + resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==} + engines: {node: '>=10'} + + istanbul-reports@3.1.7: + resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} + engines: {node: '>=8'} + + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + + jsdom@25.0.1: + resolution: {integrity: sha512-8i7LzZj7BF8uplX+ZyOlIz86V6TAsSs+np6m1kpW9u0JWi4z/1t+FzcK1aek+ybTnAC4KhBL4uXCNT0wcUIeCw==} + engines: {node: '>=18'} + peerDependencies: + canvas: ^2.11.2 + peerDependenciesMeta: + canvas: + optional: true + + jsesc@3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} + hasBin: true + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + + lodash.startcase@4.4.0: + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + loupe@3.1.2: + resolution: {integrity: sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==} + + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + lz-string@1.5.0: + resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} + hasBin: true + + magic-string@0.30.13: + resolution: {integrity: sha512-8rYBO+MsWkgjDSOvLomYnzhdwEG51olQ4zL5KXnNJWV5MNmrb4rTZdrtkhxjnD/QyZUqR/Z/XDsUs/4ej2nx0g==} + + magic-string@0.30.14: + resolution: {integrity: sha512-5c99P1WKTed11ZC0HMJOj6CDIue6F8ySu+bJL+85q1zBEIY8IklrJ1eiKC2NDRh3Ct3FcvmJPyQHb9erXMTJNw==} + + magicast@0.3.5: + resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} + + make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} + + merge-anything@5.1.7: + resolution: {integrity: sha512-eRtbOb1N5iyH0tkQDAoQ4Ipsp/5qSR79Dzrz8hEPxRX10RWWR/iQXdoKmBSRCThY1Fh5EhISDtpSc93fpxUniQ==} + engines: {node: '>=12.13'} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + + mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + nanoid@3.3.8: + resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + + nwsapi@2.2.13: + resolution: {integrity: sha512-cTGB9ptp9dY9A5VbMSe7fQBcl/tt22Vcqdq8+eN93rblOuE0aCFu4aZ2vMwct/2t+lFnosm8RkQW1I0Omb1UtQ==} + + os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + + outdent@0.5.0: + resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} + + p-filter@2.1.0: + resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} + engines: {node: '>=8'} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-map@2.1.0: + resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} + engines: {node: '>=6'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + + package-manager-detector@0.2.6: + resolution: {integrity: sha512-9vPH3qooBlYRJdmdYP00nvjZOulm40r5dhtal8st18ctf+6S1k7pi5yIHLvI4w5D70x0Y+xdVD9qITH0QO/A8A==} + + parse5@7.2.1: + resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + + pathval@2.0.0: + resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} + engines: {node: '>= 14.16'} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + + postcss@8.4.49: + resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} + engines: {node: ^10 || ^12 || >=14} + + prettier@2.8.8: + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: '>=10.13.0'} + hasBin: true + + pretty-format@27.5.1: + resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + react-is@17.0.2: + resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} + + read-yaml-file@1.1.0: + resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} + engines: {node: '>=6'} + + redent@3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} + + regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rollup@4.28.0: + resolution: {integrity: sha512-G9GOrmgWHBma4YfCcX8PjH0qhXSdH8B4HDE2o4/jaxj93S4DPCIDoLcXz99eWMji4hB29UFCEd7B2gwGJDR9cQ==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + rrweb-cssom@0.7.1: + resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==} + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + saxes@6.0.0: + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} + engines: {node: '>=v12.22.7'} + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true + + seroval-plugins@1.1.1: + resolution: {integrity: sha512-qNSy1+nUj7hsCOon7AO4wdAIo9P0jrzAMp18XhiOzA6/uO5TKtP7ScozVJ8T293oRIvi5wyCHSM4TrJo/c/GJA==} + engines: {node: '>=10'} + peerDependencies: + seroval: ^1.0 + + seroval@1.1.1: + resolution: {integrity: sha512-rqEO6FZk8mv7Hyv4UCj3FD3b6Waqft605TLfsCe/BiaylRpyyMC0b+uA5TJKawX3KzMrdi3wsLbCaLplrQmBvQ==} + engines: {node: '>=10'} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + solid-devtools@0.30.1: + resolution: {integrity: sha512-axpXL4JV1dnGhuei+nSGS8ewGeNkmIgFDsAlO90YyYY5t8wU1R0aYAQtL+I+5KICLKPBvfkzdcFa2br7AV4lAw==} + peerDependencies: + solid-js: ^1.8.0 + solid-start: ^0.3.0 + vite: ^2.2.3 || ^3.0.0 || ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + solid-start: + optional: true + vite: + optional: true + + solid-js@1.9.3: + resolution: {integrity: sha512-5ba3taPoZGt9GY3YlsCB24kCg0Lv/rie/HTD4kG6h4daZZz7+yK02xn8Vx8dLYBc9i6Ps5JwAbEiqjmKaLB3Ag==} + + solid-refresh@0.6.3: + resolution: {integrity: sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA==} + peerDependencies: + solid-js: ^1.3 + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + spawndamnit@3.0.1: + resolution: {integrity: sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg==} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + + std-env@3.8.0: + resolution: {integrity: sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + + strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + symbol-tree@3.2.4: + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + + term-size@2.2.1: + resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} + engines: {node: '>=8'} + + test-exclude@7.0.1: + resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==} + engines: {node: '>=18'} + + tinybench@2.9.0: + resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} + + tinyexec@0.3.1: + resolution: {integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==} + + tinypool@1.0.2: + resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==} + engines: {node: ^18.0.0 || >=20.0.0} + + tinyrainbow@1.2.0: + resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} + engines: {node: '>=14.0.0'} + + tinyspy@3.0.2: + resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} + engines: {node: '>=14.0.0'} + + tldts-core@6.1.62: + resolution: {integrity: sha512-ohONqbfobpuaylhqFbtCzc0dFFeNz85FVKSesgT8DS9OV3a25Yj730pTj7/dDtCqmgoCgEj6gDiU9XxgHKQlBw==} + + tldts@6.1.62: + resolution: {integrity: sha512-TF+wo3MgTLbf37keEwQD0IxvOZO8UZxnpPJDg5iFGAASGxYzbX/Q0y944ATEjrfxG/pF1TWRHCPbFp49Mz1Y1w==} + hasBin: true + + tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + tough-cookie@5.0.0: + resolution: {integrity: sha512-FRKsF7cz96xIIeMZ82ehjC3xW2E+O2+v11udrDYewUbszngYhsGa8z6YUMMzO9QJZzzyd0nGGXnML/TReX6W8Q==} + engines: {node: '>=16'} + + tr46@5.0.0: + resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==} + engines: {node: '>=18'} + + turbo-darwin-64@2.3.3: + resolution: {integrity: sha512-bxX82xe6du/3rPmm4aCC5RdEilIN99VUld4HkFQuw+mvFg6darNBuQxyWSHZTtc25XgYjQrjsV05888w1grpaA==} + cpu: [x64] + os: [darwin] + + turbo-darwin-arm64@2.3.3: + resolution: {integrity: sha512-DYbQwa3NsAuWkCUYVzfOUBbSUBVQzH5HWUFy2Kgi3fGjIWVZOFk86ss+xsWu//rlEAfYwEmopigsPYSmW4X15A==} + cpu: [arm64] + os: [darwin] + + turbo-linux-64@2.3.3: + resolution: {integrity: sha512-eHj9OIB0dFaP6BxB88jSuaCLsOQSYWBgmhy2ErCu6D2GG6xW3b6e2UWHl/1Ho9FsTg4uVgo4DB9wGsKa5erjUA==} + cpu: [x64] + os: [linux] + + turbo-linux-arm64@2.3.3: + resolution: {integrity: sha512-NmDE/NjZoDj1UWBhMtOPmqFLEBKhzGS61KObfrDEbXvU3lekwHeoPvAMfcovzswzch+kN2DrtbNIlz+/rp8OCg==} + cpu: [arm64] + os: [linux] + + turbo-windows-64@2.3.3: + resolution: {integrity: sha512-O2+BS4QqjK3dOERscXqv7N2GXNcqHr9hXumkMxDj/oGx9oCatIwnnwx34UmzodloSnJpgSqjl8iRWiY65SmYoQ==} + cpu: [x64] + os: [win32] + + turbo-windows-arm64@2.3.3: + resolution: {integrity: sha512-dW4ZK1r6XLPNYLIKjC4o87HxYidtRRcBeo/hZ9Wng2XM/MqqYkAyzJXJGgRMsc0MMEN9z4+ZIfnSNBrA0b08ag==} + cpu: [arm64] + os: [win32] + + turbo@2.3.3: + resolution: {integrity: sha512-DUHWQAcC8BTiUZDRzAYGvpSpGLiaOQPfYXlCieQbwUvmml/LRGIe3raKdrOPOoiX0DYlzxs2nH6BoWJoZrj8hA==} + hasBin: true + + typescript@5.7.2: + resolution: {integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==} + engines: {node: '>=14.17'} + hasBin: true + + universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + + update-browserslist-db@1.1.1: + resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + validate-html-nesting@1.2.2: + resolution: {integrity: sha512-hGdgQozCsQJMyfK5urgFcWEqsSSrK63Awe0t/IMR0bZ0QMtnuaiHzThW81guu3qx9abLi99NEuiaN6P9gVYsNg==} + + vite-node@2.1.6: + resolution: {integrity: sha512-DBfJY0n9JUwnyLxPSSUmEePT21j8JZp/sR9n+/gBwQU6DcQOioPdb8/pibWfXForbirSagZCilseYIwaL3f95A==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + + vite-plugin-solid@2.10.2: + resolution: {integrity: sha512-AOEtwMe2baBSXMXdo+BUwECC8IFHcKS6WQV/1NEd+Q7vHPap5fmIhLcAzr+DUJ04/KHx/1UBU0l1/GWP+rMAPQ==} + peerDependencies: + '@testing-library/jest-dom': ^5.16.6 || ^5.17.0 || ^6.* + solid-js: ^1.7.2 + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + '@testing-library/jest-dom': + optional: true + + vite@5.4.11: + resolution: {integrity: sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + 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 + + vitefu@0.2.5: + resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} + peerDependencies: + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + vite: + optional: true + + vitest@2.1.6: + resolution: {integrity: sha512-isUCkvPL30J4c5O5hgONeFRsDmlw6kzFEdLQHLezmDdKQHy8Ke/B/dgdTMEgU0vm+iZ0TjW8GuK83DiahBoKWQ==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + '@vitest/browser': 2.1.6 + '@vitest/ui': 2.1.6 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + + w3c-xmlserializer@5.0.0: + resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} + engines: {node: '>=18'} + + webidl-conversions@7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} + + whatwg-encoding@3.1.1: + resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} + engines: {node: '>=18'} + + whatwg-mimetype@4.0.0: + resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} + engines: {node: '>=18'} + + whatwg-url@14.0.0: + resolution: {integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==} + engines: {node: '>=18'} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + why-is-node-running@2.3.0: + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} + engines: {node: '>=8'} + hasBin: true + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + ws@8.18.0: + resolution: {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 + + xml-name-validator@5.0.0: + resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} + engines: {node: '>=18'} + + xmlchars@2.2.0: + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + +snapshots: + + '@adobe/css-tools@4.4.1': {} + + '@ampproject/remapping@2.3.0': + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + + '@babel/code-frame@7.26.2': + dependencies: + '@babel/helper-validator-identifier': 7.25.9 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/compat-data@7.26.2': {} + + '@babel/core@7.26.0': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.2 + '@babel/helper-compilation-targets': 7.25.9 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) + '@babel/helpers': 7.26.0 + '@babel/parser': 7.26.2 + '@babel/template': 7.25.9 + '@babel/traverse': 7.25.9 + '@babel/types': 7.26.0 + convert-source-map: 2.0.0 + debug: 4.3.7 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.26.2': + dependencies: + '@babel/parser': 7.26.2 + '@babel/types': 7.26.0 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 3.0.2 + + '@babel/helper-compilation-targets@7.25.9': + dependencies: + '@babel/compat-data': 7.26.2 + '@babel/helper-validator-option': 7.25.9 + browserslist: 4.24.2 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-module-imports@7.18.6': + dependencies: + '@babel/types': 7.26.0 + + '@babel/helper-module-imports@7.25.9': + dependencies: + '@babel/traverse': 7.25.9 + '@babel/types': 7.26.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@babel/traverse': 7.25.9 + transitivePeerDependencies: + - supports-color + + '@babel/helper-plugin-utils@7.25.9': {} + + '@babel/helper-string-parser@7.25.9': {} + + '@babel/helper-validator-identifier@7.25.9': {} + + '@babel/helper-validator-option@7.25.9': {} + + '@babel/helpers@7.26.0': + dependencies: + '@babel/template': 7.25.9 + '@babel/types': 7.26.0 + + '@babel/parser@7.26.2': + dependencies: + '@babel/types': 7.26.0 + + '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/runtime@7.26.0': + dependencies: + regenerator-runtime: 0.14.1 + + '@babel/template@7.25.9': + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/parser': 7.26.2 + '@babel/types': 7.26.0 + + '@babel/traverse@7.25.9': + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.2 + '@babel/parser': 7.26.2 + '@babel/template': 7.25.9 + '@babel/types': 7.26.0 + debug: 4.3.7 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.26.0': + dependencies: + '@babel/helper-string-parser': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + + '@bcoe/v8-coverage@0.2.3': {} + + '@biomejs/biome@1.9.4': + 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 + + '@biomejs/cli-darwin-arm64@1.9.4': + optional: true + + '@biomejs/cli-darwin-x64@1.9.4': + optional: true + + '@biomejs/cli-linux-arm64-musl@1.9.4': + optional: true + + '@biomejs/cli-linux-arm64@1.9.4': + optional: true + + '@biomejs/cli-linux-x64-musl@1.9.4': + optional: true + + '@biomejs/cli-linux-x64@1.9.4': + optional: true + + '@biomejs/cli-win32-arm64@1.9.4': + optional: true + + '@biomejs/cli-win32-x64@1.9.4': + optional: true + + '@changesets/apply-release-plan@7.0.6': + dependencies: + '@changesets/config': 3.0.4 + '@changesets/get-version-range-type': 0.4.0 + '@changesets/git': 3.0.2 + '@changesets/should-skip-package': 0.1.1 + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 + detect-indent: 6.1.0 + fs-extra: 7.0.1 + lodash.startcase: 4.4.0 + outdent: 0.5.0 + prettier: 2.8.8 + resolve-from: 5.0.0 + semver: 7.6.3 + + '@changesets/assemble-release-plan@6.0.5': + dependencies: + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.2 + '@changesets/should-skip-package': 0.1.1 + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 + semver: 7.6.3 + + '@changesets/changelog-git@0.2.0': + dependencies: + '@changesets/types': 6.0.0 + + '@changesets/cli@2.27.10': + dependencies: + '@changesets/apply-release-plan': 7.0.6 + '@changesets/assemble-release-plan': 6.0.5 + '@changesets/changelog-git': 0.2.0 + '@changesets/config': 3.0.4 + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.2 + '@changesets/get-release-plan': 4.0.5 + '@changesets/git': 3.0.2 + '@changesets/logger': 0.1.1 + '@changesets/pre': 2.0.1 + '@changesets/read': 0.6.2 + '@changesets/should-skip-package': 0.1.1 + '@changesets/types': 6.0.0 + '@changesets/write': 0.3.2 + '@manypkg/get-packages': 1.1.3 + ansi-colors: 4.1.3 + ci-info: 3.9.0 + enquirer: 2.4.1 + external-editor: 3.1.0 + fs-extra: 7.0.1 + mri: 1.2.0 + p-limit: 2.3.0 + package-manager-detector: 0.2.6 + picocolors: 1.1.1 + resolve-from: 5.0.0 + semver: 7.6.3 + spawndamnit: 3.0.1 + term-size: 2.2.1 + + '@changesets/config@3.0.4': + dependencies: + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.2 + '@changesets/logger': 0.1.1 + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 + fs-extra: 7.0.1 + micromatch: 4.0.8 + + '@changesets/errors@0.2.0': + dependencies: + extendable-error: 0.1.7 + + '@changesets/get-dependents-graph@2.1.2': + dependencies: + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 + picocolors: 1.1.1 + semver: 7.6.3 + + '@changesets/get-release-plan@4.0.5': + dependencies: + '@changesets/assemble-release-plan': 6.0.5 + '@changesets/config': 3.0.4 + '@changesets/pre': 2.0.1 + '@changesets/read': 0.6.2 + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 + + '@changesets/get-version-range-type@0.4.0': {} + + '@changesets/git@3.0.2': + dependencies: + '@changesets/errors': 0.2.0 + '@manypkg/get-packages': 1.1.3 + is-subdir: 1.2.0 + micromatch: 4.0.8 + spawndamnit: 3.0.1 + + '@changesets/logger@0.1.1': + dependencies: + picocolors: 1.1.1 + + '@changesets/parse@0.4.0': + dependencies: + '@changesets/types': 6.0.0 + js-yaml: 3.14.1 + + '@changesets/pre@2.0.1': + dependencies: + '@changesets/errors': 0.2.0 + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 + fs-extra: 7.0.1 + + '@changesets/read@0.6.2': + dependencies: + '@changesets/git': 3.0.2 + '@changesets/logger': 0.1.1 + '@changesets/parse': 0.4.0 + '@changesets/types': 6.0.0 + fs-extra: 7.0.1 + p-filter: 2.1.0 + picocolors: 1.1.1 + + '@changesets/should-skip-package@0.1.1': + dependencies: + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 + + '@changesets/types@4.1.0': {} + + '@changesets/types@6.0.0': {} + + '@changesets/write@0.3.2': + dependencies: + '@changesets/types': 6.0.0 + fs-extra: 7.0.1 + human-id: 1.0.2 + prettier: 2.8.8 + + '@esbuild/aix-ppc64@0.21.5': + optional: true + + '@esbuild/android-arm64@0.21.5': + optional: true + + '@esbuild/android-arm@0.21.5': + optional: true + + '@esbuild/android-x64@0.21.5': + optional: true + + '@esbuild/darwin-arm64@0.21.5': + optional: true + + '@esbuild/darwin-x64@0.21.5': + optional: true + + '@esbuild/freebsd-arm64@0.21.5': + optional: true + + '@esbuild/freebsd-x64@0.21.5': + optional: true + + '@esbuild/linux-arm64@0.21.5': + optional: true + + '@esbuild/linux-arm@0.21.5': + optional: true + + '@esbuild/linux-ia32@0.21.5': + optional: true + + '@esbuild/linux-loong64@0.21.5': + optional: true + + '@esbuild/linux-mips64el@0.21.5': + optional: true + + '@esbuild/linux-ppc64@0.21.5': + optional: true + + '@esbuild/linux-riscv64@0.21.5': + optional: true + + '@esbuild/linux-s390x@0.21.5': + optional: true + + '@esbuild/linux-x64@0.21.5': + optional: true + + '@esbuild/netbsd-x64@0.21.5': + optional: true + + '@esbuild/openbsd-x64@0.21.5': + optional: true + + '@esbuild/sunos-x64@0.21.5': + optional: true + + '@esbuild/win32-arm64@0.21.5': + optional: true + + '@esbuild/win32-ia32@0.21.5': + optional: true + + '@esbuild/win32-x64@0.21.5': + optional: true + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@istanbuljs/schema@0.1.3': {} + + '@jridgewell/gen-mapping@0.3.5': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@manypkg/find-root@1.1.0': + dependencies: + '@babel/runtime': 7.26.0 + '@types/node': 12.20.55 + find-up: 4.1.0 + fs-extra: 8.1.0 + + '@manypkg/get-packages@1.1.3': + dependencies: + '@babel/runtime': 7.26.0 + '@changesets/types': 4.1.0 + '@manypkg/find-root': 1.1.0 + fs-extra: 8.1.0 + globby: 11.1.0 + read-yaml-file: 1.1.0 + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + + '@nothing-but/utils@0.12.1': {} + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@rollup/rollup-android-arm-eabi@4.28.0': + optional: true + + '@rollup/rollup-android-arm64@4.28.0': + optional: true + + '@rollup/rollup-darwin-arm64@4.28.0': + optional: true + + '@rollup/rollup-darwin-x64@4.28.0': + optional: true + + '@rollup/rollup-freebsd-arm64@4.28.0': + optional: true + + '@rollup/rollup-freebsd-x64@4.28.0': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.28.0': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.28.0': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.28.0': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.28.0': + optional: true + + '@rollup/rollup-linux-powerpc64le-gnu@4.28.0': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.28.0': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.28.0': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.28.0': + optional: true + + '@rollup/rollup-linux-x64-musl@4.28.0': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.28.0': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.28.0': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.28.0': + optional: true + + '@solid-devtools/debugger@0.23.4(solid-js@1.9.3)': + dependencies: + '@nothing-but/utils': 0.12.1 + '@solid-devtools/shared': 0.13.2(solid-js@1.9.3) + '@solid-primitives/bounds': 0.0.118(solid-js@1.9.3) + '@solid-primitives/cursor': 0.0.112(solid-js@1.9.3) + '@solid-primitives/event-bus': 1.0.11(solid-js@1.9.3) + '@solid-primitives/event-listener': 2.3.3(solid-js@1.9.3) + '@solid-primitives/keyboard': 1.2.8(solid-js@1.9.3) + '@solid-primitives/platform': 0.1.2(solid-js@1.9.3) + '@solid-primitives/rootless': 1.4.5(solid-js@1.9.3) + '@solid-primitives/scheduled': 1.4.4(solid-js@1.9.3) + '@solid-primitives/static-store': 0.0.5(solid-js@1.9.3) + '@solid-primitives/utils': 6.2.3(solid-js@1.9.3) + solid-js: 1.9.3 + + '@solid-devtools/shared@0.13.2(solid-js@1.9.3)': + dependencies: + '@solid-primitives/event-bus': 1.0.11(solid-js@1.9.3) + '@solid-primitives/event-listener': 2.3.3(solid-js@1.9.3) + '@solid-primitives/media': 2.2.9(solid-js@1.9.3) + '@solid-primitives/refs': 1.0.8(solid-js@1.9.3) + '@solid-primitives/rootless': 1.4.5(solid-js@1.9.3) + '@solid-primitives/scheduled': 1.4.4(solid-js@1.9.3) + '@solid-primitives/static-store': 0.0.5(solid-js@1.9.3) + '@solid-primitives/styles': 0.0.111(solid-js@1.9.3) + '@solid-primitives/utils': 6.2.3(solid-js@1.9.3) + solid-js: 1.9.3 + + '@solid-primitives/bounds@0.0.118(solid-js@1.9.3)': + dependencies: + '@solid-primitives/event-listener': 2.3.3(solid-js@1.9.3) + '@solid-primitives/resize-observer': 2.0.26(solid-js@1.9.3) + '@solid-primitives/static-store': 0.0.5(solid-js@1.9.3) + '@solid-primitives/utils': 6.2.3(solid-js@1.9.3) + solid-js: 1.9.3 + + '@solid-primitives/cursor@0.0.112(solid-js@1.9.3)': + dependencies: + '@solid-primitives/utils': 6.2.3(solid-js@1.9.3) + solid-js: 1.9.3 + + '@solid-primitives/event-bus@1.0.11(solid-js@1.9.3)': + dependencies: + '@solid-primitives/utils': 6.2.3(solid-js@1.9.3) + solid-js: 1.9.3 + + '@solid-primitives/event-listener@2.3.3(solid-js@1.9.3)': + dependencies: + '@solid-primitives/utils': 6.2.3(solid-js@1.9.3) + solid-js: 1.9.3 + + '@solid-primitives/keyboard@1.2.8(solid-js@1.9.3)': + dependencies: + '@solid-primitives/event-listener': 2.3.3(solid-js@1.9.3) + '@solid-primitives/rootless': 1.4.5(solid-js@1.9.3) + '@solid-primitives/utils': 6.2.3(solid-js@1.9.3) + solid-js: 1.9.3 + + '@solid-primitives/media@2.2.9(solid-js@1.9.3)': + dependencies: + '@solid-primitives/event-listener': 2.3.3(solid-js@1.9.3) + '@solid-primitives/rootless': 1.4.5(solid-js@1.9.3) + '@solid-primitives/static-store': 0.0.8(solid-js@1.9.3) + '@solid-primitives/utils': 6.2.3(solid-js@1.9.3) + solid-js: 1.9.3 + + '@solid-primitives/platform@0.1.2(solid-js@1.9.3)': + dependencies: + solid-js: 1.9.3 + + '@solid-primitives/refs@1.0.8(solid-js@1.9.3)': + dependencies: + '@solid-primitives/utils': 6.2.3(solid-js@1.9.3) + solid-js: 1.9.3 + + '@solid-primitives/resize-observer@2.0.26(solid-js@1.9.3)': + dependencies: + '@solid-primitives/event-listener': 2.3.3(solid-js@1.9.3) + '@solid-primitives/rootless': 1.4.5(solid-js@1.9.3) + '@solid-primitives/static-store': 0.0.8(solid-js@1.9.3) + '@solid-primitives/utils': 6.2.3(solid-js@1.9.3) + solid-js: 1.9.3 + + '@solid-primitives/rootless@1.4.5(solid-js@1.9.3)': + dependencies: + '@solid-primitives/utils': 6.2.3(solid-js@1.9.3) + solid-js: 1.9.3 + + '@solid-primitives/scheduled@1.4.4(solid-js@1.9.3)': + dependencies: + solid-js: 1.9.3 + + '@solid-primitives/static-store@0.0.5(solid-js@1.9.3)': + dependencies: + '@solid-primitives/utils': 6.2.3(solid-js@1.9.3) + solid-js: 1.9.3 + + '@solid-primitives/static-store@0.0.8(solid-js@1.9.3)': + dependencies: + '@solid-primitives/utils': 6.2.3(solid-js@1.9.3) + solid-js: 1.9.3 + + '@solid-primitives/styles@0.0.111(solid-js@1.9.3)': + dependencies: + '@solid-primitives/rootless': 1.4.5(solid-js@1.9.3) + '@solid-primitives/utils': 6.2.3(solid-js@1.9.3) + solid-js: 1.9.3 + + '@solid-primitives/utils@6.2.3(solid-js@1.9.3)': + dependencies: + solid-js: 1.9.3 + + '@solidjs/testing-library@0.8.10(solid-js@1.9.3)': + dependencies: + '@testing-library/dom': 10.4.0 + solid-js: 1.9.3 + + '@testing-library/dom@10.4.0': + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/runtime': 7.26.0 + '@types/aria-query': 5.0.4 + aria-query: 5.3.0 + chalk: 4.1.2 + dom-accessibility-api: 0.5.16 + lz-string: 1.5.0 + pretty-format: 27.5.1 + + '@testing-library/jest-dom@6.6.3': + dependencies: + '@adobe/css-tools': 4.4.1 + aria-query: 5.3.2 + chalk: 3.0.0 + css.escape: 1.5.1 + dom-accessibility-api: 0.6.3 + lodash: 4.17.21 + redent: 3.0.0 + + '@types/aria-query@5.0.4': {} + + '@types/babel__core@7.20.5': + dependencies: + '@babel/parser': 7.26.2 + '@babel/types': 7.26.0 + '@types/babel__generator': 7.6.8 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.20.6 + + '@types/babel__generator@7.6.8': + dependencies: + '@babel/types': 7.26.0 + + '@types/babel__template@7.4.4': + dependencies: + '@babel/parser': 7.26.2 + '@babel/types': 7.26.0 + + '@types/babel__traverse@7.20.6': + dependencies: + '@babel/types': 7.26.0 + + '@types/estree@1.0.6': {} + + '@types/node@12.20.55': {} + + '@vitest/coverage-v8@2.1.4(vitest@2.1.6(jsdom@25.0.1))': + dependencies: + '@ampproject/remapping': 2.3.0 + '@bcoe/v8-coverage': 0.2.3 + debug: 4.3.7 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 5.0.6 + istanbul-reports: 3.1.7 + magic-string: 0.30.13 + magicast: 0.3.5 + std-env: 3.8.0 + test-exclude: 7.0.1 + tinyrainbow: 1.2.0 + vitest: 2.1.6(jsdom@25.0.1) + transitivePeerDependencies: + - supports-color + + '@vitest/expect@2.1.6': + dependencies: + '@vitest/spy': 2.1.6 + '@vitest/utils': 2.1.6 + chai: 5.1.2 + tinyrainbow: 1.2.0 + + '@vitest/mocker@2.1.6(vite@5.4.11)': + dependencies: + '@vitest/spy': 2.1.6 + estree-walker: 3.0.3 + magic-string: 0.30.14 + optionalDependencies: + vite: 5.4.11 + + '@vitest/pretty-format@2.1.6': + dependencies: + tinyrainbow: 1.2.0 + + '@vitest/runner@2.1.6': + dependencies: + '@vitest/utils': 2.1.6 + pathe: 1.1.2 + + '@vitest/snapshot@2.1.6': + dependencies: + '@vitest/pretty-format': 2.1.6 + magic-string: 0.30.14 + pathe: 1.1.2 + + '@vitest/spy@2.1.6': + dependencies: + tinyspy: 3.0.2 + + '@vitest/utils@2.1.6': + dependencies: + '@vitest/pretty-format': 2.1.6 + loupe: 3.1.2 + tinyrainbow: 1.2.0 + + agent-base@7.1.1: + dependencies: + debug: 4.3.7 + transitivePeerDependencies: + - supports-color + + ansi-colors@4.1.3: {} + + ansi-regex@5.0.1: {} + + ansi-regex@6.1.0: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@5.2.0: {} + + ansi-styles@6.2.1: {} + + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + + aria-query@5.3.0: + dependencies: + dequal: 2.0.3 + + aria-query@5.3.2: {} + + array-union@2.1.0: {} + + assertion-error@2.0.1: {} + + asynckit@0.4.0: {} + + babel-plugin-jsx-dom-expressions@0.39.3(@babel/core@7.26.0): + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-module-imports': 7.18.6 + '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0) + '@babel/types': 7.26.0 + html-entities: 2.3.3 + parse5: 7.2.1 + validate-html-nesting: 1.2.2 + + babel-preset-solid@1.9.3(@babel/core@7.26.0): + dependencies: + '@babel/core': 7.26.0 + babel-plugin-jsx-dom-expressions: 0.39.3(@babel/core@7.26.0) + + balanced-match@1.0.2: {} + + better-path-resolve@1.0.0: + dependencies: + is-windows: 1.0.2 + + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + browserslist@4.24.2: + dependencies: + caniuse-lite: 1.0.30001683 + electron-to-chromium: 1.5.64 + node-releases: 2.0.18 + update-browserslist-db: 1.1.1(browserslist@4.24.2) + + cac@6.7.14: {} + + caniuse-lite@1.0.30001683: {} + + chai@5.1.2: + dependencies: + assertion-error: 2.0.1 + check-error: 2.1.1 + deep-eql: 5.0.2 + loupe: 3.1.2 + pathval: 2.0.0 + + chalk@3.0.0: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chardet@0.7.0: {} + + check-error@2.1.1: {} + + ci-info@3.9.0: {} + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + convert-source-map@2.0.0: {} + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + css.escape@1.5.1: {} + + cssstyle@4.1.0: + dependencies: + rrweb-cssom: 0.7.1 + + csstype@3.1.3: {} + + data-urls@5.0.0: + dependencies: + whatwg-mimetype: 4.0.0 + whatwg-url: 14.0.0 + + debug@4.3.7: + dependencies: + ms: 2.1.3 + + decimal.js@10.4.3: {} + + deep-eql@5.0.2: {} + + delayed-stream@1.0.0: {} + + dequal@2.0.3: {} + + detect-indent@6.1.0: {} + + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 + + dom-accessibility-api@0.5.16: {} + + dom-accessibility-api@0.6.3: {} + + dotenv@16.4.5: {} + + eastasianwidth@0.2.0: {} + + electron-to-chromium@1.5.64: {} + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + enquirer@2.4.1: + dependencies: + ansi-colors: 4.1.3 + strip-ansi: 6.0.1 + + entities@4.5.0: {} + + es-module-lexer@1.5.4: {} + + esbuild@0.21.5: + 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 + + escalade@3.2.0: {} + + esprima@4.0.1: {} + + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.6 + + expect-type@1.1.0: {} + + extendable-error@0.1.7: {} + + external-editor@3.1.0: + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 + + fast-glob@3.3.2: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fastq@1.17.1: + dependencies: + reusify: 1.0.4 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + + foreground-child@3.3.0: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + + form-data@4.0.1: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + + fs-extra@7.0.1: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + + fs-extra@8.1.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + + fsevents@2.3.3: + optional: true + + gensync@1.0.0-beta.2: {} + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob@10.4.5: + dependencies: + foreground-child: 3.3.0 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + + globals@11.12.0: {} + + globby@11.1.0: + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 3.0.0 + + graceful-fs@4.2.11: {} + + has-flag@4.0.0: {} + + html-encoding-sniffer@4.0.0: + dependencies: + whatwg-encoding: 3.1.1 + + html-entities@2.3.3: {} + + html-escaper@2.0.2: {} + + http-proxy-agent@7.0.2: + dependencies: + agent-base: 7.1.1 + debug: 4.3.7 + transitivePeerDependencies: + - supports-color + + https-proxy-agent@7.0.5: + dependencies: + agent-base: 7.1.1 + debug: 4.3.7 + transitivePeerDependencies: + - supports-color + + human-id@1.0.2: {} + + husky@9.1.7: {} + + iconv-lite@0.4.24: + dependencies: + safer-buffer: 2.1.2 + + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + + ignore@5.3.2: {} + + indent-string@4.0.0: {} + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-number@7.0.0: {} + + is-potential-custom-element-name@1.0.1: {} + + is-subdir@1.2.0: + dependencies: + better-path-resolve: 1.0.0 + + is-what@4.1.16: {} + + is-windows@1.0.2: {} + + isexe@2.0.0: {} + + istanbul-lib-coverage@3.2.2: {} + + istanbul-lib-report@3.0.1: + dependencies: + istanbul-lib-coverage: 3.2.2 + make-dir: 4.0.0 + supports-color: 7.2.0 + + istanbul-lib-source-maps@5.0.6: + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + debug: 4.3.7 + istanbul-lib-coverage: 3.2.2 + transitivePeerDependencies: + - supports-color + + istanbul-reports@3.1.7: + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 + + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + js-tokens@4.0.0: {} + + js-yaml@3.14.1: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + + jsdom@25.0.1: + dependencies: + cssstyle: 4.1.0 + data-urls: 5.0.0 + decimal.js: 10.4.3 + form-data: 4.0.1 + html-encoding-sniffer: 4.0.0 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.5 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.13 + parse5: 7.2.1 + rrweb-cssom: 0.7.1 + saxes: 6.0.0 + symbol-tree: 3.2.4 + tough-cookie: 5.0.0 + w3c-xmlserializer: 5.0.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 3.1.1 + whatwg-mimetype: 4.0.0 + whatwg-url: 14.0.0 + ws: 8.18.0 + xml-name-validator: 5.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + jsesc@3.0.2: {} + + json5@2.2.3: {} + + jsonfile@4.0.0: + optionalDependencies: + graceful-fs: 4.2.11 + + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + + lodash.startcase@4.4.0: {} + + lodash@4.17.21: {} + + loupe@3.1.2: {} + + lru-cache@10.4.3: {} + + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + + lz-string@1.5.0: {} + + magic-string@0.30.13: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + + magic-string@0.30.14: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + + magicast@0.3.5: + dependencies: + '@babel/parser': 7.26.2 + '@babel/types': 7.26.0 + source-map-js: 1.2.1 + + make-dir@4.0.0: + dependencies: + semver: 7.6.3 + + merge-anything@5.1.7: + dependencies: + is-what: 4.1.16 + + merge2@1.4.1: {} + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + min-indent@1.0.1: {} + + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + + minipass@7.1.2: {} + + mri@1.2.0: {} + + ms@2.1.3: {} + + nanoid@3.3.8: {} + + node-releases@2.0.18: {} + + nwsapi@2.2.13: {} + + os-tmpdir@1.0.2: {} + + outdent@0.5.0: {} + + p-filter@2.1.0: + dependencies: + p-map: 2.1.0 + + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + + p-map@2.1.0: {} + + p-try@2.2.0: {} + + package-json-from-dist@1.0.1: {} + + package-manager-detector@0.2.6: {} + + parse5@7.2.1: + dependencies: + entities: 4.5.0 + + path-exists@4.0.0: {} + + path-key@3.1.1: {} + + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 + + path-type@4.0.0: {} + + pathe@1.1.2: {} + + pathval@2.0.0: {} + + picocolors@1.1.1: {} + + picomatch@2.3.1: {} + + pify@4.0.1: {} + + postcss@8.4.49: + dependencies: + nanoid: 3.3.8 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + prettier@2.8.8: {} + + pretty-format@27.5.1: + dependencies: + ansi-regex: 5.0.1 + ansi-styles: 5.2.0 + react-is: 17.0.2 + + punycode@2.3.1: {} + + queue-microtask@1.2.3: {} + + react-is@17.0.2: {} + + read-yaml-file@1.1.0: + dependencies: + graceful-fs: 4.2.11 + js-yaml: 3.14.1 + pify: 4.0.1 + strip-bom: 3.0.0 + + redent@3.0.0: + dependencies: + indent-string: 4.0.0 + strip-indent: 3.0.0 + + regenerator-runtime@0.14.1: {} + + resolve-from@5.0.0: {} + + reusify@1.0.4: {} + + rollup@4.28.0: + dependencies: + '@types/estree': 1.0.6 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.28.0 + '@rollup/rollup-android-arm64': 4.28.0 + '@rollup/rollup-darwin-arm64': 4.28.0 + '@rollup/rollup-darwin-x64': 4.28.0 + '@rollup/rollup-freebsd-arm64': 4.28.0 + '@rollup/rollup-freebsd-x64': 4.28.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.28.0 + '@rollup/rollup-linux-arm-musleabihf': 4.28.0 + '@rollup/rollup-linux-arm64-gnu': 4.28.0 + '@rollup/rollup-linux-arm64-musl': 4.28.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.28.0 + '@rollup/rollup-linux-riscv64-gnu': 4.28.0 + '@rollup/rollup-linux-s390x-gnu': 4.28.0 + '@rollup/rollup-linux-x64-gnu': 4.28.0 + '@rollup/rollup-linux-x64-musl': 4.28.0 + '@rollup/rollup-win32-arm64-msvc': 4.28.0 + '@rollup/rollup-win32-ia32-msvc': 4.28.0 + '@rollup/rollup-win32-x64-msvc': 4.28.0 + fsevents: 2.3.3 + + rrweb-cssom@0.7.1: {} + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + safer-buffer@2.1.2: {} + + saxes@6.0.0: + dependencies: + xmlchars: 2.2.0 + + semver@6.3.1: {} + + semver@7.6.3: {} + + seroval-plugins@1.1.1(seroval@1.1.1): + dependencies: + seroval: 1.1.1 + + seroval@1.1.1: {} + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + siginfo@2.0.0: {} + + signal-exit@4.1.0: {} + + slash@3.0.0: {} + + solid-devtools@0.30.1(solid-js@1.9.3)(vite@5.4.11): + dependencies: + '@babel/core': 7.26.0 + '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.0) + '@babel/types': 7.26.0 + '@solid-devtools/debugger': 0.23.4(solid-js@1.9.3) + '@solid-devtools/shared': 0.13.2(solid-js@1.9.3) + solid-js: 1.9.3 + optionalDependencies: + vite: 5.4.11 + transitivePeerDependencies: + - supports-color + + solid-js@1.9.3: + dependencies: + csstype: 3.1.3 + seroval: 1.1.1 + seroval-plugins: 1.1.1(seroval@1.1.1) + + solid-refresh@0.6.3(solid-js@1.9.3): + dependencies: + '@babel/generator': 7.26.2 + '@babel/helper-module-imports': 7.25.9 + '@babel/types': 7.26.0 + solid-js: 1.9.3 + transitivePeerDependencies: + - supports-color + + source-map-js@1.2.1: {} + + spawndamnit@3.0.1: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + + sprintf-js@1.0.3: {} + + stackback@0.0.2: {} + + std-env@3.8.0: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.1.0 + + strip-bom@3.0.0: {} + + strip-indent@3.0.0: + dependencies: + min-indent: 1.0.1 + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + symbol-tree@3.2.4: {} + + term-size@2.2.1: {} + + test-exclude@7.0.1: + dependencies: + '@istanbuljs/schema': 0.1.3 + glob: 10.4.5 + minimatch: 9.0.5 + + tinybench@2.9.0: {} + + tinyexec@0.3.1: {} + + tinypool@1.0.2: {} + + tinyrainbow@1.2.0: {} + + tinyspy@3.0.2: {} + + tldts-core@6.1.62: {} + + tldts@6.1.62: + dependencies: + tldts-core: 6.1.62 + + tmp@0.0.33: + dependencies: + os-tmpdir: 1.0.2 + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + tough-cookie@5.0.0: + dependencies: + tldts: 6.1.62 + + tr46@5.0.0: + dependencies: + punycode: 2.3.1 + + turbo-darwin-64@2.3.3: + optional: true + + turbo-darwin-arm64@2.3.3: + optional: true + + turbo-linux-64@2.3.3: + optional: true + + turbo-linux-arm64@2.3.3: + optional: true + + turbo-windows-64@2.3.3: + optional: true + + turbo-windows-arm64@2.3.3: + optional: true + + turbo@2.3.3: + optionalDependencies: + turbo-darwin-64: 2.3.3 + turbo-darwin-arm64: 2.3.3 + turbo-linux-64: 2.3.3 + turbo-linux-arm64: 2.3.3 + turbo-windows-64: 2.3.3 + turbo-windows-arm64: 2.3.3 + + typescript@5.7.2: {} + + universalify@0.1.2: {} + + update-browserslist-db@1.1.1(browserslist@4.24.2): + dependencies: + browserslist: 4.24.2 + escalade: 3.2.0 + picocolors: 1.1.1 + + validate-html-nesting@1.2.2: {} + + vite-node@2.1.6: + dependencies: + cac: 6.7.14 + debug: 4.3.7 + es-module-lexer: 1.5.4 + pathe: 1.1.2 + vite: 5.4.11 + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + + vite-plugin-solid@2.10.2(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11): + dependencies: + '@babel/core': 7.26.0 + '@types/babel__core': 7.20.5 + babel-preset-solid: 1.9.3(@babel/core@7.26.0) + merge-anything: 5.1.7 + solid-js: 1.9.3 + solid-refresh: 0.6.3(solid-js@1.9.3) + vite: 5.4.11 + vitefu: 0.2.5(vite@5.4.11) + optionalDependencies: + '@testing-library/jest-dom': 6.6.3 + transitivePeerDependencies: + - supports-color + + vite@5.4.11: + dependencies: + esbuild: 0.21.5 + postcss: 8.4.49 + rollup: 4.28.0 + optionalDependencies: + fsevents: 2.3.3 + + vitefu@0.2.5(vite@5.4.11): + optionalDependencies: + vite: 5.4.11 + + vitest@2.1.6(jsdom@25.0.1): + dependencies: + '@vitest/expect': 2.1.6 + '@vitest/mocker': 2.1.6(vite@5.4.11) + '@vitest/pretty-format': 2.1.6 + '@vitest/runner': 2.1.6 + '@vitest/snapshot': 2.1.6 + '@vitest/spy': 2.1.6 + '@vitest/utils': 2.1.6 + chai: 5.1.2 + debug: 4.3.7 + expect-type: 1.1.0 + magic-string: 0.30.14 + pathe: 1.1.2 + std-env: 3.8.0 + tinybench: 2.9.0 + tinyexec: 0.3.1 + tinypool: 1.0.2 + tinyrainbow: 1.2.0 + vite: 5.4.11 + vite-node: 2.1.6 + why-is-node-running: 2.3.0 + optionalDependencies: + jsdom: 25.0.1 + transitivePeerDependencies: + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + + w3c-xmlserializer@5.0.0: + dependencies: + xml-name-validator: 5.0.0 + + webidl-conversions@7.0.0: {} + + whatwg-encoding@3.1.1: + dependencies: + iconv-lite: 0.6.3 + + whatwg-mimetype@4.0.0: {} + + whatwg-url@14.0.0: + dependencies: + tr46: 5.0.0 + webidl-conversions: 7.0.0 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + why-is-node-running@2.3.0: + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + + ws@8.18.0: {} + + xml-name-validator@5.0.0: {} + + xmlchars@2.2.0: {} + + yallist@3.1.1: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..3ff5faa --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,3 @@ +packages: + - "apps/*" + - "packages/*" diff --git a/scripts/clean.sh b/scripts/clean.sh new file mode 100755 index 0000000..e2221a4 --- /dev/null +++ b/scripts/clean.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +rm -rf .turbo node_modules \ No newline at end of file diff --git a/scripts/commit.js b/scripts/commit.js new file mode 100644 index 0000000..c61a390 --- /dev/null +++ b/scripts/commit.js @@ -0,0 +1,10 @@ +const getAddMessage = async (changeset, options) => + `docs(changeset): ${changeset.summary}`; + +const getVersionMessage = async (releasePlan, options) => + "chore(release): release packages"; + +module.exports = { + getAddMessage, + getVersionMessage, +}; diff --git a/scripts/publish.sh b/scripts/publish.sh new file mode 100755 index 0000000..53a4ce5 --- /dev/null +++ b/scripts/publish.sh @@ -0,0 +1,32 @@ +#!/usr/bin/env bash + +# Navigate to the packages directory +cd apps || { echo "Packages directory not found!"; exit 1; } + +# Loop through each subdirectory in the packages folder +for dir in */; do + # Navigate into the package directory + cd "$dir" || continue + + # Check if package.json exists + if [ -f "package.json" ]; then + echo "Publishing package: $dir" + + # Publish the package with public access + pnpm publish --access public + + # Check for successful publish + if [ $? -eq 0 ]; then + echo "Successfully published: $dir" + else + echo "Failed to publish: $dir" + fi + else + echo "No package.json found in $dir, skipping..." + fi + + # Navigate back to the packages directory + cd .. +done + +echo "All packages have been processed." diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..ab45386 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,29 @@ +{ + "compilerOptions": { + "allowJs": true, + "target": "es2023", + "module": "es2022", + "types": [ + "vite/client" + ], + "jsx": "preserve", + "jsxImportSource": "solid-js", + "strict": true, + "forceConsistentCasingInFileNames": true, + "resolveJsonModule": true, + "moduleResolution": "Bundler", + "esModuleInterop": true, + "skipLibCheck": true, + "incremental": true, + "isolatedModules": true, + "allowSyntheticDefaultImports": true, + "noEmit": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "noImplicitAny": true, + "noImplicitThis": true, + "noImplicitOverride": true + } +} diff --git a/turbo.json b/turbo.json new file mode 100644 index 0000000..7fdd730 --- /dev/null +++ b/turbo.json @@ -0,0 +1,30 @@ +{ + "$schema": "https://turborepo.org/schema.json", + "globalDependencies": [ + ".env" + ], + "globalEnv": [ + "NODE_ENV" + ], + "tasks": { + "build": { + "dependsOn": [ + "^build" + ], + "outputs": [ + "dist/**" + ], + "cache": true + }, + "test": { + "dependsOn": [ + "build" + ] + }, + "clean": { + "dependsOn": [ + "^clean" + ] + } + } +}