├── .gitignore ├── LICENSE ├── README.md ├── backend ├── app │ ├── __init__.py │ ├── api.py │ └── sensor.py ├── main.py └── requirements.txt ├── docs └── assets │ ├── dashboard-final.gif │ ├── dashboard-init.png │ └── dashboard-interactive.png └── frontend ├── .gitignore ├── .npmrc ├── .prettierignore ├── .prettierrc ├── README.md ├── eslint.config.js ├── package-lock.json ├── package.json ├── src ├── app.d.ts ├── app.html ├── demo.spec.ts ├── lib │ ├── components │ │ ├── AlertBanner.svelte │ │ ├── HumidityGauge.svelte │ │ ├── SettingsPanel.svelte │ │ └── TemperatureChart.svelte │ ├── index.ts │ └── types.ts └── routes │ ├── +page.svelte │ └── page.svelte.test.ts ├── static └── favicon.png ├── svelte.config.js ├── tsconfig.json ├── vite.config.ts └── vitest-setup-client.ts /.gitignore: -------------------------------------------------------------------------------- 1 | # Backend 2 | backend/__pycache__/ 3 | backend/app/__pycache__/ 4 | backend/*.py[cod] 5 | backend/*$py.class 6 | backend/*.so 7 | backend/.Python 8 | backend/env/ 9 | backend/build/ 10 | backend/dist/ 11 | backend/*.egg-info/ 12 | backend/.installed.cfg 13 | backend/*.egg 14 | backend/venv/ 15 | backend/.env 16 | backend/*.db 17 | backend/*.sqlite3 18 | 19 | # Frontend 20 | frontend/node_modules/ 21 | frontend/.svelte-kit/ 22 | frontend/build/ 23 | frontend/.env 24 | frontend/.env.* 25 | !frontend/.env.example 26 | frontend/coverage/ 27 | frontend/dist/ 28 | frontend/npm-debug.log* 29 | frontend/yarn-debug.log* 30 | frontend/yarn-error.log* 31 | frontend/.pnpm-debug.log* 32 | 33 | # IDE 34 | .idea/ 35 | .vscode/ 36 | *.swp 37 | *.swo 38 | *~ 39 | 40 | # OS 41 | .DS_Store 42 | Thumbs.db 43 | .directory 44 | 45 | # Project specific 46 | docs/_build/ 47 | *.log 48 | .coverage 49 | coverage.xml 50 | .pytest_cache/ 51 | 52 | # Python 53 | *.pyc 54 | *.pyo 55 | *.pyd 56 | *.pyw -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 SEYEDAMIR TADRISI 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Real-time Sensor Dashboard 2 | 3 | A real-time dashboard built with FastAPI and Svelte that displays and monitors sensor data using Server-Sent Events (SSE). 4 | 5 | ![Dashboard Final](/docs/assets/dashboard-final.gif) 6 | ![Dashboard Interactive](/docs/assets/dashboard-interactive.png) 7 | 8 | ## Features 9 | 10 | - Real-time sensor data monitoring 11 | - Interactive temperature history chart 12 | - Humidity gauge visualization 13 | - System status indicators 14 | - Configurable alert thresholds 15 | - Mobile-responsive design 16 | 17 | ## Tech Stack 18 | 19 | - **Frontend:** 20 | - Svelte v5.23.2 21 | - SvelteKit v2.19.0 22 | - Node v22.14.0 23 | - npm v11.2.0 24 | 25 | - **Backend:** 26 | - FastAPI 0.115.11 27 | - Python 3.13.2 28 | - SSE-Starlette 2.2.1 29 | 30 | ## Prerequisites 31 | 32 | - Node.js 22.14.0+ 33 | - Python 3.13.2+ 34 | - npm 11.2.0+ 35 | 36 | ## Installation 37 | 38 | 1. Clone the repository: 39 | ```bash 40 | git clone https://github.com/yourusername/svelte-fastapi-dashboard.git 41 | cd svelte-fastapi-dashboard 42 | ``` 43 | 44 | 2. Set up the backend: 45 | ```bash 46 | cd backend 47 | python -m venv venv 48 | source venv/bin/activate # On Windows: .\venv\Scripts\activate 49 | pip install -r requirements.txt 50 | ``` 51 | 52 | 3. Set up the frontend: 53 | ```bash 54 | cd frontend 55 | npm install 56 | ``` 57 | 58 | ## Running the Application 59 | 60 | 1. Start the backend server: 61 | ```bash 62 | cd backend 63 | source venv/bin/activate # On Windows: .\venv\Scripts\activate 64 | python main.py 65 | ``` 66 | 67 | 2. In a new terminal, start the frontend development server: 68 | ```bash 69 | cd frontend 70 | npm run dev 71 | ``` 72 | 73 | The application will be available at: 74 | - Frontend: http://localhost:5173 75 | - Backend API: http://localhost:8000 76 | - API Documentation: http://localhost:8000/docs 77 | 78 | ## Development 79 | 80 | ### Backend Development 81 | 82 | The backend uses FastAPI to create a REST API with SSE support. The main components are: 83 | - `main.py`: Application entry point 84 | - `app/api.py`: API routes and SSE implementation 85 | - `app/sensor.py`: Mock sensor data generation 86 | 87 | ### Frontend Development 88 | 89 | The frontend is built with Svelte and includes: 90 | - Real-time data visualization with Chart.js 91 | - Component-based architecture 92 | - TypeScript for type safety 93 | - Responsive design with CSS Grid 94 | 95 | ## License 96 | 97 | This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. -------------------------------------------------------------------------------- /backend/app/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amirtds/svelte-fastapi-dashboard/3cf3e42e8a0870a279dc5c2ca50283b64263fbe0/backend/app/__init__.py -------------------------------------------------------------------------------- /backend/app/api.py: -------------------------------------------------------------------------------- 1 | from fastapi import FastAPI 2 | from fastapi.middleware.cors import CORSMiddleware 3 | from sse_starlette.sse import EventSourceResponse 4 | import asyncio 5 | import json 6 | 7 | from .sensor import SensorData 8 | 9 | app = FastAPI() 10 | sensor = SensorData() 11 | 12 | # Configure CORS 13 | app.add_middleware( 14 | CORSMiddleware, 15 | allow_origins=["http://localhost:5173"], # Svelte dev server 16 | allow_credentials=True, 17 | allow_methods=["*"], 18 | allow_headers=["*"], 19 | ) 20 | 21 | @app.get("/") 22 | async def root(): 23 | return {"message": "Welcome to the Sensor Dashboard API"} 24 | 25 | @app.get("/current") 26 | async def get_current_reading(): 27 | """Get the current sensor reading.""" 28 | return sensor.generate_reading() 29 | 30 | @app.get("/stream") 31 | async def stream_data(): 32 | """Stream sensor data using Server-Sent Events.""" 33 | async def event_generator(): 34 | while True: 35 | data = sensor.generate_reading() 36 | yield { 37 | "event": "sensor_update", 38 | "data": json.dumps(data) 39 | } 40 | await asyncio.sleep(2) # Update every 2 seconds 41 | 42 | return EventSourceResponse(event_generator()) -------------------------------------------------------------------------------- /backend/app/sensor.py: -------------------------------------------------------------------------------- 1 | import random 2 | from datetime import datetime 3 | from typing import Dict 4 | 5 | class SensorData: 6 | def __init__(self): 7 | self.min_temp = 18.0 8 | self.max_temp = 26.0 9 | self.min_humidity = 30.0 10 | self.max_humidity = 65.0 11 | 12 | def generate_reading(self) -> Dict: 13 | """Generate a mock sensor reading.""" 14 | return { 15 | "timestamp": datetime.now().isoformat(), 16 | "temperature": round(random.uniform(self.min_temp, self.max_temp), 1), 17 | "humidity": round(random.uniform(self.min_humidity, self.max_humidity), 1), 18 | "status": random.choice(["normal", "warning", "critical"]) 19 | } -------------------------------------------------------------------------------- /backend/main.py: -------------------------------------------------------------------------------- 1 | import uvicorn 2 | 3 | if __name__ == "__main__": 4 | uvicorn.run("app.api:app", host="0.0.0.0", port=8000, reload=True) -------------------------------------------------------------------------------- /backend/requirements.txt: -------------------------------------------------------------------------------- 1 | fastapi==0.115.11 2 | uvicorn==0.34.0 3 | sse-starlette==2.2.1 -------------------------------------------------------------------------------- /docs/assets/dashboard-final.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amirtds/svelte-fastapi-dashboard/3cf3e42e8a0870a279dc5c2ca50283b64263fbe0/docs/assets/dashboard-final.gif -------------------------------------------------------------------------------- /docs/assets/dashboard-init.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amirtds/svelte-fastapi-dashboard/3cf3e42e8a0870a279dc5c2ca50283b64263fbe0/docs/assets/dashboard-init.png -------------------------------------------------------------------------------- /docs/assets/dashboard-interactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amirtds/svelte-fastapi-dashboard/3cf3e42e8a0870a279dc5c2ca50283b64263fbe0/docs/assets/dashboard-interactive.png -------------------------------------------------------------------------------- /frontend/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | # Output 4 | .output 5 | .vercel 6 | .netlify 7 | .wrangler 8 | /.svelte-kit 9 | /build 10 | 11 | # OS 12 | .DS_Store 13 | Thumbs.db 14 | 15 | # Env 16 | .env 17 | .env.* 18 | !.env.example 19 | !.env.test 20 | 21 | # Vite 22 | vite.config.js.timestamp-* 23 | vite.config.ts.timestamp-* 24 | -------------------------------------------------------------------------------- /frontend/.npmrc: -------------------------------------------------------------------------------- 1 | engine-strict=true 2 | -------------------------------------------------------------------------------- /frontend/.prettierignore: -------------------------------------------------------------------------------- 1 | # Package Managers 2 | package-lock.json 3 | pnpm-lock.yaml 4 | yarn.lock 5 | -------------------------------------------------------------------------------- /frontend/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "useTabs": true, 3 | "singleQuote": true, 4 | "trailingComma": "none", 5 | "printWidth": 100, 6 | "plugins": ["prettier-plugin-svelte"], 7 | "overrides": [ 8 | { 9 | "files": "*.svelte", 10 | "options": { 11 | "parser": "svelte" 12 | } 13 | } 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /frontend/README.md: -------------------------------------------------------------------------------- 1 | # sv 2 | 3 | Everything you need to build a Svelte project, powered by [`sv`](https://github.com/sveltejs/cli). 4 | 5 | ## Creating a project 6 | 7 | If you're seeing this, you've probably already done this step. Congrats! 8 | 9 | ```bash 10 | # create a new project in the current directory 11 | npx sv create 12 | 13 | # create a new project in my-app 14 | npx sv create my-app 15 | ``` 16 | 17 | ## Developing 18 | 19 | Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server: 20 | 21 | ```bash 22 | npm run dev 23 | 24 | # or start the server and open the app in a new browser tab 25 | npm run dev -- --open 26 | ``` 27 | 28 | ## Building 29 | 30 | To create a production version of your app: 31 | 32 | ```bash 33 | npm run build 34 | ``` 35 | 36 | You can preview the production build with `npm run preview`. 37 | 38 | > To deploy your app, you may need to install an [adapter](https://svelte.dev/docs/kit/adapters) for your target environment. 39 | -------------------------------------------------------------------------------- /frontend/eslint.config.js: -------------------------------------------------------------------------------- 1 | import prettier from 'eslint-config-prettier'; 2 | import js from '@eslint/js'; 3 | import { includeIgnoreFile } from '@eslint/compat'; 4 | import svelte from 'eslint-plugin-svelte'; 5 | import globals from 'globals'; 6 | import { fileURLToPath } from 'node:url'; 7 | import ts from 'typescript-eslint'; 8 | import svelteConfig from './svelte.config.js'; 9 | const gitignorePath = fileURLToPath(new URL('./.gitignore', import.meta.url)); 10 | 11 | export default ts.config( 12 | includeIgnoreFile(gitignorePath), 13 | js.configs.recommended, 14 | ...ts.configs.recommended, 15 | ...svelte.configs.recommended, 16 | prettier, 17 | ...svelte.configs.prettier, 18 | { 19 | languageOptions: { 20 | globals: { 21 | ...globals.browser, 22 | ...globals.node 23 | } 24 | } 25 | }, 26 | { 27 | files: ['**/*.svelte', '**/*.svelte.ts', '**/*.svelte.js'], 28 | ignores: ['eslint.config.js', 'svelte.config.js'], 29 | 30 | languageOptions: { 31 | parserOptions: { 32 | projectService: true, 33 | extraFileExtensions: ['.svelte'], 34 | parser: ts.parser, 35 | svelteConfig 36 | } 37 | } 38 | } 39 | ); 40 | -------------------------------------------------------------------------------- /frontend/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "frontend", 3 | "version": "0.0.1", 4 | "lockfileVersion": 3, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "frontend", 9 | "version": "0.0.1", 10 | "dependencies": { 11 | "@types/chart.js": "^2.9.41", 12 | "chart.js": "^4.4.8" 13 | }, 14 | "devDependencies": { 15 | "@eslint/compat": "^1.2.5", 16 | "@eslint/js": "^9.18.0", 17 | "@sveltejs/adapter-auto": "^4.0.0", 18 | "@sveltejs/kit": "^2.16.0", 19 | "@sveltejs/vite-plugin-svelte": "^5.0.0", 20 | "@testing-library/jest-dom": "^6.6.3", 21 | "@testing-library/svelte": "^5.2.4", 22 | "eslint": "^9.18.0", 23 | "eslint-config-prettier": "^10.0.1", 24 | "eslint-plugin-svelte": "^3.0.0", 25 | "globals": "^16.0.0", 26 | "jsdom": "^26.0.0", 27 | "prettier": "^3.4.2", 28 | "prettier-plugin-svelte": "^3.3.3", 29 | "svelte": "^5.0.0", 30 | "svelte-check": "^4.0.0", 31 | "typescript": "^5.0.0", 32 | "typescript-eslint": "^8.20.0", 33 | "vite": "^6.0.0", 34 | "vitest": "^3.0.0" 35 | } 36 | }, 37 | "node_modules/@adobe/css-tools": { 38 | "version": "4.4.2", 39 | "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.2.tgz", 40 | "integrity": "sha512-baYZExFpsdkBNuvGKTKWCwKH57HRZLVtycZS05WTQNVOiXVSeAki3nU35zlRbToeMW8aHlJfyS+1C4BOv27q0A==", 41 | "dev": true, 42 | "license": "MIT" 43 | }, 44 | "node_modules/@ampproject/remapping": { 45 | "version": "2.3.0", 46 | "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", 47 | "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", 48 | "dev": true, 49 | "license": "Apache-2.0", 50 | "dependencies": { 51 | "@jridgewell/gen-mapping": "^0.3.5", 52 | "@jridgewell/trace-mapping": "^0.3.24" 53 | }, 54 | "engines": { 55 | "node": ">=6.0.0" 56 | } 57 | }, 58 | "node_modules/@asamuzakjp/css-color": { 59 | "version": "3.1.1", 60 | "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-3.1.1.tgz", 61 | "integrity": "sha512-hpRD68SV2OMcZCsrbdkccTw5FXjNDLo5OuqSHyHZfwweGsDWZwDJ2+gONyNAbazZclobMirACLw0lk8WVxIqxA==", 62 | "dev": true, 63 | "license": "MIT", 64 | "dependencies": { 65 | "@csstools/css-calc": "^2.1.2", 66 | "@csstools/css-color-parser": "^3.0.8", 67 | "@csstools/css-parser-algorithms": "^3.0.4", 68 | "@csstools/css-tokenizer": "^3.0.3", 69 | "lru-cache": "^10.4.3" 70 | } 71 | }, 72 | "node_modules/@babel/code-frame": { 73 | "version": "7.26.2", 74 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", 75 | "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", 76 | "dev": true, 77 | "license": "MIT", 78 | "dependencies": { 79 | "@babel/helper-validator-identifier": "^7.25.9", 80 | "js-tokens": "^4.0.0", 81 | "picocolors": "^1.0.0" 82 | }, 83 | "engines": { 84 | "node": ">=6.9.0" 85 | } 86 | }, 87 | "node_modules/@babel/helper-validator-identifier": { 88 | "version": "7.25.9", 89 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", 90 | "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", 91 | "dev": true, 92 | "license": "MIT", 93 | "engines": { 94 | "node": ">=6.9.0" 95 | } 96 | }, 97 | "node_modules/@babel/runtime": { 98 | "version": "7.26.10", 99 | "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.10.tgz", 100 | "integrity": "sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==", 101 | "dev": true, 102 | "license": "MIT", 103 | "dependencies": { 104 | "regenerator-runtime": "^0.14.0" 105 | }, 106 | "engines": { 107 | "node": ">=6.9.0" 108 | } 109 | }, 110 | "node_modules/@csstools/color-helpers": { 111 | "version": "5.0.2", 112 | "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.0.2.tgz", 113 | "integrity": "sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==", 114 | "dev": true, 115 | "funding": [ 116 | { 117 | "type": "github", 118 | "url": "https://github.com/sponsors/csstools" 119 | }, 120 | { 121 | "type": "opencollective", 122 | "url": "https://opencollective.com/csstools" 123 | } 124 | ], 125 | "license": "MIT-0", 126 | "engines": { 127 | "node": ">=18" 128 | } 129 | }, 130 | "node_modules/@csstools/css-calc": { 131 | "version": "2.1.2", 132 | "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.2.tgz", 133 | "integrity": "sha512-TklMyb3uBB28b5uQdxjReG4L80NxAqgrECqLZFQbyLekwwlcDDS8r3f07DKqeo8C4926Br0gf/ZDe17Zv4wIuw==", 134 | "dev": true, 135 | "funding": [ 136 | { 137 | "type": "github", 138 | "url": "https://github.com/sponsors/csstools" 139 | }, 140 | { 141 | "type": "opencollective", 142 | "url": "https://opencollective.com/csstools" 143 | } 144 | ], 145 | "license": "MIT", 146 | "engines": { 147 | "node": ">=18" 148 | }, 149 | "peerDependencies": { 150 | "@csstools/css-parser-algorithms": "^3.0.4", 151 | "@csstools/css-tokenizer": "^3.0.3" 152 | } 153 | }, 154 | "node_modules/@csstools/css-color-parser": { 155 | "version": "3.0.8", 156 | "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.0.8.tgz", 157 | "integrity": "sha512-pdwotQjCCnRPuNi06jFuP68cykU1f3ZWExLe/8MQ1LOs8Xq+fTkYgd+2V8mWUWMrOn9iS2HftPVaMZDaXzGbhQ==", 158 | "dev": true, 159 | "funding": [ 160 | { 161 | "type": "github", 162 | "url": "https://github.com/sponsors/csstools" 163 | }, 164 | { 165 | "type": "opencollective", 166 | "url": "https://opencollective.com/csstools" 167 | } 168 | ], 169 | "license": "MIT", 170 | "dependencies": { 171 | "@csstools/color-helpers": "^5.0.2", 172 | "@csstools/css-calc": "^2.1.2" 173 | }, 174 | "engines": { 175 | "node": ">=18" 176 | }, 177 | "peerDependencies": { 178 | "@csstools/css-parser-algorithms": "^3.0.4", 179 | "@csstools/css-tokenizer": "^3.0.3" 180 | } 181 | }, 182 | "node_modules/@csstools/css-parser-algorithms": { 183 | "version": "3.0.4", 184 | "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz", 185 | "integrity": "sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==", 186 | "dev": true, 187 | "funding": [ 188 | { 189 | "type": "github", 190 | "url": "https://github.com/sponsors/csstools" 191 | }, 192 | { 193 | "type": "opencollective", 194 | "url": "https://opencollective.com/csstools" 195 | } 196 | ], 197 | "license": "MIT", 198 | "engines": { 199 | "node": ">=18" 200 | }, 201 | "peerDependencies": { 202 | "@csstools/css-tokenizer": "^3.0.3" 203 | } 204 | }, 205 | "node_modules/@csstools/css-tokenizer": { 206 | "version": "3.0.3", 207 | "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.3.tgz", 208 | "integrity": "sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==", 209 | "dev": true, 210 | "funding": [ 211 | { 212 | "type": "github", 213 | "url": "https://github.com/sponsors/csstools" 214 | }, 215 | { 216 | "type": "opencollective", 217 | "url": "https://opencollective.com/csstools" 218 | } 219 | ], 220 | "license": "MIT", 221 | "engines": { 222 | "node": ">=18" 223 | } 224 | }, 225 | "node_modules/@esbuild/aix-ppc64": { 226 | "version": "0.25.1", 227 | "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.1.tgz", 228 | "integrity": "sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==", 229 | "cpu": [ 230 | "ppc64" 231 | ], 232 | "dev": true, 233 | "license": "MIT", 234 | "optional": true, 235 | "os": [ 236 | "aix" 237 | ], 238 | "engines": { 239 | "node": ">=18" 240 | } 241 | }, 242 | "node_modules/@esbuild/android-arm": { 243 | "version": "0.25.1", 244 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.1.tgz", 245 | "integrity": "sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==", 246 | "cpu": [ 247 | "arm" 248 | ], 249 | "dev": true, 250 | "license": "MIT", 251 | "optional": true, 252 | "os": [ 253 | "android" 254 | ], 255 | "engines": { 256 | "node": ">=18" 257 | } 258 | }, 259 | "node_modules/@esbuild/android-arm64": { 260 | "version": "0.25.1", 261 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.1.tgz", 262 | "integrity": "sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==", 263 | "cpu": [ 264 | "arm64" 265 | ], 266 | "dev": true, 267 | "license": "MIT", 268 | "optional": true, 269 | "os": [ 270 | "android" 271 | ], 272 | "engines": { 273 | "node": ">=18" 274 | } 275 | }, 276 | "node_modules/@esbuild/android-x64": { 277 | "version": "0.25.1", 278 | "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.1.tgz", 279 | "integrity": "sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==", 280 | "cpu": [ 281 | "x64" 282 | ], 283 | "dev": true, 284 | "license": "MIT", 285 | "optional": true, 286 | "os": [ 287 | "android" 288 | ], 289 | "engines": { 290 | "node": ">=18" 291 | } 292 | }, 293 | "node_modules/@esbuild/darwin-arm64": { 294 | "version": "0.25.1", 295 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.1.tgz", 296 | "integrity": "sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==", 297 | "cpu": [ 298 | "arm64" 299 | ], 300 | "dev": true, 301 | "license": "MIT", 302 | "optional": true, 303 | "os": [ 304 | "darwin" 305 | ], 306 | "engines": { 307 | "node": ">=18" 308 | } 309 | }, 310 | "node_modules/@esbuild/darwin-x64": { 311 | "version": "0.25.1", 312 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.1.tgz", 313 | "integrity": "sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==", 314 | "cpu": [ 315 | "x64" 316 | ], 317 | "dev": true, 318 | "license": "MIT", 319 | "optional": true, 320 | "os": [ 321 | "darwin" 322 | ], 323 | "engines": { 324 | "node": ">=18" 325 | } 326 | }, 327 | "node_modules/@esbuild/freebsd-arm64": { 328 | "version": "0.25.1", 329 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.1.tgz", 330 | "integrity": "sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==", 331 | "cpu": [ 332 | "arm64" 333 | ], 334 | "dev": true, 335 | "license": "MIT", 336 | "optional": true, 337 | "os": [ 338 | "freebsd" 339 | ], 340 | "engines": { 341 | "node": ">=18" 342 | } 343 | }, 344 | "node_modules/@esbuild/freebsd-x64": { 345 | "version": "0.25.1", 346 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.1.tgz", 347 | "integrity": "sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==", 348 | "cpu": [ 349 | "x64" 350 | ], 351 | "dev": true, 352 | "license": "MIT", 353 | "optional": true, 354 | "os": [ 355 | "freebsd" 356 | ], 357 | "engines": { 358 | "node": ">=18" 359 | } 360 | }, 361 | "node_modules/@esbuild/linux-arm": { 362 | "version": "0.25.1", 363 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.1.tgz", 364 | "integrity": "sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==", 365 | "cpu": [ 366 | "arm" 367 | ], 368 | "dev": true, 369 | "license": "MIT", 370 | "optional": true, 371 | "os": [ 372 | "linux" 373 | ], 374 | "engines": { 375 | "node": ">=18" 376 | } 377 | }, 378 | "node_modules/@esbuild/linux-arm64": { 379 | "version": "0.25.1", 380 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.1.tgz", 381 | "integrity": "sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==", 382 | "cpu": [ 383 | "arm64" 384 | ], 385 | "dev": true, 386 | "license": "MIT", 387 | "optional": true, 388 | "os": [ 389 | "linux" 390 | ], 391 | "engines": { 392 | "node": ">=18" 393 | } 394 | }, 395 | "node_modules/@esbuild/linux-ia32": { 396 | "version": "0.25.1", 397 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.1.tgz", 398 | "integrity": "sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==", 399 | "cpu": [ 400 | "ia32" 401 | ], 402 | "dev": true, 403 | "license": "MIT", 404 | "optional": true, 405 | "os": [ 406 | "linux" 407 | ], 408 | "engines": { 409 | "node": ">=18" 410 | } 411 | }, 412 | "node_modules/@esbuild/linux-loong64": { 413 | "version": "0.25.1", 414 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.1.tgz", 415 | "integrity": "sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==", 416 | "cpu": [ 417 | "loong64" 418 | ], 419 | "dev": true, 420 | "license": "MIT", 421 | "optional": true, 422 | "os": [ 423 | "linux" 424 | ], 425 | "engines": { 426 | "node": ">=18" 427 | } 428 | }, 429 | "node_modules/@esbuild/linux-mips64el": { 430 | "version": "0.25.1", 431 | "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.1.tgz", 432 | "integrity": "sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==", 433 | "cpu": [ 434 | "mips64el" 435 | ], 436 | "dev": true, 437 | "license": "MIT", 438 | "optional": true, 439 | "os": [ 440 | "linux" 441 | ], 442 | "engines": { 443 | "node": ">=18" 444 | } 445 | }, 446 | "node_modules/@esbuild/linux-ppc64": { 447 | "version": "0.25.1", 448 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.1.tgz", 449 | "integrity": "sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==", 450 | "cpu": [ 451 | "ppc64" 452 | ], 453 | "dev": true, 454 | "license": "MIT", 455 | "optional": true, 456 | "os": [ 457 | "linux" 458 | ], 459 | "engines": { 460 | "node": ">=18" 461 | } 462 | }, 463 | "node_modules/@esbuild/linux-riscv64": { 464 | "version": "0.25.1", 465 | "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.1.tgz", 466 | "integrity": "sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==", 467 | "cpu": [ 468 | "riscv64" 469 | ], 470 | "dev": true, 471 | "license": "MIT", 472 | "optional": true, 473 | "os": [ 474 | "linux" 475 | ], 476 | "engines": { 477 | "node": ">=18" 478 | } 479 | }, 480 | "node_modules/@esbuild/linux-s390x": { 481 | "version": "0.25.1", 482 | "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.1.tgz", 483 | "integrity": "sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==", 484 | "cpu": [ 485 | "s390x" 486 | ], 487 | "dev": true, 488 | "license": "MIT", 489 | "optional": true, 490 | "os": [ 491 | "linux" 492 | ], 493 | "engines": { 494 | "node": ">=18" 495 | } 496 | }, 497 | "node_modules/@esbuild/linux-x64": { 498 | "version": "0.25.1", 499 | "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.1.tgz", 500 | "integrity": "sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==", 501 | "cpu": [ 502 | "x64" 503 | ], 504 | "dev": true, 505 | "license": "MIT", 506 | "optional": true, 507 | "os": [ 508 | "linux" 509 | ], 510 | "engines": { 511 | "node": ">=18" 512 | } 513 | }, 514 | "node_modules/@esbuild/netbsd-arm64": { 515 | "version": "0.25.1", 516 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.1.tgz", 517 | "integrity": "sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==", 518 | "cpu": [ 519 | "arm64" 520 | ], 521 | "dev": true, 522 | "license": "MIT", 523 | "optional": true, 524 | "os": [ 525 | "netbsd" 526 | ], 527 | "engines": { 528 | "node": ">=18" 529 | } 530 | }, 531 | "node_modules/@esbuild/netbsd-x64": { 532 | "version": "0.25.1", 533 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.1.tgz", 534 | "integrity": "sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==", 535 | "cpu": [ 536 | "x64" 537 | ], 538 | "dev": true, 539 | "license": "MIT", 540 | "optional": true, 541 | "os": [ 542 | "netbsd" 543 | ], 544 | "engines": { 545 | "node": ">=18" 546 | } 547 | }, 548 | "node_modules/@esbuild/openbsd-arm64": { 549 | "version": "0.25.1", 550 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.1.tgz", 551 | "integrity": "sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==", 552 | "cpu": [ 553 | "arm64" 554 | ], 555 | "dev": true, 556 | "license": "MIT", 557 | "optional": true, 558 | "os": [ 559 | "openbsd" 560 | ], 561 | "engines": { 562 | "node": ">=18" 563 | } 564 | }, 565 | "node_modules/@esbuild/openbsd-x64": { 566 | "version": "0.25.1", 567 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.1.tgz", 568 | "integrity": "sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==", 569 | "cpu": [ 570 | "x64" 571 | ], 572 | "dev": true, 573 | "license": "MIT", 574 | "optional": true, 575 | "os": [ 576 | "openbsd" 577 | ], 578 | "engines": { 579 | "node": ">=18" 580 | } 581 | }, 582 | "node_modules/@esbuild/sunos-x64": { 583 | "version": "0.25.1", 584 | "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.1.tgz", 585 | "integrity": "sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==", 586 | "cpu": [ 587 | "x64" 588 | ], 589 | "dev": true, 590 | "license": "MIT", 591 | "optional": true, 592 | "os": [ 593 | "sunos" 594 | ], 595 | "engines": { 596 | "node": ">=18" 597 | } 598 | }, 599 | "node_modules/@esbuild/win32-arm64": { 600 | "version": "0.25.1", 601 | "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.1.tgz", 602 | "integrity": "sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==", 603 | "cpu": [ 604 | "arm64" 605 | ], 606 | "dev": true, 607 | "license": "MIT", 608 | "optional": true, 609 | "os": [ 610 | "win32" 611 | ], 612 | "engines": { 613 | "node": ">=18" 614 | } 615 | }, 616 | "node_modules/@esbuild/win32-ia32": { 617 | "version": "0.25.1", 618 | "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.1.tgz", 619 | "integrity": "sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==", 620 | "cpu": [ 621 | "ia32" 622 | ], 623 | "dev": true, 624 | "license": "MIT", 625 | "optional": true, 626 | "os": [ 627 | "win32" 628 | ], 629 | "engines": { 630 | "node": ">=18" 631 | } 632 | }, 633 | "node_modules/@esbuild/win32-x64": { 634 | "version": "0.25.1", 635 | "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.1.tgz", 636 | "integrity": "sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==", 637 | "cpu": [ 638 | "x64" 639 | ], 640 | "dev": true, 641 | "license": "MIT", 642 | "optional": true, 643 | "os": [ 644 | "win32" 645 | ], 646 | "engines": { 647 | "node": ">=18" 648 | } 649 | }, 650 | "node_modules/@eslint-community/eslint-utils": { 651 | "version": "4.5.1", 652 | "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.5.1.tgz", 653 | "integrity": "sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w==", 654 | "dev": true, 655 | "license": "MIT", 656 | "dependencies": { 657 | "eslint-visitor-keys": "^3.4.3" 658 | }, 659 | "engines": { 660 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 661 | }, 662 | "funding": { 663 | "url": "https://opencollective.com/eslint" 664 | }, 665 | "peerDependencies": { 666 | "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" 667 | } 668 | }, 669 | "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { 670 | "version": "3.4.3", 671 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", 672 | "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", 673 | "dev": true, 674 | "license": "Apache-2.0", 675 | "engines": { 676 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 677 | }, 678 | "funding": { 679 | "url": "https://opencollective.com/eslint" 680 | } 681 | }, 682 | "node_modules/@eslint-community/regexpp": { 683 | "version": "4.12.1", 684 | "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", 685 | "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", 686 | "dev": true, 687 | "license": "MIT", 688 | "engines": { 689 | "node": "^12.0.0 || ^14.0.0 || >=16.0.0" 690 | } 691 | }, 692 | "node_modules/@eslint/compat": { 693 | "version": "1.2.7", 694 | "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-1.2.7.tgz", 695 | "integrity": "sha512-xvv7hJE32yhegJ8xNAnb62ggiAwTYHBpUCWhRxEj/ksvgDJuSXfoDkBcRYaYNFiJ+jH0IE3K16hd+xXzhBgNbg==", 696 | "dev": true, 697 | "license": "Apache-2.0", 698 | "engines": { 699 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 700 | }, 701 | "peerDependencies": { 702 | "eslint": "^9.10.0" 703 | }, 704 | "peerDependenciesMeta": { 705 | "eslint": { 706 | "optional": true 707 | } 708 | } 709 | }, 710 | "node_modules/@eslint/config-array": { 711 | "version": "0.19.2", 712 | "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.2.tgz", 713 | "integrity": "sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==", 714 | "dev": true, 715 | "license": "Apache-2.0", 716 | "dependencies": { 717 | "@eslint/object-schema": "^2.1.6", 718 | "debug": "^4.3.1", 719 | "minimatch": "^3.1.2" 720 | }, 721 | "engines": { 722 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 723 | } 724 | }, 725 | "node_modules/@eslint/config-helpers": { 726 | "version": "0.1.0", 727 | "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.1.0.tgz", 728 | "integrity": "sha512-kLrdPDJE1ckPo94kmPPf9Hfd0DU0Jw6oKYrhe+pwSC0iTUInmTa+w6fw8sGgcfkFJGNdWOUeOaDM4quW4a7OkA==", 729 | "dev": true, 730 | "license": "Apache-2.0", 731 | "engines": { 732 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 733 | } 734 | }, 735 | "node_modules/@eslint/core": { 736 | "version": "0.12.0", 737 | "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz", 738 | "integrity": "sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==", 739 | "dev": true, 740 | "license": "Apache-2.0", 741 | "dependencies": { 742 | "@types/json-schema": "^7.0.15" 743 | }, 744 | "engines": { 745 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 746 | } 747 | }, 748 | "node_modules/@eslint/eslintrc": { 749 | "version": "3.3.0", 750 | "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.0.tgz", 751 | "integrity": "sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==", 752 | "dev": true, 753 | "license": "MIT", 754 | "dependencies": { 755 | "ajv": "^6.12.4", 756 | "debug": "^4.3.2", 757 | "espree": "^10.0.1", 758 | "globals": "^14.0.0", 759 | "ignore": "^5.2.0", 760 | "import-fresh": "^3.2.1", 761 | "js-yaml": "^4.1.0", 762 | "minimatch": "^3.1.2", 763 | "strip-json-comments": "^3.1.1" 764 | }, 765 | "engines": { 766 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 767 | }, 768 | "funding": { 769 | "url": "https://opencollective.com/eslint" 770 | } 771 | }, 772 | "node_modules/@eslint/eslintrc/node_modules/globals": { 773 | "version": "14.0.0", 774 | "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", 775 | "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", 776 | "dev": true, 777 | "license": "MIT", 778 | "engines": { 779 | "node": ">=18" 780 | }, 781 | "funding": { 782 | "url": "https://github.com/sponsors/sindresorhus" 783 | } 784 | }, 785 | "node_modules/@eslint/js": { 786 | "version": "9.22.0", 787 | "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.22.0.tgz", 788 | "integrity": "sha512-vLFajx9o8d1/oL2ZkpMYbkLv8nDB6yaIwFNt7nI4+I80U/z03SxmfOMsLbvWr3p7C+Wnoh//aOu2pQW8cS0HCQ==", 789 | "dev": true, 790 | "license": "MIT", 791 | "engines": { 792 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 793 | } 794 | }, 795 | "node_modules/@eslint/object-schema": { 796 | "version": "2.1.6", 797 | "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", 798 | "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", 799 | "dev": true, 800 | "license": "Apache-2.0", 801 | "engines": { 802 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 803 | } 804 | }, 805 | "node_modules/@eslint/plugin-kit": { 806 | "version": "0.2.7", 807 | "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.7.tgz", 808 | "integrity": "sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==", 809 | "dev": true, 810 | "license": "Apache-2.0", 811 | "dependencies": { 812 | "@eslint/core": "^0.12.0", 813 | "levn": "^0.4.1" 814 | }, 815 | "engines": { 816 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 817 | } 818 | }, 819 | "node_modules/@humanfs/core": { 820 | "version": "0.19.1", 821 | "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", 822 | "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", 823 | "dev": true, 824 | "license": "Apache-2.0", 825 | "engines": { 826 | "node": ">=18.18.0" 827 | } 828 | }, 829 | "node_modules/@humanfs/node": { 830 | "version": "0.16.6", 831 | "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", 832 | "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", 833 | "dev": true, 834 | "license": "Apache-2.0", 835 | "dependencies": { 836 | "@humanfs/core": "^0.19.1", 837 | "@humanwhocodes/retry": "^0.3.0" 838 | }, 839 | "engines": { 840 | "node": ">=18.18.0" 841 | } 842 | }, 843 | "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { 844 | "version": "0.3.1", 845 | "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", 846 | "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", 847 | "dev": true, 848 | "license": "Apache-2.0", 849 | "engines": { 850 | "node": ">=18.18" 851 | }, 852 | "funding": { 853 | "type": "github", 854 | "url": "https://github.com/sponsors/nzakas" 855 | } 856 | }, 857 | "node_modules/@humanwhocodes/module-importer": { 858 | "version": "1.0.1", 859 | "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", 860 | "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", 861 | "dev": true, 862 | "license": "Apache-2.0", 863 | "engines": { 864 | "node": ">=12.22" 865 | }, 866 | "funding": { 867 | "type": "github", 868 | "url": "https://github.com/sponsors/nzakas" 869 | } 870 | }, 871 | "node_modules/@humanwhocodes/retry": { 872 | "version": "0.4.2", 873 | "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.2.tgz", 874 | "integrity": "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==", 875 | "dev": true, 876 | "license": "Apache-2.0", 877 | "engines": { 878 | "node": ">=18.18" 879 | }, 880 | "funding": { 881 | "type": "github", 882 | "url": "https://github.com/sponsors/nzakas" 883 | } 884 | }, 885 | "node_modules/@jridgewell/gen-mapping": { 886 | "version": "0.3.8", 887 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", 888 | "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", 889 | "dev": true, 890 | "license": "MIT", 891 | "dependencies": { 892 | "@jridgewell/set-array": "^1.2.1", 893 | "@jridgewell/sourcemap-codec": "^1.4.10", 894 | "@jridgewell/trace-mapping": "^0.3.24" 895 | }, 896 | "engines": { 897 | "node": ">=6.0.0" 898 | } 899 | }, 900 | "node_modules/@jridgewell/resolve-uri": { 901 | "version": "3.1.2", 902 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", 903 | "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", 904 | "dev": true, 905 | "license": "MIT", 906 | "engines": { 907 | "node": ">=6.0.0" 908 | } 909 | }, 910 | "node_modules/@jridgewell/set-array": { 911 | "version": "1.2.1", 912 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", 913 | "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", 914 | "dev": true, 915 | "license": "MIT", 916 | "engines": { 917 | "node": ">=6.0.0" 918 | } 919 | }, 920 | "node_modules/@jridgewell/sourcemap-codec": { 921 | "version": "1.5.0", 922 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", 923 | "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", 924 | "dev": true, 925 | "license": "MIT" 926 | }, 927 | "node_modules/@jridgewell/trace-mapping": { 928 | "version": "0.3.25", 929 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", 930 | "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", 931 | "dev": true, 932 | "license": "MIT", 933 | "dependencies": { 934 | "@jridgewell/resolve-uri": "^3.1.0", 935 | "@jridgewell/sourcemap-codec": "^1.4.14" 936 | } 937 | }, 938 | "node_modules/@kurkle/color": { 939 | "version": "0.3.4", 940 | "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.4.tgz", 941 | "integrity": "sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w==", 942 | "license": "MIT" 943 | }, 944 | "node_modules/@nodelib/fs.scandir": { 945 | "version": "2.1.5", 946 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 947 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 948 | "dev": true, 949 | "license": "MIT", 950 | "dependencies": { 951 | "@nodelib/fs.stat": "2.0.5", 952 | "run-parallel": "^1.1.9" 953 | }, 954 | "engines": { 955 | "node": ">= 8" 956 | } 957 | }, 958 | "node_modules/@nodelib/fs.stat": { 959 | "version": "2.0.5", 960 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 961 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", 962 | "dev": true, 963 | "license": "MIT", 964 | "engines": { 965 | "node": ">= 8" 966 | } 967 | }, 968 | "node_modules/@nodelib/fs.walk": { 969 | "version": "1.2.8", 970 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 971 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 972 | "dev": true, 973 | "license": "MIT", 974 | "dependencies": { 975 | "@nodelib/fs.scandir": "2.1.5", 976 | "fastq": "^1.6.0" 977 | }, 978 | "engines": { 979 | "node": ">= 8" 980 | } 981 | }, 982 | "node_modules/@polka/url": { 983 | "version": "1.0.0-next.28", 984 | "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz", 985 | "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==", 986 | "dev": true, 987 | "license": "MIT" 988 | }, 989 | "node_modules/@rollup/rollup-android-arm-eabi": { 990 | "version": "4.36.0", 991 | "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.36.0.tgz", 992 | "integrity": "sha512-jgrXjjcEwN6XpZXL0HUeOVGfjXhPyxAbbhD0BlXUB+abTOpbPiN5Wb3kOT7yb+uEtATNYF5x5gIfwutmuBA26w==", 993 | "cpu": [ 994 | "arm" 995 | ], 996 | "dev": true, 997 | "license": "MIT", 998 | "optional": true, 999 | "os": [ 1000 | "android" 1001 | ] 1002 | }, 1003 | "node_modules/@rollup/rollup-android-arm64": { 1004 | "version": "4.36.0", 1005 | "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.36.0.tgz", 1006 | "integrity": "sha512-NyfuLvdPdNUfUNeYKUwPwKsE5SXa2J6bCt2LdB/N+AxShnkpiczi3tcLJrm5mA+eqpy0HmaIY9F6XCa32N5yzg==", 1007 | "cpu": [ 1008 | "arm64" 1009 | ], 1010 | "dev": true, 1011 | "license": "MIT", 1012 | "optional": true, 1013 | "os": [ 1014 | "android" 1015 | ] 1016 | }, 1017 | "node_modules/@rollup/rollup-darwin-arm64": { 1018 | "version": "4.36.0", 1019 | "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.36.0.tgz", 1020 | "integrity": "sha512-JQ1Jk5G4bGrD4pWJQzWsD8I1n1mgPXq33+/vP4sk8j/z/C2siRuxZtaUA7yMTf71TCZTZl/4e1bfzwUmFb3+rw==", 1021 | "cpu": [ 1022 | "arm64" 1023 | ], 1024 | "dev": true, 1025 | "license": "MIT", 1026 | "optional": true, 1027 | "os": [ 1028 | "darwin" 1029 | ] 1030 | }, 1031 | "node_modules/@rollup/rollup-darwin-x64": { 1032 | "version": "4.36.0", 1033 | "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.36.0.tgz", 1034 | "integrity": "sha512-6c6wMZa1lrtiRsbDziCmjE53YbTkxMYhhnWnSW8R/yqsM7a6mSJ3uAVT0t8Y/DGt7gxUWYuFM4bwWk9XCJrFKA==", 1035 | "cpu": [ 1036 | "x64" 1037 | ], 1038 | "dev": true, 1039 | "license": "MIT", 1040 | "optional": true, 1041 | "os": [ 1042 | "darwin" 1043 | ] 1044 | }, 1045 | "node_modules/@rollup/rollup-freebsd-arm64": { 1046 | "version": "4.36.0", 1047 | "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.36.0.tgz", 1048 | "integrity": "sha512-KXVsijKeJXOl8QzXTsA+sHVDsFOmMCdBRgFmBb+mfEb/7geR7+C8ypAml4fquUt14ZyVXaw2o1FWhqAfOvA4sg==", 1049 | "cpu": [ 1050 | "arm64" 1051 | ], 1052 | "dev": true, 1053 | "license": "MIT", 1054 | "optional": true, 1055 | "os": [ 1056 | "freebsd" 1057 | ] 1058 | }, 1059 | "node_modules/@rollup/rollup-freebsd-x64": { 1060 | "version": "4.36.0", 1061 | "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.36.0.tgz", 1062 | "integrity": "sha512-dVeWq1ebbvByI+ndz4IJcD4a09RJgRYmLccwlQ8bPd4olz3Y213uf1iwvc7ZaxNn2ab7bjc08PrtBgMu6nb4pQ==", 1063 | "cpu": [ 1064 | "x64" 1065 | ], 1066 | "dev": true, 1067 | "license": "MIT", 1068 | "optional": true, 1069 | "os": [ 1070 | "freebsd" 1071 | ] 1072 | }, 1073 | "node_modules/@rollup/rollup-linux-arm-gnueabihf": { 1074 | "version": "4.36.0", 1075 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.36.0.tgz", 1076 | "integrity": "sha512-bvXVU42mOVcF4le6XSjscdXjqx8okv4n5vmwgzcmtvFdifQ5U4dXFYaCB87namDRKlUL9ybVtLQ9ztnawaSzvg==", 1077 | "cpu": [ 1078 | "arm" 1079 | ], 1080 | "dev": true, 1081 | "license": "MIT", 1082 | "optional": true, 1083 | "os": [ 1084 | "linux" 1085 | ] 1086 | }, 1087 | "node_modules/@rollup/rollup-linux-arm-musleabihf": { 1088 | "version": "4.36.0", 1089 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.36.0.tgz", 1090 | "integrity": "sha512-JFIQrDJYrxOnyDQGYkqnNBtjDwTgbasdbUiQvcU8JmGDfValfH1lNpng+4FWlhaVIR4KPkeddYjsVVbmJYvDcg==", 1091 | "cpu": [ 1092 | "arm" 1093 | ], 1094 | "dev": true, 1095 | "license": "MIT", 1096 | "optional": true, 1097 | "os": [ 1098 | "linux" 1099 | ] 1100 | }, 1101 | "node_modules/@rollup/rollup-linux-arm64-gnu": { 1102 | "version": "4.36.0", 1103 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.36.0.tgz", 1104 | "integrity": "sha512-KqjYVh3oM1bj//5X7k79PSCZ6CvaVzb7Qs7VMWS+SlWB5M8p3FqufLP9VNp4CazJ0CsPDLwVD9r3vX7Ci4J56A==", 1105 | "cpu": [ 1106 | "arm64" 1107 | ], 1108 | "dev": true, 1109 | "license": "MIT", 1110 | "optional": true, 1111 | "os": [ 1112 | "linux" 1113 | ] 1114 | }, 1115 | "node_modules/@rollup/rollup-linux-arm64-musl": { 1116 | "version": "4.36.0", 1117 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.36.0.tgz", 1118 | "integrity": "sha512-QiGnhScND+mAAtfHqeT+cB1S9yFnNQ/EwCg5yE3MzoaZZnIV0RV9O5alJAoJKX/sBONVKeZdMfO8QSaWEygMhw==", 1119 | "cpu": [ 1120 | "arm64" 1121 | ], 1122 | "dev": true, 1123 | "license": "MIT", 1124 | "optional": true, 1125 | "os": [ 1126 | "linux" 1127 | ] 1128 | }, 1129 | "node_modules/@rollup/rollup-linux-loongarch64-gnu": { 1130 | "version": "4.36.0", 1131 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.36.0.tgz", 1132 | "integrity": "sha512-1ZPyEDWF8phd4FQtTzMh8FQwqzvIjLsl6/84gzUxnMNFBtExBtpL51H67mV9xipuxl1AEAerRBgBwFNpkw8+Lg==", 1133 | "cpu": [ 1134 | "loong64" 1135 | ], 1136 | "dev": true, 1137 | "license": "MIT", 1138 | "optional": true, 1139 | "os": [ 1140 | "linux" 1141 | ] 1142 | }, 1143 | "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { 1144 | "version": "4.36.0", 1145 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.36.0.tgz", 1146 | "integrity": "sha512-VMPMEIUpPFKpPI9GZMhJrtu8rxnp6mJR3ZzQPykq4xc2GmdHj3Q4cA+7avMyegXy4n1v+Qynr9fR88BmyO74tg==", 1147 | "cpu": [ 1148 | "ppc64" 1149 | ], 1150 | "dev": true, 1151 | "license": "MIT", 1152 | "optional": true, 1153 | "os": [ 1154 | "linux" 1155 | ] 1156 | }, 1157 | "node_modules/@rollup/rollup-linux-riscv64-gnu": { 1158 | "version": "4.36.0", 1159 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.36.0.tgz", 1160 | "integrity": "sha512-ttE6ayb/kHwNRJGYLpuAvB7SMtOeQnVXEIpMtAvx3kepFQeowVED0n1K9nAdraHUPJ5hydEMxBpIR7o4nrm8uA==", 1161 | "cpu": [ 1162 | "riscv64" 1163 | ], 1164 | "dev": true, 1165 | "license": "MIT", 1166 | "optional": true, 1167 | "os": [ 1168 | "linux" 1169 | ] 1170 | }, 1171 | "node_modules/@rollup/rollup-linux-s390x-gnu": { 1172 | "version": "4.36.0", 1173 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.36.0.tgz", 1174 | "integrity": "sha512-4a5gf2jpS0AIe7uBjxDeUMNcFmaRTbNv7NxI5xOCs4lhzsVyGR/0qBXduPnoWf6dGC365saTiwag8hP1imTgag==", 1175 | "cpu": [ 1176 | "s390x" 1177 | ], 1178 | "dev": true, 1179 | "license": "MIT", 1180 | "optional": true, 1181 | "os": [ 1182 | "linux" 1183 | ] 1184 | }, 1185 | "node_modules/@rollup/rollup-linux-x64-gnu": { 1186 | "version": "4.36.0", 1187 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.36.0.tgz", 1188 | "integrity": "sha512-5KtoW8UWmwFKQ96aQL3LlRXX16IMwyzMq/jSSVIIyAANiE1doaQsx/KRyhAvpHlPjPiSU/AYX/8m+lQ9VToxFQ==", 1189 | "cpu": [ 1190 | "x64" 1191 | ], 1192 | "dev": true, 1193 | "license": "MIT", 1194 | "optional": true, 1195 | "os": [ 1196 | "linux" 1197 | ] 1198 | }, 1199 | "node_modules/@rollup/rollup-linux-x64-musl": { 1200 | "version": "4.36.0", 1201 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.36.0.tgz", 1202 | "integrity": "sha512-sycrYZPrv2ag4OCvaN5js+f01eoZ2U+RmT5as8vhxiFz+kxwlHrsxOwKPSA8WyS+Wc6Epid9QeI/IkQ9NkgYyQ==", 1203 | "cpu": [ 1204 | "x64" 1205 | ], 1206 | "dev": true, 1207 | "license": "MIT", 1208 | "optional": true, 1209 | "os": [ 1210 | "linux" 1211 | ] 1212 | }, 1213 | "node_modules/@rollup/rollup-win32-arm64-msvc": { 1214 | "version": "4.36.0", 1215 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.36.0.tgz", 1216 | "integrity": "sha512-qbqt4N7tokFwwSVlWDsjfoHgviS3n/vZ8LK0h1uLG9TYIRuUTJC88E1xb3LM2iqZ/WTqNQjYrtmtGmrmmawB6A==", 1217 | "cpu": [ 1218 | "arm64" 1219 | ], 1220 | "dev": true, 1221 | "license": "MIT", 1222 | "optional": true, 1223 | "os": [ 1224 | "win32" 1225 | ] 1226 | }, 1227 | "node_modules/@rollup/rollup-win32-ia32-msvc": { 1228 | "version": "4.36.0", 1229 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.36.0.tgz", 1230 | "integrity": "sha512-t+RY0JuRamIocMuQcfwYSOkmdX9dtkr1PbhKW42AMvaDQa+jOdpUYysroTF/nuPpAaQMWp7ye+ndlmmthieJrQ==", 1231 | "cpu": [ 1232 | "ia32" 1233 | ], 1234 | "dev": true, 1235 | "license": "MIT", 1236 | "optional": true, 1237 | "os": [ 1238 | "win32" 1239 | ] 1240 | }, 1241 | "node_modules/@rollup/rollup-win32-x64-msvc": { 1242 | "version": "4.36.0", 1243 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.36.0.tgz", 1244 | "integrity": "sha512-aRXd7tRZkWLqGbChgcMMDEHjOKudo1kChb1Jt1IfR8cY/KIpgNviLeJy5FUb9IpSuQj8dU2fAYNMPW/hLKOSTw==", 1245 | "cpu": [ 1246 | "x64" 1247 | ], 1248 | "dev": true, 1249 | "license": "MIT", 1250 | "optional": true, 1251 | "os": [ 1252 | "win32" 1253 | ] 1254 | }, 1255 | "node_modules/@sveltejs/acorn-typescript": { 1256 | "version": "1.0.5", 1257 | "resolved": "https://registry.npmjs.org/@sveltejs/acorn-typescript/-/acorn-typescript-1.0.5.tgz", 1258 | "integrity": "sha512-IwQk4yfwLdibDlrXVE04jTZYlLnwsTT2PIOQQGNLWfjavGifnk1JD1LcZjZaBTRcxZu2FfPfNLOE04DSu9lqtQ==", 1259 | "dev": true, 1260 | "license": "MIT", 1261 | "peerDependencies": { 1262 | "acorn": "^8.9.0" 1263 | } 1264 | }, 1265 | "node_modules/@sveltejs/adapter-auto": { 1266 | "version": "4.0.0", 1267 | "resolved": "https://registry.npmjs.org/@sveltejs/adapter-auto/-/adapter-auto-4.0.0.tgz", 1268 | "integrity": "sha512-kmuYSQdD2AwThymQF0haQhM8rE5rhutQXG4LNbnbShwhMO4qQGnKaaTy+88DuNSuoQDi58+thpq8XpHc1+oEKQ==", 1269 | "dev": true, 1270 | "license": "MIT", 1271 | "dependencies": { 1272 | "import-meta-resolve": "^4.1.0" 1273 | }, 1274 | "peerDependencies": { 1275 | "@sveltejs/kit": "^2.0.0" 1276 | } 1277 | }, 1278 | "node_modules/@sveltejs/kit": { 1279 | "version": "2.20.1", 1280 | "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.20.1.tgz", 1281 | "integrity": "sha512-XXd6hQKi9le+8rYIKsxTfgABjB3b8S21qZmMUTvAC5kuVA1AXvYPVEmxrMhRqyOacXu3e6P3ag5HtJi6j9K7UQ==", 1282 | "dev": true, 1283 | "license": "MIT", 1284 | "dependencies": { 1285 | "@types/cookie": "^0.6.0", 1286 | "cookie": "^0.6.0", 1287 | "devalue": "^5.1.0", 1288 | "esm-env": "^1.2.2", 1289 | "import-meta-resolve": "^4.1.0", 1290 | "kleur": "^4.1.5", 1291 | "magic-string": "^0.30.5", 1292 | "mrmime": "^2.0.0", 1293 | "sade": "^1.8.1", 1294 | "set-cookie-parser": "^2.6.0", 1295 | "sirv": "^3.0.0" 1296 | }, 1297 | "bin": { 1298 | "svelte-kit": "svelte-kit.js" 1299 | }, 1300 | "engines": { 1301 | "node": ">=18.13" 1302 | }, 1303 | "peerDependencies": { 1304 | "@sveltejs/vite-plugin-svelte": "^3.0.0 || ^4.0.0-next.1 || ^5.0.0", 1305 | "svelte": "^4.0.0 || ^5.0.0-next.0", 1306 | "vite": "^5.0.3 || ^6.0.0" 1307 | } 1308 | }, 1309 | "node_modules/@sveltejs/vite-plugin-svelte": { 1310 | "version": "5.0.3", 1311 | "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-5.0.3.tgz", 1312 | "integrity": "sha512-MCFS6CrQDu1yGwspm4qtli0e63vaPCehf6V7pIMP15AsWgMKrqDGCPFF/0kn4SP0ii4aySu4Pa62+fIRGFMjgw==", 1313 | "dev": true, 1314 | "license": "MIT", 1315 | "dependencies": { 1316 | "@sveltejs/vite-plugin-svelte-inspector": "^4.0.1", 1317 | "debug": "^4.4.0", 1318 | "deepmerge": "^4.3.1", 1319 | "kleur": "^4.1.5", 1320 | "magic-string": "^0.30.15", 1321 | "vitefu": "^1.0.4" 1322 | }, 1323 | "engines": { 1324 | "node": "^18.0.0 || ^20.0.0 || >=22" 1325 | }, 1326 | "peerDependencies": { 1327 | "svelte": "^5.0.0", 1328 | "vite": "^6.0.0" 1329 | } 1330 | }, 1331 | "node_modules/@sveltejs/vite-plugin-svelte-inspector": { 1332 | "version": "4.0.1", 1333 | "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-4.0.1.tgz", 1334 | "integrity": "sha512-J/Nmb2Q2y7mck2hyCX4ckVHcR5tu2J+MtBEQqpDrrgELZ2uvraQcK/ioCV61AqkdXFgriksOKIceDcQmqnGhVw==", 1335 | "dev": true, 1336 | "license": "MIT", 1337 | "dependencies": { 1338 | "debug": "^4.3.7" 1339 | }, 1340 | "engines": { 1341 | "node": "^18.0.0 || ^20.0.0 || >=22" 1342 | }, 1343 | "peerDependencies": { 1344 | "@sveltejs/vite-plugin-svelte": "^5.0.0", 1345 | "svelte": "^5.0.0", 1346 | "vite": "^6.0.0" 1347 | } 1348 | }, 1349 | "node_modules/@testing-library/dom": { 1350 | "version": "10.4.0", 1351 | "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.0.tgz", 1352 | "integrity": "sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==", 1353 | "dev": true, 1354 | "license": "MIT", 1355 | "dependencies": { 1356 | "@babel/code-frame": "^7.10.4", 1357 | "@babel/runtime": "^7.12.5", 1358 | "@types/aria-query": "^5.0.1", 1359 | "aria-query": "5.3.0", 1360 | "chalk": "^4.1.0", 1361 | "dom-accessibility-api": "^0.5.9", 1362 | "lz-string": "^1.5.0", 1363 | "pretty-format": "^27.0.2" 1364 | }, 1365 | "engines": { 1366 | "node": ">=18" 1367 | } 1368 | }, 1369 | "node_modules/@testing-library/dom/node_modules/aria-query": { 1370 | "version": "5.3.0", 1371 | "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", 1372 | "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", 1373 | "dev": true, 1374 | "license": "Apache-2.0", 1375 | "dependencies": { 1376 | "dequal": "^2.0.3" 1377 | } 1378 | }, 1379 | "node_modules/@testing-library/dom/node_modules/chalk": { 1380 | "version": "4.1.2", 1381 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 1382 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 1383 | "dev": true, 1384 | "license": "MIT", 1385 | "dependencies": { 1386 | "ansi-styles": "^4.1.0", 1387 | "supports-color": "^7.1.0" 1388 | }, 1389 | "engines": { 1390 | "node": ">=10" 1391 | }, 1392 | "funding": { 1393 | "url": "https://github.com/chalk/chalk?sponsor=1" 1394 | } 1395 | }, 1396 | "node_modules/@testing-library/dom/node_modules/dom-accessibility-api": { 1397 | "version": "0.5.16", 1398 | "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", 1399 | "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", 1400 | "dev": true, 1401 | "license": "MIT" 1402 | }, 1403 | "node_modules/@testing-library/jest-dom": { 1404 | "version": "6.6.3", 1405 | "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.6.3.tgz", 1406 | "integrity": "sha512-IteBhl4XqYNkM54f4ejhLRJiZNqcSCoXUOG2CPK7qbD322KjQozM4kHQOfkG2oln9b9HTYqs+Sae8vBATubxxA==", 1407 | "dev": true, 1408 | "license": "MIT", 1409 | "dependencies": { 1410 | "@adobe/css-tools": "^4.4.0", 1411 | "aria-query": "^5.0.0", 1412 | "chalk": "^3.0.0", 1413 | "css.escape": "^1.5.1", 1414 | "dom-accessibility-api": "^0.6.3", 1415 | "lodash": "^4.17.21", 1416 | "redent": "^3.0.0" 1417 | }, 1418 | "engines": { 1419 | "node": ">=14", 1420 | "npm": ">=6", 1421 | "yarn": ">=1" 1422 | } 1423 | }, 1424 | "node_modules/@testing-library/svelte": { 1425 | "version": "5.2.7", 1426 | "resolved": "https://registry.npmjs.org/@testing-library/svelte/-/svelte-5.2.7.tgz", 1427 | "integrity": "sha512-aGhUaFmEXEVost4QOsbHUUbHLwi7ZZRRxAHFDO2Cmr0BZD3/3+XvaYEPq70Rdw0NRNjdqZHdARBEcrCOkPuAqw==", 1428 | "dev": true, 1429 | "license": "MIT", 1430 | "dependencies": { 1431 | "@testing-library/dom": "^10.0.0" 1432 | }, 1433 | "engines": { 1434 | "node": ">= 10" 1435 | }, 1436 | "peerDependencies": { 1437 | "svelte": "^3 || ^4 || ^5 || ^5.0.0-next.0", 1438 | "vite": "*", 1439 | "vitest": "*" 1440 | }, 1441 | "peerDependenciesMeta": { 1442 | "vite": { 1443 | "optional": true 1444 | }, 1445 | "vitest": { 1446 | "optional": true 1447 | } 1448 | } 1449 | }, 1450 | "node_modules/@types/aria-query": { 1451 | "version": "5.0.4", 1452 | "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", 1453 | "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", 1454 | "dev": true, 1455 | "license": "MIT" 1456 | }, 1457 | "node_modules/@types/chart.js": { 1458 | "version": "2.9.41", 1459 | "resolved": "https://registry.npmjs.org/@types/chart.js/-/chart.js-2.9.41.tgz", 1460 | "integrity": "sha512-3dvkDvueckY83UyUXtJMalYoH6faOLkWQoaTlJgB4Djde3oORmNP0Jw85HtzTuXyliUHcdp704s0mZFQKio/KQ==", 1461 | "license": "MIT", 1462 | "dependencies": { 1463 | "moment": "^2.10.2" 1464 | } 1465 | }, 1466 | "node_modules/@types/cookie": { 1467 | "version": "0.6.0", 1468 | "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", 1469 | "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", 1470 | "dev": true, 1471 | "license": "MIT" 1472 | }, 1473 | "node_modules/@types/estree": { 1474 | "version": "1.0.6", 1475 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", 1476 | "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", 1477 | "dev": true, 1478 | "license": "MIT" 1479 | }, 1480 | "node_modules/@types/json-schema": { 1481 | "version": "7.0.15", 1482 | "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", 1483 | "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", 1484 | "dev": true, 1485 | "license": "MIT" 1486 | }, 1487 | "node_modules/@typescript-eslint/eslint-plugin": { 1488 | "version": "8.26.1", 1489 | "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.26.1.tgz", 1490 | "integrity": "sha512-2X3mwqsj9Bd3Ciz508ZUtoQQYpOhU/kWoUqIf49H8Z0+Vbh6UF/y0OEYp0Q0axOGzaBGs7QxRwq0knSQ8khQNA==", 1491 | "dev": true, 1492 | "license": "MIT", 1493 | "dependencies": { 1494 | "@eslint-community/regexpp": "^4.10.0", 1495 | "@typescript-eslint/scope-manager": "8.26.1", 1496 | "@typescript-eslint/type-utils": "8.26.1", 1497 | "@typescript-eslint/utils": "8.26.1", 1498 | "@typescript-eslint/visitor-keys": "8.26.1", 1499 | "graphemer": "^1.4.0", 1500 | "ignore": "^5.3.1", 1501 | "natural-compare": "^1.4.0", 1502 | "ts-api-utils": "^2.0.1" 1503 | }, 1504 | "engines": { 1505 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1506 | }, 1507 | "funding": { 1508 | "type": "opencollective", 1509 | "url": "https://opencollective.com/typescript-eslint" 1510 | }, 1511 | "peerDependencies": { 1512 | "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", 1513 | "eslint": "^8.57.0 || ^9.0.0", 1514 | "typescript": ">=4.8.4 <5.9.0" 1515 | } 1516 | }, 1517 | "node_modules/@typescript-eslint/parser": { 1518 | "version": "8.26.1", 1519 | "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.26.1.tgz", 1520 | "integrity": "sha512-w6HZUV4NWxqd8BdeFf81t07d7/YV9s7TCWrQQbG5uhuvGUAW+fq1usZ1Hmz9UPNLniFnD8GLSsDpjP0hm1S4lQ==", 1521 | "dev": true, 1522 | "license": "MIT", 1523 | "dependencies": { 1524 | "@typescript-eslint/scope-manager": "8.26.1", 1525 | "@typescript-eslint/types": "8.26.1", 1526 | "@typescript-eslint/typescript-estree": "8.26.1", 1527 | "@typescript-eslint/visitor-keys": "8.26.1", 1528 | "debug": "^4.3.4" 1529 | }, 1530 | "engines": { 1531 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1532 | }, 1533 | "funding": { 1534 | "type": "opencollective", 1535 | "url": "https://opencollective.com/typescript-eslint" 1536 | }, 1537 | "peerDependencies": { 1538 | "eslint": "^8.57.0 || ^9.0.0", 1539 | "typescript": ">=4.8.4 <5.9.0" 1540 | } 1541 | }, 1542 | "node_modules/@typescript-eslint/scope-manager": { 1543 | "version": "8.26.1", 1544 | "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.26.1.tgz", 1545 | "integrity": "sha512-6EIvbE5cNER8sqBu6V7+KeMZIC1664d2Yjt+B9EWUXrsyWpxx4lEZrmvxgSKRC6gX+efDL/UY9OpPZ267io3mg==", 1546 | "dev": true, 1547 | "license": "MIT", 1548 | "dependencies": { 1549 | "@typescript-eslint/types": "8.26.1", 1550 | "@typescript-eslint/visitor-keys": "8.26.1" 1551 | }, 1552 | "engines": { 1553 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1554 | }, 1555 | "funding": { 1556 | "type": "opencollective", 1557 | "url": "https://opencollective.com/typescript-eslint" 1558 | } 1559 | }, 1560 | "node_modules/@typescript-eslint/type-utils": { 1561 | "version": "8.26.1", 1562 | "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.26.1.tgz", 1563 | "integrity": "sha512-Kcj/TagJLwoY/5w9JGEFV0dclQdyqw9+VMndxOJKtoFSjfZhLXhYjzsQEeyza03rwHx2vFEGvrJWJBXKleRvZg==", 1564 | "dev": true, 1565 | "license": "MIT", 1566 | "dependencies": { 1567 | "@typescript-eslint/typescript-estree": "8.26.1", 1568 | "@typescript-eslint/utils": "8.26.1", 1569 | "debug": "^4.3.4", 1570 | "ts-api-utils": "^2.0.1" 1571 | }, 1572 | "engines": { 1573 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1574 | }, 1575 | "funding": { 1576 | "type": "opencollective", 1577 | "url": "https://opencollective.com/typescript-eslint" 1578 | }, 1579 | "peerDependencies": { 1580 | "eslint": "^8.57.0 || ^9.0.0", 1581 | "typescript": ">=4.8.4 <5.9.0" 1582 | } 1583 | }, 1584 | "node_modules/@typescript-eslint/types": { 1585 | "version": "8.26.1", 1586 | "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.26.1.tgz", 1587 | "integrity": "sha512-n4THUQW27VmQMx+3P+B0Yptl7ydfceUj4ON/AQILAASwgYdZ/2dhfymRMh5egRUrvK5lSmaOm77Ry+lmXPOgBQ==", 1588 | "dev": true, 1589 | "license": "MIT", 1590 | "engines": { 1591 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1592 | }, 1593 | "funding": { 1594 | "type": "opencollective", 1595 | "url": "https://opencollective.com/typescript-eslint" 1596 | } 1597 | }, 1598 | "node_modules/@typescript-eslint/typescript-estree": { 1599 | "version": "8.26.1", 1600 | "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.26.1.tgz", 1601 | "integrity": "sha512-yUwPpUHDgdrv1QJ7YQal3cMVBGWfnuCdKbXw1yyjArax3353rEJP1ZA+4F8nOlQ3RfS2hUN/wze3nlY+ZOhvoA==", 1602 | "dev": true, 1603 | "license": "MIT", 1604 | "dependencies": { 1605 | "@typescript-eslint/types": "8.26.1", 1606 | "@typescript-eslint/visitor-keys": "8.26.1", 1607 | "debug": "^4.3.4", 1608 | "fast-glob": "^3.3.2", 1609 | "is-glob": "^4.0.3", 1610 | "minimatch": "^9.0.4", 1611 | "semver": "^7.6.0", 1612 | "ts-api-utils": "^2.0.1" 1613 | }, 1614 | "engines": { 1615 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1616 | }, 1617 | "funding": { 1618 | "type": "opencollective", 1619 | "url": "https://opencollective.com/typescript-eslint" 1620 | }, 1621 | "peerDependencies": { 1622 | "typescript": ">=4.8.4 <5.9.0" 1623 | } 1624 | }, 1625 | "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { 1626 | "version": "2.0.1", 1627 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", 1628 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", 1629 | "dev": true, 1630 | "license": "MIT", 1631 | "dependencies": { 1632 | "balanced-match": "^1.0.0" 1633 | } 1634 | }, 1635 | "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { 1636 | "version": "9.0.5", 1637 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", 1638 | "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", 1639 | "dev": true, 1640 | "license": "ISC", 1641 | "dependencies": { 1642 | "brace-expansion": "^2.0.1" 1643 | }, 1644 | "engines": { 1645 | "node": ">=16 || 14 >=14.17" 1646 | }, 1647 | "funding": { 1648 | "url": "https://github.com/sponsors/isaacs" 1649 | } 1650 | }, 1651 | "node_modules/@typescript-eslint/utils": { 1652 | "version": "8.26.1", 1653 | "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.26.1.tgz", 1654 | "integrity": "sha512-V4Urxa/XtSUroUrnI7q6yUTD3hDtfJ2jzVfeT3VK0ciizfK2q/zGC0iDh1lFMUZR8cImRrep6/q0xd/1ZGPQpg==", 1655 | "dev": true, 1656 | "license": "MIT", 1657 | "dependencies": { 1658 | "@eslint-community/eslint-utils": "^4.4.0", 1659 | "@typescript-eslint/scope-manager": "8.26.1", 1660 | "@typescript-eslint/types": "8.26.1", 1661 | "@typescript-eslint/typescript-estree": "8.26.1" 1662 | }, 1663 | "engines": { 1664 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1665 | }, 1666 | "funding": { 1667 | "type": "opencollective", 1668 | "url": "https://opencollective.com/typescript-eslint" 1669 | }, 1670 | "peerDependencies": { 1671 | "eslint": "^8.57.0 || ^9.0.0", 1672 | "typescript": ">=4.8.4 <5.9.0" 1673 | } 1674 | }, 1675 | "node_modules/@typescript-eslint/visitor-keys": { 1676 | "version": "8.26.1", 1677 | "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.26.1.tgz", 1678 | "integrity": "sha512-AjOC3zfnxd6S4Eiy3jwktJPclqhFHNyd8L6Gycf9WUPoKZpgM5PjkxY1X7uSy61xVpiJDhhk7XT2NVsN3ALTWg==", 1679 | "dev": true, 1680 | "license": "MIT", 1681 | "dependencies": { 1682 | "@typescript-eslint/types": "8.26.1", 1683 | "eslint-visitor-keys": "^4.2.0" 1684 | }, 1685 | "engines": { 1686 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1687 | }, 1688 | "funding": { 1689 | "type": "opencollective", 1690 | "url": "https://opencollective.com/typescript-eslint" 1691 | } 1692 | }, 1693 | "node_modules/@vitest/expect": { 1694 | "version": "3.0.9", 1695 | "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.0.9.tgz", 1696 | "integrity": "sha512-5eCqRItYgIML7NNVgJj6TVCmdzE7ZVgJhruW0ziSQV4V7PvLkDL1bBkBdcTs/VuIz0IxPb5da1IDSqc1TR9eig==", 1697 | "dev": true, 1698 | "license": "MIT", 1699 | "dependencies": { 1700 | "@vitest/spy": "3.0.9", 1701 | "@vitest/utils": "3.0.9", 1702 | "chai": "^5.2.0", 1703 | "tinyrainbow": "^2.0.0" 1704 | }, 1705 | "funding": { 1706 | "url": "https://opencollective.com/vitest" 1707 | } 1708 | }, 1709 | "node_modules/@vitest/mocker": { 1710 | "version": "3.0.9", 1711 | "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.0.9.tgz", 1712 | "integrity": "sha512-ryERPIBOnvevAkTq+L1lD+DTFBRcjueL9lOUfXsLfwP92h4e+Heb+PjiqS3/OURWPtywfafK0kj++yDFjWUmrA==", 1713 | "dev": true, 1714 | "license": "MIT", 1715 | "dependencies": { 1716 | "@vitest/spy": "3.0.9", 1717 | "estree-walker": "^3.0.3", 1718 | "magic-string": "^0.30.17" 1719 | }, 1720 | "funding": { 1721 | "url": "https://opencollective.com/vitest" 1722 | }, 1723 | "peerDependencies": { 1724 | "msw": "^2.4.9", 1725 | "vite": "^5.0.0 || ^6.0.0" 1726 | }, 1727 | "peerDependenciesMeta": { 1728 | "msw": { 1729 | "optional": true 1730 | }, 1731 | "vite": { 1732 | "optional": true 1733 | } 1734 | } 1735 | }, 1736 | "node_modules/@vitest/pretty-format": { 1737 | "version": "3.0.9", 1738 | "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.0.9.tgz", 1739 | "integrity": "sha512-OW9F8t2J3AwFEwENg3yMyKWweF7oRJlMyHOMIhO5F3n0+cgQAJZBjNgrF8dLwFTEXl5jUqBLXd9QyyKv8zEcmA==", 1740 | "dev": true, 1741 | "license": "MIT", 1742 | "dependencies": { 1743 | "tinyrainbow": "^2.0.0" 1744 | }, 1745 | "funding": { 1746 | "url": "https://opencollective.com/vitest" 1747 | } 1748 | }, 1749 | "node_modules/@vitest/runner": { 1750 | "version": "3.0.9", 1751 | "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.0.9.tgz", 1752 | "integrity": "sha512-NX9oUXgF9HPfJSwl8tUZCMP1oGx2+Sf+ru6d05QjzQz4OwWg0psEzwY6VexP2tTHWdOkhKHUIZH+fS6nA7jfOw==", 1753 | "dev": true, 1754 | "license": "MIT", 1755 | "dependencies": { 1756 | "@vitest/utils": "3.0.9", 1757 | "pathe": "^2.0.3" 1758 | }, 1759 | "funding": { 1760 | "url": "https://opencollective.com/vitest" 1761 | } 1762 | }, 1763 | "node_modules/@vitest/snapshot": { 1764 | "version": "3.0.9", 1765 | "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.0.9.tgz", 1766 | "integrity": "sha512-AiLUiuZ0FuA+/8i19mTYd+re5jqjEc2jZbgJ2up0VY0Ddyyxg/uUtBDpIFAy4uzKaQxOW8gMgBdAJJ2ydhu39A==", 1767 | "dev": true, 1768 | "license": "MIT", 1769 | "dependencies": { 1770 | "@vitest/pretty-format": "3.0.9", 1771 | "magic-string": "^0.30.17", 1772 | "pathe": "^2.0.3" 1773 | }, 1774 | "funding": { 1775 | "url": "https://opencollective.com/vitest" 1776 | } 1777 | }, 1778 | "node_modules/@vitest/spy": { 1779 | "version": "3.0.9", 1780 | "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.0.9.tgz", 1781 | "integrity": "sha512-/CcK2UDl0aQ2wtkp3YVWldrpLRNCfVcIOFGlVGKO4R5eajsH393Z1yiXLVQ7vWsj26JOEjeZI0x5sm5P4OGUNQ==", 1782 | "dev": true, 1783 | "license": "MIT", 1784 | "dependencies": { 1785 | "tinyspy": "^3.0.2" 1786 | }, 1787 | "funding": { 1788 | "url": "https://opencollective.com/vitest" 1789 | } 1790 | }, 1791 | "node_modules/@vitest/utils": { 1792 | "version": "3.0.9", 1793 | "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.0.9.tgz", 1794 | "integrity": "sha512-ilHM5fHhZ89MCp5aAaM9uhfl1c2JdxVxl3McqsdVyVNN6JffnEen8UMCdRTzOhGXNQGo5GNL9QugHrz727Wnng==", 1795 | "dev": true, 1796 | "license": "MIT", 1797 | "dependencies": { 1798 | "@vitest/pretty-format": "3.0.9", 1799 | "loupe": "^3.1.3", 1800 | "tinyrainbow": "^2.0.0" 1801 | }, 1802 | "funding": { 1803 | "url": "https://opencollective.com/vitest" 1804 | } 1805 | }, 1806 | "node_modules/acorn": { 1807 | "version": "8.14.1", 1808 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", 1809 | "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", 1810 | "dev": true, 1811 | "license": "MIT", 1812 | "bin": { 1813 | "acorn": "bin/acorn" 1814 | }, 1815 | "engines": { 1816 | "node": ">=0.4.0" 1817 | } 1818 | }, 1819 | "node_modules/acorn-jsx": { 1820 | "version": "5.3.2", 1821 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", 1822 | "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", 1823 | "dev": true, 1824 | "license": "MIT", 1825 | "peerDependencies": { 1826 | "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" 1827 | } 1828 | }, 1829 | "node_modules/agent-base": { 1830 | "version": "7.1.3", 1831 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", 1832 | "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", 1833 | "dev": true, 1834 | "license": "MIT", 1835 | "engines": { 1836 | "node": ">= 14" 1837 | } 1838 | }, 1839 | "node_modules/ajv": { 1840 | "version": "6.12.6", 1841 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", 1842 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", 1843 | "dev": true, 1844 | "license": "MIT", 1845 | "dependencies": { 1846 | "fast-deep-equal": "^3.1.1", 1847 | "fast-json-stable-stringify": "^2.0.0", 1848 | "json-schema-traverse": "^0.4.1", 1849 | "uri-js": "^4.2.2" 1850 | }, 1851 | "funding": { 1852 | "type": "github", 1853 | "url": "https://github.com/sponsors/epoberezkin" 1854 | } 1855 | }, 1856 | "node_modules/ansi-regex": { 1857 | "version": "5.0.1", 1858 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 1859 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 1860 | "dev": true, 1861 | "license": "MIT", 1862 | "engines": { 1863 | "node": ">=8" 1864 | } 1865 | }, 1866 | "node_modules/ansi-styles": { 1867 | "version": "4.3.0", 1868 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 1869 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 1870 | "dev": true, 1871 | "license": "MIT", 1872 | "dependencies": { 1873 | "color-convert": "^2.0.1" 1874 | }, 1875 | "engines": { 1876 | "node": ">=8" 1877 | }, 1878 | "funding": { 1879 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 1880 | } 1881 | }, 1882 | "node_modules/argparse": { 1883 | "version": "2.0.1", 1884 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", 1885 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", 1886 | "dev": true, 1887 | "license": "Python-2.0" 1888 | }, 1889 | "node_modules/aria-query": { 1890 | "version": "5.3.2", 1891 | "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", 1892 | "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", 1893 | "dev": true, 1894 | "license": "Apache-2.0", 1895 | "engines": { 1896 | "node": ">= 0.4" 1897 | } 1898 | }, 1899 | "node_modules/assertion-error": { 1900 | "version": "2.0.1", 1901 | "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", 1902 | "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", 1903 | "dev": true, 1904 | "license": "MIT", 1905 | "engines": { 1906 | "node": ">=12" 1907 | } 1908 | }, 1909 | "node_modules/asynckit": { 1910 | "version": "0.4.0", 1911 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 1912 | "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", 1913 | "dev": true, 1914 | "license": "MIT" 1915 | }, 1916 | "node_modules/axobject-query": { 1917 | "version": "4.1.0", 1918 | "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", 1919 | "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", 1920 | "dev": true, 1921 | "license": "Apache-2.0", 1922 | "engines": { 1923 | "node": ">= 0.4" 1924 | } 1925 | }, 1926 | "node_modules/balanced-match": { 1927 | "version": "1.0.2", 1928 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 1929 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 1930 | "dev": true, 1931 | "license": "MIT" 1932 | }, 1933 | "node_modules/brace-expansion": { 1934 | "version": "1.1.11", 1935 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 1936 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 1937 | "dev": true, 1938 | "license": "MIT", 1939 | "dependencies": { 1940 | "balanced-match": "^1.0.0", 1941 | "concat-map": "0.0.1" 1942 | } 1943 | }, 1944 | "node_modules/braces": { 1945 | "version": "3.0.3", 1946 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", 1947 | "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", 1948 | "dev": true, 1949 | "license": "MIT", 1950 | "dependencies": { 1951 | "fill-range": "^7.1.1" 1952 | }, 1953 | "engines": { 1954 | "node": ">=8" 1955 | } 1956 | }, 1957 | "node_modules/cac": { 1958 | "version": "6.7.14", 1959 | "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", 1960 | "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", 1961 | "dev": true, 1962 | "license": "MIT", 1963 | "engines": { 1964 | "node": ">=8" 1965 | } 1966 | }, 1967 | "node_modules/call-bind-apply-helpers": { 1968 | "version": "1.0.2", 1969 | "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", 1970 | "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", 1971 | "dev": true, 1972 | "license": "MIT", 1973 | "dependencies": { 1974 | "es-errors": "^1.3.0", 1975 | "function-bind": "^1.1.2" 1976 | }, 1977 | "engines": { 1978 | "node": ">= 0.4" 1979 | } 1980 | }, 1981 | "node_modules/callsites": { 1982 | "version": "3.1.0", 1983 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 1984 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 1985 | "dev": true, 1986 | "license": "MIT", 1987 | "engines": { 1988 | "node": ">=6" 1989 | } 1990 | }, 1991 | "node_modules/chai": { 1992 | "version": "5.2.0", 1993 | "resolved": "https://registry.npmjs.org/chai/-/chai-5.2.0.tgz", 1994 | "integrity": "sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==", 1995 | "dev": true, 1996 | "license": "MIT", 1997 | "dependencies": { 1998 | "assertion-error": "^2.0.1", 1999 | "check-error": "^2.1.1", 2000 | "deep-eql": "^5.0.1", 2001 | "loupe": "^3.1.0", 2002 | "pathval": "^2.0.0" 2003 | }, 2004 | "engines": { 2005 | "node": ">=12" 2006 | } 2007 | }, 2008 | "node_modules/chalk": { 2009 | "version": "3.0.0", 2010 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", 2011 | "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", 2012 | "dev": true, 2013 | "license": "MIT", 2014 | "dependencies": { 2015 | "ansi-styles": "^4.1.0", 2016 | "supports-color": "^7.1.0" 2017 | }, 2018 | "engines": { 2019 | "node": ">=8" 2020 | } 2021 | }, 2022 | "node_modules/chart.js": { 2023 | "version": "4.4.8", 2024 | "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.8.tgz", 2025 | "integrity": "sha512-IkGZlVpXP+83QpMm4uxEiGqSI7jFizwVtF3+n5Pc3k7sMO+tkd0qxh2OzLhenM0K80xtmAONWGBn082EiBQSDA==", 2026 | "license": "MIT", 2027 | "dependencies": { 2028 | "@kurkle/color": "^0.3.0" 2029 | }, 2030 | "engines": { 2031 | "pnpm": ">=8" 2032 | } 2033 | }, 2034 | "node_modules/check-error": { 2035 | "version": "2.1.1", 2036 | "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", 2037 | "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", 2038 | "dev": true, 2039 | "license": "MIT", 2040 | "engines": { 2041 | "node": ">= 16" 2042 | } 2043 | }, 2044 | "node_modules/chokidar": { 2045 | "version": "4.0.3", 2046 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", 2047 | "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", 2048 | "dev": true, 2049 | "license": "MIT", 2050 | "dependencies": { 2051 | "readdirp": "^4.0.1" 2052 | }, 2053 | "engines": { 2054 | "node": ">= 14.16.0" 2055 | }, 2056 | "funding": { 2057 | "url": "https://paulmillr.com/funding/" 2058 | } 2059 | }, 2060 | "node_modules/clsx": { 2061 | "version": "2.1.1", 2062 | "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", 2063 | "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", 2064 | "dev": true, 2065 | "license": "MIT", 2066 | "engines": { 2067 | "node": ">=6" 2068 | } 2069 | }, 2070 | "node_modules/color-convert": { 2071 | "version": "2.0.1", 2072 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 2073 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 2074 | "dev": true, 2075 | "license": "MIT", 2076 | "dependencies": { 2077 | "color-name": "~1.1.4" 2078 | }, 2079 | "engines": { 2080 | "node": ">=7.0.0" 2081 | } 2082 | }, 2083 | "node_modules/color-name": { 2084 | "version": "1.1.4", 2085 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 2086 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 2087 | "dev": true, 2088 | "license": "MIT" 2089 | }, 2090 | "node_modules/combined-stream": { 2091 | "version": "1.0.8", 2092 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 2093 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 2094 | "dev": true, 2095 | "license": "MIT", 2096 | "dependencies": { 2097 | "delayed-stream": "~1.0.0" 2098 | }, 2099 | "engines": { 2100 | "node": ">= 0.8" 2101 | } 2102 | }, 2103 | "node_modules/concat-map": { 2104 | "version": "0.0.1", 2105 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 2106 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", 2107 | "dev": true, 2108 | "license": "MIT" 2109 | }, 2110 | "node_modules/cookie": { 2111 | "version": "0.6.0", 2112 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", 2113 | "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", 2114 | "dev": true, 2115 | "license": "MIT", 2116 | "engines": { 2117 | "node": ">= 0.6" 2118 | } 2119 | }, 2120 | "node_modules/cross-spawn": { 2121 | "version": "7.0.6", 2122 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", 2123 | "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", 2124 | "dev": true, 2125 | "license": "MIT", 2126 | "dependencies": { 2127 | "path-key": "^3.1.0", 2128 | "shebang-command": "^2.0.0", 2129 | "which": "^2.0.1" 2130 | }, 2131 | "engines": { 2132 | "node": ">= 8" 2133 | } 2134 | }, 2135 | "node_modules/css.escape": { 2136 | "version": "1.5.1", 2137 | "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", 2138 | "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", 2139 | "dev": true, 2140 | "license": "MIT" 2141 | }, 2142 | "node_modules/cssesc": { 2143 | "version": "3.0.0", 2144 | "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", 2145 | "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", 2146 | "dev": true, 2147 | "license": "MIT", 2148 | "bin": { 2149 | "cssesc": "bin/cssesc" 2150 | }, 2151 | "engines": { 2152 | "node": ">=4" 2153 | } 2154 | }, 2155 | "node_modules/cssstyle": { 2156 | "version": "4.3.0", 2157 | "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.3.0.tgz", 2158 | "integrity": "sha512-6r0NiY0xizYqfBvWp1G7WXJ06/bZyrk7Dc6PHql82C/pKGUTKu4yAX4Y8JPamb1ob9nBKuxWzCGTRuGwU3yxJQ==", 2159 | "dev": true, 2160 | "license": "MIT", 2161 | "dependencies": { 2162 | "@asamuzakjp/css-color": "^3.1.1", 2163 | "rrweb-cssom": "^0.8.0" 2164 | }, 2165 | "engines": { 2166 | "node": ">=18" 2167 | } 2168 | }, 2169 | "node_modules/data-urls": { 2170 | "version": "5.0.0", 2171 | "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", 2172 | "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==", 2173 | "dev": true, 2174 | "license": "MIT", 2175 | "dependencies": { 2176 | "whatwg-mimetype": "^4.0.0", 2177 | "whatwg-url": "^14.0.0" 2178 | }, 2179 | "engines": { 2180 | "node": ">=18" 2181 | } 2182 | }, 2183 | "node_modules/debug": { 2184 | "version": "4.4.0", 2185 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", 2186 | "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", 2187 | "dev": true, 2188 | "license": "MIT", 2189 | "dependencies": { 2190 | "ms": "^2.1.3" 2191 | }, 2192 | "engines": { 2193 | "node": ">=6.0" 2194 | }, 2195 | "peerDependenciesMeta": { 2196 | "supports-color": { 2197 | "optional": true 2198 | } 2199 | } 2200 | }, 2201 | "node_modules/decimal.js": { 2202 | "version": "10.5.0", 2203 | "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.5.0.tgz", 2204 | "integrity": "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==", 2205 | "dev": true, 2206 | "license": "MIT" 2207 | }, 2208 | "node_modules/deep-eql": { 2209 | "version": "5.0.2", 2210 | "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", 2211 | "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", 2212 | "dev": true, 2213 | "license": "MIT", 2214 | "engines": { 2215 | "node": ">=6" 2216 | } 2217 | }, 2218 | "node_modules/deep-is": { 2219 | "version": "0.1.4", 2220 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", 2221 | "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", 2222 | "dev": true, 2223 | "license": "MIT" 2224 | }, 2225 | "node_modules/deepmerge": { 2226 | "version": "4.3.1", 2227 | "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", 2228 | "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", 2229 | "dev": true, 2230 | "license": "MIT", 2231 | "engines": { 2232 | "node": ">=0.10.0" 2233 | } 2234 | }, 2235 | "node_modules/delayed-stream": { 2236 | "version": "1.0.0", 2237 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 2238 | "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", 2239 | "dev": true, 2240 | "license": "MIT", 2241 | "engines": { 2242 | "node": ">=0.4.0" 2243 | } 2244 | }, 2245 | "node_modules/dequal": { 2246 | "version": "2.0.3", 2247 | "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", 2248 | "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", 2249 | "dev": true, 2250 | "license": "MIT", 2251 | "engines": { 2252 | "node": ">=6" 2253 | } 2254 | }, 2255 | "node_modules/devalue": { 2256 | "version": "5.1.1", 2257 | "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.1.1.tgz", 2258 | "integrity": "sha512-maua5KUiapvEwiEAe+XnlZ3Rh0GD+qI1J/nb9vrJc3muPXvcF/8gXYTWF76+5DAqHyDUtOIImEuo0YKE9mshVw==", 2259 | "dev": true, 2260 | "license": "MIT" 2261 | }, 2262 | "node_modules/dom-accessibility-api": { 2263 | "version": "0.6.3", 2264 | "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", 2265 | "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==", 2266 | "dev": true, 2267 | "license": "MIT" 2268 | }, 2269 | "node_modules/dunder-proto": { 2270 | "version": "1.0.1", 2271 | "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", 2272 | "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", 2273 | "dev": true, 2274 | "license": "MIT", 2275 | "dependencies": { 2276 | "call-bind-apply-helpers": "^1.0.1", 2277 | "es-errors": "^1.3.0", 2278 | "gopd": "^1.2.0" 2279 | }, 2280 | "engines": { 2281 | "node": ">= 0.4" 2282 | } 2283 | }, 2284 | "node_modules/entities": { 2285 | "version": "4.5.0", 2286 | "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", 2287 | "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", 2288 | "dev": true, 2289 | "license": "BSD-2-Clause", 2290 | "engines": { 2291 | "node": ">=0.12" 2292 | }, 2293 | "funding": { 2294 | "url": "https://github.com/fb55/entities?sponsor=1" 2295 | } 2296 | }, 2297 | "node_modules/es-define-property": { 2298 | "version": "1.0.1", 2299 | "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", 2300 | "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", 2301 | "dev": true, 2302 | "license": "MIT", 2303 | "engines": { 2304 | "node": ">= 0.4" 2305 | } 2306 | }, 2307 | "node_modules/es-errors": { 2308 | "version": "1.3.0", 2309 | "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", 2310 | "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", 2311 | "dev": true, 2312 | "license": "MIT", 2313 | "engines": { 2314 | "node": ">= 0.4" 2315 | } 2316 | }, 2317 | "node_modules/es-module-lexer": { 2318 | "version": "1.6.0", 2319 | "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", 2320 | "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", 2321 | "dev": true, 2322 | "license": "MIT" 2323 | }, 2324 | "node_modules/es-object-atoms": { 2325 | "version": "1.1.1", 2326 | "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", 2327 | "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", 2328 | "dev": true, 2329 | "license": "MIT", 2330 | "dependencies": { 2331 | "es-errors": "^1.3.0" 2332 | }, 2333 | "engines": { 2334 | "node": ">= 0.4" 2335 | } 2336 | }, 2337 | "node_modules/es-set-tostringtag": { 2338 | "version": "2.1.0", 2339 | "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", 2340 | "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", 2341 | "dev": true, 2342 | "license": "MIT", 2343 | "dependencies": { 2344 | "es-errors": "^1.3.0", 2345 | "get-intrinsic": "^1.2.6", 2346 | "has-tostringtag": "^1.0.2", 2347 | "hasown": "^2.0.2" 2348 | }, 2349 | "engines": { 2350 | "node": ">= 0.4" 2351 | } 2352 | }, 2353 | "node_modules/esbuild": { 2354 | "version": "0.25.1", 2355 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.1.tgz", 2356 | "integrity": "sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==", 2357 | "dev": true, 2358 | "hasInstallScript": true, 2359 | "license": "MIT", 2360 | "bin": { 2361 | "esbuild": "bin/esbuild" 2362 | }, 2363 | "engines": { 2364 | "node": ">=18" 2365 | }, 2366 | "optionalDependencies": { 2367 | "@esbuild/aix-ppc64": "0.25.1", 2368 | "@esbuild/android-arm": "0.25.1", 2369 | "@esbuild/android-arm64": "0.25.1", 2370 | "@esbuild/android-x64": "0.25.1", 2371 | "@esbuild/darwin-arm64": "0.25.1", 2372 | "@esbuild/darwin-x64": "0.25.1", 2373 | "@esbuild/freebsd-arm64": "0.25.1", 2374 | "@esbuild/freebsd-x64": "0.25.1", 2375 | "@esbuild/linux-arm": "0.25.1", 2376 | "@esbuild/linux-arm64": "0.25.1", 2377 | "@esbuild/linux-ia32": "0.25.1", 2378 | "@esbuild/linux-loong64": "0.25.1", 2379 | "@esbuild/linux-mips64el": "0.25.1", 2380 | "@esbuild/linux-ppc64": "0.25.1", 2381 | "@esbuild/linux-riscv64": "0.25.1", 2382 | "@esbuild/linux-s390x": "0.25.1", 2383 | "@esbuild/linux-x64": "0.25.1", 2384 | "@esbuild/netbsd-arm64": "0.25.1", 2385 | "@esbuild/netbsd-x64": "0.25.1", 2386 | "@esbuild/openbsd-arm64": "0.25.1", 2387 | "@esbuild/openbsd-x64": "0.25.1", 2388 | "@esbuild/sunos-x64": "0.25.1", 2389 | "@esbuild/win32-arm64": "0.25.1", 2390 | "@esbuild/win32-ia32": "0.25.1", 2391 | "@esbuild/win32-x64": "0.25.1" 2392 | } 2393 | }, 2394 | "node_modules/escape-string-regexp": { 2395 | "version": "4.0.0", 2396 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", 2397 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", 2398 | "dev": true, 2399 | "license": "MIT", 2400 | "engines": { 2401 | "node": ">=10" 2402 | }, 2403 | "funding": { 2404 | "url": "https://github.com/sponsors/sindresorhus" 2405 | } 2406 | }, 2407 | "node_modules/eslint": { 2408 | "version": "9.22.0", 2409 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.22.0.tgz", 2410 | "integrity": "sha512-9V/QURhsRN40xuHXWjV64yvrzMjcz7ZyNoF2jJFmy9j/SLk0u1OLSZgXi28MrXjymnjEGSR80WCdab3RGMDveQ==", 2411 | "dev": true, 2412 | "license": "MIT", 2413 | "dependencies": { 2414 | "@eslint-community/eslint-utils": "^4.2.0", 2415 | "@eslint-community/regexpp": "^4.12.1", 2416 | "@eslint/config-array": "^0.19.2", 2417 | "@eslint/config-helpers": "^0.1.0", 2418 | "@eslint/core": "^0.12.0", 2419 | "@eslint/eslintrc": "^3.3.0", 2420 | "@eslint/js": "9.22.0", 2421 | "@eslint/plugin-kit": "^0.2.7", 2422 | "@humanfs/node": "^0.16.6", 2423 | "@humanwhocodes/module-importer": "^1.0.1", 2424 | "@humanwhocodes/retry": "^0.4.2", 2425 | "@types/estree": "^1.0.6", 2426 | "@types/json-schema": "^7.0.15", 2427 | "ajv": "^6.12.4", 2428 | "chalk": "^4.0.0", 2429 | "cross-spawn": "^7.0.6", 2430 | "debug": "^4.3.2", 2431 | "escape-string-regexp": "^4.0.0", 2432 | "eslint-scope": "^8.3.0", 2433 | "eslint-visitor-keys": "^4.2.0", 2434 | "espree": "^10.3.0", 2435 | "esquery": "^1.5.0", 2436 | "esutils": "^2.0.2", 2437 | "fast-deep-equal": "^3.1.3", 2438 | "file-entry-cache": "^8.0.0", 2439 | "find-up": "^5.0.0", 2440 | "glob-parent": "^6.0.2", 2441 | "ignore": "^5.2.0", 2442 | "imurmurhash": "^0.1.4", 2443 | "is-glob": "^4.0.0", 2444 | "json-stable-stringify-without-jsonify": "^1.0.1", 2445 | "lodash.merge": "^4.6.2", 2446 | "minimatch": "^3.1.2", 2447 | "natural-compare": "^1.4.0", 2448 | "optionator": "^0.9.3" 2449 | }, 2450 | "bin": { 2451 | "eslint": "bin/eslint.js" 2452 | }, 2453 | "engines": { 2454 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 2455 | }, 2456 | "funding": { 2457 | "url": "https://eslint.org/donate" 2458 | }, 2459 | "peerDependencies": { 2460 | "jiti": "*" 2461 | }, 2462 | "peerDependenciesMeta": { 2463 | "jiti": { 2464 | "optional": true 2465 | } 2466 | } 2467 | }, 2468 | "node_modules/eslint-compat-utils": { 2469 | "version": "0.6.4", 2470 | "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.6.4.tgz", 2471 | "integrity": "sha512-/u+GQt8NMfXO8w17QendT4gvO5acfxQsAKirAt0LVxDnr2N8YLCVbregaNc/Yhp7NM128DwCaRvr8PLDfeNkQw==", 2472 | "dev": true, 2473 | "license": "MIT", 2474 | "dependencies": { 2475 | "semver": "^7.5.4" 2476 | }, 2477 | "engines": { 2478 | "node": ">=12" 2479 | }, 2480 | "peerDependencies": { 2481 | "eslint": ">=6.0.0" 2482 | } 2483 | }, 2484 | "node_modules/eslint-config-prettier": { 2485 | "version": "10.1.1", 2486 | "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.1.tgz", 2487 | "integrity": "sha512-4EQQr6wXwS+ZJSzaR5ZCrYgLxqvUjdXctaEtBqHcbkW944B1NQyO4qpdHQbXBONfwxXdkAY81HH4+LUfrg+zPw==", 2488 | "dev": true, 2489 | "license": "MIT", 2490 | "bin": { 2491 | "eslint-config-prettier": "bin/cli.js" 2492 | }, 2493 | "peerDependencies": { 2494 | "eslint": ">=7.0.0" 2495 | } 2496 | }, 2497 | "node_modules/eslint-plugin-svelte": { 2498 | "version": "3.3.2", 2499 | "resolved": "https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-3.3.2.tgz", 2500 | "integrity": "sha512-b2IJ2w0hJw5M3mj4aBLc6Gk6nMG3LFecUuPYV628G8Je/8ewJb80LR8fwTX9gOlqykTBNM18IGL7Hkz8K+WLkQ==", 2501 | "dev": true, 2502 | "license": "MIT", 2503 | "dependencies": { 2504 | "@eslint-community/eslint-utils": "^4.4.1", 2505 | "@jridgewell/sourcemap-codec": "^1.5.0", 2506 | "eslint-compat-utils": "^0.6.4", 2507 | "esutils": "^2.0.3", 2508 | "known-css-properties": "^0.35.0", 2509 | "postcss": "^8.4.49", 2510 | "postcss-load-config": "^3.1.4", 2511 | "postcss-safe-parser": "^7.0.0", 2512 | "semver": "^7.6.3", 2513 | "svelte-eslint-parser": "^1.0.1" 2514 | }, 2515 | "engines": { 2516 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 2517 | }, 2518 | "funding": { 2519 | "url": "https://github.com/sponsors/ota-meshi" 2520 | }, 2521 | "peerDependencies": { 2522 | "eslint": "^8.57.1 || ^9.0.0", 2523 | "svelte": "^3.37.0 || ^4.0.0 || ^5.0.0" 2524 | }, 2525 | "peerDependenciesMeta": { 2526 | "svelte": { 2527 | "optional": true 2528 | } 2529 | } 2530 | }, 2531 | "node_modules/eslint-scope": { 2532 | "version": "8.3.0", 2533 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz", 2534 | "integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==", 2535 | "dev": true, 2536 | "license": "BSD-2-Clause", 2537 | "dependencies": { 2538 | "esrecurse": "^4.3.0", 2539 | "estraverse": "^5.2.0" 2540 | }, 2541 | "engines": { 2542 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 2543 | }, 2544 | "funding": { 2545 | "url": "https://opencollective.com/eslint" 2546 | } 2547 | }, 2548 | "node_modules/eslint-visitor-keys": { 2549 | "version": "4.2.0", 2550 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", 2551 | "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", 2552 | "dev": true, 2553 | "license": "Apache-2.0", 2554 | "engines": { 2555 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 2556 | }, 2557 | "funding": { 2558 | "url": "https://opencollective.com/eslint" 2559 | } 2560 | }, 2561 | "node_modules/eslint/node_modules/chalk": { 2562 | "version": "4.1.2", 2563 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 2564 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 2565 | "dev": true, 2566 | "license": "MIT", 2567 | "dependencies": { 2568 | "ansi-styles": "^4.1.0", 2569 | "supports-color": "^7.1.0" 2570 | }, 2571 | "engines": { 2572 | "node": ">=10" 2573 | }, 2574 | "funding": { 2575 | "url": "https://github.com/chalk/chalk?sponsor=1" 2576 | } 2577 | }, 2578 | "node_modules/esm-env": { 2579 | "version": "1.2.2", 2580 | "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.2.2.tgz", 2581 | "integrity": "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==", 2582 | "dev": true, 2583 | "license": "MIT" 2584 | }, 2585 | "node_modules/espree": { 2586 | "version": "10.3.0", 2587 | "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", 2588 | "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", 2589 | "dev": true, 2590 | "license": "BSD-2-Clause", 2591 | "dependencies": { 2592 | "acorn": "^8.14.0", 2593 | "acorn-jsx": "^5.3.2", 2594 | "eslint-visitor-keys": "^4.2.0" 2595 | }, 2596 | "engines": { 2597 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 2598 | }, 2599 | "funding": { 2600 | "url": "https://opencollective.com/eslint" 2601 | } 2602 | }, 2603 | "node_modules/esquery": { 2604 | "version": "1.6.0", 2605 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", 2606 | "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", 2607 | "dev": true, 2608 | "license": "BSD-3-Clause", 2609 | "dependencies": { 2610 | "estraverse": "^5.1.0" 2611 | }, 2612 | "engines": { 2613 | "node": ">=0.10" 2614 | } 2615 | }, 2616 | "node_modules/esrap": { 2617 | "version": "1.4.5", 2618 | "resolved": "https://registry.npmjs.org/esrap/-/esrap-1.4.5.tgz", 2619 | "integrity": "sha512-CjNMjkBWWZeHn+VX+gS8YvFwJ5+NDhg8aWZBSFJPR8qQduDNjbJodA2WcwCm7uQa5Rjqj+nZvVmceg1RbHFB9g==", 2620 | "dev": true, 2621 | "license": "MIT", 2622 | "dependencies": { 2623 | "@jridgewell/sourcemap-codec": "^1.4.15" 2624 | } 2625 | }, 2626 | "node_modules/esrecurse": { 2627 | "version": "4.3.0", 2628 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", 2629 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", 2630 | "dev": true, 2631 | "license": "BSD-2-Clause", 2632 | "dependencies": { 2633 | "estraverse": "^5.2.0" 2634 | }, 2635 | "engines": { 2636 | "node": ">=4.0" 2637 | } 2638 | }, 2639 | "node_modules/estraverse": { 2640 | "version": "5.3.0", 2641 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", 2642 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", 2643 | "dev": true, 2644 | "license": "BSD-2-Clause", 2645 | "engines": { 2646 | "node": ">=4.0" 2647 | } 2648 | }, 2649 | "node_modules/estree-walker": { 2650 | "version": "3.0.3", 2651 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", 2652 | "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", 2653 | "dev": true, 2654 | "license": "MIT", 2655 | "dependencies": { 2656 | "@types/estree": "^1.0.0" 2657 | } 2658 | }, 2659 | "node_modules/esutils": { 2660 | "version": "2.0.3", 2661 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", 2662 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", 2663 | "dev": true, 2664 | "license": "BSD-2-Clause", 2665 | "engines": { 2666 | "node": ">=0.10.0" 2667 | } 2668 | }, 2669 | "node_modules/expect-type": { 2670 | "version": "1.2.0", 2671 | "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.2.0.tgz", 2672 | "integrity": "sha512-80F22aiJ3GLyVnS/B3HzgR6RelZVumzj9jkL0Rhz4h0xYbNW9PjlQz5h3J/SShErbXBc295vseR4/MIbVmUbeA==", 2673 | "dev": true, 2674 | "license": "Apache-2.0", 2675 | "engines": { 2676 | "node": ">=12.0.0" 2677 | } 2678 | }, 2679 | "node_modules/fast-deep-equal": { 2680 | "version": "3.1.3", 2681 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 2682 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", 2683 | "dev": true, 2684 | "license": "MIT" 2685 | }, 2686 | "node_modules/fast-glob": { 2687 | "version": "3.3.3", 2688 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", 2689 | "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", 2690 | "dev": true, 2691 | "license": "MIT", 2692 | "dependencies": { 2693 | "@nodelib/fs.stat": "^2.0.2", 2694 | "@nodelib/fs.walk": "^1.2.3", 2695 | "glob-parent": "^5.1.2", 2696 | "merge2": "^1.3.0", 2697 | "micromatch": "^4.0.8" 2698 | }, 2699 | "engines": { 2700 | "node": ">=8.6.0" 2701 | } 2702 | }, 2703 | "node_modules/fast-glob/node_modules/glob-parent": { 2704 | "version": "5.1.2", 2705 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 2706 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 2707 | "dev": true, 2708 | "license": "ISC", 2709 | "dependencies": { 2710 | "is-glob": "^4.0.1" 2711 | }, 2712 | "engines": { 2713 | "node": ">= 6" 2714 | } 2715 | }, 2716 | "node_modules/fast-json-stable-stringify": { 2717 | "version": "2.1.0", 2718 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 2719 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", 2720 | "dev": true, 2721 | "license": "MIT" 2722 | }, 2723 | "node_modules/fast-levenshtein": { 2724 | "version": "2.0.6", 2725 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 2726 | "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", 2727 | "dev": true, 2728 | "license": "MIT" 2729 | }, 2730 | "node_modules/fastq": { 2731 | "version": "1.19.1", 2732 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", 2733 | "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", 2734 | "dev": true, 2735 | "license": "ISC", 2736 | "dependencies": { 2737 | "reusify": "^1.0.4" 2738 | } 2739 | }, 2740 | "node_modules/fdir": { 2741 | "version": "6.4.3", 2742 | "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz", 2743 | "integrity": "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==", 2744 | "dev": true, 2745 | "license": "MIT", 2746 | "peerDependencies": { 2747 | "picomatch": "^3 || ^4" 2748 | }, 2749 | "peerDependenciesMeta": { 2750 | "picomatch": { 2751 | "optional": true 2752 | } 2753 | } 2754 | }, 2755 | "node_modules/file-entry-cache": { 2756 | "version": "8.0.0", 2757 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", 2758 | "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", 2759 | "dev": true, 2760 | "license": "MIT", 2761 | "dependencies": { 2762 | "flat-cache": "^4.0.0" 2763 | }, 2764 | "engines": { 2765 | "node": ">=16.0.0" 2766 | } 2767 | }, 2768 | "node_modules/fill-range": { 2769 | "version": "7.1.1", 2770 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", 2771 | "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", 2772 | "dev": true, 2773 | "license": "MIT", 2774 | "dependencies": { 2775 | "to-regex-range": "^5.0.1" 2776 | }, 2777 | "engines": { 2778 | "node": ">=8" 2779 | } 2780 | }, 2781 | "node_modules/find-up": { 2782 | "version": "5.0.0", 2783 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", 2784 | "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", 2785 | "dev": true, 2786 | "license": "MIT", 2787 | "dependencies": { 2788 | "locate-path": "^6.0.0", 2789 | "path-exists": "^4.0.0" 2790 | }, 2791 | "engines": { 2792 | "node": ">=10" 2793 | }, 2794 | "funding": { 2795 | "url": "https://github.com/sponsors/sindresorhus" 2796 | } 2797 | }, 2798 | "node_modules/flat-cache": { 2799 | "version": "4.0.1", 2800 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", 2801 | "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", 2802 | "dev": true, 2803 | "license": "MIT", 2804 | "dependencies": { 2805 | "flatted": "^3.2.9", 2806 | "keyv": "^4.5.4" 2807 | }, 2808 | "engines": { 2809 | "node": ">=16" 2810 | } 2811 | }, 2812 | "node_modules/flatted": { 2813 | "version": "3.3.3", 2814 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", 2815 | "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", 2816 | "dev": true, 2817 | "license": "ISC" 2818 | }, 2819 | "node_modules/form-data": { 2820 | "version": "4.0.2", 2821 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", 2822 | "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", 2823 | "dev": true, 2824 | "license": "MIT", 2825 | "dependencies": { 2826 | "asynckit": "^0.4.0", 2827 | "combined-stream": "^1.0.8", 2828 | "es-set-tostringtag": "^2.1.0", 2829 | "mime-types": "^2.1.12" 2830 | }, 2831 | "engines": { 2832 | "node": ">= 6" 2833 | } 2834 | }, 2835 | "node_modules/fsevents": { 2836 | "version": "2.3.3", 2837 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", 2838 | "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", 2839 | "dev": true, 2840 | "hasInstallScript": true, 2841 | "license": "MIT", 2842 | "optional": true, 2843 | "os": [ 2844 | "darwin" 2845 | ], 2846 | "engines": { 2847 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 2848 | } 2849 | }, 2850 | "node_modules/function-bind": { 2851 | "version": "1.1.2", 2852 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", 2853 | "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", 2854 | "dev": true, 2855 | "license": "MIT", 2856 | "funding": { 2857 | "url": "https://github.com/sponsors/ljharb" 2858 | } 2859 | }, 2860 | "node_modules/get-intrinsic": { 2861 | "version": "1.3.0", 2862 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", 2863 | "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", 2864 | "dev": true, 2865 | "license": "MIT", 2866 | "dependencies": { 2867 | "call-bind-apply-helpers": "^1.0.2", 2868 | "es-define-property": "^1.0.1", 2869 | "es-errors": "^1.3.0", 2870 | "es-object-atoms": "^1.1.1", 2871 | "function-bind": "^1.1.2", 2872 | "get-proto": "^1.0.1", 2873 | "gopd": "^1.2.0", 2874 | "has-symbols": "^1.1.0", 2875 | "hasown": "^2.0.2", 2876 | "math-intrinsics": "^1.1.0" 2877 | }, 2878 | "engines": { 2879 | "node": ">= 0.4" 2880 | }, 2881 | "funding": { 2882 | "url": "https://github.com/sponsors/ljharb" 2883 | } 2884 | }, 2885 | "node_modules/get-proto": { 2886 | "version": "1.0.1", 2887 | "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", 2888 | "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", 2889 | "dev": true, 2890 | "license": "MIT", 2891 | "dependencies": { 2892 | "dunder-proto": "^1.0.1", 2893 | "es-object-atoms": "^1.0.0" 2894 | }, 2895 | "engines": { 2896 | "node": ">= 0.4" 2897 | } 2898 | }, 2899 | "node_modules/glob-parent": { 2900 | "version": "6.0.2", 2901 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", 2902 | "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", 2903 | "dev": true, 2904 | "license": "ISC", 2905 | "dependencies": { 2906 | "is-glob": "^4.0.3" 2907 | }, 2908 | "engines": { 2909 | "node": ">=10.13.0" 2910 | } 2911 | }, 2912 | "node_modules/globals": { 2913 | "version": "16.0.0", 2914 | "resolved": "https://registry.npmjs.org/globals/-/globals-16.0.0.tgz", 2915 | "integrity": "sha512-iInW14XItCXET01CQFqudPOWP2jYMl7T+QRQT+UNcR/iQncN/F0UNpgd76iFkBPgNQb4+X3LV9tLJYzwh+Gl3A==", 2916 | "dev": true, 2917 | "license": "MIT", 2918 | "engines": { 2919 | "node": ">=18" 2920 | }, 2921 | "funding": { 2922 | "url": "https://github.com/sponsors/sindresorhus" 2923 | } 2924 | }, 2925 | "node_modules/gopd": { 2926 | "version": "1.2.0", 2927 | "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", 2928 | "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", 2929 | "dev": true, 2930 | "license": "MIT", 2931 | "engines": { 2932 | "node": ">= 0.4" 2933 | }, 2934 | "funding": { 2935 | "url": "https://github.com/sponsors/ljharb" 2936 | } 2937 | }, 2938 | "node_modules/graphemer": { 2939 | "version": "1.4.0", 2940 | "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", 2941 | "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", 2942 | "dev": true, 2943 | "license": "MIT" 2944 | }, 2945 | "node_modules/has-flag": { 2946 | "version": "4.0.0", 2947 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 2948 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 2949 | "dev": true, 2950 | "license": "MIT", 2951 | "engines": { 2952 | "node": ">=8" 2953 | } 2954 | }, 2955 | "node_modules/has-symbols": { 2956 | "version": "1.1.0", 2957 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", 2958 | "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", 2959 | "dev": true, 2960 | "license": "MIT", 2961 | "engines": { 2962 | "node": ">= 0.4" 2963 | }, 2964 | "funding": { 2965 | "url": "https://github.com/sponsors/ljharb" 2966 | } 2967 | }, 2968 | "node_modules/has-tostringtag": { 2969 | "version": "1.0.2", 2970 | "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", 2971 | "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", 2972 | "dev": true, 2973 | "license": "MIT", 2974 | "dependencies": { 2975 | "has-symbols": "^1.0.3" 2976 | }, 2977 | "engines": { 2978 | "node": ">= 0.4" 2979 | }, 2980 | "funding": { 2981 | "url": "https://github.com/sponsors/ljharb" 2982 | } 2983 | }, 2984 | "node_modules/hasown": { 2985 | "version": "2.0.2", 2986 | "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", 2987 | "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", 2988 | "dev": true, 2989 | "license": "MIT", 2990 | "dependencies": { 2991 | "function-bind": "^1.1.2" 2992 | }, 2993 | "engines": { 2994 | "node": ">= 0.4" 2995 | } 2996 | }, 2997 | "node_modules/html-encoding-sniffer": { 2998 | "version": "4.0.0", 2999 | "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", 3000 | "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", 3001 | "dev": true, 3002 | "license": "MIT", 3003 | "dependencies": { 3004 | "whatwg-encoding": "^3.1.1" 3005 | }, 3006 | "engines": { 3007 | "node": ">=18" 3008 | } 3009 | }, 3010 | "node_modules/http-proxy-agent": { 3011 | "version": "7.0.2", 3012 | "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", 3013 | "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", 3014 | "dev": true, 3015 | "license": "MIT", 3016 | "dependencies": { 3017 | "agent-base": "^7.1.0", 3018 | "debug": "^4.3.4" 3019 | }, 3020 | "engines": { 3021 | "node": ">= 14" 3022 | } 3023 | }, 3024 | "node_modules/https-proxy-agent": { 3025 | "version": "7.0.6", 3026 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", 3027 | "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", 3028 | "dev": true, 3029 | "license": "MIT", 3030 | "dependencies": { 3031 | "agent-base": "^7.1.2", 3032 | "debug": "4" 3033 | }, 3034 | "engines": { 3035 | "node": ">= 14" 3036 | } 3037 | }, 3038 | "node_modules/iconv-lite": { 3039 | "version": "0.6.3", 3040 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", 3041 | "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", 3042 | "dev": true, 3043 | "license": "MIT", 3044 | "dependencies": { 3045 | "safer-buffer": ">= 2.1.2 < 3.0.0" 3046 | }, 3047 | "engines": { 3048 | "node": ">=0.10.0" 3049 | } 3050 | }, 3051 | "node_modules/ignore": { 3052 | "version": "5.3.2", 3053 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", 3054 | "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", 3055 | "dev": true, 3056 | "license": "MIT", 3057 | "engines": { 3058 | "node": ">= 4" 3059 | } 3060 | }, 3061 | "node_modules/import-fresh": { 3062 | "version": "3.3.1", 3063 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", 3064 | "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", 3065 | "dev": true, 3066 | "license": "MIT", 3067 | "dependencies": { 3068 | "parent-module": "^1.0.0", 3069 | "resolve-from": "^4.0.0" 3070 | }, 3071 | "engines": { 3072 | "node": ">=6" 3073 | }, 3074 | "funding": { 3075 | "url": "https://github.com/sponsors/sindresorhus" 3076 | } 3077 | }, 3078 | "node_modules/import-meta-resolve": { 3079 | "version": "4.1.0", 3080 | "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", 3081 | "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==", 3082 | "dev": true, 3083 | "license": "MIT", 3084 | "funding": { 3085 | "type": "github", 3086 | "url": "https://github.com/sponsors/wooorm" 3087 | } 3088 | }, 3089 | "node_modules/imurmurhash": { 3090 | "version": "0.1.4", 3091 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 3092 | "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", 3093 | "dev": true, 3094 | "license": "MIT", 3095 | "engines": { 3096 | "node": ">=0.8.19" 3097 | } 3098 | }, 3099 | "node_modules/indent-string": { 3100 | "version": "4.0.0", 3101 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", 3102 | "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", 3103 | "dev": true, 3104 | "license": "MIT", 3105 | "engines": { 3106 | "node": ">=8" 3107 | } 3108 | }, 3109 | "node_modules/is-extglob": { 3110 | "version": "2.1.1", 3111 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 3112 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 3113 | "dev": true, 3114 | "license": "MIT", 3115 | "engines": { 3116 | "node": ">=0.10.0" 3117 | } 3118 | }, 3119 | "node_modules/is-glob": { 3120 | "version": "4.0.3", 3121 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 3122 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 3123 | "dev": true, 3124 | "license": "MIT", 3125 | "dependencies": { 3126 | "is-extglob": "^2.1.1" 3127 | }, 3128 | "engines": { 3129 | "node": ">=0.10.0" 3130 | } 3131 | }, 3132 | "node_modules/is-number": { 3133 | "version": "7.0.0", 3134 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 3135 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 3136 | "dev": true, 3137 | "license": "MIT", 3138 | "engines": { 3139 | "node": ">=0.12.0" 3140 | } 3141 | }, 3142 | "node_modules/is-potential-custom-element-name": { 3143 | "version": "1.0.1", 3144 | "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", 3145 | "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", 3146 | "dev": true, 3147 | "license": "MIT" 3148 | }, 3149 | "node_modules/is-reference": { 3150 | "version": "3.0.3", 3151 | "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz", 3152 | "integrity": "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==", 3153 | "dev": true, 3154 | "license": "MIT", 3155 | "dependencies": { 3156 | "@types/estree": "^1.0.6" 3157 | } 3158 | }, 3159 | "node_modules/isexe": { 3160 | "version": "2.0.0", 3161 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 3162 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", 3163 | "dev": true, 3164 | "license": "ISC" 3165 | }, 3166 | "node_modules/js-tokens": { 3167 | "version": "4.0.0", 3168 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 3169 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 3170 | "dev": true, 3171 | "license": "MIT" 3172 | }, 3173 | "node_modules/js-yaml": { 3174 | "version": "4.1.0", 3175 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", 3176 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", 3177 | "dev": true, 3178 | "license": "MIT", 3179 | "dependencies": { 3180 | "argparse": "^2.0.1" 3181 | }, 3182 | "bin": { 3183 | "js-yaml": "bin/js-yaml.js" 3184 | } 3185 | }, 3186 | "node_modules/jsdom": { 3187 | "version": "26.0.0", 3188 | "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-26.0.0.tgz", 3189 | "integrity": "sha512-BZYDGVAIriBWTpIxYzrXjv3E/4u8+/pSG5bQdIYCbNCGOvsPkDQfTVLAIXAf9ETdCpduCVTkDe2NNZ8NIwUVzw==", 3190 | "dev": true, 3191 | "license": "MIT", 3192 | "dependencies": { 3193 | "cssstyle": "^4.2.1", 3194 | "data-urls": "^5.0.0", 3195 | "decimal.js": "^10.4.3", 3196 | "form-data": "^4.0.1", 3197 | "html-encoding-sniffer": "^4.0.0", 3198 | "http-proxy-agent": "^7.0.2", 3199 | "https-proxy-agent": "^7.0.6", 3200 | "is-potential-custom-element-name": "^1.0.1", 3201 | "nwsapi": "^2.2.16", 3202 | "parse5": "^7.2.1", 3203 | "rrweb-cssom": "^0.8.0", 3204 | "saxes": "^6.0.0", 3205 | "symbol-tree": "^3.2.4", 3206 | "tough-cookie": "^5.0.0", 3207 | "w3c-xmlserializer": "^5.0.0", 3208 | "webidl-conversions": "^7.0.0", 3209 | "whatwg-encoding": "^3.1.1", 3210 | "whatwg-mimetype": "^4.0.0", 3211 | "whatwg-url": "^14.1.0", 3212 | "ws": "^8.18.0", 3213 | "xml-name-validator": "^5.0.0" 3214 | }, 3215 | "engines": { 3216 | "node": ">=18" 3217 | }, 3218 | "peerDependencies": { 3219 | "canvas": "^3.0.0" 3220 | }, 3221 | "peerDependenciesMeta": { 3222 | "canvas": { 3223 | "optional": true 3224 | } 3225 | } 3226 | }, 3227 | "node_modules/json-buffer": { 3228 | "version": "3.0.1", 3229 | "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", 3230 | "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", 3231 | "dev": true, 3232 | "license": "MIT" 3233 | }, 3234 | "node_modules/json-schema-traverse": { 3235 | "version": "0.4.1", 3236 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 3237 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 3238 | "dev": true, 3239 | "license": "MIT" 3240 | }, 3241 | "node_modules/json-stable-stringify-without-jsonify": { 3242 | "version": "1.0.1", 3243 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", 3244 | "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", 3245 | "dev": true, 3246 | "license": "MIT" 3247 | }, 3248 | "node_modules/keyv": { 3249 | "version": "4.5.4", 3250 | "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", 3251 | "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", 3252 | "dev": true, 3253 | "license": "MIT", 3254 | "dependencies": { 3255 | "json-buffer": "3.0.1" 3256 | } 3257 | }, 3258 | "node_modules/kleur": { 3259 | "version": "4.1.5", 3260 | "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", 3261 | "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", 3262 | "dev": true, 3263 | "license": "MIT", 3264 | "engines": { 3265 | "node": ">=6" 3266 | } 3267 | }, 3268 | "node_modules/known-css-properties": { 3269 | "version": "0.35.0", 3270 | "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.35.0.tgz", 3271 | "integrity": "sha512-a/RAk2BfKk+WFGhhOCAYqSiFLc34k8Mt/6NWRI4joER0EYUzXIcFivjjnoD3+XU1DggLn/tZc3DOAgke7l8a4A==", 3272 | "dev": true, 3273 | "license": "MIT" 3274 | }, 3275 | "node_modules/levn": { 3276 | "version": "0.4.1", 3277 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", 3278 | "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", 3279 | "dev": true, 3280 | "license": "MIT", 3281 | "dependencies": { 3282 | "prelude-ls": "^1.2.1", 3283 | "type-check": "~0.4.0" 3284 | }, 3285 | "engines": { 3286 | "node": ">= 0.8.0" 3287 | } 3288 | }, 3289 | "node_modules/lilconfig": { 3290 | "version": "2.1.0", 3291 | "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", 3292 | "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", 3293 | "dev": true, 3294 | "license": "MIT", 3295 | "engines": { 3296 | "node": ">=10" 3297 | } 3298 | }, 3299 | "node_modules/locate-character": { 3300 | "version": "3.0.0", 3301 | "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", 3302 | "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", 3303 | "dev": true, 3304 | "license": "MIT" 3305 | }, 3306 | "node_modules/locate-path": { 3307 | "version": "6.0.0", 3308 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", 3309 | "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", 3310 | "dev": true, 3311 | "license": "MIT", 3312 | "dependencies": { 3313 | "p-locate": "^5.0.0" 3314 | }, 3315 | "engines": { 3316 | "node": ">=10" 3317 | }, 3318 | "funding": { 3319 | "url": "https://github.com/sponsors/sindresorhus" 3320 | } 3321 | }, 3322 | "node_modules/lodash": { 3323 | "version": "4.17.21", 3324 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", 3325 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", 3326 | "dev": true, 3327 | "license": "MIT" 3328 | }, 3329 | "node_modules/lodash.merge": { 3330 | "version": "4.6.2", 3331 | "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", 3332 | "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", 3333 | "dev": true, 3334 | "license": "MIT" 3335 | }, 3336 | "node_modules/loupe": { 3337 | "version": "3.1.3", 3338 | "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.3.tgz", 3339 | "integrity": "sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==", 3340 | "dev": true, 3341 | "license": "MIT" 3342 | }, 3343 | "node_modules/lru-cache": { 3344 | "version": "10.4.3", 3345 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", 3346 | "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", 3347 | "dev": true, 3348 | "license": "ISC" 3349 | }, 3350 | "node_modules/lz-string": { 3351 | "version": "1.5.0", 3352 | "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", 3353 | "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", 3354 | "dev": true, 3355 | "license": "MIT", 3356 | "bin": { 3357 | "lz-string": "bin/bin.js" 3358 | } 3359 | }, 3360 | "node_modules/magic-string": { 3361 | "version": "0.30.17", 3362 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", 3363 | "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", 3364 | "dev": true, 3365 | "license": "MIT", 3366 | "dependencies": { 3367 | "@jridgewell/sourcemap-codec": "^1.5.0" 3368 | } 3369 | }, 3370 | "node_modules/math-intrinsics": { 3371 | "version": "1.1.0", 3372 | "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", 3373 | "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", 3374 | "dev": true, 3375 | "license": "MIT", 3376 | "engines": { 3377 | "node": ">= 0.4" 3378 | } 3379 | }, 3380 | "node_modules/merge2": { 3381 | "version": "1.4.1", 3382 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", 3383 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", 3384 | "dev": true, 3385 | "license": "MIT", 3386 | "engines": { 3387 | "node": ">= 8" 3388 | } 3389 | }, 3390 | "node_modules/micromatch": { 3391 | "version": "4.0.8", 3392 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", 3393 | "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", 3394 | "dev": true, 3395 | "license": "MIT", 3396 | "dependencies": { 3397 | "braces": "^3.0.3", 3398 | "picomatch": "^2.3.1" 3399 | }, 3400 | "engines": { 3401 | "node": ">=8.6" 3402 | } 3403 | }, 3404 | "node_modules/micromatch/node_modules/picomatch": { 3405 | "version": "2.3.1", 3406 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 3407 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 3408 | "dev": true, 3409 | "license": "MIT", 3410 | "engines": { 3411 | "node": ">=8.6" 3412 | }, 3413 | "funding": { 3414 | "url": "https://github.com/sponsors/jonschlinkert" 3415 | } 3416 | }, 3417 | "node_modules/mime-db": { 3418 | "version": "1.52.0", 3419 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", 3420 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", 3421 | "dev": true, 3422 | "license": "MIT", 3423 | "engines": { 3424 | "node": ">= 0.6" 3425 | } 3426 | }, 3427 | "node_modules/mime-types": { 3428 | "version": "2.1.35", 3429 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", 3430 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", 3431 | "dev": true, 3432 | "license": "MIT", 3433 | "dependencies": { 3434 | "mime-db": "1.52.0" 3435 | }, 3436 | "engines": { 3437 | "node": ">= 0.6" 3438 | } 3439 | }, 3440 | "node_modules/min-indent": { 3441 | "version": "1.0.1", 3442 | "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", 3443 | "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", 3444 | "dev": true, 3445 | "license": "MIT", 3446 | "engines": { 3447 | "node": ">=4" 3448 | } 3449 | }, 3450 | "node_modules/minimatch": { 3451 | "version": "3.1.2", 3452 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 3453 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 3454 | "dev": true, 3455 | "license": "ISC", 3456 | "dependencies": { 3457 | "brace-expansion": "^1.1.7" 3458 | }, 3459 | "engines": { 3460 | "node": "*" 3461 | } 3462 | }, 3463 | "node_modules/moment": { 3464 | "version": "2.30.1", 3465 | "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", 3466 | "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", 3467 | "license": "MIT", 3468 | "engines": { 3469 | "node": "*" 3470 | } 3471 | }, 3472 | "node_modules/mri": { 3473 | "version": "1.2.0", 3474 | "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", 3475 | "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", 3476 | "dev": true, 3477 | "license": "MIT", 3478 | "engines": { 3479 | "node": ">=4" 3480 | } 3481 | }, 3482 | "node_modules/mrmime": { 3483 | "version": "2.0.1", 3484 | "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", 3485 | "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", 3486 | "dev": true, 3487 | "license": "MIT", 3488 | "engines": { 3489 | "node": ">=10" 3490 | } 3491 | }, 3492 | "node_modules/ms": { 3493 | "version": "2.1.3", 3494 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 3495 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", 3496 | "dev": true, 3497 | "license": "MIT" 3498 | }, 3499 | "node_modules/nanoid": { 3500 | "version": "3.3.11", 3501 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", 3502 | "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", 3503 | "dev": true, 3504 | "funding": [ 3505 | { 3506 | "type": "github", 3507 | "url": "https://github.com/sponsors/ai" 3508 | } 3509 | ], 3510 | "license": "MIT", 3511 | "bin": { 3512 | "nanoid": "bin/nanoid.cjs" 3513 | }, 3514 | "engines": { 3515 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 3516 | } 3517 | }, 3518 | "node_modules/natural-compare": { 3519 | "version": "1.4.0", 3520 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 3521 | "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", 3522 | "dev": true, 3523 | "license": "MIT" 3524 | }, 3525 | "node_modules/nwsapi": { 3526 | "version": "2.2.19", 3527 | "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.19.tgz", 3528 | "integrity": "sha512-94bcyI3RsqiZufXjkr3ltkI86iEl+I7uiHVDtcq9wJUTwYQJ5odHDeSzkkrRzi80jJ8MaeZgqKjH1bAWAFw9bA==", 3529 | "dev": true, 3530 | "license": "MIT" 3531 | }, 3532 | "node_modules/optionator": { 3533 | "version": "0.9.4", 3534 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", 3535 | "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", 3536 | "dev": true, 3537 | "license": "MIT", 3538 | "dependencies": { 3539 | "deep-is": "^0.1.3", 3540 | "fast-levenshtein": "^2.0.6", 3541 | "levn": "^0.4.1", 3542 | "prelude-ls": "^1.2.1", 3543 | "type-check": "^0.4.0", 3544 | "word-wrap": "^1.2.5" 3545 | }, 3546 | "engines": { 3547 | "node": ">= 0.8.0" 3548 | } 3549 | }, 3550 | "node_modules/p-limit": { 3551 | "version": "3.1.0", 3552 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", 3553 | "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", 3554 | "dev": true, 3555 | "license": "MIT", 3556 | "dependencies": { 3557 | "yocto-queue": "^0.1.0" 3558 | }, 3559 | "engines": { 3560 | "node": ">=10" 3561 | }, 3562 | "funding": { 3563 | "url": "https://github.com/sponsors/sindresorhus" 3564 | } 3565 | }, 3566 | "node_modules/p-locate": { 3567 | "version": "5.0.0", 3568 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", 3569 | "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", 3570 | "dev": true, 3571 | "license": "MIT", 3572 | "dependencies": { 3573 | "p-limit": "^3.0.2" 3574 | }, 3575 | "engines": { 3576 | "node": ">=10" 3577 | }, 3578 | "funding": { 3579 | "url": "https://github.com/sponsors/sindresorhus" 3580 | } 3581 | }, 3582 | "node_modules/parent-module": { 3583 | "version": "1.0.1", 3584 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 3585 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 3586 | "dev": true, 3587 | "license": "MIT", 3588 | "dependencies": { 3589 | "callsites": "^3.0.0" 3590 | }, 3591 | "engines": { 3592 | "node": ">=6" 3593 | } 3594 | }, 3595 | "node_modules/parse5": { 3596 | "version": "7.2.1", 3597 | "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", 3598 | "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", 3599 | "dev": true, 3600 | "license": "MIT", 3601 | "dependencies": { 3602 | "entities": "^4.5.0" 3603 | }, 3604 | "funding": { 3605 | "url": "https://github.com/inikulin/parse5?sponsor=1" 3606 | } 3607 | }, 3608 | "node_modules/path-exists": { 3609 | "version": "4.0.0", 3610 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 3611 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 3612 | "dev": true, 3613 | "license": "MIT", 3614 | "engines": { 3615 | "node": ">=8" 3616 | } 3617 | }, 3618 | "node_modules/path-key": { 3619 | "version": "3.1.1", 3620 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 3621 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 3622 | "dev": true, 3623 | "license": "MIT", 3624 | "engines": { 3625 | "node": ">=8" 3626 | } 3627 | }, 3628 | "node_modules/pathe": { 3629 | "version": "2.0.3", 3630 | "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", 3631 | "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", 3632 | "dev": true, 3633 | "license": "MIT" 3634 | }, 3635 | "node_modules/pathval": { 3636 | "version": "2.0.0", 3637 | "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", 3638 | "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", 3639 | "dev": true, 3640 | "license": "MIT", 3641 | "engines": { 3642 | "node": ">= 14.16" 3643 | } 3644 | }, 3645 | "node_modules/picocolors": { 3646 | "version": "1.1.1", 3647 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", 3648 | "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", 3649 | "dev": true, 3650 | "license": "ISC" 3651 | }, 3652 | "node_modules/picomatch": { 3653 | "version": "4.0.2", 3654 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", 3655 | "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", 3656 | "dev": true, 3657 | "license": "MIT", 3658 | "optional": true, 3659 | "peer": true, 3660 | "engines": { 3661 | "node": ">=12" 3662 | }, 3663 | "funding": { 3664 | "url": "https://github.com/sponsors/jonschlinkert" 3665 | } 3666 | }, 3667 | "node_modules/postcss": { 3668 | "version": "8.5.3", 3669 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", 3670 | "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", 3671 | "dev": true, 3672 | "funding": [ 3673 | { 3674 | "type": "opencollective", 3675 | "url": "https://opencollective.com/postcss/" 3676 | }, 3677 | { 3678 | "type": "tidelift", 3679 | "url": "https://tidelift.com/funding/github/npm/postcss" 3680 | }, 3681 | { 3682 | "type": "github", 3683 | "url": "https://github.com/sponsors/ai" 3684 | } 3685 | ], 3686 | "license": "MIT", 3687 | "dependencies": { 3688 | "nanoid": "^3.3.8", 3689 | "picocolors": "^1.1.1", 3690 | "source-map-js": "^1.2.1" 3691 | }, 3692 | "engines": { 3693 | "node": "^10 || ^12 || >=14" 3694 | } 3695 | }, 3696 | "node_modules/postcss-load-config": { 3697 | "version": "3.1.4", 3698 | "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", 3699 | "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", 3700 | "dev": true, 3701 | "license": "MIT", 3702 | "dependencies": { 3703 | "lilconfig": "^2.0.5", 3704 | "yaml": "^1.10.2" 3705 | }, 3706 | "engines": { 3707 | "node": ">= 10" 3708 | }, 3709 | "funding": { 3710 | "type": "opencollective", 3711 | "url": "https://opencollective.com/postcss/" 3712 | }, 3713 | "peerDependencies": { 3714 | "postcss": ">=8.0.9", 3715 | "ts-node": ">=9.0.0" 3716 | }, 3717 | "peerDependenciesMeta": { 3718 | "postcss": { 3719 | "optional": true 3720 | }, 3721 | "ts-node": { 3722 | "optional": true 3723 | } 3724 | } 3725 | }, 3726 | "node_modules/postcss-load-config/node_modules/yaml": { 3727 | "version": "1.10.2", 3728 | "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", 3729 | "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", 3730 | "dev": true, 3731 | "license": "ISC", 3732 | "engines": { 3733 | "node": ">= 6" 3734 | } 3735 | }, 3736 | "node_modules/postcss-safe-parser": { 3737 | "version": "7.0.1", 3738 | "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.1.tgz", 3739 | "integrity": "sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==", 3740 | "dev": true, 3741 | "funding": [ 3742 | { 3743 | "type": "opencollective", 3744 | "url": "https://opencollective.com/postcss/" 3745 | }, 3746 | { 3747 | "type": "tidelift", 3748 | "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser" 3749 | }, 3750 | { 3751 | "type": "github", 3752 | "url": "https://github.com/sponsors/ai" 3753 | } 3754 | ], 3755 | "license": "MIT", 3756 | "engines": { 3757 | "node": ">=18.0" 3758 | }, 3759 | "peerDependencies": { 3760 | "postcss": "^8.4.31" 3761 | } 3762 | }, 3763 | "node_modules/postcss-scss": { 3764 | "version": "4.0.9", 3765 | "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.9.tgz", 3766 | "integrity": "sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==", 3767 | "dev": true, 3768 | "funding": [ 3769 | { 3770 | "type": "opencollective", 3771 | "url": "https://opencollective.com/postcss/" 3772 | }, 3773 | { 3774 | "type": "tidelift", 3775 | "url": "https://tidelift.com/funding/github/npm/postcss-scss" 3776 | }, 3777 | { 3778 | "type": "github", 3779 | "url": "https://github.com/sponsors/ai" 3780 | } 3781 | ], 3782 | "license": "MIT", 3783 | "engines": { 3784 | "node": ">=12.0" 3785 | }, 3786 | "peerDependencies": { 3787 | "postcss": "^8.4.29" 3788 | } 3789 | }, 3790 | "node_modules/postcss-selector-parser": { 3791 | "version": "7.1.0", 3792 | "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", 3793 | "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", 3794 | "dev": true, 3795 | "license": "MIT", 3796 | "dependencies": { 3797 | "cssesc": "^3.0.0", 3798 | "util-deprecate": "^1.0.2" 3799 | }, 3800 | "engines": { 3801 | "node": ">=4" 3802 | } 3803 | }, 3804 | "node_modules/prelude-ls": { 3805 | "version": "1.2.1", 3806 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", 3807 | "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", 3808 | "dev": true, 3809 | "license": "MIT", 3810 | "engines": { 3811 | "node": ">= 0.8.0" 3812 | } 3813 | }, 3814 | "node_modules/prettier": { 3815 | "version": "3.5.3", 3816 | "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", 3817 | "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", 3818 | "dev": true, 3819 | "license": "MIT", 3820 | "bin": { 3821 | "prettier": "bin/prettier.cjs" 3822 | }, 3823 | "engines": { 3824 | "node": ">=14" 3825 | }, 3826 | "funding": { 3827 | "url": "https://github.com/prettier/prettier?sponsor=1" 3828 | } 3829 | }, 3830 | "node_modules/prettier-plugin-svelte": { 3831 | "version": "3.3.3", 3832 | "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-3.3.3.tgz", 3833 | "integrity": "sha512-yViK9zqQ+H2qZD1w/bH7W8i+bVfKrD8GIFjkFe4Thl6kCT9SlAsXVNmt3jCvQOCsnOhcvYgsoVlRV/Eu6x5nNw==", 3834 | "dev": true, 3835 | "license": "MIT", 3836 | "peerDependencies": { 3837 | "prettier": "^3.0.0", 3838 | "svelte": "^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0" 3839 | } 3840 | }, 3841 | "node_modules/pretty-format": { 3842 | "version": "27.5.1", 3843 | "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", 3844 | "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", 3845 | "dev": true, 3846 | "license": "MIT", 3847 | "dependencies": { 3848 | "ansi-regex": "^5.0.1", 3849 | "ansi-styles": "^5.0.0", 3850 | "react-is": "^17.0.1" 3851 | }, 3852 | "engines": { 3853 | "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" 3854 | } 3855 | }, 3856 | "node_modules/pretty-format/node_modules/ansi-styles": { 3857 | "version": "5.2.0", 3858 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", 3859 | "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", 3860 | "dev": true, 3861 | "license": "MIT", 3862 | "engines": { 3863 | "node": ">=10" 3864 | }, 3865 | "funding": { 3866 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 3867 | } 3868 | }, 3869 | "node_modules/punycode": { 3870 | "version": "2.3.1", 3871 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", 3872 | "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", 3873 | "dev": true, 3874 | "license": "MIT", 3875 | "engines": { 3876 | "node": ">=6" 3877 | } 3878 | }, 3879 | "node_modules/queue-microtask": { 3880 | "version": "1.2.3", 3881 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 3882 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 3883 | "dev": true, 3884 | "funding": [ 3885 | { 3886 | "type": "github", 3887 | "url": "https://github.com/sponsors/feross" 3888 | }, 3889 | { 3890 | "type": "patreon", 3891 | "url": "https://www.patreon.com/feross" 3892 | }, 3893 | { 3894 | "type": "consulting", 3895 | "url": "https://feross.org/support" 3896 | } 3897 | ], 3898 | "license": "MIT" 3899 | }, 3900 | "node_modules/react-is": { 3901 | "version": "17.0.2", 3902 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", 3903 | "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", 3904 | "dev": true, 3905 | "license": "MIT" 3906 | }, 3907 | "node_modules/readdirp": { 3908 | "version": "4.1.2", 3909 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", 3910 | "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", 3911 | "dev": true, 3912 | "license": "MIT", 3913 | "engines": { 3914 | "node": ">= 14.18.0" 3915 | }, 3916 | "funding": { 3917 | "type": "individual", 3918 | "url": "https://paulmillr.com/funding/" 3919 | } 3920 | }, 3921 | "node_modules/redent": { 3922 | "version": "3.0.0", 3923 | "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", 3924 | "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", 3925 | "dev": true, 3926 | "license": "MIT", 3927 | "dependencies": { 3928 | "indent-string": "^4.0.0", 3929 | "strip-indent": "^3.0.0" 3930 | }, 3931 | "engines": { 3932 | "node": ">=8" 3933 | } 3934 | }, 3935 | "node_modules/regenerator-runtime": { 3936 | "version": "0.14.1", 3937 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", 3938 | "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", 3939 | "dev": true, 3940 | "license": "MIT" 3941 | }, 3942 | "node_modules/resolve-from": { 3943 | "version": "4.0.0", 3944 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 3945 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 3946 | "dev": true, 3947 | "license": "MIT", 3948 | "engines": { 3949 | "node": ">=4" 3950 | } 3951 | }, 3952 | "node_modules/reusify": { 3953 | "version": "1.1.0", 3954 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", 3955 | "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", 3956 | "dev": true, 3957 | "license": "MIT", 3958 | "engines": { 3959 | "iojs": ">=1.0.0", 3960 | "node": ">=0.10.0" 3961 | } 3962 | }, 3963 | "node_modules/rollup": { 3964 | "version": "4.36.0", 3965 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.36.0.tgz", 3966 | "integrity": "sha512-zwATAXNQxUcd40zgtQG0ZafcRK4g004WtEl7kbuhTWPvf07PsfohXl39jVUvPF7jvNAIkKPQ2XrsDlWuxBd++Q==", 3967 | "dev": true, 3968 | "license": "MIT", 3969 | "dependencies": { 3970 | "@types/estree": "1.0.6" 3971 | }, 3972 | "bin": { 3973 | "rollup": "dist/bin/rollup" 3974 | }, 3975 | "engines": { 3976 | "node": ">=18.0.0", 3977 | "npm": ">=8.0.0" 3978 | }, 3979 | "optionalDependencies": { 3980 | "@rollup/rollup-android-arm-eabi": "4.36.0", 3981 | "@rollup/rollup-android-arm64": "4.36.0", 3982 | "@rollup/rollup-darwin-arm64": "4.36.0", 3983 | "@rollup/rollup-darwin-x64": "4.36.0", 3984 | "@rollup/rollup-freebsd-arm64": "4.36.0", 3985 | "@rollup/rollup-freebsd-x64": "4.36.0", 3986 | "@rollup/rollup-linux-arm-gnueabihf": "4.36.0", 3987 | "@rollup/rollup-linux-arm-musleabihf": "4.36.0", 3988 | "@rollup/rollup-linux-arm64-gnu": "4.36.0", 3989 | "@rollup/rollup-linux-arm64-musl": "4.36.0", 3990 | "@rollup/rollup-linux-loongarch64-gnu": "4.36.0", 3991 | "@rollup/rollup-linux-powerpc64le-gnu": "4.36.0", 3992 | "@rollup/rollup-linux-riscv64-gnu": "4.36.0", 3993 | "@rollup/rollup-linux-s390x-gnu": "4.36.0", 3994 | "@rollup/rollup-linux-x64-gnu": "4.36.0", 3995 | "@rollup/rollup-linux-x64-musl": "4.36.0", 3996 | "@rollup/rollup-win32-arm64-msvc": "4.36.0", 3997 | "@rollup/rollup-win32-ia32-msvc": "4.36.0", 3998 | "@rollup/rollup-win32-x64-msvc": "4.36.0", 3999 | "fsevents": "~2.3.2" 4000 | } 4001 | }, 4002 | "node_modules/rrweb-cssom": { 4003 | "version": "0.8.0", 4004 | "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz", 4005 | "integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==", 4006 | "dev": true, 4007 | "license": "MIT" 4008 | }, 4009 | "node_modules/run-parallel": { 4010 | "version": "1.2.0", 4011 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", 4012 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 4013 | "dev": true, 4014 | "funding": [ 4015 | { 4016 | "type": "github", 4017 | "url": "https://github.com/sponsors/feross" 4018 | }, 4019 | { 4020 | "type": "patreon", 4021 | "url": "https://www.patreon.com/feross" 4022 | }, 4023 | { 4024 | "type": "consulting", 4025 | "url": "https://feross.org/support" 4026 | } 4027 | ], 4028 | "license": "MIT", 4029 | "dependencies": { 4030 | "queue-microtask": "^1.2.2" 4031 | } 4032 | }, 4033 | "node_modules/sade": { 4034 | "version": "1.8.1", 4035 | "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", 4036 | "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", 4037 | "dev": true, 4038 | "license": "MIT", 4039 | "dependencies": { 4040 | "mri": "^1.1.0" 4041 | }, 4042 | "engines": { 4043 | "node": ">=6" 4044 | } 4045 | }, 4046 | "node_modules/safer-buffer": { 4047 | "version": "2.1.2", 4048 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 4049 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", 4050 | "dev": true, 4051 | "license": "MIT" 4052 | }, 4053 | "node_modules/saxes": { 4054 | "version": "6.0.0", 4055 | "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", 4056 | "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", 4057 | "dev": true, 4058 | "license": "ISC", 4059 | "dependencies": { 4060 | "xmlchars": "^2.2.0" 4061 | }, 4062 | "engines": { 4063 | "node": ">=v12.22.7" 4064 | } 4065 | }, 4066 | "node_modules/semver": { 4067 | "version": "7.7.1", 4068 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", 4069 | "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", 4070 | "dev": true, 4071 | "license": "ISC", 4072 | "bin": { 4073 | "semver": "bin/semver.js" 4074 | }, 4075 | "engines": { 4076 | "node": ">=10" 4077 | } 4078 | }, 4079 | "node_modules/set-cookie-parser": { 4080 | "version": "2.7.1", 4081 | "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", 4082 | "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", 4083 | "dev": true, 4084 | "license": "MIT" 4085 | }, 4086 | "node_modules/shebang-command": { 4087 | "version": "2.0.0", 4088 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 4089 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 4090 | "dev": true, 4091 | "license": "MIT", 4092 | "dependencies": { 4093 | "shebang-regex": "^3.0.0" 4094 | }, 4095 | "engines": { 4096 | "node": ">=8" 4097 | } 4098 | }, 4099 | "node_modules/shebang-regex": { 4100 | "version": "3.0.0", 4101 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 4102 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 4103 | "dev": true, 4104 | "license": "MIT", 4105 | "engines": { 4106 | "node": ">=8" 4107 | } 4108 | }, 4109 | "node_modules/siginfo": { 4110 | "version": "2.0.0", 4111 | "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", 4112 | "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", 4113 | "dev": true, 4114 | "license": "ISC" 4115 | }, 4116 | "node_modules/sirv": { 4117 | "version": "3.0.1", 4118 | "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.1.tgz", 4119 | "integrity": "sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==", 4120 | "dev": true, 4121 | "license": "MIT", 4122 | "dependencies": { 4123 | "@polka/url": "^1.0.0-next.24", 4124 | "mrmime": "^2.0.0", 4125 | "totalist": "^3.0.0" 4126 | }, 4127 | "engines": { 4128 | "node": ">=18" 4129 | } 4130 | }, 4131 | "node_modules/source-map-js": { 4132 | "version": "1.2.1", 4133 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", 4134 | "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", 4135 | "dev": true, 4136 | "license": "BSD-3-Clause", 4137 | "engines": { 4138 | "node": ">=0.10.0" 4139 | } 4140 | }, 4141 | "node_modules/stackback": { 4142 | "version": "0.0.2", 4143 | "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", 4144 | "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", 4145 | "dev": true, 4146 | "license": "MIT" 4147 | }, 4148 | "node_modules/std-env": { 4149 | "version": "3.8.1", 4150 | "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.8.1.tgz", 4151 | "integrity": "sha512-vj5lIj3Mwf9D79hBkltk5qmkFI+biIKWS2IBxEyEU3AX1tUf7AoL8nSazCOiiqQsGKIq01SClsKEzweu34uwvA==", 4152 | "dev": true, 4153 | "license": "MIT" 4154 | }, 4155 | "node_modules/strip-indent": { 4156 | "version": "3.0.0", 4157 | "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", 4158 | "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", 4159 | "dev": true, 4160 | "license": "MIT", 4161 | "dependencies": { 4162 | "min-indent": "^1.0.0" 4163 | }, 4164 | "engines": { 4165 | "node": ">=8" 4166 | } 4167 | }, 4168 | "node_modules/strip-json-comments": { 4169 | "version": "3.1.1", 4170 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", 4171 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", 4172 | "dev": true, 4173 | "license": "MIT", 4174 | "engines": { 4175 | "node": ">=8" 4176 | }, 4177 | "funding": { 4178 | "url": "https://github.com/sponsors/sindresorhus" 4179 | } 4180 | }, 4181 | "node_modules/supports-color": { 4182 | "version": "7.2.0", 4183 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 4184 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 4185 | "dev": true, 4186 | "license": "MIT", 4187 | "dependencies": { 4188 | "has-flag": "^4.0.0" 4189 | }, 4190 | "engines": { 4191 | "node": ">=8" 4192 | } 4193 | }, 4194 | "node_modules/svelte": { 4195 | "version": "5.23.2", 4196 | "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.23.2.tgz", 4197 | "integrity": "sha512-PHP1o0aYJNMatiZ+0nq1W/Z1W1/l5Z94B9nhMIo7gsuTBbxC454g4O5SQMjQpZBUZi5ANYUrXJOE4gPzcN/VQw==", 4198 | "dev": true, 4199 | "license": "MIT", 4200 | "dependencies": { 4201 | "@ampproject/remapping": "^2.3.0", 4202 | "@jridgewell/sourcemap-codec": "^1.5.0", 4203 | "@sveltejs/acorn-typescript": "^1.0.5", 4204 | "@types/estree": "^1.0.5", 4205 | "acorn": "^8.12.1", 4206 | "aria-query": "^5.3.1", 4207 | "axobject-query": "^4.1.0", 4208 | "clsx": "^2.1.1", 4209 | "esm-env": "^1.2.1", 4210 | "esrap": "^1.4.3", 4211 | "is-reference": "^3.0.3", 4212 | "locate-character": "^3.0.0", 4213 | "magic-string": "^0.30.11", 4214 | "zimmerframe": "^1.1.2" 4215 | }, 4216 | "engines": { 4217 | "node": ">=18" 4218 | } 4219 | }, 4220 | "node_modules/svelte-check": { 4221 | "version": "4.1.5", 4222 | "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-4.1.5.tgz", 4223 | "integrity": "sha512-Gb0T2IqBNe1tLB9EB1Qh+LOe+JB8wt2/rNBDGvkxQVvk8vNeAoG+vZgFB/3P5+zC7RWlyBlzm9dVjZFph/maIg==", 4224 | "dev": true, 4225 | "license": "MIT", 4226 | "dependencies": { 4227 | "@jridgewell/trace-mapping": "^0.3.25", 4228 | "chokidar": "^4.0.1", 4229 | "fdir": "^6.2.0", 4230 | "picocolors": "^1.0.0", 4231 | "sade": "^1.7.4" 4232 | }, 4233 | "bin": { 4234 | "svelte-check": "bin/svelte-check" 4235 | }, 4236 | "engines": { 4237 | "node": ">= 18.0.0" 4238 | }, 4239 | "peerDependencies": { 4240 | "svelte": "^4.0.0 || ^5.0.0-next.0", 4241 | "typescript": ">=5.0.0" 4242 | } 4243 | }, 4244 | "node_modules/svelte-eslint-parser": { 4245 | "version": "1.1.0", 4246 | "resolved": "https://registry.npmjs.org/svelte-eslint-parser/-/svelte-eslint-parser-1.1.0.tgz", 4247 | "integrity": "sha512-JP0v/wzDXWxza6c8K9ZjKKHYfgt0KidlbWx1e9n9UV4q+o28GTkk71fR0IDZDmLUDYs3vSq0+Tm9fofDqzGe1w==", 4248 | "dev": true, 4249 | "license": "MIT", 4250 | "dependencies": { 4251 | "eslint-scope": "^8.2.0", 4252 | "eslint-visitor-keys": "^4.0.0", 4253 | "espree": "^10.0.0", 4254 | "postcss": "^8.4.49", 4255 | "postcss-scss": "^4.0.9", 4256 | "postcss-selector-parser": "^7.0.0" 4257 | }, 4258 | "engines": { 4259 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 4260 | }, 4261 | "funding": { 4262 | "url": "https://github.com/sponsors/ota-meshi" 4263 | }, 4264 | "peerDependencies": { 4265 | "svelte": "^3.37.0 || ^4.0.0 || ^5.0.0" 4266 | }, 4267 | "peerDependenciesMeta": { 4268 | "svelte": { 4269 | "optional": true 4270 | } 4271 | } 4272 | }, 4273 | "node_modules/symbol-tree": { 4274 | "version": "3.2.4", 4275 | "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", 4276 | "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", 4277 | "dev": true, 4278 | "license": "MIT" 4279 | }, 4280 | "node_modules/tinybench": { 4281 | "version": "2.9.0", 4282 | "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", 4283 | "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", 4284 | "dev": true, 4285 | "license": "MIT" 4286 | }, 4287 | "node_modules/tinyexec": { 4288 | "version": "0.3.2", 4289 | "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", 4290 | "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", 4291 | "dev": true, 4292 | "license": "MIT" 4293 | }, 4294 | "node_modules/tinypool": { 4295 | "version": "1.0.2", 4296 | "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.2.tgz", 4297 | "integrity": "sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==", 4298 | "dev": true, 4299 | "license": "MIT", 4300 | "engines": { 4301 | "node": "^18.0.0 || >=20.0.0" 4302 | } 4303 | }, 4304 | "node_modules/tinyrainbow": { 4305 | "version": "2.0.0", 4306 | "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz", 4307 | "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==", 4308 | "dev": true, 4309 | "license": "MIT", 4310 | "engines": { 4311 | "node": ">=14.0.0" 4312 | } 4313 | }, 4314 | "node_modules/tinyspy": { 4315 | "version": "3.0.2", 4316 | "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz", 4317 | "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==", 4318 | "dev": true, 4319 | "license": "MIT", 4320 | "engines": { 4321 | "node": ">=14.0.0" 4322 | } 4323 | }, 4324 | "node_modules/tldts": { 4325 | "version": "6.1.84", 4326 | "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.84.tgz", 4327 | "integrity": "sha512-aRGIbCIF3teodtUFAYSdQONVmDRy21REM3o6JnqWn5ZkQBJJ4gHxhw6OfwQ+WkSAi3ASamrS4N4nyazWx6uTYg==", 4328 | "dev": true, 4329 | "license": "MIT", 4330 | "dependencies": { 4331 | "tldts-core": "^6.1.84" 4332 | }, 4333 | "bin": { 4334 | "tldts": "bin/cli.js" 4335 | } 4336 | }, 4337 | "node_modules/tldts-core": { 4338 | "version": "6.1.84", 4339 | "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.84.tgz", 4340 | "integrity": "sha512-NaQa1W76W2aCGjXybvnMYzGSM4x8fvG2AN/pla7qxcg0ZHbooOPhA8kctmOZUDfZyhDL27OGNbwAeig8P4p1vg==", 4341 | "dev": true, 4342 | "license": "MIT" 4343 | }, 4344 | "node_modules/to-regex-range": { 4345 | "version": "5.0.1", 4346 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 4347 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 4348 | "dev": true, 4349 | "license": "MIT", 4350 | "dependencies": { 4351 | "is-number": "^7.0.0" 4352 | }, 4353 | "engines": { 4354 | "node": ">=8.0" 4355 | } 4356 | }, 4357 | "node_modules/totalist": { 4358 | "version": "3.0.1", 4359 | "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", 4360 | "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", 4361 | "dev": true, 4362 | "license": "MIT", 4363 | "engines": { 4364 | "node": ">=6" 4365 | } 4366 | }, 4367 | "node_modules/tough-cookie": { 4368 | "version": "5.1.2", 4369 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz", 4370 | "integrity": "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==", 4371 | "dev": true, 4372 | "license": "BSD-3-Clause", 4373 | "dependencies": { 4374 | "tldts": "^6.1.32" 4375 | }, 4376 | "engines": { 4377 | "node": ">=16" 4378 | } 4379 | }, 4380 | "node_modules/tr46": { 4381 | "version": "5.1.0", 4382 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.0.tgz", 4383 | "integrity": "sha512-IUWnUK7ADYR5Sl1fZlO1INDUhVhatWl7BtJWsIhwJ0UAK7ilzzIa8uIqOO/aYVWHZPJkKbEL+362wrzoeRF7bw==", 4384 | "dev": true, 4385 | "license": "MIT", 4386 | "dependencies": { 4387 | "punycode": "^2.3.1" 4388 | }, 4389 | "engines": { 4390 | "node": ">=18" 4391 | } 4392 | }, 4393 | "node_modules/ts-api-utils": { 4394 | "version": "2.0.1", 4395 | "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.1.tgz", 4396 | "integrity": "sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==", 4397 | "dev": true, 4398 | "license": "MIT", 4399 | "engines": { 4400 | "node": ">=18.12" 4401 | }, 4402 | "peerDependencies": { 4403 | "typescript": ">=4.8.4" 4404 | } 4405 | }, 4406 | "node_modules/type-check": { 4407 | "version": "0.4.0", 4408 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", 4409 | "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", 4410 | "dev": true, 4411 | "license": "MIT", 4412 | "dependencies": { 4413 | "prelude-ls": "^1.2.1" 4414 | }, 4415 | "engines": { 4416 | "node": ">= 0.8.0" 4417 | } 4418 | }, 4419 | "node_modules/typescript": { 4420 | "version": "5.8.2", 4421 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz", 4422 | "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==", 4423 | "dev": true, 4424 | "license": "Apache-2.0", 4425 | "bin": { 4426 | "tsc": "bin/tsc", 4427 | "tsserver": "bin/tsserver" 4428 | }, 4429 | "engines": { 4430 | "node": ">=14.17" 4431 | } 4432 | }, 4433 | "node_modules/typescript-eslint": { 4434 | "version": "8.26.1", 4435 | "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.26.1.tgz", 4436 | "integrity": "sha512-t/oIs9mYyrwZGRpDv3g+3K6nZ5uhKEMt2oNmAPwaY4/ye0+EH4nXIPYNtkYFS6QHm+1DFg34DbglYBz5P9Xysg==", 4437 | "dev": true, 4438 | "license": "MIT", 4439 | "dependencies": { 4440 | "@typescript-eslint/eslint-plugin": "8.26.1", 4441 | "@typescript-eslint/parser": "8.26.1", 4442 | "@typescript-eslint/utils": "8.26.1" 4443 | }, 4444 | "engines": { 4445 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 4446 | }, 4447 | "funding": { 4448 | "type": "opencollective", 4449 | "url": "https://opencollective.com/typescript-eslint" 4450 | }, 4451 | "peerDependencies": { 4452 | "eslint": "^8.57.0 || ^9.0.0", 4453 | "typescript": ">=4.8.4 <5.9.0" 4454 | } 4455 | }, 4456 | "node_modules/uri-js": { 4457 | "version": "4.4.1", 4458 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", 4459 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 4460 | "dev": true, 4461 | "license": "BSD-2-Clause", 4462 | "dependencies": { 4463 | "punycode": "^2.1.0" 4464 | } 4465 | }, 4466 | "node_modules/util-deprecate": { 4467 | "version": "1.0.2", 4468 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 4469 | "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", 4470 | "dev": true, 4471 | "license": "MIT" 4472 | }, 4473 | "node_modules/vite": { 4474 | "version": "6.2.2", 4475 | "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.2.tgz", 4476 | "integrity": "sha512-yW7PeMM+LkDzc7CgJuRLMW2Jz0FxMOsVJ8Lv3gpgW9WLcb9cTW+121UEr1hvmfR7w3SegR5ItvYyzVz1vxNJgQ==", 4477 | "dev": true, 4478 | "license": "MIT", 4479 | "dependencies": { 4480 | "esbuild": "^0.25.0", 4481 | "postcss": "^8.5.3", 4482 | "rollup": "^4.30.1" 4483 | }, 4484 | "bin": { 4485 | "vite": "bin/vite.js" 4486 | }, 4487 | "engines": { 4488 | "node": "^18.0.0 || ^20.0.0 || >=22.0.0" 4489 | }, 4490 | "funding": { 4491 | "url": "https://github.com/vitejs/vite?sponsor=1" 4492 | }, 4493 | "optionalDependencies": { 4494 | "fsevents": "~2.3.3" 4495 | }, 4496 | "peerDependencies": { 4497 | "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", 4498 | "jiti": ">=1.21.0", 4499 | "less": "*", 4500 | "lightningcss": "^1.21.0", 4501 | "sass": "*", 4502 | "sass-embedded": "*", 4503 | "stylus": "*", 4504 | "sugarss": "*", 4505 | "terser": "^5.16.0", 4506 | "tsx": "^4.8.1", 4507 | "yaml": "^2.4.2" 4508 | }, 4509 | "peerDependenciesMeta": { 4510 | "@types/node": { 4511 | "optional": true 4512 | }, 4513 | "jiti": { 4514 | "optional": true 4515 | }, 4516 | "less": { 4517 | "optional": true 4518 | }, 4519 | "lightningcss": { 4520 | "optional": true 4521 | }, 4522 | "sass": { 4523 | "optional": true 4524 | }, 4525 | "sass-embedded": { 4526 | "optional": true 4527 | }, 4528 | "stylus": { 4529 | "optional": true 4530 | }, 4531 | "sugarss": { 4532 | "optional": true 4533 | }, 4534 | "terser": { 4535 | "optional": true 4536 | }, 4537 | "tsx": { 4538 | "optional": true 4539 | }, 4540 | "yaml": { 4541 | "optional": true 4542 | } 4543 | } 4544 | }, 4545 | "node_modules/vite-node": { 4546 | "version": "3.0.9", 4547 | "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.0.9.tgz", 4548 | "integrity": "sha512-w3Gdx7jDcuT9cNn9jExXgOyKmf5UOTb6WMHz8LGAm54eS1Elf5OuBhCxl6zJxGhEeIkgsE1WbHuoL0mj/UXqXg==", 4549 | "dev": true, 4550 | "license": "MIT", 4551 | "dependencies": { 4552 | "cac": "^6.7.14", 4553 | "debug": "^4.4.0", 4554 | "es-module-lexer": "^1.6.0", 4555 | "pathe": "^2.0.3", 4556 | "vite": "^5.0.0 || ^6.0.0" 4557 | }, 4558 | "bin": { 4559 | "vite-node": "vite-node.mjs" 4560 | }, 4561 | "engines": { 4562 | "node": "^18.0.0 || ^20.0.0 || >=22.0.0" 4563 | }, 4564 | "funding": { 4565 | "url": "https://opencollective.com/vitest" 4566 | } 4567 | }, 4568 | "node_modules/vitefu": { 4569 | "version": "1.0.6", 4570 | "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.0.6.tgz", 4571 | "integrity": "sha512-+Rex1GlappUyNN6UfwbVZne/9cYC4+R2XDk9xkNXBKMw6HQagdX9PgZ8V2v1WUSK1wfBLp7qbI1+XSNIlB1xmA==", 4572 | "dev": true, 4573 | "license": "MIT", 4574 | "workspaces": [ 4575 | "tests/deps/*", 4576 | "tests/projects/*" 4577 | ], 4578 | "peerDependencies": { 4579 | "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" 4580 | }, 4581 | "peerDependenciesMeta": { 4582 | "vite": { 4583 | "optional": true 4584 | } 4585 | } 4586 | }, 4587 | "node_modules/vitest": { 4588 | "version": "3.0.9", 4589 | "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.0.9.tgz", 4590 | "integrity": "sha512-BbcFDqNyBlfSpATmTtXOAOj71RNKDDvjBM/uPfnxxVGrG+FSH2RQIwgeEngTaTkuU/h0ScFvf+tRcKfYXzBybQ==", 4591 | "dev": true, 4592 | "license": "MIT", 4593 | "dependencies": { 4594 | "@vitest/expect": "3.0.9", 4595 | "@vitest/mocker": "3.0.9", 4596 | "@vitest/pretty-format": "^3.0.9", 4597 | "@vitest/runner": "3.0.9", 4598 | "@vitest/snapshot": "3.0.9", 4599 | "@vitest/spy": "3.0.9", 4600 | "@vitest/utils": "3.0.9", 4601 | "chai": "^5.2.0", 4602 | "debug": "^4.4.0", 4603 | "expect-type": "^1.1.0", 4604 | "magic-string": "^0.30.17", 4605 | "pathe": "^2.0.3", 4606 | "std-env": "^3.8.0", 4607 | "tinybench": "^2.9.0", 4608 | "tinyexec": "^0.3.2", 4609 | "tinypool": "^1.0.2", 4610 | "tinyrainbow": "^2.0.0", 4611 | "vite": "^5.0.0 || ^6.0.0", 4612 | "vite-node": "3.0.9", 4613 | "why-is-node-running": "^2.3.0" 4614 | }, 4615 | "bin": { 4616 | "vitest": "vitest.mjs" 4617 | }, 4618 | "engines": { 4619 | "node": "^18.0.0 || ^20.0.0 || >=22.0.0" 4620 | }, 4621 | "funding": { 4622 | "url": "https://opencollective.com/vitest" 4623 | }, 4624 | "peerDependencies": { 4625 | "@edge-runtime/vm": "*", 4626 | "@types/debug": "^4.1.12", 4627 | "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", 4628 | "@vitest/browser": "3.0.9", 4629 | "@vitest/ui": "3.0.9", 4630 | "happy-dom": "*", 4631 | "jsdom": "*" 4632 | }, 4633 | "peerDependenciesMeta": { 4634 | "@edge-runtime/vm": { 4635 | "optional": true 4636 | }, 4637 | "@types/debug": { 4638 | "optional": true 4639 | }, 4640 | "@types/node": { 4641 | "optional": true 4642 | }, 4643 | "@vitest/browser": { 4644 | "optional": true 4645 | }, 4646 | "@vitest/ui": { 4647 | "optional": true 4648 | }, 4649 | "happy-dom": { 4650 | "optional": true 4651 | }, 4652 | "jsdom": { 4653 | "optional": true 4654 | } 4655 | } 4656 | }, 4657 | "node_modules/w3c-xmlserializer": { 4658 | "version": "5.0.0", 4659 | "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", 4660 | "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", 4661 | "dev": true, 4662 | "license": "MIT", 4663 | "dependencies": { 4664 | "xml-name-validator": "^5.0.0" 4665 | }, 4666 | "engines": { 4667 | "node": ">=18" 4668 | } 4669 | }, 4670 | "node_modules/webidl-conversions": { 4671 | "version": "7.0.0", 4672 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", 4673 | "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", 4674 | "dev": true, 4675 | "license": "BSD-2-Clause", 4676 | "engines": { 4677 | "node": ">=12" 4678 | } 4679 | }, 4680 | "node_modules/whatwg-encoding": { 4681 | "version": "3.1.1", 4682 | "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", 4683 | "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", 4684 | "dev": true, 4685 | "license": "MIT", 4686 | "dependencies": { 4687 | "iconv-lite": "0.6.3" 4688 | }, 4689 | "engines": { 4690 | "node": ">=18" 4691 | } 4692 | }, 4693 | "node_modules/whatwg-mimetype": { 4694 | "version": "4.0.0", 4695 | "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", 4696 | "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", 4697 | "dev": true, 4698 | "license": "MIT", 4699 | "engines": { 4700 | "node": ">=18" 4701 | } 4702 | }, 4703 | "node_modules/whatwg-url": { 4704 | "version": "14.2.0", 4705 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz", 4706 | "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==", 4707 | "dev": true, 4708 | "license": "MIT", 4709 | "dependencies": { 4710 | "tr46": "^5.1.0", 4711 | "webidl-conversions": "^7.0.0" 4712 | }, 4713 | "engines": { 4714 | "node": ">=18" 4715 | } 4716 | }, 4717 | "node_modules/which": { 4718 | "version": "2.0.2", 4719 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 4720 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 4721 | "dev": true, 4722 | "license": "ISC", 4723 | "dependencies": { 4724 | "isexe": "^2.0.0" 4725 | }, 4726 | "bin": { 4727 | "node-which": "bin/node-which" 4728 | }, 4729 | "engines": { 4730 | "node": ">= 8" 4731 | } 4732 | }, 4733 | "node_modules/why-is-node-running": { 4734 | "version": "2.3.0", 4735 | "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", 4736 | "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", 4737 | "dev": true, 4738 | "license": "MIT", 4739 | "dependencies": { 4740 | "siginfo": "^2.0.0", 4741 | "stackback": "0.0.2" 4742 | }, 4743 | "bin": { 4744 | "why-is-node-running": "cli.js" 4745 | }, 4746 | "engines": { 4747 | "node": ">=8" 4748 | } 4749 | }, 4750 | "node_modules/word-wrap": { 4751 | "version": "1.2.5", 4752 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", 4753 | "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", 4754 | "dev": true, 4755 | "license": "MIT", 4756 | "engines": { 4757 | "node": ">=0.10.0" 4758 | } 4759 | }, 4760 | "node_modules/ws": { 4761 | "version": "8.18.1", 4762 | "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz", 4763 | "integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==", 4764 | "dev": true, 4765 | "license": "MIT", 4766 | "engines": { 4767 | "node": ">=10.0.0" 4768 | }, 4769 | "peerDependencies": { 4770 | "bufferutil": "^4.0.1", 4771 | "utf-8-validate": ">=5.0.2" 4772 | }, 4773 | "peerDependenciesMeta": { 4774 | "bufferutil": { 4775 | "optional": true 4776 | }, 4777 | "utf-8-validate": { 4778 | "optional": true 4779 | } 4780 | } 4781 | }, 4782 | "node_modules/xml-name-validator": { 4783 | "version": "5.0.0", 4784 | "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", 4785 | "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", 4786 | "dev": true, 4787 | "license": "Apache-2.0", 4788 | "engines": { 4789 | "node": ">=18" 4790 | } 4791 | }, 4792 | "node_modules/xmlchars": { 4793 | "version": "2.2.0", 4794 | "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", 4795 | "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", 4796 | "dev": true, 4797 | "license": "MIT" 4798 | }, 4799 | "node_modules/yaml": { 4800 | "version": "2.7.0", 4801 | "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", 4802 | "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", 4803 | "dev": true, 4804 | "license": "ISC", 4805 | "optional": true, 4806 | "peer": true, 4807 | "bin": { 4808 | "yaml": "bin.mjs" 4809 | }, 4810 | "engines": { 4811 | "node": ">= 14" 4812 | } 4813 | }, 4814 | "node_modules/yocto-queue": { 4815 | "version": "0.1.0", 4816 | "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", 4817 | "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", 4818 | "dev": true, 4819 | "license": "MIT", 4820 | "engines": { 4821 | "node": ">=10" 4822 | }, 4823 | "funding": { 4824 | "url": "https://github.com/sponsors/sindresorhus" 4825 | } 4826 | }, 4827 | "node_modules/zimmerframe": { 4828 | "version": "1.1.2", 4829 | "resolved": "https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.2.tgz", 4830 | "integrity": "sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==", 4831 | "dev": true, 4832 | "license": "MIT" 4833 | } 4834 | } 4835 | } 4836 | -------------------------------------------------------------------------------- /frontend/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "frontend", 3 | "private": true, 4 | "version": "0.0.1", 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vite dev", 8 | "build": "vite build", 9 | "preview": "vite preview", 10 | "prepare": "svelte-kit sync || echo ''", 11 | "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", 12 | "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", 13 | "format": "prettier --write .", 14 | "lint": "prettier --check . && eslint .", 15 | "test:unit": "vitest", 16 | "test": "npm run test:unit -- --run" 17 | }, 18 | "devDependencies": { 19 | "@eslint/compat": "^1.2.5", 20 | "@eslint/js": "^9.18.0", 21 | "@sveltejs/adapter-auto": "^4.0.0", 22 | "@sveltejs/kit": "^2.16.0", 23 | "@sveltejs/vite-plugin-svelte": "^5.0.0", 24 | "@testing-library/jest-dom": "^6.6.3", 25 | "@testing-library/svelte": "^5.2.4", 26 | "eslint": "^9.18.0", 27 | "eslint-config-prettier": "^10.0.1", 28 | "eslint-plugin-svelte": "^3.0.0", 29 | "globals": "^16.0.0", 30 | "jsdom": "^26.0.0", 31 | "prettier": "^3.4.2", 32 | "prettier-plugin-svelte": "^3.3.3", 33 | "svelte": "^5.0.0", 34 | "svelte-check": "^4.0.0", 35 | "typescript": "^5.0.0", 36 | "typescript-eslint": "^8.20.0", 37 | "vite": "^6.0.0", 38 | "vitest": "^3.0.0" 39 | }, 40 | "dependencies": { 41 | "@types/chart.js": "^2.9.41", 42 | "chart.js": "^4.4.8" 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /frontend/src/app.d.ts: -------------------------------------------------------------------------------- 1 | // See https://svelte.dev/docs/kit/types#app.d.ts 2 | // for information about these interfaces 3 | declare global { 4 | namespace App { 5 | // interface Error {} 6 | // interface Locals {} 7 | // interface PageData {} 8 | // interface PageState {} 9 | // interface Platform {} 10 | } 11 | } 12 | 13 | export {}; 14 | -------------------------------------------------------------------------------- /frontend/src/app.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | %sveltekit.head% 8 | 9 | 10 |
%sveltekit.body%
11 | 12 | 13 | -------------------------------------------------------------------------------- /frontend/src/demo.spec.ts: -------------------------------------------------------------------------------- 1 | import { describe, it, expect } from 'vitest'; 2 | 3 | describe('sum test', () => { 4 | it('adds 1 + 2 to equal 3', () => { 5 | expect(1 + 2).toBe(3); 6 | }); 7 | }); 8 | -------------------------------------------------------------------------------- /frontend/src/lib/components/AlertBanner.svelte: -------------------------------------------------------------------------------- 1 | 7 | 8 | {#if message} 9 |
10 | ⚠️ 11 | {message} 12 |
13 | {/if} 14 | 15 | -------------------------------------------------------------------------------- /frontend/src/lib/components/HumidityGauge.svelte: -------------------------------------------------------------------------------- 1 | 41 | 42 |
43 | 44 |
{value}%
45 |
46 | 47 | -------------------------------------------------------------------------------- /frontend/src/lib/components/SettingsPanel.svelte: -------------------------------------------------------------------------------- 1 | 16 | 17 |
18 | 21 | 22 | {#if isOpen} 23 |
24 |

Alert Thresholds

25 |
26 | 30 |
31 |
32 | 36 |
37 |
38 | 39 | 40 |
41 |
42 | {/if} 43 |
44 | 45 | -------------------------------------------------------------------------------- /frontend/src/lib/components/TemperatureChart.svelte: -------------------------------------------------------------------------------- 1 | 52 | 53 | -------------------------------------------------------------------------------- /frontend/src/lib/index.ts: -------------------------------------------------------------------------------- 1 | // place files you want to import through the `$lib` alias in this folder. 2 | -------------------------------------------------------------------------------- /frontend/src/lib/types.ts: -------------------------------------------------------------------------------- 1 | export interface SensorReading { 2 | timestamp: string; 3 | temperature: number; 4 | humidity: number; 5 | status: 'normal' | 'warning' | 'critical'; 6 | } -------------------------------------------------------------------------------- /frontend/src/routes/+page.svelte: -------------------------------------------------------------------------------- 1 | 55 | 56 | 57 | 58 |
59 |

Sensor Dashboard

60 | 61 | {#if currentReading} 62 |
63 |
64 |

Temperature History

65 | 66 |
67 | 68 |
69 |

Current Humidity

70 | 71 |
72 | 73 |
74 |

System Status

75 |
76 |
77 |

{currentReading.status}

78 |

Last updated: {new Date(currentReading.timestamp).toLocaleTimeString()}

79 |
80 |
81 |
82 | {/if} 83 |
84 | 85 | 148 | 149 | -------------------------------------------------------------------------------- /frontend/src/routes/page.svelte.test.ts: -------------------------------------------------------------------------------- 1 | import { describe, test, expect } from 'vitest'; 2 | import '@testing-library/jest-dom/vitest'; 3 | import { render, screen } from '@testing-library/svelte'; 4 | import Page from './+page.svelte'; 5 | 6 | describe('/+page.svelte', () => { 7 | test('should render h1', () => { 8 | render(Page); 9 | expect(screen.getByRole('heading', { level: 1 })).toBeInTheDocument(); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /frontend/static/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amirtds/svelte-fastapi-dashboard/3cf3e42e8a0870a279dc5c2ca50283b64263fbe0/frontend/static/favicon.png -------------------------------------------------------------------------------- /frontend/svelte.config.js: -------------------------------------------------------------------------------- 1 | import adapter from '@sveltejs/adapter-auto'; 2 | import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'; 3 | 4 | /** @type {import('@sveltejs/kit').Config} */ 5 | const config = { 6 | // Consult https://svelte.dev/docs/kit/integrations 7 | // for more information about preprocessors 8 | preprocess: vitePreprocess(), 9 | 10 | kit: { 11 | // adapter-auto only supports some environments, see https://svelte.dev/docs/kit/adapter-auto for a list. 12 | // If your environment is not supported, or you settled on a specific environment, switch out the adapter. 13 | // See https://svelte.dev/docs/kit/adapters for more information about adapters. 14 | adapter: adapter() 15 | } 16 | }; 17 | 18 | export default config; 19 | -------------------------------------------------------------------------------- /frontend/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./.svelte-kit/tsconfig.json", 3 | "compilerOptions": { 4 | "allowJs": true, 5 | "checkJs": true, 6 | "esModuleInterop": true, 7 | "forceConsistentCasingInFileNames": true, 8 | "resolveJsonModule": true, 9 | "skipLibCheck": true, 10 | "sourceMap": true, 11 | "strict": true, 12 | "moduleResolution": "bundler" 13 | } 14 | // Path aliases are handled by https://svelte.dev/docs/kit/configuration#alias 15 | // except $lib which is handled by https://svelte.dev/docs/kit/configuration#files 16 | // 17 | // If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes 18 | // from the referenced tsconfig.json - TypeScript does not merge them in 19 | } 20 | -------------------------------------------------------------------------------- /frontend/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { svelteTesting } from '@testing-library/svelte/vite'; 2 | import { sveltekit } from '@sveltejs/kit/vite'; 3 | import { defineConfig } from 'vite'; 4 | 5 | export default defineConfig({ 6 | plugins: [sveltekit()], 7 | 8 | test: { 9 | workspace: [ 10 | { 11 | extends: './vite.config.ts', 12 | plugins: [svelteTesting()], 13 | 14 | test: { 15 | name: 'client', 16 | environment: 'jsdom', 17 | clearMocks: true, 18 | include: ['src/**/*.svelte.{test,spec}.{js,ts}'], 19 | exclude: ['src/lib/server/**'], 20 | setupFiles: ['./vitest-setup-client.ts'] 21 | } 22 | }, 23 | { 24 | extends: './vite.config.ts', 25 | 26 | test: { 27 | name: 'server', 28 | environment: 'node', 29 | include: ['src/**/*.{test,spec}.{js,ts}'], 30 | exclude: ['src/**/*.svelte.{test,spec}.{js,ts}'] 31 | } 32 | } 33 | ] 34 | } 35 | }); 36 | -------------------------------------------------------------------------------- /frontend/vitest-setup-client.ts: -------------------------------------------------------------------------------- 1 | import '@testing-library/jest-dom/vitest'; 2 | import { vi } from 'vitest'; 3 | 4 | // required for svelte5 + jsdom as jsdom does not support matchMedia 5 | Object.defineProperty(window, 'matchMedia', { 6 | writable: true, 7 | enumerable: true, 8 | value: vi.fn().mockImplementation((query) => ({ 9 | matches: false, 10 | media: query, 11 | onchange: null, 12 | addEventListener: vi.fn(), 13 | removeEventListener: vi.fn(), 14 | dispatchEvent: vi.fn() 15 | })) 16 | }); 17 | 18 | // add more mocks here if you need them 19 | --------------------------------------------------------------------------------