├── example
├── src
│ ├── vite-env.d.ts
│ ├── main.tsx
│ ├── App.tsx
│ ├── components
│ │ ├── Header.tsx
│ │ ├── ProductCard.tsx
│ │ ├── ContactForm.tsx
│ │ └── Footer.tsx
│ ├── index.css
│ ├── assets
│ │ └── react.svg
│ └── App.css
├── tsconfig.json
├── vite.config.ts
├── .gitignore
├── index.html
├── eslint.config.js
├── tsconfig.node.json
├── package.json
├── tsconfig.app.json
├── public
│ └── vite.svg
└── package-lock.json
├── .gitignore
├── tsconfig.json
├── package.json
├── README.md
└── index.ts
/example/src/vite-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
--------------------------------------------------------------------------------
/example/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "files": [],
3 | "references": [
4 | { "path": "./tsconfig.app.json" },
5 | { "path": "./tsconfig.node.json" }
6 | ]
7 | }
8 |
--------------------------------------------------------------------------------
/example/vite.config.ts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'vite'
2 | import react from '@vitejs/plugin-react'
3 |
4 | // https://vite.dev/config/
5 | export default defineConfig({
6 | plugins: [react()],
7 | })
8 |
--------------------------------------------------------------------------------
/example/src/main.tsx:
--------------------------------------------------------------------------------
1 | import { StrictMode } from 'react'
2 | import { createRoot } from 'react-dom/client'
3 | import './index.css'
4 | import App from './App.tsx'
5 |
6 | createRoot(document.getElementById('root')!).render(
7 |
8 |
9 | ,
10 | )
11 |
--------------------------------------------------------------------------------
/example/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | pnpm-debug.log*
8 | lerna-debug.log*
9 |
10 | node_modules
11 | dist
12 | dist-ssr
13 | *.local
14 |
15 | # Editor directories and files
16 | .vscode/*
17 | !.vscode/extensions.json
18 | .idea
19 | .DS_Store
20 | *.suo
21 | *.ntvs*
22 | *.njsproj
23 | *.sln
24 | *.sw?
25 |
--------------------------------------------------------------------------------
/example/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Vite + React + TS
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # dependencies (bun install)
2 | node_modules
3 |
4 | # output
5 | out
6 | dist
7 | *.tgz
8 |
9 | # code coverage
10 | coverage
11 | *.lcov
12 |
13 | # logs
14 | logs
15 | _.log
16 | report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json
17 |
18 | # dotenv environment variable files
19 | .env
20 | .env.development.local
21 | .env.test.local
22 | .env.production.local
23 | .env.local
24 |
25 | # caches
26 | .eslintcache
27 | .cache
28 | *.tsbuildinfo
29 |
30 | # IntelliJ based IDEs
31 | .idea
32 |
33 | # Finder (MacOS) folder config
34 | .DS_Store
35 |
--------------------------------------------------------------------------------
/example/eslint.config.js:
--------------------------------------------------------------------------------
1 | import js from '@eslint/js'
2 | import globals from 'globals'
3 | import reactHooks from 'eslint-plugin-react-hooks'
4 | import reactRefresh from 'eslint-plugin-react-refresh'
5 | import tseslint from 'typescript-eslint'
6 | import { globalIgnores } from 'eslint/config'
7 |
8 | export default tseslint.config([
9 | globalIgnores(['dist']),
10 | {
11 | files: ['**/*.{ts,tsx}'],
12 | extends: [
13 | js.configs.recommended,
14 | tseslint.configs.recommended,
15 | reactHooks.configs['recommended-latest'],
16 | reactRefresh.configs.vite,
17 | ],
18 | languageOptions: {
19 | ecmaVersion: 2020,
20 | globals: globals.browser,
21 | },
22 | },
23 | ])
24 |
--------------------------------------------------------------------------------
/example/tsconfig.node.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
4 | "target": "ES2023",
5 | "lib": ["ES2023"],
6 | "module": "ESNext",
7 | "skipLibCheck": true,
8 |
9 | /* Bundler mode */
10 | "moduleResolution": "bundler",
11 | "allowImportingTsExtensions": true,
12 | "verbatimModuleSyntax": true,
13 | "moduleDetection": "force",
14 | "noEmit": true,
15 |
16 | /* Linting */
17 | "strict": true,
18 | "noUnusedLocals": true,
19 | "noUnusedParameters": true,
20 | "erasableSyntaxOnly": true,
21 | "noFallthroughCasesInSwitch": true,
22 | "noUncheckedSideEffectImports": true
23 | },
24 | "include": ["vite.config.ts"]
25 | }
26 |
--------------------------------------------------------------------------------
/example/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "example",
3 | "private": true,
4 | "version": "0.0.0",
5 | "type": "module",
6 | "scripts": {
7 | "dev": "vite",
8 | "build": "tsc -b && vite build",
9 | "lint": "eslint .",
10 | "preview": "vite preview"
11 | },
12 | "dependencies": {
13 | "react": "^19.1.0",
14 | "react-dom": "^19.1.0"
15 | },
16 | "devDependencies": {
17 | "@eslint/js": "^9.30.1",
18 | "@types/react": "^19.1.8",
19 | "@types/react-dom": "^19.1.6",
20 | "@vitejs/plugin-react": "^4.6.0",
21 | "eslint": "^9.30.1",
22 | "eslint-plugin-react-hooks": "^5.2.0",
23 | "eslint-plugin-react-refresh": "^0.4.20",
24 | "globals": "^16.3.0",
25 | "typescript": "~5.8.3",
26 | "typescript-eslint": "^8.35.1",
27 | "vite": "^7.0.4"
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/example/tsconfig.app.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
4 | "target": "ES2022",
5 | "useDefineForClassFields": true,
6 | "lib": ["ES2022", "DOM", "DOM.Iterable"],
7 | "module": "ESNext",
8 | "skipLibCheck": true,
9 |
10 | /* Bundler mode */
11 | "moduleResolution": "bundler",
12 | "allowImportingTsExtensions": true,
13 | "verbatimModuleSyntax": true,
14 | "moduleDetection": "force",
15 | "noEmit": true,
16 | "jsx": "react-jsx",
17 |
18 | /* Linting */
19 | "strict": true,
20 | "noUnusedLocals": true,
21 | "noUnusedParameters": true,
22 | "erasableSyntaxOnly": true,
23 | "noFallthroughCasesInSwitch": true,
24 | "noUncheckedSideEffectImports": true
25 | },
26 | "include": ["src"]
27 | }
28 |
--------------------------------------------------------------------------------
/example/src/App.tsx:
--------------------------------------------------------------------------------
1 | import { Header } from "./components/Header";
2 | import { ContactForm } from "./components/ContactForm";
3 | import { ProductGrid } from "./components/ProductCard";
4 | import { Footer } from "./components/Footer";
5 | import "./App.css";
6 |
7 | function App() {
8 | return (
9 |
10 |
11 |
12 |
13 |
14 |
15 |
Welcome to Our Amazing Store
16 |
Discover quality products at unbeatable prices
17 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 | );
30 | }
31 |
32 | export default App;
33 |
--------------------------------------------------------------------------------
/example/src/components/Header.tsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 |
3 | export const Header: React.FC = () => {
4 | return (
5 |
6 |
7 |
My Awesome App
8 |
32 |
33 |
34 |
35 | );
36 | };
37 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "ES2022",
4 | "lib": ["ES2022"],
5 | "module": "ESNext",
6 | "moduleResolution": "Node",
7 | "allowSyntheticDefaultImports": true,
8 | "esModuleInterop": true,
9 | "allowJs": true,
10 | "outDir": "./dist",
11 | "rootDir": "./",
12 |
13 | "strict": true,
14 | "noImplicitAny": true,
15 | "strictNullChecks": true,
16 | "strictFunctionTypes": true,
17 | "noImplicitReturns": true,
18 | "noFallthroughCasesInSwitch": true,
19 | "noUncheckedIndexedAccess": true,
20 |
21 | "moduleDetection": "force",
22 | "resolveJsonModule": true,
23 | "isolatedModules": true,
24 | "verbatimModuleSyntax": false,
25 | "skipLibCheck": true,
26 | "forceConsistentCasingInFileNames": true,
27 |
28 | "declaration": true,
29 | "declarationMap": true,
30 | "sourceMap": true,
31 | "preserveConstEnums": true,
32 | "removeComments": false
33 | },
34 | "include": [
35 | "*.ts"
36 | ],
37 | "exclude": [
38 | "node_modules",
39 | "dist"
40 | ]
41 | }
42 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "i18n-scan",
3 | "version": "1.1.1",
4 | "description": "Extract raw text from JSX for i18n",
5 | "main": "dist/index.js",
6 | "type": "module",
7 | "bin": {
8 | "i18n-scan": "dist/index.js"
9 | },
10 | "files": [
11 | "dist/",
12 | "README.md"
13 | ],
14 | "scripts": {
15 | "build": "tsc",
16 | "dev": "tsx index.ts",
17 | "start": "node dist/index.js",
18 | "prepublishOnly": "npm run build",
19 | "test": "npm run build && node dist/index.js example/src"
20 | },
21 | "dependencies": {
22 | "commander": "^11.1.0",
23 | "@babel/parser": "^7.23.0",
24 | "@babel/traverse": "^7.23.0",
25 | "@babel/types": "^7.23.0"
26 | },
27 | "devDependencies": {
28 | "@types/node": "^20.0.0",
29 | "@types/babel__traverse": "^7.20.0",
30 | "typescript": "^5.0.0",
31 | "tsx": "^4.0.0"
32 | },
33 | "keywords": [
34 | "i18n",
35 | "jsx",
36 | "react",
37 | "typescript",
38 | "cli",
39 | "babel"
40 | ],
41 | "author": "hexxt",
42 | "license": "MIT",
43 | "engines": {
44 | "node": ">=18.0.0"
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/example/src/index.css:
--------------------------------------------------------------------------------
1 | :root {
2 | font-family: system-ui, Avenir, Helvetica, Arial, sans-serif;
3 | line-height: 1.5;
4 | font-weight: 400;
5 |
6 | color: #213547;
7 | background-color: #ffffff;
8 |
9 | font-synthesis: none;
10 | text-rendering: optimizeLegibility;
11 | -webkit-font-smoothing: antialiased;
12 | -moz-osx-font-smoothing: grayscale;
13 | }
14 |
15 | a {
16 | font-weight: 500;
17 | color: #646cff;
18 | text-decoration: inherit;
19 | }
20 | a:hover {
21 | color: #535bf2;
22 | }
23 |
24 | body {
25 | margin: 0;
26 | min-height: 100vh;
27 | }
28 |
29 | h1 {
30 | font-size: 3.2em;
31 | line-height: 1.1;
32 | }
33 |
34 | button {
35 | border-radius: 8px;
36 | border: 1px solid transparent;
37 | padding: 0.6em 1.2em;
38 | font-size: 1em;
39 | font-weight: 500;
40 | font-family: inherit;
41 | background-color: #1a1a1a;
42 | cursor: pointer;
43 | transition: border-color 0.25s;
44 | }
45 | button:hover {
46 | border-color: #646cff;
47 | }
48 | button:focus,
49 | button:focus-visible {
50 | outline: 4px auto -webkit-focus-ring-color;
51 | }
52 |
53 | @media (prefers-color-scheme: light) {
54 | :root {
55 | color: #213547;
56 | background-color: #ffffff;
57 | }
58 | a:hover {
59 | color: #747bff;
60 | }
61 | button {
62 | background-color: #f9f9f9;
63 | }
64 | }
65 |
--------------------------------------------------------------------------------
/example/public/vite.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # i18n-scan
2 |
3 | A CLI tool to extract raw text from JSX/TSX files for internationalization (i18n).
4 |
5 | Best paired with agentic ai tools like Cursor.
6 |
7 | ## Features
8 |
9 | - Extracts text content from JSX elements
10 | - Extracts text from specified JSX attributes (title, alt, placeholder, etc.)
11 | - Supports TypeScript and JavaScript JSX files
12 | - Configurable file extensions and attribute names
13 | - Shows file path and line numbers for each extracted text
14 |
15 | ## Installation
16 |
17 | 1. Install dependencies:
18 |
19 | ```bash
20 | npm install
21 | ```
22 |
23 | 2. Build the project:
24 |
25 | ```bash
26 | npm run build
27 | ```
28 |
29 | 3. (Optional) Install globally:
30 |
31 | ```bash
32 | npm install -g .
33 | ```
34 |
35 | ## Usage
36 |
37 | ### Basic Usage
38 |
39 | ```bash
40 | # Use with npx (recommended)
41 | npx i18n-scan
42 |
43 | # If installed globally
44 | i18n-scan
45 |
46 | # Run locally during development
47 | npm run dev
48 |
49 | # Run built version locally
50 | npm start
51 | ```
52 |
53 | ### Examples
54 |
55 | ```bash
56 | # Scan all .tsx and .jsx files in src directory
57 | npm run dev ./src
58 |
59 | # Scan with custom file extensions
60 | npm run dev ./src --ext .tsx,.jsx,.ts,.js
61 |
62 | # Scan with custom attributes
63 | npm run dev ./src --attributes title,alt,placeholder,aria-label
64 | ```
65 |
66 | ### Options
67 |
68 | - `-e, --ext `: Comma-separated list of file extensions (default: `.tsx,.jsx`)
69 | - `-a, --attributes `: Comma-separated list of attribute names to extract (default: `title,alt,placeholder`)
70 |
71 | ## Example Output
72 |
73 | ```
74 | [src/components/Button.tsx:5] Click me
75 | [src/components/Button.tsx:6] Submit form
76 | [src/components/Form.tsx:12] Enter your name
77 | [src/components/Form.tsx:13] This field is required
78 | ```
79 |
80 | ## Development
81 |
82 | - `npm run dev `: Run from TypeScript source
83 | - `npm run build`: Compile TypeScript to JavaScript
84 | - `npm start `: Run compiled version
85 |
86 | ## What it extracts
87 |
88 | 1. **JSX Text Content**: Any text between JSX tags
89 |
90 | ```jsx
91 | // Extracts: "Click me"
92 | Hello world
// Extracts: "Hello world"
93 | ```
94 |
95 | 2. **JSX Attributes**: Text from specified attributes
96 | ```jsx
97 | // Extracts: "Enter name"
98 |
// Extracts: "Profile picture"
99 | // Extracts: "Close dialog"
100 | ```
101 |
102 | ## Github Repo
103 |
104 | https://github.com/hexxt-git/i18n-scan
105 |
--------------------------------------------------------------------------------
/index.ts:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 |
3 | import fs from "fs";
4 | import path from "path";
5 | import { Command } from "commander";
6 | import * as babelParser from "@babel/parser";
7 | import * as t from "@babel/types";
8 | import traverseModule from "@babel/traverse";
9 |
10 | // Handle ESM import for @babel/traverse
11 | const traverse = (traverseModule as any).default || traverseModule;
12 |
13 | const program = new Command();
14 |
15 | program
16 | .name("extract-i18n")
17 | .description("Extract raw text from JSX for i18n")
18 | .argument("[directory]", "Directory to scan", ".")
19 | .option(
20 | "-e, --ext ",
21 | "Comma-separated list of file extensions",
22 | ".tsx,.jsx"
23 | )
24 | .option(
25 | "-a, --attributes ",
26 | "Comma-separated list of attribute names",
27 | "title,alt,placeholder"
28 | )
29 | .option(
30 | "-t, --truncate ",
31 | "Truncate text to this length, 0 to disable",
32 | "30"
33 | )
34 | .parse();
35 |
36 | const dir = path.resolve(program.args[0] as string);
37 | const options = program.opts();
38 | const extensions = options.ext.split(",").map((ext: string) => ext.trim());
39 | const attributes = options.attributes
40 | .split(",")
41 | .map((attr: string) => attr.trim());
42 | const truncate = options.truncate ? parseInt(options.truncate) : 0;
43 |
44 | function extractTextWithLocation(filePath: string, code: string) {
45 | const ast = babelParser.parse(code, {
46 | sourceType: "module",
47 | plugins: ["jsx", "typescript"],
48 | });
49 |
50 | const results: { line: number; text: string }[] = [];
51 |
52 | traverse(ast, {
53 | JSXText(path: any) {
54 | const text = path.node.value.trim();
55 | if (text) {
56 | results.push({
57 | line: path.node.loc?.start.line || 0,
58 | text,
59 | });
60 | }
61 | },
62 | JSXAttribute(path: any) {
63 | const name = path.node.name.name;
64 | const value = path.node.value;
65 | if (
66 | typeof name === "string" &&
67 | attributes.includes(name) &&
68 | value &&
69 | t.isStringLiteral(value)
70 | ) {
71 | results.push({
72 | line: value.loc?.start.line || 0,
73 | text: value.value.trim(),
74 | });
75 | }
76 | },
77 | });
78 |
79 | results.forEach(({ line, text }) => {
80 | const truncatedText = truncate
81 | ? text.length > truncate
82 | ? text.substring(0, truncate) + "..."
83 | : text
84 | : text;
85 | console.log(
86 | `[${path.relative(process.cwd(), filePath)}:${line}] ${truncatedText}`
87 | );
88 | });
89 | }
90 |
91 | function scanDir(dirPath: string) {
92 | const entries = fs.readdirSync(dirPath, { withFileTypes: true });
93 |
94 | for (const entry of entries) {
95 | const fullPath = path.join(dirPath, entry.name);
96 | if (entry.isDirectory()) {
97 | scanDir(fullPath);
98 | } else if (
99 | entry.isFile() &&
100 | extensions.includes(path.extname(entry.name))
101 | ) {
102 | const code = fs.readFileSync(fullPath, "utf8");
103 | extractTextWithLocation(fullPath, code);
104 | }
105 | }
106 | }
107 |
108 | scanDir(dir);
109 |
--------------------------------------------------------------------------------
/example/src/components/ProductCard.tsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 |
3 | interface Product {
4 | id: number;
5 | name: string;
6 | price: number;
7 | description: string;
8 | image: string;
9 | inStock: boolean;
10 | }
11 |
12 | interface ProductCardProps {
13 | product: Product;
14 | }
15 |
16 | export const ProductCard: React.FC = ({ product }) => {
17 | return (
18 |
19 |

24 |
25 |
26 |
{product.name}
27 |
{product.description}
28 |
29 |
30 | ${product.price.toFixed(2)}
31 |
32 | {product.inStock ? (
33 | In Stock
34 | ) : (
35 | Out of Stock
36 | )}
37 |
38 |
39 |
40 |
51 |
52 |
55 |
56 |
57 |
58 | );
59 | };
60 |
61 | // Example component showing multiple products
62 | export const ProductGrid: React.FC = () => {
63 | const sampleProducts: Product[] = [
64 | {
65 | id: 1,
66 | name: "Wireless Headphones",
67 | price: 99.99,
68 | description:
69 | "High-quality wireless headphones with noise cancellation and 20-hour battery life.",
70 | image: "https://picsum.photos/300/200?random=1",
71 | inStock: true,
72 | },
73 | {
74 | id: 2,
75 | name: "Smart Watch",
76 | price: 299.99,
77 | description:
78 | "Feature-rich smartwatch with health monitoring, GPS, and water resistance.",
79 | image: "https://picsum.photos/300/200?random=2",
80 | inStock: false,
81 | },
82 | {
83 | id: 3,
84 | name: "Laptop Backpack",
85 | price: 49.99,
86 | description:
87 | "Durable and stylish backpack designed specifically for laptops up to 15 inches.",
88 | image: "https://picsum.photos/300/200?random=3",
89 | inStock: true,
90 | },
91 | ];
92 |
93 | return (
94 |
95 |
96 |
Featured Products
97 |
Discover our best-selling items and latest arrivals
98 |
99 |
100 | {sampleProducts.map((product) => (
101 |
102 | ))}
103 |
104 |
105 |
106 | );
107 | };
108 |
--------------------------------------------------------------------------------
/example/src/components/ContactForm.tsx:
--------------------------------------------------------------------------------
1 | import React, { useState } from "react";
2 |
3 | export const ContactForm: React.FC = () => {
4 | const [formData, setFormData] = useState({
5 | name: "",
6 | email: "",
7 | subject: "",
8 | message: "",
9 | });
10 |
11 | return (
12 |
13 |
14 |
Get In Touch
15 |
16 | We'd love to hear from you. Send us a message and we'll respond as
17 | soon as possible.
18 |
19 |
20 |
102 |
103 |
104 | );
105 | };
106 |
--------------------------------------------------------------------------------
/example/src/assets/react.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/example/src/components/Footer.tsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 |
3 | export const Footer: React.FC = () => {
4 | return (
5 |
121 | );
122 | };
123 |
--------------------------------------------------------------------------------
/example/src/App.css:
--------------------------------------------------------------------------------
1 | /* Reset and base styles */
2 | * {
3 | margin: 0;
4 | padding: 0;
5 | box-sizing: border-box;
6 | }
7 |
8 | body {
9 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
10 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
11 | sans-serif;
12 | line-height: 1.6;
13 | color: #333;
14 | }
15 |
16 | .App {
17 | min-height: 100vh;
18 | display: flex;
19 | flex-direction: column;
20 | }
21 |
22 | main {
23 | flex: 1;
24 | }
25 |
26 | /* Container utility */
27 | .container {
28 | max-width: 1200px;
29 | margin: 0 auto;
30 | padding: 0 20px;
31 | }
32 |
33 | /* Header styles */
34 | .header {
35 | background-color: #2563eb;
36 | color: white;
37 | padding: 1rem 0;
38 | }
39 |
40 | .header-content {
41 | display: flex;
42 | justify-content: space-between;
43 | align-items: center;
44 | flex-wrap: wrap;
45 | gap: 1rem;
46 | }
47 |
48 | .header h1 {
49 | font-size: 1.5rem;
50 | font-weight: bold;
51 | }
52 |
53 | .nav ul {
54 | display: flex;
55 | list-style: none;
56 | gap: 1.5rem;
57 | }
58 |
59 | .nav a {
60 | color: white;
61 | text-decoration: none;
62 | transition: opacity 0.2s;
63 | }
64 |
65 | .nav a:hover {
66 | opacity: 0.8;
67 | }
68 |
69 | .header button {
70 | background-color: white;
71 | color: #2563eb;
72 | padding: 0.5rem 1rem;
73 | border: none;
74 | border-radius: 4px;
75 | cursor: pointer;
76 | font-weight: 500;
77 | transition: background-color 0.2s;
78 | }
79 |
80 | .header button:hover {
81 | background-color: #f3f4f6;
82 | }
83 |
84 | /* Hero section */
85 | .hero {
86 | background-color: #667eea;
87 | color: white;
88 | padding: 12rem 2rem;
89 | text-align: center;
90 | }
91 |
92 | .hero-content h1 {
93 | font-size: 2.5rem;
94 | margin-bottom: 1rem;
95 | font-weight: bold;
96 | }
97 |
98 | .hero-content p {
99 | font-size: 1.2rem;
100 | margin-bottom: 2rem;
101 | opacity: 0.9;
102 | }
103 |
104 | .cta-button {
105 | background-color: #f59e0b;
106 | color: white;
107 | padding: 1rem 2rem;
108 | border: none;
109 | border-radius: 8px;
110 | font-size: 1.1rem;
111 | font-weight: 600;
112 | cursor: pointer;
113 | transition: background-color 0.2s;
114 | }
115 |
116 | .cta-button:hover {
117 | background-color: #d97706;
118 | }
119 |
120 | /* Product grid styles */
121 | .products-section {
122 | padding: 3rem 0;
123 | }
124 |
125 | .products-section h2 {
126 | font-size: 2rem;
127 | text-align: center;
128 | margin-bottom: 1rem;
129 | font-weight: bold;
130 | }
131 |
132 | .products-section > .container > p {
133 | text-align: center;
134 | color: #6b7280;
135 | margin-bottom: 3rem;
136 | }
137 |
138 | .product-grid {
139 | display: grid;
140 | grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
141 | gap: 1.5rem;
142 | }
143 |
144 | .product-card {
145 | background: white;
146 | border-radius: 8px;
147 | box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
148 | overflow: hidden;
149 | transition: transform 0.2s;
150 | }
151 |
152 | .product-card:hover {
153 | transform: translateY(-2px);
154 | }
155 |
156 | .product-card img {
157 | width: 100%;
158 | height: 200px;
159 | background-color: #f3f4f6;
160 | display: block;
161 | object-fit: cover;
162 | }
163 |
164 | .product-card-content {
165 | padding: 1.5rem;
166 | }
167 |
168 | .product-card h3 {
169 | font-size: 1.25rem;
170 | font-weight: 600;
171 | margin-bottom: 0.5rem;
172 | }
173 |
174 | .product-card p {
175 | color: #6b7280;
176 | margin-bottom: 1rem;
177 | }
178 |
179 | .product-price-row {
180 | display: flex;
181 | justify-content: space-between;
182 | align-items: center;
183 | margin-bottom: 1rem;
184 | }
185 |
186 | .product-price {
187 | font-size: 1.5rem;
188 | font-weight: bold;
189 | color: #059669;
190 | }
191 |
192 | .stock-status {
193 | font-size: 0.875rem;
194 | font-weight: 500;
195 | }
196 |
197 | .in-stock {
198 | color: #059669;
199 | }
200 |
201 | .out-of-stock {
202 | color: #dc2626;
203 | }
204 |
205 | .product-buttons {
206 | display: flex;
207 | flex-direction: column;
208 | gap: 0.5rem;
209 | }
210 |
211 | .btn {
212 | padding: 0.5rem 1rem;
213 | border-radius: 6px;
214 | font-weight: 500;
215 | cursor: pointer;
216 | transition: all 0.2s;
217 | text-align: center;
218 | text-decoration: none;
219 | border: none;
220 | }
221 |
222 | .btn-primary {
223 | background-color: #2563eb;
224 | color: white;
225 | }
226 |
227 | .btn-primary:hover:not(:disabled) {
228 | background-color: #1d4ed8;
229 | }
230 |
231 | .btn-secondary {
232 | background-color: transparent;
233 | color: #374151;
234 | border: 1px solid #d1d5db;
235 | }
236 |
237 | .btn-secondary:hover {
238 | background-color: #f9fafb;
239 | }
240 |
241 | .btn:disabled {
242 | background-color: #d1d5db;
243 | color: #6b7280;
244 | cursor: not-allowed;
245 | }
246 |
247 | /* Contact form styles */
248 | .contact-section {
249 | background-color: #f3f4f6;
250 | padding: 3rem 0;
251 | }
252 |
253 | .contact-form-container {
254 | max-width: 700px;
255 | margin: 0 auto;
256 | }
257 |
258 | .contact-section h2 {
259 | font-size: 2rem;
260 | text-align: center;
261 | margin-bottom: 2rem;
262 | font-weight: bold;
263 | }
264 |
265 | .contact-section > .container > p {
266 | text-align: center;
267 | color: #6b7280;
268 | margin-bottom: 1.5rem;
269 | }
270 |
271 | .contact-form {
272 | background: white;
273 | padding: 1.5rem;
274 | border-radius: 8px;
275 | box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
276 | }
277 |
278 | .form-group {
279 | margin-bottom: 1rem;
280 | }
281 |
282 | .form-label {
283 | display: block;
284 | font-size: 0.875rem;
285 | font-weight: 500;
286 | color: #374151;
287 | margin-bottom: 0.5rem;
288 | }
289 |
290 | .form-input {
291 | width: 100%;
292 | padding: 0.75rem;
293 | border: 1px solid #d1d5db;
294 | border-radius: 6px;
295 | font-size: 1rem;
296 | }
297 |
298 | .form-input:focus {
299 | outline: none;
300 | border-color: #2563eb;
301 | box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
302 | }
303 |
304 | .form-textarea {
305 | width: 100%;
306 | padding: 0.75rem;
307 | border: 1px solid #d1d5db;
308 | border-radius: 6px;
309 | font-size: 1rem;
310 | resize: vertical;
311 | min-height: 120px;
312 | }
313 |
314 | .form-textarea:focus {
315 | outline: none;
316 | border-color: #2563eb;
317 | box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
318 | }
319 |
320 | .form-submit {
321 | width: 100%;
322 | background-color: #2563eb;
323 | color: white;
324 | padding: 0.75rem 1rem;
325 | border: none;
326 | border-radius: 6px;
327 | font-weight: 500;
328 | cursor: pointer;
329 | transition: background-color 0.2s;
330 | }
331 |
332 | .form-submit:hover {
333 | background-color: #1d4ed8;
334 | }
335 |
336 | /* Footer styles */
337 | .footer {
338 | background-color: #1f2937;
339 | color: white;
340 | padding: 3rem 0;
341 | }
342 |
343 | .footer-grid {
344 | display: grid;
345 | grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
346 | gap: 2rem;
347 | margin-bottom: 2rem;
348 | }
349 |
350 | .footer-section h3 {
351 | font-size: 1.125rem;
352 | font-weight: 600;
353 | margin-bottom: 1rem;
354 | }
355 |
356 | .footer-section p {
357 | color: #d1d5db;
358 | margin-bottom: 1rem;
359 | }
360 |
361 | .footer-section ul {
362 | list-style: none;
363 | }
364 |
365 | .footer-section ul li {
366 | margin-bottom: 0.5rem;
367 | }
368 |
369 | .footer-section a {
370 | color: #d1d5db;
371 | text-decoration: none;
372 | transition: color 0.2s;
373 | }
374 |
375 | .footer-section a:hover {
376 | color: white;
377 | }
378 |
379 | .footer-social {
380 | display: flex;
381 | gap: 1rem;
382 | }
383 |
384 | .footer-bottom {
385 | border-top: 1px solid #374151;
386 | margin-top: 2rem;
387 | padding-top: 2rem;
388 | text-align: center;
389 | }
390 |
391 | .footer-bottom-content {
392 | display: flex;
393 | flex-direction: column;
394 | align-items: center;
395 | gap: 1rem;
396 | }
397 |
398 | .footer-links {
399 | display: flex;
400 | gap: 1.5rem;
401 | font-size: 0.875rem;
402 | }
403 |
404 | .footer-bottom p {
405 | color: #9ca3af;
406 | font-size: 0.875rem;
407 | }
408 |
409 | /* Responsive design */
410 | @media (min-width: 768px) {
411 | .hero-content h1 {
412 | font-size: 3rem;
413 | }
414 |
415 | .footer-bottom-content {
416 | flex-direction: row;
417 | justify-content: space-between;
418 | }
419 |
420 | .nav ul {
421 | gap: 2rem;
422 | }
423 | }
424 |
--------------------------------------------------------------------------------
/example/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "example",
3 | "version": "0.0.0",
4 | "lockfileVersion": 3,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "example",
9 | "version": "0.0.0",
10 | "dependencies": {
11 | "react": "^19.1.0",
12 | "react-dom": "^19.1.0"
13 | },
14 | "devDependencies": {
15 | "@eslint/js": "^9.30.1",
16 | "@types/react": "^19.1.8",
17 | "@types/react-dom": "^19.1.6",
18 | "@vitejs/plugin-react": "^4.6.0",
19 | "eslint": "^9.30.1",
20 | "eslint-plugin-react-hooks": "^5.2.0",
21 | "eslint-plugin-react-refresh": "^0.4.20",
22 | "globals": "^16.3.0",
23 | "typescript": "~5.8.3",
24 | "typescript-eslint": "^8.35.1",
25 | "vite": "^7.0.4"
26 | }
27 | },
28 | "node_modules/@ampproject/remapping": {
29 | "version": "2.3.0",
30 | "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
31 | "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
32 | "dev": true,
33 | "license": "Apache-2.0",
34 | "dependencies": {
35 | "@jridgewell/gen-mapping": "^0.3.5",
36 | "@jridgewell/trace-mapping": "^0.3.24"
37 | },
38 | "engines": {
39 | "node": ">=6.0.0"
40 | }
41 | },
42 | "node_modules/@babel/code-frame": {
43 | "version": "7.27.1",
44 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz",
45 | "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==",
46 | "dev": true,
47 | "license": "MIT",
48 | "dependencies": {
49 | "@babel/helper-validator-identifier": "^7.27.1",
50 | "js-tokens": "^4.0.0",
51 | "picocolors": "^1.1.1"
52 | },
53 | "engines": {
54 | "node": ">=6.9.0"
55 | }
56 | },
57 | "node_modules/@babel/compat-data": {
58 | "version": "7.28.0",
59 | "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz",
60 | "integrity": "sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==",
61 | "dev": true,
62 | "license": "MIT",
63 | "engines": {
64 | "node": ">=6.9.0"
65 | }
66 | },
67 | "node_modules/@babel/core": {
68 | "version": "7.28.0",
69 | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz",
70 | "integrity": "sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==",
71 | "dev": true,
72 | "license": "MIT",
73 | "dependencies": {
74 | "@ampproject/remapping": "^2.2.0",
75 | "@babel/code-frame": "^7.27.1",
76 | "@babel/generator": "^7.28.0",
77 | "@babel/helper-compilation-targets": "^7.27.2",
78 | "@babel/helper-module-transforms": "^7.27.3",
79 | "@babel/helpers": "^7.27.6",
80 | "@babel/parser": "^7.28.0",
81 | "@babel/template": "^7.27.2",
82 | "@babel/traverse": "^7.28.0",
83 | "@babel/types": "^7.28.0",
84 | "convert-source-map": "^2.0.0",
85 | "debug": "^4.1.0",
86 | "gensync": "^1.0.0-beta.2",
87 | "json5": "^2.2.3",
88 | "semver": "^6.3.1"
89 | },
90 | "engines": {
91 | "node": ">=6.9.0"
92 | },
93 | "funding": {
94 | "type": "opencollective",
95 | "url": "https://opencollective.com/babel"
96 | }
97 | },
98 | "node_modules/@babel/generator": {
99 | "version": "7.28.0",
100 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz",
101 | "integrity": "sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==",
102 | "dev": true,
103 | "license": "MIT",
104 | "dependencies": {
105 | "@babel/parser": "^7.28.0",
106 | "@babel/types": "^7.28.0",
107 | "@jridgewell/gen-mapping": "^0.3.12",
108 | "@jridgewell/trace-mapping": "^0.3.28",
109 | "jsesc": "^3.0.2"
110 | },
111 | "engines": {
112 | "node": ">=6.9.0"
113 | }
114 | },
115 | "node_modules/@babel/helper-compilation-targets": {
116 | "version": "7.27.2",
117 | "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz",
118 | "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==",
119 | "dev": true,
120 | "license": "MIT",
121 | "dependencies": {
122 | "@babel/compat-data": "^7.27.2",
123 | "@babel/helper-validator-option": "^7.27.1",
124 | "browserslist": "^4.24.0",
125 | "lru-cache": "^5.1.1",
126 | "semver": "^6.3.1"
127 | },
128 | "engines": {
129 | "node": ">=6.9.0"
130 | }
131 | },
132 | "node_modules/@babel/helper-globals": {
133 | "version": "7.28.0",
134 | "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz",
135 | "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==",
136 | "dev": true,
137 | "license": "MIT",
138 | "engines": {
139 | "node": ">=6.9.0"
140 | }
141 | },
142 | "node_modules/@babel/helper-module-imports": {
143 | "version": "7.27.1",
144 | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz",
145 | "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==",
146 | "dev": true,
147 | "license": "MIT",
148 | "dependencies": {
149 | "@babel/traverse": "^7.27.1",
150 | "@babel/types": "^7.27.1"
151 | },
152 | "engines": {
153 | "node": ">=6.9.0"
154 | }
155 | },
156 | "node_modules/@babel/helper-module-transforms": {
157 | "version": "7.27.3",
158 | "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz",
159 | "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==",
160 | "dev": true,
161 | "license": "MIT",
162 | "dependencies": {
163 | "@babel/helper-module-imports": "^7.27.1",
164 | "@babel/helper-validator-identifier": "^7.27.1",
165 | "@babel/traverse": "^7.27.3"
166 | },
167 | "engines": {
168 | "node": ">=6.9.0"
169 | },
170 | "peerDependencies": {
171 | "@babel/core": "^7.0.0"
172 | }
173 | },
174 | "node_modules/@babel/helper-plugin-utils": {
175 | "version": "7.27.1",
176 | "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz",
177 | "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==",
178 | "dev": true,
179 | "license": "MIT",
180 | "engines": {
181 | "node": ">=6.9.0"
182 | }
183 | },
184 | "node_modules/@babel/helper-string-parser": {
185 | "version": "7.27.1",
186 | "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
187 | "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
188 | "dev": true,
189 | "license": "MIT",
190 | "engines": {
191 | "node": ">=6.9.0"
192 | }
193 | },
194 | "node_modules/@babel/helper-validator-identifier": {
195 | "version": "7.27.1",
196 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz",
197 | "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==",
198 | "dev": true,
199 | "license": "MIT",
200 | "engines": {
201 | "node": ">=6.9.0"
202 | }
203 | },
204 | "node_modules/@babel/helper-validator-option": {
205 | "version": "7.27.1",
206 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz",
207 | "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==",
208 | "dev": true,
209 | "license": "MIT",
210 | "engines": {
211 | "node": ">=6.9.0"
212 | }
213 | },
214 | "node_modules/@babel/helpers": {
215 | "version": "7.27.6",
216 | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz",
217 | "integrity": "sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==",
218 | "dev": true,
219 | "license": "MIT",
220 | "dependencies": {
221 | "@babel/template": "^7.27.2",
222 | "@babel/types": "^7.27.6"
223 | },
224 | "engines": {
225 | "node": ">=6.9.0"
226 | }
227 | },
228 | "node_modules/@babel/parser": {
229 | "version": "7.28.0",
230 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz",
231 | "integrity": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==",
232 | "dev": true,
233 | "license": "MIT",
234 | "dependencies": {
235 | "@babel/types": "^7.28.0"
236 | },
237 | "bin": {
238 | "parser": "bin/babel-parser.js"
239 | },
240 | "engines": {
241 | "node": ">=6.0.0"
242 | }
243 | },
244 | "node_modules/@babel/plugin-transform-react-jsx-self": {
245 | "version": "7.27.1",
246 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz",
247 | "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==",
248 | "dev": true,
249 | "license": "MIT",
250 | "dependencies": {
251 | "@babel/helper-plugin-utils": "^7.27.1"
252 | },
253 | "engines": {
254 | "node": ">=6.9.0"
255 | },
256 | "peerDependencies": {
257 | "@babel/core": "^7.0.0-0"
258 | }
259 | },
260 | "node_modules/@babel/plugin-transform-react-jsx-source": {
261 | "version": "7.27.1",
262 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz",
263 | "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==",
264 | "dev": true,
265 | "license": "MIT",
266 | "dependencies": {
267 | "@babel/helper-plugin-utils": "^7.27.1"
268 | },
269 | "engines": {
270 | "node": ">=6.9.0"
271 | },
272 | "peerDependencies": {
273 | "@babel/core": "^7.0.0-0"
274 | }
275 | },
276 | "node_modules/@babel/template": {
277 | "version": "7.27.2",
278 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz",
279 | "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==",
280 | "dev": true,
281 | "license": "MIT",
282 | "dependencies": {
283 | "@babel/code-frame": "^7.27.1",
284 | "@babel/parser": "^7.27.2",
285 | "@babel/types": "^7.27.1"
286 | },
287 | "engines": {
288 | "node": ">=6.9.0"
289 | }
290 | },
291 | "node_modules/@babel/traverse": {
292 | "version": "7.28.0",
293 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz",
294 | "integrity": "sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==",
295 | "dev": true,
296 | "license": "MIT",
297 | "dependencies": {
298 | "@babel/code-frame": "^7.27.1",
299 | "@babel/generator": "^7.28.0",
300 | "@babel/helper-globals": "^7.28.0",
301 | "@babel/parser": "^7.28.0",
302 | "@babel/template": "^7.27.2",
303 | "@babel/types": "^7.28.0",
304 | "debug": "^4.3.1"
305 | },
306 | "engines": {
307 | "node": ">=6.9.0"
308 | }
309 | },
310 | "node_modules/@babel/types": {
311 | "version": "7.28.1",
312 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.1.tgz",
313 | "integrity": "sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==",
314 | "dev": true,
315 | "license": "MIT",
316 | "dependencies": {
317 | "@babel/helper-string-parser": "^7.27.1",
318 | "@babel/helper-validator-identifier": "^7.27.1"
319 | },
320 | "engines": {
321 | "node": ">=6.9.0"
322 | }
323 | },
324 | "node_modules/@esbuild/aix-ppc64": {
325 | "version": "0.25.8",
326 | "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.8.tgz",
327 | "integrity": "sha512-urAvrUedIqEiFR3FYSLTWQgLu5tb+m0qZw0NBEasUeo6wuqatkMDaRT+1uABiGXEu5vqgPd7FGE1BhsAIy9QVA==",
328 | "cpu": [
329 | "ppc64"
330 | ],
331 | "dev": true,
332 | "license": "MIT",
333 | "optional": true,
334 | "os": [
335 | "aix"
336 | ],
337 | "engines": {
338 | "node": ">=18"
339 | }
340 | },
341 | "node_modules/@esbuild/android-arm": {
342 | "version": "0.25.8",
343 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.8.tgz",
344 | "integrity": "sha512-RONsAvGCz5oWyePVnLdZY/HHwA++nxYWIX1atInlaW6SEkwq6XkP3+cb825EUcRs5Vss/lGh/2YxAb5xqc07Uw==",
345 | "cpu": [
346 | "arm"
347 | ],
348 | "dev": true,
349 | "license": "MIT",
350 | "optional": true,
351 | "os": [
352 | "android"
353 | ],
354 | "engines": {
355 | "node": ">=18"
356 | }
357 | },
358 | "node_modules/@esbuild/android-arm64": {
359 | "version": "0.25.8",
360 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.8.tgz",
361 | "integrity": "sha512-OD3p7LYzWpLhZEyATcTSJ67qB5D+20vbtr6vHlHWSQYhKtzUYrETuWThmzFpZtFsBIxRvhO07+UgVA9m0i/O1w==",
362 | "cpu": [
363 | "arm64"
364 | ],
365 | "dev": true,
366 | "license": "MIT",
367 | "optional": true,
368 | "os": [
369 | "android"
370 | ],
371 | "engines": {
372 | "node": ">=18"
373 | }
374 | },
375 | "node_modules/@esbuild/android-x64": {
376 | "version": "0.25.8",
377 | "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.8.tgz",
378 | "integrity": "sha512-yJAVPklM5+4+9dTeKwHOaA+LQkmrKFX96BM0A/2zQrbS6ENCmxc4OVoBs5dPkCCak2roAD+jKCdnmOqKszPkjA==",
379 | "cpu": [
380 | "x64"
381 | ],
382 | "dev": true,
383 | "license": "MIT",
384 | "optional": true,
385 | "os": [
386 | "android"
387 | ],
388 | "engines": {
389 | "node": ">=18"
390 | }
391 | },
392 | "node_modules/@esbuild/darwin-arm64": {
393 | "version": "0.25.8",
394 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.8.tgz",
395 | "integrity": "sha512-Jw0mxgIaYX6R8ODrdkLLPwBqHTtYHJSmzzd+QeytSugzQ0Vg4c5rDky5VgkoowbZQahCbsv1rT1KW72MPIkevw==",
396 | "cpu": [
397 | "arm64"
398 | ],
399 | "dev": true,
400 | "license": "MIT",
401 | "optional": true,
402 | "os": [
403 | "darwin"
404 | ],
405 | "engines": {
406 | "node": ">=18"
407 | }
408 | },
409 | "node_modules/@esbuild/darwin-x64": {
410 | "version": "0.25.8",
411 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.8.tgz",
412 | "integrity": "sha512-Vh2gLxxHnuoQ+GjPNvDSDRpoBCUzY4Pu0kBqMBDlK4fuWbKgGtmDIeEC081xi26PPjn+1tct+Bh8FjyLlw1Zlg==",
413 | "cpu": [
414 | "x64"
415 | ],
416 | "dev": true,
417 | "license": "MIT",
418 | "optional": true,
419 | "os": [
420 | "darwin"
421 | ],
422 | "engines": {
423 | "node": ">=18"
424 | }
425 | },
426 | "node_modules/@esbuild/freebsd-arm64": {
427 | "version": "0.25.8",
428 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.8.tgz",
429 | "integrity": "sha512-YPJ7hDQ9DnNe5vxOm6jaie9QsTwcKedPvizTVlqWG9GBSq+BuyWEDazlGaDTC5NGU4QJd666V0yqCBL2oWKPfA==",
430 | "cpu": [
431 | "arm64"
432 | ],
433 | "dev": true,
434 | "license": "MIT",
435 | "optional": true,
436 | "os": [
437 | "freebsd"
438 | ],
439 | "engines": {
440 | "node": ">=18"
441 | }
442 | },
443 | "node_modules/@esbuild/freebsd-x64": {
444 | "version": "0.25.8",
445 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.8.tgz",
446 | "integrity": "sha512-MmaEXxQRdXNFsRN/KcIimLnSJrk2r5H8v+WVafRWz5xdSVmWLoITZQXcgehI2ZE6gioE6HirAEToM/RvFBeuhw==",
447 | "cpu": [
448 | "x64"
449 | ],
450 | "dev": true,
451 | "license": "MIT",
452 | "optional": true,
453 | "os": [
454 | "freebsd"
455 | ],
456 | "engines": {
457 | "node": ">=18"
458 | }
459 | },
460 | "node_modules/@esbuild/linux-arm": {
461 | "version": "0.25.8",
462 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.8.tgz",
463 | "integrity": "sha512-FuzEP9BixzZohl1kLf76KEVOsxtIBFwCaLupVuk4eFVnOZfU+Wsn+x5Ryam7nILV2pkq2TqQM9EZPsOBuMC+kg==",
464 | "cpu": [
465 | "arm"
466 | ],
467 | "dev": true,
468 | "license": "MIT",
469 | "optional": true,
470 | "os": [
471 | "linux"
472 | ],
473 | "engines": {
474 | "node": ">=18"
475 | }
476 | },
477 | "node_modules/@esbuild/linux-arm64": {
478 | "version": "0.25.8",
479 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.8.tgz",
480 | "integrity": "sha512-WIgg00ARWv/uYLU7lsuDK00d/hHSfES5BzdWAdAig1ioV5kaFNrtK8EqGcUBJhYqotlUByUKz5Qo6u8tt7iD/w==",
481 | "cpu": [
482 | "arm64"
483 | ],
484 | "dev": true,
485 | "license": "MIT",
486 | "optional": true,
487 | "os": [
488 | "linux"
489 | ],
490 | "engines": {
491 | "node": ">=18"
492 | }
493 | },
494 | "node_modules/@esbuild/linux-ia32": {
495 | "version": "0.25.8",
496 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.8.tgz",
497 | "integrity": "sha512-A1D9YzRX1i+1AJZuFFUMP1E9fMaYY+GnSQil9Tlw05utlE86EKTUA7RjwHDkEitmLYiFsRd9HwKBPEftNdBfjg==",
498 | "cpu": [
499 | "ia32"
500 | ],
501 | "dev": true,
502 | "license": "MIT",
503 | "optional": true,
504 | "os": [
505 | "linux"
506 | ],
507 | "engines": {
508 | "node": ">=18"
509 | }
510 | },
511 | "node_modules/@esbuild/linux-loong64": {
512 | "version": "0.25.8",
513 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.8.tgz",
514 | "integrity": "sha512-O7k1J/dwHkY1RMVvglFHl1HzutGEFFZ3kNiDMSOyUrB7WcoHGf96Sh+64nTRT26l3GMbCW01Ekh/ThKM5iI7hQ==",
515 | "cpu": [
516 | "loong64"
517 | ],
518 | "dev": true,
519 | "license": "MIT",
520 | "optional": true,
521 | "os": [
522 | "linux"
523 | ],
524 | "engines": {
525 | "node": ">=18"
526 | }
527 | },
528 | "node_modules/@esbuild/linux-mips64el": {
529 | "version": "0.25.8",
530 | "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.8.tgz",
531 | "integrity": "sha512-uv+dqfRazte3BzfMp8PAQXmdGHQt2oC/y2ovwpTteqrMx2lwaksiFZ/bdkXJC19ttTvNXBuWH53zy/aTj1FgGw==",
532 | "cpu": [
533 | "mips64el"
534 | ],
535 | "dev": true,
536 | "license": "MIT",
537 | "optional": true,
538 | "os": [
539 | "linux"
540 | ],
541 | "engines": {
542 | "node": ">=18"
543 | }
544 | },
545 | "node_modules/@esbuild/linux-ppc64": {
546 | "version": "0.25.8",
547 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.8.tgz",
548 | "integrity": "sha512-GyG0KcMi1GBavP5JgAkkstMGyMholMDybAf8wF5A70CALlDM2p/f7YFE7H92eDeH/VBtFJA5MT4nRPDGg4JuzQ==",
549 | "cpu": [
550 | "ppc64"
551 | ],
552 | "dev": true,
553 | "license": "MIT",
554 | "optional": true,
555 | "os": [
556 | "linux"
557 | ],
558 | "engines": {
559 | "node": ">=18"
560 | }
561 | },
562 | "node_modules/@esbuild/linux-riscv64": {
563 | "version": "0.25.8",
564 | "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.8.tgz",
565 | "integrity": "sha512-rAqDYFv3yzMrq7GIcen3XP7TUEG/4LK86LUPMIz6RT8A6pRIDn0sDcvjudVZBiiTcZCY9y2SgYX2lgK3AF+1eg==",
566 | "cpu": [
567 | "riscv64"
568 | ],
569 | "dev": true,
570 | "license": "MIT",
571 | "optional": true,
572 | "os": [
573 | "linux"
574 | ],
575 | "engines": {
576 | "node": ">=18"
577 | }
578 | },
579 | "node_modules/@esbuild/linux-s390x": {
580 | "version": "0.25.8",
581 | "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.8.tgz",
582 | "integrity": "sha512-Xutvh6VjlbcHpsIIbwY8GVRbwoviWT19tFhgdA7DlenLGC/mbc3lBoVb7jxj9Z+eyGqvcnSyIltYUrkKzWqSvg==",
583 | "cpu": [
584 | "s390x"
585 | ],
586 | "dev": true,
587 | "license": "MIT",
588 | "optional": true,
589 | "os": [
590 | "linux"
591 | ],
592 | "engines": {
593 | "node": ">=18"
594 | }
595 | },
596 | "node_modules/@esbuild/linux-x64": {
597 | "version": "0.25.8",
598 | "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.8.tgz",
599 | "integrity": "sha512-ASFQhgY4ElXh3nDcOMTkQero4b1lgubskNlhIfJrsH5OKZXDpUAKBlNS0Kx81jwOBp+HCeZqmoJuihTv57/jvQ==",
600 | "cpu": [
601 | "x64"
602 | ],
603 | "dev": true,
604 | "license": "MIT",
605 | "optional": true,
606 | "os": [
607 | "linux"
608 | ],
609 | "engines": {
610 | "node": ">=18"
611 | }
612 | },
613 | "node_modules/@esbuild/netbsd-arm64": {
614 | "version": "0.25.8",
615 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.8.tgz",
616 | "integrity": "sha512-d1KfruIeohqAi6SA+gENMuObDbEjn22olAR7egqnkCD9DGBG0wsEARotkLgXDu6c4ncgWTZJtN5vcgxzWRMzcw==",
617 | "cpu": [
618 | "arm64"
619 | ],
620 | "dev": true,
621 | "license": "MIT",
622 | "optional": true,
623 | "os": [
624 | "netbsd"
625 | ],
626 | "engines": {
627 | "node": ">=18"
628 | }
629 | },
630 | "node_modules/@esbuild/netbsd-x64": {
631 | "version": "0.25.8",
632 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.8.tgz",
633 | "integrity": "sha512-nVDCkrvx2ua+XQNyfrujIG38+YGyuy2Ru9kKVNyh5jAys6n+l44tTtToqHjino2My8VAY6Lw9H7RI73XFi66Cg==",
634 | "cpu": [
635 | "x64"
636 | ],
637 | "dev": true,
638 | "license": "MIT",
639 | "optional": true,
640 | "os": [
641 | "netbsd"
642 | ],
643 | "engines": {
644 | "node": ">=18"
645 | }
646 | },
647 | "node_modules/@esbuild/openbsd-arm64": {
648 | "version": "0.25.8",
649 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.8.tgz",
650 | "integrity": "sha512-j8HgrDuSJFAujkivSMSfPQSAa5Fxbvk4rgNAS5i3K+r8s1X0p1uOO2Hl2xNsGFppOeHOLAVgYwDVlmxhq5h+SQ==",
651 | "cpu": [
652 | "arm64"
653 | ],
654 | "dev": true,
655 | "license": "MIT",
656 | "optional": true,
657 | "os": [
658 | "openbsd"
659 | ],
660 | "engines": {
661 | "node": ">=18"
662 | }
663 | },
664 | "node_modules/@esbuild/openbsd-x64": {
665 | "version": "0.25.8",
666 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.8.tgz",
667 | "integrity": "sha512-1h8MUAwa0VhNCDp6Af0HToI2TJFAn1uqT9Al6DJVzdIBAd21m/G0Yfc77KDM3uF3T/YaOgQq3qTJHPbTOInaIQ==",
668 | "cpu": [
669 | "x64"
670 | ],
671 | "dev": true,
672 | "license": "MIT",
673 | "optional": true,
674 | "os": [
675 | "openbsd"
676 | ],
677 | "engines": {
678 | "node": ">=18"
679 | }
680 | },
681 | "node_modules/@esbuild/openharmony-arm64": {
682 | "version": "0.25.8",
683 | "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.8.tgz",
684 | "integrity": "sha512-r2nVa5SIK9tSWd0kJd9HCffnDHKchTGikb//9c7HX+r+wHYCpQrSgxhlY6KWV1nFo1l4KFbsMlHk+L6fekLsUg==",
685 | "cpu": [
686 | "arm64"
687 | ],
688 | "dev": true,
689 | "license": "MIT",
690 | "optional": true,
691 | "os": [
692 | "openharmony"
693 | ],
694 | "engines": {
695 | "node": ">=18"
696 | }
697 | },
698 | "node_modules/@esbuild/sunos-x64": {
699 | "version": "0.25.8",
700 | "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.8.tgz",
701 | "integrity": "sha512-zUlaP2S12YhQ2UzUfcCuMDHQFJyKABkAjvO5YSndMiIkMimPmxA+BYSBikWgsRpvyxuRnow4nS5NPnf9fpv41w==",
702 | "cpu": [
703 | "x64"
704 | ],
705 | "dev": true,
706 | "license": "MIT",
707 | "optional": true,
708 | "os": [
709 | "sunos"
710 | ],
711 | "engines": {
712 | "node": ">=18"
713 | }
714 | },
715 | "node_modules/@esbuild/win32-arm64": {
716 | "version": "0.25.8",
717 | "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.8.tgz",
718 | "integrity": "sha512-YEGFFWESlPva8hGL+zvj2z/SaK+pH0SwOM0Nc/d+rVnW7GSTFlLBGzZkuSU9kFIGIo8q9X3ucpZhu8PDN5A2sQ==",
719 | "cpu": [
720 | "arm64"
721 | ],
722 | "dev": true,
723 | "license": "MIT",
724 | "optional": true,
725 | "os": [
726 | "win32"
727 | ],
728 | "engines": {
729 | "node": ">=18"
730 | }
731 | },
732 | "node_modules/@esbuild/win32-ia32": {
733 | "version": "0.25.8",
734 | "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.8.tgz",
735 | "integrity": "sha512-hiGgGC6KZ5LZz58OL/+qVVoZiuZlUYlYHNAmczOm7bs2oE1XriPFi5ZHHrS8ACpV5EjySrnoCKmcbQMN+ojnHg==",
736 | "cpu": [
737 | "ia32"
738 | ],
739 | "dev": true,
740 | "license": "MIT",
741 | "optional": true,
742 | "os": [
743 | "win32"
744 | ],
745 | "engines": {
746 | "node": ">=18"
747 | }
748 | },
749 | "node_modules/@esbuild/win32-x64": {
750 | "version": "0.25.8",
751 | "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.8.tgz",
752 | "integrity": "sha512-cn3Yr7+OaaZq1c+2pe+8yxC8E144SReCQjN6/2ynubzYjvyqZjTXfQJpAcQpsdJq3My7XADANiYGHoFC69pLQw==",
753 | "cpu": [
754 | "x64"
755 | ],
756 | "dev": true,
757 | "license": "MIT",
758 | "optional": true,
759 | "os": [
760 | "win32"
761 | ],
762 | "engines": {
763 | "node": ">=18"
764 | }
765 | },
766 | "node_modules/@eslint-community/eslint-utils": {
767 | "version": "4.7.0",
768 | "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz",
769 | "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==",
770 | "dev": true,
771 | "license": "MIT",
772 | "dependencies": {
773 | "eslint-visitor-keys": "^3.4.3"
774 | },
775 | "engines": {
776 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
777 | },
778 | "funding": {
779 | "url": "https://opencollective.com/eslint"
780 | },
781 | "peerDependencies": {
782 | "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
783 | }
784 | },
785 | "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": {
786 | "version": "3.4.3",
787 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
788 | "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
789 | "dev": true,
790 | "license": "Apache-2.0",
791 | "engines": {
792 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
793 | },
794 | "funding": {
795 | "url": "https://opencollective.com/eslint"
796 | }
797 | },
798 | "node_modules/@eslint-community/regexpp": {
799 | "version": "4.12.1",
800 | "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz",
801 | "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==",
802 | "dev": true,
803 | "license": "MIT",
804 | "engines": {
805 | "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
806 | }
807 | },
808 | "node_modules/@eslint/config-array": {
809 | "version": "0.21.0",
810 | "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.0.tgz",
811 | "integrity": "sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==",
812 | "dev": true,
813 | "license": "Apache-2.0",
814 | "dependencies": {
815 | "@eslint/object-schema": "^2.1.6",
816 | "debug": "^4.3.1",
817 | "minimatch": "^3.1.2"
818 | },
819 | "engines": {
820 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
821 | }
822 | },
823 | "node_modules/@eslint/config-helpers": {
824 | "version": "0.3.0",
825 | "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.0.tgz",
826 | "integrity": "sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw==",
827 | "dev": true,
828 | "license": "Apache-2.0",
829 | "engines": {
830 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
831 | }
832 | },
833 | "node_modules/@eslint/core": {
834 | "version": "0.15.1",
835 | "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.1.tgz",
836 | "integrity": "sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==",
837 | "dev": true,
838 | "license": "Apache-2.0",
839 | "dependencies": {
840 | "@types/json-schema": "^7.0.15"
841 | },
842 | "engines": {
843 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
844 | }
845 | },
846 | "node_modules/@eslint/eslintrc": {
847 | "version": "3.3.1",
848 | "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz",
849 | "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==",
850 | "dev": true,
851 | "license": "MIT",
852 | "dependencies": {
853 | "ajv": "^6.12.4",
854 | "debug": "^4.3.2",
855 | "espree": "^10.0.1",
856 | "globals": "^14.0.0",
857 | "ignore": "^5.2.0",
858 | "import-fresh": "^3.2.1",
859 | "js-yaml": "^4.1.0",
860 | "minimatch": "^3.1.2",
861 | "strip-json-comments": "^3.1.1"
862 | },
863 | "engines": {
864 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
865 | },
866 | "funding": {
867 | "url": "https://opencollective.com/eslint"
868 | }
869 | },
870 | "node_modules/@eslint/eslintrc/node_modules/globals": {
871 | "version": "14.0.0",
872 | "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz",
873 | "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==",
874 | "dev": true,
875 | "license": "MIT",
876 | "engines": {
877 | "node": ">=18"
878 | },
879 | "funding": {
880 | "url": "https://github.com/sponsors/sindresorhus"
881 | }
882 | },
883 | "node_modules/@eslint/js": {
884 | "version": "9.31.0",
885 | "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.31.0.tgz",
886 | "integrity": "sha512-LOm5OVt7D4qiKCqoiPbA7LWmI+tbw1VbTUowBcUMgQSuM6poJufkFkYDcQpo5KfgD39TnNySV26QjOh7VFpSyw==",
887 | "dev": true,
888 | "license": "MIT",
889 | "engines": {
890 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
891 | },
892 | "funding": {
893 | "url": "https://eslint.org/donate"
894 | }
895 | },
896 | "node_modules/@eslint/object-schema": {
897 | "version": "2.1.6",
898 | "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz",
899 | "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==",
900 | "dev": true,
901 | "license": "Apache-2.0",
902 | "engines": {
903 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
904 | }
905 | },
906 | "node_modules/@eslint/plugin-kit": {
907 | "version": "0.3.4",
908 | "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.4.tgz",
909 | "integrity": "sha512-Ul5l+lHEcw3L5+k8POx6r74mxEYKG5kOb6Xpy2gCRW6zweT6TEhAf8vhxGgjhqrd/VO/Dirhsb+1hNpD1ue9hw==",
910 | "dev": true,
911 | "license": "Apache-2.0",
912 | "dependencies": {
913 | "@eslint/core": "^0.15.1",
914 | "levn": "^0.4.1"
915 | },
916 | "engines": {
917 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
918 | }
919 | },
920 | "node_modules/@humanfs/core": {
921 | "version": "0.19.1",
922 | "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz",
923 | "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==",
924 | "dev": true,
925 | "license": "Apache-2.0",
926 | "engines": {
927 | "node": ">=18.18.0"
928 | }
929 | },
930 | "node_modules/@humanfs/node": {
931 | "version": "0.16.6",
932 | "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz",
933 | "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==",
934 | "dev": true,
935 | "license": "Apache-2.0",
936 | "dependencies": {
937 | "@humanfs/core": "^0.19.1",
938 | "@humanwhocodes/retry": "^0.3.0"
939 | },
940 | "engines": {
941 | "node": ">=18.18.0"
942 | }
943 | },
944 | "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": {
945 | "version": "0.3.1",
946 | "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz",
947 | "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==",
948 | "dev": true,
949 | "license": "Apache-2.0",
950 | "engines": {
951 | "node": ">=18.18"
952 | },
953 | "funding": {
954 | "type": "github",
955 | "url": "https://github.com/sponsors/nzakas"
956 | }
957 | },
958 | "node_modules/@humanwhocodes/module-importer": {
959 | "version": "1.0.1",
960 | "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
961 | "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
962 | "dev": true,
963 | "license": "Apache-2.0",
964 | "engines": {
965 | "node": ">=12.22"
966 | },
967 | "funding": {
968 | "type": "github",
969 | "url": "https://github.com/sponsors/nzakas"
970 | }
971 | },
972 | "node_modules/@humanwhocodes/retry": {
973 | "version": "0.4.3",
974 | "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz",
975 | "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==",
976 | "dev": true,
977 | "license": "Apache-2.0",
978 | "engines": {
979 | "node": ">=18.18"
980 | },
981 | "funding": {
982 | "type": "github",
983 | "url": "https://github.com/sponsors/nzakas"
984 | }
985 | },
986 | "node_modules/@jridgewell/gen-mapping": {
987 | "version": "0.3.12",
988 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz",
989 | "integrity": "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==",
990 | "dev": true,
991 | "license": "MIT",
992 | "dependencies": {
993 | "@jridgewell/sourcemap-codec": "^1.5.0",
994 | "@jridgewell/trace-mapping": "^0.3.24"
995 | }
996 | },
997 | "node_modules/@jridgewell/resolve-uri": {
998 | "version": "3.1.2",
999 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
1000 | "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
1001 | "dev": true,
1002 | "license": "MIT",
1003 | "engines": {
1004 | "node": ">=6.0.0"
1005 | }
1006 | },
1007 | "node_modules/@jridgewell/sourcemap-codec": {
1008 | "version": "1.5.4",
1009 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz",
1010 | "integrity": "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==",
1011 | "dev": true,
1012 | "license": "MIT"
1013 | },
1014 | "node_modules/@jridgewell/trace-mapping": {
1015 | "version": "0.3.29",
1016 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz",
1017 | "integrity": "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==",
1018 | "dev": true,
1019 | "license": "MIT",
1020 | "dependencies": {
1021 | "@jridgewell/resolve-uri": "^3.1.0",
1022 | "@jridgewell/sourcemap-codec": "^1.4.14"
1023 | }
1024 | },
1025 | "node_modules/@nodelib/fs.scandir": {
1026 | "version": "2.1.5",
1027 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
1028 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
1029 | "dev": true,
1030 | "license": "MIT",
1031 | "dependencies": {
1032 | "@nodelib/fs.stat": "2.0.5",
1033 | "run-parallel": "^1.1.9"
1034 | },
1035 | "engines": {
1036 | "node": ">= 8"
1037 | }
1038 | },
1039 | "node_modules/@nodelib/fs.stat": {
1040 | "version": "2.0.5",
1041 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
1042 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
1043 | "dev": true,
1044 | "license": "MIT",
1045 | "engines": {
1046 | "node": ">= 8"
1047 | }
1048 | },
1049 | "node_modules/@nodelib/fs.walk": {
1050 | "version": "1.2.8",
1051 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
1052 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
1053 | "dev": true,
1054 | "license": "MIT",
1055 | "dependencies": {
1056 | "@nodelib/fs.scandir": "2.1.5",
1057 | "fastq": "^1.6.0"
1058 | },
1059 | "engines": {
1060 | "node": ">= 8"
1061 | }
1062 | },
1063 | "node_modules/@rolldown/pluginutils": {
1064 | "version": "1.0.0-beta.27",
1065 | "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz",
1066 | "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==",
1067 | "dev": true,
1068 | "license": "MIT"
1069 | },
1070 | "node_modules/@rollup/rollup-android-arm-eabi": {
1071 | "version": "4.45.1",
1072 | "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.45.1.tgz",
1073 | "integrity": "sha512-NEySIFvMY0ZQO+utJkgoMiCAjMrGvnbDLHvcmlA33UXJpYBCvlBEbMMtV837uCkS+plG2umfhn0T5mMAxGrlRA==",
1074 | "cpu": [
1075 | "arm"
1076 | ],
1077 | "dev": true,
1078 | "license": "MIT",
1079 | "optional": true,
1080 | "os": [
1081 | "android"
1082 | ]
1083 | },
1084 | "node_modules/@rollup/rollup-android-arm64": {
1085 | "version": "4.45.1",
1086 | "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.45.1.tgz",
1087 | "integrity": "sha512-ujQ+sMXJkg4LRJaYreaVx7Z/VMgBBd89wGS4qMrdtfUFZ+TSY5Rs9asgjitLwzeIbhwdEhyj29zhst3L1lKsRQ==",
1088 | "cpu": [
1089 | "arm64"
1090 | ],
1091 | "dev": true,
1092 | "license": "MIT",
1093 | "optional": true,
1094 | "os": [
1095 | "android"
1096 | ]
1097 | },
1098 | "node_modules/@rollup/rollup-darwin-arm64": {
1099 | "version": "4.45.1",
1100 | "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.45.1.tgz",
1101 | "integrity": "sha512-FSncqHvqTm3lC6Y13xncsdOYfxGSLnP+73k815EfNmpewPs+EyM49haPS105Rh4aF5mJKywk9X0ogzLXZzN9lA==",
1102 | "cpu": [
1103 | "arm64"
1104 | ],
1105 | "dev": true,
1106 | "license": "MIT",
1107 | "optional": true,
1108 | "os": [
1109 | "darwin"
1110 | ]
1111 | },
1112 | "node_modules/@rollup/rollup-darwin-x64": {
1113 | "version": "4.45.1",
1114 | "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.45.1.tgz",
1115 | "integrity": "sha512-2/vVn/husP5XI7Fsf/RlhDaQJ7x9zjvC81anIVbr4b/f0xtSmXQTFcGIQ/B1cXIYM6h2nAhJkdMHTnD7OtQ9Og==",
1116 | "cpu": [
1117 | "x64"
1118 | ],
1119 | "dev": true,
1120 | "license": "MIT",
1121 | "optional": true,
1122 | "os": [
1123 | "darwin"
1124 | ]
1125 | },
1126 | "node_modules/@rollup/rollup-freebsd-arm64": {
1127 | "version": "4.45.1",
1128 | "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.45.1.tgz",
1129 | "integrity": "sha512-4g1kaDxQItZsrkVTdYQ0bxu4ZIQ32cotoQbmsAnW1jAE4XCMbcBPDirX5fyUzdhVCKgPcrwWuucI8yrVRBw2+g==",
1130 | "cpu": [
1131 | "arm64"
1132 | ],
1133 | "dev": true,
1134 | "license": "MIT",
1135 | "optional": true,
1136 | "os": [
1137 | "freebsd"
1138 | ]
1139 | },
1140 | "node_modules/@rollup/rollup-freebsd-x64": {
1141 | "version": "4.45.1",
1142 | "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.45.1.tgz",
1143 | "integrity": "sha512-L/6JsfiL74i3uK1Ti2ZFSNsp5NMiM4/kbbGEcOCps99aZx3g8SJMO1/9Y0n/qKlWZfn6sScf98lEOUe2mBvW9A==",
1144 | "cpu": [
1145 | "x64"
1146 | ],
1147 | "dev": true,
1148 | "license": "MIT",
1149 | "optional": true,
1150 | "os": [
1151 | "freebsd"
1152 | ]
1153 | },
1154 | "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
1155 | "version": "4.45.1",
1156 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.45.1.tgz",
1157 | "integrity": "sha512-RkdOTu2jK7brlu+ZwjMIZfdV2sSYHK2qR08FUWcIoqJC2eywHbXr0L8T/pONFwkGukQqERDheaGTeedG+rra6Q==",
1158 | "cpu": [
1159 | "arm"
1160 | ],
1161 | "dev": true,
1162 | "license": "MIT",
1163 | "optional": true,
1164 | "os": [
1165 | "linux"
1166 | ]
1167 | },
1168 | "node_modules/@rollup/rollup-linux-arm-musleabihf": {
1169 | "version": "4.45.1",
1170 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.45.1.tgz",
1171 | "integrity": "sha512-3kJ8pgfBt6CIIr1o+HQA7OZ9mp/zDk3ctekGl9qn/pRBgrRgfwiffaUmqioUGN9hv0OHv2gxmvdKOkARCtRb8Q==",
1172 | "cpu": [
1173 | "arm"
1174 | ],
1175 | "dev": true,
1176 | "license": "MIT",
1177 | "optional": true,
1178 | "os": [
1179 | "linux"
1180 | ]
1181 | },
1182 | "node_modules/@rollup/rollup-linux-arm64-gnu": {
1183 | "version": "4.45.1",
1184 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.45.1.tgz",
1185 | "integrity": "sha512-k3dOKCfIVixWjG7OXTCOmDfJj3vbdhN0QYEqB+OuGArOChek22hn7Uy5A/gTDNAcCy5v2YcXRJ/Qcnm4/ma1xw==",
1186 | "cpu": [
1187 | "arm64"
1188 | ],
1189 | "dev": true,
1190 | "license": "MIT",
1191 | "optional": true,
1192 | "os": [
1193 | "linux"
1194 | ]
1195 | },
1196 | "node_modules/@rollup/rollup-linux-arm64-musl": {
1197 | "version": "4.45.1",
1198 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.45.1.tgz",
1199 | "integrity": "sha512-PmI1vxQetnM58ZmDFl9/Uk2lpBBby6B6rF4muJc65uZbxCs0EA7hhKCk2PKlmZKuyVSHAyIw3+/SiuMLxKxWog==",
1200 | "cpu": [
1201 | "arm64"
1202 | ],
1203 | "dev": true,
1204 | "license": "MIT",
1205 | "optional": true,
1206 | "os": [
1207 | "linux"
1208 | ]
1209 | },
1210 | "node_modules/@rollup/rollup-linux-loongarch64-gnu": {
1211 | "version": "4.45.1",
1212 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.45.1.tgz",
1213 | "integrity": "sha512-9UmI0VzGmNJ28ibHW2GpE2nF0PBQqsyiS4kcJ5vK+wuwGnV5RlqdczVocDSUfGX/Na7/XINRVoUgJyFIgipoRg==",
1214 | "cpu": [
1215 | "loong64"
1216 | ],
1217 | "dev": true,
1218 | "license": "MIT",
1219 | "optional": true,
1220 | "os": [
1221 | "linux"
1222 | ]
1223 | },
1224 | "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
1225 | "version": "4.45.1",
1226 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.45.1.tgz",
1227 | "integrity": "sha512-7nR2KY8oEOUTD3pBAxIBBbZr0U7U+R9HDTPNy+5nVVHDXI4ikYniH1oxQz9VoB5PbBU1CZuDGHkLJkd3zLMWsg==",
1228 | "cpu": [
1229 | "ppc64"
1230 | ],
1231 | "dev": true,
1232 | "license": "MIT",
1233 | "optional": true,
1234 | "os": [
1235 | "linux"
1236 | ]
1237 | },
1238 | "node_modules/@rollup/rollup-linux-riscv64-gnu": {
1239 | "version": "4.45.1",
1240 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.45.1.tgz",
1241 | "integrity": "sha512-nlcl3jgUultKROfZijKjRQLUu9Ma0PeNv/VFHkZiKbXTBQXhpytS8CIj5/NfBeECZtY2FJQubm6ltIxm/ftxpw==",
1242 | "cpu": [
1243 | "riscv64"
1244 | ],
1245 | "dev": true,
1246 | "license": "MIT",
1247 | "optional": true,
1248 | "os": [
1249 | "linux"
1250 | ]
1251 | },
1252 | "node_modules/@rollup/rollup-linux-riscv64-musl": {
1253 | "version": "4.45.1",
1254 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.45.1.tgz",
1255 | "integrity": "sha512-HJV65KLS51rW0VY6rvZkiieiBnurSzpzore1bMKAhunQiECPuxsROvyeaot/tcK3A3aGnI+qTHqisrpSgQrpgA==",
1256 | "cpu": [
1257 | "riscv64"
1258 | ],
1259 | "dev": true,
1260 | "license": "MIT",
1261 | "optional": true,
1262 | "os": [
1263 | "linux"
1264 | ]
1265 | },
1266 | "node_modules/@rollup/rollup-linux-s390x-gnu": {
1267 | "version": "4.45.1",
1268 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.45.1.tgz",
1269 | "integrity": "sha512-NITBOCv3Qqc6hhwFt7jLV78VEO/il4YcBzoMGGNxznLgRQf43VQDae0aAzKiBeEPIxnDrACiMgbqjuihx08OOw==",
1270 | "cpu": [
1271 | "s390x"
1272 | ],
1273 | "dev": true,
1274 | "license": "MIT",
1275 | "optional": true,
1276 | "os": [
1277 | "linux"
1278 | ]
1279 | },
1280 | "node_modules/@rollup/rollup-linux-x64-gnu": {
1281 | "version": "4.45.1",
1282 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.45.1.tgz",
1283 | "integrity": "sha512-+E/lYl6qu1zqgPEnTrs4WysQtvc/Sh4fC2nByfFExqgYrqkKWp1tWIbe+ELhixnenSpBbLXNi6vbEEJ8M7fiHw==",
1284 | "cpu": [
1285 | "x64"
1286 | ],
1287 | "dev": true,
1288 | "license": "MIT",
1289 | "optional": true,
1290 | "os": [
1291 | "linux"
1292 | ]
1293 | },
1294 | "node_modules/@rollup/rollup-linux-x64-musl": {
1295 | "version": "4.45.1",
1296 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.45.1.tgz",
1297 | "integrity": "sha512-a6WIAp89p3kpNoYStITT9RbTbTnqarU7D8N8F2CV+4Cl9fwCOZraLVuVFvlpsW0SbIiYtEnhCZBPLoNdRkjQFw==",
1298 | "cpu": [
1299 | "x64"
1300 | ],
1301 | "dev": true,
1302 | "license": "MIT",
1303 | "optional": true,
1304 | "os": [
1305 | "linux"
1306 | ]
1307 | },
1308 | "node_modules/@rollup/rollup-win32-arm64-msvc": {
1309 | "version": "4.45.1",
1310 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.45.1.tgz",
1311 | "integrity": "sha512-T5Bi/NS3fQiJeYdGvRpTAP5P02kqSOpqiopwhj0uaXB6nzs5JVi2XMJb18JUSKhCOX8+UE1UKQufyD6Or48dJg==",
1312 | "cpu": [
1313 | "arm64"
1314 | ],
1315 | "dev": true,
1316 | "license": "MIT",
1317 | "optional": true,
1318 | "os": [
1319 | "win32"
1320 | ]
1321 | },
1322 | "node_modules/@rollup/rollup-win32-ia32-msvc": {
1323 | "version": "4.45.1",
1324 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.45.1.tgz",
1325 | "integrity": "sha512-lxV2Pako3ujjuUe9jiU3/s7KSrDfH6IgTSQOnDWr9aJ92YsFd7EurmClK0ly/t8dzMkDtd04g60WX6yl0sGfdw==",
1326 | "cpu": [
1327 | "ia32"
1328 | ],
1329 | "dev": true,
1330 | "license": "MIT",
1331 | "optional": true,
1332 | "os": [
1333 | "win32"
1334 | ]
1335 | },
1336 | "node_modules/@rollup/rollup-win32-x64-msvc": {
1337 | "version": "4.45.1",
1338 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.45.1.tgz",
1339 | "integrity": "sha512-M/fKi4sasCdM8i0aWJjCSFm2qEnYRR8AMLG2kxp6wD13+tMGA4Z1tVAuHkNRjud5SW2EM3naLuK35w9twvf6aA==",
1340 | "cpu": [
1341 | "x64"
1342 | ],
1343 | "dev": true,
1344 | "license": "MIT",
1345 | "optional": true,
1346 | "os": [
1347 | "win32"
1348 | ]
1349 | },
1350 | "node_modules/@types/babel__core": {
1351 | "version": "7.20.5",
1352 | "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
1353 | "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
1354 | "dev": true,
1355 | "license": "MIT",
1356 | "dependencies": {
1357 | "@babel/parser": "^7.20.7",
1358 | "@babel/types": "^7.20.7",
1359 | "@types/babel__generator": "*",
1360 | "@types/babel__template": "*",
1361 | "@types/babel__traverse": "*"
1362 | }
1363 | },
1364 | "node_modules/@types/babel__generator": {
1365 | "version": "7.27.0",
1366 | "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz",
1367 | "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==",
1368 | "dev": true,
1369 | "license": "MIT",
1370 | "dependencies": {
1371 | "@babel/types": "^7.0.0"
1372 | }
1373 | },
1374 | "node_modules/@types/babel__template": {
1375 | "version": "7.4.4",
1376 | "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz",
1377 | "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
1378 | "dev": true,
1379 | "license": "MIT",
1380 | "dependencies": {
1381 | "@babel/parser": "^7.1.0",
1382 | "@babel/types": "^7.0.0"
1383 | }
1384 | },
1385 | "node_modules/@types/babel__traverse": {
1386 | "version": "7.20.7",
1387 | "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz",
1388 | "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==",
1389 | "dev": true,
1390 | "license": "MIT",
1391 | "dependencies": {
1392 | "@babel/types": "^7.20.7"
1393 | }
1394 | },
1395 | "node_modules/@types/estree": {
1396 | "version": "1.0.8",
1397 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
1398 | "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
1399 | "dev": true,
1400 | "license": "MIT"
1401 | },
1402 | "node_modules/@types/json-schema": {
1403 | "version": "7.0.15",
1404 | "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
1405 | "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
1406 | "dev": true,
1407 | "license": "MIT"
1408 | },
1409 | "node_modules/@types/react": {
1410 | "version": "19.1.8",
1411 | "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.8.tgz",
1412 | "integrity": "sha512-AwAfQ2Wa5bCx9WP8nZL2uMZWod7J7/JSplxbTmBQ5ms6QpqNYm672H0Vu9ZVKVngQ+ii4R/byguVEUZQyeg44g==",
1413 | "dev": true,
1414 | "license": "MIT",
1415 | "dependencies": {
1416 | "csstype": "^3.0.2"
1417 | }
1418 | },
1419 | "node_modules/@types/react-dom": {
1420 | "version": "19.1.6",
1421 | "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.6.tgz",
1422 | "integrity": "sha512-4hOiT/dwO8Ko0gV1m/TJZYk3y0KBnY9vzDh7W+DH17b2HFSOGgdj33dhihPeuy3l0q23+4e+hoXHV6hCC4dCXw==",
1423 | "dev": true,
1424 | "license": "MIT",
1425 | "peerDependencies": {
1426 | "@types/react": "^19.0.0"
1427 | }
1428 | },
1429 | "node_modules/@typescript-eslint/eslint-plugin": {
1430 | "version": "8.38.0",
1431 | "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.38.0.tgz",
1432 | "integrity": "sha512-CPoznzpuAnIOl4nhj4tRr4gIPj5AfKgkiJmGQDaq+fQnRJTYlcBjbX3wbciGmpoPf8DREufuPRe1tNMZnGdanA==",
1433 | "dev": true,
1434 | "license": "MIT",
1435 | "dependencies": {
1436 | "@eslint-community/regexpp": "^4.10.0",
1437 | "@typescript-eslint/scope-manager": "8.38.0",
1438 | "@typescript-eslint/type-utils": "8.38.0",
1439 | "@typescript-eslint/utils": "8.38.0",
1440 | "@typescript-eslint/visitor-keys": "8.38.0",
1441 | "graphemer": "^1.4.0",
1442 | "ignore": "^7.0.0",
1443 | "natural-compare": "^1.4.0",
1444 | "ts-api-utils": "^2.1.0"
1445 | },
1446 | "engines": {
1447 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
1448 | },
1449 | "funding": {
1450 | "type": "opencollective",
1451 | "url": "https://opencollective.com/typescript-eslint"
1452 | },
1453 | "peerDependencies": {
1454 | "@typescript-eslint/parser": "^8.38.0",
1455 | "eslint": "^8.57.0 || ^9.0.0",
1456 | "typescript": ">=4.8.4 <5.9.0"
1457 | }
1458 | },
1459 | "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": {
1460 | "version": "7.0.5",
1461 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz",
1462 | "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==",
1463 | "dev": true,
1464 | "license": "MIT",
1465 | "engines": {
1466 | "node": ">= 4"
1467 | }
1468 | },
1469 | "node_modules/@typescript-eslint/parser": {
1470 | "version": "8.38.0",
1471 | "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.38.0.tgz",
1472 | "integrity": "sha512-Zhy8HCvBUEfBECzIl1PKqF4p11+d0aUJS1GeUiuqK9WmOug8YCmC4h4bjyBvMyAMI9sbRczmrYL5lKg/YMbrcQ==",
1473 | "dev": true,
1474 | "license": "MIT",
1475 | "dependencies": {
1476 | "@typescript-eslint/scope-manager": "8.38.0",
1477 | "@typescript-eslint/types": "8.38.0",
1478 | "@typescript-eslint/typescript-estree": "8.38.0",
1479 | "@typescript-eslint/visitor-keys": "8.38.0",
1480 | "debug": "^4.3.4"
1481 | },
1482 | "engines": {
1483 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
1484 | },
1485 | "funding": {
1486 | "type": "opencollective",
1487 | "url": "https://opencollective.com/typescript-eslint"
1488 | },
1489 | "peerDependencies": {
1490 | "eslint": "^8.57.0 || ^9.0.0",
1491 | "typescript": ">=4.8.4 <5.9.0"
1492 | }
1493 | },
1494 | "node_modules/@typescript-eslint/project-service": {
1495 | "version": "8.38.0",
1496 | "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.38.0.tgz",
1497 | "integrity": "sha512-dbK7Jvqcb8c9QfH01YB6pORpqX1mn5gDZc9n63Ak/+jD67oWXn3Gs0M6vddAN+eDXBCS5EmNWzbSxsn9SzFWWg==",
1498 | "dev": true,
1499 | "license": "MIT",
1500 | "dependencies": {
1501 | "@typescript-eslint/tsconfig-utils": "^8.38.0",
1502 | "@typescript-eslint/types": "^8.38.0",
1503 | "debug": "^4.3.4"
1504 | },
1505 | "engines": {
1506 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
1507 | },
1508 | "funding": {
1509 | "type": "opencollective",
1510 | "url": "https://opencollective.com/typescript-eslint"
1511 | },
1512 | "peerDependencies": {
1513 | "typescript": ">=4.8.4 <5.9.0"
1514 | }
1515 | },
1516 | "node_modules/@typescript-eslint/scope-manager": {
1517 | "version": "8.38.0",
1518 | "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.38.0.tgz",
1519 | "integrity": "sha512-WJw3AVlFFcdT9Ri1xs/lg8LwDqgekWXWhH3iAF+1ZM+QPd7oxQ6jvtW/JPwzAScxitILUIFs0/AnQ/UWHzbATQ==",
1520 | "dev": true,
1521 | "license": "MIT",
1522 | "dependencies": {
1523 | "@typescript-eslint/types": "8.38.0",
1524 | "@typescript-eslint/visitor-keys": "8.38.0"
1525 | },
1526 | "engines": {
1527 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
1528 | },
1529 | "funding": {
1530 | "type": "opencollective",
1531 | "url": "https://opencollective.com/typescript-eslint"
1532 | }
1533 | },
1534 | "node_modules/@typescript-eslint/tsconfig-utils": {
1535 | "version": "8.38.0",
1536 | "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.38.0.tgz",
1537 | "integrity": "sha512-Lum9RtSE3EroKk/bYns+sPOodqb2Fv50XOl/gMviMKNvanETUuUcC9ObRbzrJ4VSd2JalPqgSAavwrPiPvnAiQ==",
1538 | "dev": true,
1539 | "license": "MIT",
1540 | "engines": {
1541 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
1542 | },
1543 | "funding": {
1544 | "type": "opencollective",
1545 | "url": "https://opencollective.com/typescript-eslint"
1546 | },
1547 | "peerDependencies": {
1548 | "typescript": ">=4.8.4 <5.9.0"
1549 | }
1550 | },
1551 | "node_modules/@typescript-eslint/type-utils": {
1552 | "version": "8.38.0",
1553 | "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.38.0.tgz",
1554 | "integrity": "sha512-c7jAvGEZVf0ao2z+nnz8BUaHZD09Agbh+DY7qvBQqLiz8uJzRgVPj5YvOh8I8uEiH8oIUGIfHzMwUcGVco/SJg==",
1555 | "dev": true,
1556 | "license": "MIT",
1557 | "dependencies": {
1558 | "@typescript-eslint/types": "8.38.0",
1559 | "@typescript-eslint/typescript-estree": "8.38.0",
1560 | "@typescript-eslint/utils": "8.38.0",
1561 | "debug": "^4.3.4",
1562 | "ts-api-utils": "^2.1.0"
1563 | },
1564 | "engines": {
1565 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
1566 | },
1567 | "funding": {
1568 | "type": "opencollective",
1569 | "url": "https://opencollective.com/typescript-eslint"
1570 | },
1571 | "peerDependencies": {
1572 | "eslint": "^8.57.0 || ^9.0.0",
1573 | "typescript": ">=4.8.4 <5.9.0"
1574 | }
1575 | },
1576 | "node_modules/@typescript-eslint/types": {
1577 | "version": "8.38.0",
1578 | "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.38.0.tgz",
1579 | "integrity": "sha512-wzkUfX3plUqij4YwWaJyqhiPE5UCRVlFpKn1oCRn2O1bJ592XxWJj8ROQ3JD5MYXLORW84063z3tZTb/cs4Tyw==",
1580 | "dev": true,
1581 | "license": "MIT",
1582 | "engines": {
1583 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
1584 | },
1585 | "funding": {
1586 | "type": "opencollective",
1587 | "url": "https://opencollective.com/typescript-eslint"
1588 | }
1589 | },
1590 | "node_modules/@typescript-eslint/typescript-estree": {
1591 | "version": "8.38.0",
1592 | "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.38.0.tgz",
1593 | "integrity": "sha512-fooELKcAKzxux6fA6pxOflpNS0jc+nOQEEOipXFNjSlBS6fqrJOVY/whSn70SScHrcJ2LDsxWrneFoWYSVfqhQ==",
1594 | "dev": true,
1595 | "license": "MIT",
1596 | "dependencies": {
1597 | "@typescript-eslint/project-service": "8.38.0",
1598 | "@typescript-eslint/tsconfig-utils": "8.38.0",
1599 | "@typescript-eslint/types": "8.38.0",
1600 | "@typescript-eslint/visitor-keys": "8.38.0",
1601 | "debug": "^4.3.4",
1602 | "fast-glob": "^3.3.2",
1603 | "is-glob": "^4.0.3",
1604 | "minimatch": "^9.0.4",
1605 | "semver": "^7.6.0",
1606 | "ts-api-utils": "^2.1.0"
1607 | },
1608 | "engines": {
1609 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
1610 | },
1611 | "funding": {
1612 | "type": "opencollective",
1613 | "url": "https://opencollective.com/typescript-eslint"
1614 | },
1615 | "peerDependencies": {
1616 | "typescript": ">=4.8.4 <5.9.0"
1617 | }
1618 | },
1619 | "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
1620 | "version": "2.0.2",
1621 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
1622 | "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
1623 | "dev": true,
1624 | "license": "MIT",
1625 | "dependencies": {
1626 | "balanced-match": "^1.0.0"
1627 | }
1628 | },
1629 | "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
1630 | "version": "9.0.5",
1631 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
1632 | "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
1633 | "dev": true,
1634 | "license": "ISC",
1635 | "dependencies": {
1636 | "brace-expansion": "^2.0.1"
1637 | },
1638 | "engines": {
1639 | "node": ">=16 || 14 >=14.17"
1640 | },
1641 | "funding": {
1642 | "url": "https://github.com/sponsors/isaacs"
1643 | }
1644 | },
1645 | "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
1646 | "version": "7.7.2",
1647 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
1648 | "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
1649 | "dev": true,
1650 | "license": "ISC",
1651 | "bin": {
1652 | "semver": "bin/semver.js"
1653 | },
1654 | "engines": {
1655 | "node": ">=10"
1656 | }
1657 | },
1658 | "node_modules/@typescript-eslint/utils": {
1659 | "version": "8.38.0",
1660 | "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.38.0.tgz",
1661 | "integrity": "sha512-hHcMA86Hgt+ijJlrD8fX0j1j8w4C92zue/8LOPAFioIno+W0+L7KqE8QZKCcPGc/92Vs9x36w/4MPTJhqXdyvg==",
1662 | "dev": true,
1663 | "license": "MIT",
1664 | "dependencies": {
1665 | "@eslint-community/eslint-utils": "^4.7.0",
1666 | "@typescript-eslint/scope-manager": "8.38.0",
1667 | "@typescript-eslint/types": "8.38.0",
1668 | "@typescript-eslint/typescript-estree": "8.38.0"
1669 | },
1670 | "engines": {
1671 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
1672 | },
1673 | "funding": {
1674 | "type": "opencollective",
1675 | "url": "https://opencollective.com/typescript-eslint"
1676 | },
1677 | "peerDependencies": {
1678 | "eslint": "^8.57.0 || ^9.0.0",
1679 | "typescript": ">=4.8.4 <5.9.0"
1680 | }
1681 | },
1682 | "node_modules/@typescript-eslint/visitor-keys": {
1683 | "version": "8.38.0",
1684 | "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.38.0.tgz",
1685 | "integrity": "sha512-pWrTcoFNWuwHlA9CvlfSsGWs14JxfN1TH25zM5L7o0pRLhsoZkDnTsXfQRJBEWJoV5DL0jf+Z+sxiud+K0mq1g==",
1686 | "dev": true,
1687 | "license": "MIT",
1688 | "dependencies": {
1689 | "@typescript-eslint/types": "8.38.0",
1690 | "eslint-visitor-keys": "^4.2.1"
1691 | },
1692 | "engines": {
1693 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
1694 | },
1695 | "funding": {
1696 | "type": "opencollective",
1697 | "url": "https://opencollective.com/typescript-eslint"
1698 | }
1699 | },
1700 | "node_modules/@vitejs/plugin-react": {
1701 | "version": "4.7.0",
1702 | "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz",
1703 | "integrity": "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==",
1704 | "dev": true,
1705 | "license": "MIT",
1706 | "dependencies": {
1707 | "@babel/core": "^7.28.0",
1708 | "@babel/plugin-transform-react-jsx-self": "^7.27.1",
1709 | "@babel/plugin-transform-react-jsx-source": "^7.27.1",
1710 | "@rolldown/pluginutils": "1.0.0-beta.27",
1711 | "@types/babel__core": "^7.20.5",
1712 | "react-refresh": "^0.17.0"
1713 | },
1714 | "engines": {
1715 | "node": "^14.18.0 || >=16.0.0"
1716 | },
1717 | "peerDependencies": {
1718 | "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0"
1719 | }
1720 | },
1721 | "node_modules/acorn": {
1722 | "version": "8.15.0",
1723 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
1724 | "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
1725 | "dev": true,
1726 | "license": "MIT",
1727 | "bin": {
1728 | "acorn": "bin/acorn"
1729 | },
1730 | "engines": {
1731 | "node": ">=0.4.0"
1732 | }
1733 | },
1734 | "node_modules/acorn-jsx": {
1735 | "version": "5.3.2",
1736 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
1737 | "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
1738 | "dev": true,
1739 | "license": "MIT",
1740 | "peerDependencies": {
1741 | "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
1742 | }
1743 | },
1744 | "node_modules/ajv": {
1745 | "version": "6.12.6",
1746 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
1747 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
1748 | "dev": true,
1749 | "license": "MIT",
1750 | "dependencies": {
1751 | "fast-deep-equal": "^3.1.1",
1752 | "fast-json-stable-stringify": "^2.0.0",
1753 | "json-schema-traverse": "^0.4.1",
1754 | "uri-js": "^4.2.2"
1755 | },
1756 | "funding": {
1757 | "type": "github",
1758 | "url": "https://github.com/sponsors/epoberezkin"
1759 | }
1760 | },
1761 | "node_modules/ansi-styles": {
1762 | "version": "4.3.0",
1763 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
1764 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
1765 | "dev": true,
1766 | "license": "MIT",
1767 | "dependencies": {
1768 | "color-convert": "^2.0.1"
1769 | },
1770 | "engines": {
1771 | "node": ">=8"
1772 | },
1773 | "funding": {
1774 | "url": "https://github.com/chalk/ansi-styles?sponsor=1"
1775 | }
1776 | },
1777 | "node_modules/argparse": {
1778 | "version": "2.0.1",
1779 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
1780 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
1781 | "dev": true,
1782 | "license": "Python-2.0"
1783 | },
1784 | "node_modules/balanced-match": {
1785 | "version": "1.0.2",
1786 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
1787 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
1788 | "dev": true,
1789 | "license": "MIT"
1790 | },
1791 | "node_modules/brace-expansion": {
1792 | "version": "1.1.12",
1793 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
1794 | "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
1795 | "dev": true,
1796 | "license": "MIT",
1797 | "dependencies": {
1798 | "balanced-match": "^1.0.0",
1799 | "concat-map": "0.0.1"
1800 | }
1801 | },
1802 | "node_modules/braces": {
1803 | "version": "3.0.3",
1804 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
1805 | "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
1806 | "dev": true,
1807 | "license": "MIT",
1808 | "dependencies": {
1809 | "fill-range": "^7.1.1"
1810 | },
1811 | "engines": {
1812 | "node": ">=8"
1813 | }
1814 | },
1815 | "node_modules/browserslist": {
1816 | "version": "4.25.1",
1817 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz",
1818 | "integrity": "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==",
1819 | "dev": true,
1820 | "funding": [
1821 | {
1822 | "type": "opencollective",
1823 | "url": "https://opencollective.com/browserslist"
1824 | },
1825 | {
1826 | "type": "tidelift",
1827 | "url": "https://tidelift.com/funding/github/npm/browserslist"
1828 | },
1829 | {
1830 | "type": "github",
1831 | "url": "https://github.com/sponsors/ai"
1832 | }
1833 | ],
1834 | "license": "MIT",
1835 | "dependencies": {
1836 | "caniuse-lite": "^1.0.30001726",
1837 | "electron-to-chromium": "^1.5.173",
1838 | "node-releases": "^2.0.19",
1839 | "update-browserslist-db": "^1.1.3"
1840 | },
1841 | "bin": {
1842 | "browserslist": "cli.js"
1843 | },
1844 | "engines": {
1845 | "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
1846 | }
1847 | },
1848 | "node_modules/callsites": {
1849 | "version": "3.1.0",
1850 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
1851 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
1852 | "dev": true,
1853 | "license": "MIT",
1854 | "engines": {
1855 | "node": ">=6"
1856 | }
1857 | },
1858 | "node_modules/caniuse-lite": {
1859 | "version": "1.0.30001727",
1860 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001727.tgz",
1861 | "integrity": "sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==",
1862 | "dev": true,
1863 | "funding": [
1864 | {
1865 | "type": "opencollective",
1866 | "url": "https://opencollective.com/browserslist"
1867 | },
1868 | {
1869 | "type": "tidelift",
1870 | "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
1871 | },
1872 | {
1873 | "type": "github",
1874 | "url": "https://github.com/sponsors/ai"
1875 | }
1876 | ],
1877 | "license": "CC-BY-4.0"
1878 | },
1879 | "node_modules/chalk": {
1880 | "version": "4.1.2",
1881 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
1882 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
1883 | "dev": true,
1884 | "license": "MIT",
1885 | "dependencies": {
1886 | "ansi-styles": "^4.1.0",
1887 | "supports-color": "^7.1.0"
1888 | },
1889 | "engines": {
1890 | "node": ">=10"
1891 | },
1892 | "funding": {
1893 | "url": "https://github.com/chalk/chalk?sponsor=1"
1894 | }
1895 | },
1896 | "node_modules/color-convert": {
1897 | "version": "2.0.1",
1898 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
1899 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
1900 | "dev": true,
1901 | "license": "MIT",
1902 | "dependencies": {
1903 | "color-name": "~1.1.4"
1904 | },
1905 | "engines": {
1906 | "node": ">=7.0.0"
1907 | }
1908 | },
1909 | "node_modules/color-name": {
1910 | "version": "1.1.4",
1911 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
1912 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
1913 | "dev": true,
1914 | "license": "MIT"
1915 | },
1916 | "node_modules/concat-map": {
1917 | "version": "0.0.1",
1918 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
1919 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
1920 | "dev": true,
1921 | "license": "MIT"
1922 | },
1923 | "node_modules/convert-source-map": {
1924 | "version": "2.0.0",
1925 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
1926 | "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
1927 | "dev": true,
1928 | "license": "MIT"
1929 | },
1930 | "node_modules/cross-spawn": {
1931 | "version": "7.0.6",
1932 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
1933 | "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
1934 | "dev": true,
1935 | "license": "MIT",
1936 | "dependencies": {
1937 | "path-key": "^3.1.0",
1938 | "shebang-command": "^2.0.0",
1939 | "which": "^2.0.1"
1940 | },
1941 | "engines": {
1942 | "node": ">= 8"
1943 | }
1944 | },
1945 | "node_modules/csstype": {
1946 | "version": "3.1.3",
1947 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
1948 | "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
1949 | "dev": true,
1950 | "license": "MIT"
1951 | },
1952 | "node_modules/debug": {
1953 | "version": "4.4.1",
1954 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz",
1955 | "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==",
1956 | "dev": true,
1957 | "license": "MIT",
1958 | "dependencies": {
1959 | "ms": "^2.1.3"
1960 | },
1961 | "engines": {
1962 | "node": ">=6.0"
1963 | },
1964 | "peerDependenciesMeta": {
1965 | "supports-color": {
1966 | "optional": true
1967 | }
1968 | }
1969 | },
1970 | "node_modules/deep-is": {
1971 | "version": "0.1.4",
1972 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
1973 | "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
1974 | "dev": true,
1975 | "license": "MIT"
1976 | },
1977 | "node_modules/electron-to-chromium": {
1978 | "version": "1.5.189",
1979 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.189.tgz",
1980 | "integrity": "sha512-y9D1ntS1ruO/pZ/V2FtLE+JXLQe28XoRpZ7QCCo0T8LdQladzdcOVQZH/IWLVJvCw12OGMb6hYOeOAjntCmJRQ==",
1981 | "dev": true,
1982 | "license": "ISC"
1983 | },
1984 | "node_modules/esbuild": {
1985 | "version": "0.25.8",
1986 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.8.tgz",
1987 | "integrity": "sha512-vVC0USHGtMi8+R4Kz8rt6JhEWLxsv9Rnu/lGYbPR8u47B+DCBksq9JarW0zOO7bs37hyOK1l2/oqtbciutL5+Q==",
1988 | "dev": true,
1989 | "hasInstallScript": true,
1990 | "license": "MIT",
1991 | "bin": {
1992 | "esbuild": "bin/esbuild"
1993 | },
1994 | "engines": {
1995 | "node": ">=18"
1996 | },
1997 | "optionalDependencies": {
1998 | "@esbuild/aix-ppc64": "0.25.8",
1999 | "@esbuild/android-arm": "0.25.8",
2000 | "@esbuild/android-arm64": "0.25.8",
2001 | "@esbuild/android-x64": "0.25.8",
2002 | "@esbuild/darwin-arm64": "0.25.8",
2003 | "@esbuild/darwin-x64": "0.25.8",
2004 | "@esbuild/freebsd-arm64": "0.25.8",
2005 | "@esbuild/freebsd-x64": "0.25.8",
2006 | "@esbuild/linux-arm": "0.25.8",
2007 | "@esbuild/linux-arm64": "0.25.8",
2008 | "@esbuild/linux-ia32": "0.25.8",
2009 | "@esbuild/linux-loong64": "0.25.8",
2010 | "@esbuild/linux-mips64el": "0.25.8",
2011 | "@esbuild/linux-ppc64": "0.25.8",
2012 | "@esbuild/linux-riscv64": "0.25.8",
2013 | "@esbuild/linux-s390x": "0.25.8",
2014 | "@esbuild/linux-x64": "0.25.8",
2015 | "@esbuild/netbsd-arm64": "0.25.8",
2016 | "@esbuild/netbsd-x64": "0.25.8",
2017 | "@esbuild/openbsd-arm64": "0.25.8",
2018 | "@esbuild/openbsd-x64": "0.25.8",
2019 | "@esbuild/openharmony-arm64": "0.25.8",
2020 | "@esbuild/sunos-x64": "0.25.8",
2021 | "@esbuild/win32-arm64": "0.25.8",
2022 | "@esbuild/win32-ia32": "0.25.8",
2023 | "@esbuild/win32-x64": "0.25.8"
2024 | }
2025 | },
2026 | "node_modules/escalade": {
2027 | "version": "3.2.0",
2028 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
2029 | "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
2030 | "dev": true,
2031 | "license": "MIT",
2032 | "engines": {
2033 | "node": ">=6"
2034 | }
2035 | },
2036 | "node_modules/escape-string-regexp": {
2037 | "version": "4.0.0",
2038 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
2039 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
2040 | "dev": true,
2041 | "license": "MIT",
2042 | "engines": {
2043 | "node": ">=10"
2044 | },
2045 | "funding": {
2046 | "url": "https://github.com/sponsors/sindresorhus"
2047 | }
2048 | },
2049 | "node_modules/eslint": {
2050 | "version": "9.31.0",
2051 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.31.0.tgz",
2052 | "integrity": "sha512-QldCVh/ztyKJJZLr4jXNUByx3gR+TDYZCRXEktiZoUR3PGy4qCmSbkxcIle8GEwGpb5JBZazlaJ/CxLidXdEbQ==",
2053 | "dev": true,
2054 | "license": "MIT",
2055 | "dependencies": {
2056 | "@eslint-community/eslint-utils": "^4.2.0",
2057 | "@eslint-community/regexpp": "^4.12.1",
2058 | "@eslint/config-array": "^0.21.0",
2059 | "@eslint/config-helpers": "^0.3.0",
2060 | "@eslint/core": "^0.15.0",
2061 | "@eslint/eslintrc": "^3.3.1",
2062 | "@eslint/js": "9.31.0",
2063 | "@eslint/plugin-kit": "^0.3.1",
2064 | "@humanfs/node": "^0.16.6",
2065 | "@humanwhocodes/module-importer": "^1.0.1",
2066 | "@humanwhocodes/retry": "^0.4.2",
2067 | "@types/estree": "^1.0.6",
2068 | "@types/json-schema": "^7.0.15",
2069 | "ajv": "^6.12.4",
2070 | "chalk": "^4.0.0",
2071 | "cross-spawn": "^7.0.6",
2072 | "debug": "^4.3.2",
2073 | "escape-string-regexp": "^4.0.0",
2074 | "eslint-scope": "^8.4.0",
2075 | "eslint-visitor-keys": "^4.2.1",
2076 | "espree": "^10.4.0",
2077 | "esquery": "^1.5.0",
2078 | "esutils": "^2.0.2",
2079 | "fast-deep-equal": "^3.1.3",
2080 | "file-entry-cache": "^8.0.0",
2081 | "find-up": "^5.0.0",
2082 | "glob-parent": "^6.0.2",
2083 | "ignore": "^5.2.0",
2084 | "imurmurhash": "^0.1.4",
2085 | "is-glob": "^4.0.0",
2086 | "json-stable-stringify-without-jsonify": "^1.0.1",
2087 | "lodash.merge": "^4.6.2",
2088 | "minimatch": "^3.1.2",
2089 | "natural-compare": "^1.4.0",
2090 | "optionator": "^0.9.3"
2091 | },
2092 | "bin": {
2093 | "eslint": "bin/eslint.js"
2094 | },
2095 | "engines": {
2096 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
2097 | },
2098 | "funding": {
2099 | "url": "https://eslint.org/donate"
2100 | },
2101 | "peerDependencies": {
2102 | "jiti": "*"
2103 | },
2104 | "peerDependenciesMeta": {
2105 | "jiti": {
2106 | "optional": true
2107 | }
2108 | }
2109 | },
2110 | "node_modules/eslint-plugin-react-hooks": {
2111 | "version": "5.2.0",
2112 | "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz",
2113 | "integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==",
2114 | "dev": true,
2115 | "license": "MIT",
2116 | "engines": {
2117 | "node": ">=10"
2118 | },
2119 | "peerDependencies": {
2120 | "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0"
2121 | }
2122 | },
2123 | "node_modules/eslint-plugin-react-refresh": {
2124 | "version": "0.4.20",
2125 | "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.20.tgz",
2126 | "integrity": "sha512-XpbHQ2q5gUF8BGOX4dHe+71qoirYMhApEPZ7sfhF/dNnOF1UXnCMGZf79SFTBO7Bz5YEIT4TMieSlJBWhP9WBA==",
2127 | "dev": true,
2128 | "license": "MIT",
2129 | "peerDependencies": {
2130 | "eslint": ">=8.40"
2131 | }
2132 | },
2133 | "node_modules/eslint-scope": {
2134 | "version": "8.4.0",
2135 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz",
2136 | "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==",
2137 | "dev": true,
2138 | "license": "BSD-2-Clause",
2139 | "dependencies": {
2140 | "esrecurse": "^4.3.0",
2141 | "estraverse": "^5.2.0"
2142 | },
2143 | "engines": {
2144 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
2145 | },
2146 | "funding": {
2147 | "url": "https://opencollective.com/eslint"
2148 | }
2149 | },
2150 | "node_modules/eslint-visitor-keys": {
2151 | "version": "4.2.1",
2152 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
2153 | "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
2154 | "dev": true,
2155 | "license": "Apache-2.0",
2156 | "engines": {
2157 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
2158 | },
2159 | "funding": {
2160 | "url": "https://opencollective.com/eslint"
2161 | }
2162 | },
2163 | "node_modules/espree": {
2164 | "version": "10.4.0",
2165 | "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz",
2166 | "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==",
2167 | "dev": true,
2168 | "license": "BSD-2-Clause",
2169 | "dependencies": {
2170 | "acorn": "^8.15.0",
2171 | "acorn-jsx": "^5.3.2",
2172 | "eslint-visitor-keys": "^4.2.1"
2173 | },
2174 | "engines": {
2175 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
2176 | },
2177 | "funding": {
2178 | "url": "https://opencollective.com/eslint"
2179 | }
2180 | },
2181 | "node_modules/esquery": {
2182 | "version": "1.6.0",
2183 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz",
2184 | "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==",
2185 | "dev": true,
2186 | "license": "BSD-3-Clause",
2187 | "dependencies": {
2188 | "estraverse": "^5.1.0"
2189 | },
2190 | "engines": {
2191 | "node": ">=0.10"
2192 | }
2193 | },
2194 | "node_modules/esrecurse": {
2195 | "version": "4.3.0",
2196 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
2197 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
2198 | "dev": true,
2199 | "license": "BSD-2-Clause",
2200 | "dependencies": {
2201 | "estraverse": "^5.2.0"
2202 | },
2203 | "engines": {
2204 | "node": ">=4.0"
2205 | }
2206 | },
2207 | "node_modules/estraverse": {
2208 | "version": "5.3.0",
2209 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
2210 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
2211 | "dev": true,
2212 | "license": "BSD-2-Clause",
2213 | "engines": {
2214 | "node": ">=4.0"
2215 | }
2216 | },
2217 | "node_modules/esutils": {
2218 | "version": "2.0.3",
2219 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
2220 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
2221 | "dev": true,
2222 | "license": "BSD-2-Clause",
2223 | "engines": {
2224 | "node": ">=0.10.0"
2225 | }
2226 | },
2227 | "node_modules/fast-deep-equal": {
2228 | "version": "3.1.3",
2229 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
2230 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
2231 | "dev": true,
2232 | "license": "MIT"
2233 | },
2234 | "node_modules/fast-glob": {
2235 | "version": "3.3.3",
2236 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
2237 | "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
2238 | "dev": true,
2239 | "license": "MIT",
2240 | "dependencies": {
2241 | "@nodelib/fs.stat": "^2.0.2",
2242 | "@nodelib/fs.walk": "^1.2.3",
2243 | "glob-parent": "^5.1.2",
2244 | "merge2": "^1.3.0",
2245 | "micromatch": "^4.0.8"
2246 | },
2247 | "engines": {
2248 | "node": ">=8.6.0"
2249 | }
2250 | },
2251 | "node_modules/fast-glob/node_modules/glob-parent": {
2252 | "version": "5.1.2",
2253 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
2254 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
2255 | "dev": true,
2256 | "license": "ISC",
2257 | "dependencies": {
2258 | "is-glob": "^4.0.1"
2259 | },
2260 | "engines": {
2261 | "node": ">= 6"
2262 | }
2263 | },
2264 | "node_modules/fast-json-stable-stringify": {
2265 | "version": "2.1.0",
2266 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
2267 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
2268 | "dev": true,
2269 | "license": "MIT"
2270 | },
2271 | "node_modules/fast-levenshtein": {
2272 | "version": "2.0.6",
2273 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
2274 | "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
2275 | "dev": true,
2276 | "license": "MIT"
2277 | },
2278 | "node_modules/fastq": {
2279 | "version": "1.19.1",
2280 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz",
2281 | "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==",
2282 | "dev": true,
2283 | "license": "ISC",
2284 | "dependencies": {
2285 | "reusify": "^1.0.4"
2286 | }
2287 | },
2288 | "node_modules/file-entry-cache": {
2289 | "version": "8.0.0",
2290 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz",
2291 | "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==",
2292 | "dev": true,
2293 | "license": "MIT",
2294 | "dependencies": {
2295 | "flat-cache": "^4.0.0"
2296 | },
2297 | "engines": {
2298 | "node": ">=16.0.0"
2299 | }
2300 | },
2301 | "node_modules/fill-range": {
2302 | "version": "7.1.1",
2303 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
2304 | "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
2305 | "dev": true,
2306 | "license": "MIT",
2307 | "dependencies": {
2308 | "to-regex-range": "^5.0.1"
2309 | },
2310 | "engines": {
2311 | "node": ">=8"
2312 | }
2313 | },
2314 | "node_modules/find-up": {
2315 | "version": "5.0.0",
2316 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
2317 | "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
2318 | "dev": true,
2319 | "license": "MIT",
2320 | "dependencies": {
2321 | "locate-path": "^6.0.0",
2322 | "path-exists": "^4.0.0"
2323 | },
2324 | "engines": {
2325 | "node": ">=10"
2326 | },
2327 | "funding": {
2328 | "url": "https://github.com/sponsors/sindresorhus"
2329 | }
2330 | },
2331 | "node_modules/flat-cache": {
2332 | "version": "4.0.1",
2333 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz",
2334 | "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==",
2335 | "dev": true,
2336 | "license": "MIT",
2337 | "dependencies": {
2338 | "flatted": "^3.2.9",
2339 | "keyv": "^4.5.4"
2340 | },
2341 | "engines": {
2342 | "node": ">=16"
2343 | }
2344 | },
2345 | "node_modules/flatted": {
2346 | "version": "3.3.3",
2347 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz",
2348 | "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==",
2349 | "dev": true,
2350 | "license": "ISC"
2351 | },
2352 | "node_modules/fsevents": {
2353 | "version": "2.3.3",
2354 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
2355 | "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
2356 | "dev": true,
2357 | "hasInstallScript": true,
2358 | "license": "MIT",
2359 | "optional": true,
2360 | "os": [
2361 | "darwin"
2362 | ],
2363 | "engines": {
2364 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
2365 | }
2366 | },
2367 | "node_modules/gensync": {
2368 | "version": "1.0.0-beta.2",
2369 | "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
2370 | "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
2371 | "dev": true,
2372 | "license": "MIT",
2373 | "engines": {
2374 | "node": ">=6.9.0"
2375 | }
2376 | },
2377 | "node_modules/glob-parent": {
2378 | "version": "6.0.2",
2379 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
2380 | "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
2381 | "dev": true,
2382 | "license": "ISC",
2383 | "dependencies": {
2384 | "is-glob": "^4.0.3"
2385 | },
2386 | "engines": {
2387 | "node": ">=10.13.0"
2388 | }
2389 | },
2390 | "node_modules/globals": {
2391 | "version": "16.3.0",
2392 | "resolved": "https://registry.npmjs.org/globals/-/globals-16.3.0.tgz",
2393 | "integrity": "sha512-bqWEnJ1Nt3neqx2q5SFfGS8r/ahumIakg3HcwtNlrVlwXIeNumWn/c7Pn/wKzGhf6SaW6H6uWXLqC30STCMchQ==",
2394 | "dev": true,
2395 | "license": "MIT",
2396 | "engines": {
2397 | "node": ">=18"
2398 | },
2399 | "funding": {
2400 | "url": "https://github.com/sponsors/sindresorhus"
2401 | }
2402 | },
2403 | "node_modules/graphemer": {
2404 | "version": "1.4.0",
2405 | "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
2406 | "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
2407 | "dev": true,
2408 | "license": "MIT"
2409 | },
2410 | "node_modules/has-flag": {
2411 | "version": "4.0.0",
2412 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
2413 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
2414 | "dev": true,
2415 | "license": "MIT",
2416 | "engines": {
2417 | "node": ">=8"
2418 | }
2419 | },
2420 | "node_modules/ignore": {
2421 | "version": "5.3.2",
2422 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
2423 | "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
2424 | "dev": true,
2425 | "license": "MIT",
2426 | "engines": {
2427 | "node": ">= 4"
2428 | }
2429 | },
2430 | "node_modules/import-fresh": {
2431 | "version": "3.3.1",
2432 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz",
2433 | "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==",
2434 | "dev": true,
2435 | "license": "MIT",
2436 | "dependencies": {
2437 | "parent-module": "^1.0.0",
2438 | "resolve-from": "^4.0.0"
2439 | },
2440 | "engines": {
2441 | "node": ">=6"
2442 | },
2443 | "funding": {
2444 | "url": "https://github.com/sponsors/sindresorhus"
2445 | }
2446 | },
2447 | "node_modules/imurmurhash": {
2448 | "version": "0.1.4",
2449 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
2450 | "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
2451 | "dev": true,
2452 | "license": "MIT",
2453 | "engines": {
2454 | "node": ">=0.8.19"
2455 | }
2456 | },
2457 | "node_modules/is-extglob": {
2458 | "version": "2.1.1",
2459 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
2460 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
2461 | "dev": true,
2462 | "license": "MIT",
2463 | "engines": {
2464 | "node": ">=0.10.0"
2465 | }
2466 | },
2467 | "node_modules/is-glob": {
2468 | "version": "4.0.3",
2469 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
2470 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
2471 | "dev": true,
2472 | "license": "MIT",
2473 | "dependencies": {
2474 | "is-extglob": "^2.1.1"
2475 | },
2476 | "engines": {
2477 | "node": ">=0.10.0"
2478 | }
2479 | },
2480 | "node_modules/is-number": {
2481 | "version": "7.0.0",
2482 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
2483 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
2484 | "dev": true,
2485 | "license": "MIT",
2486 | "engines": {
2487 | "node": ">=0.12.0"
2488 | }
2489 | },
2490 | "node_modules/isexe": {
2491 | "version": "2.0.0",
2492 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
2493 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
2494 | "dev": true,
2495 | "license": "ISC"
2496 | },
2497 | "node_modules/js-tokens": {
2498 | "version": "4.0.0",
2499 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
2500 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
2501 | "dev": true,
2502 | "license": "MIT"
2503 | },
2504 | "node_modules/js-yaml": {
2505 | "version": "4.1.0",
2506 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
2507 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
2508 | "dev": true,
2509 | "license": "MIT",
2510 | "dependencies": {
2511 | "argparse": "^2.0.1"
2512 | },
2513 | "bin": {
2514 | "js-yaml": "bin/js-yaml.js"
2515 | }
2516 | },
2517 | "node_modules/jsesc": {
2518 | "version": "3.1.0",
2519 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
2520 | "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
2521 | "dev": true,
2522 | "license": "MIT",
2523 | "bin": {
2524 | "jsesc": "bin/jsesc"
2525 | },
2526 | "engines": {
2527 | "node": ">=6"
2528 | }
2529 | },
2530 | "node_modules/json-buffer": {
2531 | "version": "3.0.1",
2532 | "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
2533 | "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
2534 | "dev": true,
2535 | "license": "MIT"
2536 | },
2537 | "node_modules/json-schema-traverse": {
2538 | "version": "0.4.1",
2539 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
2540 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
2541 | "dev": true,
2542 | "license": "MIT"
2543 | },
2544 | "node_modules/json-stable-stringify-without-jsonify": {
2545 | "version": "1.0.1",
2546 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
2547 | "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
2548 | "dev": true,
2549 | "license": "MIT"
2550 | },
2551 | "node_modules/json5": {
2552 | "version": "2.2.3",
2553 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
2554 | "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
2555 | "dev": true,
2556 | "license": "MIT",
2557 | "bin": {
2558 | "json5": "lib/cli.js"
2559 | },
2560 | "engines": {
2561 | "node": ">=6"
2562 | }
2563 | },
2564 | "node_modules/keyv": {
2565 | "version": "4.5.4",
2566 | "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
2567 | "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
2568 | "dev": true,
2569 | "license": "MIT",
2570 | "dependencies": {
2571 | "json-buffer": "3.0.1"
2572 | }
2573 | },
2574 | "node_modules/levn": {
2575 | "version": "0.4.1",
2576 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
2577 | "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
2578 | "dev": true,
2579 | "license": "MIT",
2580 | "dependencies": {
2581 | "prelude-ls": "^1.2.1",
2582 | "type-check": "~0.4.0"
2583 | },
2584 | "engines": {
2585 | "node": ">= 0.8.0"
2586 | }
2587 | },
2588 | "node_modules/locate-path": {
2589 | "version": "6.0.0",
2590 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
2591 | "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
2592 | "dev": true,
2593 | "license": "MIT",
2594 | "dependencies": {
2595 | "p-locate": "^5.0.0"
2596 | },
2597 | "engines": {
2598 | "node": ">=10"
2599 | },
2600 | "funding": {
2601 | "url": "https://github.com/sponsors/sindresorhus"
2602 | }
2603 | },
2604 | "node_modules/lodash.merge": {
2605 | "version": "4.6.2",
2606 | "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
2607 | "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
2608 | "dev": true,
2609 | "license": "MIT"
2610 | },
2611 | "node_modules/lru-cache": {
2612 | "version": "5.1.1",
2613 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
2614 | "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
2615 | "dev": true,
2616 | "license": "ISC",
2617 | "dependencies": {
2618 | "yallist": "^3.0.2"
2619 | }
2620 | },
2621 | "node_modules/merge2": {
2622 | "version": "1.4.1",
2623 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
2624 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
2625 | "dev": true,
2626 | "license": "MIT",
2627 | "engines": {
2628 | "node": ">= 8"
2629 | }
2630 | },
2631 | "node_modules/micromatch": {
2632 | "version": "4.0.8",
2633 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
2634 | "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
2635 | "dev": true,
2636 | "license": "MIT",
2637 | "dependencies": {
2638 | "braces": "^3.0.3",
2639 | "picomatch": "^2.3.1"
2640 | },
2641 | "engines": {
2642 | "node": ">=8.6"
2643 | }
2644 | },
2645 | "node_modules/minimatch": {
2646 | "version": "3.1.2",
2647 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
2648 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
2649 | "dev": true,
2650 | "license": "ISC",
2651 | "dependencies": {
2652 | "brace-expansion": "^1.1.7"
2653 | },
2654 | "engines": {
2655 | "node": "*"
2656 | }
2657 | },
2658 | "node_modules/ms": {
2659 | "version": "2.1.3",
2660 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
2661 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
2662 | "dev": true,
2663 | "license": "MIT"
2664 | },
2665 | "node_modules/nanoid": {
2666 | "version": "3.3.11",
2667 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
2668 | "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
2669 | "dev": true,
2670 | "funding": [
2671 | {
2672 | "type": "github",
2673 | "url": "https://github.com/sponsors/ai"
2674 | }
2675 | ],
2676 | "license": "MIT",
2677 | "bin": {
2678 | "nanoid": "bin/nanoid.cjs"
2679 | },
2680 | "engines": {
2681 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
2682 | }
2683 | },
2684 | "node_modules/natural-compare": {
2685 | "version": "1.4.0",
2686 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
2687 | "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
2688 | "dev": true,
2689 | "license": "MIT"
2690 | },
2691 | "node_modules/node-releases": {
2692 | "version": "2.0.19",
2693 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz",
2694 | "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==",
2695 | "dev": true,
2696 | "license": "MIT"
2697 | },
2698 | "node_modules/optionator": {
2699 | "version": "0.9.4",
2700 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
2701 | "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
2702 | "dev": true,
2703 | "license": "MIT",
2704 | "dependencies": {
2705 | "deep-is": "^0.1.3",
2706 | "fast-levenshtein": "^2.0.6",
2707 | "levn": "^0.4.1",
2708 | "prelude-ls": "^1.2.1",
2709 | "type-check": "^0.4.0",
2710 | "word-wrap": "^1.2.5"
2711 | },
2712 | "engines": {
2713 | "node": ">= 0.8.0"
2714 | }
2715 | },
2716 | "node_modules/p-limit": {
2717 | "version": "3.1.0",
2718 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
2719 | "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
2720 | "dev": true,
2721 | "license": "MIT",
2722 | "dependencies": {
2723 | "yocto-queue": "^0.1.0"
2724 | },
2725 | "engines": {
2726 | "node": ">=10"
2727 | },
2728 | "funding": {
2729 | "url": "https://github.com/sponsors/sindresorhus"
2730 | }
2731 | },
2732 | "node_modules/p-locate": {
2733 | "version": "5.0.0",
2734 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
2735 | "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
2736 | "dev": true,
2737 | "license": "MIT",
2738 | "dependencies": {
2739 | "p-limit": "^3.0.2"
2740 | },
2741 | "engines": {
2742 | "node": ">=10"
2743 | },
2744 | "funding": {
2745 | "url": "https://github.com/sponsors/sindresorhus"
2746 | }
2747 | },
2748 | "node_modules/parent-module": {
2749 | "version": "1.0.1",
2750 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
2751 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
2752 | "dev": true,
2753 | "license": "MIT",
2754 | "dependencies": {
2755 | "callsites": "^3.0.0"
2756 | },
2757 | "engines": {
2758 | "node": ">=6"
2759 | }
2760 | },
2761 | "node_modules/path-exists": {
2762 | "version": "4.0.0",
2763 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
2764 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
2765 | "dev": true,
2766 | "license": "MIT",
2767 | "engines": {
2768 | "node": ">=8"
2769 | }
2770 | },
2771 | "node_modules/path-key": {
2772 | "version": "3.1.1",
2773 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
2774 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
2775 | "dev": true,
2776 | "license": "MIT",
2777 | "engines": {
2778 | "node": ">=8"
2779 | }
2780 | },
2781 | "node_modules/picocolors": {
2782 | "version": "1.1.1",
2783 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
2784 | "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
2785 | "dev": true,
2786 | "license": "ISC"
2787 | },
2788 | "node_modules/picomatch": {
2789 | "version": "2.3.1",
2790 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
2791 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
2792 | "dev": true,
2793 | "license": "MIT",
2794 | "engines": {
2795 | "node": ">=8.6"
2796 | },
2797 | "funding": {
2798 | "url": "https://github.com/sponsors/jonschlinkert"
2799 | }
2800 | },
2801 | "node_modules/postcss": {
2802 | "version": "8.5.6",
2803 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
2804 | "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
2805 | "dev": true,
2806 | "funding": [
2807 | {
2808 | "type": "opencollective",
2809 | "url": "https://opencollective.com/postcss/"
2810 | },
2811 | {
2812 | "type": "tidelift",
2813 | "url": "https://tidelift.com/funding/github/npm/postcss"
2814 | },
2815 | {
2816 | "type": "github",
2817 | "url": "https://github.com/sponsors/ai"
2818 | }
2819 | ],
2820 | "license": "MIT",
2821 | "dependencies": {
2822 | "nanoid": "^3.3.11",
2823 | "picocolors": "^1.1.1",
2824 | "source-map-js": "^1.2.1"
2825 | },
2826 | "engines": {
2827 | "node": "^10 || ^12 || >=14"
2828 | }
2829 | },
2830 | "node_modules/prelude-ls": {
2831 | "version": "1.2.1",
2832 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
2833 | "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
2834 | "dev": true,
2835 | "license": "MIT",
2836 | "engines": {
2837 | "node": ">= 0.8.0"
2838 | }
2839 | },
2840 | "node_modules/punycode": {
2841 | "version": "2.3.1",
2842 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
2843 | "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
2844 | "dev": true,
2845 | "license": "MIT",
2846 | "engines": {
2847 | "node": ">=6"
2848 | }
2849 | },
2850 | "node_modules/queue-microtask": {
2851 | "version": "1.2.3",
2852 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
2853 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
2854 | "dev": true,
2855 | "funding": [
2856 | {
2857 | "type": "github",
2858 | "url": "https://github.com/sponsors/feross"
2859 | },
2860 | {
2861 | "type": "patreon",
2862 | "url": "https://www.patreon.com/feross"
2863 | },
2864 | {
2865 | "type": "consulting",
2866 | "url": "https://feross.org/support"
2867 | }
2868 | ],
2869 | "license": "MIT"
2870 | },
2871 | "node_modules/react": {
2872 | "version": "19.1.0",
2873 | "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz",
2874 | "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==",
2875 | "license": "MIT",
2876 | "engines": {
2877 | "node": ">=0.10.0"
2878 | }
2879 | },
2880 | "node_modules/react-dom": {
2881 | "version": "19.1.0",
2882 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz",
2883 | "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==",
2884 | "license": "MIT",
2885 | "dependencies": {
2886 | "scheduler": "^0.26.0"
2887 | },
2888 | "peerDependencies": {
2889 | "react": "^19.1.0"
2890 | }
2891 | },
2892 | "node_modules/react-refresh": {
2893 | "version": "0.17.0",
2894 | "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz",
2895 | "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==",
2896 | "dev": true,
2897 | "license": "MIT",
2898 | "engines": {
2899 | "node": ">=0.10.0"
2900 | }
2901 | },
2902 | "node_modules/resolve-from": {
2903 | "version": "4.0.0",
2904 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
2905 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
2906 | "dev": true,
2907 | "license": "MIT",
2908 | "engines": {
2909 | "node": ">=4"
2910 | }
2911 | },
2912 | "node_modules/reusify": {
2913 | "version": "1.1.0",
2914 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
2915 | "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
2916 | "dev": true,
2917 | "license": "MIT",
2918 | "engines": {
2919 | "iojs": ">=1.0.0",
2920 | "node": ">=0.10.0"
2921 | }
2922 | },
2923 | "node_modules/rollup": {
2924 | "version": "4.45.1",
2925 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.45.1.tgz",
2926 | "integrity": "sha512-4iya7Jb76fVpQyLoiVpzUrsjQ12r3dM7fIVz+4NwoYvZOShknRmiv+iu9CClZml5ZLGb0XMcYLutK6w9tgxHDw==",
2927 | "dev": true,
2928 | "license": "MIT",
2929 | "dependencies": {
2930 | "@types/estree": "1.0.8"
2931 | },
2932 | "bin": {
2933 | "rollup": "dist/bin/rollup"
2934 | },
2935 | "engines": {
2936 | "node": ">=18.0.0",
2937 | "npm": ">=8.0.0"
2938 | },
2939 | "optionalDependencies": {
2940 | "@rollup/rollup-android-arm-eabi": "4.45.1",
2941 | "@rollup/rollup-android-arm64": "4.45.1",
2942 | "@rollup/rollup-darwin-arm64": "4.45.1",
2943 | "@rollup/rollup-darwin-x64": "4.45.1",
2944 | "@rollup/rollup-freebsd-arm64": "4.45.1",
2945 | "@rollup/rollup-freebsd-x64": "4.45.1",
2946 | "@rollup/rollup-linux-arm-gnueabihf": "4.45.1",
2947 | "@rollup/rollup-linux-arm-musleabihf": "4.45.1",
2948 | "@rollup/rollup-linux-arm64-gnu": "4.45.1",
2949 | "@rollup/rollup-linux-arm64-musl": "4.45.1",
2950 | "@rollup/rollup-linux-loongarch64-gnu": "4.45.1",
2951 | "@rollup/rollup-linux-powerpc64le-gnu": "4.45.1",
2952 | "@rollup/rollup-linux-riscv64-gnu": "4.45.1",
2953 | "@rollup/rollup-linux-riscv64-musl": "4.45.1",
2954 | "@rollup/rollup-linux-s390x-gnu": "4.45.1",
2955 | "@rollup/rollup-linux-x64-gnu": "4.45.1",
2956 | "@rollup/rollup-linux-x64-musl": "4.45.1",
2957 | "@rollup/rollup-win32-arm64-msvc": "4.45.1",
2958 | "@rollup/rollup-win32-ia32-msvc": "4.45.1",
2959 | "@rollup/rollup-win32-x64-msvc": "4.45.1",
2960 | "fsevents": "~2.3.2"
2961 | }
2962 | },
2963 | "node_modules/run-parallel": {
2964 | "version": "1.2.0",
2965 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
2966 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
2967 | "dev": true,
2968 | "funding": [
2969 | {
2970 | "type": "github",
2971 | "url": "https://github.com/sponsors/feross"
2972 | },
2973 | {
2974 | "type": "patreon",
2975 | "url": "https://www.patreon.com/feross"
2976 | },
2977 | {
2978 | "type": "consulting",
2979 | "url": "https://feross.org/support"
2980 | }
2981 | ],
2982 | "license": "MIT",
2983 | "dependencies": {
2984 | "queue-microtask": "^1.2.2"
2985 | }
2986 | },
2987 | "node_modules/scheduler": {
2988 | "version": "0.26.0",
2989 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz",
2990 | "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==",
2991 | "license": "MIT"
2992 | },
2993 | "node_modules/semver": {
2994 | "version": "6.3.1",
2995 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
2996 | "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
2997 | "dev": true,
2998 | "license": "ISC",
2999 | "bin": {
3000 | "semver": "bin/semver.js"
3001 | }
3002 | },
3003 | "node_modules/shebang-command": {
3004 | "version": "2.0.0",
3005 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
3006 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
3007 | "dev": true,
3008 | "license": "MIT",
3009 | "dependencies": {
3010 | "shebang-regex": "^3.0.0"
3011 | },
3012 | "engines": {
3013 | "node": ">=8"
3014 | }
3015 | },
3016 | "node_modules/shebang-regex": {
3017 | "version": "3.0.0",
3018 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
3019 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
3020 | "dev": true,
3021 | "license": "MIT",
3022 | "engines": {
3023 | "node": ">=8"
3024 | }
3025 | },
3026 | "node_modules/source-map-js": {
3027 | "version": "1.2.1",
3028 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
3029 | "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
3030 | "dev": true,
3031 | "license": "BSD-3-Clause",
3032 | "engines": {
3033 | "node": ">=0.10.0"
3034 | }
3035 | },
3036 | "node_modules/strip-json-comments": {
3037 | "version": "3.1.1",
3038 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
3039 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
3040 | "dev": true,
3041 | "license": "MIT",
3042 | "engines": {
3043 | "node": ">=8"
3044 | },
3045 | "funding": {
3046 | "url": "https://github.com/sponsors/sindresorhus"
3047 | }
3048 | },
3049 | "node_modules/supports-color": {
3050 | "version": "7.2.0",
3051 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
3052 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
3053 | "dev": true,
3054 | "license": "MIT",
3055 | "dependencies": {
3056 | "has-flag": "^4.0.0"
3057 | },
3058 | "engines": {
3059 | "node": ">=8"
3060 | }
3061 | },
3062 | "node_modules/tinyglobby": {
3063 | "version": "0.2.14",
3064 | "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz",
3065 | "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==",
3066 | "dev": true,
3067 | "license": "MIT",
3068 | "dependencies": {
3069 | "fdir": "^6.4.4",
3070 | "picomatch": "^4.0.2"
3071 | },
3072 | "engines": {
3073 | "node": ">=12.0.0"
3074 | },
3075 | "funding": {
3076 | "url": "https://github.com/sponsors/SuperchupuDev"
3077 | }
3078 | },
3079 | "node_modules/tinyglobby/node_modules/fdir": {
3080 | "version": "6.4.6",
3081 | "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz",
3082 | "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==",
3083 | "dev": true,
3084 | "license": "MIT",
3085 | "peerDependencies": {
3086 | "picomatch": "^3 || ^4"
3087 | },
3088 | "peerDependenciesMeta": {
3089 | "picomatch": {
3090 | "optional": true
3091 | }
3092 | }
3093 | },
3094 | "node_modules/tinyglobby/node_modules/picomatch": {
3095 | "version": "4.0.3",
3096 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
3097 | "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
3098 | "dev": true,
3099 | "license": "MIT",
3100 | "engines": {
3101 | "node": ">=12"
3102 | },
3103 | "funding": {
3104 | "url": "https://github.com/sponsors/jonschlinkert"
3105 | }
3106 | },
3107 | "node_modules/to-regex-range": {
3108 | "version": "5.0.1",
3109 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
3110 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
3111 | "dev": true,
3112 | "license": "MIT",
3113 | "dependencies": {
3114 | "is-number": "^7.0.0"
3115 | },
3116 | "engines": {
3117 | "node": ">=8.0"
3118 | }
3119 | },
3120 | "node_modules/ts-api-utils": {
3121 | "version": "2.1.0",
3122 | "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz",
3123 | "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==",
3124 | "dev": true,
3125 | "license": "MIT",
3126 | "engines": {
3127 | "node": ">=18.12"
3128 | },
3129 | "peerDependencies": {
3130 | "typescript": ">=4.8.4"
3131 | }
3132 | },
3133 | "node_modules/type-check": {
3134 | "version": "0.4.0",
3135 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
3136 | "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
3137 | "dev": true,
3138 | "license": "MIT",
3139 | "dependencies": {
3140 | "prelude-ls": "^1.2.1"
3141 | },
3142 | "engines": {
3143 | "node": ">= 0.8.0"
3144 | }
3145 | },
3146 | "node_modules/typescript": {
3147 | "version": "5.8.3",
3148 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz",
3149 | "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==",
3150 | "dev": true,
3151 | "license": "Apache-2.0",
3152 | "bin": {
3153 | "tsc": "bin/tsc",
3154 | "tsserver": "bin/tsserver"
3155 | },
3156 | "engines": {
3157 | "node": ">=14.17"
3158 | }
3159 | },
3160 | "node_modules/typescript-eslint": {
3161 | "version": "8.38.0",
3162 | "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.38.0.tgz",
3163 | "integrity": "sha512-FsZlrYK6bPDGoLeZRuvx2v6qrM03I0U0SnfCLPs/XCCPCFD80xU9Pg09H/K+XFa68uJuZo7l/Xhs+eDRg2l3hg==",
3164 | "dev": true,
3165 | "license": "MIT",
3166 | "dependencies": {
3167 | "@typescript-eslint/eslint-plugin": "8.38.0",
3168 | "@typescript-eslint/parser": "8.38.0",
3169 | "@typescript-eslint/typescript-estree": "8.38.0",
3170 | "@typescript-eslint/utils": "8.38.0"
3171 | },
3172 | "engines": {
3173 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
3174 | },
3175 | "funding": {
3176 | "type": "opencollective",
3177 | "url": "https://opencollective.com/typescript-eslint"
3178 | },
3179 | "peerDependencies": {
3180 | "eslint": "^8.57.0 || ^9.0.0",
3181 | "typescript": ">=4.8.4 <5.9.0"
3182 | }
3183 | },
3184 | "node_modules/update-browserslist-db": {
3185 | "version": "1.1.3",
3186 | "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz",
3187 | "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==",
3188 | "dev": true,
3189 | "funding": [
3190 | {
3191 | "type": "opencollective",
3192 | "url": "https://opencollective.com/browserslist"
3193 | },
3194 | {
3195 | "type": "tidelift",
3196 | "url": "https://tidelift.com/funding/github/npm/browserslist"
3197 | },
3198 | {
3199 | "type": "github",
3200 | "url": "https://github.com/sponsors/ai"
3201 | }
3202 | ],
3203 | "license": "MIT",
3204 | "dependencies": {
3205 | "escalade": "^3.2.0",
3206 | "picocolors": "^1.1.1"
3207 | },
3208 | "bin": {
3209 | "update-browserslist-db": "cli.js"
3210 | },
3211 | "peerDependencies": {
3212 | "browserslist": ">= 4.21.0"
3213 | }
3214 | },
3215 | "node_modules/uri-js": {
3216 | "version": "4.4.1",
3217 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
3218 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
3219 | "dev": true,
3220 | "license": "BSD-2-Clause",
3221 | "dependencies": {
3222 | "punycode": "^2.1.0"
3223 | }
3224 | },
3225 | "node_modules/vite": {
3226 | "version": "7.0.5",
3227 | "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.5.tgz",
3228 | "integrity": "sha512-1mncVwJxy2C9ThLwz0+2GKZyEXuC3MyWtAAlNftlZZXZDP3AJt5FmwcMit/IGGaNZ8ZOB2BNO/HFUB+CpN0NQw==",
3229 | "dev": true,
3230 | "license": "MIT",
3231 | "dependencies": {
3232 | "esbuild": "^0.25.0",
3233 | "fdir": "^6.4.6",
3234 | "picomatch": "^4.0.2",
3235 | "postcss": "^8.5.6",
3236 | "rollup": "^4.40.0",
3237 | "tinyglobby": "^0.2.14"
3238 | },
3239 | "bin": {
3240 | "vite": "bin/vite.js"
3241 | },
3242 | "engines": {
3243 | "node": "^20.19.0 || >=22.12.0"
3244 | },
3245 | "funding": {
3246 | "url": "https://github.com/vitejs/vite?sponsor=1"
3247 | },
3248 | "optionalDependencies": {
3249 | "fsevents": "~2.3.3"
3250 | },
3251 | "peerDependencies": {
3252 | "@types/node": "^20.19.0 || >=22.12.0",
3253 | "jiti": ">=1.21.0",
3254 | "less": "^4.0.0",
3255 | "lightningcss": "^1.21.0",
3256 | "sass": "^1.70.0",
3257 | "sass-embedded": "^1.70.0",
3258 | "stylus": ">=0.54.8",
3259 | "sugarss": "^5.0.0",
3260 | "terser": "^5.16.0",
3261 | "tsx": "^4.8.1",
3262 | "yaml": "^2.4.2"
3263 | },
3264 | "peerDependenciesMeta": {
3265 | "@types/node": {
3266 | "optional": true
3267 | },
3268 | "jiti": {
3269 | "optional": true
3270 | },
3271 | "less": {
3272 | "optional": true
3273 | },
3274 | "lightningcss": {
3275 | "optional": true
3276 | },
3277 | "sass": {
3278 | "optional": true
3279 | },
3280 | "sass-embedded": {
3281 | "optional": true
3282 | },
3283 | "stylus": {
3284 | "optional": true
3285 | },
3286 | "sugarss": {
3287 | "optional": true
3288 | },
3289 | "terser": {
3290 | "optional": true
3291 | },
3292 | "tsx": {
3293 | "optional": true
3294 | },
3295 | "yaml": {
3296 | "optional": true
3297 | }
3298 | }
3299 | },
3300 | "node_modules/vite/node_modules/fdir": {
3301 | "version": "6.4.6",
3302 | "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz",
3303 | "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==",
3304 | "dev": true,
3305 | "license": "MIT",
3306 | "peerDependencies": {
3307 | "picomatch": "^3 || ^4"
3308 | },
3309 | "peerDependenciesMeta": {
3310 | "picomatch": {
3311 | "optional": true
3312 | }
3313 | }
3314 | },
3315 | "node_modules/vite/node_modules/picomatch": {
3316 | "version": "4.0.3",
3317 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
3318 | "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
3319 | "dev": true,
3320 | "license": "MIT",
3321 | "engines": {
3322 | "node": ">=12"
3323 | },
3324 | "funding": {
3325 | "url": "https://github.com/sponsors/jonschlinkert"
3326 | }
3327 | },
3328 | "node_modules/which": {
3329 | "version": "2.0.2",
3330 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
3331 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
3332 | "dev": true,
3333 | "license": "ISC",
3334 | "dependencies": {
3335 | "isexe": "^2.0.0"
3336 | },
3337 | "bin": {
3338 | "node-which": "bin/node-which"
3339 | },
3340 | "engines": {
3341 | "node": ">= 8"
3342 | }
3343 | },
3344 | "node_modules/word-wrap": {
3345 | "version": "1.2.5",
3346 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
3347 | "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
3348 | "dev": true,
3349 | "license": "MIT",
3350 | "engines": {
3351 | "node": ">=0.10.0"
3352 | }
3353 | },
3354 | "node_modules/yallist": {
3355 | "version": "3.1.1",
3356 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
3357 | "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
3358 | "dev": true,
3359 | "license": "ISC"
3360 | },
3361 | "node_modules/yocto-queue": {
3362 | "version": "0.1.0",
3363 | "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
3364 | "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
3365 | "dev": true,
3366 | "license": "MIT",
3367 | "engines": {
3368 | "node": ">=10"
3369 | },
3370 | "funding": {
3371 | "url": "https://github.com/sponsors/sindresorhus"
3372 | }
3373 | }
3374 | }
3375 | }
3376 |
--------------------------------------------------------------------------------