From fb1d4a0e61ccad11f978f5b06428ae8fa3c476f1 Mon Sep 17 00:00:00 2001 From: Fred Boniface Date: Thu, 12 Feb 2026 20:32:06 +0000 Subject: [PATCH] Init new PWA Repository --- .gitignore | 25 + .npmrc | 1 + .prettierignore | 9 + .prettierrc | 15 + README.md | 43 +- e2e/demo.test.ts | 6 + eslint.config.js | 39 + package-lock.json | 3849 +++++++++++++++++++++++++++ package.json | 43 + playwright.config.ts | 6 + src/app.d.ts | 13 + src/app.html | 11 + src/demo.spec.ts | 7 + src/lib/assets/apple-touch-icon.png | Bin 0 -> 13667 bytes src/lib/assets/logo-maskable.svg | 1 + src/lib/assets/round-logo-text.svg | 1 + src/lib/assets/round-logo.svg | 1 + src/routes/+layout.svelte | 11 + src/routes/+page.svelte | 2 + src/routes/page.svelte.spec.ts | 13 + static/favicon.ico | Bin 0 -> 129842 bytes static/robots.txt | 3 + svelte.config.js | 6 + tsconfig.json | 20 + vite.config.ts | 35 + 25 files changed, 4158 insertions(+), 2 deletions(-) create mode 100644 .gitignore create mode 100644 .npmrc create mode 100644 .prettierignore create mode 100644 .prettierrc create mode 100644 e2e/demo.test.ts create mode 100644 eslint.config.js create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 playwright.config.ts create mode 100644 src/app.d.ts create mode 100644 src/app.html create mode 100644 src/demo.spec.ts create mode 100644 src/lib/assets/apple-touch-icon.png create mode 100644 src/lib/assets/logo-maskable.svg create mode 100644 src/lib/assets/round-logo-text.svg create mode 100644 src/lib/assets/round-logo.svg create mode 100644 src/routes/+layout.svelte create mode 100644 src/routes/+page.svelte create mode 100644 src/routes/page.svelte.spec.ts create mode 100644 static/favicon.ico create mode 100644 static/robots.txt create mode 100644 svelte.config.js create mode 100644 tsconfig.json create mode 100644 vite.config.ts diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..41f1bdc --- /dev/null +++ b/.gitignore @@ -0,0 +1,25 @@ +node_modules + +# Output +.output +.vercel +.netlify +.wrangler +/.svelte-kit +/build + +# OS +.DS_Store +Thumbs.db + +# Env +.env +.env.* +!.env.example +!.env.test + +# Vite +vite.config.js.timestamp-* +vite.config.ts.timestamp-* +# Playwright +test-results diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..b6f27f1 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +engine-strict=true diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..7d74fe2 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,9 @@ +# Package Managers +package-lock.json +pnpm-lock.yaml +yarn.lock +bun.lock +bun.lockb + +# Miscellaneous +/static/ diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..3f7802c --- /dev/null +++ b/.prettierrc @@ -0,0 +1,15 @@ +{ + "useTabs": true, + "singleQuote": true, + "trailingComma": "none", + "printWidth": 100, + "plugins": ["prettier-plugin-svelte"], + "overrides": [ + { + "files": "*.svelte", + "options": { + "parser": "svelte" + } + } + ] +} diff --git a/README.md b/README.md index dcad0ed..bc95d1b 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,42 @@ -# web-pwa +# sv -OwlBoard web application \ No newline at end of file +Everything you need to build a Svelte project, powered by [`sv`](https://github.com/sveltejs/cli). + +## Creating a project + +If you're seeing this, you've probably already done this step. Congrats! + +```sh +# create a new project +npx sv create my-app +``` + +To recreate this project with the same configuration: + +```sh +# recreate this project +npx sv create --template minimal --types ts --add prettier eslint sveltekit-adapter="adapter:static" vitest="usages:unit,component" playwright --install npm . +``` + +## Developing + +Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server: + +```sh +npm run dev + +# or start the server and open the app in a new browser tab +npm run dev -- --open +``` + +## Building + +To create a production version of your app: + +```sh +npm run build +``` + +You can preview the production build with `npm run preview`. + +> To deploy your app, you may need to install an [adapter](https://svelte.dev/docs/kit/adapters) for your target environment. diff --git a/e2e/demo.test.ts b/e2e/demo.test.ts new file mode 100644 index 0000000..9985ce1 --- /dev/null +++ b/e2e/demo.test.ts @@ -0,0 +1,6 @@ +import { expect, test } from '@playwright/test'; + +test('home page has expected h1', async ({ page }) => { + await page.goto('/'); + await expect(page.locator('h1')).toBeVisible(); +}); diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..9690379 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,39 @@ +import prettier from 'eslint-config-prettier'; +import path from 'node:path'; +import { includeIgnoreFile } from '@eslint/compat'; +import js from '@eslint/js'; +import svelte from 'eslint-plugin-svelte'; +import { defineConfig } from 'eslint/config'; +import globals from 'globals'; +import ts from 'typescript-eslint'; +import svelteConfig from './svelte.config.js'; + +const gitignorePath = path.resolve(import.meta.dirname, '.gitignore'); + +export default defineConfig( + includeIgnoreFile(gitignorePath), + js.configs.recommended, + ...ts.configs.recommended, + ...svelte.configs.recommended, + prettier, + ...svelte.configs.prettier, + { + languageOptions: { globals: { ...globals.browser, ...globals.node } }, + rules: { + // typescript-eslint strongly recommend that you do not use the no-undef lint rule on TypeScript projects. + // see: https://typescript-eslint.io/troubleshooting/faqs/eslint/#i-get-errors-from-the-no-undef-rule-about-global-variables-not-being-defined-even-though-there-are-no-typescript-errors + 'no-undef': 'off' + } + }, + { + files: ['**/*.svelte', '**/*.svelte.ts', '**/*.svelte.js'], + languageOptions: { + parserOptions: { + projectService: true, + extraFileExtensions: ['.svelte'], + parser: ts.parser, + svelteConfig + } + } + } +); diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..091e305 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,3849 @@ +{ + "name": "web-pwa", + "version": "0.0.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "web-pwa", + "version": "0.0.1", + "devDependencies": { + "@eslint/compat": "^2.0.2", + "@eslint/js": "^9.39.2", + "@playwright/test": "^1.58.1", + "@sveltejs/adapter-static": "^3.0.10", + "@sveltejs/kit": "^2.50.2", + "@sveltejs/vite-plugin-svelte": "^6.2.4", + "@types/node": "^22", + "@vitest/browser-playwright": "^4.0.18", + "eslint": "^9.39.2", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-svelte": "^3.14.0", + "globals": "^17.3.0", + "playwright": "^1.58.1", + "prettier": "^3.8.1", + "prettier-plugin-svelte": "^3.4.1", + "svelte": "^5.49.2", + "svelte-check": "^4.3.6", + "typescript": "^5.9.3", + "typescript-eslint": "^8.54.0", + "vite": "^7.3.1", + "vitest": "^4.0.18", + "vitest-browser-svelte": "^2.0.2" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.3.tgz", + "integrity": "sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.3.tgz", + "integrity": "sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.3.tgz", + "integrity": "sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.3.tgz", + "integrity": "sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.3.tgz", + "integrity": "sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.3.tgz", + "integrity": "sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.3.tgz", + "integrity": "sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.3.tgz", + "integrity": "sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.3.tgz", + "integrity": "sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.3.tgz", + "integrity": "sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.3.tgz", + "integrity": "sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.3.tgz", + "integrity": "sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.3.tgz", + "integrity": "sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.3.tgz", + "integrity": "sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.3.tgz", + "integrity": "sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.3.tgz", + "integrity": "sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.3.tgz", + "integrity": "sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.3.tgz", + "integrity": "sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.3.tgz", + "integrity": "sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.3.tgz", + "integrity": "sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.3.tgz", + "integrity": "sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.3.tgz", + "integrity": "sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.3.tgz", + "integrity": "sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.3.tgz", + "integrity": "sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.3.tgz", + "integrity": "sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.3.tgz", + "integrity": "sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", + "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/compat": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-2.0.2.tgz", + "integrity": "sha512-pR1DoD0h3HfF675QZx0xsyrsU8q70Z/plx7880NOhS02NuWLgBCOMDL787nUeQ7EWLkxv3bPQJaarjcPQb2Dwg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^1.1.0" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "peerDependencies": { + "eslint": "^8.40 || 9 || 10" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/@eslint/config-array": { + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz", + "integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.7", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", + "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-helpers/node_modules/@eslint/core": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-1.1.0.tgz", + "integrity": "sha512-/nr9K9wkr3P1EzFTdFdMoLuo1PmIxjmwvPozwoSodjNBdefGujXQUF93u1DDZpEaTuDvMsIQddsd35BwtrW9Xw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.3.tgz", + "integrity": "sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.1", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "9.39.2", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.2.tgz", + "integrity": "sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", + "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit/node_modules/@eslint/core": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.7", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz", + "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.4.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@playwright/test": { + "version": "1.58.2", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.58.2.tgz", + "integrity": "sha512-akea+6bHYBBfA9uQqSYmlJXn61cTa+jbO87xVLCWbTqbWadRVmhxlXATaOjOgcBaWU4ePo0wB41KMFv3o35IXA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright": "1.58.2" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.29", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz", + "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.57.1.tgz", + "integrity": "sha512-A6ehUVSiSaaliTxai040ZpZ2zTevHYbvu/lDoeAteHI8QnaosIzm4qwtezfRg1jOYaUmnzLX1AOD6Z+UJjtifg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.57.1.tgz", + "integrity": "sha512-dQaAddCY9YgkFHZcFNS/606Exo8vcLHwArFZ7vxXq4rigo2bb494/xKMMwRRQW6ug7Js6yXmBZhSBRuBvCCQ3w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.57.1.tgz", + "integrity": "sha512-crNPrwJOrRxagUYeMn/DZwqN88SDmwaJ8Cvi/TN1HnWBU7GwknckyosC2gd0IqYRsHDEnXf328o9/HC6OkPgOg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.57.1.tgz", + "integrity": "sha512-Ji8g8ChVbKrhFtig5QBV7iMaJrGtpHelkB3lsaKzadFBe58gmjfGXAOfI5FV0lYMH8wiqsxKQ1C9B0YTRXVy4w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.57.1.tgz", + "integrity": "sha512-R+/WwhsjmwodAcz65guCGFRkMb4gKWTcIeLy60JJQbXrJ97BOXHxnkPFrP+YwFlaS0m+uWJTstrUA9o+UchFug==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.57.1.tgz", + "integrity": "sha512-IEQTCHeiTOnAUC3IDQdzRAGj3jOAYNr9kBguI7MQAAZK3caezRrg0GxAb6Hchg4lxdZEI5Oq3iov/w/hnFWY9Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.57.1.tgz", + "integrity": "sha512-F8sWbhZ7tyuEfsmOxwc2giKDQzN3+kuBLPwwZGyVkLlKGdV1nvnNwYD0fKQ8+XS6hp9nY7B+ZeK01EBUE7aHaw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.57.1.tgz", + "integrity": "sha512-rGfNUfn0GIeXtBP1wL5MnzSj98+PZe/AXaGBCRmT0ts80lU5CATYGxXukeTX39XBKsxzFpEeK+Mrp9faXOlmrw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.57.1.tgz", + "integrity": "sha512-MMtej3YHWeg/0klK2Qodf3yrNzz6CGjo2UntLvk2RSPlhzgLvYEB3frRvbEF2wRKh1Z2fDIg9KRPe1fawv7C+g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.57.1.tgz", + "integrity": "sha512-1a/qhaaOXhqXGpMFMET9VqwZakkljWHLmZOX48R0I/YLbhdxr1m4gtG1Hq7++VhVUmf+L3sTAf9op4JlhQ5u1Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.57.1.tgz", + "integrity": "sha512-QWO6RQTZ/cqYtJMtxhkRkidoNGXc7ERPbZN7dVW5SdURuLeVU7lwKMpo18XdcmpWYd0qsP1bwKPf7DNSUinhvA==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.57.1.tgz", + "integrity": "sha512-xpObYIf+8gprgWaPP32xiN5RVTi/s5FCR+XMXSKmhfoJjrpRAjCuuqQXyxUa/eJTdAE6eJ+KDKaoEqjZQxh3Gw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.57.1.tgz", + "integrity": "sha512-4BrCgrpZo4hvzMDKRqEaW1zeecScDCR+2nZ86ATLhAoJ5FQ+lbHVD3ttKe74/c7tNT9c6F2viwB3ufwp01Oh2w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.57.1.tgz", + "integrity": "sha512-NOlUuzesGauESAyEYFSe3QTUguL+lvrN1HtwEEsU2rOwdUDeTMJdO5dUYl/2hKf9jWydJrO9OL/XSSf65R5+Xw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.57.1.tgz", + "integrity": "sha512-ptA88htVp0AwUUqhVghwDIKlvJMD/fmL/wrQj99PRHFRAG6Z5nbWoWG4o81Nt9FT+IuqUQi+L31ZKAFeJ5Is+A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.57.1.tgz", + "integrity": "sha512-S51t7aMMTNdmAMPpBg7OOsTdn4tySRQvklmL3RpDRyknk87+Sp3xaumlatU+ppQ+5raY7sSTcC2beGgvhENfuw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.57.1.tgz", + "integrity": "sha512-Bl00OFnVFkL82FHbEqy3k5CUCKH6OEJL54KCyx2oqsmZnFTR8IoNqBF+mjQVcRCT5sB6yOvK8A37LNm/kPJiZg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.57.1.tgz", + "integrity": "sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.57.1.tgz", + "integrity": "sha512-HFps0JeGtuOR2convgRRkHCekD7j+gdAuXM+/i6kGzQtFhlCtQkpwtNzkNj6QhCDp7DRJ7+qC/1Vg2jt5iSOFw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.57.1.tgz", + "integrity": "sha512-H+hXEv9gdVQuDTgnqD+SQffoWoc0Of59AStSzTEj/feWTBAnSfSD3+Dql1ZruJQxmykT/JVY0dE8Ka7z0DH1hw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.57.1.tgz", + "integrity": "sha512-4wYoDpNg6o/oPximyc/NG+mYUejZrCU2q+2w6YZqrAs2UcNUChIZXjtafAiiZSUc7On8v5NyNj34Kzj/Ltk6dQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.57.1.tgz", + "integrity": "sha512-O54mtsV/6LW3P8qdTcamQmuC990HDfR71lo44oZMZlXU4tzLrbvTii87Ni9opq60ds0YzuAlEr/GNwuNluZyMQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.57.1.tgz", + "integrity": "sha512-P3dLS+IerxCT/7D2q2FYcRdWRl22dNbrbBEtxdWhXrfIMPP9lQhb5h4Du04mdl5Woq05jVCDPCMF7Ub0NAjIew==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.57.1.tgz", + "integrity": "sha512-VMBH2eOOaKGtIJYleXsi2B8CPVADrh+TyNxJ4mWPnKfLB/DBUmzW+5m1xUrcwWoMfSLagIRpjUFeW5CO5hyciQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.57.1.tgz", + "integrity": "sha512-mxRFDdHIWRxg3UfIIAwCm6NzvxG0jDX/wBN6KsQFTvKFqqg9vTrWUE68qEjHt19A5wwx5X5aUi2zuZT7YR0jrA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@standard-schema/spec": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@sveltejs/acorn-typescript": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@sveltejs/acorn-typescript/-/acorn-typescript-1.0.9.tgz", + "integrity": "sha512-lVJX6qEgs/4DOcRTpo56tmKzVPtoWAaVbL4hfO7t7NVwl9AAXzQR6cihesW1BmNMPl+bK6dreu2sOKBP2Q9CIA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^8.9.0" + } + }, + "node_modules/@sveltejs/adapter-static": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@sveltejs/adapter-static/-/adapter-static-3.0.10.tgz", + "integrity": "sha512-7D9lYFWJmB7zxZyTE/qxjksvMqzMuYrrsyh1f4AlZqeZeACPRySjbC3aFiY55wb1tWUaKOQG9PVbm74JcN2Iew==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@sveltejs/kit": "^2.0.0" + } + }, + "node_modules/@sveltejs/kit": { + "version": "2.50.2", + "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.50.2.tgz", + "integrity": "sha512-875hTUkEbz+MyJIxWbQjfMaekqdmEKUUfR7JyKcpfMRZqcGyrO9Gd+iS1D/Dx8LpE5FEtutWGOtlAh4ReSAiOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@standard-schema/spec": "^1.0.0", + "@sveltejs/acorn-typescript": "^1.0.5", + "@types/cookie": "^0.6.0", + "acorn": "^8.14.1", + "cookie": "^0.6.0", + "devalue": "^5.6.2", + "esm-env": "^1.2.2", + "kleur": "^4.1.5", + "magic-string": "^0.30.5", + "mrmime": "^2.0.0", + "sade": "^1.8.1", + "set-cookie-parser": "^3.0.0", + "sirv": "^3.0.0" + }, + "bin": { + "svelte-kit": "svelte-kit.js" + }, + "engines": { + "node": ">=18.13" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.0.0", + "@sveltejs/vite-plugin-svelte": "^3.0.0 || ^4.0.0-next.1 || ^5.0.0 || ^6.0.0-next.0", + "svelte": "^4.0.0 || ^5.0.0-next.0", + "typescript": "^5.3.3", + "vite": "^5.0.3 || ^6.0.0 || ^7.0.0-beta.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/@sveltejs/vite-plugin-svelte": { + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-6.2.4.tgz", + "integrity": "sha512-ou/d51QSdTyN26D7h6dSpusAKaZkAiGM55/AKYi+9AGZw7q85hElbjK3kEyzXHhLSnRISHOYzVge6x0jRZ7DXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sveltejs/vite-plugin-svelte-inspector": "^5.0.0", + "deepmerge": "^4.3.1", + "magic-string": "^0.30.21", + "obug": "^2.1.0", + "vitefu": "^1.1.1" + }, + "engines": { + "node": "^20.19 || ^22.12 || >=24" + }, + "peerDependencies": { + "svelte": "^5.0.0", + "vite": "^6.3.0 || ^7.0.0" + } + }, + "node_modules/@sveltejs/vite-plugin-svelte-inspector": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-5.0.2.tgz", + "integrity": "sha512-TZzRTcEtZffICSAoZGkPSl6Etsj2torOVrx6Uw0KpXxrec9Gg6jFWQ60Q3+LmNGfZSxHRCZL7vXVZIWmuV50Ig==", + "dev": true, + "license": "MIT", + "dependencies": { + "obug": "^2.1.0" + }, + "engines": { + "node": "^20.19 || ^22.12 || >=24" + }, + "peerDependencies": { + "@sveltejs/vite-plugin-svelte": "^6.0.0-next.0", + "svelte": "^5.0.0", + "vite": "^6.3.0 || ^7.0.0" + } + }, + "node_modules/@testing-library/svelte-core": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@testing-library/svelte-core/-/svelte-core-1.0.0.tgz", + "integrity": "sha512-VkUePoLV6oOYwSUvX6ShA8KLnJqZiYMIbP2JW2t0GLWLkJxKGvuH5qrrZBV/X7cXFnLGuFQEC7RheYiZOW68KQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "svelte": "^3 || ^4 || ^5 || ^5.0.0-next.0" + } + }, + "node_modules/@types/chai": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", + "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/deep-eql": "*", + "assertion-error": "^2.0.1" + } + }, + "node_modules/@types/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/deep-eql": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.19.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.11.tgz", + "integrity": "sha512-BH7YwL6rA93ReqeQS1c4bsPpcfOmJasG+Fkr6Y59q83f9M1WcBRHR2vM+P9eOisYRcN3ujQoiZY8uk5W+1WL8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.55.0.tgz", + "integrity": "sha512-1y/MVSz0NglV1ijHC8OT49mPJ4qhPYjiK08YUQVbIOyu+5k862LKUHFkpKHWu//zmr7hDR2rhwUm6gnCGNmGBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.12.2", + "@typescript-eslint/scope-manager": "8.55.0", + "@typescript-eslint/type-utils": "8.55.0", + "@typescript-eslint/utils": "8.55.0", + "@typescript-eslint/visitor-keys": "8.55.0", + "ignore": "^7.0.5", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.4.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.55.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.55.0.tgz", + "integrity": "sha512-4z2nCSBfVIMnbuu8uinj+f0o4qOeggYJLbjpPHka3KH1om7e+H9yLKTYgksTaHcGco+NClhhY2vyO3HsMH1RGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "8.55.0", + "@typescript-eslint/types": "8.55.0", + "@typescript-eslint/typescript-estree": "8.55.0", + "@typescript-eslint/visitor-keys": "8.55.0", + "debug": "^4.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.55.0.tgz", + "integrity": "sha512-zRcVVPFUYWa3kNnjaZGXSu3xkKV1zXy8M4nO/pElzQhFweb7PPtluDLQtKArEOGmjXoRjnUZ29NjOiF0eCDkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.55.0", + "@typescript-eslint/types": "^8.55.0", + "debug": "^4.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.55.0.tgz", + "integrity": "sha512-fVu5Omrd3jeqeQLiB9f1YsuK/iHFOwb04bCtY4BSCLgjNbOD33ZdV6KyEqplHr+IlpgT0QTZ/iJ+wT7hvTx49Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.55.0", + "@typescript-eslint/visitor-keys": "8.55.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.55.0.tgz", + "integrity": "sha512-1R9cXqY7RQd7WuqSN47PK9EDpgFUK3VqdmbYrvWJZYDd0cavROGn+74ktWBlmJ13NXUQKlZ/iAEQHI/V0kKe0Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.55.0.tgz", + "integrity": "sha512-x1iH2unH4qAt6I37I2CGlsNs+B9WGxurP2uyZLRz6UJoZWDBx9cJL1xVN/FiOmHEONEg6RIufdvyT0TEYIgC5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.55.0", + "@typescript-eslint/typescript-estree": "8.55.0", + "@typescript-eslint/utils": "8.55.0", + "debug": "^4.4.3", + "ts-api-utils": "^2.4.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.55.0.tgz", + "integrity": "sha512-ujT0Je8GI5BJWi+/mMoR0wxwVEQaxM+pi30xuMiJETlX80OPovb2p9E8ss87gnSVtYXtJoU9U1Cowcr6w2FE0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.55.0.tgz", + "integrity": "sha512-EwrH67bSWdx/3aRQhCoxDaHM+CrZjotc2UCCpEDVqfCE+7OjKAGWNY2HsCSTEVvWH2clYQK8pdeLp42EVs+xQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/project-service": "8.55.0", + "@typescript-eslint/tsconfig-utils": "8.55.0", + "@typescript-eslint/types": "8.55.0", + "@typescript-eslint/visitor-keys": "8.55.0", + "debug": "^4.4.3", + "minimatch": "^9.0.5", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ts-api-utils": "^2.4.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.55.0.tgz", + "integrity": "sha512-BqZEsnPGdYpgyEIkDC1BadNY8oMwckftxBT+C8W0g1iKPdeqKZBtTfnvcq0nf60u7MkjFO8RBvpRGZBPw4L2ow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.9.1", + "@typescript-eslint/scope-manager": "8.55.0", + "@typescript-eslint/types": "8.55.0", + "@typescript-eslint/typescript-estree": "8.55.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.55.0.tgz", + "integrity": "sha512-AxNRwEie8Nn4eFS1FzDMJWIISMGoXMb037sgCBJ3UR6o0fQTzr2tqN9WT+DkWJPhIdQCfV7T6D387566VtnCJA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.55.0", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@vitest/browser": { + "version": "4.0.18", + "resolved": "https://registry.npmjs.org/@vitest/browser/-/browser-4.0.18.tgz", + "integrity": "sha512-gVQqh7paBz3gC+ZdcCmNSWJMk70IUjDeVqi+5m5vYpEHsIwRgw3Y545jljtajhkekIpIp5Gg8oK7bctgY0E2Ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/mocker": "4.0.18", + "@vitest/utils": "4.0.18", + "magic-string": "^0.30.21", + "pixelmatch": "7.1.0", + "pngjs": "^7.0.0", + "sirv": "^3.0.2", + "tinyrainbow": "^3.0.3", + "ws": "^8.18.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "vitest": "4.0.18" + } + }, + "node_modules/@vitest/browser-playwright": { + "version": "4.0.18", + "resolved": "https://registry.npmjs.org/@vitest/browser-playwright/-/browser-playwright-4.0.18.tgz", + "integrity": "sha512-gfajTHVCiwpxRj1qh0Sh/5bbGLG4F/ZH/V9xvFVoFddpITfMta9YGow0W6ZpTTORv2vdJuz9TnrNSmjKvpOf4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/browser": "4.0.18", + "@vitest/mocker": "4.0.18", + "tinyrainbow": "^3.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "playwright": "*", + "vitest": "4.0.18" + }, + "peerDependenciesMeta": { + "playwright": { + "optional": false + } + } + }, + "node_modules/@vitest/expect": { + "version": "4.0.18", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.0.18.tgz", + "integrity": "sha512-8sCWUyckXXYvx4opfzVY03EOiYVxyNrHS5QxX3DAIi5dpJAAkyJezHCP77VMX4HKA2LDT/Jpfo8i2r5BE3GnQQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@standard-schema/spec": "^1.0.0", + "@types/chai": "^5.2.2", + "@vitest/spy": "4.0.18", + "@vitest/utils": "4.0.18", + "chai": "^6.2.1", + "tinyrainbow": "^3.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/mocker": { + "version": "4.0.18", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.0.18.tgz", + "integrity": "sha512-HhVd0MDnzzsgevnOWCBj5Otnzobjy5wLBe4EdeeFGv8luMsGcYqDuFRMcttKWZA5vVO8RFjexVovXvAM4JoJDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "4.0.18", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.21" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^6.0.0 || ^7.0.0-0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/@vitest/pretty-format": { + "version": "4.0.18", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.0.18.tgz", + "integrity": "sha512-P24GK3GulZWC5tz87ux0m8OADrQIUVDPIjjj65vBXYG17ZeU3qD7r+MNZ1RNv4l8CGU2vtTRqixrOi9fYk/yKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^3.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "4.0.18", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.0.18.tgz", + "integrity": "sha512-rpk9y12PGa22Jg6g5M3UVVnTS7+zycIGk9ZNGN+m6tZHKQb7jrP7/77WfZy13Y/EUDd52NDsLRQhYKtv7XfPQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "4.0.18", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "4.0.18", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.0.18.tgz", + "integrity": "sha512-PCiV0rcl7jKQjbgYqjtakly6T1uwv/5BQ9SwBLekVg/EaYeQFPiXcgrC2Y7vDMA8dM1SUEAEV82kgSQIlXNMvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "4.0.18", + "magic-string": "^0.30.21", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "4.0.18", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.0.18.tgz", + "integrity": "sha512-cbQt3PTSD7P2OARdVW3qWER5EGq7PHlvE+QfzSC0lbwO+xnt7+XH06ZzFjFRgzUX//JmpxrCu92VdwvEPlWSNw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "4.0.18", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.0.18.tgz", + "integrity": "sha512-msMRKLMVLWygpK3u2Hybgi4MNjcYJvwTb0Ru09+fOyCXIgT5raYP041DRRdiJiI3k/2U6SEbAETB3YtBrUkCFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "4.0.18", + "tinyrainbow": "^3.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/chai": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz", + "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/devalue": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.6.2.tgz", + "integrity": "sha512-nPRkjWzzDQlsejL1WVifk5rvcFi/y1onBRxjaFMjZeR9mFpqu2gmAZ9xUB9/IEanEP/vBtGeGganC/GO1fmufg==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/esbuild": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.3.tgz", + "integrity": "sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.3", + "@esbuild/android-arm": "0.27.3", + "@esbuild/android-arm64": "0.27.3", + "@esbuild/android-x64": "0.27.3", + "@esbuild/darwin-arm64": "0.27.3", + "@esbuild/darwin-x64": "0.27.3", + "@esbuild/freebsd-arm64": "0.27.3", + "@esbuild/freebsd-x64": "0.27.3", + "@esbuild/linux-arm": "0.27.3", + "@esbuild/linux-arm64": "0.27.3", + "@esbuild/linux-ia32": "0.27.3", + "@esbuild/linux-loong64": "0.27.3", + "@esbuild/linux-mips64el": "0.27.3", + "@esbuild/linux-ppc64": "0.27.3", + "@esbuild/linux-riscv64": "0.27.3", + "@esbuild/linux-s390x": "0.27.3", + "@esbuild/linux-x64": "0.27.3", + "@esbuild/netbsd-arm64": "0.27.3", + "@esbuild/netbsd-x64": "0.27.3", + "@esbuild/openbsd-arm64": "0.27.3", + "@esbuild/openbsd-x64": "0.27.3", + "@esbuild/openharmony-arm64": "0.27.3", + "@esbuild/sunos-x64": "0.27.3", + "@esbuild/win32-arm64": "0.27.3", + "@esbuild/win32-ia32": "0.27.3", + "@esbuild/win32-x64": "0.27.3" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.39.2", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.2.tgz", + "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.1", + "@eslint/config-helpers": "^0.4.2", + "@eslint/core": "^0.17.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.39.2", + "@eslint/plugin-kit": "^0.4.1", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-config-prettier": { + "version": "10.1.8", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz", + "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "funding": { + "url": "https://opencollective.com/eslint-config-prettier" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-svelte": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-3.15.0.tgz", + "integrity": "sha512-QKB7zqfuB8aChOfBTComgDptMf2yxiJx7FE04nneCmtQzgTHvY8UJkuh8J2Rz7KB9FFV9aTHX6r7rdYGvG8T9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.6.1", + "@jridgewell/sourcemap-codec": "^1.5.0", + "esutils": "^2.0.3", + "globals": "^16.0.0", + "known-css-properties": "^0.37.0", + "postcss": "^8.4.49", + "postcss-load-config": "^3.1.4", + "postcss-safe-parser": "^7.0.0", + "semver": "^7.6.3", + "svelte-eslint-parser": "^1.4.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "eslint": "^8.57.1 || ^9.0.0 || ^10.0.0", + "svelte": "^3.37.0 || ^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "svelte": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-svelte/node_modules/globals": { + "version": "16.5.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.5.0.tgz", + "integrity": "sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/@eslint/core": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/esm-env": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.2.2.tgz", + "integrity": "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrap": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/esrap/-/esrap-2.2.3.tgz", + "integrity": "sha512-8fOS+GIGCQZl/ZIlhl59htOlms6U8NvX6ZYgYHpRU/b6tVSh3uHkOHZikl3D4cMbYM0JlpBe+p/BkZEi8J9XIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expect-type": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz", + "integrity": "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "17.3.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-17.3.0.tgz", + "integrity": "sha512-yMqGUQVVCkD4tqjOJf3TnrvaaHDMYp4VlUSObbkIiuCPe/ofdMBFIAcBbCSRFWOnos6qRiTVStDwqPLUclaxIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-reference": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz", + "integrity": "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.6" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/known-css-properties": { + "version": "0.37.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.37.0.tgz", + "integrity": "sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/locate-character": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", + "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", + "dev": true, + "license": "MIT" + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/mrmime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/obug": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.1.tgz", + "integrity": "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==", + "dev": true, + "funding": [ + "https://github.com/sponsors/sxzz", + "https://opencollective.com/debug" + ], + "license": "MIT" + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pixelmatch": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-7.1.0.tgz", + "integrity": "sha512-1wrVzJ2STrpmONHKBy228LM1b84msXDUoAzVEl0R8Mz4Ce6EPr+IVtxm8+yvrqLYMHswREkjYFaMxnyGnaY3Ng==", + "dev": true, + "license": "ISC", + "dependencies": { + "pngjs": "^7.0.0" + }, + "bin": { + "pixelmatch": "bin/pixelmatch" + } + }, + "node_modules/playwright": { + "version": "1.58.2", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.58.2.tgz", + "integrity": "sha512-vA30H8Nvkq/cPBnNw4Q8TWz1EJyqgpuinBcHET0YVJVFldr8JDNiU9LaWAE1KqSkRYazuaBhTpB5ZzShOezQ6A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright-core": "1.58.2" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/playwright-core": { + "version": "1.58.2", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.58.2.tgz", + "integrity": "sha512-yZkEtftgwS8CsfYo7nm0KE8jsvm6i/PTgVtB8DL726wNf6H2IMsDuxCpJj59KDaxCtSnrWan2AeDqM7JBaultg==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/pngjs": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-7.0.0.tgz", + "integrity": "sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.19.0" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-load-config": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss-safe-parser": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.1.tgz", + "integrity": "sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-scss": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.9.tgz", + "integrity": "sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-scss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.4.29" + } + }, + "node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.1.tgz", + "integrity": "sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-plugin-svelte": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-3.4.1.tgz", + "integrity": "sha512-xL49LCloMoZRvSwa6IEdN2GV6cq2IqpYGstYtMT+5wmml1/dClEoI0MZR78MiVPpu6BdQFfN0/y73yO6+br5Pg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "prettier": "^3.0.0", + "svelte": "^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/rollup": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.57.1.tgz", + "integrity": "sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.57.1", + "@rollup/rollup-android-arm64": "4.57.1", + "@rollup/rollup-darwin-arm64": "4.57.1", + "@rollup/rollup-darwin-x64": "4.57.1", + "@rollup/rollup-freebsd-arm64": "4.57.1", + "@rollup/rollup-freebsd-x64": "4.57.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.57.1", + "@rollup/rollup-linux-arm-musleabihf": "4.57.1", + "@rollup/rollup-linux-arm64-gnu": "4.57.1", + "@rollup/rollup-linux-arm64-musl": "4.57.1", + "@rollup/rollup-linux-loong64-gnu": "4.57.1", + "@rollup/rollup-linux-loong64-musl": "4.57.1", + "@rollup/rollup-linux-ppc64-gnu": "4.57.1", + "@rollup/rollup-linux-ppc64-musl": "4.57.1", + "@rollup/rollup-linux-riscv64-gnu": "4.57.1", + "@rollup/rollup-linux-riscv64-musl": "4.57.1", + "@rollup/rollup-linux-s390x-gnu": "4.57.1", + "@rollup/rollup-linux-x64-gnu": "4.57.1", + "@rollup/rollup-linux-x64-musl": "4.57.1", + "@rollup/rollup-openbsd-x64": "4.57.1", + "@rollup/rollup-openharmony-arm64": "4.57.1", + "@rollup/rollup-win32-arm64-msvc": "4.57.1", + "@rollup/rollup-win32-ia32-msvc": "4.57.1", + "@rollup/rollup-win32-x64-gnu": "4.57.1", + "@rollup/rollup-win32-x64-msvc": "4.57.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "mri": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-cookie-parser": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-3.0.1.tgz", + "integrity": "sha512-n7Z7dXZhJbwuAHhNzkTti6Aw9QDDjZtm3JTpTGATIdNzdQz5GuFs22w90BcvF4INfnrL5xrX3oGsuqO5Dx3A1Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true, + "license": "ISC" + }, + "node_modules/sirv": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.2.tgz", + "integrity": "sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true, + "license": "MIT" + }, + "node_modules/std-env": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", + "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", + "dev": true, + "license": "MIT" + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/svelte": { + "version": "5.50.2", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.50.2.tgz", + "integrity": "sha512-WCxzm3BBf+Ase6RwiDPR4G36cM4Kb0NuhmLK6x44I+D6reaxizDDg8kBkk4jT/19+Rgmc44eZkOvMO6daoSFIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.4", + "@jridgewell/sourcemap-codec": "^1.5.0", + "@sveltejs/acorn-typescript": "^1.0.5", + "@types/estree": "^1.0.5", + "acorn": "^8.12.1", + "aria-query": "^5.3.1", + "axobject-query": "^4.1.0", + "clsx": "^2.1.1", + "devalue": "^5.6.2", + "esm-env": "^1.2.1", + "esrap": "^2.2.2", + "is-reference": "^3.0.3", + "locate-character": "^3.0.0", + "magic-string": "^0.30.11", + "zimmerframe": "^1.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/svelte-check": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-4.3.6.tgz", + "integrity": "sha512-uBkz96ElE3G4pt9E1Tw0xvBfIUQkeH794kDQZdAUk795UVMr+NJZpuFSS62vcmO/DuSalK83LyOwhgWq8YGU1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "chokidar": "^4.0.1", + "fdir": "^6.2.0", + "picocolors": "^1.0.0", + "sade": "^1.7.4" + }, + "bin": { + "svelte-check": "bin/svelte-check" + }, + "engines": { + "node": ">= 18.0.0" + }, + "peerDependencies": { + "svelte": "^4.0.0 || ^5.0.0-next.0", + "typescript": ">=5.0.0" + } + }, + "node_modules/svelte-eslint-parser": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/svelte-eslint-parser/-/svelte-eslint-parser-1.4.1.tgz", + "integrity": "sha512-1eqkfQ93goAhjAXxZiu1SaKI9+0/sxp4JIWQwUpsz7ybehRE5L8dNuz7Iry7K22R47p5/+s9EM+38nHV2OlgXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.0.0", + "espree": "^10.0.0", + "postcss": "^8.4.49", + "postcss-scss": "^4.0.9", + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0", + "pnpm": "10.24.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "svelte": "^3.37.0 || ^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "svelte": { + "optional": true + } + } + }, + "node_modules/tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.2.tgz", + "integrity": "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyrainbow": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.0.3.tgz", + "integrity": "sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ts-api-utils": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.4.0.tgz", + "integrity": "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-eslint": { + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.55.0.tgz", + "integrity": "sha512-HE4wj+r5lmDVS9gdaN0/+iqNvPZwGfnJ5lZuz7s5vLlg9ODw0bIiiETaios9LvFI1U94/VBXGm3CB2Y5cNFMpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.55.0", + "@typescript-eslint/parser": "8.55.0", + "@typescript-eslint/typescript-estree": "8.55.0", + "@typescript-eslint/utils": "8.55.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/vite": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.1.tgz", + "integrity": "sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.27.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/vitefu": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.1.1.tgz", + "integrity": "sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ==", + "dev": true, + "license": "MIT", + "workspaces": [ + "tests/deps/*", + "tests/projects/*", + "tests/projects/workspace/packages/*" + ], + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/vitest": { + "version": "4.0.18", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.0.18.tgz", + "integrity": "sha512-hOQuK7h0FGKgBAas7v0mSAsnvrIgAvWmRFjmzpJ7SwFHH3g1k2u37JtYwOwmEKhK6ZO3v9ggDBBm0La1LCK4uQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/expect": "4.0.18", + "@vitest/mocker": "4.0.18", + "@vitest/pretty-format": "4.0.18", + "@vitest/runner": "4.0.18", + "@vitest/snapshot": "4.0.18", + "@vitest/spy": "4.0.18", + "@vitest/utils": "4.0.18", + "es-module-lexer": "^1.7.0", + "expect-type": "^1.2.2", + "magic-string": "^0.30.21", + "obug": "^2.1.1", + "pathe": "^2.0.3", + "picomatch": "^4.0.3", + "std-env": "^3.10.0", + "tinybench": "^2.9.0", + "tinyexec": "^1.0.2", + "tinyglobby": "^0.2.15", + "tinyrainbow": "^3.0.3", + "vite": "^6.0.0 || ^7.0.0", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@opentelemetry/api": "^1.9.0", + "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", + "@vitest/browser-playwright": "4.0.18", + "@vitest/browser-preview": "4.0.18", + "@vitest/browser-webdriverio": "4.0.18", + "@vitest/ui": "4.0.18", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@opentelemetry/api": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser-playwright": { + "optional": true + }, + "@vitest/browser-preview": { + "optional": true + }, + "@vitest/browser-webdriverio": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/vitest-browser-svelte": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/vitest-browser-svelte/-/vitest-browser-svelte-2.0.2.tgz", + "integrity": "sha512-OLJVYoIYflwToFIy3s41pZ9mVp6dwXfYd8IIsWoc57g8DyN3SxsNJ5GB1xWFPxLFlKM+1MPExjPxLaqdELrfRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@testing-library/svelte-core": "^1.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "svelte": "^3 || ^4 || ^5 || ^5.0.0-next.0", + "vitest": "^4.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/why-is-node-running": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ws": { + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz", + "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/yaml": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", + "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", + "dev": true, + "license": "ISC", + "optional": true, + "peer": true, + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zimmerframe": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.4.tgz", + "integrity": "sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==", + "dev": true, + "license": "MIT" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..583fedf --- /dev/null +++ b/package.json @@ -0,0 +1,43 @@ +{ + "name": "web-pwa", + "private": true, + "version": "0.0.1", + "type": "module", + "scripts": { + "dev": "vite dev", + "build": "vite build", + "preview": "vite preview", + "prepare": "svelte-kit sync || echo ''", + "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", + "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", + "lint": "prettier --check . && eslint .", + "format": "prettier --write .", + "test:unit": "vitest", + "test": "npm run test:unit -- --run && npm run test:e2e", + "test:e2e": "playwright test" + }, + "devDependencies": { + "@eslint/compat": "^2.0.2", + "@eslint/js": "^9.39.2", + "@playwright/test": "^1.58.1", + "@sveltejs/adapter-static": "^3.0.10", + "@sveltejs/kit": "^2.50.2", + "@sveltejs/vite-plugin-svelte": "^6.2.4", + "@types/node": "^22", + "@vitest/browser-playwright": "^4.0.18", + "eslint": "^9.39.2", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-svelte": "^3.14.0", + "globals": "^17.3.0", + "playwright": "^1.58.1", + "prettier": "^3.8.1", + "prettier-plugin-svelte": "^3.4.1", + "svelte": "^5.49.2", + "svelte-check": "^4.3.6", + "typescript": "^5.9.3", + "typescript-eslint": "^8.54.0", + "vite": "^7.3.1", + "vitest": "^4.0.18", + "vitest-browser-svelte": "^2.0.2" + } +} diff --git a/playwright.config.ts b/playwright.config.ts new file mode 100644 index 0000000..8f5062c --- /dev/null +++ b/playwright.config.ts @@ -0,0 +1,6 @@ +import { defineConfig } from '@playwright/test'; + +export default defineConfig({ + webServer: { command: 'npm run build && npm run preview', port: 4173 }, + testDir: 'e2e' +}); diff --git a/src/app.d.ts b/src/app.d.ts new file mode 100644 index 0000000..da08e6d --- /dev/null +++ b/src/app.d.ts @@ -0,0 +1,13 @@ +// See https://svelte.dev/docs/kit/types#app.d.ts +// for information about these interfaces +declare global { + namespace App { + // interface Error {} + // interface Locals {} + // interface PageData {} + // interface PageState {} + // interface Platform {} + } +} + +export {}; diff --git a/src/app.html b/src/app.html new file mode 100644 index 0000000..f273cc5 --- /dev/null +++ b/src/app.html @@ -0,0 +1,11 @@ + + + + + + %sveltekit.head% + + +
%sveltekit.body%
+ + diff --git a/src/demo.spec.ts b/src/demo.spec.ts new file mode 100644 index 0000000..e07cbbd --- /dev/null +++ b/src/demo.spec.ts @@ -0,0 +1,7 @@ +import { describe, it, expect } from 'vitest'; + +describe('sum test', () => { + it('adds 1 + 2 to equal 3', () => { + expect(1 + 2).toBe(3); + }); +}); diff --git a/src/lib/assets/apple-touch-icon.png b/src/lib/assets/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..fbdf1977b9df64f193b64ccc0b84e2d594fb1965 GIT binary patch literal 13667 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 z zyoSCPUec~VcCy9Jw4&oX-$UkV&v1at3T~zYzkIQvb~>9#pzpcoi|bke#=v7SbbjZ1 z7&>;m;+~qPGZ=VnKL(!pS;@Ybq$(@0ZHuy2Iy*EpY+sl{ecjJ+08HSanVv~!j(l_) z$&2b+Q()zC7)=fGDzBnEX>{M4xcaX@)|wou9YpPW9i89#KC*-15DYR08e9s zE61LV#SlJl5WWBO4ANKHm7V(wd1DCPv6WP@IJEz*;rXB}uT%dxEJrcYH*vwT)!$O{ z=#q~v`haX_7Xr83q>P$9(;5*!c^bTEZlCPZWy1wB@x#XuZ#e^_I;31ZO4b4)dipea zpZhfifBiDD{R4SFFe?^X+YCtj!X>0HUXigs_DKxLh9ig`JdEh+(_n!B%-R|lx>bIh zBh}N3q4y4BsGLHu}58j8~r++B8A<9?8O0`} z)K(*~ zFSm;q36h9J>dblcocT8xUJv}6H^9GgIlMDxz^bo<;qm5<-(cXG40t-7tCs8OMe_0$ z#6LWqTT6v=Vh-5;HKE;4EKlg%kCg-yn>{bLNA@dAKtK`VN5 z?BM$d5LQ|8EnbMg&f5^%_g3yxr3aSxeexd54ulbTWgjBg2hMX*yV+2e8#Xsh@I(Tc z@DMUr`@o~of@2yvMYfkt!Rlq2r;(|iW}_E>?7$(!4jdX)EF&0%5efjN0iH~O4@Gm8 za*P%IoXmdJD}_;IV6Ya-(KZtDqp#8ev%qV<(jJW^W&J4p;HDMyC#+xmhYb7a_tx!ZIdgz)t27SDA@{~R2W0e zqYuJMtQm5P9QWbxwM;XlW*Dzx?>vyhFQ;hfRQJ z2QO1VEjtz6~Zcz$G)QsW(Ga0AyVhS&f5?oc1g{IhY)|`UHx3MW4j?{)hMqb z${D~VwlkST^vH)~1Ols8p!SK+*_>H-p&m&WODSXda2MlA`LFOZWIJI@BD3YfjQqaa z8&P}jUF6<@u_H$drqwa0gDGX&jZ&bUr0*OKvJ}52`n&zgsaXY)_oimlKKZ$PDW%2m z0;pv+qfo7xGWV?gNAZE;J~^!D_y{m7POb0yX4F6OS#lkCHWEd2?|vn`)WH-7QM0ot zSd4tp(IuM|t=|!S|A^MjI<#pc>c8<+t`D))dVp**AOe@!f$hGBF3Cy@Raxz&WkO!Qv`)$c1X{D*q&w6K+R(hq5gsU zv}TBB1_u${vrnzgWGg{eV^OSUE-W7U)&$sjaL8=yJGg1Uw|uGQtdlAPH*Ux+%6|5| zL#SmIMC_j#0|Ga0#I!Fzf$FVW5IJ-hJf0+Z4Q5)H{+EA-nw{Igy(UuUE-F^Mmst#F zFkACyqv2~`LSW5m?Ky};dtXDU<*am(diqee{b(U&bWjeoX12p^l}=x{2;bV(+LKb5 z$AW+PQh3*_M7p;J*{gk;P*c>J6)uUfVJ#Y-dwxeoOGmJn0ffdUU+`Iu(|1+ zWHC%dL-5E)$I<)4A4y+R^YHzs-LYLcH!ptfJYpXnL*nSMToZVKnUtlU% zH|EN5gTbH|2#<+*&Ky)s0kJJCax0khTy`)67dTl()rBoyOIt|H1aT+Alnenp5@j@zdVD~$rg9inH&t#)LD^-X2iUpJUC<;9TAI*YEma!5PADu zpn|>Qz!;dvlS@|_hHD@MmMw*E-O7R>kTJk)sz=qPX4j72@cUp^SHY~Qh7k&Zd8~@S z3;>b0-zC8;I^T9MD@QXFsX9q;X9VKwp z+;@*wW0}daCC;=W^5Uzc{1>SRNmvBPpkKSBS2$!Wcp1Imf_{pGBIm zCf{V+{0kSrw`u)o*1?=T1EK5IO}X!p?(N0EGtZVbU!)GAFw!hjfiN;Hu{7k4fm||G zdUaCoE`-`$J~)JdpFE3fEH<@BU<|dpc8)4Y&HeY}nz>J*EgOqr;3v<5hlilN9a98K zk$2V^E@$dm4(3p$8JzX~l~|AB0he=^Fz}0Cm#&aC$v5w;nF!o=Bdo>q5nQ!uN*y~- zr!nx0=aD{lN$s1ZR)dir(N|}tSk|p%B8q(Kip^vY;f$8jX<8%Jqd4m^JcX*DS0h96 z@G%TlSEKg+d-awnn`o8Zu^s7f*wG-y#7T1&gD>qt^6*DAm^HE*5X{2R>60iDbc1Qk z@Mfy}2q8dZ(Cf-qtO4;i-o@bW_K_M3PL|D@)~MY{f5Kt@-D@R9`%JUTB6AuDI#g$t z>utvf2Sb^jSWZ7lCa$ZnIhNR~uOqx~|CEAyD#09nZ9ihKzDBE1WO`PEW=ILVF+m!W zyiy8dgwj%KfGEg%fL;z6ePwS>sWaE0c3YXFFYl$7+d|K3(9{{yA|%-*U_Uh{x_|411y&$e_We0#SzD!qUsc)vv-(_lbCR^5`HU_1kpSbabP5&5m zfN0;zBd>3UI!Lq&SmSTJi)?rZwGTg_Tx#svCP~fx;@3zXKIRh41goLwuAnnTo7rYL z?3RCE46L}uV~nklS~Q#f9EFdKUIuor6J$_I4@V4j^6*FK>+47Dv4sB$KQ=m$p-`SnY=NdZz{Tn5ZK zR)dLJWiX{Wixk@)XrNT3b)e?l4!H_Jowpa;kK?eGFGkI0cB|Ld`;=~}wswSHd>N@z zt@h4U(PXD0FxwUG>wqf=_=G^0&MFbiVj(MXDUJG2i;hbTH5fx+$E^t6c8hD%ktX|= z84M%x);oy3_LgmrXd2A+(2`-64$2V}n-NonYM?c&hXQmNypEv;geopma_09Tc-IaD z9W19jRkmy-is%Q25#6)T)?TPAhBTk74YN9JCj?hRv1ve;Ydr|+?LO2hwH^jL6h!dO z?Fck)fLUGj=>U0X2+_kw5#9R+_)tVVHmB+gSL0|5i8HN;z4v}@;;LXB6$;2IRTlP;)qz7R)uD&vyOIFr<*ygB3L*yern_cb4SautBhdH*g&)A9Mc6BSrEst@c1+Xmm zuHOLP>Q(T~p9f=-Sd#3}5Rw-!BmVIxNWTAJ-r}N65%5WZC{_;W?!ru|_Ee%uQfOU2 zt&{nXDYYQ*6RR=pd9`Baz0NY>S+)e;)hpngHy76QrreSkm9{3FBb!Jd-F+3QOP7)O z_(X0+tI-iqNnJ6eeJo*x0w%3~(}7uSKg#jV`U)*8C9*4EQm8jsscl!g8rEti0zOZz z1<$J$JMVSrEK(;0-uof?bXVH9EGiJbQsL!n-7z}FlRW9y|l#ND_85l&m zw-4!#PNXheMEdLnAf2)AGFmpsPA!IWn3WZCj5+Ey?igr$ctxY$x%+=1k9tr;FicLd zAS3U#w;=+sRd549h9li_7U`C=g};l(16ExHv#9|_Lp=rm(EtzZc` zwOZ#6LzWF;g%(2zx6QB5bL({Tp1$FZoK9DjET^k$c_2#`4-xxiS7CPUo67@QRKVmK z)TJa91dGsBYhAF#aD%j%uDjk^XOgHk$V63ES&T}+%pArjmh;*90;ug)q$NTP$G)1P z);3@(UROADZu1NoayQ^5UM$pwf=H^Y>6b;&${u$S=CXhmyAL~fWl$F?GR;>*q1HsO z^FWnnMwopDgxpWU)kUry&eC@QWX<4@X+rMMWw-~lcs*}5)X?$OfTmg(*${#f7i311 zvdg3+s}+G3gkCA+*E>~ZO~332W;T&P%Q7Ews7sT35~yv0LW)}F>9qpvl20TmcjY~_ zdMTR%#2PZ)dsH?n)bK*o-J@`f7c!^Q;KbKj+&L@zNEQa~qB_vrM_{DGg+$ zUxs8YOHG(v8mO||?BS*bwP=`J>8tJYX%rh$gf>C71%TUU?)01oBPZP)UIf%N|H@b8 z$pW*xK&zmJO-fG)HBqf?ytP`bov1d5t*p31=TXK9rK+*^lGQX-rVVFH?lmr#5LlJy zwrLBsC{LX?(^VBLQoOYgY*19Y2=2+`pJg-VwcbOs7g`oWs=ng~b7g>b1hvXnms$`I zZAhL;AgFfn>CUqy-6)`U4qY`Xw-CIh8dHIH4703UwQ_ed3l(nm%|w%0hk*xlEr@7nyvT+?l%E!;wuXOZ5|TM{ z%CkE@nxx^3uy+~As>-+tg1PcQ=XDgdt)&(Qi=`F>x;A9=|F{I~a^S91CbdEkQy?XQ ztZy;O9nPL)K+9@B6uw$G*i!U->1eb){8H5}hP!k!z=Un2HpY4dBFxF_COORG3iRj~ zQ}}A31(B(>jm;>nonxfHP>^*l1-uf0BB3aWl~L)$oB}TcS!OXR82n8Npyk1$!h$#i zTWLp>DLu%t&81ewMWUUjvI(D42FN5;o&cC92I#zwreX^sQtQH?QD`v){#mHnn*Ld5 zIGR^7Q_UP)42<{CchI;&}Lx*H?aj#sdZt{Xb(0eM=gTeJ^wsj0MjxX6p*K$ zDo+}qm8m_dTI+x<%~RVbz05!J@hpR8`WFn-fSS \ No newline at end of file diff --git a/src/lib/assets/round-logo-text.svg b/src/lib/assets/round-logo-text.svg new file mode 100644 index 0000000..e25c097 --- /dev/null +++ b/src/lib/assets/round-logo-text.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/lib/assets/round-logo.svg b/src/lib/assets/round-logo.svg new file mode 100644 index 0000000..555c8bb --- /dev/null +++ b/src/lib/assets/round-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte new file mode 100644 index 0000000..39dc4fa --- /dev/null +++ b/src/routes/+layout.svelte @@ -0,0 +1,11 @@ + + + + + + +{@render children()} diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte new file mode 100644 index 0000000..cc88df0 --- /dev/null +++ b/src/routes/+page.svelte @@ -0,0 +1,2 @@ +

