A simple, clean, fast browser for the AtmosphereConf(2026) VODs
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat: build Atmosphere VODs PWA experience (AI-assisted)

j4ckxyz 96b92fb0

+10097
+24
.gitignore
··· 1 + # Logs 2 + logs 3 + *.log 4 + npm-debug.log* 5 + yarn-debug.log* 6 + yarn-error.log* 7 + pnpm-debug.log* 8 + lerna-debug.log* 9 + 10 + node_modules 11 + dist 12 + dist-ssr 13 + *.local 14 + 15 + # Editor directories and files 16 + .vscode/* 17 + !.vscode/extensions.json 18 + .idea 19 + .DS_Store 20 + *.suo 21 + *.ntvs* 22 + *.njsproj 23 + *.sln 24 + *.sw?
+29
eslint.config.js
··· 1 + import js from '@eslint/js' 2 + import globals from 'globals' 3 + import reactHooks from 'eslint-plugin-react-hooks' 4 + import reactRefresh from 'eslint-plugin-react-refresh' 5 + import tseslint from 'typescript-eslint' 6 + import { defineConfig, globalIgnores } from 'eslint/config' 7 + 8 + export default defineConfig([ 9 + globalIgnores(['dist']), 10 + { 11 + files: ['**/*.{ts,tsx}'], 12 + extends: [ 13 + js.configs.recommended, 14 + tseslint.configs.recommended, 15 + reactHooks.configs.flat.recommended, 16 + reactRefresh.configs.vite, 17 + ], 18 + languageOptions: { 19 + ecmaVersion: 2020, 20 + globals: globals.browser, 21 + }, 22 + }, 23 + { 24 + files: ['src/state/**/*.{ts,tsx}', 'src/components/ui/button.tsx'], 25 + rules: { 26 + 'react-refresh/only-export-components': 'off', 27 + }, 28 + }, 29 + ])
+18
index.html
··· 1 + <!doctype html> 2 + <html lang="en"> 3 + <head> 4 + <meta charset="UTF-8" /> 5 + <link rel="icon" type="image/svg+xml" href="/favicon.svg" /> 6 + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 7 + <meta name="theme-color" content="#0a1020" /> 8 + <meta 9 + name="description" 10 + content="Atmosphere VODs is a glassy PWA for browsing ATmosphereConf 2026 talks." 11 + /> 12 + <title>Atmosphere VODs</title> 13 + </head> 14 + <body> 15 + <div id="root"></div> 16 + <script type="module" src="/src/main.tsx"></script> 17 + </body> 18 + </html>
+8528
package-lock.json
··· 1 + { 2 + "name": "atmosphere-vods", 3 + "version": "0.0.0", 4 + "lockfileVersion": 3, 5 + "requires": true, 6 + "packages": { 7 + "": { 8 + "name": "atmosphere-vods", 9 + "version": "0.0.0", 10 + "dependencies": { 11 + "@radix-ui/react-slot": "^1.2.4", 12 + "class-variance-authority": "^0.7.1", 13 + "clsx": "^2.1.1", 14 + "hls.js": "^1.6.15", 15 + "lucide-react": "^1.8.0", 16 + "react": "^19.2.4", 17 + "react-dom": "^19.2.4", 18 + "react-router-dom": "^6.30.3", 19 + "tailwind-merge": "^3.5.0" 20 + }, 21 + "devDependencies": { 22 + "@eslint/js": "^9.39.4", 23 + "@types/node": "^24.12.2", 24 + "@types/react": "^19.2.14", 25 + "@types/react-dom": "^19.2.3", 26 + "@vitejs/plugin-react": "^5.2.0", 27 + "autoprefixer": "^10.4.27", 28 + "eslint": "^9.39.4", 29 + "eslint-plugin-react-hooks": "^7.0.1", 30 + "eslint-plugin-react-refresh": "^0.5.2", 31 + "globals": "^17.4.0", 32 + "postcss": "^8.5.9", 33 + "tailwindcss": "^3.4.19", 34 + "tailwindcss-animate": "^1.0.7", 35 + "typescript": "~6.0.2", 36 + "typescript-eslint": "^8.58.0", 37 + "vite": "^7.3.2", 38 + "vite-plugin-pwa": "^1.2.0" 39 + } 40 + }, 41 + "node_modules/@alloc/quick-lru": { 42 + "version": "5.2.0", 43 + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", 44 + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", 45 + "dev": true, 46 + "license": "MIT", 47 + "engines": { 48 + "node": ">=10" 49 + }, 50 + "funding": { 51 + "url": "https://github.com/sponsors/sindresorhus" 52 + } 53 + }, 54 + "node_modules/@babel/code-frame": { 55 + "version": "7.29.0", 56 + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", 57 + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", 58 + "dev": true, 59 + "license": "MIT", 60 + "dependencies": { 61 + "@babel/helper-validator-identifier": "^7.28.5", 62 + "js-tokens": "^4.0.0", 63 + "picocolors": "^1.1.1" 64 + }, 65 + "engines": { 66 + "node": ">=6.9.0" 67 + } 68 + }, 69 + "node_modules/@babel/compat-data": { 70 + "version": "7.29.0", 71 + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz", 72 + "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==", 73 + "dev": true, 74 + "license": "MIT", 75 + "engines": { 76 + "node": ">=6.9.0" 77 + } 78 + }, 79 + "node_modules/@babel/core": { 80 + "version": "7.29.0", 81 + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", 82 + "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", 83 + "dev": true, 84 + "license": "MIT", 85 + "dependencies": { 86 + "@babel/code-frame": "^7.29.0", 87 + "@babel/generator": "^7.29.0", 88 + "@babel/helper-compilation-targets": "^7.28.6", 89 + "@babel/helper-module-transforms": "^7.28.6", 90 + "@babel/helpers": "^7.28.6", 91 + "@babel/parser": "^7.29.0", 92 + "@babel/template": "^7.28.6", 93 + "@babel/traverse": "^7.29.0", 94 + "@babel/types": "^7.29.0", 95 + "@jridgewell/remapping": "^2.3.5", 96 + "convert-source-map": "^2.0.0", 97 + "debug": "^4.1.0", 98 + "gensync": "^1.0.0-beta.2", 99 + "json5": "^2.2.3", 100 + "semver": "^6.3.1" 101 + }, 102 + "engines": { 103 + "node": ">=6.9.0" 104 + }, 105 + "funding": { 106 + "type": "opencollective", 107 + "url": "https://opencollective.com/babel" 108 + } 109 + }, 110 + "node_modules/@babel/generator": { 111 + "version": "7.29.1", 112 + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", 113 + "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", 114 + "dev": true, 115 + "license": "MIT", 116 + "dependencies": { 117 + "@babel/parser": "^7.29.0", 118 + "@babel/types": "^7.29.0", 119 + "@jridgewell/gen-mapping": "^0.3.12", 120 + "@jridgewell/trace-mapping": "^0.3.28", 121 + "jsesc": "^3.0.2" 122 + }, 123 + "engines": { 124 + "node": ">=6.9.0" 125 + } 126 + }, 127 + "node_modules/@babel/helper-annotate-as-pure": { 128 + "version": "7.27.3", 129 + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", 130 + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", 131 + "dev": true, 132 + "license": "MIT", 133 + "dependencies": { 134 + "@babel/types": "^7.27.3" 135 + }, 136 + "engines": { 137 + "node": ">=6.9.0" 138 + } 139 + }, 140 + "node_modules/@babel/helper-compilation-targets": { 141 + "version": "7.28.6", 142 + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz", 143 + "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", 144 + "dev": true, 145 + "license": "MIT", 146 + "dependencies": { 147 + "@babel/compat-data": "^7.28.6", 148 + "@babel/helper-validator-option": "^7.27.1", 149 + "browserslist": "^4.24.0", 150 + "lru-cache": "^5.1.1", 151 + "semver": "^6.3.1" 152 + }, 153 + "engines": { 154 + "node": ">=6.9.0" 155 + } 156 + }, 157 + "node_modules/@babel/helper-create-class-features-plugin": { 158 + "version": "7.28.6", 159 + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.6.tgz", 160 + "integrity": "sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow==", 161 + "dev": true, 162 + "license": "MIT", 163 + "dependencies": { 164 + "@babel/helper-annotate-as-pure": "^7.27.3", 165 + "@babel/helper-member-expression-to-functions": "^7.28.5", 166 + "@babel/helper-optimise-call-expression": "^7.27.1", 167 + "@babel/helper-replace-supers": "^7.28.6", 168 + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", 169 + "@babel/traverse": "^7.28.6", 170 + "semver": "^6.3.1" 171 + }, 172 + "engines": { 173 + "node": ">=6.9.0" 174 + }, 175 + "peerDependencies": { 176 + "@babel/core": "^7.0.0" 177 + } 178 + }, 179 + "node_modules/@babel/helper-create-regexp-features-plugin": { 180 + "version": "7.28.5", 181 + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.28.5.tgz", 182 + "integrity": "sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==", 183 + "dev": true, 184 + "license": "MIT", 185 + "dependencies": { 186 + "@babel/helper-annotate-as-pure": "^7.27.3", 187 + "regexpu-core": "^6.3.1", 188 + "semver": "^6.3.1" 189 + }, 190 + "engines": { 191 + "node": ">=6.9.0" 192 + }, 193 + "peerDependencies": { 194 + "@babel/core": "^7.0.0" 195 + } 196 + }, 197 + "node_modules/@babel/helper-define-polyfill-provider": { 198 + "version": "0.6.8", 199 + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.8.tgz", 200 + "integrity": "sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==", 201 + "dev": true, 202 + "license": "MIT", 203 + "dependencies": { 204 + "@babel/helper-compilation-targets": "^7.28.6", 205 + "@babel/helper-plugin-utils": "^7.28.6", 206 + "debug": "^4.4.3", 207 + "lodash.debounce": "^4.0.8", 208 + "resolve": "^1.22.11" 209 + }, 210 + "peerDependencies": { 211 + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" 212 + } 213 + }, 214 + "node_modules/@babel/helper-globals": { 215 + "version": "7.28.0", 216 + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", 217 + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", 218 + "dev": true, 219 + "license": "MIT", 220 + "engines": { 221 + "node": ">=6.9.0" 222 + } 223 + }, 224 + "node_modules/@babel/helper-member-expression-to-functions": { 225 + "version": "7.28.5", 226 + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz", 227 + "integrity": "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==", 228 + "dev": true, 229 + "license": "MIT", 230 + "dependencies": { 231 + "@babel/traverse": "^7.28.5", 232 + "@babel/types": "^7.28.5" 233 + }, 234 + "engines": { 235 + "node": ">=6.9.0" 236 + } 237 + }, 238 + "node_modules/@babel/helper-module-imports": { 239 + "version": "7.28.6", 240 + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", 241 + "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", 242 + "dev": true, 243 + "license": "MIT", 244 + "dependencies": { 245 + "@babel/traverse": "^7.28.6", 246 + "@babel/types": "^7.28.6" 247 + }, 248 + "engines": { 249 + "node": ">=6.9.0" 250 + } 251 + }, 252 + "node_modules/@babel/helper-module-transforms": { 253 + "version": "7.28.6", 254 + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", 255 + "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", 256 + "dev": true, 257 + "license": "MIT", 258 + "dependencies": { 259 + "@babel/helper-module-imports": "^7.28.6", 260 + "@babel/helper-validator-identifier": "^7.28.5", 261 + "@babel/traverse": "^7.28.6" 262 + }, 263 + "engines": { 264 + "node": ">=6.9.0" 265 + }, 266 + "peerDependencies": { 267 + "@babel/core": "^7.0.0" 268 + } 269 + }, 270 + "node_modules/@babel/helper-optimise-call-expression": { 271 + "version": "7.27.1", 272 + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", 273 + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", 274 + "dev": true, 275 + "license": "MIT", 276 + "dependencies": { 277 + "@babel/types": "^7.27.1" 278 + }, 279 + "engines": { 280 + "node": ">=6.9.0" 281 + } 282 + }, 283 + "node_modules/@babel/helper-plugin-utils": { 284 + "version": "7.28.6", 285 + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz", 286 + "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==", 287 + "dev": true, 288 + "license": "MIT", 289 + "engines": { 290 + "node": ">=6.9.0" 291 + } 292 + }, 293 + "node_modules/@babel/helper-remap-async-to-generator": { 294 + "version": "7.27.1", 295 + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", 296 + "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", 297 + "dev": true, 298 + "license": "MIT", 299 + "dependencies": { 300 + "@babel/helper-annotate-as-pure": "^7.27.1", 301 + "@babel/helper-wrap-function": "^7.27.1", 302 + "@babel/traverse": "^7.27.1" 303 + }, 304 + "engines": { 305 + "node": ">=6.9.0" 306 + }, 307 + "peerDependencies": { 308 + "@babel/core": "^7.0.0" 309 + } 310 + }, 311 + "node_modules/@babel/helper-replace-supers": { 312 + "version": "7.28.6", 313 + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.28.6.tgz", 314 + "integrity": "sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg==", 315 + "dev": true, 316 + "license": "MIT", 317 + "dependencies": { 318 + "@babel/helper-member-expression-to-functions": "^7.28.5", 319 + "@babel/helper-optimise-call-expression": "^7.27.1", 320 + "@babel/traverse": "^7.28.6" 321 + }, 322 + "engines": { 323 + "node": ">=6.9.0" 324 + }, 325 + "peerDependencies": { 326 + "@babel/core": "^7.0.0" 327 + } 328 + }, 329 + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { 330 + "version": "7.27.1", 331 + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", 332 + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", 333 + "dev": true, 334 + "license": "MIT", 335 + "dependencies": { 336 + "@babel/traverse": "^7.27.1", 337 + "@babel/types": "^7.27.1" 338 + }, 339 + "engines": { 340 + "node": ">=6.9.0" 341 + } 342 + }, 343 + "node_modules/@babel/helper-string-parser": { 344 + "version": "7.27.1", 345 + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", 346 + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", 347 + "dev": true, 348 + "license": "MIT", 349 + "engines": { 350 + "node": ">=6.9.0" 351 + } 352 + }, 353 + "node_modules/@babel/helper-validator-identifier": { 354 + "version": "7.28.5", 355 + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", 356 + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", 357 + "dev": true, 358 + "license": "MIT", 359 + "engines": { 360 + "node": ">=6.9.0" 361 + } 362 + }, 363 + "node_modules/@babel/helper-validator-option": { 364 + "version": "7.27.1", 365 + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", 366 + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", 367 + "dev": true, 368 + "license": "MIT", 369 + "engines": { 370 + "node": ">=6.9.0" 371 + } 372 + }, 373 + "node_modules/@babel/helper-wrap-function": { 374 + "version": "7.28.6", 375 + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.28.6.tgz", 376 + "integrity": "sha512-z+PwLziMNBeSQJonizz2AGnndLsP2DeGHIxDAn+wdHOGuo4Fo1x1HBPPXeE9TAOPHNNWQKCSlA2VZyYyyibDnQ==", 377 + "dev": true, 378 + "license": "MIT", 379 + "dependencies": { 380 + "@babel/template": "^7.28.6", 381 + "@babel/traverse": "^7.28.6", 382 + "@babel/types": "^7.28.6" 383 + }, 384 + "engines": { 385 + "node": ">=6.9.0" 386 + } 387 + }, 388 + "node_modules/@babel/helpers": { 389 + "version": "7.29.2", 390 + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.2.tgz", 391 + "integrity": "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==", 392 + "dev": true, 393 + "license": "MIT", 394 + "dependencies": { 395 + "@babel/template": "^7.28.6", 396 + "@babel/types": "^7.29.0" 397 + }, 398 + "engines": { 399 + "node": ">=6.9.0" 400 + } 401 + }, 402 + "node_modules/@babel/parser": { 403 + "version": "7.29.2", 404 + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz", 405 + "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==", 406 + "dev": true, 407 + "license": "MIT", 408 + "dependencies": { 409 + "@babel/types": "^7.29.0" 410 + }, 411 + "bin": { 412 + "parser": "bin/babel-parser.js" 413 + }, 414 + "engines": { 415 + "node": ">=6.0.0" 416 + } 417 + }, 418 + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { 419 + "version": "7.28.5", 420 + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.28.5.tgz", 421 + "integrity": "sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q==", 422 + "dev": true, 423 + "license": "MIT", 424 + "dependencies": { 425 + "@babel/helper-plugin-utils": "^7.27.1", 426 + "@babel/traverse": "^7.28.5" 427 + }, 428 + "engines": { 429 + "node": ">=6.9.0" 430 + }, 431 + "peerDependencies": { 432 + "@babel/core": "^7.0.0" 433 + } 434 + }, 435 + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { 436 + "version": "7.27.1", 437 + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz", 438 + "integrity": "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==", 439 + "dev": true, 440 + "license": "MIT", 441 + "dependencies": { 442 + "@babel/helper-plugin-utils": "^7.27.1" 443 + }, 444 + "engines": { 445 + "node": ">=6.9.0" 446 + }, 447 + "peerDependencies": { 448 + "@babel/core": "^7.0.0" 449 + } 450 + }, 451 + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { 452 + "version": "7.27.1", 453 + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz", 454 + "integrity": "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==", 455 + "dev": true, 456 + "license": "MIT", 457 + "dependencies": { 458 + "@babel/helper-plugin-utils": "^7.27.1" 459 + }, 460 + "engines": { 461 + "node": ">=6.9.0" 462 + }, 463 + "peerDependencies": { 464 + "@babel/core": "^7.0.0" 465 + } 466 + }, 467 + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { 468 + "version": "7.27.1", 469 + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz", 470 + "integrity": "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==", 471 + "dev": true, 472 + "license": "MIT", 473 + "dependencies": { 474 + "@babel/helper-plugin-utils": "^7.27.1", 475 + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", 476 + "@babel/plugin-transform-optional-chaining": "^7.27.1" 477 + }, 478 + "engines": { 479 + "node": ">=6.9.0" 480 + }, 481 + "peerDependencies": { 482 + "@babel/core": "^7.13.0" 483 + } 484 + }, 485 + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { 486 + "version": "7.28.6", 487 + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.6.tgz", 488 + "integrity": "sha512-a0aBScVTlNaiUe35UtfxAN7A/tehvvG4/ByO6+46VPKTRSlfnAFsgKy0FUh+qAkQrDTmhDkT+IBOKlOoMUxQ0g==", 489 + "dev": true, 490 + "license": "MIT", 491 + "dependencies": { 492 + "@babel/helper-plugin-utils": "^7.28.6", 493 + "@babel/traverse": "^7.28.6" 494 + }, 495 + "engines": { 496 + "node": ">=6.9.0" 497 + }, 498 + "peerDependencies": { 499 + "@babel/core": "^7.0.0" 500 + } 501 + }, 502 + "node_modules/@babel/plugin-proposal-private-property-in-object": { 503 + "version": "7.21.0-placeholder-for-preset-env.2", 504 + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", 505 + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", 506 + "dev": true, 507 + "license": "MIT", 508 + "engines": { 509 + "node": ">=6.9.0" 510 + }, 511 + "peerDependencies": { 512 + "@babel/core": "^7.0.0-0" 513 + } 514 + }, 515 + "node_modules/@babel/plugin-syntax-import-assertions": { 516 + "version": "7.28.6", 517 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.28.6.tgz", 518 + "integrity": "sha512-pSJUpFHdx9z5nqTSirOCMtYVP2wFgoWhP0p3g8ONK/4IHhLIBd0B9NYqAvIUAhq+OkhO4VM1tENCt0cjlsNShw==", 519 + "dev": true, 520 + "license": "MIT", 521 + "dependencies": { 522 + "@babel/helper-plugin-utils": "^7.28.6" 523 + }, 524 + "engines": { 525 + "node": ">=6.9.0" 526 + }, 527 + "peerDependencies": { 528 + "@babel/core": "^7.0.0-0" 529 + } 530 + }, 531 + "node_modules/@babel/plugin-syntax-import-attributes": { 532 + "version": "7.28.6", 533 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.28.6.tgz", 534 + "integrity": "sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==", 535 + "dev": true, 536 + "license": "MIT", 537 + "dependencies": { 538 + "@babel/helper-plugin-utils": "^7.28.6" 539 + }, 540 + "engines": { 541 + "node": ">=6.9.0" 542 + }, 543 + "peerDependencies": { 544 + "@babel/core": "^7.0.0-0" 545 + } 546 + }, 547 + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { 548 + "version": "7.18.6", 549 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", 550 + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", 551 + "dev": true, 552 + "license": "MIT", 553 + "dependencies": { 554 + "@babel/helper-create-regexp-features-plugin": "^7.18.6", 555 + "@babel/helper-plugin-utils": "^7.18.6" 556 + }, 557 + "engines": { 558 + "node": ">=6.9.0" 559 + }, 560 + "peerDependencies": { 561 + "@babel/core": "^7.0.0" 562 + } 563 + }, 564 + "node_modules/@babel/plugin-transform-arrow-functions": { 565 + "version": "7.27.1", 566 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", 567 + "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", 568 + "dev": true, 569 + "license": "MIT", 570 + "dependencies": { 571 + "@babel/helper-plugin-utils": "^7.27.1" 572 + }, 573 + "engines": { 574 + "node": ">=6.9.0" 575 + }, 576 + "peerDependencies": { 577 + "@babel/core": "^7.0.0-0" 578 + } 579 + }, 580 + "node_modules/@babel/plugin-transform-async-generator-functions": { 581 + "version": "7.29.0", 582 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.29.0.tgz", 583 + "integrity": "sha512-va0VdWro4zlBr2JsXC+ofCPB2iG12wPtVGTWFx2WLDOM3nYQZZIGP82qku2eW/JR83sD+k2k+CsNtyEbUqhU6w==", 584 + "dev": true, 585 + "license": "MIT", 586 + "dependencies": { 587 + "@babel/helper-plugin-utils": "^7.28.6", 588 + "@babel/helper-remap-async-to-generator": "^7.27.1", 589 + "@babel/traverse": "^7.29.0" 590 + }, 591 + "engines": { 592 + "node": ">=6.9.0" 593 + }, 594 + "peerDependencies": { 595 + "@babel/core": "^7.0.0-0" 596 + } 597 + }, 598 + "node_modules/@babel/plugin-transform-async-to-generator": { 599 + "version": "7.28.6", 600 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.28.6.tgz", 601 + "integrity": "sha512-ilTRcmbuXjsMmcZ3HASTe4caH5Tpo93PkTxF9oG2VZsSWsahydmcEHhix9Ik122RcTnZnUzPbmux4wh1swfv7g==", 602 + "dev": true, 603 + "license": "MIT", 604 + "dependencies": { 605 + "@babel/helper-module-imports": "^7.28.6", 606 + "@babel/helper-plugin-utils": "^7.28.6", 607 + "@babel/helper-remap-async-to-generator": "^7.27.1" 608 + }, 609 + "engines": { 610 + "node": ">=6.9.0" 611 + }, 612 + "peerDependencies": { 613 + "@babel/core": "^7.0.0-0" 614 + } 615 + }, 616 + "node_modules/@babel/plugin-transform-block-scoped-functions": { 617 + "version": "7.27.1", 618 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz", 619 + "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==", 620 + "dev": true, 621 + "license": "MIT", 622 + "dependencies": { 623 + "@babel/helper-plugin-utils": "^7.27.1" 624 + }, 625 + "engines": { 626 + "node": ">=6.9.0" 627 + }, 628 + "peerDependencies": { 629 + "@babel/core": "^7.0.0-0" 630 + } 631 + }, 632 + "node_modules/@babel/plugin-transform-block-scoping": { 633 + "version": "7.28.6", 634 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.6.tgz", 635 + "integrity": "sha512-tt/7wOtBmwHPNMPu7ax4pdPz6shjFrmHDghvNC+FG9Qvj7D6mJcoRQIF5dy4njmxR941l6rgtvfSB2zX3VlUIw==", 636 + "dev": true, 637 + "license": "MIT", 638 + "dependencies": { 639 + "@babel/helper-plugin-utils": "^7.28.6" 640 + }, 641 + "engines": { 642 + "node": ">=6.9.0" 643 + }, 644 + "peerDependencies": { 645 + "@babel/core": "^7.0.0-0" 646 + } 647 + }, 648 + "node_modules/@babel/plugin-transform-class-properties": { 649 + "version": "7.28.6", 650 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.28.6.tgz", 651 + "integrity": "sha512-dY2wS3I2G7D697VHndN91TJr8/AAfXQNt5ynCTI/MpxMsSzHp+52uNivYT5wCPax3whc47DR8Ba7cmlQMg24bw==", 652 + "dev": true, 653 + "license": "MIT", 654 + "dependencies": { 655 + "@babel/helper-create-class-features-plugin": "^7.28.6", 656 + "@babel/helper-plugin-utils": "^7.28.6" 657 + }, 658 + "engines": { 659 + "node": ">=6.9.0" 660 + }, 661 + "peerDependencies": { 662 + "@babel/core": "^7.0.0-0" 663 + } 664 + }, 665 + "node_modules/@babel/plugin-transform-class-static-block": { 666 + "version": "7.28.6", 667 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.6.tgz", 668 + "integrity": "sha512-rfQ++ghVwTWTqQ7w8qyDxL1XGihjBss4CmTgGRCTAC9RIbhVpyp4fOeZtta0Lbf+dTNIVJer6ych2ibHwkZqsQ==", 669 + "dev": true, 670 + "license": "MIT", 671 + "dependencies": { 672 + "@babel/helper-create-class-features-plugin": "^7.28.6", 673 + "@babel/helper-plugin-utils": "^7.28.6" 674 + }, 675 + "engines": { 676 + "node": ">=6.9.0" 677 + }, 678 + "peerDependencies": { 679 + "@babel/core": "^7.12.0" 680 + } 681 + }, 682 + "node_modules/@babel/plugin-transform-classes": { 683 + "version": "7.28.6", 684 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.6.tgz", 685 + "integrity": "sha512-EF5KONAqC5zAqT783iMGuM2ZtmEBy+mJMOKl2BCvPZ2lVrwvXnB6o+OBWCS+CoeCCpVRF2sA2RBKUxvT8tQT5Q==", 686 + "dev": true, 687 + "license": "MIT", 688 + "dependencies": { 689 + "@babel/helper-annotate-as-pure": "^7.27.3", 690 + "@babel/helper-compilation-targets": "^7.28.6", 691 + "@babel/helper-globals": "^7.28.0", 692 + "@babel/helper-plugin-utils": "^7.28.6", 693 + "@babel/helper-replace-supers": "^7.28.6", 694 + "@babel/traverse": "^7.28.6" 695 + }, 696 + "engines": { 697 + "node": ">=6.9.0" 698 + }, 699 + "peerDependencies": { 700 + "@babel/core": "^7.0.0-0" 701 + } 702 + }, 703 + "node_modules/@babel/plugin-transform-computed-properties": { 704 + "version": "7.28.6", 705 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.28.6.tgz", 706 + "integrity": "sha512-bcc3k0ijhHbc2lEfpFHgx7eYw9KNXqOerKWfzbxEHUGKnS3sz9C4CNL9OiFN1297bDNfUiSO7DaLzbvHQQQ1BQ==", 707 + "dev": true, 708 + "license": "MIT", 709 + "dependencies": { 710 + "@babel/helper-plugin-utils": "^7.28.6", 711 + "@babel/template": "^7.28.6" 712 + }, 713 + "engines": { 714 + "node": ">=6.9.0" 715 + }, 716 + "peerDependencies": { 717 + "@babel/core": "^7.0.0-0" 718 + } 719 + }, 720 + "node_modules/@babel/plugin-transform-destructuring": { 721 + "version": "7.28.5", 722 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz", 723 + "integrity": "sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==", 724 + "dev": true, 725 + "license": "MIT", 726 + "dependencies": { 727 + "@babel/helper-plugin-utils": "^7.27.1", 728 + "@babel/traverse": "^7.28.5" 729 + }, 730 + "engines": { 731 + "node": ">=6.9.0" 732 + }, 733 + "peerDependencies": { 734 + "@babel/core": "^7.0.0-0" 735 + } 736 + }, 737 + "node_modules/@babel/plugin-transform-dotall-regex": { 738 + "version": "7.28.6", 739 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.28.6.tgz", 740 + "integrity": "sha512-SljjowuNKB7q5Oayv4FoPzeB74g3QgLt8IVJw9ADvWy3QnUb/01aw8I4AVv8wYnPvQz2GDDZ/g3GhcNyDBI4Bg==", 741 + "dev": true, 742 + "license": "MIT", 743 + "dependencies": { 744 + "@babel/helper-create-regexp-features-plugin": "^7.28.5", 745 + "@babel/helper-plugin-utils": "^7.28.6" 746 + }, 747 + "engines": { 748 + "node": ">=6.9.0" 749 + }, 750 + "peerDependencies": { 751 + "@babel/core": "^7.0.0-0" 752 + } 753 + }, 754 + "node_modules/@babel/plugin-transform-duplicate-keys": { 755 + "version": "7.27.1", 756 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz", 757 + "integrity": "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==", 758 + "dev": true, 759 + "license": "MIT", 760 + "dependencies": { 761 + "@babel/helper-plugin-utils": "^7.27.1" 762 + }, 763 + "engines": { 764 + "node": ">=6.9.0" 765 + }, 766 + "peerDependencies": { 767 + "@babel/core": "^7.0.0-0" 768 + } 769 + }, 770 + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { 771 + "version": "7.29.0", 772 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.29.0.tgz", 773 + "integrity": "sha512-zBPcW2lFGxdiD8PUnPwJjag2J9otbcLQzvbiOzDxpYXyCuYX9agOwMPGn1prVH0a4qzhCKu24rlH4c1f7yA8rw==", 774 + "dev": true, 775 + "license": "MIT", 776 + "dependencies": { 777 + "@babel/helper-create-regexp-features-plugin": "^7.28.5", 778 + "@babel/helper-plugin-utils": "^7.28.6" 779 + }, 780 + "engines": { 781 + "node": ">=6.9.0" 782 + }, 783 + "peerDependencies": { 784 + "@babel/core": "^7.0.0" 785 + } 786 + }, 787 + "node_modules/@babel/plugin-transform-dynamic-import": { 788 + "version": "7.27.1", 789 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz", 790 + "integrity": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==", 791 + "dev": true, 792 + "license": "MIT", 793 + "dependencies": { 794 + "@babel/helper-plugin-utils": "^7.27.1" 795 + }, 796 + "engines": { 797 + "node": ">=6.9.0" 798 + }, 799 + "peerDependencies": { 800 + "@babel/core": "^7.0.0-0" 801 + } 802 + }, 803 + "node_modules/@babel/plugin-transform-explicit-resource-management": { 804 + "version": "7.28.6", 805 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.6.tgz", 806 + "integrity": "sha512-Iao5Konzx2b6g7EPqTy40UZbcdXE126tTxVFr/nAIj+WItNxjKSYTEw3RC+A2/ZetmdJsgueL1KhaMCQHkLPIg==", 807 + "dev": true, 808 + "license": "MIT", 809 + "dependencies": { 810 + "@babel/helper-plugin-utils": "^7.28.6", 811 + "@babel/plugin-transform-destructuring": "^7.28.5" 812 + }, 813 + "engines": { 814 + "node": ">=6.9.0" 815 + }, 816 + "peerDependencies": { 817 + "@babel/core": "^7.0.0-0" 818 + } 819 + }, 820 + "node_modules/@babel/plugin-transform-exponentiation-operator": { 821 + "version": "7.28.6", 822 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.28.6.tgz", 823 + "integrity": "sha512-WitabqiGjV/vJ0aPOLSFfNY1u9U3R7W36B03r5I2KoNix+a3sOhJ3pKFB3R5It9/UiK78NiO0KE9P21cMhlPkw==", 824 + "dev": true, 825 + "license": "MIT", 826 + "dependencies": { 827 + "@babel/helper-plugin-utils": "^7.28.6" 828 + }, 829 + "engines": { 830 + "node": ">=6.9.0" 831 + }, 832 + "peerDependencies": { 833 + "@babel/core": "^7.0.0-0" 834 + } 835 + }, 836 + "node_modules/@babel/plugin-transform-export-namespace-from": { 837 + "version": "7.27.1", 838 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", 839 + "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==", 840 + "dev": true, 841 + "license": "MIT", 842 + "dependencies": { 843 + "@babel/helper-plugin-utils": "^7.27.1" 844 + }, 845 + "engines": { 846 + "node": ">=6.9.0" 847 + }, 848 + "peerDependencies": { 849 + "@babel/core": "^7.0.0-0" 850 + } 851 + }, 852 + "node_modules/@babel/plugin-transform-for-of": { 853 + "version": "7.27.1", 854 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", 855 + "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", 856 + "dev": true, 857 + "license": "MIT", 858 + "dependencies": { 859 + "@babel/helper-plugin-utils": "^7.27.1", 860 + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" 861 + }, 862 + "engines": { 863 + "node": ">=6.9.0" 864 + }, 865 + "peerDependencies": { 866 + "@babel/core": "^7.0.0-0" 867 + } 868 + }, 869 + "node_modules/@babel/plugin-transform-function-name": { 870 + "version": "7.27.1", 871 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", 872 + "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", 873 + "dev": true, 874 + "license": "MIT", 875 + "dependencies": { 876 + "@babel/helper-compilation-targets": "^7.27.1", 877 + "@babel/helper-plugin-utils": "^7.27.1", 878 + "@babel/traverse": "^7.27.1" 879 + }, 880 + "engines": { 881 + "node": ">=6.9.0" 882 + }, 883 + "peerDependencies": { 884 + "@babel/core": "^7.0.0-0" 885 + } 886 + }, 887 + "node_modules/@babel/plugin-transform-json-strings": { 888 + "version": "7.28.6", 889 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.28.6.tgz", 890 + "integrity": "sha512-Nr+hEN+0geQkzhbdgQVPoqr47lZbm+5fCUmO70722xJZd0Mvb59+33QLImGj6F+DkK3xgDi1YVysP8whD6FQAw==", 891 + "dev": true, 892 + "license": "MIT", 893 + "dependencies": { 894 + "@babel/helper-plugin-utils": "^7.28.6" 895 + }, 896 + "engines": { 897 + "node": ">=6.9.0" 898 + }, 899 + "peerDependencies": { 900 + "@babel/core": "^7.0.0-0" 901 + } 902 + }, 903 + "node_modules/@babel/plugin-transform-literals": { 904 + "version": "7.27.1", 905 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", 906 + "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", 907 + "dev": true, 908 + "license": "MIT", 909 + "dependencies": { 910 + "@babel/helper-plugin-utils": "^7.27.1" 911 + }, 912 + "engines": { 913 + "node": ">=6.9.0" 914 + }, 915 + "peerDependencies": { 916 + "@babel/core": "^7.0.0-0" 917 + } 918 + }, 919 + "node_modules/@babel/plugin-transform-logical-assignment-operators": { 920 + "version": "7.28.6", 921 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.28.6.tgz", 922 + "integrity": "sha512-+anKKair6gpi8VsM/95kmomGNMD0eLz1NQ8+Pfw5sAwWH9fGYXT50E55ZpV0pHUHWf6IUTWPM+f/7AAff+wr9A==", 923 + "dev": true, 924 + "license": "MIT", 925 + "dependencies": { 926 + "@babel/helper-plugin-utils": "^7.28.6" 927 + }, 928 + "engines": { 929 + "node": ">=6.9.0" 930 + }, 931 + "peerDependencies": { 932 + "@babel/core": "^7.0.0-0" 933 + } 934 + }, 935 + "node_modules/@babel/plugin-transform-member-expression-literals": { 936 + "version": "7.27.1", 937 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz", 938 + "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==", 939 + "dev": true, 940 + "license": "MIT", 941 + "dependencies": { 942 + "@babel/helper-plugin-utils": "^7.27.1" 943 + }, 944 + "engines": { 945 + "node": ">=6.9.0" 946 + }, 947 + "peerDependencies": { 948 + "@babel/core": "^7.0.0-0" 949 + } 950 + }, 951 + "node_modules/@babel/plugin-transform-modules-amd": { 952 + "version": "7.27.1", 953 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz", 954 + "integrity": "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==", 955 + "dev": true, 956 + "license": "MIT", 957 + "dependencies": { 958 + "@babel/helper-module-transforms": "^7.27.1", 959 + "@babel/helper-plugin-utils": "^7.27.1" 960 + }, 961 + "engines": { 962 + "node": ">=6.9.0" 963 + }, 964 + "peerDependencies": { 965 + "@babel/core": "^7.0.0-0" 966 + } 967 + }, 968 + "node_modules/@babel/plugin-transform-modules-commonjs": { 969 + "version": "7.28.6", 970 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.28.6.tgz", 971 + "integrity": "sha512-jppVbf8IV9iWWwWTQIxJMAJCWBuuKx71475wHwYytrRGQ2CWiDvYlADQno3tcYpS/T2UUWFQp3nVtYfK/YBQrA==", 972 + "dev": true, 973 + "license": "MIT", 974 + "dependencies": { 975 + "@babel/helper-module-transforms": "^7.28.6", 976 + "@babel/helper-plugin-utils": "^7.28.6" 977 + }, 978 + "engines": { 979 + "node": ">=6.9.0" 980 + }, 981 + "peerDependencies": { 982 + "@babel/core": "^7.0.0-0" 983 + } 984 + }, 985 + "node_modules/@babel/plugin-transform-modules-systemjs": { 986 + "version": "7.29.0", 987 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.0.tgz", 988 + "integrity": "sha512-PrujnVFbOdUpw4UHiVwKvKRLMMic8+eC0CuNlxjsyZUiBjhFdPsewdXCkveh2KqBA9/waD0W1b4hXSOBQJezpQ==", 989 + "dev": true, 990 + "license": "MIT", 991 + "dependencies": { 992 + "@babel/helper-module-transforms": "^7.28.6", 993 + "@babel/helper-plugin-utils": "^7.28.6", 994 + "@babel/helper-validator-identifier": "^7.28.5", 995 + "@babel/traverse": "^7.29.0" 996 + }, 997 + "engines": { 998 + "node": ">=6.9.0" 999 + }, 1000 + "peerDependencies": { 1001 + "@babel/core": "^7.0.0-0" 1002 + } 1003 + }, 1004 + "node_modules/@babel/plugin-transform-modules-umd": { 1005 + "version": "7.27.1", 1006 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz", 1007 + "integrity": "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==", 1008 + "dev": true, 1009 + "license": "MIT", 1010 + "dependencies": { 1011 + "@babel/helper-module-transforms": "^7.27.1", 1012 + "@babel/helper-plugin-utils": "^7.27.1" 1013 + }, 1014 + "engines": { 1015 + "node": ">=6.9.0" 1016 + }, 1017 + "peerDependencies": { 1018 + "@babel/core": "^7.0.0-0" 1019 + } 1020 + }, 1021 + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { 1022 + "version": "7.29.0", 1023 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.29.0.tgz", 1024 + "integrity": "sha512-1CZQA5KNAD6ZYQLPw7oi5ewtDNxH/2vuCh+6SmvgDfhumForvs8a1o9n0UrEoBD8HU4djO2yWngTQlXl1NDVEQ==", 1025 + "dev": true, 1026 + "license": "MIT", 1027 + "dependencies": { 1028 + "@babel/helper-create-regexp-features-plugin": "^7.28.5", 1029 + "@babel/helper-plugin-utils": "^7.28.6" 1030 + }, 1031 + "engines": { 1032 + "node": ">=6.9.0" 1033 + }, 1034 + "peerDependencies": { 1035 + "@babel/core": "^7.0.0" 1036 + } 1037 + }, 1038 + "node_modules/@babel/plugin-transform-new-target": { 1039 + "version": "7.27.1", 1040 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz", 1041 + "integrity": "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==", 1042 + "dev": true, 1043 + "license": "MIT", 1044 + "dependencies": { 1045 + "@babel/helper-plugin-utils": "^7.27.1" 1046 + }, 1047 + "engines": { 1048 + "node": ">=6.9.0" 1049 + }, 1050 + "peerDependencies": { 1051 + "@babel/core": "^7.0.0-0" 1052 + } 1053 + }, 1054 + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { 1055 + "version": "7.28.6", 1056 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.28.6.tgz", 1057 + "integrity": "sha512-3wKbRgmzYbw24mDJXT7N+ADXw8BC/imU9yo9c9X9NKaLF1fW+e5H1U5QjMUBe4Qo4Ox/o++IyUkl1sVCLgevKg==", 1058 + "dev": true, 1059 + "license": "MIT", 1060 + "dependencies": { 1061 + "@babel/helper-plugin-utils": "^7.28.6" 1062 + }, 1063 + "engines": { 1064 + "node": ">=6.9.0" 1065 + }, 1066 + "peerDependencies": { 1067 + "@babel/core": "^7.0.0-0" 1068 + } 1069 + }, 1070 + "node_modules/@babel/plugin-transform-numeric-separator": { 1071 + "version": "7.28.6", 1072 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.28.6.tgz", 1073 + "integrity": "sha512-SJR8hPynj8outz+SlStQSwvziMN4+Bq99it4tMIf5/Caq+3iOc0JtKyse8puvyXkk3eFRIA5ID/XfunGgO5i6w==", 1074 + "dev": true, 1075 + "license": "MIT", 1076 + "dependencies": { 1077 + "@babel/helper-plugin-utils": "^7.28.6" 1078 + }, 1079 + "engines": { 1080 + "node": ">=6.9.0" 1081 + }, 1082 + "peerDependencies": { 1083 + "@babel/core": "^7.0.0-0" 1084 + } 1085 + }, 1086 + "node_modules/@babel/plugin-transform-object-rest-spread": { 1087 + "version": "7.28.6", 1088 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.6.tgz", 1089 + "integrity": "sha512-5rh+JR4JBC4pGkXLAcYdLHZjXudVxWMXbB6u6+E9lRL5TrGVbHt1TjxGbZ8CkmYw9zjkB7jutzOROArsqtncEA==", 1090 + "dev": true, 1091 + "license": "MIT", 1092 + "dependencies": { 1093 + "@babel/helper-compilation-targets": "^7.28.6", 1094 + "@babel/helper-plugin-utils": "^7.28.6", 1095 + "@babel/plugin-transform-destructuring": "^7.28.5", 1096 + "@babel/plugin-transform-parameters": "^7.27.7", 1097 + "@babel/traverse": "^7.28.6" 1098 + }, 1099 + "engines": { 1100 + "node": ">=6.9.0" 1101 + }, 1102 + "peerDependencies": { 1103 + "@babel/core": "^7.0.0-0" 1104 + } 1105 + }, 1106 + "node_modules/@babel/plugin-transform-object-super": { 1107 + "version": "7.27.1", 1108 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz", 1109 + "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==", 1110 + "dev": true, 1111 + "license": "MIT", 1112 + "dependencies": { 1113 + "@babel/helper-plugin-utils": "^7.27.1", 1114 + "@babel/helper-replace-supers": "^7.27.1" 1115 + }, 1116 + "engines": { 1117 + "node": ">=6.9.0" 1118 + }, 1119 + "peerDependencies": { 1120 + "@babel/core": "^7.0.0-0" 1121 + } 1122 + }, 1123 + "node_modules/@babel/plugin-transform-optional-catch-binding": { 1124 + "version": "7.28.6", 1125 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.28.6.tgz", 1126 + "integrity": "sha512-R8ja/Pyrv0OGAvAXQhSTmWyPJPml+0TMqXlO5w+AsMEiwb2fg3WkOvob7UxFSL3OIttFSGSRFKQsOhJ/X6HQdQ==", 1127 + "dev": true, 1128 + "license": "MIT", 1129 + "dependencies": { 1130 + "@babel/helper-plugin-utils": "^7.28.6" 1131 + }, 1132 + "engines": { 1133 + "node": ">=6.9.0" 1134 + }, 1135 + "peerDependencies": { 1136 + "@babel/core": "^7.0.0-0" 1137 + } 1138 + }, 1139 + "node_modules/@babel/plugin-transform-optional-chaining": { 1140 + "version": "7.28.6", 1141 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.28.6.tgz", 1142 + "integrity": "sha512-A4zobikRGJTsX9uqVFdafzGkqD30t26ck2LmOzAuLL8b2x6k3TIqRiT2xVvA9fNmFeTX484VpsdgmKNA0bS23w==", 1143 + "dev": true, 1144 + "license": "MIT", 1145 + "dependencies": { 1146 + "@babel/helper-plugin-utils": "^7.28.6", 1147 + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" 1148 + }, 1149 + "engines": { 1150 + "node": ">=6.9.0" 1151 + }, 1152 + "peerDependencies": { 1153 + "@babel/core": "^7.0.0-0" 1154 + } 1155 + }, 1156 + "node_modules/@babel/plugin-transform-parameters": { 1157 + "version": "7.27.7", 1158 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz", 1159 + "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==", 1160 + "dev": true, 1161 + "license": "MIT", 1162 + "dependencies": { 1163 + "@babel/helper-plugin-utils": "^7.27.1" 1164 + }, 1165 + "engines": { 1166 + "node": ">=6.9.0" 1167 + }, 1168 + "peerDependencies": { 1169 + "@babel/core": "^7.0.0-0" 1170 + } 1171 + }, 1172 + "node_modules/@babel/plugin-transform-private-methods": { 1173 + "version": "7.28.6", 1174 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.28.6.tgz", 1175 + "integrity": "sha512-piiuapX9CRv7+0st8lmuUlRSmX6mBcVeNQ1b4AYzJxfCMuBfB0vBXDiGSmm03pKJw1v6cZ8KSeM+oUnM6yAExg==", 1176 + "dev": true, 1177 + "license": "MIT", 1178 + "dependencies": { 1179 + "@babel/helper-create-class-features-plugin": "^7.28.6", 1180 + "@babel/helper-plugin-utils": "^7.28.6" 1181 + }, 1182 + "engines": { 1183 + "node": ">=6.9.0" 1184 + }, 1185 + "peerDependencies": { 1186 + "@babel/core": "^7.0.0-0" 1187 + } 1188 + }, 1189 + "node_modules/@babel/plugin-transform-private-property-in-object": { 1190 + "version": "7.28.6", 1191 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.28.6.tgz", 1192 + "integrity": "sha512-b97jvNSOb5+ehyQmBpmhOCiUC5oVK4PMnpRvO7+ymFBoqYjeDHIU9jnrNUuwHOiL9RpGDoKBpSViarV+BU+eVA==", 1193 + "dev": true, 1194 + "license": "MIT", 1195 + "dependencies": { 1196 + "@babel/helper-annotate-as-pure": "^7.27.3", 1197 + "@babel/helper-create-class-features-plugin": "^7.28.6", 1198 + "@babel/helper-plugin-utils": "^7.28.6" 1199 + }, 1200 + "engines": { 1201 + "node": ">=6.9.0" 1202 + }, 1203 + "peerDependencies": { 1204 + "@babel/core": "^7.0.0-0" 1205 + } 1206 + }, 1207 + "node_modules/@babel/plugin-transform-property-literals": { 1208 + "version": "7.27.1", 1209 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz", 1210 + "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==", 1211 + "dev": true, 1212 + "license": "MIT", 1213 + "dependencies": { 1214 + "@babel/helper-plugin-utils": "^7.27.1" 1215 + }, 1216 + "engines": { 1217 + "node": ">=6.9.0" 1218 + }, 1219 + "peerDependencies": { 1220 + "@babel/core": "^7.0.0-0" 1221 + } 1222 + }, 1223 + "node_modules/@babel/plugin-transform-react-jsx-self": { 1224 + "version": "7.27.1", 1225 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", 1226 + "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", 1227 + "dev": true, 1228 + "license": "MIT", 1229 + "dependencies": { 1230 + "@babel/helper-plugin-utils": "^7.27.1" 1231 + }, 1232 + "engines": { 1233 + "node": ">=6.9.0" 1234 + }, 1235 + "peerDependencies": { 1236 + "@babel/core": "^7.0.0-0" 1237 + } 1238 + }, 1239 + "node_modules/@babel/plugin-transform-react-jsx-source": { 1240 + "version": "7.27.1", 1241 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", 1242 + "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", 1243 + "dev": true, 1244 + "license": "MIT", 1245 + "dependencies": { 1246 + "@babel/helper-plugin-utils": "^7.27.1" 1247 + }, 1248 + "engines": { 1249 + "node": ">=6.9.0" 1250 + }, 1251 + "peerDependencies": { 1252 + "@babel/core": "^7.0.0-0" 1253 + } 1254 + }, 1255 + "node_modules/@babel/plugin-transform-regenerator": { 1256 + "version": "7.29.0", 1257 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.29.0.tgz", 1258 + "integrity": "sha512-FijqlqMA7DmRdg/aINBSs04y8XNTYw/lr1gJ2WsmBnnaNw1iS43EPkJW+zK7z65auG3AWRFXWj+NcTQwYptUog==", 1259 + "dev": true, 1260 + "license": "MIT", 1261 + "dependencies": { 1262 + "@babel/helper-plugin-utils": "^7.28.6" 1263 + }, 1264 + "engines": { 1265 + "node": ">=6.9.0" 1266 + }, 1267 + "peerDependencies": { 1268 + "@babel/core": "^7.0.0-0" 1269 + } 1270 + }, 1271 + "node_modules/@babel/plugin-transform-regexp-modifiers": { 1272 + "version": "7.28.6", 1273 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.28.6.tgz", 1274 + "integrity": "sha512-QGWAepm9qxpaIs7UM9FvUSnCGlb8Ua1RhyM4/veAxLwt3gMat/LSGrZixyuj4I6+Kn9iwvqCyPTtbdxanYoWYg==", 1275 + "dev": true, 1276 + "license": "MIT", 1277 + "dependencies": { 1278 + "@babel/helper-create-regexp-features-plugin": "^7.28.5", 1279 + "@babel/helper-plugin-utils": "^7.28.6" 1280 + }, 1281 + "engines": { 1282 + "node": ">=6.9.0" 1283 + }, 1284 + "peerDependencies": { 1285 + "@babel/core": "^7.0.0" 1286 + } 1287 + }, 1288 + "node_modules/@babel/plugin-transform-reserved-words": { 1289 + "version": "7.27.1", 1290 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz", 1291 + "integrity": "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==", 1292 + "dev": true, 1293 + "license": "MIT", 1294 + "dependencies": { 1295 + "@babel/helper-plugin-utils": "^7.27.1" 1296 + }, 1297 + "engines": { 1298 + "node": ">=6.9.0" 1299 + }, 1300 + "peerDependencies": { 1301 + "@babel/core": "^7.0.0-0" 1302 + } 1303 + }, 1304 + "node_modules/@babel/plugin-transform-shorthand-properties": { 1305 + "version": "7.27.1", 1306 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", 1307 + "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", 1308 + "dev": true, 1309 + "license": "MIT", 1310 + "dependencies": { 1311 + "@babel/helper-plugin-utils": "^7.27.1" 1312 + }, 1313 + "engines": { 1314 + "node": ">=6.9.0" 1315 + }, 1316 + "peerDependencies": { 1317 + "@babel/core": "^7.0.0-0" 1318 + } 1319 + }, 1320 + "node_modules/@babel/plugin-transform-spread": { 1321 + "version": "7.28.6", 1322 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.28.6.tgz", 1323 + "integrity": "sha512-9U4QObUC0FtJl05AsUcodau/RWDytrU6uKgkxu09mLR9HLDAtUMoPuuskm5huQsoktmsYpI+bGmq+iapDcriKA==", 1324 + "dev": true, 1325 + "license": "MIT", 1326 + "dependencies": { 1327 + "@babel/helper-plugin-utils": "^7.28.6", 1328 + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" 1329 + }, 1330 + "engines": { 1331 + "node": ">=6.9.0" 1332 + }, 1333 + "peerDependencies": { 1334 + "@babel/core": "^7.0.0-0" 1335 + } 1336 + }, 1337 + "node_modules/@babel/plugin-transform-sticky-regex": { 1338 + "version": "7.27.1", 1339 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", 1340 + "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", 1341 + "dev": true, 1342 + "license": "MIT", 1343 + "dependencies": { 1344 + "@babel/helper-plugin-utils": "^7.27.1" 1345 + }, 1346 + "engines": { 1347 + "node": ">=6.9.0" 1348 + }, 1349 + "peerDependencies": { 1350 + "@babel/core": "^7.0.0-0" 1351 + } 1352 + }, 1353 + "node_modules/@babel/plugin-transform-template-literals": { 1354 + "version": "7.27.1", 1355 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", 1356 + "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", 1357 + "dev": true, 1358 + "license": "MIT", 1359 + "dependencies": { 1360 + "@babel/helper-plugin-utils": "^7.27.1" 1361 + }, 1362 + "engines": { 1363 + "node": ">=6.9.0" 1364 + }, 1365 + "peerDependencies": { 1366 + "@babel/core": "^7.0.0-0" 1367 + } 1368 + }, 1369 + "node_modules/@babel/plugin-transform-typeof-symbol": { 1370 + "version": "7.27.1", 1371 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz", 1372 + "integrity": "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==", 1373 + "dev": true, 1374 + "license": "MIT", 1375 + "dependencies": { 1376 + "@babel/helper-plugin-utils": "^7.27.1" 1377 + }, 1378 + "engines": { 1379 + "node": ">=6.9.0" 1380 + }, 1381 + "peerDependencies": { 1382 + "@babel/core": "^7.0.0-0" 1383 + } 1384 + }, 1385 + "node_modules/@babel/plugin-transform-unicode-escapes": { 1386 + "version": "7.27.1", 1387 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz", 1388 + "integrity": "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==", 1389 + "dev": true, 1390 + "license": "MIT", 1391 + "dependencies": { 1392 + "@babel/helper-plugin-utils": "^7.27.1" 1393 + }, 1394 + "engines": { 1395 + "node": ">=6.9.0" 1396 + }, 1397 + "peerDependencies": { 1398 + "@babel/core": "^7.0.0-0" 1399 + } 1400 + }, 1401 + "node_modules/@babel/plugin-transform-unicode-property-regex": { 1402 + "version": "7.28.6", 1403 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.28.6.tgz", 1404 + "integrity": "sha512-4Wlbdl/sIZjzi/8St0evF0gEZrgOswVO6aOzqxh1kDZOl9WmLrHq2HtGhnOJZmHZYKP8WZ1MDLCt5DAWwRo57A==", 1405 + "dev": true, 1406 + "license": "MIT", 1407 + "dependencies": { 1408 + "@babel/helper-create-regexp-features-plugin": "^7.28.5", 1409 + "@babel/helper-plugin-utils": "^7.28.6" 1410 + }, 1411 + "engines": { 1412 + "node": ">=6.9.0" 1413 + }, 1414 + "peerDependencies": { 1415 + "@babel/core": "^7.0.0-0" 1416 + } 1417 + }, 1418 + "node_modules/@babel/plugin-transform-unicode-regex": { 1419 + "version": "7.27.1", 1420 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", 1421 + "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", 1422 + "dev": true, 1423 + "license": "MIT", 1424 + "dependencies": { 1425 + "@babel/helper-create-regexp-features-plugin": "^7.27.1", 1426 + "@babel/helper-plugin-utils": "^7.27.1" 1427 + }, 1428 + "engines": { 1429 + "node": ">=6.9.0" 1430 + }, 1431 + "peerDependencies": { 1432 + "@babel/core": "^7.0.0-0" 1433 + } 1434 + }, 1435 + "node_modules/@babel/plugin-transform-unicode-sets-regex": { 1436 + "version": "7.28.6", 1437 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.28.6.tgz", 1438 + "integrity": "sha512-/wHc/paTUmsDYN7SZkpWxogTOBNnlx7nBQYfy6JJlCT7G3mVhltk3e++N7zV0XfgGsrqBxd4rJQt9H16I21Y1Q==", 1439 + "dev": true, 1440 + "license": "MIT", 1441 + "dependencies": { 1442 + "@babel/helper-create-regexp-features-plugin": "^7.28.5", 1443 + "@babel/helper-plugin-utils": "^7.28.6" 1444 + }, 1445 + "engines": { 1446 + "node": ">=6.9.0" 1447 + }, 1448 + "peerDependencies": { 1449 + "@babel/core": "^7.0.0" 1450 + } 1451 + }, 1452 + "node_modules/@babel/preset-env": { 1453 + "version": "7.29.2", 1454 + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.29.2.tgz", 1455 + "integrity": "sha512-DYD23veRYGvBFhcTY1iUvJnDNpuqNd/BzBwCvzOTKUnJjKg5kpUBh3/u9585Agdkgj+QuygG7jLfOPWMa2KVNw==", 1456 + "dev": true, 1457 + "license": "MIT", 1458 + "dependencies": { 1459 + "@babel/compat-data": "^7.29.0", 1460 + "@babel/helper-compilation-targets": "^7.28.6", 1461 + "@babel/helper-plugin-utils": "^7.28.6", 1462 + "@babel/helper-validator-option": "^7.27.1", 1463 + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.28.5", 1464 + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", 1465 + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", 1466 + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", 1467 + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.6", 1468 + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", 1469 + "@babel/plugin-syntax-import-assertions": "^7.28.6", 1470 + "@babel/plugin-syntax-import-attributes": "^7.28.6", 1471 + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", 1472 + "@babel/plugin-transform-arrow-functions": "^7.27.1", 1473 + "@babel/plugin-transform-async-generator-functions": "^7.29.0", 1474 + "@babel/plugin-transform-async-to-generator": "^7.28.6", 1475 + "@babel/plugin-transform-block-scoped-functions": "^7.27.1", 1476 + "@babel/plugin-transform-block-scoping": "^7.28.6", 1477 + "@babel/plugin-transform-class-properties": "^7.28.6", 1478 + "@babel/plugin-transform-class-static-block": "^7.28.6", 1479 + "@babel/plugin-transform-classes": "^7.28.6", 1480 + "@babel/plugin-transform-computed-properties": "^7.28.6", 1481 + "@babel/plugin-transform-destructuring": "^7.28.5", 1482 + "@babel/plugin-transform-dotall-regex": "^7.28.6", 1483 + "@babel/plugin-transform-duplicate-keys": "^7.27.1", 1484 + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.29.0", 1485 + "@babel/plugin-transform-dynamic-import": "^7.27.1", 1486 + "@babel/plugin-transform-explicit-resource-management": "^7.28.6", 1487 + "@babel/plugin-transform-exponentiation-operator": "^7.28.6", 1488 + "@babel/plugin-transform-export-namespace-from": "^7.27.1", 1489 + "@babel/plugin-transform-for-of": "^7.27.1", 1490 + "@babel/plugin-transform-function-name": "^7.27.1", 1491 + "@babel/plugin-transform-json-strings": "^7.28.6", 1492 + "@babel/plugin-transform-literals": "^7.27.1", 1493 + "@babel/plugin-transform-logical-assignment-operators": "^7.28.6", 1494 + "@babel/plugin-transform-member-expression-literals": "^7.27.1", 1495 + "@babel/plugin-transform-modules-amd": "^7.27.1", 1496 + "@babel/plugin-transform-modules-commonjs": "^7.28.6", 1497 + "@babel/plugin-transform-modules-systemjs": "^7.29.0", 1498 + "@babel/plugin-transform-modules-umd": "^7.27.1", 1499 + "@babel/plugin-transform-named-capturing-groups-regex": "^7.29.0", 1500 + "@babel/plugin-transform-new-target": "^7.27.1", 1501 + "@babel/plugin-transform-nullish-coalescing-operator": "^7.28.6", 1502 + "@babel/plugin-transform-numeric-separator": "^7.28.6", 1503 + "@babel/plugin-transform-object-rest-spread": "^7.28.6", 1504 + "@babel/plugin-transform-object-super": "^7.27.1", 1505 + "@babel/plugin-transform-optional-catch-binding": "^7.28.6", 1506 + "@babel/plugin-transform-optional-chaining": "^7.28.6", 1507 + "@babel/plugin-transform-parameters": "^7.27.7", 1508 + "@babel/plugin-transform-private-methods": "^7.28.6", 1509 + "@babel/plugin-transform-private-property-in-object": "^7.28.6", 1510 + "@babel/plugin-transform-property-literals": "^7.27.1", 1511 + "@babel/plugin-transform-regenerator": "^7.29.0", 1512 + "@babel/plugin-transform-regexp-modifiers": "^7.28.6", 1513 + "@babel/plugin-transform-reserved-words": "^7.27.1", 1514 + "@babel/plugin-transform-shorthand-properties": "^7.27.1", 1515 + "@babel/plugin-transform-spread": "^7.28.6", 1516 + "@babel/plugin-transform-sticky-regex": "^7.27.1", 1517 + "@babel/plugin-transform-template-literals": "^7.27.1", 1518 + "@babel/plugin-transform-typeof-symbol": "^7.27.1", 1519 + "@babel/plugin-transform-unicode-escapes": "^7.27.1", 1520 + "@babel/plugin-transform-unicode-property-regex": "^7.28.6", 1521 + "@babel/plugin-transform-unicode-regex": "^7.27.1", 1522 + "@babel/plugin-transform-unicode-sets-regex": "^7.28.6", 1523 + "@babel/preset-modules": "0.1.6-no-external-plugins", 1524 + "babel-plugin-polyfill-corejs2": "^0.4.15", 1525 + "babel-plugin-polyfill-corejs3": "^0.14.0", 1526 + "babel-plugin-polyfill-regenerator": "^0.6.6", 1527 + "core-js-compat": "^3.48.0", 1528 + "semver": "^6.3.1" 1529 + }, 1530 + "engines": { 1531 + "node": ">=6.9.0" 1532 + }, 1533 + "peerDependencies": { 1534 + "@babel/core": "^7.0.0-0" 1535 + } 1536 + }, 1537 + "node_modules/@babel/preset-modules": { 1538 + "version": "0.1.6-no-external-plugins", 1539 + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", 1540 + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", 1541 + "dev": true, 1542 + "license": "MIT", 1543 + "dependencies": { 1544 + "@babel/helper-plugin-utils": "^7.0.0", 1545 + "@babel/types": "^7.4.4", 1546 + "esutils": "^2.0.2" 1547 + }, 1548 + "peerDependencies": { 1549 + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" 1550 + } 1551 + }, 1552 + "node_modules/@babel/runtime": { 1553 + "version": "7.29.2", 1554 + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.2.tgz", 1555 + "integrity": "sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==", 1556 + "dev": true, 1557 + "license": "MIT", 1558 + "engines": { 1559 + "node": ">=6.9.0" 1560 + } 1561 + }, 1562 + "node_modules/@babel/template": { 1563 + "version": "7.28.6", 1564 + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", 1565 + "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", 1566 + "dev": true, 1567 + "license": "MIT", 1568 + "dependencies": { 1569 + "@babel/code-frame": "^7.28.6", 1570 + "@babel/parser": "^7.28.6", 1571 + "@babel/types": "^7.28.6" 1572 + }, 1573 + "engines": { 1574 + "node": ">=6.9.0" 1575 + } 1576 + }, 1577 + "node_modules/@babel/traverse": { 1578 + "version": "7.29.0", 1579 + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", 1580 + "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", 1581 + "dev": true, 1582 + "license": "MIT", 1583 + "dependencies": { 1584 + "@babel/code-frame": "^7.29.0", 1585 + "@babel/generator": "^7.29.0", 1586 + "@babel/helper-globals": "^7.28.0", 1587 + "@babel/parser": "^7.29.0", 1588 + "@babel/template": "^7.28.6", 1589 + "@babel/types": "^7.29.0", 1590 + "debug": "^4.3.1" 1591 + }, 1592 + "engines": { 1593 + "node": ">=6.9.0" 1594 + } 1595 + }, 1596 + "node_modules/@babel/types": { 1597 + "version": "7.29.0", 1598 + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", 1599 + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", 1600 + "dev": true, 1601 + "license": "MIT", 1602 + "dependencies": { 1603 + "@babel/helper-string-parser": "^7.27.1", 1604 + "@babel/helper-validator-identifier": "^7.28.5" 1605 + }, 1606 + "engines": { 1607 + "node": ">=6.9.0" 1608 + } 1609 + }, 1610 + "node_modules/@esbuild/aix-ppc64": { 1611 + "version": "0.27.7", 1612 + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.7.tgz", 1613 + "integrity": "sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==", 1614 + "cpu": [ 1615 + "ppc64" 1616 + ], 1617 + "dev": true, 1618 + "license": "MIT", 1619 + "optional": true, 1620 + "os": [ 1621 + "aix" 1622 + ], 1623 + "engines": { 1624 + "node": ">=18" 1625 + } 1626 + }, 1627 + "node_modules/@esbuild/android-arm": { 1628 + "version": "0.27.7", 1629 + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.7.tgz", 1630 + "integrity": "sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==", 1631 + "cpu": [ 1632 + "arm" 1633 + ], 1634 + "dev": true, 1635 + "license": "MIT", 1636 + "optional": true, 1637 + "os": [ 1638 + "android" 1639 + ], 1640 + "engines": { 1641 + "node": ">=18" 1642 + } 1643 + }, 1644 + "node_modules/@esbuild/android-arm64": { 1645 + "version": "0.27.7", 1646 + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.7.tgz", 1647 + "integrity": "sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==", 1648 + "cpu": [ 1649 + "arm64" 1650 + ], 1651 + "dev": true, 1652 + "license": "MIT", 1653 + "optional": true, 1654 + "os": [ 1655 + "android" 1656 + ], 1657 + "engines": { 1658 + "node": ">=18" 1659 + } 1660 + }, 1661 + "node_modules/@esbuild/android-x64": { 1662 + "version": "0.27.7", 1663 + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.7.tgz", 1664 + "integrity": "sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==", 1665 + "cpu": [ 1666 + "x64" 1667 + ], 1668 + "dev": true, 1669 + "license": "MIT", 1670 + "optional": true, 1671 + "os": [ 1672 + "android" 1673 + ], 1674 + "engines": { 1675 + "node": ">=18" 1676 + } 1677 + }, 1678 + "node_modules/@esbuild/darwin-arm64": { 1679 + "version": "0.27.7", 1680 + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.7.tgz", 1681 + "integrity": "sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==", 1682 + "cpu": [ 1683 + "arm64" 1684 + ], 1685 + "dev": true, 1686 + "license": "MIT", 1687 + "optional": true, 1688 + "os": [ 1689 + "darwin" 1690 + ], 1691 + "engines": { 1692 + "node": ">=18" 1693 + } 1694 + }, 1695 + "node_modules/@esbuild/darwin-x64": { 1696 + "version": "0.27.7", 1697 + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.7.tgz", 1698 + "integrity": "sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==", 1699 + "cpu": [ 1700 + "x64" 1701 + ], 1702 + "dev": true, 1703 + "license": "MIT", 1704 + "optional": true, 1705 + "os": [ 1706 + "darwin" 1707 + ], 1708 + "engines": { 1709 + "node": ">=18" 1710 + } 1711 + }, 1712 + "node_modules/@esbuild/freebsd-arm64": { 1713 + "version": "0.27.7", 1714 + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.7.tgz", 1715 + "integrity": "sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==", 1716 + "cpu": [ 1717 + "arm64" 1718 + ], 1719 + "dev": true, 1720 + "license": "MIT", 1721 + "optional": true, 1722 + "os": [ 1723 + "freebsd" 1724 + ], 1725 + "engines": { 1726 + "node": ">=18" 1727 + } 1728 + }, 1729 + "node_modules/@esbuild/freebsd-x64": { 1730 + "version": "0.27.7", 1731 + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.7.tgz", 1732 + "integrity": "sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==", 1733 + "cpu": [ 1734 + "x64" 1735 + ], 1736 + "dev": true, 1737 + "license": "MIT", 1738 + "optional": true, 1739 + "os": [ 1740 + "freebsd" 1741 + ], 1742 + "engines": { 1743 + "node": ">=18" 1744 + } 1745 + }, 1746 + "node_modules/@esbuild/linux-arm": { 1747 + "version": "0.27.7", 1748 + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.7.tgz", 1749 + "integrity": "sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==", 1750 + "cpu": [ 1751 + "arm" 1752 + ], 1753 + "dev": true, 1754 + "license": "MIT", 1755 + "optional": true, 1756 + "os": [ 1757 + "linux" 1758 + ], 1759 + "engines": { 1760 + "node": ">=18" 1761 + } 1762 + }, 1763 + "node_modules/@esbuild/linux-arm64": { 1764 + "version": "0.27.7", 1765 + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.7.tgz", 1766 + "integrity": "sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==", 1767 + "cpu": [ 1768 + "arm64" 1769 + ], 1770 + "dev": true, 1771 + "license": "MIT", 1772 + "optional": true, 1773 + "os": [ 1774 + "linux" 1775 + ], 1776 + "engines": { 1777 + "node": ">=18" 1778 + } 1779 + }, 1780 + "node_modules/@esbuild/linux-ia32": { 1781 + "version": "0.27.7", 1782 + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.7.tgz", 1783 + "integrity": "sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==", 1784 + "cpu": [ 1785 + "ia32" 1786 + ], 1787 + "dev": true, 1788 + "license": "MIT", 1789 + "optional": true, 1790 + "os": [ 1791 + "linux" 1792 + ], 1793 + "engines": { 1794 + "node": ">=18" 1795 + } 1796 + }, 1797 + "node_modules/@esbuild/linux-loong64": { 1798 + "version": "0.27.7", 1799 + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.7.tgz", 1800 + "integrity": "sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==", 1801 + "cpu": [ 1802 + "loong64" 1803 + ], 1804 + "dev": true, 1805 + "license": "MIT", 1806 + "optional": true, 1807 + "os": [ 1808 + "linux" 1809 + ], 1810 + "engines": { 1811 + "node": ">=18" 1812 + } 1813 + }, 1814 + "node_modules/@esbuild/linux-mips64el": { 1815 + "version": "0.27.7", 1816 + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.7.tgz", 1817 + "integrity": "sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==", 1818 + "cpu": [ 1819 + "mips64el" 1820 + ], 1821 + "dev": true, 1822 + "license": "MIT", 1823 + "optional": true, 1824 + "os": [ 1825 + "linux" 1826 + ], 1827 + "engines": { 1828 + "node": ">=18" 1829 + } 1830 + }, 1831 + "node_modules/@esbuild/linux-ppc64": { 1832 + "version": "0.27.7", 1833 + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.7.tgz", 1834 + "integrity": "sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==", 1835 + "cpu": [ 1836 + "ppc64" 1837 + ], 1838 + "dev": true, 1839 + "license": "MIT", 1840 + "optional": true, 1841 + "os": [ 1842 + "linux" 1843 + ], 1844 + "engines": { 1845 + "node": ">=18" 1846 + } 1847 + }, 1848 + "node_modules/@esbuild/linux-riscv64": { 1849 + "version": "0.27.7", 1850 + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.7.tgz", 1851 + "integrity": "sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==", 1852 + "cpu": [ 1853 + "riscv64" 1854 + ], 1855 + "dev": true, 1856 + "license": "MIT", 1857 + "optional": true, 1858 + "os": [ 1859 + "linux" 1860 + ], 1861 + "engines": { 1862 + "node": ">=18" 1863 + } 1864 + }, 1865 + "node_modules/@esbuild/linux-s390x": { 1866 + "version": "0.27.7", 1867 + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.7.tgz", 1868 + "integrity": "sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==", 1869 + "cpu": [ 1870 + "s390x" 1871 + ], 1872 + "dev": true, 1873 + "license": "MIT", 1874 + "optional": true, 1875 + "os": [ 1876 + "linux" 1877 + ], 1878 + "engines": { 1879 + "node": ">=18" 1880 + } 1881 + }, 1882 + "node_modules/@esbuild/linux-x64": { 1883 + "version": "0.27.7", 1884 + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.7.tgz", 1885 + "integrity": "sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==", 1886 + "cpu": [ 1887 + "x64" 1888 + ], 1889 + "dev": true, 1890 + "license": "MIT", 1891 + "optional": true, 1892 + "os": [ 1893 + "linux" 1894 + ], 1895 + "engines": { 1896 + "node": ">=18" 1897 + } 1898 + }, 1899 + "node_modules/@esbuild/netbsd-arm64": { 1900 + "version": "0.27.7", 1901 + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.7.tgz", 1902 + "integrity": "sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==", 1903 + "cpu": [ 1904 + "arm64" 1905 + ], 1906 + "dev": true, 1907 + "license": "MIT", 1908 + "optional": true, 1909 + "os": [ 1910 + "netbsd" 1911 + ], 1912 + "engines": { 1913 + "node": ">=18" 1914 + } 1915 + }, 1916 + "node_modules/@esbuild/netbsd-x64": { 1917 + "version": "0.27.7", 1918 + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.7.tgz", 1919 + "integrity": "sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==", 1920 + "cpu": [ 1921 + "x64" 1922 + ], 1923 + "dev": true, 1924 + "license": "MIT", 1925 + "optional": true, 1926 + "os": [ 1927 + "netbsd" 1928 + ], 1929 + "engines": { 1930 + "node": ">=18" 1931 + } 1932 + }, 1933 + "node_modules/@esbuild/openbsd-arm64": { 1934 + "version": "0.27.7", 1935 + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.7.tgz", 1936 + "integrity": "sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==", 1937 + "cpu": [ 1938 + "arm64" 1939 + ], 1940 + "dev": true, 1941 + "license": "MIT", 1942 + "optional": true, 1943 + "os": [ 1944 + "openbsd" 1945 + ], 1946 + "engines": { 1947 + "node": ">=18" 1948 + } 1949 + }, 1950 + "node_modules/@esbuild/openbsd-x64": { 1951 + "version": "0.27.7", 1952 + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.7.tgz", 1953 + "integrity": "sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==", 1954 + "cpu": [ 1955 + "x64" 1956 + ], 1957 + "dev": true, 1958 + "license": "MIT", 1959 + "optional": true, 1960 + "os": [ 1961 + "openbsd" 1962 + ], 1963 + "engines": { 1964 + "node": ">=18" 1965 + } 1966 + }, 1967 + "node_modules/@esbuild/openharmony-arm64": { 1968 + "version": "0.27.7", 1969 + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.7.tgz", 1970 + "integrity": "sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==", 1971 + "cpu": [ 1972 + "arm64" 1973 + ], 1974 + "dev": true, 1975 + "license": "MIT", 1976 + "optional": true, 1977 + "os": [ 1978 + "openharmony" 1979 + ], 1980 + "engines": { 1981 + "node": ">=18" 1982 + } 1983 + }, 1984 + "node_modules/@esbuild/sunos-x64": { 1985 + "version": "0.27.7", 1986 + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.7.tgz", 1987 + "integrity": "sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==", 1988 + "cpu": [ 1989 + "x64" 1990 + ], 1991 + "dev": true, 1992 + "license": "MIT", 1993 + "optional": true, 1994 + "os": [ 1995 + "sunos" 1996 + ], 1997 + "engines": { 1998 + "node": ">=18" 1999 + } 2000 + }, 2001 + "node_modules/@esbuild/win32-arm64": { 2002 + "version": "0.27.7", 2003 + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.7.tgz", 2004 + "integrity": "sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==", 2005 + "cpu": [ 2006 + "arm64" 2007 + ], 2008 + "dev": true, 2009 + "license": "MIT", 2010 + "optional": true, 2011 + "os": [ 2012 + "win32" 2013 + ], 2014 + "engines": { 2015 + "node": ">=18" 2016 + } 2017 + }, 2018 + "node_modules/@esbuild/win32-ia32": { 2019 + "version": "0.27.7", 2020 + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.7.tgz", 2021 + "integrity": "sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==", 2022 + "cpu": [ 2023 + "ia32" 2024 + ], 2025 + "dev": true, 2026 + "license": "MIT", 2027 + "optional": true, 2028 + "os": [ 2029 + "win32" 2030 + ], 2031 + "engines": { 2032 + "node": ">=18" 2033 + } 2034 + }, 2035 + "node_modules/@esbuild/win32-x64": { 2036 + "version": "0.27.7", 2037 + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.7.tgz", 2038 + "integrity": "sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==", 2039 + "cpu": [ 2040 + "x64" 2041 + ], 2042 + "dev": true, 2043 + "license": "MIT", 2044 + "optional": true, 2045 + "os": [ 2046 + "win32" 2047 + ], 2048 + "engines": { 2049 + "node": ">=18" 2050 + } 2051 + }, 2052 + "node_modules/@eslint-community/eslint-utils": { 2053 + "version": "4.9.1", 2054 + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", 2055 + "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", 2056 + "dev": true, 2057 + "license": "MIT", 2058 + "dependencies": { 2059 + "eslint-visitor-keys": "^3.4.3" 2060 + }, 2061 + "engines": { 2062 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 2063 + }, 2064 + "funding": { 2065 + "url": "https://opencollective.com/eslint" 2066 + }, 2067 + "peerDependencies": { 2068 + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" 2069 + } 2070 + }, 2071 + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { 2072 + "version": "3.4.3", 2073 + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", 2074 + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", 2075 + "dev": true, 2076 + "license": "Apache-2.0", 2077 + "engines": { 2078 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 2079 + }, 2080 + "funding": { 2081 + "url": "https://opencollective.com/eslint" 2082 + } 2083 + }, 2084 + "node_modules/@eslint-community/regexpp": { 2085 + "version": "4.12.2", 2086 + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", 2087 + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", 2088 + "dev": true, 2089 + "license": "MIT", 2090 + "engines": { 2091 + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" 2092 + } 2093 + }, 2094 + "node_modules/@eslint/config-array": { 2095 + "version": "0.21.2", 2096 + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.2.tgz", 2097 + "integrity": "sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==", 2098 + "dev": true, 2099 + "license": "Apache-2.0", 2100 + "dependencies": { 2101 + "@eslint/object-schema": "^2.1.7", 2102 + "debug": "^4.3.1", 2103 + "minimatch": "^3.1.5" 2104 + }, 2105 + "engines": { 2106 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 2107 + } 2108 + }, 2109 + "node_modules/@eslint/config-helpers": { 2110 + "version": "0.4.2", 2111 + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", 2112 + "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", 2113 + "dev": true, 2114 + "license": "Apache-2.0", 2115 + "dependencies": { 2116 + "@eslint/core": "^0.17.0" 2117 + }, 2118 + "engines": { 2119 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 2120 + } 2121 + }, 2122 + "node_modules/@eslint/core": { 2123 + "version": "0.17.0", 2124 + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", 2125 + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", 2126 + "dev": true, 2127 + "license": "Apache-2.0", 2128 + "dependencies": { 2129 + "@types/json-schema": "^7.0.15" 2130 + }, 2131 + "engines": { 2132 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 2133 + } 2134 + }, 2135 + "node_modules/@eslint/eslintrc": { 2136 + "version": "3.3.5", 2137 + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.5.tgz", 2138 + "integrity": "sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==", 2139 + "dev": true, 2140 + "license": "MIT", 2141 + "dependencies": { 2142 + "ajv": "^6.14.0", 2143 + "debug": "^4.3.2", 2144 + "espree": "^10.0.1", 2145 + "globals": "^14.0.0", 2146 + "ignore": "^5.2.0", 2147 + "import-fresh": "^3.2.1", 2148 + "js-yaml": "^4.1.1", 2149 + "minimatch": "^3.1.5", 2150 + "strip-json-comments": "^3.1.1" 2151 + }, 2152 + "engines": { 2153 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 2154 + }, 2155 + "funding": { 2156 + "url": "https://opencollective.com/eslint" 2157 + } 2158 + }, 2159 + "node_modules/@eslint/eslintrc/node_modules/globals": { 2160 + "version": "14.0.0", 2161 + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", 2162 + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", 2163 + "dev": true, 2164 + "license": "MIT", 2165 + "engines": { 2166 + "node": ">=18" 2167 + }, 2168 + "funding": { 2169 + "url": "https://github.com/sponsors/sindresorhus" 2170 + } 2171 + }, 2172 + "node_modules/@eslint/js": { 2173 + "version": "9.39.4", 2174 + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.4.tgz", 2175 + "integrity": "sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==", 2176 + "dev": true, 2177 + "license": "MIT", 2178 + "engines": { 2179 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 2180 + }, 2181 + "funding": { 2182 + "url": "https://eslint.org/donate" 2183 + } 2184 + }, 2185 + "node_modules/@eslint/object-schema": { 2186 + "version": "2.1.7", 2187 + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", 2188 + "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", 2189 + "dev": true, 2190 + "license": "Apache-2.0", 2191 + "engines": { 2192 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 2193 + } 2194 + }, 2195 + "node_modules/@eslint/plugin-kit": { 2196 + "version": "0.4.1", 2197 + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", 2198 + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", 2199 + "dev": true, 2200 + "license": "Apache-2.0", 2201 + "dependencies": { 2202 + "@eslint/core": "^0.17.0", 2203 + "levn": "^0.4.1" 2204 + }, 2205 + "engines": { 2206 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 2207 + } 2208 + }, 2209 + "node_modules/@humanfs/core": { 2210 + "version": "0.19.1", 2211 + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", 2212 + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", 2213 + "dev": true, 2214 + "license": "Apache-2.0", 2215 + "engines": { 2216 + "node": ">=18.18.0" 2217 + } 2218 + }, 2219 + "node_modules/@humanfs/node": { 2220 + "version": "0.16.7", 2221 + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz", 2222 + "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==", 2223 + "dev": true, 2224 + "license": "Apache-2.0", 2225 + "dependencies": { 2226 + "@humanfs/core": "^0.19.1", 2227 + "@humanwhocodes/retry": "^0.4.0" 2228 + }, 2229 + "engines": { 2230 + "node": ">=18.18.0" 2231 + } 2232 + }, 2233 + "node_modules/@humanwhocodes/module-importer": { 2234 + "version": "1.0.1", 2235 + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", 2236 + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", 2237 + "dev": true, 2238 + "license": "Apache-2.0", 2239 + "engines": { 2240 + "node": ">=12.22" 2241 + }, 2242 + "funding": { 2243 + "type": "github", 2244 + "url": "https://github.com/sponsors/nzakas" 2245 + } 2246 + }, 2247 + "node_modules/@humanwhocodes/retry": { 2248 + "version": "0.4.3", 2249 + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", 2250 + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", 2251 + "dev": true, 2252 + "license": "Apache-2.0", 2253 + "engines": { 2254 + "node": ">=18.18" 2255 + }, 2256 + "funding": { 2257 + "type": "github", 2258 + "url": "https://github.com/sponsors/nzakas" 2259 + } 2260 + }, 2261 + "node_modules/@isaacs/cliui": { 2262 + "version": "9.0.0", 2263 + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-9.0.0.tgz", 2264 + "integrity": "sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==", 2265 + "dev": true, 2266 + "license": "BlueOak-1.0.0", 2267 + "engines": { 2268 + "node": ">=18" 2269 + } 2270 + }, 2271 + "node_modules/@jridgewell/gen-mapping": { 2272 + "version": "0.3.13", 2273 + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", 2274 + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", 2275 + "dev": true, 2276 + "license": "MIT", 2277 + "dependencies": { 2278 + "@jridgewell/sourcemap-codec": "^1.5.0", 2279 + "@jridgewell/trace-mapping": "^0.3.24" 2280 + } 2281 + }, 2282 + "node_modules/@jridgewell/remapping": { 2283 + "version": "2.3.5", 2284 + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", 2285 + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", 2286 + "dev": true, 2287 + "license": "MIT", 2288 + "dependencies": { 2289 + "@jridgewell/gen-mapping": "^0.3.5", 2290 + "@jridgewell/trace-mapping": "^0.3.24" 2291 + } 2292 + }, 2293 + "node_modules/@jridgewell/resolve-uri": { 2294 + "version": "3.1.2", 2295 + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", 2296 + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", 2297 + "dev": true, 2298 + "license": "MIT", 2299 + "engines": { 2300 + "node": ">=6.0.0" 2301 + } 2302 + }, 2303 + "node_modules/@jridgewell/source-map": { 2304 + "version": "0.3.11", 2305 + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", 2306 + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", 2307 + "dev": true, 2308 + "license": "MIT", 2309 + "dependencies": { 2310 + "@jridgewell/gen-mapping": "^0.3.5", 2311 + "@jridgewell/trace-mapping": "^0.3.25" 2312 + } 2313 + }, 2314 + "node_modules/@jridgewell/sourcemap-codec": { 2315 + "version": "1.5.5", 2316 + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", 2317 + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", 2318 + "dev": true, 2319 + "license": "MIT" 2320 + }, 2321 + "node_modules/@jridgewell/trace-mapping": { 2322 + "version": "0.3.31", 2323 + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", 2324 + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", 2325 + "dev": true, 2326 + "license": "MIT", 2327 + "dependencies": { 2328 + "@jridgewell/resolve-uri": "^3.1.0", 2329 + "@jridgewell/sourcemap-codec": "^1.4.14" 2330 + } 2331 + }, 2332 + "node_modules/@nodelib/fs.scandir": { 2333 + "version": "2.1.5", 2334 + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 2335 + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 2336 + "dev": true, 2337 + "license": "MIT", 2338 + "dependencies": { 2339 + "@nodelib/fs.stat": "2.0.5", 2340 + "run-parallel": "^1.1.9" 2341 + }, 2342 + "engines": { 2343 + "node": ">= 8" 2344 + } 2345 + }, 2346 + "node_modules/@nodelib/fs.stat": { 2347 + "version": "2.0.5", 2348 + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 2349 + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", 2350 + "dev": true, 2351 + "license": "MIT", 2352 + "engines": { 2353 + "node": ">= 8" 2354 + } 2355 + }, 2356 + "node_modules/@nodelib/fs.walk": { 2357 + "version": "1.2.8", 2358 + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 2359 + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 2360 + "dev": true, 2361 + "license": "MIT", 2362 + "dependencies": { 2363 + "@nodelib/fs.scandir": "2.1.5", 2364 + "fastq": "^1.6.0" 2365 + }, 2366 + "engines": { 2367 + "node": ">= 8" 2368 + } 2369 + }, 2370 + "node_modules/@radix-ui/react-compose-refs": { 2371 + "version": "1.1.2", 2372 + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", 2373 + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", 2374 + "license": "MIT", 2375 + "peerDependencies": { 2376 + "@types/react": "*", 2377 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 2378 + }, 2379 + "peerDependenciesMeta": { 2380 + "@types/react": { 2381 + "optional": true 2382 + } 2383 + } 2384 + }, 2385 + "node_modules/@radix-ui/react-slot": { 2386 + "version": "1.2.4", 2387 + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.4.tgz", 2388 + "integrity": "sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA==", 2389 + "license": "MIT", 2390 + "dependencies": { 2391 + "@radix-ui/react-compose-refs": "1.1.2" 2392 + }, 2393 + "peerDependencies": { 2394 + "@types/react": "*", 2395 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 2396 + }, 2397 + "peerDependenciesMeta": { 2398 + "@types/react": { 2399 + "optional": true 2400 + } 2401 + } 2402 + }, 2403 + "node_modules/@remix-run/router": { 2404 + "version": "1.23.2", 2405 + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.23.2.tgz", 2406 + "integrity": "sha512-Ic6m2U/rMjTkhERIa/0ZtXJP17QUi2CbWE7cqx4J58M8aA3QTfW+2UlQ4psvTX9IO1RfNVhK3pcpdjej7L+t2w==", 2407 + "license": "MIT", 2408 + "engines": { 2409 + "node": ">=14.0.0" 2410 + } 2411 + }, 2412 + "node_modules/@rolldown/pluginutils": { 2413 + "version": "1.0.0-rc.3", 2414 + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.3.tgz", 2415 + "integrity": "sha512-eybk3TjzzzV97Dlj5c+XrBFW57eTNhzod66y9HrBlzJ6NsCrWCp/2kaPS3K9wJmurBC0Tdw4yPjXKZqlznim3Q==", 2416 + "dev": true, 2417 + "license": "MIT" 2418 + }, 2419 + "node_modules/@rollup/plugin-node-resolve": { 2420 + "version": "15.3.1", 2421 + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.3.1.tgz", 2422 + "integrity": "sha512-tgg6b91pAybXHJQMAAwW9VuWBO6Thi+q7BCNARLwSqlmsHz0XYURtGvh/AuwSADXSI4h/2uHbs7s4FzlZDGSGA==", 2423 + "dev": true, 2424 + "license": "MIT", 2425 + "dependencies": { 2426 + "@rollup/pluginutils": "^5.0.1", 2427 + "@types/resolve": "1.20.2", 2428 + "deepmerge": "^4.2.2", 2429 + "is-module": "^1.0.0", 2430 + "resolve": "^1.22.1" 2431 + }, 2432 + "engines": { 2433 + "node": ">=14.0.0" 2434 + }, 2435 + "peerDependencies": { 2436 + "rollup": "^2.78.0||^3.0.0||^4.0.0" 2437 + }, 2438 + "peerDependenciesMeta": { 2439 + "rollup": { 2440 + "optional": true 2441 + } 2442 + } 2443 + }, 2444 + "node_modules/@rollup/plugin-terser": { 2445 + "version": "0.4.4", 2446 + "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.4.4.tgz", 2447 + "integrity": "sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==", 2448 + "dev": true, 2449 + "license": "MIT", 2450 + "dependencies": { 2451 + "serialize-javascript": "^6.0.1", 2452 + "smob": "^1.0.0", 2453 + "terser": "^5.17.4" 2454 + }, 2455 + "engines": { 2456 + "node": ">=14.0.0" 2457 + }, 2458 + "peerDependencies": { 2459 + "rollup": "^2.0.0||^3.0.0||^4.0.0" 2460 + }, 2461 + "peerDependenciesMeta": { 2462 + "rollup": { 2463 + "optional": true 2464 + } 2465 + } 2466 + }, 2467 + "node_modules/@rollup/pluginutils": { 2468 + "version": "5.3.0", 2469 + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz", 2470 + "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==", 2471 + "dev": true, 2472 + "license": "MIT", 2473 + "dependencies": { 2474 + "@types/estree": "^1.0.0", 2475 + "estree-walker": "^2.0.2", 2476 + "picomatch": "^4.0.2" 2477 + }, 2478 + "engines": { 2479 + "node": ">=14.0.0" 2480 + }, 2481 + "peerDependencies": { 2482 + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" 2483 + }, 2484 + "peerDependenciesMeta": { 2485 + "rollup": { 2486 + "optional": true 2487 + } 2488 + } 2489 + }, 2490 + "node_modules/@rollup/rollup-android-arm-eabi": { 2491 + "version": "4.60.1", 2492 + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.1.tgz", 2493 + "integrity": "sha512-d6FinEBLdIiK+1uACUttJKfgZREXrF0Qc2SmLII7W2AD8FfiZ9Wjd+rD/iRuf5s5dWrr1GgwXCvPqOuDquOowA==", 2494 + "cpu": [ 2495 + "arm" 2496 + ], 2497 + "dev": true, 2498 + "license": "MIT", 2499 + "optional": true, 2500 + "os": [ 2501 + "android" 2502 + ] 2503 + }, 2504 + "node_modules/@rollup/rollup-android-arm64": { 2505 + "version": "4.60.1", 2506 + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.1.tgz", 2507 + "integrity": "sha512-YjG/EwIDvvYI1YvYbHvDz/BYHtkY4ygUIXHnTdLhG+hKIQFBiosfWiACWortsKPKU/+dUwQQCKQM3qrDe8c9BA==", 2508 + "cpu": [ 2509 + "arm64" 2510 + ], 2511 + "dev": true, 2512 + "license": "MIT", 2513 + "optional": true, 2514 + "os": [ 2515 + "android" 2516 + ] 2517 + }, 2518 + "node_modules/@rollup/rollup-darwin-arm64": { 2519 + "version": "4.60.1", 2520 + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.1.tgz", 2521 + "integrity": "sha512-mjCpF7GmkRtSJwon+Rq1N8+pI+8l7w5g9Z3vWj4T7abguC4Czwi3Yu/pFaLvA3TTeMVjnu3ctigusqWUfjZzvw==", 2522 + "cpu": [ 2523 + "arm64" 2524 + ], 2525 + "dev": true, 2526 + "license": "MIT", 2527 + "optional": true, 2528 + "os": [ 2529 + "darwin" 2530 + ] 2531 + }, 2532 + "node_modules/@rollup/rollup-darwin-x64": { 2533 + "version": "4.60.1", 2534 + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.1.tgz", 2535 + "integrity": "sha512-haZ7hJ1JT4e9hqkoT9R/19XW2QKqjfJVv+i5AGg57S+nLk9lQnJ1F/eZloRO3o9Scy9CM3wQ9l+dkXtcBgN5Ew==", 2536 + "cpu": [ 2537 + "x64" 2538 + ], 2539 + "dev": true, 2540 + "license": "MIT", 2541 + "optional": true, 2542 + "os": [ 2543 + "darwin" 2544 + ] 2545 + }, 2546 + "node_modules/@rollup/rollup-freebsd-arm64": { 2547 + "version": "4.60.1", 2548 + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.1.tgz", 2549 + "integrity": "sha512-czw90wpQq3ZsAVBlinZjAYTKduOjTywlG7fEeWKUA7oCmpA8xdTkxZZlwNJKWqILlq0wehoZcJYfBvOyhPTQ6w==", 2550 + "cpu": [ 2551 + "arm64" 2552 + ], 2553 + "dev": true, 2554 + "license": "MIT", 2555 + "optional": true, 2556 + "os": [ 2557 + "freebsd" 2558 + ] 2559 + }, 2560 + "node_modules/@rollup/rollup-freebsd-x64": { 2561 + "version": "4.60.1", 2562 + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.1.tgz", 2563 + "integrity": "sha512-KVB2rqsxTHuBtfOeySEyzEOB7ltlB/ux38iu2rBQzkjbwRVlkhAGIEDiiYnO2kFOkJp+Z7pUXKyrRRFuFUKt+g==", 2564 + "cpu": [ 2565 + "x64" 2566 + ], 2567 + "dev": true, 2568 + "license": "MIT", 2569 + "optional": true, 2570 + "os": [ 2571 + "freebsd" 2572 + ] 2573 + }, 2574 + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { 2575 + "version": "4.60.1", 2576 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.1.tgz", 2577 + "integrity": "sha512-L+34Qqil+v5uC0zEubW7uByo78WOCIrBvci69E7sFASRl0X7b/MB6Cqd1lky/CtcSVTydWa2WZwFuWexjS5o6g==", 2578 + "cpu": [ 2579 + "arm" 2580 + ], 2581 + "dev": true, 2582 + "libc": [ 2583 + "glibc" 2584 + ], 2585 + "license": "MIT", 2586 + "optional": true, 2587 + "os": [ 2588 + "linux" 2589 + ] 2590 + }, 2591 + "node_modules/@rollup/rollup-linux-arm-musleabihf": { 2592 + "version": "4.60.1", 2593 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.1.tgz", 2594 + "integrity": "sha512-n83O8rt4v34hgFzlkb1ycniJh7IR5RCIqt6mz1VRJD6pmhRi0CXdmfnLu9dIUS6buzh60IvACM842Ffb3xd6Gg==", 2595 + "cpu": [ 2596 + "arm" 2597 + ], 2598 + "dev": true, 2599 + "libc": [ 2600 + "musl" 2601 + ], 2602 + "license": "MIT", 2603 + "optional": true, 2604 + "os": [ 2605 + "linux" 2606 + ] 2607 + }, 2608 + "node_modules/@rollup/rollup-linux-arm64-gnu": { 2609 + "version": "4.60.1", 2610 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.1.tgz", 2611 + "integrity": "sha512-Nql7sTeAzhTAja3QXeAI48+/+GjBJ+QmAH13snn0AJSNL50JsDqotyudHyMbO2RbJkskbMbFJfIJKWA6R1LCJQ==", 2612 + "cpu": [ 2613 + "arm64" 2614 + ], 2615 + "dev": true, 2616 + "libc": [ 2617 + "glibc" 2618 + ], 2619 + "license": "MIT", 2620 + "optional": true, 2621 + "os": [ 2622 + "linux" 2623 + ] 2624 + }, 2625 + "node_modules/@rollup/rollup-linux-arm64-musl": { 2626 + "version": "4.60.1", 2627 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.1.tgz", 2628 + "integrity": "sha512-+pUymDhd0ys9GcKZPPWlFiZ67sTWV5UU6zOJat02M1+PiuSGDziyRuI/pPue3hoUwm2uGfxdL+trT6Z9rxnlMA==", 2629 + "cpu": [ 2630 + "arm64" 2631 + ], 2632 + "dev": true, 2633 + "libc": [ 2634 + "musl" 2635 + ], 2636 + "license": "MIT", 2637 + "optional": true, 2638 + "os": [ 2639 + "linux" 2640 + ] 2641 + }, 2642 + "node_modules/@rollup/rollup-linux-loong64-gnu": { 2643 + "version": "4.60.1", 2644 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.1.tgz", 2645 + "integrity": "sha512-VSvgvQeIcsEvY4bKDHEDWcpW4Yw7BtlKG1GUT4FzBUlEKQK0rWHYBqQt6Fm2taXS+1bXvJT6kICu5ZwqKCnvlQ==", 2646 + "cpu": [ 2647 + "loong64" 2648 + ], 2649 + "dev": true, 2650 + "libc": [ 2651 + "glibc" 2652 + ], 2653 + "license": "MIT", 2654 + "optional": true, 2655 + "os": [ 2656 + "linux" 2657 + ] 2658 + }, 2659 + "node_modules/@rollup/rollup-linux-loong64-musl": { 2660 + "version": "4.60.1", 2661 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.1.tgz", 2662 + "integrity": "sha512-4LqhUomJqwe641gsPp6xLfhqWMbQV04KtPp7/dIp0nzPxAkNY1AbwL5W0MQpcalLYk07vaW9Kp1PBhdpZYYcEw==", 2663 + "cpu": [ 2664 + "loong64" 2665 + ], 2666 + "dev": true, 2667 + "libc": [ 2668 + "musl" 2669 + ], 2670 + "license": "MIT", 2671 + "optional": true, 2672 + "os": [ 2673 + "linux" 2674 + ] 2675 + }, 2676 + "node_modules/@rollup/rollup-linux-ppc64-gnu": { 2677 + "version": "4.60.1", 2678 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.1.tgz", 2679 + "integrity": "sha512-tLQQ9aPvkBxOc/EUT6j3pyeMD6Hb8QF2BTBnCQWP/uu1lhc9AIrIjKnLYMEroIz/JvtGYgI9dF3AxHZNaEH0rw==", 2680 + "cpu": [ 2681 + "ppc64" 2682 + ], 2683 + "dev": true, 2684 + "libc": [ 2685 + "glibc" 2686 + ], 2687 + "license": "MIT", 2688 + "optional": true, 2689 + "os": [ 2690 + "linux" 2691 + ] 2692 + }, 2693 + "node_modules/@rollup/rollup-linux-ppc64-musl": { 2694 + "version": "4.60.1", 2695 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.1.tgz", 2696 + "integrity": "sha512-RMxFhJwc9fSXP6PqmAz4cbv3kAyvD1etJFjTx4ONqFP9DkTkXsAMU4v3Vyc5BgzC+anz7nS/9tp4obsKfqkDHg==", 2697 + "cpu": [ 2698 + "ppc64" 2699 + ], 2700 + "dev": true, 2701 + "libc": [ 2702 + "musl" 2703 + ], 2704 + "license": "MIT", 2705 + "optional": true, 2706 + "os": [ 2707 + "linux" 2708 + ] 2709 + }, 2710 + "node_modules/@rollup/rollup-linux-riscv64-gnu": { 2711 + "version": "4.60.1", 2712 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.1.tgz", 2713 + "integrity": "sha512-QKgFl+Yc1eEk6MmOBfRHYF6lTxiiiV3/z/BRrbSiW2I7AFTXoBFvdMEyglohPj//2mZS4hDOqeB0H1ACh3sBbg==", 2714 + "cpu": [ 2715 + "riscv64" 2716 + ], 2717 + "dev": true, 2718 + "libc": [ 2719 + "glibc" 2720 + ], 2721 + "license": "MIT", 2722 + "optional": true, 2723 + "os": [ 2724 + "linux" 2725 + ] 2726 + }, 2727 + "node_modules/@rollup/rollup-linux-riscv64-musl": { 2728 + "version": "4.60.1", 2729 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.1.tgz", 2730 + "integrity": "sha512-RAjXjP/8c6ZtzatZcA1RaQr6O1TRhzC+adn8YZDnChliZHviqIjmvFwHcxi4JKPSDAt6Uhf/7vqcBzQJy0PDJg==", 2731 + "cpu": [ 2732 + "riscv64" 2733 + ], 2734 + "dev": true, 2735 + "libc": [ 2736 + "musl" 2737 + ], 2738 + "license": "MIT", 2739 + "optional": true, 2740 + "os": [ 2741 + "linux" 2742 + ] 2743 + }, 2744 + "node_modules/@rollup/rollup-linux-s390x-gnu": { 2745 + "version": "4.60.1", 2746 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.1.tgz", 2747 + "integrity": "sha512-wcuocpaOlaL1COBYiA89O6yfjlp3RwKDeTIA0hM7OpmhR1Bjo9j31G1uQVpDlTvwxGn2nQs65fBFL5UFd76FcQ==", 2748 + "cpu": [ 2749 + "s390x" 2750 + ], 2751 + "dev": true, 2752 + "libc": [ 2753 + "glibc" 2754 + ], 2755 + "license": "MIT", 2756 + "optional": true, 2757 + "os": [ 2758 + "linux" 2759 + ] 2760 + }, 2761 + "node_modules/@rollup/rollup-linux-x64-gnu": { 2762 + "version": "4.60.1", 2763 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.1.tgz", 2764 + "integrity": "sha512-77PpsFQUCOiZR9+LQEFg9GClyfkNXj1MP6wRnzYs0EeWbPcHs02AXu4xuUbM1zhwn3wqaizle3AEYg5aeoohhg==", 2765 + "cpu": [ 2766 + "x64" 2767 + ], 2768 + "dev": true, 2769 + "libc": [ 2770 + "glibc" 2771 + ], 2772 + "license": "MIT", 2773 + "optional": true, 2774 + "os": [ 2775 + "linux" 2776 + ] 2777 + }, 2778 + "node_modules/@rollup/rollup-linux-x64-musl": { 2779 + "version": "4.60.1", 2780 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.1.tgz", 2781 + "integrity": "sha512-5cIATbk5vynAjqqmyBjlciMJl1+R/CwX9oLk/EyiFXDWd95KpHdrOJT//rnUl4cUcskrd0jCCw3wpZnhIHdD9w==", 2782 + "cpu": [ 2783 + "x64" 2784 + ], 2785 + "dev": true, 2786 + "libc": [ 2787 + "musl" 2788 + ], 2789 + "license": "MIT", 2790 + "optional": true, 2791 + "os": [ 2792 + "linux" 2793 + ] 2794 + }, 2795 + "node_modules/@rollup/rollup-openbsd-x64": { 2796 + "version": "4.60.1", 2797 + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.1.tgz", 2798 + "integrity": "sha512-cl0w09WsCi17mcmWqqglez9Gk8isgeWvoUZ3WiJFYSR3zjBQc2J5/ihSjpl+VLjPqjQ/1hJRcqBfLjssREQILw==", 2799 + "cpu": [ 2800 + "x64" 2801 + ], 2802 + "dev": true, 2803 + "license": "MIT", 2804 + "optional": true, 2805 + "os": [ 2806 + "openbsd" 2807 + ] 2808 + }, 2809 + "node_modules/@rollup/rollup-openharmony-arm64": { 2810 + "version": "4.60.1", 2811 + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.1.tgz", 2812 + "integrity": "sha512-4Cv23ZrONRbNtbZa37mLSueXUCtN7MXccChtKpUnQNgF010rjrjfHx3QxkS2PI7LqGT5xXyYs1a7LbzAwT0iCA==", 2813 + "cpu": [ 2814 + "arm64" 2815 + ], 2816 + "dev": true, 2817 + "license": "MIT", 2818 + "optional": true, 2819 + "os": [ 2820 + "openharmony" 2821 + ] 2822 + }, 2823 + "node_modules/@rollup/rollup-win32-arm64-msvc": { 2824 + "version": "4.60.1", 2825 + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.1.tgz", 2826 + "integrity": "sha512-i1okWYkA4FJICtr7KpYzFpRTHgy5jdDbZiWfvny21iIKky5YExiDXP+zbXzm3dUcFpkEeYNHgQ5fuG236JPq0g==", 2827 + "cpu": [ 2828 + "arm64" 2829 + ], 2830 + "dev": true, 2831 + "license": "MIT", 2832 + "optional": true, 2833 + "os": [ 2834 + "win32" 2835 + ] 2836 + }, 2837 + "node_modules/@rollup/rollup-win32-ia32-msvc": { 2838 + "version": "4.60.1", 2839 + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.1.tgz", 2840 + "integrity": "sha512-u09m3CuwLzShA0EYKMNiFgcjjzwqtUMLmuCJLeZWjjOYA3IT2Di09KaxGBTP9xVztWyIWjVdsB2E9goMjZvTQg==", 2841 + "cpu": [ 2842 + "ia32" 2843 + ], 2844 + "dev": true, 2845 + "license": "MIT", 2846 + "optional": true, 2847 + "os": [ 2848 + "win32" 2849 + ] 2850 + }, 2851 + "node_modules/@rollup/rollup-win32-x64-gnu": { 2852 + "version": "4.60.1", 2853 + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.1.tgz", 2854 + "integrity": "sha512-k+600V9Zl1CM7eZxJgMyTUzmrmhB/0XZnF4pRypKAlAgxmedUA+1v9R+XOFv56W4SlHEzfeMtzujLJD22Uz5zg==", 2855 + "cpu": [ 2856 + "x64" 2857 + ], 2858 + "dev": true, 2859 + "license": "MIT", 2860 + "optional": true, 2861 + "os": [ 2862 + "win32" 2863 + ] 2864 + }, 2865 + "node_modules/@rollup/rollup-win32-x64-msvc": { 2866 + "version": "4.60.1", 2867 + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.1.tgz", 2868 + "integrity": "sha512-lWMnixq/QzxyhTV6NjQJ4SFo1J6PvOX8vUx5Wb4bBPsEb+8xZ89Bz6kOXpfXj9ak9AHTQVQzlgzBEc1SyM27xQ==", 2869 + "cpu": [ 2870 + "x64" 2871 + ], 2872 + "dev": true, 2873 + "license": "MIT", 2874 + "optional": true, 2875 + "os": [ 2876 + "win32" 2877 + ] 2878 + }, 2879 + "node_modules/@surma/rollup-plugin-off-main-thread": { 2880 + "version": "2.2.3", 2881 + "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", 2882 + "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", 2883 + "dev": true, 2884 + "license": "Apache-2.0", 2885 + "dependencies": { 2886 + "ejs": "^3.1.6", 2887 + "json5": "^2.2.0", 2888 + "magic-string": "^0.25.0", 2889 + "string.prototype.matchall": "^4.0.6" 2890 + } 2891 + }, 2892 + "node_modules/@types/babel__core": { 2893 + "version": "7.20.5", 2894 + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", 2895 + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", 2896 + "dev": true, 2897 + "license": "MIT", 2898 + "dependencies": { 2899 + "@babel/parser": "^7.20.7", 2900 + "@babel/types": "^7.20.7", 2901 + "@types/babel__generator": "*", 2902 + "@types/babel__template": "*", 2903 + "@types/babel__traverse": "*" 2904 + } 2905 + }, 2906 + "node_modules/@types/babel__generator": { 2907 + "version": "7.27.0", 2908 + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", 2909 + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", 2910 + "dev": true, 2911 + "license": "MIT", 2912 + "dependencies": { 2913 + "@babel/types": "^7.0.0" 2914 + } 2915 + }, 2916 + "node_modules/@types/babel__template": { 2917 + "version": "7.4.4", 2918 + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", 2919 + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", 2920 + "dev": true, 2921 + "license": "MIT", 2922 + "dependencies": { 2923 + "@babel/parser": "^7.1.0", 2924 + "@babel/types": "^7.0.0" 2925 + } 2926 + }, 2927 + "node_modules/@types/babel__traverse": { 2928 + "version": "7.28.0", 2929 + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", 2930 + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", 2931 + "dev": true, 2932 + "license": "MIT", 2933 + "dependencies": { 2934 + "@babel/types": "^7.28.2" 2935 + } 2936 + }, 2937 + "node_modules/@types/estree": { 2938 + "version": "1.0.8", 2939 + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", 2940 + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", 2941 + "dev": true, 2942 + "license": "MIT" 2943 + }, 2944 + "node_modules/@types/json-schema": { 2945 + "version": "7.0.15", 2946 + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", 2947 + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", 2948 + "dev": true, 2949 + "license": "MIT" 2950 + }, 2951 + "node_modules/@types/node": { 2952 + "version": "24.12.2", 2953 + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.12.2.tgz", 2954 + "integrity": "sha512-A1sre26ke7HDIuY/M23nd9gfB+nrmhtYyMINbjI1zHJxYteKR6qSMX56FsmjMcDb3SMcjJg5BiRRgOCC/yBD0g==", 2955 + "dev": true, 2956 + "license": "MIT", 2957 + "dependencies": { 2958 + "undici-types": "~7.16.0" 2959 + } 2960 + }, 2961 + "node_modules/@types/react": { 2962 + "version": "19.2.14", 2963 + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz", 2964 + "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==", 2965 + "devOptional": true, 2966 + "license": "MIT", 2967 + "dependencies": { 2968 + "csstype": "^3.2.2" 2969 + } 2970 + }, 2971 + "node_modules/@types/react-dom": { 2972 + "version": "19.2.3", 2973 + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", 2974 + "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", 2975 + "dev": true, 2976 + "license": "MIT", 2977 + "peerDependencies": { 2978 + "@types/react": "^19.2.0" 2979 + } 2980 + }, 2981 + "node_modules/@types/resolve": { 2982 + "version": "1.20.2", 2983 + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", 2984 + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", 2985 + "dev": true, 2986 + "license": "MIT" 2987 + }, 2988 + "node_modules/@types/trusted-types": { 2989 + "version": "2.0.7", 2990 + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", 2991 + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", 2992 + "dev": true, 2993 + "license": "MIT" 2994 + }, 2995 + "node_modules/@typescript-eslint/eslint-plugin": { 2996 + "version": "8.58.1", 2997 + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.58.1.tgz", 2998 + "integrity": "sha512-eSkwoemjo76bdXl2MYqtxg51HNwUSkWfODUOQ3PaTLZGh9uIWWFZIjyjaJnex7wXDu+TRx+ATsnSxdN9YWfRTQ==", 2999 + "dev": true, 3000 + "license": "MIT", 3001 + "dependencies": { 3002 + "@eslint-community/regexpp": "^4.12.2", 3003 + "@typescript-eslint/scope-manager": "8.58.1", 3004 + "@typescript-eslint/type-utils": "8.58.1", 3005 + "@typescript-eslint/utils": "8.58.1", 3006 + "@typescript-eslint/visitor-keys": "8.58.1", 3007 + "ignore": "^7.0.5", 3008 + "natural-compare": "^1.4.0", 3009 + "ts-api-utils": "^2.5.0" 3010 + }, 3011 + "engines": { 3012 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 3013 + }, 3014 + "funding": { 3015 + "type": "opencollective", 3016 + "url": "https://opencollective.com/typescript-eslint" 3017 + }, 3018 + "peerDependencies": { 3019 + "@typescript-eslint/parser": "^8.58.1", 3020 + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", 3021 + "typescript": ">=4.8.4 <6.1.0" 3022 + } 3023 + }, 3024 + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { 3025 + "version": "7.0.5", 3026 + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", 3027 + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", 3028 + "dev": true, 3029 + "license": "MIT", 3030 + "engines": { 3031 + "node": ">= 4" 3032 + } 3033 + }, 3034 + "node_modules/@typescript-eslint/parser": { 3035 + "version": "8.58.1", 3036 + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.58.1.tgz", 3037 + "integrity": "sha512-gGkiNMPqerb2cJSVcruigx9eHBlLG14fSdPdqMoOcBfh+vvn4iCq2C8MzUB89PrxOXk0y3GZ1yIWb9aOzL93bw==", 3038 + "dev": true, 3039 + "license": "MIT", 3040 + "dependencies": { 3041 + "@typescript-eslint/scope-manager": "8.58.1", 3042 + "@typescript-eslint/types": "8.58.1", 3043 + "@typescript-eslint/typescript-estree": "8.58.1", 3044 + "@typescript-eslint/visitor-keys": "8.58.1", 3045 + "debug": "^4.4.3" 3046 + }, 3047 + "engines": { 3048 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 3049 + }, 3050 + "funding": { 3051 + "type": "opencollective", 3052 + "url": "https://opencollective.com/typescript-eslint" 3053 + }, 3054 + "peerDependencies": { 3055 + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", 3056 + "typescript": ">=4.8.4 <6.1.0" 3057 + } 3058 + }, 3059 + "node_modules/@typescript-eslint/project-service": { 3060 + "version": "8.58.1", 3061 + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.58.1.tgz", 3062 + "integrity": "sha512-gfQ8fk6cxhtptek+/8ZIqw8YrRW5048Gug8Ts5IYcMLCw18iUgrZAEY/D7s4hkI0FxEfGakKuPK/XUMPzPxi5g==", 3063 + "dev": true, 3064 + "license": "MIT", 3065 + "dependencies": { 3066 + "@typescript-eslint/tsconfig-utils": "^8.58.1", 3067 + "@typescript-eslint/types": "^8.58.1", 3068 + "debug": "^4.4.3" 3069 + }, 3070 + "engines": { 3071 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 3072 + }, 3073 + "funding": { 3074 + "type": "opencollective", 3075 + "url": "https://opencollective.com/typescript-eslint" 3076 + }, 3077 + "peerDependencies": { 3078 + "typescript": ">=4.8.4 <6.1.0" 3079 + } 3080 + }, 3081 + "node_modules/@typescript-eslint/scope-manager": { 3082 + "version": "8.58.1", 3083 + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.58.1.tgz", 3084 + "integrity": "sha512-TPYUEqJK6avLcEjumWsIuTpuYODTTDAtoMdt8ZZa93uWMTX13Nb8L5leSje1NluammvU+oI3QRr5lLXPgihX3w==", 3085 + "dev": true, 3086 + "license": "MIT", 3087 + "dependencies": { 3088 + "@typescript-eslint/types": "8.58.1", 3089 + "@typescript-eslint/visitor-keys": "8.58.1" 3090 + }, 3091 + "engines": { 3092 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 3093 + }, 3094 + "funding": { 3095 + "type": "opencollective", 3096 + "url": "https://opencollective.com/typescript-eslint" 3097 + } 3098 + }, 3099 + "node_modules/@typescript-eslint/tsconfig-utils": { 3100 + "version": "8.58.1", 3101 + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.58.1.tgz", 3102 + "integrity": "sha512-JAr2hOIct2Q+qk3G+8YFfqkqi7sC86uNryT+2i5HzMa2MPjw4qNFvtjnw1IiA1rP7QhNKVe21mSSLaSjwA1Olw==", 3103 + "dev": true, 3104 + "license": "MIT", 3105 + "engines": { 3106 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 3107 + }, 3108 + "funding": { 3109 + "type": "opencollective", 3110 + "url": "https://opencollective.com/typescript-eslint" 3111 + }, 3112 + "peerDependencies": { 3113 + "typescript": ">=4.8.4 <6.1.0" 3114 + } 3115 + }, 3116 + "node_modules/@typescript-eslint/type-utils": { 3117 + "version": "8.58.1", 3118 + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.58.1.tgz", 3119 + "integrity": "sha512-HUFxvTJVroT+0rXVJC7eD5zol6ID+Sn5npVPWoFuHGg9Ncq5Q4EYstqR+UOqaNRFXi5TYkpXXkLhoCHe3G0+7w==", 3120 + "dev": true, 3121 + "license": "MIT", 3122 + "dependencies": { 3123 + "@typescript-eslint/types": "8.58.1", 3124 + "@typescript-eslint/typescript-estree": "8.58.1", 3125 + "@typescript-eslint/utils": "8.58.1", 3126 + "debug": "^4.4.3", 3127 + "ts-api-utils": "^2.5.0" 3128 + }, 3129 + "engines": { 3130 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 3131 + }, 3132 + "funding": { 3133 + "type": "opencollective", 3134 + "url": "https://opencollective.com/typescript-eslint" 3135 + }, 3136 + "peerDependencies": { 3137 + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", 3138 + "typescript": ">=4.8.4 <6.1.0" 3139 + } 3140 + }, 3141 + "node_modules/@typescript-eslint/types": { 3142 + "version": "8.58.1", 3143 + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.58.1.tgz", 3144 + "integrity": "sha512-io/dV5Aw5ezwzfPBBWLoT+5QfVtP8O7q4Kftjn5azJ88bYyp/ZMCsyW1lpKK46EXJcaYMZ1JtYj+s/7TdzmQMw==", 3145 + "dev": true, 3146 + "license": "MIT", 3147 + "engines": { 3148 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 3149 + }, 3150 + "funding": { 3151 + "type": "opencollective", 3152 + "url": "https://opencollective.com/typescript-eslint" 3153 + } 3154 + }, 3155 + "node_modules/@typescript-eslint/typescript-estree": { 3156 + "version": "8.58.1", 3157 + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.58.1.tgz", 3158 + "integrity": "sha512-w4w7WR7GHOjqqPnvAYbazq+Y5oS68b9CzasGtnd6jIeOIeKUzYzupGTB2T4LTPSv4d+WPeccbxuneTFHYgAAWg==", 3159 + "dev": true, 3160 + "license": "MIT", 3161 + "dependencies": { 3162 + "@typescript-eslint/project-service": "8.58.1", 3163 + "@typescript-eslint/tsconfig-utils": "8.58.1", 3164 + "@typescript-eslint/types": "8.58.1", 3165 + "@typescript-eslint/visitor-keys": "8.58.1", 3166 + "debug": "^4.4.3", 3167 + "minimatch": "^10.2.2", 3168 + "semver": "^7.7.3", 3169 + "tinyglobby": "^0.2.15", 3170 + "ts-api-utils": "^2.5.0" 3171 + }, 3172 + "engines": { 3173 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 3174 + }, 3175 + "funding": { 3176 + "type": "opencollective", 3177 + "url": "https://opencollective.com/typescript-eslint" 3178 + }, 3179 + "peerDependencies": { 3180 + "typescript": ">=4.8.4 <6.1.0" 3181 + } 3182 + }, 3183 + "node_modules/@typescript-eslint/typescript-estree/node_modules/balanced-match": { 3184 + "version": "4.0.4", 3185 + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", 3186 + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", 3187 + "dev": true, 3188 + "license": "MIT", 3189 + "engines": { 3190 + "node": "18 || 20 || >=22" 3191 + } 3192 + }, 3193 + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { 3194 + "version": "5.0.5", 3195 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", 3196 + "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", 3197 + "dev": true, 3198 + "license": "MIT", 3199 + "dependencies": { 3200 + "balanced-match": "^4.0.2" 3201 + }, 3202 + "engines": { 3203 + "node": "18 || 20 || >=22" 3204 + } 3205 + }, 3206 + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { 3207 + "version": "10.2.5", 3208 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", 3209 + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", 3210 + "dev": true, 3211 + "license": "BlueOak-1.0.0", 3212 + "dependencies": { 3213 + "brace-expansion": "^5.0.5" 3214 + }, 3215 + "engines": { 3216 + "node": "18 || 20 || >=22" 3217 + }, 3218 + "funding": { 3219 + "url": "https://github.com/sponsors/isaacs" 3220 + } 3221 + }, 3222 + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { 3223 + "version": "7.7.4", 3224 + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", 3225 + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", 3226 + "dev": true, 3227 + "license": "ISC", 3228 + "bin": { 3229 + "semver": "bin/semver.js" 3230 + }, 3231 + "engines": { 3232 + "node": ">=10" 3233 + } 3234 + }, 3235 + "node_modules/@typescript-eslint/utils": { 3236 + "version": "8.58.1", 3237 + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.58.1.tgz", 3238 + "integrity": "sha512-Ln8R0tmWC7pTtLOzgJzYTXSCjJ9rDNHAqTaVONF4FEi2qwce8mD9iSOxOpLFFvWp/wBFlew0mjM1L1ihYWfBdQ==", 3239 + "dev": true, 3240 + "license": "MIT", 3241 + "dependencies": { 3242 + "@eslint-community/eslint-utils": "^4.9.1", 3243 + "@typescript-eslint/scope-manager": "8.58.1", 3244 + "@typescript-eslint/types": "8.58.1", 3245 + "@typescript-eslint/typescript-estree": "8.58.1" 3246 + }, 3247 + "engines": { 3248 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 3249 + }, 3250 + "funding": { 3251 + "type": "opencollective", 3252 + "url": "https://opencollective.com/typescript-eslint" 3253 + }, 3254 + "peerDependencies": { 3255 + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", 3256 + "typescript": ">=4.8.4 <6.1.0" 3257 + } 3258 + }, 3259 + "node_modules/@typescript-eslint/visitor-keys": { 3260 + "version": "8.58.1", 3261 + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.58.1.tgz", 3262 + "integrity": "sha512-y+vH7QE8ycjoa0bWciFg7OpFcipUuem1ujhrdLtq1gByKwfbC7bPeKsiny9e0urg93DqwGcHey+bGRKCnF1nZQ==", 3263 + "dev": true, 3264 + "license": "MIT", 3265 + "dependencies": { 3266 + "@typescript-eslint/types": "8.58.1", 3267 + "eslint-visitor-keys": "^5.0.0" 3268 + }, 3269 + "engines": { 3270 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 3271 + }, 3272 + "funding": { 3273 + "type": "opencollective", 3274 + "url": "https://opencollective.com/typescript-eslint" 3275 + } 3276 + }, 3277 + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { 3278 + "version": "5.0.1", 3279 + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", 3280 + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", 3281 + "dev": true, 3282 + "license": "Apache-2.0", 3283 + "engines": { 3284 + "node": "^20.19.0 || ^22.13.0 || >=24" 3285 + }, 3286 + "funding": { 3287 + "url": "https://opencollective.com/eslint" 3288 + } 3289 + }, 3290 + "node_modules/@vitejs/plugin-react": { 3291 + "version": "5.2.0", 3292 + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.2.0.tgz", 3293 + "integrity": "sha512-YmKkfhOAi3wsB1PhJq5Scj3GXMn3WvtQ/JC0xoopuHoXSdmtdStOpFrYaT1kie2YgFBcIe64ROzMYRjCrYOdYw==", 3294 + "dev": true, 3295 + "license": "MIT", 3296 + "dependencies": { 3297 + "@babel/core": "^7.29.0", 3298 + "@babel/plugin-transform-react-jsx-self": "^7.27.1", 3299 + "@babel/plugin-transform-react-jsx-source": "^7.27.1", 3300 + "@rolldown/pluginutils": "1.0.0-rc.3", 3301 + "@types/babel__core": "^7.20.5", 3302 + "react-refresh": "^0.18.0" 3303 + }, 3304 + "engines": { 3305 + "node": "^20.19.0 || >=22.12.0" 3306 + }, 3307 + "peerDependencies": { 3308 + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" 3309 + } 3310 + }, 3311 + "node_modules/acorn": { 3312 + "version": "8.16.0", 3313 + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", 3314 + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", 3315 + "dev": true, 3316 + "license": "MIT", 3317 + "bin": { 3318 + "acorn": "bin/acorn" 3319 + }, 3320 + "engines": { 3321 + "node": ">=0.4.0" 3322 + } 3323 + }, 3324 + "node_modules/acorn-jsx": { 3325 + "version": "5.3.2", 3326 + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", 3327 + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", 3328 + "dev": true, 3329 + "license": "MIT", 3330 + "peerDependencies": { 3331 + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" 3332 + } 3333 + }, 3334 + "node_modules/ajv": { 3335 + "version": "6.14.0", 3336 + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", 3337 + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", 3338 + "dev": true, 3339 + "license": "MIT", 3340 + "dependencies": { 3341 + "fast-deep-equal": "^3.1.1", 3342 + "fast-json-stable-stringify": "^2.0.0", 3343 + "json-schema-traverse": "^0.4.1", 3344 + "uri-js": "^4.2.2" 3345 + }, 3346 + "funding": { 3347 + "type": "github", 3348 + "url": "https://github.com/sponsors/epoberezkin" 3349 + } 3350 + }, 3351 + "node_modules/ansi-styles": { 3352 + "version": "4.3.0", 3353 + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 3354 + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 3355 + "dev": true, 3356 + "license": "MIT", 3357 + "dependencies": { 3358 + "color-convert": "^2.0.1" 3359 + }, 3360 + "engines": { 3361 + "node": ">=8" 3362 + }, 3363 + "funding": { 3364 + "url": "https://github.com/chalk/ansi-styles?sponsor=1" 3365 + } 3366 + }, 3367 + "node_modules/any-promise": { 3368 + "version": "1.3.0", 3369 + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", 3370 + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", 3371 + "dev": true, 3372 + "license": "MIT" 3373 + }, 3374 + "node_modules/anymatch": { 3375 + "version": "3.1.3", 3376 + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", 3377 + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", 3378 + "dev": true, 3379 + "license": "ISC", 3380 + "dependencies": { 3381 + "normalize-path": "^3.0.0", 3382 + "picomatch": "^2.0.4" 3383 + }, 3384 + "engines": { 3385 + "node": ">= 8" 3386 + } 3387 + }, 3388 + "node_modules/anymatch/node_modules/picomatch": { 3389 + "version": "2.3.2", 3390 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", 3391 + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", 3392 + "dev": true, 3393 + "license": "MIT", 3394 + "engines": { 3395 + "node": ">=8.6" 3396 + }, 3397 + "funding": { 3398 + "url": "https://github.com/sponsors/jonschlinkert" 3399 + } 3400 + }, 3401 + "node_modules/arg": { 3402 + "version": "5.0.2", 3403 + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", 3404 + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", 3405 + "dev": true, 3406 + "license": "MIT" 3407 + }, 3408 + "node_modules/argparse": { 3409 + "version": "2.0.1", 3410 + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", 3411 + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", 3412 + "dev": true, 3413 + "license": "Python-2.0" 3414 + }, 3415 + "node_modules/array-buffer-byte-length": { 3416 + "version": "1.0.2", 3417 + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", 3418 + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", 3419 + "dev": true, 3420 + "license": "MIT", 3421 + "dependencies": { 3422 + "call-bound": "^1.0.3", 3423 + "is-array-buffer": "^3.0.5" 3424 + }, 3425 + "engines": { 3426 + "node": ">= 0.4" 3427 + }, 3428 + "funding": { 3429 + "url": "https://github.com/sponsors/ljharb" 3430 + } 3431 + }, 3432 + "node_modules/arraybuffer.prototype.slice": { 3433 + "version": "1.0.4", 3434 + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", 3435 + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", 3436 + "dev": true, 3437 + "license": "MIT", 3438 + "dependencies": { 3439 + "array-buffer-byte-length": "^1.0.1", 3440 + "call-bind": "^1.0.8", 3441 + "define-properties": "^1.2.1", 3442 + "es-abstract": "^1.23.5", 3443 + "es-errors": "^1.3.0", 3444 + "get-intrinsic": "^1.2.6", 3445 + "is-array-buffer": "^3.0.4" 3446 + }, 3447 + "engines": { 3448 + "node": ">= 0.4" 3449 + }, 3450 + "funding": { 3451 + "url": "https://github.com/sponsors/ljharb" 3452 + } 3453 + }, 3454 + "node_modules/async": { 3455 + "version": "3.2.6", 3456 + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", 3457 + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", 3458 + "dev": true, 3459 + "license": "MIT" 3460 + }, 3461 + "node_modules/async-function": { 3462 + "version": "1.0.0", 3463 + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", 3464 + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", 3465 + "dev": true, 3466 + "license": "MIT", 3467 + "engines": { 3468 + "node": ">= 0.4" 3469 + } 3470 + }, 3471 + "node_modules/at-least-node": { 3472 + "version": "1.0.0", 3473 + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", 3474 + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", 3475 + "dev": true, 3476 + "license": "ISC", 3477 + "engines": { 3478 + "node": ">= 4.0.0" 3479 + } 3480 + }, 3481 + "node_modules/autoprefixer": { 3482 + "version": "10.4.27", 3483 + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.27.tgz", 3484 + "integrity": "sha512-NP9APE+tO+LuJGn7/9+cohklunJsXWiaWEfV3si4Gi/XHDwVNgkwr1J3RQYFIvPy76GmJ9/bW8vyoU1LcxwKHA==", 3485 + "dev": true, 3486 + "funding": [ 3487 + { 3488 + "type": "opencollective", 3489 + "url": "https://opencollective.com/postcss/" 3490 + }, 3491 + { 3492 + "type": "tidelift", 3493 + "url": "https://tidelift.com/funding/github/npm/autoprefixer" 3494 + }, 3495 + { 3496 + "type": "github", 3497 + "url": "https://github.com/sponsors/ai" 3498 + } 3499 + ], 3500 + "license": "MIT", 3501 + "dependencies": { 3502 + "browserslist": "^4.28.1", 3503 + "caniuse-lite": "^1.0.30001774", 3504 + "fraction.js": "^5.3.4", 3505 + "picocolors": "^1.1.1", 3506 + "postcss-value-parser": "^4.2.0" 3507 + }, 3508 + "bin": { 3509 + "autoprefixer": "bin/autoprefixer" 3510 + }, 3511 + "engines": { 3512 + "node": "^10 || ^12 || >=14" 3513 + }, 3514 + "peerDependencies": { 3515 + "postcss": "^8.1.0" 3516 + } 3517 + }, 3518 + "node_modules/available-typed-arrays": { 3519 + "version": "1.0.7", 3520 + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", 3521 + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", 3522 + "dev": true, 3523 + "license": "MIT", 3524 + "dependencies": { 3525 + "possible-typed-array-names": "^1.0.0" 3526 + }, 3527 + "engines": { 3528 + "node": ">= 0.4" 3529 + }, 3530 + "funding": { 3531 + "url": "https://github.com/sponsors/ljharb" 3532 + } 3533 + }, 3534 + "node_modules/babel-plugin-polyfill-corejs2": { 3535 + "version": "0.4.17", 3536 + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.17.tgz", 3537 + "integrity": "sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==", 3538 + "dev": true, 3539 + "license": "MIT", 3540 + "dependencies": { 3541 + "@babel/compat-data": "^7.28.6", 3542 + "@babel/helper-define-polyfill-provider": "^0.6.8", 3543 + "semver": "^6.3.1" 3544 + }, 3545 + "peerDependencies": { 3546 + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" 3547 + } 3548 + }, 3549 + "node_modules/babel-plugin-polyfill-corejs3": { 3550 + "version": "0.14.2", 3551 + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.2.tgz", 3552 + "integrity": "sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g==", 3553 + "dev": true, 3554 + "license": "MIT", 3555 + "dependencies": { 3556 + "@babel/helper-define-polyfill-provider": "^0.6.8", 3557 + "core-js-compat": "^3.48.0" 3558 + }, 3559 + "peerDependencies": { 3560 + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" 3561 + } 3562 + }, 3563 + "node_modules/babel-plugin-polyfill-regenerator": { 3564 + "version": "0.6.8", 3565 + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.8.tgz", 3566 + "integrity": "sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg==", 3567 + "dev": true, 3568 + "license": "MIT", 3569 + "dependencies": { 3570 + "@babel/helper-define-polyfill-provider": "^0.6.8" 3571 + }, 3572 + "peerDependencies": { 3573 + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" 3574 + } 3575 + }, 3576 + "node_modules/balanced-match": { 3577 + "version": "1.0.2", 3578 + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 3579 + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 3580 + "dev": true, 3581 + "license": "MIT" 3582 + }, 3583 + "node_modules/baseline-browser-mapping": { 3584 + "version": "2.10.18", 3585 + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.18.tgz", 3586 + "integrity": "sha512-VSnGQAOLtP5mib/DPyg2/t+Tlv65NTBz83BJBJvmLVHHuKJVaDOBvJJykiT5TR++em5nfAySPccDZDa4oSrn8A==", 3587 + "dev": true, 3588 + "license": "Apache-2.0", 3589 + "bin": { 3590 + "baseline-browser-mapping": "dist/cli.cjs" 3591 + }, 3592 + "engines": { 3593 + "node": ">=6.0.0" 3594 + } 3595 + }, 3596 + "node_modules/binary-extensions": { 3597 + "version": "2.3.0", 3598 + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", 3599 + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", 3600 + "dev": true, 3601 + "license": "MIT", 3602 + "engines": { 3603 + "node": ">=8" 3604 + }, 3605 + "funding": { 3606 + "url": "https://github.com/sponsors/sindresorhus" 3607 + } 3608 + }, 3609 + "node_modules/brace-expansion": { 3610 + "version": "1.1.14", 3611 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", 3612 + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", 3613 + "dev": true, 3614 + "license": "MIT", 3615 + "dependencies": { 3616 + "balanced-match": "^1.0.0", 3617 + "concat-map": "0.0.1" 3618 + } 3619 + }, 3620 + "node_modules/braces": { 3621 + "version": "3.0.3", 3622 + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", 3623 + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", 3624 + "dev": true, 3625 + "license": "MIT", 3626 + "dependencies": { 3627 + "fill-range": "^7.1.1" 3628 + }, 3629 + "engines": { 3630 + "node": ">=8" 3631 + } 3632 + }, 3633 + "node_modules/browserslist": { 3634 + "version": "4.28.2", 3635 + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz", 3636 + "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==", 3637 + "dev": true, 3638 + "funding": [ 3639 + { 3640 + "type": "opencollective", 3641 + "url": "https://opencollective.com/browserslist" 3642 + }, 3643 + { 3644 + "type": "tidelift", 3645 + "url": "https://tidelift.com/funding/github/npm/browserslist" 3646 + }, 3647 + { 3648 + "type": "github", 3649 + "url": "https://github.com/sponsors/ai" 3650 + } 3651 + ], 3652 + "license": "MIT", 3653 + "dependencies": { 3654 + "baseline-browser-mapping": "^2.10.12", 3655 + "caniuse-lite": "^1.0.30001782", 3656 + "electron-to-chromium": "^1.5.328", 3657 + "node-releases": "^2.0.36", 3658 + "update-browserslist-db": "^1.2.3" 3659 + }, 3660 + "bin": { 3661 + "browserslist": "cli.js" 3662 + }, 3663 + "engines": { 3664 + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" 3665 + } 3666 + }, 3667 + "node_modules/buffer-from": { 3668 + "version": "1.1.2", 3669 + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", 3670 + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", 3671 + "dev": true, 3672 + "license": "MIT" 3673 + }, 3674 + "node_modules/call-bind": { 3675 + "version": "1.0.9", 3676 + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz", 3677 + "integrity": "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==", 3678 + "dev": true, 3679 + "license": "MIT", 3680 + "dependencies": { 3681 + "call-bind-apply-helpers": "^1.0.2", 3682 + "es-define-property": "^1.0.1", 3683 + "get-intrinsic": "^1.3.0", 3684 + "set-function-length": "^1.2.2" 3685 + }, 3686 + "engines": { 3687 + "node": ">= 0.4" 3688 + }, 3689 + "funding": { 3690 + "url": "https://github.com/sponsors/ljharb" 3691 + } 3692 + }, 3693 + "node_modules/call-bind-apply-helpers": { 3694 + "version": "1.0.2", 3695 + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", 3696 + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", 3697 + "dev": true, 3698 + "license": "MIT", 3699 + "dependencies": { 3700 + "es-errors": "^1.3.0", 3701 + "function-bind": "^1.1.2" 3702 + }, 3703 + "engines": { 3704 + "node": ">= 0.4" 3705 + } 3706 + }, 3707 + "node_modules/call-bound": { 3708 + "version": "1.0.4", 3709 + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", 3710 + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", 3711 + "dev": true, 3712 + "license": "MIT", 3713 + "dependencies": { 3714 + "call-bind-apply-helpers": "^1.0.2", 3715 + "get-intrinsic": "^1.3.0" 3716 + }, 3717 + "engines": { 3718 + "node": ">= 0.4" 3719 + }, 3720 + "funding": { 3721 + "url": "https://github.com/sponsors/ljharb" 3722 + } 3723 + }, 3724 + "node_modules/callsites": { 3725 + "version": "3.1.0", 3726 + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 3727 + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 3728 + "dev": true, 3729 + "license": "MIT", 3730 + "engines": { 3731 + "node": ">=6" 3732 + } 3733 + }, 3734 + "node_modules/camelcase-css": { 3735 + "version": "2.0.1", 3736 + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", 3737 + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", 3738 + "dev": true, 3739 + "license": "MIT", 3740 + "engines": { 3741 + "node": ">= 6" 3742 + } 3743 + }, 3744 + "node_modules/caniuse-lite": { 3745 + "version": "1.0.30001787", 3746 + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001787.tgz", 3747 + "integrity": "sha512-mNcrMN9KeI68u7muanUpEejSLghOKlVhRqS/Za2IeyGllJ9I9otGpR9g3nsw7n4W378TE/LyIteA0+/FOZm4Kg==", 3748 + "dev": true, 3749 + "funding": [ 3750 + { 3751 + "type": "opencollective", 3752 + "url": "https://opencollective.com/browserslist" 3753 + }, 3754 + { 3755 + "type": "tidelift", 3756 + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" 3757 + }, 3758 + { 3759 + "type": "github", 3760 + "url": "https://github.com/sponsors/ai" 3761 + } 3762 + ], 3763 + "license": "CC-BY-4.0" 3764 + }, 3765 + "node_modules/chalk": { 3766 + "version": "4.1.2", 3767 + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 3768 + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 3769 + "dev": true, 3770 + "license": "MIT", 3771 + "dependencies": { 3772 + "ansi-styles": "^4.1.0", 3773 + "supports-color": "^7.1.0" 3774 + }, 3775 + "engines": { 3776 + "node": ">=10" 3777 + }, 3778 + "funding": { 3779 + "url": "https://github.com/chalk/chalk?sponsor=1" 3780 + } 3781 + }, 3782 + "node_modules/chokidar": { 3783 + "version": "3.6.0", 3784 + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", 3785 + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", 3786 + "dev": true, 3787 + "license": "MIT", 3788 + "dependencies": { 3789 + "anymatch": "~3.1.2", 3790 + "braces": "~3.0.2", 3791 + "glob-parent": "~5.1.2", 3792 + "is-binary-path": "~2.1.0", 3793 + "is-glob": "~4.0.1", 3794 + "normalize-path": "~3.0.0", 3795 + "readdirp": "~3.6.0" 3796 + }, 3797 + "engines": { 3798 + "node": ">= 8.10.0" 3799 + }, 3800 + "funding": { 3801 + "url": "https://paulmillr.com/funding/" 3802 + }, 3803 + "optionalDependencies": { 3804 + "fsevents": "~2.3.2" 3805 + } 3806 + }, 3807 + "node_modules/chokidar/node_modules/glob-parent": { 3808 + "version": "5.1.2", 3809 + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 3810 + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 3811 + "dev": true, 3812 + "license": "ISC", 3813 + "dependencies": { 3814 + "is-glob": "^4.0.1" 3815 + }, 3816 + "engines": { 3817 + "node": ">= 6" 3818 + } 3819 + }, 3820 + "node_modules/class-variance-authority": { 3821 + "version": "0.7.1", 3822 + "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", 3823 + "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", 3824 + "license": "Apache-2.0", 3825 + "dependencies": { 3826 + "clsx": "^2.1.1" 3827 + }, 3828 + "funding": { 3829 + "url": "https://polar.sh/cva" 3830 + } 3831 + }, 3832 + "node_modules/clsx": { 3833 + "version": "2.1.1", 3834 + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", 3835 + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", 3836 + "license": "MIT", 3837 + "engines": { 3838 + "node": ">=6" 3839 + } 3840 + }, 3841 + "node_modules/color-convert": { 3842 + "version": "2.0.1", 3843 + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 3844 + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 3845 + "dev": true, 3846 + "license": "MIT", 3847 + "dependencies": { 3848 + "color-name": "~1.1.4" 3849 + }, 3850 + "engines": { 3851 + "node": ">=7.0.0" 3852 + } 3853 + }, 3854 + "node_modules/color-name": { 3855 + "version": "1.1.4", 3856 + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 3857 + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 3858 + "dev": true, 3859 + "license": "MIT" 3860 + }, 3861 + "node_modules/commander": { 3862 + "version": "4.1.1", 3863 + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", 3864 + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", 3865 + "dev": true, 3866 + "license": "MIT", 3867 + "engines": { 3868 + "node": ">= 6" 3869 + } 3870 + }, 3871 + "node_modules/common-tags": { 3872 + "version": "1.8.2", 3873 + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", 3874 + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", 3875 + "dev": true, 3876 + "license": "MIT", 3877 + "engines": { 3878 + "node": ">=4.0.0" 3879 + } 3880 + }, 3881 + "node_modules/concat-map": { 3882 + "version": "0.0.1", 3883 + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 3884 + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", 3885 + "dev": true, 3886 + "license": "MIT" 3887 + }, 3888 + "node_modules/convert-source-map": { 3889 + "version": "2.0.0", 3890 + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", 3891 + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", 3892 + "dev": true, 3893 + "license": "MIT" 3894 + }, 3895 + "node_modules/core-js-compat": { 3896 + "version": "3.49.0", 3897 + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.49.0.tgz", 3898 + "integrity": "sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==", 3899 + "dev": true, 3900 + "license": "MIT", 3901 + "dependencies": { 3902 + "browserslist": "^4.28.1" 3903 + }, 3904 + "funding": { 3905 + "type": "opencollective", 3906 + "url": "https://opencollective.com/core-js" 3907 + } 3908 + }, 3909 + "node_modules/cross-spawn": { 3910 + "version": "7.0.6", 3911 + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", 3912 + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", 3913 + "dev": true, 3914 + "license": "MIT", 3915 + "dependencies": { 3916 + "path-key": "^3.1.0", 3917 + "shebang-command": "^2.0.0", 3918 + "which": "^2.0.1" 3919 + }, 3920 + "engines": { 3921 + "node": ">= 8" 3922 + } 3923 + }, 3924 + "node_modules/crypto-random-string": { 3925 + "version": "2.0.0", 3926 + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", 3927 + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", 3928 + "dev": true, 3929 + "license": "MIT", 3930 + "engines": { 3931 + "node": ">=8" 3932 + } 3933 + }, 3934 + "node_modules/cssesc": { 3935 + "version": "3.0.0", 3936 + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", 3937 + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", 3938 + "dev": true, 3939 + "license": "MIT", 3940 + "bin": { 3941 + "cssesc": "bin/cssesc" 3942 + }, 3943 + "engines": { 3944 + "node": ">=4" 3945 + } 3946 + }, 3947 + "node_modules/csstype": { 3948 + "version": "3.2.3", 3949 + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", 3950 + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", 3951 + "devOptional": true, 3952 + "license": "MIT" 3953 + }, 3954 + "node_modules/data-view-buffer": { 3955 + "version": "1.0.2", 3956 + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", 3957 + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", 3958 + "dev": true, 3959 + "license": "MIT", 3960 + "dependencies": { 3961 + "call-bound": "^1.0.3", 3962 + "es-errors": "^1.3.0", 3963 + "is-data-view": "^1.0.2" 3964 + }, 3965 + "engines": { 3966 + "node": ">= 0.4" 3967 + }, 3968 + "funding": { 3969 + "url": "https://github.com/sponsors/ljharb" 3970 + } 3971 + }, 3972 + "node_modules/data-view-byte-length": { 3973 + "version": "1.0.2", 3974 + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", 3975 + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", 3976 + "dev": true, 3977 + "license": "MIT", 3978 + "dependencies": { 3979 + "call-bound": "^1.0.3", 3980 + "es-errors": "^1.3.0", 3981 + "is-data-view": "^1.0.2" 3982 + }, 3983 + "engines": { 3984 + "node": ">= 0.4" 3985 + }, 3986 + "funding": { 3987 + "url": "https://github.com/sponsors/inspect-js" 3988 + } 3989 + }, 3990 + "node_modules/data-view-byte-offset": { 3991 + "version": "1.0.1", 3992 + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", 3993 + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", 3994 + "dev": true, 3995 + "license": "MIT", 3996 + "dependencies": { 3997 + "call-bound": "^1.0.2", 3998 + "es-errors": "^1.3.0", 3999 + "is-data-view": "^1.0.1" 4000 + }, 4001 + "engines": { 4002 + "node": ">= 0.4" 4003 + }, 4004 + "funding": { 4005 + "url": "https://github.com/sponsors/ljharb" 4006 + } 4007 + }, 4008 + "node_modules/debug": { 4009 + "version": "4.4.3", 4010 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", 4011 + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", 4012 + "dev": true, 4013 + "license": "MIT", 4014 + "dependencies": { 4015 + "ms": "^2.1.3" 4016 + }, 4017 + "engines": { 4018 + "node": ">=6.0" 4019 + }, 4020 + "peerDependenciesMeta": { 4021 + "supports-color": { 4022 + "optional": true 4023 + } 4024 + } 4025 + }, 4026 + "node_modules/deep-is": { 4027 + "version": "0.1.4", 4028 + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", 4029 + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", 4030 + "dev": true, 4031 + "license": "MIT" 4032 + }, 4033 + "node_modules/deepmerge": { 4034 + "version": "4.3.1", 4035 + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", 4036 + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", 4037 + "dev": true, 4038 + "license": "MIT", 4039 + "engines": { 4040 + "node": ">=0.10.0" 4041 + } 4042 + }, 4043 + "node_modules/define-data-property": { 4044 + "version": "1.1.4", 4045 + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", 4046 + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", 4047 + "dev": true, 4048 + "license": "MIT", 4049 + "dependencies": { 4050 + "es-define-property": "^1.0.0", 4051 + "es-errors": "^1.3.0", 4052 + "gopd": "^1.0.1" 4053 + }, 4054 + "engines": { 4055 + "node": ">= 0.4" 4056 + }, 4057 + "funding": { 4058 + "url": "https://github.com/sponsors/ljharb" 4059 + } 4060 + }, 4061 + "node_modules/define-properties": { 4062 + "version": "1.2.1", 4063 + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", 4064 + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", 4065 + "dev": true, 4066 + "license": "MIT", 4067 + "dependencies": { 4068 + "define-data-property": "^1.0.1", 4069 + "has-property-descriptors": "^1.0.0", 4070 + "object-keys": "^1.1.1" 4071 + }, 4072 + "engines": { 4073 + "node": ">= 0.4" 4074 + }, 4075 + "funding": { 4076 + "url": "https://github.com/sponsors/ljharb" 4077 + } 4078 + }, 4079 + "node_modules/didyoumean": { 4080 + "version": "1.2.2", 4081 + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", 4082 + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", 4083 + "dev": true, 4084 + "license": "Apache-2.0" 4085 + }, 4086 + "node_modules/dlv": { 4087 + "version": "1.1.3", 4088 + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", 4089 + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", 4090 + "dev": true, 4091 + "license": "MIT" 4092 + }, 4093 + "node_modules/dunder-proto": { 4094 + "version": "1.0.1", 4095 + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", 4096 + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", 4097 + "dev": true, 4098 + "license": "MIT", 4099 + "dependencies": { 4100 + "call-bind-apply-helpers": "^1.0.1", 4101 + "es-errors": "^1.3.0", 4102 + "gopd": "^1.2.0" 4103 + }, 4104 + "engines": { 4105 + "node": ">= 0.4" 4106 + } 4107 + }, 4108 + "node_modules/ejs": { 4109 + "version": "3.1.10", 4110 + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", 4111 + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", 4112 + "dev": true, 4113 + "license": "Apache-2.0", 4114 + "dependencies": { 4115 + "jake": "^10.8.5" 4116 + }, 4117 + "bin": { 4118 + "ejs": "bin/cli.js" 4119 + }, 4120 + "engines": { 4121 + "node": ">=0.10.0" 4122 + } 4123 + }, 4124 + "node_modules/electron-to-chromium": { 4125 + "version": "1.5.335", 4126 + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.335.tgz", 4127 + "integrity": "sha512-q9n5T4BR4Xwa2cwbrwcsDJtHD/enpQ5S1xF1IAtdqf5AAgqDFmR/aakqH3ChFdqd/QXJhS3rnnXFtexU7rax6Q==", 4128 + "dev": true, 4129 + "license": "ISC" 4130 + }, 4131 + "node_modules/es-abstract": { 4132 + "version": "1.24.2", 4133 + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.2.tgz", 4134 + "integrity": "sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==", 4135 + "dev": true, 4136 + "license": "MIT", 4137 + "dependencies": { 4138 + "array-buffer-byte-length": "^1.0.2", 4139 + "arraybuffer.prototype.slice": "^1.0.4", 4140 + "available-typed-arrays": "^1.0.7", 4141 + "call-bind": "^1.0.8", 4142 + "call-bound": "^1.0.4", 4143 + "data-view-buffer": "^1.0.2", 4144 + "data-view-byte-length": "^1.0.2", 4145 + "data-view-byte-offset": "^1.0.1", 4146 + "es-define-property": "^1.0.1", 4147 + "es-errors": "^1.3.0", 4148 + "es-object-atoms": "^1.1.1", 4149 + "es-set-tostringtag": "^2.1.0", 4150 + "es-to-primitive": "^1.3.0", 4151 + "function.prototype.name": "^1.1.8", 4152 + "get-intrinsic": "^1.3.0", 4153 + "get-proto": "^1.0.1", 4154 + "get-symbol-description": "^1.1.0", 4155 + "globalthis": "^1.0.4", 4156 + "gopd": "^1.2.0", 4157 + "has-property-descriptors": "^1.0.2", 4158 + "has-proto": "^1.2.0", 4159 + "has-symbols": "^1.1.0", 4160 + "hasown": "^2.0.2", 4161 + "internal-slot": "^1.1.0", 4162 + "is-array-buffer": "^3.0.5", 4163 + "is-callable": "^1.2.7", 4164 + "is-data-view": "^1.0.2", 4165 + "is-negative-zero": "^2.0.3", 4166 + "is-regex": "^1.2.1", 4167 + "is-set": "^2.0.3", 4168 + "is-shared-array-buffer": "^1.0.4", 4169 + "is-string": "^1.1.1", 4170 + "is-typed-array": "^1.1.15", 4171 + "is-weakref": "^1.1.1", 4172 + "math-intrinsics": "^1.1.0", 4173 + "object-inspect": "^1.13.4", 4174 + "object-keys": "^1.1.1", 4175 + "object.assign": "^4.1.7", 4176 + "own-keys": "^1.0.1", 4177 + "regexp.prototype.flags": "^1.5.4", 4178 + "safe-array-concat": "^1.1.3", 4179 + "safe-push-apply": "^1.0.0", 4180 + "safe-regex-test": "^1.1.0", 4181 + "set-proto": "^1.0.0", 4182 + "stop-iteration-iterator": "^1.1.0", 4183 + "string.prototype.trim": "^1.2.10", 4184 + "string.prototype.trimend": "^1.0.9", 4185 + "string.prototype.trimstart": "^1.0.8", 4186 + "typed-array-buffer": "^1.0.3", 4187 + "typed-array-byte-length": "^1.0.3", 4188 + "typed-array-byte-offset": "^1.0.4", 4189 + "typed-array-length": "^1.0.7", 4190 + "unbox-primitive": "^1.1.0", 4191 + "which-typed-array": "^1.1.19" 4192 + }, 4193 + "engines": { 4194 + "node": ">= 0.4" 4195 + }, 4196 + "funding": { 4197 + "url": "https://github.com/sponsors/ljharb" 4198 + } 4199 + }, 4200 + "node_modules/es-define-property": { 4201 + "version": "1.0.1", 4202 + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", 4203 + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", 4204 + "dev": true, 4205 + "license": "MIT", 4206 + "engines": { 4207 + "node": ">= 0.4" 4208 + } 4209 + }, 4210 + "node_modules/es-errors": { 4211 + "version": "1.3.0", 4212 + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", 4213 + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", 4214 + "dev": true, 4215 + "license": "MIT", 4216 + "engines": { 4217 + "node": ">= 0.4" 4218 + } 4219 + }, 4220 + "node_modules/es-object-atoms": { 4221 + "version": "1.1.1", 4222 + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", 4223 + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", 4224 + "dev": true, 4225 + "license": "MIT", 4226 + "dependencies": { 4227 + "es-errors": "^1.3.0" 4228 + }, 4229 + "engines": { 4230 + "node": ">= 0.4" 4231 + } 4232 + }, 4233 + "node_modules/es-set-tostringtag": { 4234 + "version": "2.1.0", 4235 + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", 4236 + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", 4237 + "dev": true, 4238 + "license": "MIT", 4239 + "dependencies": { 4240 + "es-errors": "^1.3.0", 4241 + "get-intrinsic": "^1.2.6", 4242 + "has-tostringtag": "^1.0.2", 4243 + "hasown": "^2.0.2" 4244 + }, 4245 + "engines": { 4246 + "node": ">= 0.4" 4247 + } 4248 + }, 4249 + "node_modules/es-to-primitive": { 4250 + "version": "1.3.0", 4251 + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", 4252 + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", 4253 + "dev": true, 4254 + "license": "MIT", 4255 + "dependencies": { 4256 + "is-callable": "^1.2.7", 4257 + "is-date-object": "^1.0.5", 4258 + "is-symbol": "^1.0.4" 4259 + }, 4260 + "engines": { 4261 + "node": ">= 0.4" 4262 + }, 4263 + "funding": { 4264 + "url": "https://github.com/sponsors/ljharb" 4265 + } 4266 + }, 4267 + "node_modules/esbuild": { 4268 + "version": "0.27.7", 4269 + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.7.tgz", 4270 + "integrity": "sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==", 4271 + "dev": true, 4272 + "hasInstallScript": true, 4273 + "license": "MIT", 4274 + "bin": { 4275 + "esbuild": "bin/esbuild" 4276 + }, 4277 + "engines": { 4278 + "node": ">=18" 4279 + }, 4280 + "optionalDependencies": { 4281 + "@esbuild/aix-ppc64": "0.27.7", 4282 + "@esbuild/android-arm": "0.27.7", 4283 + "@esbuild/android-arm64": "0.27.7", 4284 + "@esbuild/android-x64": "0.27.7", 4285 + "@esbuild/darwin-arm64": "0.27.7", 4286 + "@esbuild/darwin-x64": "0.27.7", 4287 + "@esbuild/freebsd-arm64": "0.27.7", 4288 + "@esbuild/freebsd-x64": "0.27.7", 4289 + "@esbuild/linux-arm": "0.27.7", 4290 + "@esbuild/linux-arm64": "0.27.7", 4291 + "@esbuild/linux-ia32": "0.27.7", 4292 + "@esbuild/linux-loong64": "0.27.7", 4293 + "@esbuild/linux-mips64el": "0.27.7", 4294 + "@esbuild/linux-ppc64": "0.27.7", 4295 + "@esbuild/linux-riscv64": "0.27.7", 4296 + "@esbuild/linux-s390x": "0.27.7", 4297 + "@esbuild/linux-x64": "0.27.7", 4298 + "@esbuild/netbsd-arm64": "0.27.7", 4299 + "@esbuild/netbsd-x64": "0.27.7", 4300 + "@esbuild/openbsd-arm64": "0.27.7", 4301 + "@esbuild/openbsd-x64": "0.27.7", 4302 + "@esbuild/openharmony-arm64": "0.27.7", 4303 + "@esbuild/sunos-x64": "0.27.7", 4304 + "@esbuild/win32-arm64": "0.27.7", 4305 + "@esbuild/win32-ia32": "0.27.7", 4306 + "@esbuild/win32-x64": "0.27.7" 4307 + } 4308 + }, 4309 + "node_modules/escalade": { 4310 + "version": "3.2.0", 4311 + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", 4312 + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", 4313 + "dev": true, 4314 + "license": "MIT", 4315 + "engines": { 4316 + "node": ">=6" 4317 + } 4318 + }, 4319 + "node_modules/escape-string-regexp": { 4320 + "version": "4.0.0", 4321 + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", 4322 + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", 4323 + "dev": true, 4324 + "license": "MIT", 4325 + "engines": { 4326 + "node": ">=10" 4327 + }, 4328 + "funding": { 4329 + "url": "https://github.com/sponsors/sindresorhus" 4330 + } 4331 + }, 4332 + "node_modules/eslint": { 4333 + "version": "9.39.4", 4334 + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.4.tgz", 4335 + "integrity": "sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==", 4336 + "dev": true, 4337 + "license": "MIT", 4338 + "dependencies": { 4339 + "@eslint-community/eslint-utils": "^4.8.0", 4340 + "@eslint-community/regexpp": "^4.12.1", 4341 + "@eslint/config-array": "^0.21.2", 4342 + "@eslint/config-helpers": "^0.4.2", 4343 + "@eslint/core": "^0.17.0", 4344 + "@eslint/eslintrc": "^3.3.5", 4345 + "@eslint/js": "9.39.4", 4346 + "@eslint/plugin-kit": "^0.4.1", 4347 + "@humanfs/node": "^0.16.6", 4348 + "@humanwhocodes/module-importer": "^1.0.1", 4349 + "@humanwhocodes/retry": "^0.4.2", 4350 + "@types/estree": "^1.0.6", 4351 + "ajv": "^6.14.0", 4352 + "chalk": "^4.0.0", 4353 + "cross-spawn": "^7.0.6", 4354 + "debug": "^4.3.2", 4355 + "escape-string-regexp": "^4.0.0", 4356 + "eslint-scope": "^8.4.0", 4357 + "eslint-visitor-keys": "^4.2.1", 4358 + "espree": "^10.4.0", 4359 + "esquery": "^1.5.0", 4360 + "esutils": "^2.0.2", 4361 + "fast-deep-equal": "^3.1.3", 4362 + "file-entry-cache": "^8.0.0", 4363 + "find-up": "^5.0.0", 4364 + "glob-parent": "^6.0.2", 4365 + "ignore": "^5.2.0", 4366 + "imurmurhash": "^0.1.4", 4367 + "is-glob": "^4.0.0", 4368 + "json-stable-stringify-without-jsonify": "^1.0.1", 4369 + "lodash.merge": "^4.6.2", 4370 + "minimatch": "^3.1.5", 4371 + "natural-compare": "^1.4.0", 4372 + "optionator": "^0.9.3" 4373 + }, 4374 + "bin": { 4375 + "eslint": "bin/eslint.js" 4376 + }, 4377 + "engines": { 4378 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 4379 + }, 4380 + "funding": { 4381 + "url": "https://eslint.org/donate" 4382 + }, 4383 + "peerDependencies": { 4384 + "jiti": "*" 4385 + }, 4386 + "peerDependenciesMeta": { 4387 + "jiti": { 4388 + "optional": true 4389 + } 4390 + } 4391 + }, 4392 + "node_modules/eslint-plugin-react-hooks": { 4393 + "version": "7.0.1", 4394 + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-7.0.1.tgz", 4395 + "integrity": "sha512-O0d0m04evaNzEPoSW+59Mezf8Qt0InfgGIBJnpC0h3NH/WjUAR7BIKUfysC6todmtiZ/A0oUVS8Gce0WhBrHsA==", 4396 + "dev": true, 4397 + "license": "MIT", 4398 + "dependencies": { 4399 + "@babel/core": "^7.24.4", 4400 + "@babel/parser": "^7.24.4", 4401 + "hermes-parser": "^0.25.1", 4402 + "zod": "^3.25.0 || ^4.0.0", 4403 + "zod-validation-error": "^3.5.0 || ^4.0.0" 4404 + }, 4405 + "engines": { 4406 + "node": ">=18" 4407 + }, 4408 + "peerDependencies": { 4409 + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" 4410 + } 4411 + }, 4412 + "node_modules/eslint-plugin-react-refresh": { 4413 + "version": "0.5.2", 4414 + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.5.2.tgz", 4415 + "integrity": "sha512-hmgTH57GfzoTFjVN0yBwTggnsVUF2tcqi7RJZHqi9lIezSs4eFyAMktA68YD4r5kNw1mxyY4dmkyoFDb3FIqrA==", 4416 + "dev": true, 4417 + "license": "MIT", 4418 + "peerDependencies": { 4419 + "eslint": "^9 || ^10" 4420 + } 4421 + }, 4422 + "node_modules/eslint-scope": { 4423 + "version": "8.4.0", 4424 + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", 4425 + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", 4426 + "dev": true, 4427 + "license": "BSD-2-Clause", 4428 + "dependencies": { 4429 + "esrecurse": "^4.3.0", 4430 + "estraverse": "^5.2.0" 4431 + }, 4432 + "engines": { 4433 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 4434 + }, 4435 + "funding": { 4436 + "url": "https://opencollective.com/eslint" 4437 + } 4438 + }, 4439 + "node_modules/eslint-visitor-keys": { 4440 + "version": "4.2.1", 4441 + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", 4442 + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", 4443 + "dev": true, 4444 + "license": "Apache-2.0", 4445 + "engines": { 4446 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 4447 + }, 4448 + "funding": { 4449 + "url": "https://opencollective.com/eslint" 4450 + } 4451 + }, 4452 + "node_modules/espree": { 4453 + "version": "10.4.0", 4454 + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", 4455 + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", 4456 + "dev": true, 4457 + "license": "BSD-2-Clause", 4458 + "dependencies": { 4459 + "acorn": "^8.15.0", 4460 + "acorn-jsx": "^5.3.2", 4461 + "eslint-visitor-keys": "^4.2.1" 4462 + }, 4463 + "engines": { 4464 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 4465 + }, 4466 + "funding": { 4467 + "url": "https://opencollective.com/eslint" 4468 + } 4469 + }, 4470 + "node_modules/esquery": { 4471 + "version": "1.7.0", 4472 + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", 4473 + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", 4474 + "dev": true, 4475 + "license": "BSD-3-Clause", 4476 + "dependencies": { 4477 + "estraverse": "^5.1.0" 4478 + }, 4479 + "engines": { 4480 + "node": ">=0.10" 4481 + } 4482 + }, 4483 + "node_modules/esrecurse": { 4484 + "version": "4.3.0", 4485 + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", 4486 + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", 4487 + "dev": true, 4488 + "license": "BSD-2-Clause", 4489 + "dependencies": { 4490 + "estraverse": "^5.2.0" 4491 + }, 4492 + "engines": { 4493 + "node": ">=4.0" 4494 + } 4495 + }, 4496 + "node_modules/estraverse": { 4497 + "version": "5.3.0", 4498 + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", 4499 + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", 4500 + "dev": true, 4501 + "license": "BSD-2-Clause", 4502 + "engines": { 4503 + "node": ">=4.0" 4504 + } 4505 + }, 4506 + "node_modules/estree-walker": { 4507 + "version": "2.0.2", 4508 + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", 4509 + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", 4510 + "dev": true, 4511 + "license": "MIT" 4512 + }, 4513 + "node_modules/esutils": { 4514 + "version": "2.0.3", 4515 + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", 4516 + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", 4517 + "dev": true, 4518 + "license": "BSD-2-Clause", 4519 + "engines": { 4520 + "node": ">=0.10.0" 4521 + } 4522 + }, 4523 + "node_modules/fast-deep-equal": { 4524 + "version": "3.1.3", 4525 + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 4526 + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", 4527 + "dev": true, 4528 + "license": "MIT" 4529 + }, 4530 + "node_modules/fast-glob": { 4531 + "version": "3.3.3", 4532 + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", 4533 + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", 4534 + "dev": true, 4535 + "license": "MIT", 4536 + "dependencies": { 4537 + "@nodelib/fs.stat": "^2.0.2", 4538 + "@nodelib/fs.walk": "^1.2.3", 4539 + "glob-parent": "^5.1.2", 4540 + "merge2": "^1.3.0", 4541 + "micromatch": "^4.0.8" 4542 + }, 4543 + "engines": { 4544 + "node": ">=8.6.0" 4545 + } 4546 + }, 4547 + "node_modules/fast-glob/node_modules/glob-parent": { 4548 + "version": "5.1.2", 4549 + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 4550 + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 4551 + "dev": true, 4552 + "license": "ISC", 4553 + "dependencies": { 4554 + "is-glob": "^4.0.1" 4555 + }, 4556 + "engines": { 4557 + "node": ">= 6" 4558 + } 4559 + }, 4560 + "node_modules/fast-json-stable-stringify": { 4561 + "version": "2.1.0", 4562 + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 4563 + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", 4564 + "dev": true, 4565 + "license": "MIT" 4566 + }, 4567 + "node_modules/fast-levenshtein": { 4568 + "version": "2.0.6", 4569 + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 4570 + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", 4571 + "dev": true, 4572 + "license": "MIT" 4573 + }, 4574 + "node_modules/fast-uri": { 4575 + "version": "3.1.0", 4576 + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", 4577 + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", 4578 + "dev": true, 4579 + "funding": [ 4580 + { 4581 + "type": "github", 4582 + "url": "https://github.com/sponsors/fastify" 4583 + }, 4584 + { 4585 + "type": "opencollective", 4586 + "url": "https://opencollective.com/fastify" 4587 + } 4588 + ], 4589 + "license": "BSD-3-Clause" 4590 + }, 4591 + "node_modules/fastq": { 4592 + "version": "1.20.1", 4593 + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", 4594 + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", 4595 + "dev": true, 4596 + "license": "ISC", 4597 + "dependencies": { 4598 + "reusify": "^1.0.4" 4599 + } 4600 + }, 4601 + "node_modules/fdir": { 4602 + "version": "6.5.0", 4603 + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", 4604 + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", 4605 + "dev": true, 4606 + "license": "MIT", 4607 + "engines": { 4608 + "node": ">=12.0.0" 4609 + }, 4610 + "peerDependencies": { 4611 + "picomatch": "^3 || ^4" 4612 + }, 4613 + "peerDependenciesMeta": { 4614 + "picomatch": { 4615 + "optional": true 4616 + } 4617 + } 4618 + }, 4619 + "node_modules/file-entry-cache": { 4620 + "version": "8.0.0", 4621 + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", 4622 + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", 4623 + "dev": true, 4624 + "license": "MIT", 4625 + "dependencies": { 4626 + "flat-cache": "^4.0.0" 4627 + }, 4628 + "engines": { 4629 + "node": ">=16.0.0" 4630 + } 4631 + }, 4632 + "node_modules/filelist": { 4633 + "version": "1.0.6", 4634 + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.6.tgz", 4635 + "integrity": "sha512-5giy2PkLYY1cP39p17Ech+2xlpTRL9HLspOfEgm0L6CwBXBTgsK5ou0JtzYuepxkaQ/tvhCFIJ5uXo0OrM2DxA==", 4636 + "dev": true, 4637 + "license": "Apache-2.0", 4638 + "dependencies": { 4639 + "minimatch": "^5.0.1" 4640 + } 4641 + }, 4642 + "node_modules/filelist/node_modules/brace-expansion": { 4643 + "version": "2.1.0", 4644 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.0.tgz", 4645 + "integrity": "sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==", 4646 + "dev": true, 4647 + "license": "MIT", 4648 + "dependencies": { 4649 + "balanced-match": "^1.0.0" 4650 + } 4651 + }, 4652 + "node_modules/filelist/node_modules/minimatch": { 4653 + "version": "5.1.9", 4654 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz", 4655 + "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", 4656 + "dev": true, 4657 + "license": "ISC", 4658 + "dependencies": { 4659 + "brace-expansion": "^2.0.1" 4660 + }, 4661 + "engines": { 4662 + "node": ">=10" 4663 + } 4664 + }, 4665 + "node_modules/fill-range": { 4666 + "version": "7.1.1", 4667 + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", 4668 + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", 4669 + "dev": true, 4670 + "license": "MIT", 4671 + "dependencies": { 4672 + "to-regex-range": "^5.0.1" 4673 + }, 4674 + "engines": { 4675 + "node": ">=8" 4676 + } 4677 + }, 4678 + "node_modules/find-up": { 4679 + "version": "5.0.0", 4680 + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", 4681 + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", 4682 + "dev": true, 4683 + "license": "MIT", 4684 + "dependencies": { 4685 + "locate-path": "^6.0.0", 4686 + "path-exists": "^4.0.0" 4687 + }, 4688 + "engines": { 4689 + "node": ">=10" 4690 + }, 4691 + "funding": { 4692 + "url": "https://github.com/sponsors/sindresorhus" 4693 + } 4694 + }, 4695 + "node_modules/flat-cache": { 4696 + "version": "4.0.1", 4697 + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", 4698 + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", 4699 + "dev": true, 4700 + "license": "MIT", 4701 + "dependencies": { 4702 + "flatted": "^3.2.9", 4703 + "keyv": "^4.5.4" 4704 + }, 4705 + "engines": { 4706 + "node": ">=16" 4707 + } 4708 + }, 4709 + "node_modules/flatted": { 4710 + "version": "3.4.2", 4711 + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", 4712 + "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", 4713 + "dev": true, 4714 + "license": "ISC" 4715 + }, 4716 + "node_modules/for-each": { 4717 + "version": "0.3.5", 4718 + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", 4719 + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", 4720 + "dev": true, 4721 + "license": "MIT", 4722 + "dependencies": { 4723 + "is-callable": "^1.2.7" 4724 + }, 4725 + "engines": { 4726 + "node": ">= 0.4" 4727 + }, 4728 + "funding": { 4729 + "url": "https://github.com/sponsors/ljharb" 4730 + } 4731 + }, 4732 + "node_modules/foreground-child": { 4733 + "version": "3.3.1", 4734 + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", 4735 + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", 4736 + "dev": true, 4737 + "license": "ISC", 4738 + "dependencies": { 4739 + "cross-spawn": "^7.0.6", 4740 + "signal-exit": "^4.0.1" 4741 + }, 4742 + "engines": { 4743 + "node": ">=14" 4744 + }, 4745 + "funding": { 4746 + "url": "https://github.com/sponsors/isaacs" 4747 + } 4748 + }, 4749 + "node_modules/fraction.js": { 4750 + "version": "5.3.4", 4751 + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz", 4752 + "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==", 4753 + "dev": true, 4754 + "license": "MIT", 4755 + "engines": { 4756 + "node": "*" 4757 + }, 4758 + "funding": { 4759 + "type": "github", 4760 + "url": "https://github.com/sponsors/rawify" 4761 + } 4762 + }, 4763 + "node_modules/fs-extra": { 4764 + "version": "9.1.0", 4765 + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", 4766 + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", 4767 + "dev": true, 4768 + "license": "MIT", 4769 + "dependencies": { 4770 + "at-least-node": "^1.0.0", 4771 + "graceful-fs": "^4.2.0", 4772 + "jsonfile": "^6.0.1", 4773 + "universalify": "^2.0.0" 4774 + }, 4775 + "engines": { 4776 + "node": ">=10" 4777 + } 4778 + }, 4779 + "node_modules/fsevents": { 4780 + "version": "2.3.3", 4781 + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", 4782 + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", 4783 + "dev": true, 4784 + "hasInstallScript": true, 4785 + "license": "MIT", 4786 + "optional": true, 4787 + "os": [ 4788 + "darwin" 4789 + ], 4790 + "engines": { 4791 + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 4792 + } 4793 + }, 4794 + "node_modules/function-bind": { 4795 + "version": "1.1.2", 4796 + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", 4797 + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", 4798 + "dev": true, 4799 + "license": "MIT", 4800 + "funding": { 4801 + "url": "https://github.com/sponsors/ljharb" 4802 + } 4803 + }, 4804 + "node_modules/function.prototype.name": { 4805 + "version": "1.1.8", 4806 + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", 4807 + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", 4808 + "dev": true, 4809 + "license": "MIT", 4810 + "dependencies": { 4811 + "call-bind": "^1.0.8", 4812 + "call-bound": "^1.0.3", 4813 + "define-properties": "^1.2.1", 4814 + "functions-have-names": "^1.2.3", 4815 + "hasown": "^2.0.2", 4816 + "is-callable": "^1.2.7" 4817 + }, 4818 + "engines": { 4819 + "node": ">= 0.4" 4820 + }, 4821 + "funding": { 4822 + "url": "https://github.com/sponsors/ljharb" 4823 + } 4824 + }, 4825 + "node_modules/functions-have-names": { 4826 + "version": "1.2.3", 4827 + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", 4828 + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", 4829 + "dev": true, 4830 + "license": "MIT", 4831 + "funding": { 4832 + "url": "https://github.com/sponsors/ljharb" 4833 + } 4834 + }, 4835 + "node_modules/generator-function": { 4836 + "version": "2.0.1", 4837 + "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", 4838 + "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", 4839 + "dev": true, 4840 + "license": "MIT", 4841 + "engines": { 4842 + "node": ">= 0.4" 4843 + } 4844 + }, 4845 + "node_modules/gensync": { 4846 + "version": "1.0.0-beta.2", 4847 + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", 4848 + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", 4849 + "dev": true, 4850 + "license": "MIT", 4851 + "engines": { 4852 + "node": ">=6.9.0" 4853 + } 4854 + }, 4855 + "node_modules/get-intrinsic": { 4856 + "version": "1.3.0", 4857 + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", 4858 + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", 4859 + "dev": true, 4860 + "license": "MIT", 4861 + "dependencies": { 4862 + "call-bind-apply-helpers": "^1.0.2", 4863 + "es-define-property": "^1.0.1", 4864 + "es-errors": "^1.3.0", 4865 + "es-object-atoms": "^1.1.1", 4866 + "function-bind": "^1.1.2", 4867 + "get-proto": "^1.0.1", 4868 + "gopd": "^1.2.0", 4869 + "has-symbols": "^1.1.0", 4870 + "hasown": "^2.0.2", 4871 + "math-intrinsics": "^1.1.0" 4872 + }, 4873 + "engines": { 4874 + "node": ">= 0.4" 4875 + }, 4876 + "funding": { 4877 + "url": "https://github.com/sponsors/ljharb" 4878 + } 4879 + }, 4880 + "node_modules/get-own-enumerable-property-symbols": { 4881 + "version": "3.0.2", 4882 + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", 4883 + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", 4884 + "dev": true, 4885 + "license": "ISC" 4886 + }, 4887 + "node_modules/get-proto": { 4888 + "version": "1.0.1", 4889 + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", 4890 + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", 4891 + "dev": true, 4892 + "license": "MIT", 4893 + "dependencies": { 4894 + "dunder-proto": "^1.0.1", 4895 + "es-object-atoms": "^1.0.0" 4896 + }, 4897 + "engines": { 4898 + "node": ">= 0.4" 4899 + } 4900 + }, 4901 + "node_modules/get-symbol-description": { 4902 + "version": "1.1.0", 4903 + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", 4904 + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", 4905 + "dev": true, 4906 + "license": "MIT", 4907 + "dependencies": { 4908 + "call-bound": "^1.0.3", 4909 + "es-errors": "^1.3.0", 4910 + "get-intrinsic": "^1.2.6" 4911 + }, 4912 + "engines": { 4913 + "node": ">= 0.4" 4914 + }, 4915 + "funding": { 4916 + "url": "https://github.com/sponsors/ljharb" 4917 + } 4918 + }, 4919 + "node_modules/glob": { 4920 + "version": "11.1.0", 4921 + "resolved": "https://registry.npmjs.org/glob/-/glob-11.1.0.tgz", 4922 + "integrity": "sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==", 4923 + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", 4924 + "dev": true, 4925 + "license": "BlueOak-1.0.0", 4926 + "dependencies": { 4927 + "foreground-child": "^3.3.1", 4928 + "jackspeak": "^4.1.1", 4929 + "minimatch": "^10.1.1", 4930 + "minipass": "^7.1.2", 4931 + "package-json-from-dist": "^1.0.0", 4932 + "path-scurry": "^2.0.0" 4933 + }, 4934 + "bin": { 4935 + "glob": "dist/esm/bin.mjs" 4936 + }, 4937 + "engines": { 4938 + "node": "20 || >=22" 4939 + }, 4940 + "funding": { 4941 + "url": "https://github.com/sponsors/isaacs" 4942 + } 4943 + }, 4944 + "node_modules/glob-parent": { 4945 + "version": "6.0.2", 4946 + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", 4947 + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", 4948 + "dev": true, 4949 + "license": "ISC", 4950 + "dependencies": { 4951 + "is-glob": "^4.0.3" 4952 + }, 4953 + "engines": { 4954 + "node": ">=10.13.0" 4955 + } 4956 + }, 4957 + "node_modules/glob/node_modules/balanced-match": { 4958 + "version": "4.0.4", 4959 + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", 4960 + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", 4961 + "dev": true, 4962 + "license": "MIT", 4963 + "engines": { 4964 + "node": "18 || 20 || >=22" 4965 + } 4966 + }, 4967 + "node_modules/glob/node_modules/brace-expansion": { 4968 + "version": "5.0.5", 4969 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", 4970 + "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", 4971 + "dev": true, 4972 + "license": "MIT", 4973 + "dependencies": { 4974 + "balanced-match": "^4.0.2" 4975 + }, 4976 + "engines": { 4977 + "node": "18 || 20 || >=22" 4978 + } 4979 + }, 4980 + "node_modules/glob/node_modules/minimatch": { 4981 + "version": "10.2.5", 4982 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", 4983 + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", 4984 + "dev": true, 4985 + "license": "BlueOak-1.0.0", 4986 + "dependencies": { 4987 + "brace-expansion": "^5.0.5" 4988 + }, 4989 + "engines": { 4990 + "node": "18 || 20 || >=22" 4991 + }, 4992 + "funding": { 4993 + "url": "https://github.com/sponsors/isaacs" 4994 + } 4995 + }, 4996 + "node_modules/globals": { 4997 + "version": "17.5.0", 4998 + "resolved": "https://registry.npmjs.org/globals/-/globals-17.5.0.tgz", 4999 + "integrity": "sha512-qoV+HK2yFl/366t2/Cb3+xxPUo5BuMynomoDmiaZBIdbs+0pYbjfZU+twLhGKp4uCZ/+NbtpVepH5bGCxRyy2g==", 5000 + "dev": true, 5001 + "license": "MIT", 5002 + "engines": { 5003 + "node": ">=18" 5004 + }, 5005 + "funding": { 5006 + "url": "https://github.com/sponsors/sindresorhus" 5007 + } 5008 + }, 5009 + "node_modules/globalthis": { 5010 + "version": "1.0.4", 5011 + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", 5012 + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", 5013 + "dev": true, 5014 + "license": "MIT", 5015 + "dependencies": { 5016 + "define-properties": "^1.2.1", 5017 + "gopd": "^1.0.1" 5018 + }, 5019 + "engines": { 5020 + "node": ">= 0.4" 5021 + }, 5022 + "funding": { 5023 + "url": "https://github.com/sponsors/ljharb" 5024 + } 5025 + }, 5026 + "node_modules/gopd": { 5027 + "version": "1.2.0", 5028 + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", 5029 + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", 5030 + "dev": true, 5031 + "license": "MIT", 5032 + "engines": { 5033 + "node": ">= 0.4" 5034 + }, 5035 + "funding": { 5036 + "url": "https://github.com/sponsors/ljharb" 5037 + } 5038 + }, 5039 + "node_modules/graceful-fs": { 5040 + "version": "4.2.11", 5041 + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", 5042 + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", 5043 + "dev": true, 5044 + "license": "ISC" 5045 + }, 5046 + "node_modules/has-bigints": { 5047 + "version": "1.1.0", 5048 + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", 5049 + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", 5050 + "dev": true, 5051 + "license": "MIT", 5052 + "engines": { 5053 + "node": ">= 0.4" 5054 + }, 5055 + "funding": { 5056 + "url": "https://github.com/sponsors/ljharb" 5057 + } 5058 + }, 5059 + "node_modules/has-flag": { 5060 + "version": "4.0.0", 5061 + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 5062 + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 5063 + "dev": true, 5064 + "license": "MIT", 5065 + "engines": { 5066 + "node": ">=8" 5067 + } 5068 + }, 5069 + "node_modules/has-property-descriptors": { 5070 + "version": "1.0.2", 5071 + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", 5072 + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", 5073 + "dev": true, 5074 + "license": "MIT", 5075 + "dependencies": { 5076 + "es-define-property": "^1.0.0" 5077 + }, 5078 + "funding": { 5079 + "url": "https://github.com/sponsors/ljharb" 5080 + } 5081 + }, 5082 + "node_modules/has-proto": { 5083 + "version": "1.2.0", 5084 + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", 5085 + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", 5086 + "dev": true, 5087 + "license": "MIT", 5088 + "dependencies": { 5089 + "dunder-proto": "^1.0.0" 5090 + }, 5091 + "engines": { 5092 + "node": ">= 0.4" 5093 + }, 5094 + "funding": { 5095 + "url": "https://github.com/sponsors/ljharb" 5096 + } 5097 + }, 5098 + "node_modules/has-symbols": { 5099 + "version": "1.1.0", 5100 + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", 5101 + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", 5102 + "dev": true, 5103 + "license": "MIT", 5104 + "engines": { 5105 + "node": ">= 0.4" 5106 + }, 5107 + "funding": { 5108 + "url": "https://github.com/sponsors/ljharb" 5109 + } 5110 + }, 5111 + "node_modules/has-tostringtag": { 5112 + "version": "1.0.2", 5113 + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", 5114 + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", 5115 + "dev": true, 5116 + "license": "MIT", 5117 + "dependencies": { 5118 + "has-symbols": "^1.0.3" 5119 + }, 5120 + "engines": { 5121 + "node": ">= 0.4" 5122 + }, 5123 + "funding": { 5124 + "url": "https://github.com/sponsors/ljharb" 5125 + } 5126 + }, 5127 + "node_modules/hasown": { 5128 + "version": "2.0.2", 5129 + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", 5130 + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", 5131 + "dev": true, 5132 + "license": "MIT", 5133 + "dependencies": { 5134 + "function-bind": "^1.1.2" 5135 + }, 5136 + "engines": { 5137 + "node": ">= 0.4" 5138 + } 5139 + }, 5140 + "node_modules/hermes-estree": { 5141 + "version": "0.25.1", 5142 + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.25.1.tgz", 5143 + "integrity": "sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==", 5144 + "dev": true, 5145 + "license": "MIT" 5146 + }, 5147 + "node_modules/hermes-parser": { 5148 + "version": "0.25.1", 5149 + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.25.1.tgz", 5150 + "integrity": "sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==", 5151 + "dev": true, 5152 + "license": "MIT", 5153 + "dependencies": { 5154 + "hermes-estree": "0.25.1" 5155 + } 5156 + }, 5157 + "node_modules/hls.js": { 5158 + "version": "1.6.15", 5159 + "resolved": "https://registry.npmjs.org/hls.js/-/hls.js-1.6.15.tgz", 5160 + "integrity": "sha512-E3a5VwgXimGHwpRGV+WxRTKeSp2DW5DI5MWv34ulL3t5UNmyJWCQ1KmLEHbYzcfThfXG8amBL+fCYPneGHC4VA==", 5161 + "license": "Apache-2.0" 5162 + }, 5163 + "node_modules/idb": { 5164 + "version": "7.1.1", 5165 + "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", 5166 + "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==", 5167 + "dev": true, 5168 + "license": "ISC" 5169 + }, 5170 + "node_modules/ignore": { 5171 + "version": "5.3.2", 5172 + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", 5173 + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", 5174 + "dev": true, 5175 + "license": "MIT", 5176 + "engines": { 5177 + "node": ">= 4" 5178 + } 5179 + }, 5180 + "node_modules/import-fresh": { 5181 + "version": "3.3.1", 5182 + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", 5183 + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", 5184 + "dev": true, 5185 + "license": "MIT", 5186 + "dependencies": { 5187 + "parent-module": "^1.0.0", 5188 + "resolve-from": "^4.0.0" 5189 + }, 5190 + "engines": { 5191 + "node": ">=6" 5192 + }, 5193 + "funding": { 5194 + "url": "https://github.com/sponsors/sindresorhus" 5195 + } 5196 + }, 5197 + "node_modules/imurmurhash": { 5198 + "version": "0.1.4", 5199 + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 5200 + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", 5201 + "dev": true, 5202 + "license": "MIT", 5203 + "engines": { 5204 + "node": ">=0.8.19" 5205 + } 5206 + }, 5207 + "node_modules/internal-slot": { 5208 + "version": "1.1.0", 5209 + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", 5210 + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", 5211 + "dev": true, 5212 + "license": "MIT", 5213 + "dependencies": { 5214 + "es-errors": "^1.3.0", 5215 + "hasown": "^2.0.2", 5216 + "side-channel": "^1.1.0" 5217 + }, 5218 + "engines": { 5219 + "node": ">= 0.4" 5220 + } 5221 + }, 5222 + "node_modules/is-array-buffer": { 5223 + "version": "3.0.5", 5224 + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", 5225 + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", 5226 + "dev": true, 5227 + "license": "MIT", 5228 + "dependencies": { 5229 + "call-bind": "^1.0.8", 5230 + "call-bound": "^1.0.3", 5231 + "get-intrinsic": "^1.2.6" 5232 + }, 5233 + "engines": { 5234 + "node": ">= 0.4" 5235 + }, 5236 + "funding": { 5237 + "url": "https://github.com/sponsors/ljharb" 5238 + } 5239 + }, 5240 + "node_modules/is-async-function": { 5241 + "version": "2.1.1", 5242 + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", 5243 + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", 5244 + "dev": true, 5245 + "license": "MIT", 5246 + "dependencies": { 5247 + "async-function": "^1.0.0", 5248 + "call-bound": "^1.0.3", 5249 + "get-proto": "^1.0.1", 5250 + "has-tostringtag": "^1.0.2", 5251 + "safe-regex-test": "^1.1.0" 5252 + }, 5253 + "engines": { 5254 + "node": ">= 0.4" 5255 + }, 5256 + "funding": { 5257 + "url": "https://github.com/sponsors/ljharb" 5258 + } 5259 + }, 5260 + "node_modules/is-bigint": { 5261 + "version": "1.1.0", 5262 + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", 5263 + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", 5264 + "dev": true, 5265 + "license": "MIT", 5266 + "dependencies": { 5267 + "has-bigints": "^1.0.2" 5268 + }, 5269 + "engines": { 5270 + "node": ">= 0.4" 5271 + }, 5272 + "funding": { 5273 + "url": "https://github.com/sponsors/ljharb" 5274 + } 5275 + }, 5276 + "node_modules/is-binary-path": { 5277 + "version": "2.1.0", 5278 + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", 5279 + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 5280 + "dev": true, 5281 + "license": "MIT", 5282 + "dependencies": { 5283 + "binary-extensions": "^2.0.0" 5284 + }, 5285 + "engines": { 5286 + "node": ">=8" 5287 + } 5288 + }, 5289 + "node_modules/is-boolean-object": { 5290 + "version": "1.2.2", 5291 + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", 5292 + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", 5293 + "dev": true, 5294 + "license": "MIT", 5295 + "dependencies": { 5296 + "call-bound": "^1.0.3", 5297 + "has-tostringtag": "^1.0.2" 5298 + }, 5299 + "engines": { 5300 + "node": ">= 0.4" 5301 + }, 5302 + "funding": { 5303 + "url": "https://github.com/sponsors/ljharb" 5304 + } 5305 + }, 5306 + "node_modules/is-callable": { 5307 + "version": "1.2.7", 5308 + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", 5309 + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", 5310 + "dev": true, 5311 + "license": "MIT", 5312 + "engines": { 5313 + "node": ">= 0.4" 5314 + }, 5315 + "funding": { 5316 + "url": "https://github.com/sponsors/ljharb" 5317 + } 5318 + }, 5319 + "node_modules/is-core-module": { 5320 + "version": "2.16.1", 5321 + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", 5322 + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", 5323 + "dev": true, 5324 + "license": "MIT", 5325 + "dependencies": { 5326 + "hasown": "^2.0.2" 5327 + }, 5328 + "engines": { 5329 + "node": ">= 0.4" 5330 + }, 5331 + "funding": { 5332 + "url": "https://github.com/sponsors/ljharb" 5333 + } 5334 + }, 5335 + "node_modules/is-data-view": { 5336 + "version": "1.0.2", 5337 + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", 5338 + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", 5339 + "dev": true, 5340 + "license": "MIT", 5341 + "dependencies": { 5342 + "call-bound": "^1.0.2", 5343 + "get-intrinsic": "^1.2.6", 5344 + "is-typed-array": "^1.1.13" 5345 + }, 5346 + "engines": { 5347 + "node": ">= 0.4" 5348 + }, 5349 + "funding": { 5350 + "url": "https://github.com/sponsors/ljharb" 5351 + } 5352 + }, 5353 + "node_modules/is-date-object": { 5354 + "version": "1.1.0", 5355 + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", 5356 + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", 5357 + "dev": true, 5358 + "license": "MIT", 5359 + "dependencies": { 5360 + "call-bound": "^1.0.2", 5361 + "has-tostringtag": "^1.0.2" 5362 + }, 5363 + "engines": { 5364 + "node": ">= 0.4" 5365 + }, 5366 + "funding": { 5367 + "url": "https://github.com/sponsors/ljharb" 5368 + } 5369 + }, 5370 + "node_modules/is-extglob": { 5371 + "version": "2.1.1", 5372 + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 5373 + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 5374 + "dev": true, 5375 + "license": "MIT", 5376 + "engines": { 5377 + "node": ">=0.10.0" 5378 + } 5379 + }, 5380 + "node_modules/is-finalizationregistry": { 5381 + "version": "1.1.1", 5382 + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", 5383 + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", 5384 + "dev": true, 5385 + "license": "MIT", 5386 + "dependencies": { 5387 + "call-bound": "^1.0.3" 5388 + }, 5389 + "engines": { 5390 + "node": ">= 0.4" 5391 + }, 5392 + "funding": { 5393 + "url": "https://github.com/sponsors/ljharb" 5394 + } 5395 + }, 5396 + "node_modules/is-generator-function": { 5397 + "version": "1.1.2", 5398 + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", 5399 + "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", 5400 + "dev": true, 5401 + "license": "MIT", 5402 + "dependencies": { 5403 + "call-bound": "^1.0.4", 5404 + "generator-function": "^2.0.0", 5405 + "get-proto": "^1.0.1", 5406 + "has-tostringtag": "^1.0.2", 5407 + "safe-regex-test": "^1.1.0" 5408 + }, 5409 + "engines": { 5410 + "node": ">= 0.4" 5411 + }, 5412 + "funding": { 5413 + "url": "https://github.com/sponsors/ljharb" 5414 + } 5415 + }, 5416 + "node_modules/is-glob": { 5417 + "version": "4.0.3", 5418 + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 5419 + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 5420 + "dev": true, 5421 + "license": "MIT", 5422 + "dependencies": { 5423 + "is-extglob": "^2.1.1" 5424 + }, 5425 + "engines": { 5426 + "node": ">=0.10.0" 5427 + } 5428 + }, 5429 + "node_modules/is-map": { 5430 + "version": "2.0.3", 5431 + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", 5432 + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", 5433 + "dev": true, 5434 + "license": "MIT", 5435 + "engines": { 5436 + "node": ">= 0.4" 5437 + }, 5438 + "funding": { 5439 + "url": "https://github.com/sponsors/ljharb" 5440 + } 5441 + }, 5442 + "node_modules/is-module": { 5443 + "version": "1.0.0", 5444 + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", 5445 + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", 5446 + "dev": true, 5447 + "license": "MIT" 5448 + }, 5449 + "node_modules/is-negative-zero": { 5450 + "version": "2.0.3", 5451 + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", 5452 + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", 5453 + "dev": true, 5454 + "license": "MIT", 5455 + "engines": { 5456 + "node": ">= 0.4" 5457 + }, 5458 + "funding": { 5459 + "url": "https://github.com/sponsors/ljharb" 5460 + } 5461 + }, 5462 + "node_modules/is-number": { 5463 + "version": "7.0.0", 5464 + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 5465 + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 5466 + "dev": true, 5467 + "license": "MIT", 5468 + "engines": { 5469 + "node": ">=0.12.0" 5470 + } 5471 + }, 5472 + "node_modules/is-number-object": { 5473 + "version": "1.1.1", 5474 + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", 5475 + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", 5476 + "dev": true, 5477 + "license": "MIT", 5478 + "dependencies": { 5479 + "call-bound": "^1.0.3", 5480 + "has-tostringtag": "^1.0.2" 5481 + }, 5482 + "engines": { 5483 + "node": ">= 0.4" 5484 + }, 5485 + "funding": { 5486 + "url": "https://github.com/sponsors/ljharb" 5487 + } 5488 + }, 5489 + "node_modules/is-obj": { 5490 + "version": "1.0.1", 5491 + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", 5492 + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", 5493 + "dev": true, 5494 + "license": "MIT", 5495 + "engines": { 5496 + "node": ">=0.10.0" 5497 + } 5498 + }, 5499 + "node_modules/is-regex": { 5500 + "version": "1.2.1", 5501 + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", 5502 + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", 5503 + "dev": true, 5504 + "license": "MIT", 5505 + "dependencies": { 5506 + "call-bound": "^1.0.2", 5507 + "gopd": "^1.2.0", 5508 + "has-tostringtag": "^1.0.2", 5509 + "hasown": "^2.0.2" 5510 + }, 5511 + "engines": { 5512 + "node": ">= 0.4" 5513 + }, 5514 + "funding": { 5515 + "url": "https://github.com/sponsors/ljharb" 5516 + } 5517 + }, 5518 + "node_modules/is-regexp": { 5519 + "version": "1.0.0", 5520 + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", 5521 + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", 5522 + "dev": true, 5523 + "license": "MIT", 5524 + "engines": { 5525 + "node": ">=0.10.0" 5526 + } 5527 + }, 5528 + "node_modules/is-set": { 5529 + "version": "2.0.3", 5530 + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", 5531 + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", 5532 + "dev": true, 5533 + "license": "MIT", 5534 + "engines": { 5535 + "node": ">= 0.4" 5536 + }, 5537 + "funding": { 5538 + "url": "https://github.com/sponsors/ljharb" 5539 + } 5540 + }, 5541 + "node_modules/is-shared-array-buffer": { 5542 + "version": "1.0.4", 5543 + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", 5544 + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", 5545 + "dev": true, 5546 + "license": "MIT", 5547 + "dependencies": { 5548 + "call-bound": "^1.0.3" 5549 + }, 5550 + "engines": { 5551 + "node": ">= 0.4" 5552 + }, 5553 + "funding": { 5554 + "url": "https://github.com/sponsors/ljharb" 5555 + } 5556 + }, 5557 + "node_modules/is-stream": { 5558 + "version": "2.0.1", 5559 + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", 5560 + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", 5561 + "dev": true, 5562 + "license": "MIT", 5563 + "engines": { 5564 + "node": ">=8" 5565 + }, 5566 + "funding": { 5567 + "url": "https://github.com/sponsors/sindresorhus" 5568 + } 5569 + }, 5570 + "node_modules/is-string": { 5571 + "version": "1.1.1", 5572 + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", 5573 + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", 5574 + "dev": true, 5575 + "license": "MIT", 5576 + "dependencies": { 5577 + "call-bound": "^1.0.3", 5578 + "has-tostringtag": "^1.0.2" 5579 + }, 5580 + "engines": { 5581 + "node": ">= 0.4" 5582 + }, 5583 + "funding": { 5584 + "url": "https://github.com/sponsors/ljharb" 5585 + } 5586 + }, 5587 + "node_modules/is-symbol": { 5588 + "version": "1.1.1", 5589 + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", 5590 + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", 5591 + "dev": true, 5592 + "license": "MIT", 5593 + "dependencies": { 5594 + "call-bound": "^1.0.2", 5595 + "has-symbols": "^1.1.0", 5596 + "safe-regex-test": "^1.1.0" 5597 + }, 5598 + "engines": { 5599 + "node": ">= 0.4" 5600 + }, 5601 + "funding": { 5602 + "url": "https://github.com/sponsors/ljharb" 5603 + } 5604 + }, 5605 + "node_modules/is-typed-array": { 5606 + "version": "1.1.15", 5607 + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", 5608 + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", 5609 + "dev": true, 5610 + "license": "MIT", 5611 + "dependencies": { 5612 + "which-typed-array": "^1.1.16" 5613 + }, 5614 + "engines": { 5615 + "node": ">= 0.4" 5616 + }, 5617 + "funding": { 5618 + "url": "https://github.com/sponsors/ljharb" 5619 + } 5620 + }, 5621 + "node_modules/is-weakmap": { 5622 + "version": "2.0.2", 5623 + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", 5624 + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", 5625 + "dev": true, 5626 + "license": "MIT", 5627 + "engines": { 5628 + "node": ">= 0.4" 5629 + }, 5630 + "funding": { 5631 + "url": "https://github.com/sponsors/ljharb" 5632 + } 5633 + }, 5634 + "node_modules/is-weakref": { 5635 + "version": "1.1.1", 5636 + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", 5637 + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", 5638 + "dev": true, 5639 + "license": "MIT", 5640 + "dependencies": { 5641 + "call-bound": "^1.0.3" 5642 + }, 5643 + "engines": { 5644 + "node": ">= 0.4" 5645 + }, 5646 + "funding": { 5647 + "url": "https://github.com/sponsors/ljharb" 5648 + } 5649 + }, 5650 + "node_modules/is-weakset": { 5651 + "version": "2.0.4", 5652 + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", 5653 + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", 5654 + "dev": true, 5655 + "license": "MIT", 5656 + "dependencies": { 5657 + "call-bound": "^1.0.3", 5658 + "get-intrinsic": "^1.2.6" 5659 + }, 5660 + "engines": { 5661 + "node": ">= 0.4" 5662 + }, 5663 + "funding": { 5664 + "url": "https://github.com/sponsors/ljharb" 5665 + } 5666 + }, 5667 + "node_modules/isarray": { 5668 + "version": "2.0.5", 5669 + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", 5670 + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", 5671 + "dev": true, 5672 + "license": "MIT" 5673 + }, 5674 + "node_modules/isexe": { 5675 + "version": "2.0.0", 5676 + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 5677 + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", 5678 + "dev": true, 5679 + "license": "ISC" 5680 + }, 5681 + "node_modules/jackspeak": { 5682 + "version": "4.2.3", 5683 + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.2.3.tgz", 5684 + "integrity": "sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg==", 5685 + "dev": true, 5686 + "license": "BlueOak-1.0.0", 5687 + "dependencies": { 5688 + "@isaacs/cliui": "^9.0.0" 5689 + }, 5690 + "engines": { 5691 + "node": "20 || >=22" 5692 + }, 5693 + "funding": { 5694 + "url": "https://github.com/sponsors/isaacs" 5695 + } 5696 + }, 5697 + "node_modules/jake": { 5698 + "version": "10.9.4", 5699 + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.4.tgz", 5700 + "integrity": "sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==", 5701 + "dev": true, 5702 + "license": "Apache-2.0", 5703 + "dependencies": { 5704 + "async": "^3.2.6", 5705 + "filelist": "^1.0.4", 5706 + "picocolors": "^1.1.1" 5707 + }, 5708 + "bin": { 5709 + "jake": "bin/cli.js" 5710 + }, 5711 + "engines": { 5712 + "node": ">=10" 5713 + } 5714 + }, 5715 + "node_modules/jiti": { 5716 + "version": "1.21.7", 5717 + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", 5718 + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", 5719 + "dev": true, 5720 + "license": "MIT", 5721 + "bin": { 5722 + "jiti": "bin/jiti.js" 5723 + } 5724 + }, 5725 + "node_modules/js-tokens": { 5726 + "version": "4.0.0", 5727 + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 5728 + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 5729 + "dev": true, 5730 + "license": "MIT" 5731 + }, 5732 + "node_modules/js-yaml": { 5733 + "version": "4.1.1", 5734 + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", 5735 + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", 5736 + "dev": true, 5737 + "license": "MIT", 5738 + "dependencies": { 5739 + "argparse": "^2.0.1" 5740 + }, 5741 + "bin": { 5742 + "js-yaml": "bin/js-yaml.js" 5743 + } 5744 + }, 5745 + "node_modules/jsesc": { 5746 + "version": "3.1.0", 5747 + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", 5748 + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", 5749 + "dev": true, 5750 + "license": "MIT", 5751 + "bin": { 5752 + "jsesc": "bin/jsesc" 5753 + }, 5754 + "engines": { 5755 + "node": ">=6" 5756 + } 5757 + }, 5758 + "node_modules/json-buffer": { 5759 + "version": "3.0.1", 5760 + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", 5761 + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", 5762 + "dev": true, 5763 + "license": "MIT" 5764 + }, 5765 + "node_modules/json-schema-traverse": { 5766 + "version": "0.4.1", 5767 + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 5768 + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 5769 + "dev": true, 5770 + "license": "MIT" 5771 + }, 5772 + "node_modules/json-stable-stringify-without-jsonify": { 5773 + "version": "1.0.1", 5774 + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", 5775 + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", 5776 + "dev": true, 5777 + "license": "MIT" 5778 + }, 5779 + "node_modules/json5": { 5780 + "version": "2.2.3", 5781 + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", 5782 + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", 5783 + "dev": true, 5784 + "license": "MIT", 5785 + "bin": { 5786 + "json5": "lib/cli.js" 5787 + }, 5788 + "engines": { 5789 + "node": ">=6" 5790 + } 5791 + }, 5792 + "node_modules/jsonfile": { 5793 + "version": "6.2.0", 5794 + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", 5795 + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", 5796 + "dev": true, 5797 + "license": "MIT", 5798 + "dependencies": { 5799 + "universalify": "^2.0.0" 5800 + }, 5801 + "optionalDependencies": { 5802 + "graceful-fs": "^4.1.6" 5803 + } 5804 + }, 5805 + "node_modules/jsonpointer": { 5806 + "version": "5.0.1", 5807 + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", 5808 + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", 5809 + "dev": true, 5810 + "license": "MIT", 5811 + "engines": { 5812 + "node": ">=0.10.0" 5813 + } 5814 + }, 5815 + "node_modules/keyv": { 5816 + "version": "4.5.4", 5817 + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", 5818 + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", 5819 + "dev": true, 5820 + "license": "MIT", 5821 + "dependencies": { 5822 + "json-buffer": "3.0.1" 5823 + } 5824 + }, 5825 + "node_modules/leven": { 5826 + "version": "3.1.0", 5827 + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", 5828 + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", 5829 + "dev": true, 5830 + "license": "MIT", 5831 + "engines": { 5832 + "node": ">=6" 5833 + } 5834 + }, 5835 + "node_modules/levn": { 5836 + "version": "0.4.1", 5837 + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", 5838 + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", 5839 + "dev": true, 5840 + "license": "MIT", 5841 + "dependencies": { 5842 + "prelude-ls": "^1.2.1", 5843 + "type-check": "~0.4.0" 5844 + }, 5845 + "engines": { 5846 + "node": ">= 0.8.0" 5847 + } 5848 + }, 5849 + "node_modules/lilconfig": { 5850 + "version": "3.1.3", 5851 + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", 5852 + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", 5853 + "dev": true, 5854 + "license": "MIT", 5855 + "engines": { 5856 + "node": ">=14" 5857 + }, 5858 + "funding": { 5859 + "url": "https://github.com/sponsors/antonk52" 5860 + } 5861 + }, 5862 + "node_modules/lines-and-columns": { 5863 + "version": "1.2.4", 5864 + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", 5865 + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", 5866 + "dev": true, 5867 + "license": "MIT" 5868 + }, 5869 + "node_modules/locate-path": { 5870 + "version": "6.0.0", 5871 + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", 5872 + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", 5873 + "dev": true, 5874 + "license": "MIT", 5875 + "dependencies": { 5876 + "p-locate": "^5.0.0" 5877 + }, 5878 + "engines": { 5879 + "node": ">=10" 5880 + }, 5881 + "funding": { 5882 + "url": "https://github.com/sponsors/sindresorhus" 5883 + } 5884 + }, 5885 + "node_modules/lodash": { 5886 + "version": "4.18.1", 5887 + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", 5888 + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", 5889 + "dev": true, 5890 + "license": "MIT" 5891 + }, 5892 + "node_modules/lodash.debounce": { 5893 + "version": "4.0.8", 5894 + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", 5895 + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", 5896 + "dev": true, 5897 + "license": "MIT" 5898 + }, 5899 + "node_modules/lodash.merge": { 5900 + "version": "4.6.2", 5901 + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", 5902 + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", 5903 + "dev": true, 5904 + "license": "MIT" 5905 + }, 5906 + "node_modules/lodash.sortby": { 5907 + "version": "4.7.0", 5908 + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", 5909 + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", 5910 + "dev": true, 5911 + "license": "MIT" 5912 + }, 5913 + "node_modules/lru-cache": { 5914 + "version": "5.1.1", 5915 + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", 5916 + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", 5917 + "dev": true, 5918 + "license": "ISC", 5919 + "dependencies": { 5920 + "yallist": "^3.0.2" 5921 + } 5922 + }, 5923 + "node_modules/lucide-react": { 5924 + "version": "1.8.0", 5925 + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-1.8.0.tgz", 5926 + "integrity": "sha512-WuvlsjngSk7TnTBJ1hsCy3ql9V9VOdcPkd3PKcSmM34vJD8KG6molxz7m7zbYFgICwsanQWmJ13JlYs4Zp7Arw==", 5927 + "license": "ISC", 5928 + "peerDependencies": { 5929 + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" 5930 + } 5931 + }, 5932 + "node_modules/magic-string": { 5933 + "version": "0.25.9", 5934 + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", 5935 + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", 5936 + "dev": true, 5937 + "license": "MIT", 5938 + "dependencies": { 5939 + "sourcemap-codec": "^1.4.8" 5940 + } 5941 + }, 5942 + "node_modules/math-intrinsics": { 5943 + "version": "1.1.0", 5944 + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", 5945 + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", 5946 + "dev": true, 5947 + "license": "MIT", 5948 + "engines": { 5949 + "node": ">= 0.4" 5950 + } 5951 + }, 5952 + "node_modules/merge2": { 5953 + "version": "1.4.1", 5954 + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", 5955 + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", 5956 + "dev": true, 5957 + "license": "MIT", 5958 + "engines": { 5959 + "node": ">= 8" 5960 + } 5961 + }, 5962 + "node_modules/micromatch": { 5963 + "version": "4.0.8", 5964 + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", 5965 + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", 5966 + "dev": true, 5967 + "license": "MIT", 5968 + "dependencies": { 5969 + "braces": "^3.0.3", 5970 + "picomatch": "^2.3.1" 5971 + }, 5972 + "engines": { 5973 + "node": ">=8.6" 5974 + } 5975 + }, 5976 + "node_modules/micromatch/node_modules/picomatch": { 5977 + "version": "2.3.2", 5978 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", 5979 + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", 5980 + "dev": true, 5981 + "license": "MIT", 5982 + "engines": { 5983 + "node": ">=8.6" 5984 + }, 5985 + "funding": { 5986 + "url": "https://github.com/sponsors/jonschlinkert" 5987 + } 5988 + }, 5989 + "node_modules/minimatch": { 5990 + "version": "3.1.5", 5991 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", 5992 + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", 5993 + "dev": true, 5994 + "license": "ISC", 5995 + "dependencies": { 5996 + "brace-expansion": "^1.1.7" 5997 + }, 5998 + "engines": { 5999 + "node": "*" 6000 + } 6001 + }, 6002 + "node_modules/minipass": { 6003 + "version": "7.1.3", 6004 + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", 6005 + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", 6006 + "dev": true, 6007 + "license": "BlueOak-1.0.0", 6008 + "engines": { 6009 + "node": ">=16 || 14 >=14.17" 6010 + } 6011 + }, 6012 + "node_modules/ms": { 6013 + "version": "2.1.3", 6014 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 6015 + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", 6016 + "dev": true, 6017 + "license": "MIT" 6018 + }, 6019 + "node_modules/mz": { 6020 + "version": "2.7.0", 6021 + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", 6022 + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", 6023 + "dev": true, 6024 + "license": "MIT", 6025 + "dependencies": { 6026 + "any-promise": "^1.0.0", 6027 + "object-assign": "^4.0.1", 6028 + "thenify-all": "^1.0.0" 6029 + } 6030 + }, 6031 + "node_modules/nanoid": { 6032 + "version": "3.3.11", 6033 + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", 6034 + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", 6035 + "dev": true, 6036 + "funding": [ 6037 + { 6038 + "type": "github", 6039 + "url": "https://github.com/sponsors/ai" 6040 + } 6041 + ], 6042 + "license": "MIT", 6043 + "bin": { 6044 + "nanoid": "bin/nanoid.cjs" 6045 + }, 6046 + "engines": { 6047 + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 6048 + } 6049 + }, 6050 + "node_modules/natural-compare": { 6051 + "version": "1.4.0", 6052 + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 6053 + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", 6054 + "dev": true, 6055 + "license": "MIT" 6056 + }, 6057 + "node_modules/node-releases": { 6058 + "version": "2.0.37", 6059 + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.37.tgz", 6060 + "integrity": "sha512-1h5gKZCF+pO/o3Iqt5Jp7wc9rH3eJJ0+nh/CIoiRwjRxde/hAHyLPXYN4V3CqKAbiZPSeJFSWHmJsbkicta0Eg==", 6061 + "dev": true, 6062 + "license": "MIT" 6063 + }, 6064 + "node_modules/normalize-path": { 6065 + "version": "3.0.0", 6066 + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 6067 + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 6068 + "dev": true, 6069 + "license": "MIT", 6070 + "engines": { 6071 + "node": ">=0.10.0" 6072 + } 6073 + }, 6074 + "node_modules/object-assign": { 6075 + "version": "4.1.1", 6076 + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 6077 + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", 6078 + "dev": true, 6079 + "license": "MIT", 6080 + "engines": { 6081 + "node": ">=0.10.0" 6082 + } 6083 + }, 6084 + "node_modules/object-hash": { 6085 + "version": "3.0.0", 6086 + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", 6087 + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", 6088 + "dev": true, 6089 + "license": "MIT", 6090 + "engines": { 6091 + "node": ">= 6" 6092 + } 6093 + }, 6094 + "node_modules/object-inspect": { 6095 + "version": "1.13.4", 6096 + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", 6097 + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", 6098 + "dev": true, 6099 + "license": "MIT", 6100 + "engines": { 6101 + "node": ">= 0.4" 6102 + }, 6103 + "funding": { 6104 + "url": "https://github.com/sponsors/ljharb" 6105 + } 6106 + }, 6107 + "node_modules/object-keys": { 6108 + "version": "1.1.1", 6109 + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", 6110 + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", 6111 + "dev": true, 6112 + "license": "MIT", 6113 + "engines": { 6114 + "node": ">= 0.4" 6115 + } 6116 + }, 6117 + "node_modules/object.assign": { 6118 + "version": "4.1.7", 6119 + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", 6120 + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", 6121 + "dev": true, 6122 + "license": "MIT", 6123 + "dependencies": { 6124 + "call-bind": "^1.0.8", 6125 + "call-bound": "^1.0.3", 6126 + "define-properties": "^1.2.1", 6127 + "es-object-atoms": "^1.0.0", 6128 + "has-symbols": "^1.1.0", 6129 + "object-keys": "^1.1.1" 6130 + }, 6131 + "engines": { 6132 + "node": ">= 0.4" 6133 + }, 6134 + "funding": { 6135 + "url": "https://github.com/sponsors/ljharb" 6136 + } 6137 + }, 6138 + "node_modules/optionator": { 6139 + "version": "0.9.4", 6140 + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", 6141 + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", 6142 + "dev": true, 6143 + "license": "MIT", 6144 + "dependencies": { 6145 + "deep-is": "^0.1.3", 6146 + "fast-levenshtein": "^2.0.6", 6147 + "levn": "^0.4.1", 6148 + "prelude-ls": "^1.2.1", 6149 + "type-check": "^0.4.0", 6150 + "word-wrap": "^1.2.5" 6151 + }, 6152 + "engines": { 6153 + "node": ">= 0.8.0" 6154 + } 6155 + }, 6156 + "node_modules/own-keys": { 6157 + "version": "1.0.1", 6158 + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", 6159 + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", 6160 + "dev": true, 6161 + "license": "MIT", 6162 + "dependencies": { 6163 + "get-intrinsic": "^1.2.6", 6164 + "object-keys": "^1.1.1", 6165 + "safe-push-apply": "^1.0.0" 6166 + }, 6167 + "engines": { 6168 + "node": ">= 0.4" 6169 + }, 6170 + "funding": { 6171 + "url": "https://github.com/sponsors/ljharb" 6172 + } 6173 + }, 6174 + "node_modules/p-limit": { 6175 + "version": "3.1.0", 6176 + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", 6177 + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", 6178 + "dev": true, 6179 + "license": "MIT", 6180 + "dependencies": { 6181 + "yocto-queue": "^0.1.0" 6182 + }, 6183 + "engines": { 6184 + "node": ">=10" 6185 + }, 6186 + "funding": { 6187 + "url": "https://github.com/sponsors/sindresorhus" 6188 + } 6189 + }, 6190 + "node_modules/p-locate": { 6191 + "version": "5.0.0", 6192 + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", 6193 + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", 6194 + "dev": true, 6195 + "license": "MIT", 6196 + "dependencies": { 6197 + "p-limit": "^3.0.2" 6198 + }, 6199 + "engines": { 6200 + "node": ">=10" 6201 + }, 6202 + "funding": { 6203 + "url": "https://github.com/sponsors/sindresorhus" 6204 + } 6205 + }, 6206 + "node_modules/package-json-from-dist": { 6207 + "version": "1.0.1", 6208 + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", 6209 + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", 6210 + "dev": true, 6211 + "license": "BlueOak-1.0.0" 6212 + }, 6213 + "node_modules/parent-module": { 6214 + "version": "1.0.1", 6215 + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 6216 + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 6217 + "dev": true, 6218 + "license": "MIT", 6219 + "dependencies": { 6220 + "callsites": "^3.0.0" 6221 + }, 6222 + "engines": { 6223 + "node": ">=6" 6224 + } 6225 + }, 6226 + "node_modules/path-exists": { 6227 + "version": "4.0.0", 6228 + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 6229 + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 6230 + "dev": true, 6231 + "license": "MIT", 6232 + "engines": { 6233 + "node": ">=8" 6234 + } 6235 + }, 6236 + "node_modules/path-key": { 6237 + "version": "3.1.1", 6238 + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 6239 + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 6240 + "dev": true, 6241 + "license": "MIT", 6242 + "engines": { 6243 + "node": ">=8" 6244 + } 6245 + }, 6246 + "node_modules/path-parse": { 6247 + "version": "1.0.7", 6248 + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 6249 + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 6250 + "dev": true, 6251 + "license": "MIT" 6252 + }, 6253 + "node_modules/path-scurry": { 6254 + "version": "2.0.2", 6255 + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", 6256 + "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", 6257 + "dev": true, 6258 + "license": "BlueOak-1.0.0", 6259 + "dependencies": { 6260 + "lru-cache": "^11.0.0", 6261 + "minipass": "^7.1.2" 6262 + }, 6263 + "engines": { 6264 + "node": "18 || 20 || >=22" 6265 + }, 6266 + "funding": { 6267 + "url": "https://github.com/sponsors/isaacs" 6268 + } 6269 + }, 6270 + "node_modules/path-scurry/node_modules/lru-cache": { 6271 + "version": "11.3.3", 6272 + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.3.3.tgz", 6273 + "integrity": "sha512-JvNw9Y81y33E+BEYPr0U7omo+U9AySnsMsEiXgwT6yqd31VQWTLNQqmT4ou5eqPFUrTfIDFta2wKhB1hyohtAQ==", 6274 + "dev": true, 6275 + "license": "BlueOak-1.0.0", 6276 + "engines": { 6277 + "node": "20 || >=22" 6278 + } 6279 + }, 6280 + "node_modules/picocolors": { 6281 + "version": "1.1.1", 6282 + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", 6283 + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", 6284 + "dev": true, 6285 + "license": "ISC" 6286 + }, 6287 + "node_modules/picomatch": { 6288 + "version": "4.0.4", 6289 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", 6290 + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", 6291 + "dev": true, 6292 + "license": "MIT", 6293 + "engines": { 6294 + "node": ">=12" 6295 + }, 6296 + "funding": { 6297 + "url": "https://github.com/sponsors/jonschlinkert" 6298 + } 6299 + }, 6300 + "node_modules/pify": { 6301 + "version": "2.3.0", 6302 + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 6303 + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", 6304 + "dev": true, 6305 + "license": "MIT", 6306 + "engines": { 6307 + "node": ">=0.10.0" 6308 + } 6309 + }, 6310 + "node_modules/pirates": { 6311 + "version": "4.0.7", 6312 + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", 6313 + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", 6314 + "dev": true, 6315 + "license": "MIT", 6316 + "engines": { 6317 + "node": ">= 6" 6318 + } 6319 + }, 6320 + "node_modules/possible-typed-array-names": { 6321 + "version": "1.1.0", 6322 + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", 6323 + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", 6324 + "dev": true, 6325 + "license": "MIT", 6326 + "engines": { 6327 + "node": ">= 0.4" 6328 + } 6329 + }, 6330 + "node_modules/postcss": { 6331 + "version": "8.5.9", 6332 + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.9.tgz", 6333 + "integrity": "sha512-7a70Nsot+EMX9fFU3064K/kdHWZqGVY+BADLyXc8Dfv+mTLLVl6JzJpPaCZ2kQL9gIJvKXSLMHhqdRRjwQeFtw==", 6334 + "dev": true, 6335 + "funding": [ 6336 + { 6337 + "type": "opencollective", 6338 + "url": "https://opencollective.com/postcss/" 6339 + }, 6340 + { 6341 + "type": "tidelift", 6342 + "url": "https://tidelift.com/funding/github/npm/postcss" 6343 + }, 6344 + { 6345 + "type": "github", 6346 + "url": "https://github.com/sponsors/ai" 6347 + } 6348 + ], 6349 + "license": "MIT", 6350 + "dependencies": { 6351 + "nanoid": "^3.3.11", 6352 + "picocolors": "^1.1.1", 6353 + "source-map-js": "^1.2.1" 6354 + }, 6355 + "engines": { 6356 + "node": "^10 || ^12 || >=14" 6357 + } 6358 + }, 6359 + "node_modules/postcss-import": { 6360 + "version": "15.1.0", 6361 + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", 6362 + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", 6363 + "dev": true, 6364 + "license": "MIT", 6365 + "dependencies": { 6366 + "postcss-value-parser": "^4.0.0", 6367 + "read-cache": "^1.0.0", 6368 + "resolve": "^1.1.7" 6369 + }, 6370 + "engines": { 6371 + "node": ">=14.0.0" 6372 + }, 6373 + "peerDependencies": { 6374 + "postcss": "^8.0.0" 6375 + } 6376 + }, 6377 + "node_modules/postcss-js": { 6378 + "version": "4.1.0", 6379 + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.1.0.tgz", 6380 + "integrity": "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==", 6381 + "dev": true, 6382 + "funding": [ 6383 + { 6384 + "type": "opencollective", 6385 + "url": "https://opencollective.com/postcss/" 6386 + }, 6387 + { 6388 + "type": "github", 6389 + "url": "https://github.com/sponsors/ai" 6390 + } 6391 + ], 6392 + "license": "MIT", 6393 + "dependencies": { 6394 + "camelcase-css": "^2.0.1" 6395 + }, 6396 + "engines": { 6397 + "node": "^12 || ^14 || >= 16" 6398 + }, 6399 + "peerDependencies": { 6400 + "postcss": "^8.4.21" 6401 + } 6402 + }, 6403 + "node_modules/postcss-load-config": { 6404 + "version": "6.0.1", 6405 + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", 6406 + "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", 6407 + "dev": true, 6408 + "funding": [ 6409 + { 6410 + "type": "opencollective", 6411 + "url": "https://opencollective.com/postcss/" 6412 + }, 6413 + { 6414 + "type": "github", 6415 + "url": "https://github.com/sponsors/ai" 6416 + } 6417 + ], 6418 + "license": "MIT", 6419 + "dependencies": { 6420 + "lilconfig": "^3.1.1" 6421 + }, 6422 + "engines": { 6423 + "node": ">= 18" 6424 + }, 6425 + "peerDependencies": { 6426 + "jiti": ">=1.21.0", 6427 + "postcss": ">=8.0.9", 6428 + "tsx": "^4.8.1", 6429 + "yaml": "^2.4.2" 6430 + }, 6431 + "peerDependenciesMeta": { 6432 + "jiti": { 6433 + "optional": true 6434 + }, 6435 + "postcss": { 6436 + "optional": true 6437 + }, 6438 + "tsx": { 6439 + "optional": true 6440 + }, 6441 + "yaml": { 6442 + "optional": true 6443 + } 6444 + } 6445 + }, 6446 + "node_modules/postcss-nested": { 6447 + "version": "6.2.0", 6448 + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", 6449 + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", 6450 + "dev": true, 6451 + "funding": [ 6452 + { 6453 + "type": "opencollective", 6454 + "url": "https://opencollective.com/postcss/" 6455 + }, 6456 + { 6457 + "type": "github", 6458 + "url": "https://github.com/sponsors/ai" 6459 + } 6460 + ], 6461 + "license": "MIT", 6462 + "dependencies": { 6463 + "postcss-selector-parser": "^6.1.1" 6464 + }, 6465 + "engines": { 6466 + "node": ">=12.0" 6467 + }, 6468 + "peerDependencies": { 6469 + "postcss": "^8.2.14" 6470 + } 6471 + }, 6472 + "node_modules/postcss-selector-parser": { 6473 + "version": "6.1.2", 6474 + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", 6475 + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", 6476 + "dev": true, 6477 + "license": "MIT", 6478 + "dependencies": { 6479 + "cssesc": "^3.0.0", 6480 + "util-deprecate": "^1.0.2" 6481 + }, 6482 + "engines": { 6483 + "node": ">=4" 6484 + } 6485 + }, 6486 + "node_modules/postcss-value-parser": { 6487 + "version": "4.2.0", 6488 + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", 6489 + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", 6490 + "dev": true, 6491 + "license": "MIT" 6492 + }, 6493 + "node_modules/prelude-ls": { 6494 + "version": "1.2.1", 6495 + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", 6496 + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", 6497 + "dev": true, 6498 + "license": "MIT", 6499 + "engines": { 6500 + "node": ">= 0.8.0" 6501 + } 6502 + }, 6503 + "node_modules/pretty-bytes": { 6504 + "version": "6.1.1", 6505 + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.1.1.tgz", 6506 + "integrity": "sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==", 6507 + "dev": true, 6508 + "license": "MIT", 6509 + "engines": { 6510 + "node": "^14.13.1 || >=16.0.0" 6511 + }, 6512 + "funding": { 6513 + "url": "https://github.com/sponsors/sindresorhus" 6514 + } 6515 + }, 6516 + "node_modules/punycode": { 6517 + "version": "2.3.1", 6518 + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", 6519 + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", 6520 + "dev": true, 6521 + "license": "MIT", 6522 + "engines": { 6523 + "node": ">=6" 6524 + } 6525 + }, 6526 + "node_modules/queue-microtask": { 6527 + "version": "1.2.3", 6528 + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 6529 + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 6530 + "dev": true, 6531 + "funding": [ 6532 + { 6533 + "type": "github", 6534 + "url": "https://github.com/sponsors/feross" 6535 + }, 6536 + { 6537 + "type": "patreon", 6538 + "url": "https://www.patreon.com/feross" 6539 + }, 6540 + { 6541 + "type": "consulting", 6542 + "url": "https://feross.org/support" 6543 + } 6544 + ], 6545 + "license": "MIT" 6546 + }, 6547 + "node_modules/randombytes": { 6548 + "version": "2.1.0", 6549 + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", 6550 + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", 6551 + "dev": true, 6552 + "license": "MIT", 6553 + "dependencies": { 6554 + "safe-buffer": "^5.1.0" 6555 + } 6556 + }, 6557 + "node_modules/react": { 6558 + "version": "19.2.5", 6559 + "resolved": "https://registry.npmjs.org/react/-/react-19.2.5.tgz", 6560 + "integrity": "sha512-llUJLzz1zTUBrskt2pwZgLq59AemifIftw4aB7JxOqf1HY2FDaGDxgwpAPVzHU1kdWabH7FauP4i1oEeer2WCA==", 6561 + "license": "MIT", 6562 + "engines": { 6563 + "node": ">=0.10.0" 6564 + } 6565 + }, 6566 + "node_modules/react-dom": { 6567 + "version": "19.2.5", 6568 + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.5.tgz", 6569 + "integrity": "sha512-J5bAZz+DXMMwW/wV3xzKke59Af6CHY7G4uYLN1OvBcKEsWOs4pQExj86BBKamxl/Ik5bx9whOrvBlSDfWzgSag==", 6570 + "license": "MIT", 6571 + "dependencies": { 6572 + "scheduler": "^0.27.0" 6573 + }, 6574 + "peerDependencies": { 6575 + "react": "^19.2.5" 6576 + } 6577 + }, 6578 + "node_modules/react-refresh": { 6579 + "version": "0.18.0", 6580 + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.18.0.tgz", 6581 + "integrity": "sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw==", 6582 + "dev": true, 6583 + "license": "MIT", 6584 + "engines": { 6585 + "node": ">=0.10.0" 6586 + } 6587 + }, 6588 + "node_modules/react-router": { 6589 + "version": "6.30.3", 6590 + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.30.3.tgz", 6591 + "integrity": "sha512-XRnlbKMTmktBkjCLE8/XcZFlnHvr2Ltdr1eJX4idL55/9BbORzyZEaIkBFDhFGCEWBBItsVrDxwx3gnisMitdw==", 6592 + "license": "MIT", 6593 + "dependencies": { 6594 + "@remix-run/router": "1.23.2" 6595 + }, 6596 + "engines": { 6597 + "node": ">=14.0.0" 6598 + }, 6599 + "peerDependencies": { 6600 + "react": ">=16.8" 6601 + } 6602 + }, 6603 + "node_modules/react-router-dom": { 6604 + "version": "6.30.3", 6605 + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.30.3.tgz", 6606 + "integrity": "sha512-pxPcv1AczD4vso7G4Z3TKcvlxK7g7TNt3/FNGMhfqyntocvYKj+GCatfigGDjbLozC4baguJ0ReCigoDJXb0ag==", 6607 + "license": "MIT", 6608 + "dependencies": { 6609 + "@remix-run/router": "1.23.2", 6610 + "react-router": "6.30.3" 6611 + }, 6612 + "engines": { 6613 + "node": ">=14.0.0" 6614 + }, 6615 + "peerDependencies": { 6616 + "react": ">=16.8", 6617 + "react-dom": ">=16.8" 6618 + } 6619 + }, 6620 + "node_modules/read-cache": { 6621 + "version": "1.0.0", 6622 + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", 6623 + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", 6624 + "dev": true, 6625 + "license": "MIT", 6626 + "dependencies": { 6627 + "pify": "^2.3.0" 6628 + } 6629 + }, 6630 + "node_modules/readdirp": { 6631 + "version": "3.6.0", 6632 + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", 6633 + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", 6634 + "dev": true, 6635 + "license": "MIT", 6636 + "dependencies": { 6637 + "picomatch": "^2.2.1" 6638 + }, 6639 + "engines": { 6640 + "node": ">=8.10.0" 6641 + } 6642 + }, 6643 + "node_modules/readdirp/node_modules/picomatch": { 6644 + "version": "2.3.2", 6645 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", 6646 + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", 6647 + "dev": true, 6648 + "license": "MIT", 6649 + "engines": { 6650 + "node": ">=8.6" 6651 + }, 6652 + "funding": { 6653 + "url": "https://github.com/sponsors/jonschlinkert" 6654 + } 6655 + }, 6656 + "node_modules/reflect.getprototypeof": { 6657 + "version": "1.0.10", 6658 + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", 6659 + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", 6660 + "dev": true, 6661 + "license": "MIT", 6662 + "dependencies": { 6663 + "call-bind": "^1.0.8", 6664 + "define-properties": "^1.2.1", 6665 + "es-abstract": "^1.23.9", 6666 + "es-errors": "^1.3.0", 6667 + "es-object-atoms": "^1.0.0", 6668 + "get-intrinsic": "^1.2.7", 6669 + "get-proto": "^1.0.1", 6670 + "which-builtin-type": "^1.2.1" 6671 + }, 6672 + "engines": { 6673 + "node": ">= 0.4" 6674 + }, 6675 + "funding": { 6676 + "url": "https://github.com/sponsors/ljharb" 6677 + } 6678 + }, 6679 + "node_modules/regenerate": { 6680 + "version": "1.4.2", 6681 + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", 6682 + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", 6683 + "dev": true, 6684 + "license": "MIT" 6685 + }, 6686 + "node_modules/regenerate-unicode-properties": { 6687 + "version": "10.2.2", 6688 + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz", 6689 + "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==", 6690 + "dev": true, 6691 + "license": "MIT", 6692 + "dependencies": { 6693 + "regenerate": "^1.4.2" 6694 + }, 6695 + "engines": { 6696 + "node": ">=4" 6697 + } 6698 + }, 6699 + "node_modules/regexp.prototype.flags": { 6700 + "version": "1.5.4", 6701 + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", 6702 + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", 6703 + "dev": true, 6704 + "license": "MIT", 6705 + "dependencies": { 6706 + "call-bind": "^1.0.8", 6707 + "define-properties": "^1.2.1", 6708 + "es-errors": "^1.3.0", 6709 + "get-proto": "^1.0.1", 6710 + "gopd": "^1.2.0", 6711 + "set-function-name": "^2.0.2" 6712 + }, 6713 + "engines": { 6714 + "node": ">= 0.4" 6715 + }, 6716 + "funding": { 6717 + "url": "https://github.com/sponsors/ljharb" 6718 + } 6719 + }, 6720 + "node_modules/regexpu-core": { 6721 + "version": "6.4.0", 6722 + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz", 6723 + "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==", 6724 + "dev": true, 6725 + "license": "MIT", 6726 + "dependencies": { 6727 + "regenerate": "^1.4.2", 6728 + "regenerate-unicode-properties": "^10.2.2", 6729 + "regjsgen": "^0.8.0", 6730 + "regjsparser": "^0.13.0", 6731 + "unicode-match-property-ecmascript": "^2.0.0", 6732 + "unicode-match-property-value-ecmascript": "^2.2.1" 6733 + }, 6734 + "engines": { 6735 + "node": ">=4" 6736 + } 6737 + }, 6738 + "node_modules/regjsgen": { 6739 + "version": "0.8.0", 6740 + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", 6741 + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", 6742 + "dev": true, 6743 + "license": "MIT" 6744 + }, 6745 + "node_modules/regjsparser": { 6746 + "version": "0.13.1", 6747 + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.1.tgz", 6748 + "integrity": "sha512-dLsljMd9sqwRkby8zhO1gSg3PnJIBFid8f4CQj/sXx+7cKx+E7u0PKhZ+U4wmhx7EfmtvnA318oVaIkAB1lRJw==", 6749 + "dev": true, 6750 + "license": "BSD-2-Clause", 6751 + "dependencies": { 6752 + "jsesc": "~3.1.0" 6753 + }, 6754 + "bin": { 6755 + "regjsparser": "bin/parser" 6756 + } 6757 + }, 6758 + "node_modules/require-from-string": { 6759 + "version": "2.0.2", 6760 + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", 6761 + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", 6762 + "dev": true, 6763 + "license": "MIT", 6764 + "engines": { 6765 + "node": ">=0.10.0" 6766 + } 6767 + }, 6768 + "node_modules/resolve": { 6769 + "version": "1.22.12", 6770 + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", 6771 + "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", 6772 + "dev": true, 6773 + "license": "MIT", 6774 + "dependencies": { 6775 + "es-errors": "^1.3.0", 6776 + "is-core-module": "^2.16.1", 6777 + "path-parse": "^1.0.7", 6778 + "supports-preserve-symlinks-flag": "^1.0.0" 6779 + }, 6780 + "bin": { 6781 + "resolve": "bin/resolve" 6782 + }, 6783 + "engines": { 6784 + "node": ">= 0.4" 6785 + }, 6786 + "funding": { 6787 + "url": "https://github.com/sponsors/ljharb" 6788 + } 6789 + }, 6790 + "node_modules/resolve-from": { 6791 + "version": "4.0.0", 6792 + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 6793 + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 6794 + "dev": true, 6795 + "license": "MIT", 6796 + "engines": { 6797 + "node": ">=4" 6798 + } 6799 + }, 6800 + "node_modules/reusify": { 6801 + "version": "1.1.0", 6802 + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", 6803 + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", 6804 + "dev": true, 6805 + "license": "MIT", 6806 + "engines": { 6807 + "iojs": ">=1.0.0", 6808 + "node": ">=0.10.0" 6809 + } 6810 + }, 6811 + "node_modules/rollup": { 6812 + "version": "4.60.1", 6813 + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.1.tgz", 6814 + "integrity": "sha512-VmtB2rFU/GroZ4oL8+ZqXgSA38O6GR8KSIvWmEFv63pQ0G6KaBH9s07PO8XTXP4vI+3UJUEypOfjkGfmSBBR0w==", 6815 + "dev": true, 6816 + "license": "MIT", 6817 + "dependencies": { 6818 + "@types/estree": "1.0.8" 6819 + }, 6820 + "bin": { 6821 + "rollup": "dist/bin/rollup" 6822 + }, 6823 + "engines": { 6824 + "node": ">=18.0.0", 6825 + "npm": ">=8.0.0" 6826 + }, 6827 + "optionalDependencies": { 6828 + "@rollup/rollup-android-arm-eabi": "4.60.1", 6829 + "@rollup/rollup-android-arm64": "4.60.1", 6830 + "@rollup/rollup-darwin-arm64": "4.60.1", 6831 + "@rollup/rollup-darwin-x64": "4.60.1", 6832 + "@rollup/rollup-freebsd-arm64": "4.60.1", 6833 + "@rollup/rollup-freebsd-x64": "4.60.1", 6834 + "@rollup/rollup-linux-arm-gnueabihf": "4.60.1", 6835 + "@rollup/rollup-linux-arm-musleabihf": "4.60.1", 6836 + "@rollup/rollup-linux-arm64-gnu": "4.60.1", 6837 + "@rollup/rollup-linux-arm64-musl": "4.60.1", 6838 + "@rollup/rollup-linux-loong64-gnu": "4.60.1", 6839 + "@rollup/rollup-linux-loong64-musl": "4.60.1", 6840 + "@rollup/rollup-linux-ppc64-gnu": "4.60.1", 6841 + "@rollup/rollup-linux-ppc64-musl": "4.60.1", 6842 + "@rollup/rollup-linux-riscv64-gnu": "4.60.1", 6843 + "@rollup/rollup-linux-riscv64-musl": "4.60.1", 6844 + "@rollup/rollup-linux-s390x-gnu": "4.60.1", 6845 + "@rollup/rollup-linux-x64-gnu": "4.60.1", 6846 + "@rollup/rollup-linux-x64-musl": "4.60.1", 6847 + "@rollup/rollup-openbsd-x64": "4.60.1", 6848 + "@rollup/rollup-openharmony-arm64": "4.60.1", 6849 + "@rollup/rollup-win32-arm64-msvc": "4.60.1", 6850 + "@rollup/rollup-win32-ia32-msvc": "4.60.1", 6851 + "@rollup/rollup-win32-x64-gnu": "4.60.1", 6852 + "@rollup/rollup-win32-x64-msvc": "4.60.1", 6853 + "fsevents": "~2.3.2" 6854 + } 6855 + }, 6856 + "node_modules/run-parallel": { 6857 + "version": "1.2.0", 6858 + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", 6859 + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 6860 + "dev": true, 6861 + "funding": [ 6862 + { 6863 + "type": "github", 6864 + "url": "https://github.com/sponsors/feross" 6865 + }, 6866 + { 6867 + "type": "patreon", 6868 + "url": "https://www.patreon.com/feross" 6869 + }, 6870 + { 6871 + "type": "consulting", 6872 + "url": "https://feross.org/support" 6873 + } 6874 + ], 6875 + "license": "MIT", 6876 + "dependencies": { 6877 + "queue-microtask": "^1.2.2" 6878 + } 6879 + }, 6880 + "node_modules/safe-array-concat": { 6881 + "version": "1.1.3", 6882 + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", 6883 + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", 6884 + "dev": true, 6885 + "license": "MIT", 6886 + "dependencies": { 6887 + "call-bind": "^1.0.8", 6888 + "call-bound": "^1.0.2", 6889 + "get-intrinsic": "^1.2.6", 6890 + "has-symbols": "^1.1.0", 6891 + "isarray": "^2.0.5" 6892 + }, 6893 + "engines": { 6894 + "node": ">=0.4" 6895 + }, 6896 + "funding": { 6897 + "url": "https://github.com/sponsors/ljharb" 6898 + } 6899 + }, 6900 + "node_modules/safe-buffer": { 6901 + "version": "5.2.1", 6902 + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 6903 + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", 6904 + "dev": true, 6905 + "funding": [ 6906 + { 6907 + "type": "github", 6908 + "url": "https://github.com/sponsors/feross" 6909 + }, 6910 + { 6911 + "type": "patreon", 6912 + "url": "https://www.patreon.com/feross" 6913 + }, 6914 + { 6915 + "type": "consulting", 6916 + "url": "https://feross.org/support" 6917 + } 6918 + ], 6919 + "license": "MIT" 6920 + }, 6921 + "node_modules/safe-push-apply": { 6922 + "version": "1.0.0", 6923 + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", 6924 + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", 6925 + "dev": true, 6926 + "license": "MIT", 6927 + "dependencies": { 6928 + "es-errors": "^1.3.0", 6929 + "isarray": "^2.0.5" 6930 + }, 6931 + "engines": { 6932 + "node": ">= 0.4" 6933 + }, 6934 + "funding": { 6935 + "url": "https://github.com/sponsors/ljharb" 6936 + } 6937 + }, 6938 + "node_modules/safe-regex-test": { 6939 + "version": "1.1.0", 6940 + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", 6941 + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", 6942 + "dev": true, 6943 + "license": "MIT", 6944 + "dependencies": { 6945 + "call-bound": "^1.0.2", 6946 + "es-errors": "^1.3.0", 6947 + "is-regex": "^1.2.1" 6948 + }, 6949 + "engines": { 6950 + "node": ">= 0.4" 6951 + }, 6952 + "funding": { 6953 + "url": "https://github.com/sponsors/ljharb" 6954 + } 6955 + }, 6956 + "node_modules/scheduler": { 6957 + "version": "0.27.0", 6958 + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", 6959 + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", 6960 + "license": "MIT" 6961 + }, 6962 + "node_modules/semver": { 6963 + "version": "6.3.1", 6964 + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", 6965 + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", 6966 + "dev": true, 6967 + "license": "ISC", 6968 + "bin": { 6969 + "semver": "bin/semver.js" 6970 + } 6971 + }, 6972 + "node_modules/serialize-javascript": { 6973 + "version": "6.0.2", 6974 + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", 6975 + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", 6976 + "dev": true, 6977 + "license": "BSD-3-Clause", 6978 + "dependencies": { 6979 + "randombytes": "^2.1.0" 6980 + } 6981 + }, 6982 + "node_modules/set-function-length": { 6983 + "version": "1.2.2", 6984 + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", 6985 + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", 6986 + "dev": true, 6987 + "license": "MIT", 6988 + "dependencies": { 6989 + "define-data-property": "^1.1.4", 6990 + "es-errors": "^1.3.0", 6991 + "function-bind": "^1.1.2", 6992 + "get-intrinsic": "^1.2.4", 6993 + "gopd": "^1.0.1", 6994 + "has-property-descriptors": "^1.0.2" 6995 + }, 6996 + "engines": { 6997 + "node": ">= 0.4" 6998 + } 6999 + }, 7000 + "node_modules/set-function-name": { 7001 + "version": "2.0.2", 7002 + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", 7003 + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", 7004 + "dev": true, 7005 + "license": "MIT", 7006 + "dependencies": { 7007 + "define-data-property": "^1.1.4", 7008 + "es-errors": "^1.3.0", 7009 + "functions-have-names": "^1.2.3", 7010 + "has-property-descriptors": "^1.0.2" 7011 + }, 7012 + "engines": { 7013 + "node": ">= 0.4" 7014 + } 7015 + }, 7016 + "node_modules/set-proto": { 7017 + "version": "1.0.0", 7018 + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", 7019 + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", 7020 + "dev": true, 7021 + "license": "MIT", 7022 + "dependencies": { 7023 + "dunder-proto": "^1.0.1", 7024 + "es-errors": "^1.3.0", 7025 + "es-object-atoms": "^1.0.0" 7026 + }, 7027 + "engines": { 7028 + "node": ">= 0.4" 7029 + } 7030 + }, 7031 + "node_modules/shebang-command": { 7032 + "version": "2.0.0", 7033 + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 7034 + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 7035 + "dev": true, 7036 + "license": "MIT", 7037 + "dependencies": { 7038 + "shebang-regex": "^3.0.0" 7039 + }, 7040 + "engines": { 7041 + "node": ">=8" 7042 + } 7043 + }, 7044 + "node_modules/shebang-regex": { 7045 + "version": "3.0.0", 7046 + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 7047 + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 7048 + "dev": true, 7049 + "license": "MIT", 7050 + "engines": { 7051 + "node": ">=8" 7052 + } 7053 + }, 7054 + "node_modules/side-channel": { 7055 + "version": "1.1.0", 7056 + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", 7057 + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", 7058 + "dev": true, 7059 + "license": "MIT", 7060 + "dependencies": { 7061 + "es-errors": "^1.3.0", 7062 + "object-inspect": "^1.13.3", 7063 + "side-channel-list": "^1.0.0", 7064 + "side-channel-map": "^1.0.1", 7065 + "side-channel-weakmap": "^1.0.2" 7066 + }, 7067 + "engines": { 7068 + "node": ">= 0.4" 7069 + }, 7070 + "funding": { 7071 + "url": "https://github.com/sponsors/ljharb" 7072 + } 7073 + }, 7074 + "node_modules/side-channel-list": { 7075 + "version": "1.0.1", 7076 + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", 7077 + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", 7078 + "dev": true, 7079 + "license": "MIT", 7080 + "dependencies": { 7081 + "es-errors": "^1.3.0", 7082 + "object-inspect": "^1.13.4" 7083 + }, 7084 + "engines": { 7085 + "node": ">= 0.4" 7086 + }, 7087 + "funding": { 7088 + "url": "https://github.com/sponsors/ljharb" 7089 + } 7090 + }, 7091 + "node_modules/side-channel-map": { 7092 + "version": "1.0.1", 7093 + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", 7094 + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", 7095 + "dev": true, 7096 + "license": "MIT", 7097 + "dependencies": { 7098 + "call-bound": "^1.0.2", 7099 + "es-errors": "^1.3.0", 7100 + "get-intrinsic": "^1.2.5", 7101 + "object-inspect": "^1.13.3" 7102 + }, 7103 + "engines": { 7104 + "node": ">= 0.4" 7105 + }, 7106 + "funding": { 7107 + "url": "https://github.com/sponsors/ljharb" 7108 + } 7109 + }, 7110 + "node_modules/side-channel-weakmap": { 7111 + "version": "1.0.2", 7112 + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", 7113 + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", 7114 + "dev": true, 7115 + "license": "MIT", 7116 + "dependencies": { 7117 + "call-bound": "^1.0.2", 7118 + "es-errors": "^1.3.0", 7119 + "get-intrinsic": "^1.2.5", 7120 + "object-inspect": "^1.13.3", 7121 + "side-channel-map": "^1.0.1" 7122 + }, 7123 + "engines": { 7124 + "node": ">= 0.4" 7125 + }, 7126 + "funding": { 7127 + "url": "https://github.com/sponsors/ljharb" 7128 + } 7129 + }, 7130 + "node_modules/signal-exit": { 7131 + "version": "4.1.0", 7132 + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", 7133 + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", 7134 + "dev": true, 7135 + "license": "ISC", 7136 + "engines": { 7137 + "node": ">=14" 7138 + }, 7139 + "funding": { 7140 + "url": "https://github.com/sponsors/isaacs" 7141 + } 7142 + }, 7143 + "node_modules/smob": { 7144 + "version": "1.6.1", 7145 + "resolved": "https://registry.npmjs.org/smob/-/smob-1.6.1.tgz", 7146 + "integrity": "sha512-KAkBqZl3c2GvNgNhcoyJae1aKldDW0LO279wF9bk1PnluRTETKBq0WyzRXxEhoQLk56yHaOY4JCBEKDuJIET5g==", 7147 + "dev": true, 7148 + "license": "MIT", 7149 + "engines": { 7150 + "node": ">=20.0.0" 7151 + } 7152 + }, 7153 + "node_modules/source-map": { 7154 + "version": "0.8.0-beta.0", 7155 + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", 7156 + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", 7157 + "deprecated": "The work that was done in this beta branch won't be included in future versions", 7158 + "dev": true, 7159 + "license": "BSD-3-Clause", 7160 + "dependencies": { 7161 + "whatwg-url": "^7.0.0" 7162 + }, 7163 + "engines": { 7164 + "node": ">= 8" 7165 + } 7166 + }, 7167 + "node_modules/source-map-js": { 7168 + "version": "1.2.1", 7169 + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", 7170 + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", 7171 + "dev": true, 7172 + "license": "BSD-3-Clause", 7173 + "engines": { 7174 + "node": ">=0.10.0" 7175 + } 7176 + }, 7177 + "node_modules/source-map-support": { 7178 + "version": "0.5.21", 7179 + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", 7180 + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", 7181 + "dev": true, 7182 + "license": "MIT", 7183 + "dependencies": { 7184 + "buffer-from": "^1.0.0", 7185 + "source-map": "^0.6.0" 7186 + } 7187 + }, 7188 + "node_modules/source-map-support/node_modules/source-map": { 7189 + "version": "0.6.1", 7190 + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 7191 + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 7192 + "dev": true, 7193 + "license": "BSD-3-Clause", 7194 + "engines": { 7195 + "node": ">=0.10.0" 7196 + } 7197 + }, 7198 + "node_modules/sourcemap-codec": { 7199 + "version": "1.4.8", 7200 + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", 7201 + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", 7202 + "deprecated": "Please use @jridgewell/sourcemap-codec instead", 7203 + "dev": true, 7204 + "license": "MIT" 7205 + }, 7206 + "node_modules/stop-iteration-iterator": { 7207 + "version": "1.1.0", 7208 + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", 7209 + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", 7210 + "dev": true, 7211 + "license": "MIT", 7212 + "dependencies": { 7213 + "es-errors": "^1.3.0", 7214 + "internal-slot": "^1.1.0" 7215 + }, 7216 + "engines": { 7217 + "node": ">= 0.4" 7218 + } 7219 + }, 7220 + "node_modules/string.prototype.matchall": { 7221 + "version": "4.0.12", 7222 + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", 7223 + "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", 7224 + "dev": true, 7225 + "license": "MIT", 7226 + "dependencies": { 7227 + "call-bind": "^1.0.8", 7228 + "call-bound": "^1.0.3", 7229 + "define-properties": "^1.2.1", 7230 + "es-abstract": "^1.23.6", 7231 + "es-errors": "^1.3.0", 7232 + "es-object-atoms": "^1.0.0", 7233 + "get-intrinsic": "^1.2.6", 7234 + "gopd": "^1.2.0", 7235 + "has-symbols": "^1.1.0", 7236 + "internal-slot": "^1.1.0", 7237 + "regexp.prototype.flags": "^1.5.3", 7238 + "set-function-name": "^2.0.2", 7239 + "side-channel": "^1.1.0" 7240 + }, 7241 + "engines": { 7242 + "node": ">= 0.4" 7243 + }, 7244 + "funding": { 7245 + "url": "https://github.com/sponsors/ljharb" 7246 + } 7247 + }, 7248 + "node_modules/string.prototype.trim": { 7249 + "version": "1.2.10", 7250 + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", 7251 + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", 7252 + "dev": true, 7253 + "license": "MIT", 7254 + "dependencies": { 7255 + "call-bind": "^1.0.8", 7256 + "call-bound": "^1.0.2", 7257 + "define-data-property": "^1.1.4", 7258 + "define-properties": "^1.2.1", 7259 + "es-abstract": "^1.23.5", 7260 + "es-object-atoms": "^1.0.0", 7261 + "has-property-descriptors": "^1.0.2" 7262 + }, 7263 + "engines": { 7264 + "node": ">= 0.4" 7265 + }, 7266 + "funding": { 7267 + "url": "https://github.com/sponsors/ljharb" 7268 + } 7269 + }, 7270 + "node_modules/string.prototype.trimend": { 7271 + "version": "1.0.9", 7272 + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", 7273 + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", 7274 + "dev": true, 7275 + "license": "MIT", 7276 + "dependencies": { 7277 + "call-bind": "^1.0.8", 7278 + "call-bound": "^1.0.2", 7279 + "define-properties": "^1.2.1", 7280 + "es-object-atoms": "^1.0.0" 7281 + }, 7282 + "engines": { 7283 + "node": ">= 0.4" 7284 + }, 7285 + "funding": { 7286 + "url": "https://github.com/sponsors/ljharb" 7287 + } 7288 + }, 7289 + "node_modules/string.prototype.trimstart": { 7290 + "version": "1.0.8", 7291 + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", 7292 + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", 7293 + "dev": true, 7294 + "license": "MIT", 7295 + "dependencies": { 7296 + "call-bind": "^1.0.7", 7297 + "define-properties": "^1.2.1", 7298 + "es-object-atoms": "^1.0.0" 7299 + }, 7300 + "engines": { 7301 + "node": ">= 0.4" 7302 + }, 7303 + "funding": { 7304 + "url": "https://github.com/sponsors/ljharb" 7305 + } 7306 + }, 7307 + "node_modules/stringify-object": { 7308 + "version": "3.3.0", 7309 + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", 7310 + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", 7311 + "dev": true, 7312 + "license": "BSD-2-Clause", 7313 + "dependencies": { 7314 + "get-own-enumerable-property-symbols": "^3.0.0", 7315 + "is-obj": "^1.0.1", 7316 + "is-regexp": "^1.0.0" 7317 + }, 7318 + "engines": { 7319 + "node": ">=4" 7320 + } 7321 + }, 7322 + "node_modules/strip-comments": { 7323 + "version": "2.0.1", 7324 + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", 7325 + "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", 7326 + "dev": true, 7327 + "license": "MIT", 7328 + "engines": { 7329 + "node": ">=10" 7330 + } 7331 + }, 7332 + "node_modules/strip-json-comments": { 7333 + "version": "3.1.1", 7334 + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", 7335 + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", 7336 + "dev": true, 7337 + "license": "MIT", 7338 + "engines": { 7339 + "node": ">=8" 7340 + }, 7341 + "funding": { 7342 + "url": "https://github.com/sponsors/sindresorhus" 7343 + } 7344 + }, 7345 + "node_modules/sucrase": { 7346 + "version": "3.35.1", 7347 + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz", 7348 + "integrity": "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==", 7349 + "dev": true, 7350 + "license": "MIT", 7351 + "dependencies": { 7352 + "@jridgewell/gen-mapping": "^0.3.2", 7353 + "commander": "^4.0.0", 7354 + "lines-and-columns": "^1.1.6", 7355 + "mz": "^2.7.0", 7356 + "pirates": "^4.0.1", 7357 + "tinyglobby": "^0.2.11", 7358 + "ts-interface-checker": "^0.1.9" 7359 + }, 7360 + "bin": { 7361 + "sucrase": "bin/sucrase", 7362 + "sucrase-node": "bin/sucrase-node" 7363 + }, 7364 + "engines": { 7365 + "node": ">=16 || 14 >=14.17" 7366 + } 7367 + }, 7368 + "node_modules/supports-color": { 7369 + "version": "7.2.0", 7370 + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 7371 + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 7372 + "dev": true, 7373 + "license": "MIT", 7374 + "dependencies": { 7375 + "has-flag": "^4.0.0" 7376 + }, 7377 + "engines": { 7378 + "node": ">=8" 7379 + } 7380 + }, 7381 + "node_modules/supports-preserve-symlinks-flag": { 7382 + "version": "1.0.0", 7383 + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 7384 + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 7385 + "dev": true, 7386 + "license": "MIT", 7387 + "engines": { 7388 + "node": ">= 0.4" 7389 + }, 7390 + "funding": { 7391 + "url": "https://github.com/sponsors/ljharb" 7392 + } 7393 + }, 7394 + "node_modules/tailwind-merge": { 7395 + "version": "3.5.0", 7396 + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.5.0.tgz", 7397 + "integrity": "sha512-I8K9wewnVDkL1NTGoqWmVEIlUcB9gFriAEkXkfCjX5ib8ezGxtR3xD7iZIxrfArjEsH7F1CHD4RFUtxefdqV/A==", 7398 + "license": "MIT", 7399 + "funding": { 7400 + "type": "github", 7401 + "url": "https://github.com/sponsors/dcastil" 7402 + } 7403 + }, 7404 + "node_modules/tailwindcss": { 7405 + "version": "3.4.19", 7406 + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.19.tgz", 7407 + "integrity": "sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==", 7408 + "dev": true, 7409 + "license": "MIT", 7410 + "dependencies": { 7411 + "@alloc/quick-lru": "^5.2.0", 7412 + "arg": "^5.0.2", 7413 + "chokidar": "^3.6.0", 7414 + "didyoumean": "^1.2.2", 7415 + "dlv": "^1.1.3", 7416 + "fast-glob": "^3.3.2", 7417 + "glob-parent": "^6.0.2", 7418 + "is-glob": "^4.0.3", 7419 + "jiti": "^1.21.7", 7420 + "lilconfig": "^3.1.3", 7421 + "micromatch": "^4.0.8", 7422 + "normalize-path": "^3.0.0", 7423 + "object-hash": "^3.0.0", 7424 + "picocolors": "^1.1.1", 7425 + "postcss": "^8.4.47", 7426 + "postcss-import": "^15.1.0", 7427 + "postcss-js": "^4.0.1", 7428 + "postcss-load-config": "^4.0.2 || ^5.0 || ^6.0", 7429 + "postcss-nested": "^6.2.0", 7430 + "postcss-selector-parser": "^6.1.2", 7431 + "resolve": "^1.22.8", 7432 + "sucrase": "^3.35.0" 7433 + }, 7434 + "bin": { 7435 + "tailwind": "lib/cli.js", 7436 + "tailwindcss": "lib/cli.js" 7437 + }, 7438 + "engines": { 7439 + "node": ">=14.0.0" 7440 + } 7441 + }, 7442 + "node_modules/tailwindcss-animate": { 7443 + "version": "1.0.7", 7444 + "resolved": "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz", 7445 + "integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==", 7446 + "dev": true, 7447 + "license": "MIT", 7448 + "peerDependencies": { 7449 + "tailwindcss": ">=3.0.0 || insiders" 7450 + } 7451 + }, 7452 + "node_modules/temp-dir": { 7453 + "version": "2.0.0", 7454 + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", 7455 + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", 7456 + "dev": true, 7457 + "license": "MIT", 7458 + "engines": { 7459 + "node": ">=8" 7460 + } 7461 + }, 7462 + "node_modules/tempy": { 7463 + "version": "0.6.0", 7464 + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", 7465 + "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", 7466 + "dev": true, 7467 + "license": "MIT", 7468 + "dependencies": { 7469 + "is-stream": "^2.0.0", 7470 + "temp-dir": "^2.0.0", 7471 + "type-fest": "^0.16.0", 7472 + "unique-string": "^2.0.0" 7473 + }, 7474 + "engines": { 7475 + "node": ">=10" 7476 + }, 7477 + "funding": { 7478 + "url": "https://github.com/sponsors/sindresorhus" 7479 + } 7480 + }, 7481 + "node_modules/terser": { 7482 + "version": "5.46.1", 7483 + "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.1.tgz", 7484 + "integrity": "sha512-vzCjQO/rgUuK9sf8VJZvjqiqiHFaZLnOiimmUuOKODxWL8mm/xua7viT7aqX7dgPY60otQjUotzFMmCB4VdmqQ==", 7485 + "dev": true, 7486 + "license": "BSD-2-Clause", 7487 + "dependencies": { 7488 + "@jridgewell/source-map": "^0.3.3", 7489 + "acorn": "^8.15.0", 7490 + "commander": "^2.20.0", 7491 + "source-map-support": "~0.5.20" 7492 + }, 7493 + "bin": { 7494 + "terser": "bin/terser" 7495 + }, 7496 + "engines": { 7497 + "node": ">=10" 7498 + } 7499 + }, 7500 + "node_modules/terser/node_modules/commander": { 7501 + "version": "2.20.3", 7502 + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", 7503 + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", 7504 + "dev": true, 7505 + "license": "MIT" 7506 + }, 7507 + "node_modules/thenify": { 7508 + "version": "3.3.1", 7509 + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", 7510 + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", 7511 + "dev": true, 7512 + "license": "MIT", 7513 + "dependencies": { 7514 + "any-promise": "^1.0.0" 7515 + } 7516 + }, 7517 + "node_modules/thenify-all": { 7518 + "version": "1.6.0", 7519 + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", 7520 + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", 7521 + "dev": true, 7522 + "license": "MIT", 7523 + "dependencies": { 7524 + "thenify": ">= 3.1.0 < 4" 7525 + }, 7526 + "engines": { 7527 + "node": ">=0.8" 7528 + } 7529 + }, 7530 + "node_modules/tinyglobby": { 7531 + "version": "0.2.16", 7532 + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", 7533 + "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", 7534 + "dev": true, 7535 + "license": "MIT", 7536 + "dependencies": { 7537 + "fdir": "^6.5.0", 7538 + "picomatch": "^4.0.4" 7539 + }, 7540 + "engines": { 7541 + "node": ">=12.0.0" 7542 + }, 7543 + "funding": { 7544 + "url": "https://github.com/sponsors/SuperchupuDev" 7545 + } 7546 + }, 7547 + "node_modules/to-regex-range": { 7548 + "version": "5.0.1", 7549 + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 7550 + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 7551 + "dev": true, 7552 + "license": "MIT", 7553 + "dependencies": { 7554 + "is-number": "^7.0.0" 7555 + }, 7556 + "engines": { 7557 + "node": ">=8.0" 7558 + } 7559 + }, 7560 + "node_modules/tr46": { 7561 + "version": "1.0.1", 7562 + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", 7563 + "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", 7564 + "dev": true, 7565 + "license": "MIT", 7566 + "dependencies": { 7567 + "punycode": "^2.1.0" 7568 + } 7569 + }, 7570 + "node_modules/ts-api-utils": { 7571 + "version": "2.5.0", 7572 + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz", 7573 + "integrity": "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==", 7574 + "dev": true, 7575 + "license": "MIT", 7576 + "engines": { 7577 + "node": ">=18.12" 7578 + }, 7579 + "peerDependencies": { 7580 + "typescript": ">=4.8.4" 7581 + } 7582 + }, 7583 + "node_modules/ts-interface-checker": { 7584 + "version": "0.1.13", 7585 + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", 7586 + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", 7587 + "dev": true, 7588 + "license": "Apache-2.0" 7589 + }, 7590 + "node_modules/type-check": { 7591 + "version": "0.4.0", 7592 + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", 7593 + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", 7594 + "dev": true, 7595 + "license": "MIT", 7596 + "dependencies": { 7597 + "prelude-ls": "^1.2.1" 7598 + }, 7599 + "engines": { 7600 + "node": ">= 0.8.0" 7601 + } 7602 + }, 7603 + "node_modules/type-fest": { 7604 + "version": "0.16.0", 7605 + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", 7606 + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", 7607 + "dev": true, 7608 + "license": "(MIT OR CC0-1.0)", 7609 + "engines": { 7610 + "node": ">=10" 7611 + }, 7612 + "funding": { 7613 + "url": "https://github.com/sponsors/sindresorhus" 7614 + } 7615 + }, 7616 + "node_modules/typed-array-buffer": { 7617 + "version": "1.0.3", 7618 + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", 7619 + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", 7620 + "dev": true, 7621 + "license": "MIT", 7622 + "dependencies": { 7623 + "call-bound": "^1.0.3", 7624 + "es-errors": "^1.3.0", 7625 + "is-typed-array": "^1.1.14" 7626 + }, 7627 + "engines": { 7628 + "node": ">= 0.4" 7629 + } 7630 + }, 7631 + "node_modules/typed-array-byte-length": { 7632 + "version": "1.0.3", 7633 + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", 7634 + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", 7635 + "dev": true, 7636 + "license": "MIT", 7637 + "dependencies": { 7638 + "call-bind": "^1.0.8", 7639 + "for-each": "^0.3.3", 7640 + "gopd": "^1.2.0", 7641 + "has-proto": "^1.2.0", 7642 + "is-typed-array": "^1.1.14" 7643 + }, 7644 + "engines": { 7645 + "node": ">= 0.4" 7646 + }, 7647 + "funding": { 7648 + "url": "https://github.com/sponsors/ljharb" 7649 + } 7650 + }, 7651 + "node_modules/typed-array-byte-offset": { 7652 + "version": "1.0.4", 7653 + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", 7654 + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", 7655 + "dev": true, 7656 + "license": "MIT", 7657 + "dependencies": { 7658 + "available-typed-arrays": "^1.0.7", 7659 + "call-bind": "^1.0.8", 7660 + "for-each": "^0.3.3", 7661 + "gopd": "^1.2.0", 7662 + "has-proto": "^1.2.0", 7663 + "is-typed-array": "^1.1.15", 7664 + "reflect.getprototypeof": "^1.0.9" 7665 + }, 7666 + "engines": { 7667 + "node": ">= 0.4" 7668 + }, 7669 + "funding": { 7670 + "url": "https://github.com/sponsors/ljharb" 7671 + } 7672 + }, 7673 + "node_modules/typed-array-length": { 7674 + "version": "1.0.7", 7675 + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", 7676 + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", 7677 + "dev": true, 7678 + "license": "MIT", 7679 + "dependencies": { 7680 + "call-bind": "^1.0.7", 7681 + "for-each": "^0.3.3", 7682 + "gopd": "^1.0.1", 7683 + "is-typed-array": "^1.1.13", 7684 + "possible-typed-array-names": "^1.0.0", 7685 + "reflect.getprototypeof": "^1.0.6" 7686 + }, 7687 + "engines": { 7688 + "node": ">= 0.4" 7689 + }, 7690 + "funding": { 7691 + "url": "https://github.com/sponsors/ljharb" 7692 + } 7693 + }, 7694 + "node_modules/typescript": { 7695 + "version": "6.0.2", 7696 + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.2.tgz", 7697 + "integrity": "sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ==", 7698 + "dev": true, 7699 + "license": "Apache-2.0", 7700 + "bin": { 7701 + "tsc": "bin/tsc", 7702 + "tsserver": "bin/tsserver" 7703 + }, 7704 + "engines": { 7705 + "node": ">=14.17" 7706 + } 7707 + }, 7708 + "node_modules/typescript-eslint": { 7709 + "version": "8.58.1", 7710 + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.58.1.tgz", 7711 + "integrity": "sha512-gf6/oHChByg9HJvhMO1iBexJh12AqqTfnuxscMDOVqfJW3htsdRJI/GfPpHTTcyeB8cSTUY2JcZmVgoyPqcrDg==", 7712 + "dev": true, 7713 + "license": "MIT", 7714 + "dependencies": { 7715 + "@typescript-eslint/eslint-plugin": "8.58.1", 7716 + "@typescript-eslint/parser": "8.58.1", 7717 + "@typescript-eslint/typescript-estree": "8.58.1", 7718 + "@typescript-eslint/utils": "8.58.1" 7719 + }, 7720 + "engines": { 7721 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 7722 + }, 7723 + "funding": { 7724 + "type": "opencollective", 7725 + "url": "https://opencollective.com/typescript-eslint" 7726 + }, 7727 + "peerDependencies": { 7728 + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", 7729 + "typescript": ">=4.8.4 <6.1.0" 7730 + } 7731 + }, 7732 + "node_modules/unbox-primitive": { 7733 + "version": "1.1.0", 7734 + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", 7735 + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", 7736 + "dev": true, 7737 + "license": "MIT", 7738 + "dependencies": { 7739 + "call-bound": "^1.0.3", 7740 + "has-bigints": "^1.0.2", 7741 + "has-symbols": "^1.1.0", 7742 + "which-boxed-primitive": "^1.1.1" 7743 + }, 7744 + "engines": { 7745 + "node": ">= 0.4" 7746 + }, 7747 + "funding": { 7748 + "url": "https://github.com/sponsors/ljharb" 7749 + } 7750 + }, 7751 + "node_modules/undici-types": { 7752 + "version": "7.16.0", 7753 + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", 7754 + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", 7755 + "dev": true, 7756 + "license": "MIT" 7757 + }, 7758 + "node_modules/unicode-canonical-property-names-ecmascript": { 7759 + "version": "2.0.1", 7760 + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", 7761 + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", 7762 + "dev": true, 7763 + "license": "MIT", 7764 + "engines": { 7765 + "node": ">=4" 7766 + } 7767 + }, 7768 + "node_modules/unicode-match-property-ecmascript": { 7769 + "version": "2.0.0", 7770 + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", 7771 + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", 7772 + "dev": true, 7773 + "license": "MIT", 7774 + "dependencies": { 7775 + "unicode-canonical-property-names-ecmascript": "^2.0.0", 7776 + "unicode-property-aliases-ecmascript": "^2.0.0" 7777 + }, 7778 + "engines": { 7779 + "node": ">=4" 7780 + } 7781 + }, 7782 + "node_modules/unicode-match-property-value-ecmascript": { 7783 + "version": "2.2.1", 7784 + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz", 7785 + "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==", 7786 + "dev": true, 7787 + "license": "MIT", 7788 + "engines": { 7789 + "node": ">=4" 7790 + } 7791 + }, 7792 + "node_modules/unicode-property-aliases-ecmascript": { 7793 + "version": "2.2.0", 7794 + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz", 7795 + "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==", 7796 + "dev": true, 7797 + "license": "MIT", 7798 + "engines": { 7799 + "node": ">=4" 7800 + } 7801 + }, 7802 + "node_modules/unique-string": { 7803 + "version": "2.0.0", 7804 + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", 7805 + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", 7806 + "dev": true, 7807 + "license": "MIT", 7808 + "dependencies": { 7809 + "crypto-random-string": "^2.0.0" 7810 + }, 7811 + "engines": { 7812 + "node": ">=8" 7813 + } 7814 + }, 7815 + "node_modules/universalify": { 7816 + "version": "2.0.1", 7817 + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", 7818 + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", 7819 + "dev": true, 7820 + "license": "MIT", 7821 + "engines": { 7822 + "node": ">= 10.0.0" 7823 + } 7824 + }, 7825 + "node_modules/upath": { 7826 + "version": "1.2.0", 7827 + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", 7828 + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", 7829 + "dev": true, 7830 + "license": "MIT", 7831 + "engines": { 7832 + "node": ">=4", 7833 + "yarn": "*" 7834 + } 7835 + }, 7836 + "node_modules/update-browserslist-db": { 7837 + "version": "1.2.3", 7838 + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", 7839 + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", 7840 + "dev": true, 7841 + "funding": [ 7842 + { 7843 + "type": "opencollective", 7844 + "url": "https://opencollective.com/browserslist" 7845 + }, 7846 + { 7847 + "type": "tidelift", 7848 + "url": "https://tidelift.com/funding/github/npm/browserslist" 7849 + }, 7850 + { 7851 + "type": "github", 7852 + "url": "https://github.com/sponsors/ai" 7853 + } 7854 + ], 7855 + "license": "MIT", 7856 + "dependencies": { 7857 + "escalade": "^3.2.0", 7858 + "picocolors": "^1.1.1" 7859 + }, 7860 + "bin": { 7861 + "update-browserslist-db": "cli.js" 7862 + }, 7863 + "peerDependencies": { 7864 + "browserslist": ">= 4.21.0" 7865 + } 7866 + }, 7867 + "node_modules/uri-js": { 7868 + "version": "4.4.1", 7869 + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", 7870 + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 7871 + "dev": true, 7872 + "license": "BSD-2-Clause", 7873 + "dependencies": { 7874 + "punycode": "^2.1.0" 7875 + } 7876 + }, 7877 + "node_modules/util-deprecate": { 7878 + "version": "1.0.2", 7879 + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 7880 + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", 7881 + "dev": true, 7882 + "license": "MIT" 7883 + }, 7884 + "node_modules/vite": { 7885 + "version": "7.3.2", 7886 + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.2.tgz", 7887 + "integrity": "sha512-Bby3NOsna2jsjfLVOHKes8sGwgl4TT0E6vvpYgnAYDIF/tie7MRaFthmKuHx1NSXjiTueXH3do80FMQgvEktRg==", 7888 + "dev": true, 7889 + "license": "MIT", 7890 + "dependencies": { 7891 + "esbuild": "^0.27.0", 7892 + "fdir": "^6.5.0", 7893 + "picomatch": "^4.0.3", 7894 + "postcss": "^8.5.6", 7895 + "rollup": "^4.43.0", 7896 + "tinyglobby": "^0.2.15" 7897 + }, 7898 + "bin": { 7899 + "vite": "bin/vite.js" 7900 + }, 7901 + "engines": { 7902 + "node": "^20.19.0 || >=22.12.0" 7903 + }, 7904 + "funding": { 7905 + "url": "https://github.com/vitejs/vite?sponsor=1" 7906 + }, 7907 + "optionalDependencies": { 7908 + "fsevents": "~2.3.3" 7909 + }, 7910 + "peerDependencies": { 7911 + "@types/node": "^20.19.0 || >=22.12.0", 7912 + "jiti": ">=1.21.0", 7913 + "less": "^4.0.0", 7914 + "lightningcss": "^1.21.0", 7915 + "sass": "^1.70.0", 7916 + "sass-embedded": "^1.70.0", 7917 + "stylus": ">=0.54.8", 7918 + "sugarss": "^5.0.0", 7919 + "terser": "^5.16.0", 7920 + "tsx": "^4.8.1", 7921 + "yaml": "^2.4.2" 7922 + }, 7923 + "peerDependenciesMeta": { 7924 + "@types/node": { 7925 + "optional": true 7926 + }, 7927 + "jiti": { 7928 + "optional": true 7929 + }, 7930 + "less": { 7931 + "optional": true 7932 + }, 7933 + "lightningcss": { 7934 + "optional": true 7935 + }, 7936 + "sass": { 7937 + "optional": true 7938 + }, 7939 + "sass-embedded": { 7940 + "optional": true 7941 + }, 7942 + "stylus": { 7943 + "optional": true 7944 + }, 7945 + "sugarss": { 7946 + "optional": true 7947 + }, 7948 + "terser": { 7949 + "optional": true 7950 + }, 7951 + "tsx": { 7952 + "optional": true 7953 + }, 7954 + "yaml": { 7955 + "optional": true 7956 + } 7957 + } 7958 + }, 7959 + "node_modules/vite-plugin-pwa": { 7960 + "version": "1.2.0", 7961 + "resolved": "https://registry.npmjs.org/vite-plugin-pwa/-/vite-plugin-pwa-1.2.0.tgz", 7962 + "integrity": "sha512-a2xld+SJshT9Lgcv8Ji4+srFJL4k/1bVbd1x06JIkvecpQkwkvCncD1+gSzcdm3s+owWLpMJerG3aN5jupJEVw==", 7963 + "dev": true, 7964 + "license": "MIT", 7965 + "dependencies": { 7966 + "debug": "^4.3.6", 7967 + "pretty-bytes": "^6.1.1", 7968 + "tinyglobby": "^0.2.10", 7969 + "workbox-build": "^7.4.0", 7970 + "workbox-window": "^7.4.0" 7971 + }, 7972 + "engines": { 7973 + "node": ">=16.0.0" 7974 + }, 7975 + "funding": { 7976 + "url": "https://github.com/sponsors/antfu" 7977 + }, 7978 + "peerDependencies": { 7979 + "@vite-pwa/assets-generator": "^1.0.0", 7980 + "vite": "^3.1.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", 7981 + "workbox-build": "^7.4.0", 7982 + "workbox-window": "^7.4.0" 7983 + }, 7984 + "peerDependenciesMeta": { 7985 + "@vite-pwa/assets-generator": { 7986 + "optional": true 7987 + } 7988 + } 7989 + }, 7990 + "node_modules/webidl-conversions": { 7991 + "version": "4.0.2", 7992 + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", 7993 + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", 7994 + "dev": true, 7995 + "license": "BSD-2-Clause" 7996 + }, 7997 + "node_modules/whatwg-url": { 7998 + "version": "7.1.0", 7999 + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", 8000 + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", 8001 + "dev": true, 8002 + "license": "MIT", 8003 + "dependencies": { 8004 + "lodash.sortby": "^4.7.0", 8005 + "tr46": "^1.0.1", 8006 + "webidl-conversions": "^4.0.2" 8007 + } 8008 + }, 8009 + "node_modules/which": { 8010 + "version": "2.0.2", 8011 + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 8012 + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 8013 + "dev": true, 8014 + "license": "ISC", 8015 + "dependencies": { 8016 + "isexe": "^2.0.0" 8017 + }, 8018 + "bin": { 8019 + "node-which": "bin/node-which" 8020 + }, 8021 + "engines": { 8022 + "node": ">= 8" 8023 + } 8024 + }, 8025 + "node_modules/which-boxed-primitive": { 8026 + "version": "1.1.1", 8027 + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", 8028 + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", 8029 + "dev": true, 8030 + "license": "MIT", 8031 + "dependencies": { 8032 + "is-bigint": "^1.1.0", 8033 + "is-boolean-object": "^1.2.1", 8034 + "is-number-object": "^1.1.1", 8035 + "is-string": "^1.1.1", 8036 + "is-symbol": "^1.1.1" 8037 + }, 8038 + "engines": { 8039 + "node": ">= 0.4" 8040 + }, 8041 + "funding": { 8042 + "url": "https://github.com/sponsors/ljharb" 8043 + } 8044 + }, 8045 + "node_modules/which-builtin-type": { 8046 + "version": "1.2.1", 8047 + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", 8048 + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", 8049 + "dev": true, 8050 + "license": "MIT", 8051 + "dependencies": { 8052 + "call-bound": "^1.0.2", 8053 + "function.prototype.name": "^1.1.6", 8054 + "has-tostringtag": "^1.0.2", 8055 + "is-async-function": "^2.0.0", 8056 + "is-date-object": "^1.1.0", 8057 + "is-finalizationregistry": "^1.1.0", 8058 + "is-generator-function": "^1.0.10", 8059 + "is-regex": "^1.2.1", 8060 + "is-weakref": "^1.0.2", 8061 + "isarray": "^2.0.5", 8062 + "which-boxed-primitive": "^1.1.0", 8063 + "which-collection": "^1.0.2", 8064 + "which-typed-array": "^1.1.16" 8065 + }, 8066 + "engines": { 8067 + "node": ">= 0.4" 8068 + }, 8069 + "funding": { 8070 + "url": "https://github.com/sponsors/ljharb" 8071 + } 8072 + }, 8073 + "node_modules/which-collection": { 8074 + "version": "1.0.2", 8075 + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", 8076 + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", 8077 + "dev": true, 8078 + "license": "MIT", 8079 + "dependencies": { 8080 + "is-map": "^2.0.3", 8081 + "is-set": "^2.0.3", 8082 + "is-weakmap": "^2.0.2", 8083 + "is-weakset": "^2.0.3" 8084 + }, 8085 + "engines": { 8086 + "node": ">= 0.4" 8087 + }, 8088 + "funding": { 8089 + "url": "https://github.com/sponsors/ljharb" 8090 + } 8091 + }, 8092 + "node_modules/which-typed-array": { 8093 + "version": "1.1.20", 8094 + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.20.tgz", 8095 + "integrity": "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==", 8096 + "dev": true, 8097 + "license": "MIT", 8098 + "dependencies": { 8099 + "available-typed-arrays": "^1.0.7", 8100 + "call-bind": "^1.0.8", 8101 + "call-bound": "^1.0.4", 8102 + "for-each": "^0.3.5", 8103 + "get-proto": "^1.0.1", 8104 + "gopd": "^1.2.0", 8105 + "has-tostringtag": "^1.0.2" 8106 + }, 8107 + "engines": { 8108 + "node": ">= 0.4" 8109 + }, 8110 + "funding": { 8111 + "url": "https://github.com/sponsors/ljharb" 8112 + } 8113 + }, 8114 + "node_modules/word-wrap": { 8115 + "version": "1.2.5", 8116 + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", 8117 + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", 8118 + "dev": true, 8119 + "license": "MIT", 8120 + "engines": { 8121 + "node": ">=0.10.0" 8122 + } 8123 + }, 8124 + "node_modules/workbox-background-sync": { 8125 + "version": "7.4.0", 8126 + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-7.4.0.tgz", 8127 + "integrity": "sha512-8CB9OxKAgKZKyNMwfGZ1XESx89GryWTfI+V5yEj8sHjFH8MFelUwYXEyldEK6M6oKMmn807GoJFUEA1sC4XS9w==", 8128 + "dev": true, 8129 + "license": "MIT", 8130 + "dependencies": { 8131 + "idb": "^7.0.1", 8132 + "workbox-core": "7.4.0" 8133 + } 8134 + }, 8135 + "node_modules/workbox-broadcast-update": { 8136 + "version": "7.4.0", 8137 + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-7.4.0.tgz", 8138 + "integrity": "sha512-+eZQwoktlvo62cI0b+QBr40v5XjighxPq3Fzo9AWMiAosmpG5gxRHgTbGGhaJv/q/MFVxwFNGh/UwHZ/8K88lA==", 8139 + "dev": true, 8140 + "license": "MIT", 8141 + "dependencies": { 8142 + "workbox-core": "7.4.0" 8143 + } 8144 + }, 8145 + "node_modules/workbox-build": { 8146 + "version": "7.4.0", 8147 + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-7.4.0.tgz", 8148 + "integrity": "sha512-Ntk1pWb0caOFIvwz/hfgrov/OJ45wPEhI5PbTywQcYjyZiVhT3UrwwUPl6TRYbTm4moaFYithYnl1lvZ8UjxcA==", 8149 + "dev": true, 8150 + "license": "MIT", 8151 + "dependencies": { 8152 + "@apideck/better-ajv-errors": "^0.3.1", 8153 + "@babel/core": "^7.24.4", 8154 + "@babel/preset-env": "^7.11.0", 8155 + "@babel/runtime": "^7.11.2", 8156 + "@rollup/plugin-babel": "^5.2.0", 8157 + "@rollup/plugin-node-resolve": "^15.2.3", 8158 + "@rollup/plugin-replace": "^2.4.1", 8159 + "@rollup/plugin-terser": "^0.4.3", 8160 + "@surma/rollup-plugin-off-main-thread": "^2.2.3", 8161 + "ajv": "^8.6.0", 8162 + "common-tags": "^1.8.0", 8163 + "fast-json-stable-stringify": "^2.1.0", 8164 + "fs-extra": "^9.0.1", 8165 + "glob": "^11.0.1", 8166 + "lodash": "^4.17.20", 8167 + "pretty-bytes": "^5.3.0", 8168 + "rollup": "^2.79.2", 8169 + "source-map": "^0.8.0-beta.0", 8170 + "stringify-object": "^3.3.0", 8171 + "strip-comments": "^2.0.1", 8172 + "tempy": "^0.6.0", 8173 + "upath": "^1.2.0", 8174 + "workbox-background-sync": "7.4.0", 8175 + "workbox-broadcast-update": "7.4.0", 8176 + "workbox-cacheable-response": "7.4.0", 8177 + "workbox-core": "7.4.0", 8178 + "workbox-expiration": "7.4.0", 8179 + "workbox-google-analytics": "7.4.0", 8180 + "workbox-navigation-preload": "7.4.0", 8181 + "workbox-precaching": "7.4.0", 8182 + "workbox-range-requests": "7.4.0", 8183 + "workbox-recipes": "7.4.0", 8184 + "workbox-routing": "7.4.0", 8185 + "workbox-strategies": "7.4.0", 8186 + "workbox-streams": "7.4.0", 8187 + "workbox-sw": "7.4.0", 8188 + "workbox-window": "7.4.0" 8189 + }, 8190 + "engines": { 8191 + "node": ">=20.0.0" 8192 + } 8193 + }, 8194 + "node_modules/workbox-build/node_modules/@apideck/better-ajv-errors": { 8195 + "version": "0.3.7", 8196 + "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.7.tgz", 8197 + "integrity": "sha512-TajUJwGWbDwkCx/CZi7tRE8PVB7simCvKJfHUsSdvps+aTM/PDPP4gkLmKnc+x3CE//y9i/nj74GqdL/hwk7Iw==", 8198 + "dev": true, 8199 + "license": "MIT", 8200 + "dependencies": { 8201 + "jsonpointer": "^5.0.1", 8202 + "leven": "^3.1.0" 8203 + }, 8204 + "engines": { 8205 + "node": ">=10" 8206 + }, 8207 + "peerDependencies": { 8208 + "ajv": ">=8" 8209 + } 8210 + }, 8211 + "node_modules/workbox-build/node_modules/@rollup/plugin-babel": { 8212 + "version": "5.3.1", 8213 + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", 8214 + "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", 8215 + "dev": true, 8216 + "license": "MIT", 8217 + "dependencies": { 8218 + "@babel/helper-module-imports": "^7.10.4", 8219 + "@rollup/pluginutils": "^3.1.0" 8220 + }, 8221 + "engines": { 8222 + "node": ">= 10.0.0" 8223 + }, 8224 + "peerDependencies": { 8225 + "@babel/core": "^7.0.0", 8226 + "@types/babel__core": "^7.1.9", 8227 + "rollup": "^1.20.0||^2.0.0" 8228 + }, 8229 + "peerDependenciesMeta": { 8230 + "@types/babel__core": { 8231 + "optional": true 8232 + } 8233 + } 8234 + }, 8235 + "node_modules/workbox-build/node_modules/@rollup/plugin-replace": { 8236 + "version": "2.4.2", 8237 + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", 8238 + "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", 8239 + "dev": true, 8240 + "license": "MIT", 8241 + "dependencies": { 8242 + "@rollup/pluginutils": "^3.1.0", 8243 + "magic-string": "^0.25.7" 8244 + }, 8245 + "peerDependencies": { 8246 + "rollup": "^1.20.0 || ^2.0.0" 8247 + } 8248 + }, 8249 + "node_modules/workbox-build/node_modules/@rollup/pluginutils": { 8250 + "version": "3.1.0", 8251 + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", 8252 + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", 8253 + "dev": true, 8254 + "license": "MIT", 8255 + "dependencies": { 8256 + "@types/estree": "0.0.39", 8257 + "estree-walker": "^1.0.1", 8258 + "picomatch": "^2.2.2" 8259 + }, 8260 + "engines": { 8261 + "node": ">= 8.0.0" 8262 + }, 8263 + "peerDependencies": { 8264 + "rollup": "^1.20.0||^2.0.0" 8265 + } 8266 + }, 8267 + "node_modules/workbox-build/node_modules/@types/estree": { 8268 + "version": "0.0.39", 8269 + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", 8270 + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", 8271 + "dev": true, 8272 + "license": "MIT" 8273 + }, 8274 + "node_modules/workbox-build/node_modules/ajv": { 8275 + "version": "8.18.0", 8276 + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", 8277 + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", 8278 + "dev": true, 8279 + "license": "MIT", 8280 + "dependencies": { 8281 + "fast-deep-equal": "^3.1.3", 8282 + "fast-uri": "^3.0.1", 8283 + "json-schema-traverse": "^1.0.0", 8284 + "require-from-string": "^2.0.2" 8285 + }, 8286 + "funding": { 8287 + "type": "github", 8288 + "url": "https://github.com/sponsors/epoberezkin" 8289 + } 8290 + }, 8291 + "node_modules/workbox-build/node_modules/estree-walker": { 8292 + "version": "1.0.1", 8293 + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", 8294 + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", 8295 + "dev": true, 8296 + "license": "MIT" 8297 + }, 8298 + "node_modules/workbox-build/node_modules/json-schema-traverse": { 8299 + "version": "1.0.0", 8300 + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", 8301 + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", 8302 + "dev": true, 8303 + "license": "MIT" 8304 + }, 8305 + "node_modules/workbox-build/node_modules/picomatch": { 8306 + "version": "2.3.2", 8307 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", 8308 + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", 8309 + "dev": true, 8310 + "license": "MIT", 8311 + "engines": { 8312 + "node": ">=8.6" 8313 + }, 8314 + "funding": { 8315 + "url": "https://github.com/sponsors/jonschlinkert" 8316 + } 8317 + }, 8318 + "node_modules/workbox-build/node_modules/pretty-bytes": { 8319 + "version": "5.6.0", 8320 + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", 8321 + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", 8322 + "dev": true, 8323 + "license": "MIT", 8324 + "engines": { 8325 + "node": ">=6" 8326 + }, 8327 + "funding": { 8328 + "url": "https://github.com/sponsors/sindresorhus" 8329 + } 8330 + }, 8331 + "node_modules/workbox-build/node_modules/rollup": { 8332 + "version": "2.80.0", 8333 + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.80.0.tgz", 8334 + "integrity": "sha512-cIFJOD1DESzpjOBl763Kp1AH7UE/0fcdHe6rZXUdQ9c50uvgigvW97u3IcSeBwOkgqL/PXPBktBCh0KEu5L8XQ==", 8335 + "dev": true, 8336 + "license": "MIT", 8337 + "bin": { 8338 + "rollup": "dist/bin/rollup" 8339 + }, 8340 + "engines": { 8341 + "node": ">=10.0.0" 8342 + }, 8343 + "optionalDependencies": { 8344 + "fsevents": "~2.3.2" 8345 + } 8346 + }, 8347 + "node_modules/workbox-cacheable-response": { 8348 + "version": "7.4.0", 8349 + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-7.4.0.tgz", 8350 + "integrity": "sha512-0Fb8795zg/x23ISFkAc7lbWes6vbw34DGFIMw31cwuHPgDEC/5EYm6m/ZkylLX0EnEbbOyOCLjKgFS/Z5g0HeQ==", 8351 + "dev": true, 8352 + "license": "MIT", 8353 + "dependencies": { 8354 + "workbox-core": "7.4.0" 8355 + } 8356 + }, 8357 + "node_modules/workbox-core": { 8358 + "version": "7.4.0", 8359 + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-7.4.0.tgz", 8360 + "integrity": "sha512-6BMfd8tYEnN4baG4emG9U0hdXM4gGuDU3ectXuVHnj71vwxTFI7WOpQJC4siTOlVtGqCUtj0ZQNsrvi6kZZTAQ==", 8361 + "dev": true, 8362 + "license": "MIT" 8363 + }, 8364 + "node_modules/workbox-expiration": { 8365 + "version": "7.4.0", 8366 + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-7.4.0.tgz", 8367 + "integrity": "sha512-V50p4BxYhtA80eOvulu8xVfPBgZbkxJ1Jr8UUn0rvqjGhLDqKNtfrDfjJKnLz2U8fO2xGQJTx/SKXNTzHOjnHw==", 8368 + "dev": true, 8369 + "license": "MIT", 8370 + "dependencies": { 8371 + "idb": "^7.0.1", 8372 + "workbox-core": "7.4.0" 8373 + } 8374 + }, 8375 + "node_modules/workbox-google-analytics": { 8376 + "version": "7.4.0", 8377 + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-7.4.0.tgz", 8378 + "integrity": "sha512-MVPXQslRF6YHkzGoFw1A4GIB8GrKym/A5+jYDUSL+AeJw4ytQGrozYdiZqUW1TPQHW8isBCBtyFJergUXyNoWQ==", 8379 + "dev": true, 8380 + "license": "MIT", 8381 + "dependencies": { 8382 + "workbox-background-sync": "7.4.0", 8383 + "workbox-core": "7.4.0", 8384 + "workbox-routing": "7.4.0", 8385 + "workbox-strategies": "7.4.0" 8386 + } 8387 + }, 8388 + "node_modules/workbox-navigation-preload": { 8389 + "version": "7.4.0", 8390 + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-7.4.0.tgz", 8391 + "integrity": "sha512-etzftSgdQfjMcfPgbfaZCfM2QuR1P+4o8uCA2s4rf3chtKTq/Om7g/qvEOcZkG6v7JZOSOxVYQiOu6PbAZgU6w==", 8392 + "dev": true, 8393 + "license": "MIT", 8394 + "dependencies": { 8395 + "workbox-core": "7.4.0" 8396 + } 8397 + }, 8398 + "node_modules/workbox-precaching": { 8399 + "version": "7.4.0", 8400 + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-7.4.0.tgz", 8401 + "integrity": "sha512-VQs37T6jDqf1rTxUJZXRl3yjZMf5JX/vDPhmx2CPgDDKXATzEoqyRqhYnRoxl6Kr0rqaQlp32i9rtG5zTzIlNg==", 8402 + "dev": true, 8403 + "license": "MIT", 8404 + "dependencies": { 8405 + "workbox-core": "7.4.0", 8406 + "workbox-routing": "7.4.0", 8407 + "workbox-strategies": "7.4.0" 8408 + } 8409 + }, 8410 + "node_modules/workbox-range-requests": { 8411 + "version": "7.4.0", 8412 + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-7.4.0.tgz", 8413 + "integrity": "sha512-3Vq854ZNuP6Y0KZOQWLaLC9FfM7ZaE+iuQl4VhADXybwzr4z/sMmnLgTeUZLq5PaDlcJBxYXQ3U91V7dwAIfvw==", 8414 + "dev": true, 8415 + "license": "MIT", 8416 + "dependencies": { 8417 + "workbox-core": "7.4.0" 8418 + } 8419 + }, 8420 + "node_modules/workbox-recipes": { 8421 + "version": "7.4.0", 8422 + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-7.4.0.tgz", 8423 + "integrity": "sha512-kOkWvsAn4H8GvAkwfJTbwINdv4voFoiE9hbezgB1sb/0NLyTG4rE7l6LvS8lLk5QIRIto+DjXLuAuG3Vmt3cxQ==", 8424 + "dev": true, 8425 + "license": "MIT", 8426 + "dependencies": { 8427 + "workbox-cacheable-response": "7.4.0", 8428 + "workbox-core": "7.4.0", 8429 + "workbox-expiration": "7.4.0", 8430 + "workbox-precaching": "7.4.0", 8431 + "workbox-routing": "7.4.0", 8432 + "workbox-strategies": "7.4.0" 8433 + } 8434 + }, 8435 + "node_modules/workbox-routing": { 8436 + "version": "7.4.0", 8437 + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-7.4.0.tgz", 8438 + "integrity": "sha512-C/ooj5uBWYAhAqwmU8HYQJdOjjDKBp9MzTQ+otpMmd+q0eF59K+NuXUek34wbL0RFrIXe/KKT+tUWcZcBqxbHQ==", 8439 + "dev": true, 8440 + "license": "MIT", 8441 + "dependencies": { 8442 + "workbox-core": "7.4.0" 8443 + } 8444 + }, 8445 + "node_modules/workbox-strategies": { 8446 + "version": "7.4.0", 8447 + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-7.4.0.tgz", 8448 + "integrity": "sha512-T4hVqIi5A4mHi92+5EppMX3cLaVywDp8nsyUgJhOZxcfSV/eQofcOA6/EMo5rnTNmNTpw0rUgjAI6LaVullPpg==", 8449 + "dev": true, 8450 + "license": "MIT", 8451 + "dependencies": { 8452 + "workbox-core": "7.4.0" 8453 + } 8454 + }, 8455 + "node_modules/workbox-streams": { 8456 + "version": "7.4.0", 8457 + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-7.4.0.tgz", 8458 + "integrity": "sha512-QHPBQrey7hQbnTs5GrEVoWz7RhHJXnPT+12qqWM378orDMo5VMJLCkCM1cnCk+8Eq92lccx/VgRZ7WAzZWbSLg==", 8459 + "dev": true, 8460 + "license": "MIT", 8461 + "dependencies": { 8462 + "workbox-core": "7.4.0", 8463 + "workbox-routing": "7.4.0" 8464 + } 8465 + }, 8466 + "node_modules/workbox-sw": { 8467 + "version": "7.4.0", 8468 + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-7.4.0.tgz", 8469 + "integrity": "sha512-ltU+Kr3qWR6BtbdlMnCjobZKzeV1hN+S6UvDywBrwM19TTyqA03X66dzw1tEIdJvQ4lYKkBFox6IAEhoSEZ8Xw==", 8470 + "dev": true, 8471 + "license": "MIT" 8472 + }, 8473 + "node_modules/workbox-window": { 8474 + "version": "7.4.0", 8475 + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-7.4.0.tgz", 8476 + "integrity": "sha512-/bIYdBLAVsNR3v7gYGaV4pQW3M3kEPx5E8vDxGvxo6khTrGtSSCS7QiFKv9ogzBgZiy0OXLP9zO28U/1nF1mfw==", 8477 + "dev": true, 8478 + "license": "MIT", 8479 + "dependencies": { 8480 + "@types/trusted-types": "^2.0.2", 8481 + "workbox-core": "7.4.0" 8482 + } 8483 + }, 8484 + "node_modules/yallist": { 8485 + "version": "3.1.1", 8486 + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", 8487 + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", 8488 + "dev": true, 8489 + "license": "ISC" 8490 + }, 8491 + "node_modules/yocto-queue": { 8492 + "version": "0.1.0", 8493 + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", 8494 + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", 8495 + "dev": true, 8496 + "license": "MIT", 8497 + "engines": { 8498 + "node": ">=10" 8499 + }, 8500 + "funding": { 8501 + "url": "https://github.com/sponsors/sindresorhus" 8502 + } 8503 + }, 8504 + "node_modules/zod": { 8505 + "version": "4.3.6", 8506 + "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.6.tgz", 8507 + "integrity": "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==", 8508 + "dev": true, 8509 + "license": "MIT", 8510 + "funding": { 8511 + "url": "https://github.com/sponsors/colinhacks" 8512 + } 8513 + }, 8514 + "node_modules/zod-validation-error": { 8515 + "version": "4.0.2", 8516 + "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-4.0.2.tgz", 8517 + "integrity": "sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==", 8518 + "dev": true, 8519 + "license": "MIT", 8520 + "engines": { 8521 + "node": ">=18.0.0" 8522 + }, 8523 + "peerDependencies": { 8524 + "zod": "^3.25.0 || ^4.0.0" 8525 + } 8526 + } 8527 + } 8528 + }
+42
package.json
··· 1 + { 2 + "name": "atmosphere-vods", 3 + "private": true, 4 + "version": "0.0.0", 5 + "type": "module", 6 + "scripts": { 7 + "dev": "vite", 8 + "build": "tsc -b && vite build", 9 + "lint": "eslint .", 10 + "preview": "vite preview" 11 + }, 12 + "dependencies": { 13 + "@radix-ui/react-slot": "^1.2.4", 14 + "class-variance-authority": "^0.7.1", 15 + "clsx": "^2.1.1", 16 + "hls.js": "^1.6.15", 17 + "lucide-react": "^1.8.0", 18 + "react": "^19.2.4", 19 + "react-dom": "^19.2.4", 20 + "react-router-dom": "^6.30.3", 21 + "tailwind-merge": "^3.5.0" 22 + }, 23 + "devDependencies": { 24 + "@eslint/js": "^9.39.4", 25 + "@types/node": "^24.12.2", 26 + "@types/react": "^19.2.14", 27 + "@types/react-dom": "^19.2.3", 28 + "@vitejs/plugin-react": "^5.2.0", 29 + "autoprefixer": "^10.4.27", 30 + "eslint": "^9.39.4", 31 + "eslint-plugin-react-hooks": "^7.0.1", 32 + "eslint-plugin-react-refresh": "^0.5.2", 33 + "globals": "^17.4.0", 34 + "postcss": "^8.5.9", 35 + "tailwindcss": "^3.4.19", 36 + "tailwindcss-animate": "^1.0.7", 37 + "typescript": "~6.0.2", 38 + "typescript-eslint": "^8.58.0", 39 + "vite": "^7.3.2", 40 + "vite-plugin-pwa": "^1.2.0" 41 + } 42 + }
+6
postcss.config.js
··· 1 + export default { 2 + plugins: { 3 + tailwindcss: {}, 4 + autoprefixer: {}, 5 + }, 6 + }
+1
public/favicon.svg
··· 1 + <svg xmlns="http://www.w3.org/2000/svg" width="48" height="46" fill="none" viewBox="0 0 48 46"><path fill="#863bff" d="M25.946 44.938c-.664.845-2.021.375-2.021-.698V33.937a2.26 2.26 0 0 0-2.262-2.262H10.287c-.92 0-1.456-1.04-.92-1.788l7.48-10.471c1.07-1.497 0-3.578-1.842-3.578H1.237c-.92 0-1.456-1.04-.92-1.788L10.013.474c.214-.297.556-.474.92-.474h28.894c.92 0 1.456 1.04.92 1.788l-7.48 10.471c-1.07 1.498 0 3.579 1.842 3.579h11.377c.943 0 1.473 1.088.89 1.83L25.947 44.94z" style="fill:#863bff;fill:color(display-p3 .5252 .23 1);fill-opacity:1"/><mask id="a" width="48" height="46" x="0" y="0" maskUnits="userSpaceOnUse" style="mask-type:alpha"><path fill="#000" d="M25.842 44.938c-.664.844-2.021.375-2.021-.698V33.937a2.26 2.26 0 0 0-2.262-2.262H10.183c-.92 0-1.456-1.04-.92-1.788l7.48-10.471c1.07-1.498 0-3.579-1.842-3.579H1.133c-.92 0-1.456-1.04-.92-1.787L9.91.473c.214-.297.556-.474.92-.474h28.894c.92 0 1.456 1.04.92 1.788l-7.48 10.471c-1.07 1.498 0 3.578 1.842 3.578h11.377c.943 0 1.473 1.088.89 1.832L25.843 44.94z" style="fill:#000;fill-opacity:1"/></mask><g mask="url(#a)"><g filter="url(#b)"><ellipse cx="5.508" cy="14.704" fill="#ede6ff" rx="5.508" ry="14.704" style="fill:#ede6ff;fill:color(display-p3 .9275 .9033 1);fill-opacity:1" transform="matrix(.00324 1 1 -.00324 -4.47 31.516)"/></g><g filter="url(#c)"><ellipse cx="10.399" cy="29.851" fill="#ede6ff" rx="10.399" ry="29.851" style="fill:#ede6ff;fill:color(display-p3 .9275 .9033 1);fill-opacity:1" transform="matrix(.00324 1 1 -.00324 -39.328 7.883)"/></g><g filter="url(#d)"><ellipse cx="5.508" cy="30.487" fill="#7e14ff" rx="5.508" ry="30.487" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(89.814 -25.913 -14.639)scale(1 -1)"/></g><g filter="url(#e)"><ellipse cx="5.508" cy="30.599" fill="#7e14ff" rx="5.508" ry="30.599" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(89.814 -32.644 -3.334)scale(1 -1)"/></g><g filter="url(#f)"><ellipse cx="5.508" cy="30.599" fill="#7e14ff" rx="5.508" ry="30.599" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="matrix(.00324 1 1 -.00324 -34.34 30.47)"/></g><g filter="url(#g)"><ellipse cx="14.072" cy="22.078" fill="#ede6ff" rx="14.072" ry="22.078" style="fill:#ede6ff;fill:color(display-p3 .9275 .9033 1);fill-opacity:1" transform="rotate(93.35 24.506 48.493)scale(-1 1)"/></g><g filter="url(#h)"><ellipse cx="3.47" cy="21.501" fill="#7e14ff" rx="3.47" ry="21.501" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(89.009 28.708 47.59)scale(-1 1)"/></g><g filter="url(#i)"><ellipse cx="3.47" cy="21.501" fill="#7e14ff" rx="3.47" ry="21.501" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(89.009 28.708 47.59)scale(-1 1)"/></g><g filter="url(#j)"><ellipse cx=".387" cy="8.972" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(39.51 .387 8.972)"/></g><g filter="url(#k)"><ellipse cx="47.523" cy="-6.092" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(37.892 47.523 -6.092)"/></g><g filter="url(#l)"><ellipse cx="41.412" cy="6.333" fill="#47bfff" rx="5.971" ry="9.665" style="fill:#47bfff;fill:color(display-p3 .2799 .748 1);fill-opacity:1" transform="rotate(37.892 41.412 6.333)"/></g><g filter="url(#m)"><ellipse cx="-1.879" cy="38.332" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(37.892 -1.88 38.332)"/></g><g filter="url(#n)"><ellipse cx="-1.879" cy="38.332" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(37.892 -1.88 38.332)"/></g><g filter="url(#o)"><ellipse cx="35.651" cy="29.907" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(37.892 35.651 29.907)"/></g><g filter="url(#p)"><ellipse cx="38.418" cy="32.4" fill="#47bfff" rx="5.971" ry="15.297" style="fill:#47bfff;fill:color(display-p3 .2799 .748 1);fill-opacity:1" transform="rotate(37.892 38.418 32.4)"/></g></g><defs><filter id="b" width="60.045" height="41.654" x="-19.77" y="16.149" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="7.659"/></filter><filter id="c" width="90.34" height="51.437" x="-54.613" y="-7.533" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="7.659"/></filter><filter id="d" width="79.355" height="29.4" x="-49.64" y="2.03" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="e" width="79.579" height="29.4" x="-45.045" y="20.029" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="f" width="79.579" height="29.4" x="-43.513" y="21.178" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="g" width="74.749" height="58.852" x="15.756" y="-17.901" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="7.659"/></filter><filter id="h" width="61.377" height="25.362" x="23.548" y="2.284" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="i" width="61.377" height="25.362" x="23.548" y="2.284" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="j" width="56.045" height="63.649" x="-27.636" y="-22.853" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="k" width="54.814" height="64.646" x="20.116" y="-38.415" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="l" width="33.541" height="35.313" x="24.641" y="-11.323" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="m" width="54.814" height="64.646" x="-29.286" y="6.009" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="n" width="54.814" height="64.646" x="-29.286" y="6.009" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="o" width="54.814" height="64.646" x="8.244" y="-2.416" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="p" width="39.409" height="43.623" x="18.713" y="10.588" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter></defs></svg>
+24
public/icons.svg
··· 1 + <svg xmlns="http://www.w3.org/2000/svg"> 2 + <symbol id="bluesky-icon" viewBox="0 0 16 17"> 3 + <g clip-path="url(#bluesky-clip)"><path fill="#08060d" d="M7.75 7.735c-.693-1.348-2.58-3.86-4.334-5.097-1.68-1.187-2.32-.981-2.74-.79C.188 2.065.1 2.812.1 3.251s.241 3.602.398 4.13c.52 1.744 2.367 2.333 4.07 2.145-2.495.37-4.71 1.278-1.805 4.512 3.196 3.309 4.38-.71 4.987-2.746.608 2.036 1.307 5.91 4.93 2.746 2.72-2.746.747-4.143-1.747-4.512 1.702.189 3.55-.4 4.07-2.145.156-.528.397-3.691.397-4.13s-.088-1.186-.575-1.406c-.42-.19-1.06-.395-2.741.79-1.755 1.24-3.64 3.752-4.334 5.099"/></g> 4 + <defs><clipPath id="bluesky-clip"><path fill="#fff" d="M.1.85h15.3v15.3H.1z"/></clipPath></defs> 5 + </symbol> 6 + <symbol id="discord-icon" viewBox="0 0 20 19"> 7 + <path fill="#08060d" d="M16.224 3.768a14.5 14.5 0 0 0-3.67-1.153c-.158.286-.343.67-.47.976a13.5 13.5 0 0 0-4.067 0c-.128-.306-.317-.69-.476-.976A14.4 14.4 0 0 0 3.868 3.77C1.546 7.28.916 10.703 1.231 14.077a14.7 14.7 0 0 0 4.5 2.306q.545-.748.965-1.587a9.5 9.5 0 0 1-1.518-.74q.191-.14.372-.293c2.927 1.369 6.107 1.369 8.999 0q.183.152.372.294-.723.437-1.52.74.418.838.963 1.588a14.6 14.6 0 0 0 4.504-2.308c.37-3.911-.63-7.302-2.644-10.309m-9.13 8.234c-.878 0-1.599-.82-1.599-1.82 0-.998.705-1.82 1.6-1.82.894 0 1.614.82 1.599 1.82.001 1-.705 1.82-1.6 1.82m5.91 0c-.878 0-1.599-.82-1.599-1.82 0-.998.705-1.82 1.6-1.82.893 0 1.614.82 1.599 1.82 0 1-.706 1.82-1.6 1.82"/> 8 + </symbol> 9 + <symbol id="documentation-icon" viewBox="0 0 21 20"> 10 + <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="m15.5 13.333 1.533 1.322c.645.555.967.833.967 1.178s-.322.623-.967 1.179L15.5 18.333m-3.333-5-1.534 1.322c-.644.555-.966.833-.966 1.178s.322.623.966 1.179l1.534 1.321"/> 11 + <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M17.167 10.836v-4.32c0-1.41 0-2.117-.224-2.68-.359-.906-1.118-1.621-2.08-1.96-.599-.21-1.349-.21-2.848-.21-2.623 0-3.935 0-4.983.369-1.684.591-3.013 1.842-3.641 3.428C3 6.449 3 7.684 3 10.154v2.122c0 2.558 0 3.838.706 4.726q.306.383.713.671c.76.536 1.79.64 3.581.66"/> 12 + <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M3 10a2.78 2.78 0 0 1 2.778-2.778c.555 0 1.209.097 1.748-.047.48-.129.854-.503.982-.982.145-.54.048-1.194.048-1.749a2.78 2.78 0 0 1 2.777-2.777"/> 13 + </symbol> 14 + <symbol id="github-icon" viewBox="0 0 19 19"> 15 + <path fill="#08060d" fill-rule="evenodd" d="M9.356 1.85C5.05 1.85 1.57 5.356 1.57 9.694a7.84 7.84 0 0 0 5.324 7.44c.387.079.528-.168.528-.376 0-.182-.013-.805-.013-1.454-2.165.467-2.616-.935-2.616-.935-.349-.91-.864-1.143-.864-1.143-.71-.48.051-.48.051-.48.787.051 1.2.805 1.2.805.695 1.194 1.817.857 2.268.649.064-.507.27-.857.49-1.052-1.728-.182-3.545-.857-3.545-3.87 0-.857.31-1.558.8-2.104-.078-.195-.349-1 .077-2.078 0 0 .657-.208 2.14.805a7.5 7.5 0 0 1 1.946-.26c.657 0 1.328.092 1.946.26 1.483-1.013 2.14-.805 2.14-.805.426 1.078.155 1.883.078 2.078.502.546.799 1.247.799 2.104 0 3.013-1.818 3.675-3.558 3.87.284.247.528.714.528 1.454 0 1.052-.012 1.896-.012 2.156 0 .208.142.455.528.377a7.84 7.84 0 0 0 5.324-7.441c.013-4.338-3.48-7.844-7.773-7.844" clip-rule="evenodd"/> 16 + </symbol> 17 + <symbol id="social-icon" viewBox="0 0 20 20"> 18 + <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M12.5 6.667a4.167 4.167 0 1 0-8.334 0 4.167 4.167 0 0 0 8.334 0"/> 19 + <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M2.5 16.667a5.833 5.833 0 0 1 8.75-5.053m3.837.474.513 1.035c.07.144.257.282.414.309l.93.155c.596.1.736.536.307.965l-.723.73a.64.64 0 0 0-.152.531l.207.903c.164.715-.213.991-.84.618l-.872-.52a.63.63 0 0 0-.577 0l-.872.52c-.624.373-1.003.094-.84-.618l.207-.903a.64.64 0 0 0-.152-.532l-.723-.729c-.426-.43-.289-.864.306-.964l.93-.156a.64.64 0 0 0 .412-.31l.513-1.034c.28-.562.735-.562 1.012 0"/> 20 + </symbol> 21 + <symbol id="x-icon" viewBox="0 0 19 19"> 22 + <path fill="#08060d" fill-rule="evenodd" d="M1.893 1.98c.052.072 1.245 1.769 2.653 3.77l2.892 4.114c.183.261.333.48.333.486s-.068.089-.152.183l-.522.593-.765.867-3.597 4.087c-.375.426-.734.834-.798.905a1 1 0 0 0-.118.148c0 .01.236.017.664.017h.663l.729-.83c.4-.457.796-.906.879-.999a692 692 0 0 0 1.794-2.038c.034-.037.301-.34.594-.675l.551-.624.345-.392a7 7 0 0 1 .34-.374c.006 0 .93 1.306 2.052 2.903l2.084 2.965.045.063h2.275c1.87 0 2.273-.003 2.266-.021-.008-.02-1.098-1.572-3.894-5.547-2.013-2.862-2.28-3.246-2.273-3.266.008-.019.282-.332 2.085-2.38l2-2.274 1.567-1.782c.022-.028-.016-.03-.65-.03h-.674l-.3.342a871 871 0 0 1-1.782 2.025c-.067.075-.405.458-.75.852a100 100 0 0 1-.803.91c-.148.172-.299.344-.99 1.127-.304.343-.32.358-.345.327-.015-.019-.904-1.282-1.976-2.808L6.365 1.85H1.8zm1.782.91 8.078 11.294c.772 1.08 1.413 1.973 1.425 1.984.016.017.241.02 1.05.017l1.03-.004-2.694-3.766L7.796 5.75 5.722 2.852l-1.039-.004-1.039-.004z" clip-rule="evenodd"/> 23 + </symbol> 24 + </svg>
+35
src/App.tsx
··· 1 + import { lazy, Suspense } from 'react' 2 + import { Navigate, Route, Routes } from 'react-router-dom' 3 + 4 + import { AppShell } from '@/components/layout/app-shell' 5 + 6 + const BrowsePage = lazy(() => import('@/pages/browse-page').then((module) => ({ default: module.BrowsePage }))) 7 + const SearchPage = lazy(() => import('@/pages/search-page').then((module) => ({ default: module.SearchPage }))) 8 + const AboutPage = lazy(() => import('@/pages/about-page').then((module) => ({ default: module.AboutPage }))) 9 + const VideoPage = lazy(() => import('@/pages/video-page').then((module) => ({ default: module.VideoPage }))) 10 + 11 + function RouteFallback() { 12 + return ( 13 + <section className="glass-panel rounded-2xl p-5"> 14 + <p className="text-sm text-muted">Loading view...</p> 15 + </section> 16 + ) 17 + } 18 + 19 + function App() { 20 + return ( 21 + <AppShell> 22 + <Suspense fallback={<RouteFallback />}> 23 + <Routes> 24 + <Route path="/" element={<BrowsePage />} /> 25 + <Route path="/search" element={<SearchPage />} /> 26 + <Route path="/about" element={<AboutPage />} /> 27 + <Route path="/video/:encodedUri" element={<VideoPage />} /> 28 + <Route path="*" element={<Navigate to="/" replace />} /> 29 + </Routes> 30 + </Suspense> 31 + </AppShell> 32 + ) 33 + } 34 + 35 + export default App
+30
src/components/error-panel.tsx
··· 1 + import { AlertTriangle, RefreshCcw } from 'lucide-react' 2 + 3 + import { Button } from '@/components/ui/button' 4 + 5 + interface ErrorPanelProps { 6 + title: string 7 + message: string 8 + onRetry?: () => void 9 + } 10 + 11 + export function ErrorPanel({ title, message, onRetry }: ErrorPanelProps) { 12 + return ( 13 + <section className="glass-panel rounded-2xl p-6"> 14 + <div className="flex items-start gap-3"> 15 + <AlertTriangle className="mt-0.5 h-5 w-5 shrink-0 text-accent" /> 16 + <div> 17 + <h2 className="text-base font-semibold text-text">{title}</h2> 18 + <p className="mt-2 max-w-[65ch] text-sm leading-relaxed text-muted">{message}</p> 19 + </div> 20 + </div> 21 + 22 + {onRetry ? ( 23 + <Button variant="secondary" className="mt-5" onClick={onRetry}> 24 + <RefreshCcw className="h-4 w-4" /> 25 + Retry 26 + </Button> 27 + ) : null} 28 + </section> 29 + ) 30 + }
+76
src/components/layout/app-shell.tsx
··· 1 + import { Film, Info, Search } from 'lucide-react' 2 + import { NavLink, type NavLinkProps } from 'react-router-dom' 3 + import { type PropsWithChildren } from 'react' 4 + 5 + import { cn } from '@/lib/utils' 6 + 7 + const navItems = [ 8 + { 9 + label: 'Browse', 10 + icon: Film, 11 + to: '/', 12 + end: true, 13 + }, 14 + { 15 + label: 'Search', 16 + icon: Search, 17 + to: '/search', 18 + }, 19 + { 20 + label: 'About', 21 + icon: Info, 22 + to: '/about', 23 + }, 24 + ] 25 + 26 + function NavItem({ label, icon: Icon, ...props }: NavLinkProps & { label: string; icon: typeof Film }) { 27 + return ( 28 + <NavLink 29 + {...props} 30 + className={({ isActive }) => 31 + cn( 32 + 'group min-h-11 rounded-xl border border-transparent px-3 py-2 text-xs text-muted transition-all duration-200 hover:text-text', 33 + 'flex flex-1 items-center justify-center gap-2 md:w-full md:justify-start md:px-4 md:text-sm', 34 + isActive && 'glass-panel text-text shadow-glass', 35 + ) 36 + } 37 + > 38 + <Icon className="h-4 w-4" /> 39 + <span>{label}</span> 40 + </NavLink> 41 + ) 42 + } 43 + 44 + export function AppShell({ children }: PropsWithChildren) { 45 + return ( 46 + <div className="relative min-h-svh overflow-x-hidden"> 47 + <div className="aurora animate-aurora" aria-hidden="true" /> 48 + <div className="noise-overlay animate-noise" aria-hidden="true" /> 49 + 50 + <div className="relative z-10 mx-auto flex min-h-svh w-full max-w-7xl pb-24 md:pb-0"> 51 + <aside className="hidden w-64 shrink-0 p-4 md:block lg:p-6"> 52 + <div className="glass-panel sticky top-6 rounded-2xl p-4"> 53 + <h1 className="text-lg font-semibold text-text">Atmosphere VODs</h1> 54 + <p className="mt-2 max-w-[22ch] text-sm leading-relaxed text-muted"> 55 + Browse every ATmosphereConf 2026 talk in a fast glassy PWA. 56 + </p> 57 + 58 + <nav className="mt-6 flex flex-col gap-2"> 59 + {navItems.map((item) => ( 60 + <NavItem key={item.to} label={item.label} to={item.to} end={item.end} icon={item.icon} /> 61 + ))} 62 + </nav> 63 + </div> 64 + </aside> 65 + 66 + <main className="w-full p-4 md:p-6 lg:p-8">{children}</main> 67 + </div> 68 + 69 + <nav className="glass-panel fixed inset-x-3 bottom-3 z-20 flex min-h-16 items-center gap-2 rounded-2xl px-2 py-2 md:hidden"> 70 + {navItems.map((item) => ( 71 + <NavItem key={item.to} label={item.label} to={item.to} end={item.end} icon={item.icon} /> 72 + ))} 73 + </nav> 74 + </div> 75 + ) 76 + }
+45
src/components/talk-card.tsx
··· 1 + import { CalendarDays, Clock3, UserRound } from 'lucide-react' 2 + import { Link } from 'react-router-dom' 3 + 4 + import { cardTapHaptic } from '@/lib/haptics' 5 + import { formatDate, formatDuration, truncateDid } from '@/lib/format' 6 + import { toVideoPath } from '@/lib/routes' 7 + import type { AppTalk } from '@/lib/types' 8 + 9 + interface TalkCardProps { 10 + talk: AppTalk 11 + index: number 12 + } 13 + 14 + export function TalkCard({ talk, index }: TalkCardProps) { 15 + return ( 16 + <Link 17 + to={toVideoPath(talk.uri)} 18 + onClick={cardTapHaptic} 19 + className="glass-panel group animate-rise rounded-2xl p-4 transition-all duration-300 hover:-translate-y-1 hover:shadow-lift" 20 + style={{ animationDelay: `${Math.min(index * 35, 350)}ms` }} 21 + > 22 + <div className="flex min-h-28 flex-col gap-4"> 23 + <h3 className="line-clamp-2 text-base font-semibold leading-tight text-text">{talk.title}</h3> 24 + 25 + <dl className="mt-auto space-y-2 text-xs text-muted"> 26 + <div className="flex items-center gap-2"> 27 + <UserRound className="h-3.5 w-3.5" /> 28 + <dt className="sr-only">Speaker</dt> 29 + <dd className="truncate">{talk.creatorName || truncateDid(talk.creatorDid)}</dd> 30 + </div> 31 + <div className="flex items-center gap-2"> 32 + <Clock3 className="h-3.5 w-3.5" /> 33 + <dt className="sr-only">Duration</dt> 34 + <dd>{formatDuration(talk.durationNs)}</dd> 35 + </div> 36 + <div className="flex items-center gap-2"> 37 + <CalendarDays className="h-3.5 w-3.5" /> 38 + <dt className="sr-only">Date</dt> 39 + <dd>{formatDate(talk.createdAt)}</dd> 40 + </div> 41 + </dl> 42 + </div> 43 + </Link> 44 + ) 45 + }
+19
src/components/talk-grid-skeleton.tsx
··· 1 + import { Skeleton } from '@/components/ui/skeleton' 2 + 3 + export function TalkGridSkeleton() { 4 + return ( 5 + <div className="grid grid-cols-[repeat(auto-fit,minmax(260px,1fr))] gap-4 md:gap-5"> 6 + {Array.from({ length: 12 }).map((_, index) => ( 7 + <article key={index} className="glass-panel rounded-2xl p-4"> 8 + <Skeleton className="h-5 w-11/12" /> 9 + <Skeleton className="mt-2 h-5 w-3/4" /> 10 + <div className="mt-7 space-y-2"> 11 + <Skeleton className="h-3.5 w-4/5" /> 12 + <Skeleton className="h-3.5 w-2/5" /> 13 + <Skeleton className="h-3.5 w-3/5" /> 14 + </div> 15 + </article> 16 + ))} 17 + </div> 18 + ) 19 + }
+52
src/components/ui/button.tsx
··· 1 + import * as React from 'react' 2 + import { Slot } from '@radix-ui/react-slot' 3 + import { cva, type VariantProps } from 'class-variance-authority' 4 + 5 + import { cn } from '@/lib/utils' 6 + 7 + const buttonVariants = cva( 8 + 'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-xl text-sm font-medium transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent/50 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 shrink-0 [&_svg]:shrink-0 min-h-11 min-w-11', 9 + { 10 + variants: { 11 + variant: { 12 + default: 13 + 'bg-accent/20 text-text border border-accent/40 hover:bg-accent/30 hover:-translate-y-0.5', 14 + secondary: 15 + 'bg-surface text-text border border-line hover:bg-surface/80 hover:-translate-y-0.5', 16 + ghost: 'text-muted hover:text-text hover:bg-surface/70', 17 + }, 18 + size: { 19 + default: 'h-11 px-5 py-2', 20 + sm: 'h-10 rounded-lg gap-1.5 px-3', 21 + icon: 'h-11 w-11', 22 + }, 23 + }, 24 + defaultVariants: { 25 + variant: 'default', 26 + size: 'default', 27 + }, 28 + }, 29 + ) 30 + 31 + function Button({ 32 + className, 33 + variant, 34 + size, 35 + asChild = false, 36 + ...props 37 + }: React.ComponentProps<'button'> & 38 + VariantProps<typeof buttonVariants> & { 39 + asChild?: boolean 40 + }) { 41 + const Comp = asChild ? Slot : 'button' 42 + 43 + return ( 44 + <Comp 45 + data-slot="button" 46 + className={cn(buttonVariants({ variant, size, className }))} 47 + {...props} 48 + /> 49 + ) 50 + } 51 + 52 + export { Button, buttonVariants }
+14
src/components/ui/skeleton.tsx
··· 1 + import { cn } from '@/lib/utils' 2 + 3 + export function Skeleton({ className }: { className?: string }) { 4 + return ( 5 + <div 6 + className={cn( 7 + 'rounded-xl bg-surface/80 before:absolute before:inset-0 before:animate-pulse before:rounded-xl before:bg-white/5', 8 + 'relative overflow-hidden', 9 + className, 10 + )} 11 + aria-hidden="true" 12 + /> 13 + ) 14 + }
+99
src/index.css
··· 1 + @import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&display=swap'); 2 + 3 + @tailwind base; 4 + @tailwind components; 5 + @tailwind utilities; 6 + 7 + :root { 8 + color-scheme: dark; 9 + font-family: 'JetBrains Mono', monospace; 10 + font-synthesis: none; 11 + text-rendering: optimizeLegibility; 12 + -webkit-font-smoothing: antialiased; 13 + -moz-osx-font-smoothing: grayscale; 14 + } 15 + 16 + * { 17 + scrollbar-width: thin; 18 + scrollbar-color: oklch(0.66 0.03 238 / 0.6) oklch(0.16 0.03 246 / 0.6); 19 + } 20 + 21 + *::-webkit-scrollbar { 22 + width: 10px; 23 + height: 10px; 24 + } 25 + 26 + *::-webkit-scrollbar-thumb { 27 + background: oklch(0.66 0.03 238 / 0.6); 28 + border-radius: 999px; 29 + } 30 + 31 + *::-webkit-scrollbar-track { 32 + background: oklch(0.16 0.03 246 / 0.6); 33 + } 34 + 35 + body { 36 + margin: 0; 37 + min-height: 100svh; 38 + color: oklch(0.93 0.02 250); 39 + background: oklch(0.11 0.03 248); 40 + } 41 + 42 + a { 43 + color: inherit; 44 + text-decoration: none; 45 + } 46 + 47 + #root { 48 + min-height: 100svh; 49 + } 50 + 51 + .aurora { 52 + position: fixed; 53 + inset: -25%; 54 + background: 55 + radial-gradient(circle at 20% 25%, oklch(0.41 0.16 233 / 0.28), transparent 45%), 56 + radial-gradient(circle at 82% 18%, oklch(0.48 0.17 286 / 0.2), transparent 42%), 57 + radial-gradient(circle at 62% 82%, oklch(0.46 0.15 197 / 0.25), transparent 46%), 58 + radial-gradient(circle at 10% 88%, oklch(0.3 0.09 252 / 0.25), transparent 56%), 59 + linear-gradient(140deg, oklch(0.12 0.03 248) 0%, oklch(0.1 0.04 255) 100%); 60 + filter: saturate(120%); 61 + } 62 + 63 + .noise-overlay { 64 + position: fixed; 65 + inset: -50%; 66 + pointer-events: none; 67 + opacity: 0.085; 68 + mix-blend-mode: screen; 69 + background-image: 70 + radial-gradient(circle at 15% 18%, rgba(255, 255, 255, 0.35) 0 0.6px, transparent 0.7px), 71 + radial-gradient(circle at 73% 66%, rgba(255, 255, 255, 0.26) 0 0.6px, transparent 0.8px), 72 + radial-gradient(circle at 44% 37%, rgba(255, 255, 255, 0.15) 0 0.7px, transparent 0.9px); 73 + background-size: 170px 170px; 74 + } 75 + 76 + .glass-panel { 77 + backdrop-filter: blur(18px); 78 + background: oklch(0.22 0.03 247 / 0.45); 79 + border: 1px solid oklch(0.64 0.03 244 / 0.32); 80 + box-shadow: 0 24px 70px oklch(0.03 0.02 250 / 0.5); 81 + } 82 + 83 + .line-clamp-2 { 84 + display: -webkit-box; 85 + -webkit-line-clamp: 2; 86 + -webkit-box-orient: vertical; 87 + overflow: hidden; 88 + } 89 + 90 + @media (prefers-reduced-motion: reduce) { 91 + *, 92 + *::before, 93 + *::after { 94 + animation-duration: 1ms !important; 95 + animation-iteration-count: 1 !important; 96 + transition-duration: 1ms !important; 97 + scroll-behavior: auto !important; 98 + } 99 + }
+127
src/lib/api.ts
··· 1 + import { 2 + BSKY_PUBLIC_API, 3 + PLC_DIRECTORY_URL, 4 + REPO_DID, 5 + VOD_PLAYLIST_ENDPOINT, 6 + } from './constants' 7 + import { truncateDid } from './format' 8 + import type { 9 + ActorProfile, 10 + AppTalk, 11 + ListRecordsResponse, 12 + PlcDidDocument, 13 + } from './types' 14 + 15 + const profileCache = new Map<string, Promise<ActorProfile | null>>() 16 + let pdsUrlPromise: Promise<string> | null = null 17 + 18 + async function fetchJson<T>(url: string): Promise<T> { 19 + const response = await fetch(url) 20 + if (!response.ok) { 21 + throw new Error(`Request failed (${response.status})`) 22 + } 23 + 24 + return (await response.json()) as T 25 + } 26 + 27 + export function resolvePdsUrl(): Promise<string> { 28 + if (pdsUrlPromise) { 29 + return pdsUrlPromise 30 + } 31 + 32 + pdsUrlPromise = (async () => { 33 + try { 34 + const didDoc = await fetchJson<PlcDidDocument>(`${PLC_DIRECTORY_URL}/${REPO_DID}`) 35 + const pdsService = didDoc.service?.find((entry) => entry.id === '#atproto_pds') 36 + 37 + if (!pdsService?.serviceEndpoint) { 38 + throw new Error('PDS endpoint missing from DID document') 39 + } 40 + 41 + return pdsService.serviceEndpoint.replace(/\/$/, '') 42 + } catch (error) { 43 + pdsUrlPromise = null 44 + throw error 45 + } 46 + })() 47 + 48 + return pdsUrlPromise 49 + } 50 + 51 + async function fetchProfile(did: string): Promise<ActorProfile | null> { 52 + const query = new URLSearchParams({ actor: did }) 53 + 54 + try { 55 + return await fetchJson<ActorProfile>( 56 + `${BSKY_PUBLIC_API}/xrpc/app.bsky.actor.getProfile?${query.toString()}`, 57 + ) 58 + } catch { 59 + return null 60 + } 61 + } 62 + 63 + function getCachedProfile(did: string): Promise<ActorProfile | null> { 64 + const cached = profileCache.get(did) 65 + if (cached) { 66 + return cached 67 + } 68 + 69 + const pending = fetchProfile(did) 70 + profileCache.set(did, pending) 71 + return pending 72 + } 73 + 74 + export async function fetchTalks(): Promise<AppTalk[]> { 75 + const pdsUrl = await resolvePdsUrl() 76 + const query = new URLSearchParams({ 77 + repo: REPO_DID, 78 + collection: 'place.stream.video', 79 + limit: '100', 80 + }) 81 + 82 + const data = await fetchJson<ListRecordsResponse>( 83 + `${pdsUrl}/xrpc/com.atproto.repo.listRecords?${query.toString()}`, 84 + ) 85 + 86 + const sorted = [...data.records].sort( 87 + (a, b) => new Date(b.value.createdAt).getTime() - new Date(a.value.createdAt).getTime(), 88 + ) 89 + 90 + const uniqueCreators = Array.from(new Set(sorted.map((record) => record.value.creator))) 91 + const profiles = await Promise.all(uniqueCreators.map((did) => getCachedProfile(did))) 92 + const profileMap = new Map(uniqueCreators.map((did, index) => [did, profiles[index]])) 93 + 94 + return sorted.map((record) => { 95 + const profile = profileMap.get(record.value.creator) 96 + const creatorName = profile?.displayName?.trim() || profile?.handle || truncateDid(record.value.creator) 97 + 98 + return { 99 + uri: record.uri, 100 + cid: record.cid, 101 + title: record.value.title, 102 + creatorDid: record.value.creator, 103 + creatorName, 104 + creatorHandle: profile?.handle, 105 + durationNs: record.value.duration, 106 + createdAt: record.value.createdAt, 107 + } 108 + }) 109 + } 110 + 111 + export async function fetchVideoPlaylist(uri: string): Promise<string> { 112 + const query = new URLSearchParams({ uri }) 113 + const playlistUrl = `${VOD_PLAYLIST_ENDPOINT}?${query.toString()}` 114 + const response = await fetch(playlistUrl) 115 + 116 + if (!response.ok) { 117 + throw new Error(`Unable to load playlist (${response.status})`) 118 + } 119 + 120 + const text = await response.text() 121 + 122 + if (!text.includes('#EXTM3U')) { 123 + throw new Error('Playback endpoint did not return an HLS playlist') 124 + } 125 + 126 + return playlistUrl 127 + }
+6
src/lib/constants.ts
··· 1 + export const REPO_DID = 'did:plc:rbvrr34edl5ddpuwcubjiost' 2 + 3 + export const PLC_DIRECTORY_URL = 'https://plc.directory' 4 + export const BSKY_PUBLIC_API = 'https://public.api.bsky.app' 5 + export const VOD_PLAYLIST_ENDPOINT = 6 + 'https://vod-beta.stream.place/xrpc/place.stream.playback.getVideoPlaylist'
+30
src/lib/format.ts
··· 1 + export function formatDuration(durationNs: number): string { 2 + const totalSeconds = Math.max(0, Math.floor(durationNs / 1_000_000_000)) 3 + const seconds = totalSeconds % 60 4 + const totalMinutes = Math.floor(totalSeconds / 60) 5 + 6 + if (totalMinutes < 60) { 7 + return `${String(totalMinutes).padStart(2, '0')}:${String(seconds).padStart(2, '0')}` 8 + } 9 + 10 + const hours = Math.floor(totalMinutes / 60) 11 + const minutes = totalMinutes % 60 12 + return `${hours}:${String(minutes).padStart(2, '0')}:${String(seconds).padStart(2, '0')}` 13 + } 14 + 15 + export function formatDate(iso: string): string { 16 + const date = new Date(iso) 17 + return new Intl.DateTimeFormat(undefined, { 18 + year: 'numeric', 19 + month: 'short', 20 + day: 'numeric', 21 + }).format(date) 22 + } 23 + 24 + export function truncateDid(did: string): string { 25 + if (did.length <= 22) { 26 + return did 27 + } 28 + 29 + return `${did.slice(0, 14)}...${did.slice(-6)}` 30 + }
+13
src/lib/haptics.ts
··· 1 + export function vibrate(pattern: number | number[]) { 2 + if (typeof navigator !== 'undefined' && typeof navigator.vibrate === 'function') { 3 + navigator.vibrate(pattern) 4 + } 5 + } 6 + 7 + export function cardTapHaptic() { 8 + vibrate(10) 9 + } 10 + 11 + export function playHaptic() { 12 + vibrate([10, 20, 20]) 13 + }
+7
src/lib/routes.ts
··· 1 + export function toVideoPath(uri: string): string { 2 + return `/video/${encodeURIComponent(uri)}` 3 + } 4 + 5 + export function fromVideoParam(param: string): string { 6 + return decodeURIComponent(param) 7 + }
+46
src/lib/types.ts
··· 1 + export interface StreamVideoRecord { 2 + uri: string 3 + cid: string 4 + value: { 5 + $type: 'place.stream.video' 6 + title: string 7 + creator: string 8 + duration: number 9 + createdAt: string 10 + source?: unknown 11 + livestream?: { 12 + uri?: string 13 + } 14 + } 15 + } 16 + 17 + export interface ListRecordsResponse { 18 + records: StreamVideoRecord[] 19 + cursor?: string 20 + } 21 + 22 + export interface PlcDidDocument { 23 + service?: Array<{ 24 + id?: string 25 + type?: string 26 + serviceEndpoint?: string 27 + }> 28 + } 29 + 30 + export interface ActorProfile { 31 + did: string 32 + handle?: string 33 + displayName?: string 34 + avatar?: string 35 + } 36 + 37 + export interface AppTalk { 38 + uri: string 39 + cid: string 40 + title: string 41 + creatorDid: string 42 + creatorName: string 43 + creatorHandle?: string 44 + durationNs: number 45 + createdAt: string 46 + }
+6
src/lib/utils.ts
··· 1 + import { clsx, type ClassValue } from 'clsx' 2 + import { twMerge } from 'tailwind-merge' 3 + 4 + export function cn(...inputs: ClassValue[]) { 5 + return twMerge(clsx(inputs)) 6 + }
+19
src/main.tsx
··· 1 + import { StrictMode } from 'react' 2 + import { createRoot } from 'react-dom/client' 3 + import { BrowserRouter } from 'react-router-dom' 4 + import { registerSW } from 'virtual:pwa-register' 5 + import './index.css' 6 + import App from './App.tsx' 7 + import { VideosProvider } from './state/videos-context.tsx' 8 + 9 + registerSW({ immediate: true }) 10 + 11 + createRoot(document.getElementById('root')!).render( 12 + <StrictMode> 13 + <BrowserRouter> 14 + <VideosProvider> 15 + <App /> 16 + </VideosProvider> 17 + </BrowserRouter> 18 + </StrictMode>, 19 + )
+13
src/pages/about-page.tsx
··· 1 + export function AboutPage() { 2 + return ( 3 + <section className="glass-panel animate-rise rounded-2xl p-6 md:p-7"> 4 + <p className="text-xs uppercase tracking-[0.16em] text-muted">About</p> 5 + <h2 className="mt-2 text-xl font-semibold text-text md:text-2xl">Atmosphere VODs</h2> 6 + <p className="mt-4 max-w-[70ch] text-sm leading-relaxed text-muted"> 7 + Atmosphere VODs is an open-source PWA for browsing ATmosphereConf 2026 talks, built for the 8 + Streamplace VOD JAM. Built with React, Vite, and the AT Protocol. Created by Jack. AI-assisted 9 + with Claude. 10 + </p> 11 + </section> 12 + ) 13 + }
+38
src/pages/browse-page.tsx
··· 1 + import { TalkCard } from '@/components/talk-card' 2 + import { TalkGridSkeleton } from '@/components/talk-grid-skeleton' 3 + import { ErrorPanel } from '@/components/error-panel' 4 + import { useVideos } from '@/state/videos-context' 5 + 6 + export function BrowsePage() { 7 + const { talks, loading, error, refresh } = useVideos() 8 + 9 + return ( 10 + <div className="space-y-5"> 11 + <header className="glass-panel animate-rise rounded-2xl p-5 md:p-6"> 12 + <p className="text-xs uppercase tracking-[0.16em] text-muted">ATmosphereConf 2026</p> 13 + <h2 className="mt-2 text-xl font-semibold text-text md:text-2xl">Browse Talks</h2> 14 + <p className="mt-3 max-w-[64ch] text-sm leading-relaxed text-muted"> 15 + Freshly sorted by newest publish date, with speaker names resolved when available. 16 + </p> 17 + </header> 18 + 19 + {loading ? <TalkGridSkeleton /> : null} 20 + 21 + {!loading && error ? ( 22 + <ErrorPanel 23 + title="Unable to load talks" 24 + message="The app could not fetch records from the Streamplace repo PDS. Check your connection and retry." 25 + onRetry={refresh} 26 + /> 27 + ) : null} 28 + 29 + {!loading && !error ? ( 30 + <section className="grid grid-cols-[repeat(auto-fit,minmax(260px,1fr))] gap-4 md:gap-5"> 31 + {talks.map((talk, index) => ( 32 + <TalkCard key={talk.uri} talk={talk} index={index} /> 33 + ))} 34 + </section> 35 + ) : null} 36 + </div> 37 + ) 38 + }
+69
src/pages/search-page.tsx
··· 1 + import { Search } from 'lucide-react' 2 + import { useMemo, useState } from 'react' 3 + 4 + import { ErrorPanel } from '@/components/error-panel' 5 + import { TalkCard } from '@/components/talk-card' 6 + import { TalkGridSkeleton } from '@/components/talk-grid-skeleton' 7 + import { useVideos } from '@/state/videos-context' 8 + 9 + export function SearchPage() { 10 + const [query, setQuery] = useState<string>('') 11 + const { talks, loading, error, refresh } = useVideos() 12 + 13 + const filteredTalks = useMemo(() => { 14 + const normalized = query.trim().toLowerCase() 15 + if (!normalized) { 16 + return talks 17 + } 18 + 19 + return talks.filter((talk) => talk.title.toLowerCase().includes(normalized)) 20 + }, [talks, query]) 21 + 22 + return ( 23 + <div className="space-y-5"> 24 + <header className="glass-panel animate-rise rounded-2xl p-5 md:p-6"> 25 + <p className="text-xs uppercase tracking-[0.16em] text-muted">Instant Filter</p> 26 + <h2 className="mt-2 text-xl font-semibold text-text md:text-2xl">Search Talks</h2> 27 + 28 + <label className="glass-panel mt-4 flex min-h-11 items-center gap-3 rounded-xl border-line/70 px-3"> 29 + <Search className="h-4 w-4 text-muted" /> 30 + <span className="sr-only">Search by title</span> 31 + <input 32 + type="search" 33 + value={query} 34 + onChange={(event) => setQuery(event.target.value)} 35 + placeholder="Search by title" 36 + className="h-11 w-full bg-transparent text-sm text-text outline-none placeholder:text-muted" 37 + /> 38 + </label> 39 + </header> 40 + 41 + {loading ? <TalkGridSkeleton /> : null} 42 + 43 + {!loading && error ? ( 44 + <ErrorPanel 45 + title="Search unavailable" 46 + message="Talk metadata failed to load, so live filtering is temporarily unavailable." 47 + onRetry={refresh} 48 + /> 49 + ) : null} 50 + 51 + {!loading && !error && filteredTalks.length === 0 ? ( 52 + <section className="glass-panel rounded-2xl p-6"> 53 + <h3 className="text-base font-semibold text-text">No results</h3> 54 + <p className="mt-2 text-sm leading-relaxed text-muted"> 55 + Try a different keyword or remove filters to explore all talks. 56 + </p> 57 + </section> 58 + ) : null} 59 + 60 + {!loading && !error && filteredTalks.length > 0 ? ( 61 + <section className="grid grid-cols-[repeat(auto-fit,minmax(260px,1fr))] gap-4 md:gap-5"> 62 + {filteredTalks.map((talk, index) => ( 63 + <TalkCard key={talk.uri} talk={talk} index={index} /> 64 + ))} 65 + </section> 66 + ) : null} 67 + </div> 68 + ) 69 + }
+388
src/pages/video-page.tsx
··· 1 + import { 2 + ArrowLeft, 3 + Maximize, 4 + Minimize, 5 + Pause, 6 + Play, 7 + Volume2, 8 + VolumeX, 9 + } from 'lucide-react' 10 + import { 11 + useCallback, 12 + useEffect, 13 + useMemo, 14 + useRef, 15 + useState, 16 + type ChangeEvent, 17 + } from 'react' 18 + import { Link, useNavigate, useParams } from 'react-router-dom' 19 + 20 + import { ErrorPanel } from '@/components/error-panel' 21 + import { Button } from '@/components/ui/button' 22 + import { fetchVideoPlaylist } from '@/lib/api' 23 + import { formatDate, formatDuration, truncateDid } from '@/lib/format' 24 + import { playHaptic } from '@/lib/haptics' 25 + import { fromVideoParam } from '@/lib/routes' 26 + import { useVideos } from '@/state/videos-context' 27 + 28 + type PlaybackStatus = 'idle' | 'loading' | 'ready' | 'error' 29 + 30 + interface HlsLike { 31 + loadSource: (source: string) => void 32 + attachMedia: (media: HTMLMediaElement) => void 33 + destroy: () => void 34 + } 35 + 36 + export function VideoPage() { 37 + const navigate = useNavigate() 38 + const { encodedUri } = useParams<{ encodedUri: string }>() 39 + const { talks, loading: talksLoading } = useVideos() 40 + 41 + const videoRef = useRef<HTMLVideoElement | null>(null) 42 + const hlsRef = useRef<HlsLike | null>(null) 43 + const playerContainerRef = useRef<HTMLDivElement | null>(null) 44 + 45 + const [status, setStatus] = useState<PlaybackStatus>('idle') 46 + const [error, setError] = useState<string | null>(null) 47 + const [isPlaying, setIsPlaying] = useState<boolean>(false) 48 + const [currentTime, setCurrentTime] = useState<number>(0) 49 + const [duration, setDuration] = useState<number>(0) 50 + const [volume, setVolume] = useState<number>(1) 51 + const [isFullscreen, setIsFullscreen] = useState<boolean>(false) 52 + 53 + const resolvedUri = useMemo( 54 + () => (encodedUri ? fromVideoParam(encodedUri) : undefined), 55 + [encodedUri], 56 + ) 57 + 58 + const talk = useMemo(() => talks.find((item) => item.uri === resolvedUri), [talks, resolvedUri]) 59 + 60 + useEffect(() => { 61 + const onFullscreenChange = () => { 62 + setIsFullscreen(Boolean(document.fullscreenElement)) 63 + } 64 + 65 + document.addEventListener('fullscreenchange', onFullscreenChange) 66 + return () => { 67 + document.removeEventListener('fullscreenchange', onFullscreenChange) 68 + } 69 + }, []) 70 + 71 + useEffect(() => { 72 + if (!resolvedUri || !videoRef.current) { 73 + return 74 + } 75 + 76 + const uri = resolvedUri 77 + const video = videoRef.current 78 + setStatus('loading') 79 + setError(null) 80 + setCurrentTime(0) 81 + 82 + let cancelled = false 83 + 84 + async function load() { 85 + try { 86 + const playlistUrl = await fetchVideoPlaylist(uri) 87 + if (cancelled) { 88 + return 89 + } 90 + 91 + if (hlsRef.current) { 92 + hlsRef.current.destroy() 93 + hlsRef.current = null 94 + } 95 + 96 + if (video.canPlayType('application/vnd.apple.mpegurl')) { 97 + video.src = playlistUrl 98 + } else { 99 + const { default: Hls } = await import('hls.js') 100 + if (!Hls.isSupported()) { 101 + throw new Error('This browser does not support HLS playback.') 102 + } 103 + 104 + const hls = new Hls({ 105 + maxBufferLength: 30, 106 + lowLatencyMode: true, 107 + }) 108 + hls.loadSource(playlistUrl) 109 + hls.attachMedia(video) 110 + hlsRef.current = hls 111 + } 112 + 113 + setStatus('ready') 114 + } catch (loadError) { 115 + if (cancelled) { 116 + return 117 + } 118 + 119 + const message = loadError instanceof Error ? loadError.message : 'Failed to load video playlist.' 120 + setError(message) 121 + setStatus('error') 122 + } 123 + } 124 + 125 + load() 126 + 127 + return () => { 128 + cancelled = true 129 + if (hlsRef.current) { 130 + hlsRef.current.destroy() 131 + hlsRef.current = null 132 + } 133 + video.pause() 134 + video.removeAttribute('src') 135 + video.load() 136 + } 137 + }, [resolvedUri]) 138 + 139 + const onTogglePlayback = useCallback(async () => { 140 + playHaptic() 141 + const video = videoRef.current 142 + if (!video) { 143 + return 144 + } 145 + 146 + if (video.paused) { 147 + try { 148 + await video.play() 149 + setIsPlaying(true) 150 + } catch { 151 + setError('Playback was blocked by the browser. Tap play again to retry.') 152 + } 153 + return 154 + } 155 + 156 + video.pause() 157 + setIsPlaying(false) 158 + }, []) 159 + 160 + const onTimeUpdate = useCallback(() => { 161 + if (!videoRef.current) { 162 + return 163 + } 164 + 165 + setCurrentTime(videoRef.current.currentTime) 166 + setDuration(Number.isFinite(videoRef.current.duration) ? videoRef.current.duration : 0) 167 + setIsPlaying(!videoRef.current.paused) 168 + }, []) 169 + 170 + const onSeek = useCallback((event: ChangeEvent<HTMLInputElement>) => { 171 + const video = videoRef.current 172 + if (!video) { 173 + return 174 + } 175 + 176 + const seconds = Number(event.target.value) 177 + video.currentTime = seconds 178 + setCurrentTime(seconds) 179 + }, []) 180 + 181 + const onVolume = useCallback((event: ChangeEvent<HTMLInputElement>) => { 182 + const video = videoRef.current 183 + if (!video) { 184 + return 185 + } 186 + 187 + const nextVolume = Number(event.target.value) 188 + video.volume = nextVolume 189 + video.muted = nextVolume === 0 190 + setVolume(nextVolume) 191 + }, []) 192 + 193 + const onToggleFullscreen = useCallback(async () => { 194 + const container = playerContainerRef.current 195 + if (!container) { 196 + return 197 + } 198 + 199 + if (!document.fullscreenElement) { 200 + await container.requestFullscreen() 201 + return 202 + } 203 + 204 + await document.exitFullscreen() 205 + }, []) 206 + 207 + useEffect(() => { 208 + let startY = 0 209 + let latestY = 0 210 + 211 + const element = playerContainerRef.current 212 + if (!element) { 213 + return 214 + } 215 + 216 + const onTouchStart = (event: TouchEvent) => { 217 + startY = event.touches[0]?.clientY ?? 0 218 + latestY = startY 219 + } 220 + 221 + const onTouchMove = (event: TouchEvent) => { 222 + latestY = event.touches[0]?.clientY ?? latestY 223 + } 224 + 225 + const onTouchEnd = () => { 226 + const distance = latestY - startY 227 + if (distance > 120) { 228 + navigate(-1) 229 + } 230 + } 231 + 232 + element.addEventListener('touchstart', onTouchStart, { passive: true }) 233 + element.addEventListener('touchmove', onTouchMove, { passive: true }) 234 + element.addEventListener('touchend', onTouchEnd) 235 + 236 + return () => { 237 + element.removeEventListener('touchstart', onTouchStart) 238 + element.removeEventListener('touchmove', onTouchMove) 239 + element.removeEventListener('touchend', onTouchEnd) 240 + } 241 + }, [navigate]) 242 + 243 + if (!resolvedUri) { 244 + return ( 245 + <ErrorPanel 246 + title="Invalid video link" 247 + message="This link is missing a valid AT URI." 248 + onRetry={() => navigate('/')} 249 + /> 250 + ) 251 + } 252 + 253 + if (!talk && talksLoading) { 254 + return ( 255 + <section className="glass-panel rounded-2xl p-5"> 256 + <p className="text-sm text-muted">Loading video metadata...</p> 257 + </section> 258 + ) 259 + } 260 + 261 + if (!talk && !talksLoading) { 262 + return ( 263 + <ErrorPanel 264 + title="Talk not found" 265 + message="This video could not be located in the conference catalog." 266 + onRetry={() => navigate('/')} 267 + /> 268 + ) 269 + } 270 + 271 + return ( 272 + <div className="space-y-5"> 273 + <Button asChild variant="ghost" className="animate-rise"> 274 + <Link to="/"> 275 + <ArrowLeft className="h-4 w-4" /> 276 + Back to browse 277 + </Link> 278 + </Button> 279 + 280 + <section className="glass-panel animate-rise rounded-2xl p-4 md:p-6" ref={playerContainerRef}> 281 + <div className="relative overflow-hidden rounded-xl border border-line bg-black/30"> 282 + <video 283 + ref={videoRef} 284 + className="aspect-video w-full" 285 + controls={false} 286 + onTimeUpdate={onTimeUpdate} 287 + onLoadedMetadata={onTimeUpdate} 288 + onPause={() => setIsPlaying(false)} 289 + onPlay={() => setIsPlaying(true)} 290 + /> 291 + 292 + {status === 'loading' ? ( 293 + <div className="absolute inset-0 flex items-center justify-center bg-black/30 backdrop-blur-sm"> 294 + <p className="text-sm text-text">Loading stream...</p> 295 + </div> 296 + ) : null} 297 + </div> 298 + 299 + {status === 'error' ? ( 300 + <div className="mt-4"> 301 + <ErrorPanel 302 + title="Playback failed" 303 + message={error ?? 'The video playlist could not be loaded.'} 304 + onRetry={() => window.location.reload()} 305 + /> 306 + </div> 307 + ) : null} 308 + 309 + {status !== 'error' && error ? ( 310 + <p className="mt-3 text-xs text-accent/90" role="status"> 311 + {error} 312 + </p> 313 + ) : null} 314 + 315 + <div className="mt-4 space-y-4"> 316 + <div className="flex items-center gap-2"> 317 + <Button 318 + type="button" 319 + size="icon" 320 + variant="secondary" 321 + onClick={onTogglePlayback} 322 + aria-label={isPlaying ? 'Pause' : 'Play'} 323 + > 324 + {isPlaying ? <Pause /> : <Play />} 325 + </Button> 326 + 327 + <label className="flex-1"> 328 + <span className="sr-only">Seek</span> 329 + <input 330 + type="range" 331 + min={0} 332 + max={Math.max(duration, 1)} 333 + value={Math.min(currentTime, duration || 0)} 334 + onChange={onSeek} 335 + className="h-11 w-full accent-[oklch(0.78_0.12_205)]" 336 + /> 337 + </label> 338 + 339 + <Button 340 + type="button" 341 + size="icon" 342 + variant="secondary" 343 + onClick={onToggleFullscreen} 344 + aria-label={isFullscreen ? 'Exit fullscreen' : 'Enter fullscreen'} 345 + > 346 + {isFullscreen ? <Minimize /> : <Maximize />} 347 + </Button> 348 + </div> 349 + 350 + <div className="flex flex-wrap items-center justify-between gap-3 text-xs text-muted"> 351 + <p> 352 + {formatDuration(currentTime * 1_000_000_000)} /{' '} 353 + {formatDuration(duration * 1_000_000_000 || talk?.durationNs || 0)} 354 + </p> 355 + 356 + <div className="flex min-h-11 items-center gap-2"> 357 + {volume === 0 ? <VolumeX className="h-4 w-4" /> : <Volume2 className="h-4 w-4" />} 358 + <label> 359 + <span className="sr-only">Volume</span> 360 + <input 361 + type="range" 362 + min={0} 363 + max={1} 364 + step={0.05} 365 + value={volume} 366 + onChange={onVolume} 367 + className="h-11 w-32 accent-[oklch(0.78_0.12_205)]" 368 + /> 369 + </label> 370 + </div> 371 + 372 + <p className="text-xs text-muted md:hidden">Swipe down to dismiss</p> 373 + </div> 374 + </div> 375 + </section> 376 + 377 + {talk ? ( 378 + <section className="glass-panel animate-rise rounded-2xl p-6" style={{ animationDelay: '80ms' }}> 379 + <h1 className="text-xl font-semibold leading-tight text-text md:text-2xl">{talk.title}</h1> 380 + <p className="mt-3 text-sm text-muted">Speaker: {talk.creatorName || truncateDid(talk.creatorDid)}</p> 381 + <p className="mt-2 text-sm text-muted"> 382 + Duration: {formatDuration(talk.durationNs)} • Published {formatDate(talk.createdAt)} 383 + </p> 384 + </section> 385 + ) : null} 386 + </div> 387 + ) 388 + }
+85
src/state/videos-context.tsx
··· 1 + import { 2 + createContext, 3 + type PropsWithChildren, 4 + useCallback, 5 + useContext, 6 + useEffect, 7 + useMemo, 8 + useState, 9 + } from 'react' 10 + 11 + import { fetchTalks } from '@/lib/api' 12 + import type { AppTalk } from '@/lib/types' 13 + 14 + interface VideosContextValue { 15 + talks: AppTalk[] 16 + loading: boolean 17 + error: string | null 18 + refresh: () => void 19 + } 20 + 21 + const VideosContext = createContext<VideosContextValue | undefined>(undefined) 22 + 23 + export function VideosProvider({ children }: PropsWithChildren) { 24 + const [talks, setTalks] = useState<AppTalk[]>([]) 25 + const [loading, setLoading] = useState<boolean>(true) 26 + const [error, setError] = useState<string | null>(null) 27 + const [refreshIndex, setRefreshIndex] = useState<number>(0) 28 + 29 + useEffect(() => { 30 + let active = true 31 + 32 + async function load() { 33 + setLoading(true) 34 + setError(null) 35 + 36 + try { 37 + const nextTalks = await fetchTalks() 38 + if (!active) { 39 + return 40 + } 41 + setTalks(nextTalks) 42 + } catch (fetchError) { 43 + if (!active) { 44 + return 45 + } 46 + const message = fetchError instanceof Error ? fetchError.message : 'Failed to fetch talks' 47 + setError(message) 48 + } finally { 49 + if (active) { 50 + setLoading(false) 51 + } 52 + } 53 + } 54 + 55 + load() 56 + 57 + return () => { 58 + active = false 59 + } 60 + }, [refreshIndex]) 61 + 62 + const refresh = useCallback(() => { 63 + setRefreshIndex((value) => value + 1) 64 + }, []) 65 + 66 + const value = useMemo( 67 + () => ({ 68 + talks, 69 + loading, 70 + error, 71 + refresh, 72 + }), 73 + [talks, loading, error, refresh], 74 + ) 75 + 76 + return <VideosContext.Provider value={value}>{children}</VideosContext.Provider> 77 + } 78 + 79 + export function useVideos() { 80 + const context = useContext(VideosContext) 81 + if (!context) { 82 + throw new Error('useVideos must be used inside VideosProvider') 83 + } 84 + return context 85 + }
+2
src/vite-env.d.ts
··· 1 + /// <reference types="vite/client" /> 2 + /// <reference types="vite-plugin-pwa/client" />
+51
tailwind.config.js
··· 1 + import tailwindcssAnimate from 'tailwindcss-animate' 2 + 3 + /** @type {import('tailwindcss').Config} */ 4 + export default { 5 + darkMode: ['class'], 6 + content: ['./index.html', './src/**/*.{ts,tsx}'], 7 + theme: { 8 + extend: { 9 + colors: { 10 + bg: 'oklch(0.13 0.03 247 / <alpha-value>)', 11 + surface: 'oklch(0.22 0.03 247 / <alpha-value>)', 12 + line: 'oklch(0.65 0.03 244 / <alpha-value>)', 13 + text: 'oklch(0.93 0.02 250 / <alpha-value>)', 14 + muted: 'oklch(0.8 0.02 248 / <alpha-value>)', 15 + accent: 'oklch(0.78 0.12 205 / <alpha-value>)', 16 + }, 17 + borderRadius: { 18 + xl: '1rem', 19 + '2xl': '1.25rem', 20 + }, 21 + boxShadow: { 22 + glass: '0 24px 70px oklch(0.03 0.02 250 / 0.5)', 23 + lift: '0 30px 60px oklch(0.03 0.02 250 / 0.45)', 24 + }, 25 + keyframes: { 26 + aurora: { 27 + '0%': { transform: 'translate3d(-8%, -6%, 0) scale(1)' }, 28 + '50%': { transform: 'translate3d(10%, 8%, 0) scale(1.08)' }, 29 + '100%': { transform: 'translate3d(-8%, -6%, 0) scale(1)' }, 30 + }, 31 + noise: { 32 + '0%': { transform: 'translate(0, 0)' }, 33 + '25%': { transform: 'translate(-4%, 3%)' }, 34 + '50%': { transform: 'translate(2%, -3%)' }, 35 + '75%': { transform: 'translate(3%, 2%)' }, 36 + '100%': { transform: 'translate(0, 0)' }, 37 + }, 38 + rise: { 39 + '0%': { opacity: '0', transform: 'translate3d(0, 10px, 0)' }, 40 + '100%': { opacity: '1', transform: 'translate3d(0, 0, 0)' }, 41 + }, 42 + }, 43 + animation: { 44 + aurora: 'aurora 34s ease-in-out infinite', 45 + noise: 'noise 800ms steps(6) infinite', 46 + rise: 'rise 440ms cubic-bezier(0.22, 1, 0.36, 1) both', 47 + }, 48 + }, 49 + }, 50 + plugins: [tailwindcssAnimate], 51 + }
+30
tsconfig.app.json
··· 1 + { 2 + "compilerOptions": { 3 + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", 4 + "target": "es2023", 5 + "lib": ["ES2023", "DOM", "DOM.Iterable"], 6 + "module": "esnext", 7 + "types": ["vite/client"], 8 + "ignoreDeprecations": "6.0", 9 + "skipLibCheck": true, 10 + 11 + /* Bundler mode */ 12 + "moduleResolution": "bundler", 13 + "baseUrl": ".", 14 + "paths": { 15 + "@/*": ["./src/*"] 16 + }, 17 + "allowImportingTsExtensions": true, 18 + "verbatimModuleSyntax": true, 19 + "moduleDetection": "force", 20 + "noEmit": true, 21 + "jsx": "react-jsx", 22 + 23 + /* Linting */ 24 + "noUnusedLocals": true, 25 + "noUnusedParameters": true, 26 + "erasableSyntaxOnly": true, 27 + "noFallthroughCasesInSwitch": true 28 + }, 29 + "include": ["src"] 30 + }
+7
tsconfig.json
··· 1 + { 2 + "files": [], 3 + "references": [ 4 + { "path": "./tsconfig.app.json" }, 5 + { "path": "./tsconfig.node.json" } 6 + ] 7 + }
+24
tsconfig.node.json
··· 1 + { 2 + "compilerOptions": { 3 + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", 4 + "target": "es2023", 5 + "lib": ["ES2023"], 6 + "module": "esnext", 7 + "types": ["node"], 8 + "skipLibCheck": true, 9 + 10 + /* Bundler mode */ 11 + "moduleResolution": "bundler", 12 + "allowImportingTsExtensions": true, 13 + "verbatimModuleSyntax": true, 14 + "moduleDetection": "force", 15 + "noEmit": true, 16 + 17 + /* Linting */ 18 + "noUnusedLocals": true, 19 + "noUnusedParameters": true, 20 + "erasableSyntaxOnly": true, 21 + "noFallthroughCasesInSwitch": true 22 + }, 23 + "include": ["vite.config.ts"] 24 + }
+94
vite.config.ts
··· 1 + import { defineConfig } from 'vite' 2 + import react from '@vitejs/plugin-react' 3 + import { VitePWA } from 'vite-plugin-pwa' 4 + import { fileURLToPath } from 'node:url' 5 + 6 + // https://vite.dev/config/ 7 + export default defineConfig({ 8 + resolve: { 9 + alias: { 10 + '@': fileURLToPath(new URL('./src', import.meta.url)), 11 + }, 12 + }, 13 + plugins: [ 14 + react(), 15 + VitePWA({ 16 + registerType: 'autoUpdate', 17 + includeAssets: ['favicon.svg'], 18 + manifest: { 19 + name: 'Atmosphere VODs', 20 + short_name: 'Atmosphere VODs', 21 + description: 22 + 'A minimalist glassy video browser for ATmosphereConf 2026 talks.', 23 + theme_color: '#0a1020', 24 + background_color: '#060a14', 25 + display: 'standalone', 26 + start_url: '/', 27 + icons: [ 28 + { 29 + src: '/favicon.svg', 30 + sizes: 'any', 31 + type: 'image/svg+xml', 32 + purpose: 'any maskable', 33 + }, 34 + ], 35 + }, 36 + workbox: { 37 + globPatterns: ['**/*.{js,css,html,svg,png,ico,woff2}'], 38 + runtimeCaching: [ 39 + { 40 + urlPattern: /^https:\/\/plc\.directory\/.*/i, 41 + handler: 'NetworkFirst', 42 + options: { 43 + cacheName: 'plc-directory', 44 + networkTimeoutSeconds: 8, 45 + expiration: { 46 + maxEntries: 16, 47 + maxAgeSeconds: 60 * 60 * 24, 48 + }, 49 + }, 50 + }, 51 + { 52 + urlPattern: 53 + /^https:\/\/[^/]+\/xrpc\/com\.atproto\.repo\.listRecords.*/i, 54 + handler: 'NetworkFirst', 55 + options: { 56 + cacheName: 'list-records', 57 + networkTimeoutSeconds: 8, 58 + expiration: { 59 + maxEntries: 24, 60 + maxAgeSeconds: 60 * 15, 61 + }, 62 + }, 63 + }, 64 + { 65 + urlPattern: 66 + /^https:\/\/public\.api\.bsky\.app\/xrpc\/app\.bsky\.actor\.getProfile.*/i, 67 + handler: 'NetworkFirst', 68 + options: { 69 + cacheName: 'bsky-profiles', 70 + networkTimeoutSeconds: 6, 71 + expiration: { 72 + maxEntries: 160, 73 + maxAgeSeconds: 60 * 60, 74 + }, 75 + }, 76 + }, 77 + { 78 + urlPattern: 79 + /^https:\/\/vod-beta\.stream\.place\/xrpc\/place\.stream\.playback\.getVideoPlaylist.*/i, 80 + handler: 'NetworkFirst', 81 + options: { 82 + cacheName: 'playlists', 83 + networkTimeoutSeconds: 6, 84 + expiration: { 85 + maxEntries: 48, 86 + maxAgeSeconds: 60 * 60, 87 + }, 88 + }, 89 + }, 90 + ], 91 + }, 92 + }), 93 + ], 94 + })