Welcome to SvelteKit

+

Visit svelte.dev/docs/kit to read the documentation

diff --git a/src/routes/page.svelte.spec.ts b/src/routes/page.svelte.spec.ts new file mode 100644 index 0000000..d54f00a --- /dev/null +++ b/src/routes/page.svelte.spec.ts @@ -0,0 +1,13 @@ +import { page } from 'vitest/browser'; +import { describe, expect, it } from 'vitest'; +import { render } from 'vitest-browser-svelte'; +import Page from './+page.svelte'; + +describe('/+page.svelte', () => { + it('should render h1', async () => { + render(Page); + + const heading = page.getByRole('heading', { level: 1 }); + await expect.element(heading).toBeInTheDocument(); + }); +}); diff --git a/static/favicon.ico b/static/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..cda22d3f243c23c1778398a375dd8faf93d0a5c2 GIT binary patch literal 129842 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 literal 0 HcmV?d00001 diff --git a/static/robots.txt b/static/robots.txt new file mode 100644 index 0000000..b6dd667 --- /dev/null +++ b/static/robots.txt @@ -0,0 +1,3 @@ +# allow crawling everything by default +User-agent: * +Disallow: diff --git a/svelte.config.js b/svelte.config.js new file mode 100644 index 0000000..9338c8c --- /dev/null +++ b/svelte.config.js @@ -0,0 +1,6 @@ +import adapter from '@sveltejs/adapter-static'; + +/** @type {import('@sveltejs/kit').Config} */ +const config = { kit: { adapter: adapter() } }; + +export default config; diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..2c2ed3c --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,20 @@ +{ + "extends": "./.svelte-kit/tsconfig.json", + "compilerOptions": { + "rewriteRelativeImportExtensions": true, + "allowJs": true, + "checkJs": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "resolveJsonModule": true, + "skipLibCheck": true, + "sourceMap": true, + "strict": true, + "moduleResolution": "bundler" + } + // Path aliases are handled by https://svelte.dev/docs/kit/configuration#alias + // except $lib which is handled by https://svelte.dev/docs/kit/configuration#files + // + // To make changes to top-level options such as include and exclude, we recommend extending + // the generated config; see https://svelte.dev/docs/kit/configuration#typescript +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..282a635 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,35 @@ +import { defineConfig } from 'vitest/config'; +import { playwright } from '@vitest/browser-playwright'; +import { sveltekit } from '@sveltejs/kit/vite'; + +export default defineConfig({ + plugins: [sveltekit()], + test: { + expect: { requireAssertions: true }, + projects: [ + { + extends: './vite.config.ts', + test: { + name: 'client', + browser: { + enabled: true, + provider: playwright(), + instances: [{ browser: 'chromium', headless: true }] + }, + include: ['src/**/*.svelte.{test,spec}.{js,ts}'], + exclude: ['src/lib/server/**'] + } + }, + + { + extends: './vite.config.ts', + test: { + name: 'server', + environment: 'node', + include: ['src/**/*.{test,spec}.{js,ts}'], + exclude: ['src/**/*.svelte.{test,spec}.{js,ts}'] + } + } + ] + } +});