this repo has no description
0
fork

Configure Feed

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

Prettier, eslint, cleanup

alice cc66ba4a 202b16a8

+4893 -3306
+1
.prettierignore
··· 1 + worker-configuration.d.ts
+10 -4
.prettierrc
··· 1 1 { 2 - "printWidth": 140, 3 - "singleQuote": true, 4 - "semi": true, 5 - "useTabs": true 2 + "trailingComma": "all", 3 + "tabWidth": 2, 4 + "semi": true, 5 + "singleQuote": true, 6 + "printWidth": 120, 7 + "experimentalTernaries": true, 8 + "plugins": ["@trivago/prettier-plugin-sort-imports"], 9 + "importOrder": ["^[./]"], 10 + "importOrderSeparation": true, 11 + "importOrderSortSpecifiers": true 6 12 }
+26
eslint.config.mjs
··· 1 + import eslint from '@eslint/js'; 2 + import tseslint from 'typescript-eslint'; 3 + 4 + export default tseslint.config( 5 + eslint.configs.recommended, 6 + ...tseslint.configs.strictTypeChecked, 7 + ...tseslint.configs.stylisticTypeChecked, 8 + { 9 + languageOptions: { 10 + parserOptions: { 11 + projectService: { 12 + allowDefaultProject: ['*.js'], 13 + defaultProject: 'tsconfig.json', 14 + }, 15 + }, 16 + }, 17 + rules: { 18 + '@typescript-eslint/no-non-null-assertion': 'off', 19 + '@typescript-eslint/restrict-template-expressions': 'off', 20 + }, 21 + }, 22 + { 23 + files: ['eslint.config.mjs'], 24 + extends: [tseslint.configs.disableTypeChecked], 25 + }, 26 + );
+4671 -3047
package-lock.json
··· 1 1 { 2 - "name": "budget-edge", 3 - "version": "0.0.0", 4 - "lockfileVersion": 3, 5 - "requires": true, 6 - "packages": { 7 - "": { 8 - "name": "budget-edge", 9 - "version": "0.0.0", 10 - "dependencies": { 11 - "google-auth-library": "^9.15.1", 12 - "hono": "^4.4.13", 13 - "jose": "^6.0.11" 14 - }, 15 - "devDependencies": { 16 - "@cloudflare/vitest-pool-workers": "^0.8.19", 17 - "@types/node": "^22.15.18", 18 - "typescript": "^5.5.2", 19 - "vitest": "~3.0.7", 20 - "wrangler": "^4.14.4" 21 - } 22 - }, 23 - "node_modules/@cloudflare/kv-asset-handler": { 24 - "version": "0.4.0", 25 - "resolved": "https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.4.0.tgz", 26 - "integrity": "sha512-+tv3z+SPp+gqTIcImN9o0hqE9xyfQjI1XD9pL6NuKjua9B1y7mNYv0S9cP+QEbA4ppVgGZEmKOvHX5G5Ei1CVA==", 27 - "dev": true, 28 - "license": "MIT OR Apache-2.0", 29 - "dependencies": { 30 - "mime": "^3.0.0" 31 - }, 32 - "engines": { 33 - "node": ">=18.0.0" 34 - } 35 - }, 36 - "node_modules/@cloudflare/unenv-preset": { 37 - "version": "2.3.1", 38 - "resolved": "https://registry.npmjs.org/@cloudflare/unenv-preset/-/unenv-preset-2.3.1.tgz", 39 - "integrity": "sha512-Xq57Qd+ADpt6hibcVBO0uLG9zzRgyRhfCUgBT9s+g3+3Ivg5zDyVgLFy40ES1VdNcu8rPNSivm9A+kGP5IVaPg==", 40 - "dev": true, 41 - "license": "MIT OR Apache-2.0", 42 - "peerDependencies": { 43 - "unenv": "2.0.0-rc.15", 44 - "workerd": "^1.20250320.0" 45 - }, 46 - "peerDependenciesMeta": { 47 - "workerd": { 48 - "optional": true 49 - } 50 - } 51 - }, 52 - "node_modules/@cloudflare/vitest-pool-workers": { 53 - "version": "0.8.28", 54 - "resolved": "https://registry.npmjs.org/@cloudflare/vitest-pool-workers/-/vitest-pool-workers-0.8.28.tgz", 55 - "integrity": "sha512-GyPfttXeoeqSzAymwn7DCnrWyPMiLSp1RSG0Pq1mXdB2t1qrQGgih9IP8l7yh8H6Hl4GWqjemE3UmIWtjaqN6Q==", 56 - "dev": true, 57 - "license": "MIT", 58 - "dependencies": { 59 - "birpc": "0.2.14", 60 - "cjs-module-lexer": "^1.2.3", 61 - "devalue": "^4.3.0", 62 - "miniflare": "4.20250508.0", 63 - "semver": "^7.7.1", 64 - "wrangler": "4.15.0", 65 - "zod": "^3.22.3" 66 - }, 67 - "peerDependencies": { 68 - "@vitest/runner": "2.0.x - 3.1.x", 69 - "@vitest/snapshot": "2.0.x - 3.1.x", 70 - "vitest": "2.0.x - 3.1.x" 71 - } 72 - }, 73 - "node_modules/@cloudflare/vitest-pool-workers/node_modules/wrangler": { 74 - "version": "4.15.0", 75 - "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-4.15.0.tgz", 76 - "integrity": "sha512-1fCdp2BQ5OtoNQU63/tjLmikmHIB1Vjh2gCs6K+DPz0f1U9PpQusPkcDv0UVONtH82XSfZGNFHZ5s5jPzwHFjw==", 77 - "deprecated": "Please downgrade to v4.14.4", 78 - "dev": true, 79 - "license": "MIT OR Apache-2.0", 80 - "dependencies": { 81 - "@cloudflare/kv-asset-handler": "0.4.0", 82 - "@cloudflare/unenv-preset": "2.3.1", 83 - "blake3-wasm": "2.1.5", 84 - "esbuild": "0.25.4", 85 - "miniflare": "4.20250508.0", 86 - "path-to-regexp": "6.3.0", 87 - "unenv": "2.0.0-rc.15", 88 - "workerd": "1.20250508.0" 89 - }, 90 - "bin": { 91 - "wrangler": "bin/wrangler.js", 92 - "wrangler2": "bin/wrangler.js" 93 - }, 94 - "engines": { 95 - "node": ">=18.0.0" 96 - }, 97 - "optionalDependencies": { 98 - "fsevents": "~2.3.2", 99 - "sharp": "^0.33.5" 100 - }, 101 - "peerDependencies": { 102 - "@cloudflare/workers-types": "^4.20250508.0" 103 - }, 104 - "peerDependenciesMeta": { 105 - "@cloudflare/workers-types": { 106 - "optional": true 107 - } 108 - } 109 - }, 110 - "node_modules/@cloudflare/workerd-darwin-64": { 111 - "version": "1.20250508.0", 112 - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20250508.0.tgz", 113 - "integrity": "sha512-9x09MrA9Y5RQs3zqWvWns8xHgM2pVNXWpeJ+3hQYu4PrwPFZXtTD6b/iMmOnlYKzINlREq1RGeEybMFyWEUlUg==", 114 - "cpu": [ 115 - "x64" 116 - ], 117 - "dev": true, 118 - "license": "Apache-2.0", 119 - "optional": true, 120 - "os": [ 121 - "darwin" 122 - ], 123 - "engines": { 124 - "node": ">=16" 125 - } 126 - }, 127 - "node_modules/@cloudflare/workerd-darwin-arm64": { 128 - "version": "1.20250508.0", 129 - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20250508.0.tgz", 130 - "integrity": "sha512-0Ili+nE2LLRzYue/yPc1pepSyNNg6LxR3/ng/rlQzVQUxPXIXldHFkJ/ynsYwQnAcf6OxasSi/kbTm6yvDoSAQ==", 131 - "cpu": [ 132 - "arm64" 133 - ], 134 - "dev": true, 135 - "license": "Apache-2.0", 136 - "optional": true, 137 - "os": [ 138 - "darwin" 139 - ], 140 - "engines": { 141 - "node": ">=16" 142 - } 143 - }, 144 - "node_modules/@cloudflare/workerd-linux-64": { 145 - "version": "1.20250508.0", 146 - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20250508.0.tgz", 147 - "integrity": "sha512-5saVrZ3uVwYxvBa7BaonXjeqB6X0YF3ak05qvBaWcmZ3FNmnarMm2W8842cnbhnckDVBpB/iDo51Sy6Y7y1jcw==", 148 - "cpu": [ 149 - "x64" 150 - ], 151 - "dev": true, 152 - "license": "Apache-2.0", 153 - "optional": true, 154 - "os": [ 155 - "linux" 156 - ], 157 - "engines": { 158 - "node": ">=16" 159 - } 160 - }, 161 - "node_modules/@cloudflare/workerd-linux-arm64": { 162 - "version": "1.20250508.0", 163 - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20250508.0.tgz", 164 - "integrity": "sha512-muQe1pkxRi3eaq1Q417xvfGd2SlktbLTzNhT5Yftsx8OecWrYuB8i4ttR6Nr5ER06bfEj0FqQjqJJhcp6wLLUQ==", 165 - "cpu": [ 166 - "arm64" 167 - ], 168 - "dev": true, 169 - "license": "Apache-2.0", 170 - "optional": true, 171 - "os": [ 172 - "linux" 173 - ], 174 - "engines": { 175 - "node": ">=16" 176 - } 177 - }, 178 - "node_modules/@cloudflare/workerd-windows-64": { 179 - "version": "1.20250508.0", 180 - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20250508.0.tgz", 181 - "integrity": "sha512-EJj8iTWFMqjgvZUxxNvzK7frA1JMFi3y/9eDIdZPL/OaQh3cmk5Lai5DCXsKYUxfooMBZWYTp53zOLrvuJI8VQ==", 182 - "cpu": [ 183 - "x64" 184 - ], 185 - "dev": true, 186 - "license": "Apache-2.0", 187 - "optional": true, 188 - "os": [ 189 - "win32" 190 - ], 191 - "engines": { 192 - "node": ">=16" 193 - } 194 - }, 195 - "node_modules/@cspotcode/source-map-support": { 196 - "version": "0.8.1", 197 - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", 198 - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", 199 - "dev": true, 200 - "license": "MIT", 201 - "dependencies": { 202 - "@jridgewell/trace-mapping": "0.3.9" 203 - }, 204 - "engines": { 205 - "node": ">=12" 206 - } 207 - }, 208 - "node_modules/@emnapi/runtime": { 209 - "version": "1.4.3", 210 - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.3.tgz", 211 - "integrity": "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==", 212 - "dev": true, 213 - "license": "MIT", 214 - "optional": true, 215 - "dependencies": { 216 - "tslib": "^2.4.0" 217 - } 218 - }, 219 - "node_modules/@esbuild/aix-ppc64": { 220 - "version": "0.25.4", 221 - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.4.tgz", 222 - "integrity": "sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==", 223 - "cpu": [ 224 - "ppc64" 225 - ], 226 - "dev": true, 227 - "license": "MIT", 228 - "optional": true, 229 - "os": [ 230 - "aix" 231 - ], 232 - "engines": { 233 - "node": ">=18" 234 - } 235 - }, 236 - "node_modules/@esbuild/android-arm": { 237 - "version": "0.25.4", 238 - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.4.tgz", 239 - "integrity": "sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==", 240 - "cpu": [ 241 - "arm" 242 - ], 243 - "dev": true, 244 - "license": "MIT", 245 - "optional": true, 246 - "os": [ 247 - "android" 248 - ], 249 - "engines": { 250 - "node": ">=18" 251 - } 252 - }, 253 - "node_modules/@esbuild/android-arm64": { 254 - "version": "0.25.4", 255 - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.4.tgz", 256 - "integrity": "sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==", 257 - "cpu": [ 258 - "arm64" 259 - ], 260 - "dev": true, 261 - "license": "MIT", 262 - "optional": true, 263 - "os": [ 264 - "android" 265 - ], 266 - "engines": { 267 - "node": ">=18" 268 - } 269 - }, 270 - "node_modules/@esbuild/android-x64": { 271 - "version": "0.25.4", 272 - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.4.tgz", 273 - "integrity": "sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==", 274 - "cpu": [ 275 - "x64" 276 - ], 277 - "dev": true, 278 - "license": "MIT", 279 - "optional": true, 280 - "os": [ 281 - "android" 282 - ], 283 - "engines": { 284 - "node": ">=18" 285 - } 286 - }, 287 - "node_modules/@esbuild/darwin-arm64": { 288 - "version": "0.25.4", 289 - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.4.tgz", 290 - "integrity": "sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==", 291 - "cpu": [ 292 - "arm64" 293 - ], 294 - "dev": true, 295 - "license": "MIT", 296 - "optional": true, 297 - "os": [ 298 - "darwin" 299 - ], 300 - "engines": { 301 - "node": ">=18" 302 - } 303 - }, 304 - "node_modules/@esbuild/darwin-x64": { 305 - "version": "0.25.4", 306 - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.4.tgz", 307 - "integrity": "sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==", 308 - "cpu": [ 309 - "x64" 310 - ], 311 - "dev": true, 312 - "license": "MIT", 313 - "optional": true, 314 - "os": [ 315 - "darwin" 316 - ], 317 - "engines": { 318 - "node": ">=18" 319 - } 320 - }, 321 - "node_modules/@esbuild/freebsd-arm64": { 322 - "version": "0.25.4", 323 - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.4.tgz", 324 - "integrity": "sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==", 325 - "cpu": [ 326 - "arm64" 327 - ], 328 - "dev": true, 329 - "license": "MIT", 330 - "optional": true, 331 - "os": [ 332 - "freebsd" 333 - ], 334 - "engines": { 335 - "node": ">=18" 336 - } 337 - }, 338 - "node_modules/@esbuild/freebsd-x64": { 339 - "version": "0.25.4", 340 - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.4.tgz", 341 - "integrity": "sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==", 342 - "cpu": [ 343 - "x64" 344 - ], 345 - "dev": true, 346 - "license": "MIT", 347 - "optional": true, 348 - "os": [ 349 - "freebsd" 350 - ], 351 - "engines": { 352 - "node": ">=18" 353 - } 354 - }, 355 - "node_modules/@esbuild/linux-arm": { 356 - "version": "0.25.4", 357 - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.4.tgz", 358 - "integrity": "sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==", 359 - "cpu": [ 360 - "arm" 361 - ], 362 - "dev": true, 363 - "license": "MIT", 364 - "optional": true, 365 - "os": [ 366 - "linux" 367 - ], 368 - "engines": { 369 - "node": ">=18" 370 - } 371 - }, 372 - "node_modules/@esbuild/linux-arm64": { 373 - "version": "0.25.4", 374 - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.4.tgz", 375 - "integrity": "sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==", 376 - "cpu": [ 377 - "arm64" 378 - ], 379 - "dev": true, 380 - "license": "MIT", 381 - "optional": true, 382 - "os": [ 383 - "linux" 384 - ], 385 - "engines": { 386 - "node": ">=18" 387 - } 388 - }, 389 - "node_modules/@esbuild/linux-ia32": { 390 - "version": "0.25.4", 391 - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.4.tgz", 392 - "integrity": "sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==", 393 - "cpu": [ 394 - "ia32" 395 - ], 396 - "dev": true, 397 - "license": "MIT", 398 - "optional": true, 399 - "os": [ 400 - "linux" 401 - ], 402 - "engines": { 403 - "node": ">=18" 404 - } 405 - }, 406 - "node_modules/@esbuild/linux-loong64": { 407 - "version": "0.25.4", 408 - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.4.tgz", 409 - "integrity": "sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==", 410 - "cpu": [ 411 - "loong64" 412 - ], 413 - "dev": true, 414 - "license": "MIT", 415 - "optional": true, 416 - "os": [ 417 - "linux" 418 - ], 419 - "engines": { 420 - "node": ">=18" 421 - } 422 - }, 423 - "node_modules/@esbuild/linux-mips64el": { 424 - "version": "0.25.4", 425 - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.4.tgz", 426 - "integrity": "sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==", 427 - "cpu": [ 428 - "mips64el" 429 - ], 430 - "dev": true, 431 - "license": "MIT", 432 - "optional": true, 433 - "os": [ 434 - "linux" 435 - ], 436 - "engines": { 437 - "node": ">=18" 438 - } 439 - }, 440 - "node_modules/@esbuild/linux-ppc64": { 441 - "version": "0.25.4", 442 - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.4.tgz", 443 - "integrity": "sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==", 444 - "cpu": [ 445 - "ppc64" 446 - ], 447 - "dev": true, 448 - "license": "MIT", 449 - "optional": true, 450 - "os": [ 451 - "linux" 452 - ], 453 - "engines": { 454 - "node": ">=18" 455 - } 456 - }, 457 - "node_modules/@esbuild/linux-riscv64": { 458 - "version": "0.25.4", 459 - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.4.tgz", 460 - "integrity": "sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==", 461 - "cpu": [ 462 - "riscv64" 463 - ], 464 - "dev": true, 465 - "license": "MIT", 466 - "optional": true, 467 - "os": [ 468 - "linux" 469 - ], 470 - "engines": { 471 - "node": ">=18" 472 - } 473 - }, 474 - "node_modules/@esbuild/linux-s390x": { 475 - "version": "0.25.4", 476 - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.4.tgz", 477 - "integrity": "sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==", 478 - "cpu": [ 479 - "s390x" 480 - ], 481 - "dev": true, 482 - "license": "MIT", 483 - "optional": true, 484 - "os": [ 485 - "linux" 486 - ], 487 - "engines": { 488 - "node": ">=18" 489 - } 490 - }, 491 - "node_modules/@esbuild/linux-x64": { 492 - "version": "0.25.4", 493 - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.4.tgz", 494 - "integrity": "sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==", 495 - "cpu": [ 496 - "x64" 497 - ], 498 - "dev": true, 499 - "license": "MIT", 500 - "optional": true, 501 - "os": [ 502 - "linux" 503 - ], 504 - "engines": { 505 - "node": ">=18" 506 - } 507 - }, 508 - "node_modules/@esbuild/netbsd-arm64": { 509 - "version": "0.25.4", 510 - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.4.tgz", 511 - "integrity": "sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==", 512 - "cpu": [ 513 - "arm64" 514 - ], 515 - "dev": true, 516 - "license": "MIT", 517 - "optional": true, 518 - "os": [ 519 - "netbsd" 520 - ], 521 - "engines": { 522 - "node": ">=18" 523 - } 524 - }, 525 - "node_modules/@esbuild/netbsd-x64": { 526 - "version": "0.25.4", 527 - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.4.tgz", 528 - "integrity": "sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==", 529 - "cpu": [ 530 - "x64" 531 - ], 532 - "dev": true, 533 - "license": "MIT", 534 - "optional": true, 535 - "os": [ 536 - "netbsd" 537 - ], 538 - "engines": { 539 - "node": ">=18" 540 - } 541 - }, 542 - "node_modules/@esbuild/openbsd-arm64": { 543 - "version": "0.25.4", 544 - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.4.tgz", 545 - "integrity": "sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==", 546 - "cpu": [ 547 - "arm64" 548 - ], 549 - "dev": true, 550 - "license": "MIT", 551 - "optional": true, 552 - "os": [ 553 - "openbsd" 554 - ], 555 - "engines": { 556 - "node": ">=18" 557 - } 558 - }, 559 - "node_modules/@esbuild/openbsd-x64": { 560 - "version": "0.25.4", 561 - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.4.tgz", 562 - "integrity": "sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==", 563 - "cpu": [ 564 - "x64" 565 - ], 566 - "dev": true, 567 - "license": "MIT", 568 - "optional": true, 569 - "os": [ 570 - "openbsd" 571 - ], 572 - "engines": { 573 - "node": ">=18" 574 - } 575 - }, 576 - "node_modules/@esbuild/sunos-x64": { 577 - "version": "0.25.4", 578 - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.4.tgz", 579 - "integrity": "sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==", 580 - "cpu": [ 581 - "x64" 582 - ], 583 - "dev": true, 584 - "license": "MIT", 585 - "optional": true, 586 - "os": [ 587 - "sunos" 588 - ], 589 - "engines": { 590 - "node": ">=18" 591 - } 592 - }, 593 - "node_modules/@esbuild/win32-arm64": { 594 - "version": "0.25.4", 595 - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.4.tgz", 596 - "integrity": "sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==", 597 - "cpu": [ 598 - "arm64" 599 - ], 600 - "dev": true, 601 - "license": "MIT", 602 - "optional": true, 603 - "os": [ 604 - "win32" 605 - ], 606 - "engines": { 607 - "node": ">=18" 608 - } 609 - }, 610 - "node_modules/@esbuild/win32-ia32": { 611 - "version": "0.25.4", 612 - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.4.tgz", 613 - "integrity": "sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==", 614 - "cpu": [ 615 - "ia32" 616 - ], 617 - "dev": true, 618 - "license": "MIT", 619 - "optional": true, 620 - "os": [ 621 - "win32" 622 - ], 623 - "engines": { 624 - "node": ">=18" 625 - } 626 - }, 627 - "node_modules/@esbuild/win32-x64": { 628 - "version": "0.25.4", 629 - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.4.tgz", 630 - "integrity": "sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==", 631 - "cpu": [ 632 - "x64" 633 - ], 634 - "dev": true, 635 - "license": "MIT", 636 - "optional": true, 637 - "os": [ 638 - "win32" 639 - ], 640 - "engines": { 641 - "node": ">=18" 642 - } 643 - }, 644 - "node_modules/@fastify/busboy": { 645 - "version": "2.1.1", 646 - "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", 647 - "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", 648 - "dev": true, 649 - "license": "MIT", 650 - "engines": { 651 - "node": ">=14" 652 - } 653 - }, 654 - "node_modules/@img/sharp-darwin-arm64": { 655 - "version": "0.33.5", 656 - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", 657 - "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==", 658 - "cpu": [ 659 - "arm64" 660 - ], 661 - "dev": true, 662 - "license": "Apache-2.0", 663 - "optional": true, 664 - "os": [ 665 - "darwin" 666 - ], 667 - "engines": { 668 - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 669 - }, 670 - "funding": { 671 - "url": "https://opencollective.com/libvips" 672 - }, 673 - "optionalDependencies": { 674 - "@img/sharp-libvips-darwin-arm64": "1.0.4" 675 - } 676 - }, 677 - "node_modules/@img/sharp-darwin-x64": { 678 - "version": "0.33.5", 679 - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz", 680 - "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==", 681 - "cpu": [ 682 - "x64" 683 - ], 684 - "dev": true, 685 - "license": "Apache-2.0", 686 - "optional": true, 687 - "os": [ 688 - "darwin" 689 - ], 690 - "engines": { 691 - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 692 - }, 693 - "funding": { 694 - "url": "https://opencollective.com/libvips" 695 - }, 696 - "optionalDependencies": { 697 - "@img/sharp-libvips-darwin-x64": "1.0.4" 698 - } 699 - }, 700 - "node_modules/@img/sharp-libvips-darwin-arm64": { 701 - "version": "1.0.4", 702 - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz", 703 - "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==", 704 - "cpu": [ 705 - "arm64" 706 - ], 707 - "dev": true, 708 - "license": "LGPL-3.0-or-later", 709 - "optional": true, 710 - "os": [ 711 - "darwin" 712 - ], 713 - "funding": { 714 - "url": "https://opencollective.com/libvips" 715 - } 716 - }, 717 - "node_modules/@img/sharp-libvips-darwin-x64": { 718 - "version": "1.0.4", 719 - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz", 720 - "integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==", 721 - "cpu": [ 722 - "x64" 723 - ], 724 - "dev": true, 725 - "license": "LGPL-3.0-or-later", 726 - "optional": true, 727 - "os": [ 728 - "darwin" 729 - ], 730 - "funding": { 731 - "url": "https://opencollective.com/libvips" 732 - } 733 - }, 734 - "node_modules/@img/sharp-libvips-linux-arm": { 735 - "version": "1.0.5", 736 - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz", 737 - "integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==", 738 - "cpu": [ 739 - "arm" 740 - ], 741 - "dev": true, 742 - "license": "LGPL-3.0-or-later", 743 - "optional": true, 744 - "os": [ 745 - "linux" 746 - ], 747 - "funding": { 748 - "url": "https://opencollective.com/libvips" 749 - } 750 - }, 751 - "node_modules/@img/sharp-libvips-linux-arm64": { 752 - "version": "1.0.4", 753 - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz", 754 - "integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==", 755 - "cpu": [ 756 - "arm64" 757 - ], 758 - "dev": true, 759 - "license": "LGPL-3.0-or-later", 760 - "optional": true, 761 - "os": [ 762 - "linux" 763 - ], 764 - "funding": { 765 - "url": "https://opencollective.com/libvips" 766 - } 767 - }, 768 - "node_modules/@img/sharp-libvips-linux-s390x": { 769 - "version": "1.0.4", 770 - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz", 771 - "integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==", 772 - "cpu": [ 773 - "s390x" 774 - ], 775 - "dev": true, 776 - "license": "LGPL-3.0-or-later", 777 - "optional": true, 778 - "os": [ 779 - "linux" 780 - ], 781 - "funding": { 782 - "url": "https://opencollective.com/libvips" 783 - } 784 - }, 785 - "node_modules/@img/sharp-libvips-linux-x64": { 786 - "version": "1.0.4", 787 - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz", 788 - "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==", 789 - "cpu": [ 790 - "x64" 791 - ], 792 - "dev": true, 793 - "license": "LGPL-3.0-or-later", 794 - "optional": true, 795 - "os": [ 796 - "linux" 797 - ], 798 - "funding": { 799 - "url": "https://opencollective.com/libvips" 800 - } 801 - }, 802 - "node_modules/@img/sharp-libvips-linuxmusl-arm64": { 803 - "version": "1.0.4", 804 - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz", 805 - "integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==", 806 - "cpu": [ 807 - "arm64" 808 - ], 809 - "dev": true, 810 - "license": "LGPL-3.0-or-later", 811 - "optional": true, 812 - "os": [ 813 - "linux" 814 - ], 815 - "funding": { 816 - "url": "https://opencollective.com/libvips" 817 - } 818 - }, 819 - "node_modules/@img/sharp-libvips-linuxmusl-x64": { 820 - "version": "1.0.4", 821 - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz", 822 - "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==", 823 - "cpu": [ 824 - "x64" 825 - ], 826 - "dev": true, 827 - "license": "LGPL-3.0-or-later", 828 - "optional": true, 829 - "os": [ 830 - "linux" 831 - ], 832 - "funding": { 833 - "url": "https://opencollective.com/libvips" 834 - } 835 - }, 836 - "node_modules/@img/sharp-linux-arm": { 837 - "version": "0.33.5", 838 - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz", 839 - "integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==", 840 - "cpu": [ 841 - "arm" 842 - ], 843 - "dev": true, 844 - "license": "Apache-2.0", 845 - "optional": true, 846 - "os": [ 847 - "linux" 848 - ], 849 - "engines": { 850 - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 851 - }, 852 - "funding": { 853 - "url": "https://opencollective.com/libvips" 854 - }, 855 - "optionalDependencies": { 856 - "@img/sharp-libvips-linux-arm": "1.0.5" 857 - } 858 - }, 859 - "node_modules/@img/sharp-linux-arm64": { 860 - "version": "0.33.5", 861 - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz", 862 - "integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==", 863 - "cpu": [ 864 - "arm64" 865 - ], 866 - "dev": true, 867 - "license": "Apache-2.0", 868 - "optional": true, 869 - "os": [ 870 - "linux" 871 - ], 872 - "engines": { 873 - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 874 - }, 875 - "funding": { 876 - "url": "https://opencollective.com/libvips" 877 - }, 878 - "optionalDependencies": { 879 - "@img/sharp-libvips-linux-arm64": "1.0.4" 880 - } 881 - }, 882 - "node_modules/@img/sharp-linux-s390x": { 883 - "version": "0.33.5", 884 - "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz", 885 - "integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==", 886 - "cpu": [ 887 - "s390x" 888 - ], 889 - "dev": true, 890 - "license": "Apache-2.0", 891 - "optional": true, 892 - "os": [ 893 - "linux" 894 - ], 895 - "engines": { 896 - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 897 - }, 898 - "funding": { 899 - "url": "https://opencollective.com/libvips" 900 - }, 901 - "optionalDependencies": { 902 - "@img/sharp-libvips-linux-s390x": "1.0.4" 903 - } 904 - }, 905 - "node_modules/@img/sharp-linux-x64": { 906 - "version": "0.33.5", 907 - "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz", 908 - "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==", 909 - "cpu": [ 910 - "x64" 911 - ], 912 - "dev": true, 913 - "license": "Apache-2.0", 914 - "optional": true, 915 - "os": [ 916 - "linux" 917 - ], 918 - "engines": { 919 - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 920 - }, 921 - "funding": { 922 - "url": "https://opencollective.com/libvips" 923 - }, 924 - "optionalDependencies": { 925 - "@img/sharp-libvips-linux-x64": "1.0.4" 926 - } 927 - }, 928 - "node_modules/@img/sharp-linuxmusl-arm64": { 929 - "version": "0.33.5", 930 - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz", 931 - "integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==", 932 - "cpu": [ 933 - "arm64" 934 - ], 935 - "dev": true, 936 - "license": "Apache-2.0", 937 - "optional": true, 938 - "os": [ 939 - "linux" 940 - ], 941 - "engines": { 942 - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 943 - }, 944 - "funding": { 945 - "url": "https://opencollective.com/libvips" 946 - }, 947 - "optionalDependencies": { 948 - "@img/sharp-libvips-linuxmusl-arm64": "1.0.4" 949 - } 950 - }, 951 - "node_modules/@img/sharp-linuxmusl-x64": { 952 - "version": "0.33.5", 953 - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz", 954 - "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==", 955 - "cpu": [ 956 - "x64" 957 - ], 958 - "dev": true, 959 - "license": "Apache-2.0", 960 - "optional": true, 961 - "os": [ 962 - "linux" 963 - ], 964 - "engines": { 965 - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 966 - }, 967 - "funding": { 968 - "url": "https://opencollective.com/libvips" 969 - }, 970 - "optionalDependencies": { 971 - "@img/sharp-libvips-linuxmusl-x64": "1.0.4" 972 - } 973 - }, 974 - "node_modules/@img/sharp-wasm32": { 975 - "version": "0.33.5", 976 - "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz", 977 - "integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==", 978 - "cpu": [ 979 - "wasm32" 980 - ], 981 - "dev": true, 982 - "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", 983 - "optional": true, 984 - "dependencies": { 985 - "@emnapi/runtime": "^1.2.0" 986 - }, 987 - "engines": { 988 - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 989 - }, 990 - "funding": { 991 - "url": "https://opencollective.com/libvips" 992 - } 993 - }, 994 - "node_modules/@img/sharp-win32-ia32": { 995 - "version": "0.33.5", 996 - "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz", 997 - "integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==", 998 - "cpu": [ 999 - "ia32" 1000 - ], 1001 - "dev": true, 1002 - "license": "Apache-2.0 AND LGPL-3.0-or-later", 1003 - "optional": true, 1004 - "os": [ 1005 - "win32" 1006 - ], 1007 - "engines": { 1008 - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1009 - }, 1010 - "funding": { 1011 - "url": "https://opencollective.com/libvips" 1012 - } 1013 - }, 1014 - "node_modules/@img/sharp-win32-x64": { 1015 - "version": "0.33.5", 1016 - "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz", 1017 - "integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==", 1018 - "cpu": [ 1019 - "x64" 1020 - ], 1021 - "dev": true, 1022 - "license": "Apache-2.0 AND LGPL-3.0-or-later", 1023 - "optional": true, 1024 - "os": [ 1025 - "win32" 1026 - ], 1027 - "engines": { 1028 - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1029 - }, 1030 - "funding": { 1031 - "url": "https://opencollective.com/libvips" 1032 - } 1033 - }, 1034 - "node_modules/@jridgewell/resolve-uri": { 1035 - "version": "3.1.2", 1036 - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", 1037 - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", 1038 - "dev": true, 1039 - "license": "MIT", 1040 - "engines": { 1041 - "node": ">=6.0.0" 1042 - } 1043 - }, 1044 - "node_modules/@jridgewell/sourcemap-codec": { 1045 - "version": "1.5.0", 1046 - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", 1047 - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", 1048 - "dev": true, 1049 - "license": "MIT" 1050 - }, 1051 - "node_modules/@jridgewell/trace-mapping": { 1052 - "version": "0.3.9", 1053 - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", 1054 - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", 1055 - "dev": true, 1056 - "license": "MIT", 1057 - "dependencies": { 1058 - "@jridgewell/resolve-uri": "^3.0.3", 1059 - "@jridgewell/sourcemap-codec": "^1.4.10" 1060 - } 1061 - }, 1062 - "node_modules/@rollup/rollup-android-arm-eabi": { 1063 - "version": "4.40.2", 1064 - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.2.tgz", 1065 - "integrity": "sha512-JkdNEq+DFxZfUwxvB58tHMHBHVgX23ew41g1OQinthJ+ryhdRk67O31S7sYw8u2lTjHUPFxwar07BBt1KHp/hg==", 1066 - "cpu": [ 1067 - "arm" 1068 - ], 1069 - "dev": true, 1070 - "license": "MIT", 1071 - "optional": true, 1072 - "os": [ 1073 - "android" 1074 - ] 1075 - }, 1076 - "node_modules/@rollup/rollup-android-arm64": { 1077 - "version": "4.40.2", 1078 - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.2.tgz", 1079 - "integrity": "sha512-13unNoZ8NzUmnndhPTkWPWbX3vtHodYmy+I9kuLxN+F+l+x3LdVF7UCu8TWVMt1POHLh6oDHhnOA04n8oJZhBw==", 1080 - "cpu": [ 1081 - "arm64" 1082 - ], 1083 - "dev": true, 1084 - "license": "MIT", 1085 - "optional": true, 1086 - "os": [ 1087 - "android" 1088 - ] 1089 - }, 1090 - "node_modules/@rollup/rollup-darwin-arm64": { 1091 - "version": "4.40.2", 1092 - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.2.tgz", 1093 - "integrity": "sha512-Gzf1Hn2Aoe8VZzevHostPX23U7N5+4D36WJNHK88NZHCJr7aVMG4fadqkIf72eqVPGjGc0HJHNuUaUcxiR+N/w==", 1094 - "cpu": [ 1095 - "arm64" 1096 - ], 1097 - "dev": true, 1098 - "license": "MIT", 1099 - "optional": true, 1100 - "os": [ 1101 - "darwin" 1102 - ] 1103 - }, 1104 - "node_modules/@rollup/rollup-darwin-x64": { 1105 - "version": "4.40.2", 1106 - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.2.tgz", 1107 - "integrity": "sha512-47N4hxa01a4x6XnJoskMKTS8XZ0CZMd8YTbINbi+w03A2w4j1RTlnGHOz/P0+Bg1LaVL6ufZyNprSg+fW5nYQQ==", 1108 - "cpu": [ 1109 - "x64" 1110 - ], 1111 - "dev": true, 1112 - "license": "MIT", 1113 - "optional": true, 1114 - "os": [ 1115 - "darwin" 1116 - ] 1117 - }, 1118 - "node_modules/@rollup/rollup-freebsd-arm64": { 1119 - "version": "4.40.2", 1120 - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.2.tgz", 1121 - "integrity": "sha512-8t6aL4MD+rXSHHZUR1z19+9OFJ2rl1wGKvckN47XFRVO+QL/dUSpKA2SLRo4vMg7ELA8pzGpC+W9OEd1Z/ZqoQ==", 1122 - "cpu": [ 1123 - "arm64" 1124 - ], 1125 - "dev": true, 1126 - "license": "MIT", 1127 - "optional": true, 1128 - "os": [ 1129 - "freebsd" 1130 - ] 1131 - }, 1132 - "node_modules/@rollup/rollup-freebsd-x64": { 1133 - "version": "4.40.2", 1134 - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.2.tgz", 1135 - "integrity": "sha512-C+AyHBzfpsOEYRFjztcYUFsH4S7UsE9cDtHCtma5BK8+ydOZYgMmWg1d/4KBytQspJCld8ZIujFMAdKG1xyr4Q==", 1136 - "cpu": [ 1137 - "x64" 1138 - ], 1139 - "dev": true, 1140 - "license": "MIT", 1141 - "optional": true, 1142 - "os": [ 1143 - "freebsd" 1144 - ] 1145 - }, 1146 - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { 1147 - "version": "4.40.2", 1148 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.2.tgz", 1149 - "integrity": "sha512-de6TFZYIvJwRNjmW3+gaXiZ2DaWL5D5yGmSYzkdzjBDS3W+B9JQ48oZEsmMvemqjtAFzE16DIBLqd6IQQRuG9Q==", 1150 - "cpu": [ 1151 - "arm" 1152 - ], 1153 - "dev": true, 1154 - "license": "MIT", 1155 - "optional": true, 1156 - "os": [ 1157 - "linux" 1158 - ] 1159 - }, 1160 - "node_modules/@rollup/rollup-linux-arm-musleabihf": { 1161 - "version": "4.40.2", 1162 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.2.tgz", 1163 - "integrity": "sha512-urjaEZubdIkacKc930hUDOfQPysezKla/O9qV+O89enqsqUmQm8Xj8O/vh0gHg4LYfv7Y7UsE3QjzLQzDYN1qg==", 1164 - "cpu": [ 1165 - "arm" 1166 - ], 1167 - "dev": true, 1168 - "license": "MIT", 1169 - "optional": true, 1170 - "os": [ 1171 - "linux" 1172 - ] 1173 - }, 1174 - "node_modules/@rollup/rollup-linux-arm64-gnu": { 1175 - "version": "4.40.2", 1176 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.2.tgz", 1177 - "integrity": "sha512-KlE8IC0HFOC33taNt1zR8qNlBYHj31qGT1UqWqtvR/+NuCVhfufAq9fxO8BMFC22Wu0rxOwGVWxtCMvZVLmhQg==", 1178 - "cpu": [ 1179 - "arm64" 1180 - ], 1181 - "dev": true, 1182 - "license": "MIT", 1183 - "optional": true, 1184 - "os": [ 1185 - "linux" 1186 - ] 1187 - }, 1188 - "node_modules/@rollup/rollup-linux-arm64-musl": { 1189 - "version": "4.40.2", 1190 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.2.tgz", 1191 - "integrity": "sha512-j8CgxvfM0kbnhu4XgjnCWJQyyBOeBI1Zq91Z850aUddUmPeQvuAy6OiMdPS46gNFgy8gN1xkYyLgwLYZG3rBOg==", 1192 - "cpu": [ 1193 - "arm64" 1194 - ], 1195 - "dev": true, 1196 - "license": "MIT", 1197 - "optional": true, 1198 - "os": [ 1199 - "linux" 1200 - ] 1201 - }, 1202 - "node_modules/@rollup/rollup-linux-loongarch64-gnu": { 1203 - "version": "4.40.2", 1204 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.2.tgz", 1205 - "integrity": "sha512-Ybc/1qUampKuRF4tQXc7G7QY9YRyeVSykfK36Y5Qc5dmrIxwFhrOzqaVTNoZygqZ1ZieSWTibfFhQ5qK8jpWxw==", 1206 - "cpu": [ 1207 - "loong64" 1208 - ], 1209 - "dev": true, 1210 - "license": "MIT", 1211 - "optional": true, 1212 - "os": [ 1213 - "linux" 1214 - ] 1215 - }, 1216 - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { 1217 - "version": "4.40.2", 1218 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.2.tgz", 1219 - "integrity": "sha512-3FCIrnrt03CCsZqSYAOW/k9n625pjpuMzVfeI+ZBUSDT3MVIFDSPfSUgIl9FqUftxcUXInvFah79hE1c9abD+Q==", 1220 - "cpu": [ 1221 - "ppc64" 1222 - ], 1223 - "dev": true, 1224 - "license": "MIT", 1225 - "optional": true, 1226 - "os": [ 1227 - "linux" 1228 - ] 1229 - }, 1230 - "node_modules/@rollup/rollup-linux-riscv64-gnu": { 1231 - "version": "4.40.2", 1232 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.2.tgz", 1233 - "integrity": "sha512-QNU7BFHEvHMp2ESSY3SozIkBPaPBDTsfVNGx3Xhv+TdvWXFGOSH2NJvhD1zKAT6AyuuErJgbdvaJhYVhVqrWTg==", 1234 - "cpu": [ 1235 - "riscv64" 1236 - ], 1237 - "dev": true, 1238 - "license": "MIT", 1239 - "optional": true, 1240 - "os": [ 1241 - "linux" 1242 - ] 1243 - }, 1244 - "node_modules/@rollup/rollup-linux-riscv64-musl": { 1245 - "version": "4.40.2", 1246 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.2.tgz", 1247 - "integrity": "sha512-5W6vNYkhgfh7URiXTO1E9a0cy4fSgfE4+Hl5agb/U1sa0kjOLMLC1wObxwKxecE17j0URxuTrYZZME4/VH57Hg==", 1248 - "cpu": [ 1249 - "riscv64" 1250 - ], 1251 - "dev": true, 1252 - "license": "MIT", 1253 - "optional": true, 1254 - "os": [ 1255 - "linux" 1256 - ] 1257 - }, 1258 - "node_modules/@rollup/rollup-linux-s390x-gnu": { 1259 - "version": "4.40.2", 1260 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.2.tgz", 1261 - "integrity": "sha512-B7LKIz+0+p348JoAL4X/YxGx9zOx3sR+o6Hj15Y3aaApNfAshK8+mWZEf759DXfRLeL2vg5LYJBB7DdcleYCoQ==", 1262 - "cpu": [ 1263 - "s390x" 1264 - ], 1265 - "dev": true, 1266 - "license": "MIT", 1267 - "optional": true, 1268 - "os": [ 1269 - "linux" 1270 - ] 1271 - }, 1272 - "node_modules/@rollup/rollup-linux-x64-gnu": { 1273 - "version": "4.40.2", 1274 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.2.tgz", 1275 - "integrity": "sha512-lG7Xa+BmBNwpjmVUbmyKxdQJ3Q6whHjMjzQplOs5Z+Gj7mxPtWakGHqzMqNER68G67kmCX9qX57aRsW5V0VOng==", 1276 - "cpu": [ 1277 - "x64" 1278 - ], 1279 - "dev": true, 1280 - "license": "MIT", 1281 - "optional": true, 1282 - "os": [ 1283 - "linux" 1284 - ] 1285 - }, 1286 - "node_modules/@rollup/rollup-linux-x64-musl": { 1287 - "version": "4.40.2", 1288 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.2.tgz", 1289 - "integrity": "sha512-tD46wKHd+KJvsmije4bUskNuvWKFcTOIM9tZ/RrmIvcXnbi0YK/cKS9FzFtAm7Oxi2EhV5N2OpfFB348vSQRXA==", 1290 - "cpu": [ 1291 - "x64" 1292 - ], 1293 - "dev": true, 1294 - "license": "MIT", 1295 - "optional": true, 1296 - "os": [ 1297 - "linux" 1298 - ] 1299 - }, 1300 - "node_modules/@rollup/rollup-win32-arm64-msvc": { 1301 - "version": "4.40.2", 1302 - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.2.tgz", 1303 - "integrity": "sha512-Bjv/HG8RRWLNkXwQQemdsWw4Mg+IJ29LK+bJPW2SCzPKOUaMmPEppQlu/Fqk1d7+DX3V7JbFdbkh/NMmurT6Pg==", 1304 - "cpu": [ 1305 - "arm64" 1306 - ], 1307 - "dev": true, 1308 - "license": "MIT", 1309 - "optional": true, 1310 - "os": [ 1311 - "win32" 1312 - ] 1313 - }, 1314 - "node_modules/@rollup/rollup-win32-ia32-msvc": { 1315 - "version": "4.40.2", 1316 - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.2.tgz", 1317 - "integrity": "sha512-dt1llVSGEsGKvzeIO76HToiYPNPYPkmjhMHhP00T9S4rDern8P2ZWvWAQUEJ+R1UdMWJ/42i/QqJ2WV765GZcA==", 1318 - "cpu": [ 1319 - "ia32" 1320 - ], 1321 - "dev": true, 1322 - "license": "MIT", 1323 - "optional": true, 1324 - "os": [ 1325 - "win32" 1326 - ] 1327 - }, 1328 - "node_modules/@rollup/rollup-win32-x64-msvc": { 1329 - "version": "4.40.2", 1330 - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.2.tgz", 1331 - "integrity": "sha512-bwspbWB04XJpeElvsp+DCylKfF4trJDa2Y9Go8O6A7YLX2LIKGcNK/CYImJN6ZP4DcuOHB4Utl3iCbnR62DudA==", 1332 - "cpu": [ 1333 - "x64" 1334 - ], 1335 - "dev": true, 1336 - "license": "MIT", 1337 - "optional": true, 1338 - "os": [ 1339 - "win32" 1340 - ] 1341 - }, 1342 - "node_modules/@types/estree": { 1343 - "version": "1.0.7", 1344 - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", 1345 - "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", 1346 - "dev": true, 1347 - "license": "MIT" 1348 - }, 1349 - "node_modules/@types/node": { 1350 - "version": "22.15.18", 1351 - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.18.tgz", 1352 - "integrity": "sha512-v1DKRfUdyW+jJhZNEI1PYy29S2YRxMV5AOO/x/SjKmW0acCIOqmbj6Haf9eHAhsPmrhlHSxEhv/1WszcLWV4cg==", 1353 - "dev": true, 1354 - "license": "MIT", 1355 - "dependencies": { 1356 - "undici-types": "~6.21.0" 1357 - } 1358 - }, 1359 - "node_modules/@vitest/expect": { 1360 - "version": "3.0.9", 1361 - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.0.9.tgz", 1362 - "integrity": "sha512-5eCqRItYgIML7NNVgJj6TVCmdzE7ZVgJhruW0ziSQV4V7PvLkDL1bBkBdcTs/VuIz0IxPb5da1IDSqc1TR9eig==", 1363 - "dev": true, 1364 - "license": "MIT", 1365 - "dependencies": { 1366 - "@vitest/spy": "3.0.9", 1367 - "@vitest/utils": "3.0.9", 1368 - "chai": "^5.2.0", 1369 - "tinyrainbow": "^2.0.0" 1370 - }, 1371 - "funding": { 1372 - "url": "https://opencollective.com/vitest" 1373 - } 1374 - }, 1375 - "node_modules/@vitest/mocker": { 1376 - "version": "3.0.9", 1377 - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.0.9.tgz", 1378 - "integrity": "sha512-ryERPIBOnvevAkTq+L1lD+DTFBRcjueL9lOUfXsLfwP92h4e+Heb+PjiqS3/OURWPtywfafK0kj++yDFjWUmrA==", 1379 - "dev": true, 1380 - "license": "MIT", 1381 - "dependencies": { 1382 - "@vitest/spy": "3.0.9", 1383 - "estree-walker": "^3.0.3", 1384 - "magic-string": "^0.30.17" 1385 - }, 1386 - "funding": { 1387 - "url": "https://opencollective.com/vitest" 1388 - }, 1389 - "peerDependencies": { 1390 - "msw": "^2.4.9", 1391 - "vite": "^5.0.0 || ^6.0.0" 1392 - }, 1393 - "peerDependenciesMeta": { 1394 - "msw": { 1395 - "optional": true 1396 - }, 1397 - "vite": { 1398 - "optional": true 1399 - } 1400 - } 1401 - }, 1402 - "node_modules/@vitest/pretty-format": { 1403 - "version": "3.1.3", 1404 - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.1.3.tgz", 1405 - "integrity": "sha512-i6FDiBeJUGLDKADw2Gb01UtUNb12yyXAqC/mmRWuYl+m/U9GS7s8us5ONmGkGpUUo7/iAYzI2ePVfOZTYvUifA==", 1406 - "dev": true, 1407 - "license": "MIT", 1408 - "dependencies": { 1409 - "tinyrainbow": "^2.0.0" 1410 - }, 1411 - "funding": { 1412 - "url": "https://opencollective.com/vitest" 1413 - } 1414 - }, 1415 - "node_modules/@vitest/runner": { 1416 - "version": "3.0.9", 1417 - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.0.9.tgz", 1418 - "integrity": "sha512-NX9oUXgF9HPfJSwl8tUZCMP1oGx2+Sf+ru6d05QjzQz4OwWg0psEzwY6VexP2tTHWdOkhKHUIZH+fS6nA7jfOw==", 1419 - "dev": true, 1420 - "license": "MIT", 1421 - "dependencies": { 1422 - "@vitest/utils": "3.0.9", 1423 - "pathe": "^2.0.3" 1424 - }, 1425 - "funding": { 1426 - "url": "https://opencollective.com/vitest" 1427 - } 1428 - }, 1429 - "node_modules/@vitest/snapshot": { 1430 - "version": "3.0.9", 1431 - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.0.9.tgz", 1432 - "integrity": "sha512-AiLUiuZ0FuA+/8i19mTYd+re5jqjEc2jZbgJ2up0VY0Ddyyxg/uUtBDpIFAy4uzKaQxOW8gMgBdAJJ2ydhu39A==", 1433 - "dev": true, 1434 - "license": "MIT", 1435 - "dependencies": { 1436 - "@vitest/pretty-format": "3.0.9", 1437 - "magic-string": "^0.30.17", 1438 - "pathe": "^2.0.3" 1439 - }, 1440 - "funding": { 1441 - "url": "https://opencollective.com/vitest" 1442 - } 1443 - }, 1444 - "node_modules/@vitest/snapshot/node_modules/@vitest/pretty-format": { 1445 - "version": "3.0.9", 1446 - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.0.9.tgz", 1447 - "integrity": "sha512-OW9F8t2J3AwFEwENg3yMyKWweF7oRJlMyHOMIhO5F3n0+cgQAJZBjNgrF8dLwFTEXl5jUqBLXd9QyyKv8zEcmA==", 1448 - "dev": true, 1449 - "license": "MIT", 1450 - "dependencies": { 1451 - "tinyrainbow": "^2.0.0" 1452 - }, 1453 - "funding": { 1454 - "url": "https://opencollective.com/vitest" 1455 - } 1456 - }, 1457 - "node_modules/@vitest/spy": { 1458 - "version": "3.0.9", 1459 - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.0.9.tgz", 1460 - "integrity": "sha512-/CcK2UDl0aQ2wtkp3YVWldrpLRNCfVcIOFGlVGKO4R5eajsH393Z1yiXLVQ7vWsj26JOEjeZI0x5sm5P4OGUNQ==", 1461 - "dev": true, 1462 - "license": "MIT", 1463 - "dependencies": { 1464 - "tinyspy": "^3.0.2" 1465 - }, 1466 - "funding": { 1467 - "url": "https://opencollective.com/vitest" 1468 - } 1469 - }, 1470 - "node_modules/@vitest/utils": { 1471 - "version": "3.0.9", 1472 - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.0.9.tgz", 1473 - "integrity": "sha512-ilHM5fHhZ89MCp5aAaM9uhfl1c2JdxVxl3McqsdVyVNN6JffnEen8UMCdRTzOhGXNQGo5GNL9QugHrz727Wnng==", 1474 - "dev": true, 1475 - "license": "MIT", 1476 - "dependencies": { 1477 - "@vitest/pretty-format": "3.0.9", 1478 - "loupe": "^3.1.3", 1479 - "tinyrainbow": "^2.0.0" 1480 - }, 1481 - "funding": { 1482 - "url": "https://opencollective.com/vitest" 1483 - } 1484 - }, 1485 - "node_modules/@vitest/utils/node_modules/@vitest/pretty-format": { 1486 - "version": "3.0.9", 1487 - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.0.9.tgz", 1488 - "integrity": "sha512-OW9F8t2J3AwFEwENg3yMyKWweF7oRJlMyHOMIhO5F3n0+cgQAJZBjNgrF8dLwFTEXl5jUqBLXd9QyyKv8zEcmA==", 1489 - "dev": true, 1490 - "license": "MIT", 1491 - "dependencies": { 1492 - "tinyrainbow": "^2.0.0" 1493 - }, 1494 - "funding": { 1495 - "url": "https://opencollective.com/vitest" 1496 - } 1497 - }, 1498 - "node_modules/acorn": { 1499 - "version": "8.14.0", 1500 - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", 1501 - "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", 1502 - "dev": true, 1503 - "license": "MIT", 1504 - "bin": { 1505 - "acorn": "bin/acorn" 1506 - }, 1507 - "engines": { 1508 - "node": ">=0.4.0" 1509 - } 1510 - }, 1511 - "node_modules/acorn-walk": { 1512 - "version": "8.3.2", 1513 - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", 1514 - "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", 1515 - "dev": true, 1516 - "license": "MIT", 1517 - "engines": { 1518 - "node": ">=0.4.0" 1519 - } 1520 - }, 1521 - "node_modules/agent-base": { 1522 - "version": "7.1.3", 1523 - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", 1524 - "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", 1525 - "license": "MIT", 1526 - "engines": { 1527 - "node": ">= 14" 1528 - } 1529 - }, 1530 - "node_modules/as-table": { 1531 - "version": "1.0.55", 1532 - "resolved": "https://registry.npmjs.org/as-table/-/as-table-1.0.55.tgz", 1533 - "integrity": "sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==", 1534 - "dev": true, 1535 - "license": "MIT", 1536 - "dependencies": { 1537 - "printable-characters": "^1.0.42" 1538 - } 1539 - }, 1540 - "node_modules/assertion-error": { 1541 - "version": "2.0.1", 1542 - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", 1543 - "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", 1544 - "dev": true, 1545 - "license": "MIT", 1546 - "engines": { 1547 - "node": ">=12" 1548 - } 1549 - }, 1550 - "node_modules/base64-js": { 1551 - "version": "1.5.1", 1552 - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", 1553 - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", 1554 - "funding": [ 1555 - { 1556 - "type": "github", 1557 - "url": "https://github.com/sponsors/feross" 1558 - }, 1559 - { 1560 - "type": "patreon", 1561 - "url": "https://www.patreon.com/feross" 1562 - }, 1563 - { 1564 - "type": "consulting", 1565 - "url": "https://feross.org/support" 1566 - } 1567 - ], 1568 - "license": "MIT" 1569 - }, 1570 - "node_modules/bignumber.js": { 1571 - "version": "9.3.0", 1572 - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.0.tgz", 1573 - "integrity": "sha512-EM7aMFTXbptt/wZdMlBv2t8IViwQL+h6SLHosp8Yf0dqJMTnY6iL32opnAB6kAdL0SZPuvcAzFr31o0c/R3/RA==", 1574 - "license": "MIT", 1575 - "engines": { 1576 - "node": "*" 1577 - } 1578 - }, 1579 - "node_modules/birpc": { 1580 - "version": "0.2.14", 1581 - "resolved": "https://registry.npmjs.org/birpc/-/birpc-0.2.14.tgz", 1582 - "integrity": "sha512-37FHE8rqsYM5JEKCnXFyHpBCzvgHEExwVVTq+nUmloInU7l8ezD1TpOhKpS8oe1DTYFqEK27rFZVKG43oTqXRA==", 1583 - "dev": true, 1584 - "license": "MIT", 1585 - "funding": { 1586 - "url": "https://github.com/sponsors/antfu" 1587 - } 1588 - }, 1589 - "node_modules/blake3-wasm": { 1590 - "version": "2.1.5", 1591 - "resolved": "https://registry.npmjs.org/blake3-wasm/-/blake3-wasm-2.1.5.tgz", 1592 - "integrity": "sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==", 1593 - "dev": true, 1594 - "license": "MIT" 1595 - }, 1596 - "node_modules/buffer-equal-constant-time": { 1597 - "version": "1.0.1", 1598 - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", 1599 - "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", 1600 - "license": "BSD-3-Clause" 1601 - }, 1602 - "node_modules/cac": { 1603 - "version": "6.7.14", 1604 - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", 1605 - "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", 1606 - "dev": true, 1607 - "license": "MIT", 1608 - "engines": { 1609 - "node": ">=8" 1610 - } 1611 - }, 1612 - "node_modules/chai": { 1613 - "version": "5.2.0", 1614 - "resolved": "https://registry.npmjs.org/chai/-/chai-5.2.0.tgz", 1615 - "integrity": "sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==", 1616 - "dev": true, 1617 - "license": "MIT", 1618 - "dependencies": { 1619 - "assertion-error": "^2.0.1", 1620 - "check-error": "^2.1.1", 1621 - "deep-eql": "^5.0.1", 1622 - "loupe": "^3.1.0", 1623 - "pathval": "^2.0.0" 1624 - }, 1625 - "engines": { 1626 - "node": ">=12" 1627 - } 1628 - }, 1629 - "node_modules/check-error": { 1630 - "version": "2.1.1", 1631 - "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", 1632 - "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", 1633 - "dev": true, 1634 - "license": "MIT", 1635 - "engines": { 1636 - "node": ">= 16" 1637 - } 1638 - }, 1639 - "node_modules/cjs-module-lexer": { 1640 - "version": "1.4.3", 1641 - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz", 1642 - "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==", 1643 - "dev": true, 1644 - "license": "MIT" 1645 - }, 1646 - "node_modules/color": { 1647 - "version": "4.2.3", 1648 - "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", 1649 - "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", 1650 - "dev": true, 1651 - "license": "MIT", 1652 - "optional": true, 1653 - "dependencies": { 1654 - "color-convert": "^2.0.1", 1655 - "color-string": "^1.9.0" 1656 - }, 1657 - "engines": { 1658 - "node": ">=12.5.0" 1659 - } 1660 - }, 1661 - "node_modules/color-convert": { 1662 - "version": "2.0.1", 1663 - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 1664 - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 1665 - "dev": true, 1666 - "license": "MIT", 1667 - "optional": true, 1668 - "dependencies": { 1669 - "color-name": "~1.1.4" 1670 - }, 1671 - "engines": { 1672 - "node": ">=7.0.0" 1673 - } 1674 - }, 1675 - "node_modules/color-name": { 1676 - "version": "1.1.4", 1677 - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 1678 - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 1679 - "dev": true, 1680 - "license": "MIT", 1681 - "optional": true 1682 - }, 1683 - "node_modules/color-string": { 1684 - "version": "1.9.1", 1685 - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", 1686 - "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", 1687 - "dev": true, 1688 - "license": "MIT", 1689 - "optional": true, 1690 - "dependencies": { 1691 - "color-name": "^1.0.0", 1692 - "simple-swizzle": "^0.2.2" 1693 - } 1694 - }, 1695 - "node_modules/cookie": { 1696 - "version": "0.7.2", 1697 - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", 1698 - "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", 1699 - "dev": true, 1700 - "license": "MIT", 1701 - "engines": { 1702 - "node": ">= 0.6" 1703 - } 1704 - }, 1705 - "node_modules/data-uri-to-buffer": { 1706 - "version": "2.0.2", 1707 - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-2.0.2.tgz", 1708 - "integrity": "sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==", 1709 - "dev": true, 1710 - "license": "MIT" 1711 - }, 1712 - "node_modules/debug": { 1713 - "version": "4.4.1", 1714 - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", 1715 - "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", 1716 - "license": "MIT", 1717 - "dependencies": { 1718 - "ms": "^2.1.3" 1719 - }, 1720 - "engines": { 1721 - "node": ">=6.0" 1722 - }, 1723 - "peerDependenciesMeta": { 1724 - "supports-color": { 1725 - "optional": true 1726 - } 1727 - } 1728 - }, 1729 - "node_modules/deep-eql": { 1730 - "version": "5.0.2", 1731 - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", 1732 - "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", 1733 - "dev": true, 1734 - "license": "MIT", 1735 - "engines": { 1736 - "node": ">=6" 1737 - } 1738 - }, 1739 - "node_modules/defu": { 1740 - "version": "6.1.4", 1741 - "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", 1742 - "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==", 1743 - "dev": true, 1744 - "license": "MIT" 1745 - }, 1746 - "node_modules/detect-libc": { 1747 - "version": "2.0.4", 1748 - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", 1749 - "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", 1750 - "dev": true, 1751 - "license": "Apache-2.0", 1752 - "optional": true, 1753 - "engines": { 1754 - "node": ">=8" 1755 - } 1756 - }, 1757 - "node_modules/devalue": { 1758 - "version": "4.3.3", 1759 - "resolved": "https://registry.npmjs.org/devalue/-/devalue-4.3.3.tgz", 1760 - "integrity": "sha512-UH8EL6H2ifcY8TbD2QsxwCC/pr5xSwPvv85LrLXVihmHVC3T3YqTCIwnR5ak0yO1KYqlxrPVOA/JVZJYPy2ATg==", 1761 - "dev": true, 1762 - "license": "MIT" 1763 - }, 1764 - "node_modules/ecdsa-sig-formatter": { 1765 - "version": "1.0.11", 1766 - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", 1767 - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", 1768 - "license": "Apache-2.0", 1769 - "dependencies": { 1770 - "safe-buffer": "^5.0.1" 1771 - } 1772 - }, 1773 - "node_modules/es-module-lexer": { 1774 - "version": "1.7.0", 1775 - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", 1776 - "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", 1777 - "dev": true, 1778 - "license": "MIT" 1779 - }, 1780 - "node_modules/esbuild": { 1781 - "version": "0.25.4", 1782 - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.4.tgz", 1783 - "integrity": "sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==", 1784 - "dev": true, 1785 - "hasInstallScript": true, 1786 - "license": "MIT", 1787 - "bin": { 1788 - "esbuild": "bin/esbuild" 1789 - }, 1790 - "engines": { 1791 - "node": ">=18" 1792 - }, 1793 - "optionalDependencies": { 1794 - "@esbuild/aix-ppc64": "0.25.4", 1795 - "@esbuild/android-arm": "0.25.4", 1796 - "@esbuild/android-arm64": "0.25.4", 1797 - "@esbuild/android-x64": "0.25.4", 1798 - "@esbuild/darwin-arm64": "0.25.4", 1799 - "@esbuild/darwin-x64": "0.25.4", 1800 - "@esbuild/freebsd-arm64": "0.25.4", 1801 - "@esbuild/freebsd-x64": "0.25.4", 1802 - "@esbuild/linux-arm": "0.25.4", 1803 - "@esbuild/linux-arm64": "0.25.4", 1804 - "@esbuild/linux-ia32": "0.25.4", 1805 - "@esbuild/linux-loong64": "0.25.4", 1806 - "@esbuild/linux-mips64el": "0.25.4", 1807 - "@esbuild/linux-ppc64": "0.25.4", 1808 - "@esbuild/linux-riscv64": "0.25.4", 1809 - "@esbuild/linux-s390x": "0.25.4", 1810 - "@esbuild/linux-x64": "0.25.4", 1811 - "@esbuild/netbsd-arm64": "0.25.4", 1812 - "@esbuild/netbsd-x64": "0.25.4", 1813 - "@esbuild/openbsd-arm64": "0.25.4", 1814 - "@esbuild/openbsd-x64": "0.25.4", 1815 - "@esbuild/sunos-x64": "0.25.4", 1816 - "@esbuild/win32-arm64": "0.25.4", 1817 - "@esbuild/win32-ia32": "0.25.4", 1818 - "@esbuild/win32-x64": "0.25.4" 1819 - } 1820 - }, 1821 - "node_modules/estree-walker": { 1822 - "version": "3.0.3", 1823 - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", 1824 - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", 1825 - "dev": true, 1826 - "license": "MIT", 1827 - "dependencies": { 1828 - "@types/estree": "^1.0.0" 1829 - } 1830 - }, 1831 - "node_modules/exit-hook": { 1832 - "version": "2.2.1", 1833 - "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-2.2.1.tgz", 1834 - "integrity": "sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==", 1835 - "dev": true, 1836 - "license": "MIT", 1837 - "engines": { 1838 - "node": ">=6" 1839 - }, 1840 - "funding": { 1841 - "url": "https://github.com/sponsors/sindresorhus" 1842 - } 1843 - }, 1844 - "node_modules/expect-type": { 1845 - "version": "1.2.1", 1846 - "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.2.1.tgz", 1847 - "integrity": "sha512-/kP8CAwxzLVEeFrMm4kMmy4CCDlpipyA7MYLVrdJIkV0fYF0UaigQHRsxHiuY/GEea+bh4KSv3TIlgr+2UL6bw==", 1848 - "dev": true, 1849 - "license": "Apache-2.0", 1850 - "engines": { 1851 - "node": ">=12.0.0" 1852 - } 1853 - }, 1854 - "node_modules/exsolve": { 1855 - "version": "1.0.5", 1856 - "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.5.tgz", 1857 - "integrity": "sha512-pz5dvkYYKQ1AHVrgOzBKWeP4u4FRb3a6DNK2ucr0OoNwYIU4QWsJ+NM36LLzORT+z845MzKHHhpXiUF5nvQoJg==", 1858 - "dev": true, 1859 - "license": "MIT" 1860 - }, 1861 - "node_modules/extend": { 1862 - "version": "3.0.2", 1863 - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", 1864 - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", 1865 - "license": "MIT" 1866 - }, 1867 - "node_modules/fdir": { 1868 - "version": "6.4.4", 1869 - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", 1870 - "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", 1871 - "dev": true, 1872 - "license": "MIT", 1873 - "peerDependencies": { 1874 - "picomatch": "^3 || ^4" 1875 - }, 1876 - "peerDependenciesMeta": { 1877 - "picomatch": { 1878 - "optional": true 1879 - } 1880 - } 1881 - }, 1882 - "node_modules/fsevents": { 1883 - "version": "2.3.3", 1884 - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", 1885 - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", 1886 - "dev": true, 1887 - "hasInstallScript": true, 1888 - "license": "MIT", 1889 - "optional": true, 1890 - "os": [ 1891 - "darwin" 1892 - ], 1893 - "engines": { 1894 - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 1895 - } 1896 - }, 1897 - "node_modules/gaxios": { 1898 - "version": "6.7.1", 1899 - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.7.1.tgz", 1900 - "integrity": "sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==", 1901 - "license": "Apache-2.0", 1902 - "dependencies": { 1903 - "extend": "^3.0.2", 1904 - "https-proxy-agent": "^7.0.1", 1905 - "is-stream": "^2.0.0", 1906 - "node-fetch": "^2.6.9", 1907 - "uuid": "^9.0.1" 1908 - }, 1909 - "engines": { 1910 - "node": ">=14" 1911 - } 1912 - }, 1913 - "node_modules/gcp-metadata": { 1914 - "version": "6.1.1", 1915 - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-6.1.1.tgz", 1916 - "integrity": "sha512-a4tiq7E0/5fTjxPAaH4jpjkSv/uCaU2p5KC6HVGrvl0cDjA8iBZv4vv1gyzlmK0ZUKqwpOyQMKzZQe3lTit77A==", 1917 - "license": "Apache-2.0", 1918 - "dependencies": { 1919 - "gaxios": "^6.1.1", 1920 - "google-logging-utils": "^0.0.2", 1921 - "json-bigint": "^1.0.0" 1922 - }, 1923 - "engines": { 1924 - "node": ">=14" 1925 - } 1926 - }, 1927 - "node_modules/get-source": { 1928 - "version": "2.0.12", 1929 - "resolved": "https://registry.npmjs.org/get-source/-/get-source-2.0.12.tgz", 1930 - "integrity": "sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==", 1931 - "dev": true, 1932 - "license": "Unlicense", 1933 - "dependencies": { 1934 - "data-uri-to-buffer": "^2.0.0", 1935 - "source-map": "^0.6.1" 1936 - } 1937 - }, 1938 - "node_modules/glob-to-regexp": { 1939 - "version": "0.4.1", 1940 - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", 1941 - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", 1942 - "dev": true, 1943 - "license": "BSD-2-Clause" 1944 - }, 1945 - "node_modules/google-auth-library": { 1946 - "version": "9.15.1", 1947 - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-9.15.1.tgz", 1948 - "integrity": "sha512-Jb6Z0+nvECVz+2lzSMt9u98UsoakXxA2HGHMCxh+so3n90XgYWkq5dur19JAJV7ONiJY22yBTyJB1TSkvPq9Ng==", 1949 - "license": "Apache-2.0", 1950 - "dependencies": { 1951 - "base64-js": "^1.3.0", 1952 - "ecdsa-sig-formatter": "^1.0.11", 1953 - "gaxios": "^6.1.1", 1954 - "gcp-metadata": "^6.1.0", 1955 - "gtoken": "^7.0.0", 1956 - "jws": "^4.0.0" 1957 - }, 1958 - "engines": { 1959 - "node": ">=14" 1960 - } 1961 - }, 1962 - "node_modules/google-logging-utils": { 1963 - "version": "0.0.2", 1964 - "resolved": "https://registry.npmjs.org/google-logging-utils/-/google-logging-utils-0.0.2.tgz", 1965 - "integrity": "sha512-NEgUnEcBiP5HrPzufUkBzJOD/Sxsco3rLNo1F1TNf7ieU8ryUzBhqba8r756CjLX7rn3fHl6iLEwPYuqpoKgQQ==", 1966 - "license": "Apache-2.0", 1967 - "engines": { 1968 - "node": ">=14" 1969 - } 1970 - }, 1971 - "node_modules/gtoken": { 1972 - "version": "7.1.0", 1973 - "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-7.1.0.tgz", 1974 - "integrity": "sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==", 1975 - "license": "MIT", 1976 - "dependencies": { 1977 - "gaxios": "^6.0.0", 1978 - "jws": "^4.0.0" 1979 - }, 1980 - "engines": { 1981 - "node": ">=14.0.0" 1982 - } 1983 - }, 1984 - "node_modules/hono": { 1985 - "version": "4.7.9", 1986 - "resolved": "https://registry.npmjs.org/hono/-/hono-4.7.9.tgz", 1987 - "integrity": "sha512-/EsCoR5h7N4yu01TDu9GMCCJa6ZLk5ZJIWFFGNawAXmd1Tp53+Wir4xm0D2X19bbykWUlzQG0+BvPAji6p9E8Q==", 1988 - "license": "MIT", 1989 - "engines": { 1990 - "node": ">=16.9.0" 1991 - } 1992 - }, 1993 - "node_modules/https-proxy-agent": { 1994 - "version": "7.0.6", 1995 - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", 1996 - "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", 1997 - "license": "MIT", 1998 - "dependencies": { 1999 - "agent-base": "^7.1.2", 2000 - "debug": "4" 2001 - }, 2002 - "engines": { 2003 - "node": ">= 14" 2004 - } 2005 - }, 2006 - "node_modules/is-arrayish": { 2007 - "version": "0.3.2", 2008 - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", 2009 - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", 2010 - "dev": true, 2011 - "license": "MIT", 2012 - "optional": true 2013 - }, 2014 - "node_modules/is-stream": { 2015 - "version": "2.0.1", 2016 - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", 2017 - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", 2018 - "license": "MIT", 2019 - "engines": { 2020 - "node": ">=8" 2021 - }, 2022 - "funding": { 2023 - "url": "https://github.com/sponsors/sindresorhus" 2024 - } 2025 - }, 2026 - "node_modules/jose": { 2027 - "version": "6.0.11", 2028 - "resolved": "https://registry.npmjs.org/jose/-/jose-6.0.11.tgz", 2029 - "integrity": "sha512-QxG7EaliDARm1O1S8BGakqncGT9s25bKL1WSf6/oa17Tkqwi8D2ZNglqCF+DsYF88/rV66Q/Q2mFAy697E1DUg==", 2030 - "license": "MIT", 2031 - "funding": { 2032 - "url": "https://github.com/sponsors/panva" 2033 - } 2034 - }, 2035 - "node_modules/json-bigint": { 2036 - "version": "1.0.0", 2037 - "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", 2038 - "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", 2039 - "license": "MIT", 2040 - "dependencies": { 2041 - "bignumber.js": "^9.0.0" 2042 - } 2043 - }, 2044 - "node_modules/jwa": { 2045 - "version": "2.0.1", 2046 - "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz", 2047 - "integrity": "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==", 2048 - "license": "MIT", 2049 - "dependencies": { 2050 - "buffer-equal-constant-time": "^1.0.1", 2051 - "ecdsa-sig-formatter": "1.0.11", 2052 - "safe-buffer": "^5.0.1" 2053 - } 2054 - }, 2055 - "node_modules/jws": { 2056 - "version": "4.0.0", 2057 - "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", 2058 - "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", 2059 - "license": "MIT", 2060 - "dependencies": { 2061 - "jwa": "^2.0.0", 2062 - "safe-buffer": "^5.0.1" 2063 - } 2064 - }, 2065 - "node_modules/loupe": { 2066 - "version": "3.1.3", 2067 - "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.3.tgz", 2068 - "integrity": "sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==", 2069 - "dev": true, 2070 - "license": "MIT" 2071 - }, 2072 - "node_modules/magic-string": { 2073 - "version": "0.30.17", 2074 - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", 2075 - "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", 2076 - "dev": true, 2077 - "license": "MIT", 2078 - "dependencies": { 2079 - "@jridgewell/sourcemap-codec": "^1.5.0" 2080 - } 2081 - }, 2082 - "node_modules/mime": { 2083 - "version": "3.0.0", 2084 - "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", 2085 - "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", 2086 - "dev": true, 2087 - "license": "MIT", 2088 - "bin": { 2089 - "mime": "cli.js" 2090 - }, 2091 - "engines": { 2092 - "node": ">=10.0.0" 2093 - } 2094 - }, 2095 - "node_modules/miniflare": { 2096 - "version": "4.20250508.0", 2097 - "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-4.20250508.0.tgz", 2098 - "integrity": "sha512-NvA1W8l7CRSOoaxKoRUpE4YfkNlalekShcV96o9KqGctWd9wydUXAhg4q0KqkDS04CjMNRSKG2kSI3B2BsOxXA==", 2099 - "dev": true, 2100 - "license": "MIT", 2101 - "dependencies": { 2102 - "@cspotcode/source-map-support": "0.8.1", 2103 - "acorn": "8.14.0", 2104 - "acorn-walk": "8.3.2", 2105 - "exit-hook": "2.2.1", 2106 - "glob-to-regexp": "0.4.1", 2107 - "stoppable": "1.1.0", 2108 - "undici": "^5.28.5", 2109 - "workerd": "1.20250508.0", 2110 - "ws": "8.18.0", 2111 - "youch": "3.3.4", 2112 - "zod": "3.22.3" 2113 - }, 2114 - "bin": { 2115 - "miniflare": "bootstrap.js" 2116 - }, 2117 - "engines": { 2118 - "node": ">=18.0.0" 2119 - } 2120 - }, 2121 - "node_modules/miniflare/node_modules/zod": { 2122 - "version": "3.22.3", 2123 - "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.3.tgz", 2124 - "integrity": "sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==", 2125 - "dev": true, 2126 - "license": "MIT", 2127 - "funding": { 2128 - "url": "https://github.com/sponsors/colinhacks" 2129 - } 2130 - }, 2131 - "node_modules/ms": { 2132 - "version": "2.1.3", 2133 - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 2134 - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", 2135 - "license": "MIT" 2136 - }, 2137 - "node_modules/mustache": { 2138 - "version": "4.2.0", 2139 - "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", 2140 - "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", 2141 - "dev": true, 2142 - "license": "MIT", 2143 - "bin": { 2144 - "mustache": "bin/mustache" 2145 - } 2146 - }, 2147 - "node_modules/nanoid": { 2148 - "version": "3.3.11", 2149 - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", 2150 - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", 2151 - "dev": true, 2152 - "funding": [ 2153 - { 2154 - "type": "github", 2155 - "url": "https://github.com/sponsors/ai" 2156 - } 2157 - ], 2158 - "license": "MIT", 2159 - "bin": { 2160 - "nanoid": "bin/nanoid.cjs" 2161 - }, 2162 - "engines": { 2163 - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 2164 - } 2165 - }, 2166 - "node_modules/node-fetch": { 2167 - "version": "2.7.0", 2168 - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", 2169 - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", 2170 - "license": "MIT", 2171 - "dependencies": { 2172 - "whatwg-url": "^5.0.0" 2173 - }, 2174 - "engines": { 2175 - "node": "4.x || >=6.0.0" 2176 - }, 2177 - "peerDependencies": { 2178 - "encoding": "^0.1.0" 2179 - }, 2180 - "peerDependenciesMeta": { 2181 - "encoding": { 2182 - "optional": true 2183 - } 2184 - } 2185 - }, 2186 - "node_modules/ohash": { 2187 - "version": "2.0.11", 2188 - "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz", 2189 - "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==", 2190 - "dev": true, 2191 - "license": "MIT" 2192 - }, 2193 - "node_modules/path-to-regexp": { 2194 - "version": "6.3.0", 2195 - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", 2196 - "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", 2197 - "dev": true, 2198 - "license": "MIT" 2199 - }, 2200 - "node_modules/pathe": { 2201 - "version": "2.0.3", 2202 - "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", 2203 - "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", 2204 - "dev": true, 2205 - "license": "MIT" 2206 - }, 2207 - "node_modules/pathval": { 2208 - "version": "2.0.0", 2209 - "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", 2210 - "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", 2211 - "dev": true, 2212 - "license": "MIT", 2213 - "engines": { 2214 - "node": ">= 14.16" 2215 - } 2216 - }, 2217 - "node_modules/picocolors": { 2218 - "version": "1.1.1", 2219 - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", 2220 - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", 2221 - "dev": true, 2222 - "license": "ISC" 2223 - }, 2224 - "node_modules/picomatch": { 2225 - "version": "4.0.2", 2226 - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", 2227 - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", 2228 - "dev": true, 2229 - "license": "MIT", 2230 - "engines": { 2231 - "node": ">=12" 2232 - }, 2233 - "funding": { 2234 - "url": "https://github.com/sponsors/jonschlinkert" 2235 - } 2236 - }, 2237 - "node_modules/postcss": { 2238 - "version": "8.5.3", 2239 - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", 2240 - "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", 2241 - "dev": true, 2242 - "funding": [ 2243 - { 2244 - "type": "opencollective", 2245 - "url": "https://opencollective.com/postcss/" 2246 - }, 2247 - { 2248 - "type": "tidelift", 2249 - "url": "https://tidelift.com/funding/github/npm/postcss" 2250 - }, 2251 - { 2252 - "type": "github", 2253 - "url": "https://github.com/sponsors/ai" 2254 - } 2255 - ], 2256 - "license": "MIT", 2257 - "dependencies": { 2258 - "nanoid": "^3.3.8", 2259 - "picocolors": "^1.1.1", 2260 - "source-map-js": "^1.2.1" 2261 - }, 2262 - "engines": { 2263 - "node": "^10 || ^12 || >=14" 2264 - } 2265 - }, 2266 - "node_modules/printable-characters": { 2267 - "version": "1.0.42", 2268 - "resolved": "https://registry.npmjs.org/printable-characters/-/printable-characters-1.0.42.tgz", 2269 - "integrity": "sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==", 2270 - "dev": true, 2271 - "license": "Unlicense" 2272 - }, 2273 - "node_modules/rollup": { 2274 - "version": "4.40.2", 2275 - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.2.tgz", 2276 - "integrity": "sha512-tfUOg6DTP4rhQ3VjOO6B4wyrJnGOX85requAXvqYTHsOgb2TFJdZ3aWpT8W2kPoypSGP7dZUyzxJ9ee4buM5Fg==", 2277 - "dev": true, 2278 - "license": "MIT", 2279 - "dependencies": { 2280 - "@types/estree": "1.0.7" 2281 - }, 2282 - "bin": { 2283 - "rollup": "dist/bin/rollup" 2284 - }, 2285 - "engines": { 2286 - "node": ">=18.0.0", 2287 - "npm": ">=8.0.0" 2288 - }, 2289 - "optionalDependencies": { 2290 - "@rollup/rollup-android-arm-eabi": "4.40.2", 2291 - "@rollup/rollup-android-arm64": "4.40.2", 2292 - "@rollup/rollup-darwin-arm64": "4.40.2", 2293 - "@rollup/rollup-darwin-x64": "4.40.2", 2294 - "@rollup/rollup-freebsd-arm64": "4.40.2", 2295 - "@rollup/rollup-freebsd-x64": "4.40.2", 2296 - "@rollup/rollup-linux-arm-gnueabihf": "4.40.2", 2297 - "@rollup/rollup-linux-arm-musleabihf": "4.40.2", 2298 - "@rollup/rollup-linux-arm64-gnu": "4.40.2", 2299 - "@rollup/rollup-linux-arm64-musl": "4.40.2", 2300 - "@rollup/rollup-linux-loongarch64-gnu": "4.40.2", 2301 - "@rollup/rollup-linux-powerpc64le-gnu": "4.40.2", 2302 - "@rollup/rollup-linux-riscv64-gnu": "4.40.2", 2303 - "@rollup/rollup-linux-riscv64-musl": "4.40.2", 2304 - "@rollup/rollup-linux-s390x-gnu": "4.40.2", 2305 - "@rollup/rollup-linux-x64-gnu": "4.40.2", 2306 - "@rollup/rollup-linux-x64-musl": "4.40.2", 2307 - "@rollup/rollup-win32-arm64-msvc": "4.40.2", 2308 - "@rollup/rollup-win32-ia32-msvc": "4.40.2", 2309 - "@rollup/rollup-win32-x64-msvc": "4.40.2", 2310 - "fsevents": "~2.3.2" 2311 - } 2312 - }, 2313 - "node_modules/safe-buffer": { 2314 - "version": "5.2.1", 2315 - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 2316 - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", 2317 - "funding": [ 2318 - { 2319 - "type": "github", 2320 - "url": "https://github.com/sponsors/feross" 2321 - }, 2322 - { 2323 - "type": "patreon", 2324 - "url": "https://www.patreon.com/feross" 2325 - }, 2326 - { 2327 - "type": "consulting", 2328 - "url": "https://feross.org/support" 2329 - } 2330 - ], 2331 - "license": "MIT" 2332 - }, 2333 - "node_modules/semver": { 2334 - "version": "7.7.2", 2335 - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", 2336 - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", 2337 - "dev": true, 2338 - "license": "ISC", 2339 - "bin": { 2340 - "semver": "bin/semver.js" 2341 - }, 2342 - "engines": { 2343 - "node": ">=10" 2344 - } 2345 - }, 2346 - "node_modules/sharp": { 2347 - "version": "0.33.5", 2348 - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", 2349 - "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==", 2350 - "dev": true, 2351 - "hasInstallScript": true, 2352 - "license": "Apache-2.0", 2353 - "optional": true, 2354 - "dependencies": { 2355 - "color": "^4.2.3", 2356 - "detect-libc": "^2.0.3", 2357 - "semver": "^7.6.3" 2358 - }, 2359 - "engines": { 2360 - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 2361 - }, 2362 - "funding": { 2363 - "url": "https://opencollective.com/libvips" 2364 - }, 2365 - "optionalDependencies": { 2366 - "@img/sharp-darwin-arm64": "0.33.5", 2367 - "@img/sharp-darwin-x64": "0.33.5", 2368 - "@img/sharp-libvips-darwin-arm64": "1.0.4", 2369 - "@img/sharp-libvips-darwin-x64": "1.0.4", 2370 - "@img/sharp-libvips-linux-arm": "1.0.5", 2371 - "@img/sharp-libvips-linux-arm64": "1.0.4", 2372 - "@img/sharp-libvips-linux-s390x": "1.0.4", 2373 - "@img/sharp-libvips-linux-x64": "1.0.4", 2374 - "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", 2375 - "@img/sharp-libvips-linuxmusl-x64": "1.0.4", 2376 - "@img/sharp-linux-arm": "0.33.5", 2377 - "@img/sharp-linux-arm64": "0.33.5", 2378 - "@img/sharp-linux-s390x": "0.33.5", 2379 - "@img/sharp-linux-x64": "0.33.5", 2380 - "@img/sharp-linuxmusl-arm64": "0.33.5", 2381 - "@img/sharp-linuxmusl-x64": "0.33.5", 2382 - "@img/sharp-wasm32": "0.33.5", 2383 - "@img/sharp-win32-ia32": "0.33.5", 2384 - "@img/sharp-win32-x64": "0.33.5" 2385 - } 2386 - }, 2387 - "node_modules/siginfo": { 2388 - "version": "2.0.0", 2389 - "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", 2390 - "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", 2391 - "dev": true, 2392 - "license": "ISC" 2393 - }, 2394 - "node_modules/simple-swizzle": { 2395 - "version": "0.2.2", 2396 - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", 2397 - "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", 2398 - "dev": true, 2399 - "license": "MIT", 2400 - "optional": true, 2401 - "dependencies": { 2402 - "is-arrayish": "^0.3.1" 2403 - } 2404 - }, 2405 - "node_modules/source-map": { 2406 - "version": "0.6.1", 2407 - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 2408 - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 2409 - "dev": true, 2410 - "license": "BSD-3-Clause", 2411 - "engines": { 2412 - "node": ">=0.10.0" 2413 - } 2414 - }, 2415 - "node_modules/source-map-js": { 2416 - "version": "1.2.1", 2417 - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", 2418 - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", 2419 - "dev": true, 2420 - "license": "BSD-3-Clause", 2421 - "engines": { 2422 - "node": ">=0.10.0" 2423 - } 2424 - }, 2425 - "node_modules/stackback": { 2426 - "version": "0.0.2", 2427 - "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", 2428 - "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", 2429 - "dev": true, 2430 - "license": "MIT" 2431 - }, 2432 - "node_modules/stacktracey": { 2433 - "version": "2.1.8", 2434 - "resolved": "https://registry.npmjs.org/stacktracey/-/stacktracey-2.1.8.tgz", 2435 - "integrity": "sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==", 2436 - "dev": true, 2437 - "license": "Unlicense", 2438 - "dependencies": { 2439 - "as-table": "^1.0.36", 2440 - "get-source": "^2.0.12" 2441 - } 2442 - }, 2443 - "node_modules/std-env": { 2444 - "version": "3.9.0", 2445 - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz", 2446 - "integrity": "sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==", 2447 - "dev": true, 2448 - "license": "MIT" 2449 - }, 2450 - "node_modules/stoppable": { 2451 - "version": "1.1.0", 2452 - "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz", 2453 - "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==", 2454 - "dev": true, 2455 - "license": "MIT", 2456 - "engines": { 2457 - "node": ">=4", 2458 - "npm": ">=6" 2459 - } 2460 - }, 2461 - "node_modules/tinybench": { 2462 - "version": "2.9.0", 2463 - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", 2464 - "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", 2465 - "dev": true, 2466 - "license": "MIT" 2467 - }, 2468 - "node_modules/tinyexec": { 2469 - "version": "0.3.2", 2470 - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", 2471 - "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", 2472 - "dev": true, 2473 - "license": "MIT" 2474 - }, 2475 - "node_modules/tinyglobby": { 2476 - "version": "0.2.13", 2477 - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz", 2478 - "integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==", 2479 - "dev": true, 2480 - "license": "MIT", 2481 - "dependencies": { 2482 - "fdir": "^6.4.4", 2483 - "picomatch": "^4.0.2" 2484 - }, 2485 - "engines": { 2486 - "node": ">=12.0.0" 2487 - }, 2488 - "funding": { 2489 - "url": "https://github.com/sponsors/SuperchupuDev" 2490 - } 2491 - }, 2492 - "node_modules/tinypool": { 2493 - "version": "1.0.2", 2494 - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.2.tgz", 2495 - "integrity": "sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==", 2496 - "dev": true, 2497 - "license": "MIT", 2498 - "engines": { 2499 - "node": "^18.0.0 || >=20.0.0" 2500 - } 2501 - }, 2502 - "node_modules/tinyrainbow": { 2503 - "version": "2.0.0", 2504 - "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz", 2505 - "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==", 2506 - "dev": true, 2507 - "license": "MIT", 2508 - "engines": { 2509 - "node": ">=14.0.0" 2510 - } 2511 - }, 2512 - "node_modules/tinyspy": { 2513 - "version": "3.0.2", 2514 - "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz", 2515 - "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==", 2516 - "dev": true, 2517 - "license": "MIT", 2518 - "engines": { 2519 - "node": ">=14.0.0" 2520 - } 2521 - }, 2522 - "node_modules/tr46": { 2523 - "version": "0.0.3", 2524 - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", 2525 - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", 2526 - "license": "MIT" 2527 - }, 2528 - "node_modules/tslib": { 2529 - "version": "2.8.1", 2530 - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", 2531 - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", 2532 - "dev": true, 2533 - "license": "0BSD", 2534 - "optional": true 2535 - }, 2536 - "node_modules/typescript": { 2537 - "version": "5.8.3", 2538 - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", 2539 - "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", 2540 - "dev": true, 2541 - "license": "Apache-2.0", 2542 - "bin": { 2543 - "tsc": "bin/tsc", 2544 - "tsserver": "bin/tsserver" 2545 - }, 2546 - "engines": { 2547 - "node": ">=14.17" 2548 - } 2549 - }, 2550 - "node_modules/ufo": { 2551 - "version": "1.6.1", 2552 - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz", 2553 - "integrity": "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==", 2554 - "dev": true, 2555 - "license": "MIT" 2556 - }, 2557 - "node_modules/undici": { 2558 - "version": "5.29.0", 2559 - "resolved": "https://registry.npmjs.org/undici/-/undici-5.29.0.tgz", 2560 - "integrity": "sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==", 2561 - "dev": true, 2562 - "license": "MIT", 2563 - "dependencies": { 2564 - "@fastify/busboy": "^2.0.0" 2565 - }, 2566 - "engines": { 2567 - "node": ">=14.0" 2568 - } 2569 - }, 2570 - "node_modules/undici-types": { 2571 - "version": "6.21.0", 2572 - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", 2573 - "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", 2574 - "dev": true, 2575 - "license": "MIT" 2576 - }, 2577 - "node_modules/unenv": { 2578 - "version": "2.0.0-rc.15", 2579 - "resolved": "https://registry.npmjs.org/unenv/-/unenv-2.0.0-rc.15.tgz", 2580 - "integrity": "sha512-J/rEIZU8w6FOfLNz/hNKsnY+fFHWnu9MH4yRbSZF3xbbGHovcetXPs7sD+9p8L6CeNC//I9bhRYAOsBt2u7/OA==", 2581 - "dev": true, 2582 - "license": "MIT", 2583 - "dependencies": { 2584 - "defu": "^6.1.4", 2585 - "exsolve": "^1.0.4", 2586 - "ohash": "^2.0.11", 2587 - "pathe": "^2.0.3", 2588 - "ufo": "^1.5.4" 2589 - } 2590 - }, 2591 - "node_modules/uuid": { 2592 - "version": "9.0.1", 2593 - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", 2594 - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", 2595 - "funding": [ 2596 - "https://github.com/sponsors/broofa", 2597 - "https://github.com/sponsors/ctavan" 2598 - ], 2599 - "license": "MIT", 2600 - "bin": { 2601 - "uuid": "dist/bin/uuid" 2602 - } 2603 - }, 2604 - "node_modules/vite": { 2605 - "version": "6.3.5", 2606 - "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz", 2607 - "integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==", 2608 - "dev": true, 2609 - "license": "MIT", 2610 - "dependencies": { 2611 - "esbuild": "^0.25.0", 2612 - "fdir": "^6.4.4", 2613 - "picomatch": "^4.0.2", 2614 - "postcss": "^8.5.3", 2615 - "rollup": "^4.34.9", 2616 - "tinyglobby": "^0.2.13" 2617 - }, 2618 - "bin": { 2619 - "vite": "bin/vite.js" 2620 - }, 2621 - "engines": { 2622 - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" 2623 - }, 2624 - "funding": { 2625 - "url": "https://github.com/vitejs/vite?sponsor=1" 2626 - }, 2627 - "optionalDependencies": { 2628 - "fsevents": "~2.3.3" 2629 - }, 2630 - "peerDependencies": { 2631 - "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", 2632 - "jiti": ">=1.21.0", 2633 - "less": "*", 2634 - "lightningcss": "^1.21.0", 2635 - "sass": "*", 2636 - "sass-embedded": "*", 2637 - "stylus": "*", 2638 - "sugarss": "*", 2639 - "terser": "^5.16.0", 2640 - "tsx": "^4.8.1", 2641 - "yaml": "^2.4.2" 2642 - }, 2643 - "peerDependenciesMeta": { 2644 - "@types/node": { 2645 - "optional": true 2646 - }, 2647 - "jiti": { 2648 - "optional": true 2649 - }, 2650 - "less": { 2651 - "optional": true 2652 - }, 2653 - "lightningcss": { 2654 - "optional": true 2655 - }, 2656 - "sass": { 2657 - "optional": true 2658 - }, 2659 - "sass-embedded": { 2660 - "optional": true 2661 - }, 2662 - "stylus": { 2663 - "optional": true 2664 - }, 2665 - "sugarss": { 2666 - "optional": true 2667 - }, 2668 - "terser": { 2669 - "optional": true 2670 - }, 2671 - "tsx": { 2672 - "optional": true 2673 - }, 2674 - "yaml": { 2675 - "optional": true 2676 - } 2677 - } 2678 - }, 2679 - "node_modules/vite-node": { 2680 - "version": "3.0.9", 2681 - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.0.9.tgz", 2682 - "integrity": "sha512-w3Gdx7jDcuT9cNn9jExXgOyKmf5UOTb6WMHz8LGAm54eS1Elf5OuBhCxl6zJxGhEeIkgsE1WbHuoL0mj/UXqXg==", 2683 - "dev": true, 2684 - "license": "MIT", 2685 - "dependencies": { 2686 - "cac": "^6.7.14", 2687 - "debug": "^4.4.0", 2688 - "es-module-lexer": "^1.6.0", 2689 - "pathe": "^2.0.3", 2690 - "vite": "^5.0.0 || ^6.0.0" 2691 - }, 2692 - "bin": { 2693 - "vite-node": "vite-node.mjs" 2694 - }, 2695 - "engines": { 2696 - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" 2697 - }, 2698 - "funding": { 2699 - "url": "https://opencollective.com/vitest" 2700 - } 2701 - }, 2702 - "node_modules/vitest": { 2703 - "version": "3.0.9", 2704 - "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.0.9.tgz", 2705 - "integrity": "sha512-BbcFDqNyBlfSpATmTtXOAOj71RNKDDvjBM/uPfnxxVGrG+FSH2RQIwgeEngTaTkuU/h0ScFvf+tRcKfYXzBybQ==", 2706 - "dev": true, 2707 - "license": "MIT", 2708 - "dependencies": { 2709 - "@vitest/expect": "3.0.9", 2710 - "@vitest/mocker": "3.0.9", 2711 - "@vitest/pretty-format": "^3.0.9", 2712 - "@vitest/runner": "3.0.9", 2713 - "@vitest/snapshot": "3.0.9", 2714 - "@vitest/spy": "3.0.9", 2715 - "@vitest/utils": "3.0.9", 2716 - "chai": "^5.2.0", 2717 - "debug": "^4.4.0", 2718 - "expect-type": "^1.1.0", 2719 - "magic-string": "^0.30.17", 2720 - "pathe": "^2.0.3", 2721 - "std-env": "^3.8.0", 2722 - "tinybench": "^2.9.0", 2723 - "tinyexec": "^0.3.2", 2724 - "tinypool": "^1.0.2", 2725 - "tinyrainbow": "^2.0.0", 2726 - "vite": "^5.0.0 || ^6.0.0", 2727 - "vite-node": "3.0.9", 2728 - "why-is-node-running": "^2.3.0" 2729 - }, 2730 - "bin": { 2731 - "vitest": "vitest.mjs" 2732 - }, 2733 - "engines": { 2734 - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" 2735 - }, 2736 - "funding": { 2737 - "url": "https://opencollective.com/vitest" 2738 - }, 2739 - "peerDependencies": { 2740 - "@edge-runtime/vm": "*", 2741 - "@types/debug": "^4.1.12", 2742 - "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", 2743 - "@vitest/browser": "3.0.9", 2744 - "@vitest/ui": "3.0.9", 2745 - "happy-dom": "*", 2746 - "jsdom": "*" 2747 - }, 2748 - "peerDependenciesMeta": { 2749 - "@edge-runtime/vm": { 2750 - "optional": true 2751 - }, 2752 - "@types/debug": { 2753 - "optional": true 2754 - }, 2755 - "@types/node": { 2756 - "optional": true 2757 - }, 2758 - "@vitest/browser": { 2759 - "optional": true 2760 - }, 2761 - "@vitest/ui": { 2762 - "optional": true 2763 - }, 2764 - "happy-dom": { 2765 - "optional": true 2766 - }, 2767 - "jsdom": { 2768 - "optional": true 2769 - } 2770 - } 2771 - }, 2772 - "node_modules/webidl-conversions": { 2773 - "version": "3.0.1", 2774 - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", 2775 - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", 2776 - "license": "BSD-2-Clause" 2777 - }, 2778 - "node_modules/whatwg-url": { 2779 - "version": "5.0.0", 2780 - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", 2781 - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", 2782 - "license": "MIT", 2783 - "dependencies": { 2784 - "tr46": "~0.0.3", 2785 - "webidl-conversions": "^3.0.0" 2786 - } 2787 - }, 2788 - "node_modules/why-is-node-running": { 2789 - "version": "2.3.0", 2790 - "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", 2791 - "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", 2792 - "dev": true, 2793 - "license": "MIT", 2794 - "dependencies": { 2795 - "siginfo": "^2.0.0", 2796 - "stackback": "0.0.2" 2797 - }, 2798 - "bin": { 2799 - "why-is-node-running": "cli.js" 2800 - }, 2801 - "engines": { 2802 - "node": ">=8" 2803 - } 2804 - }, 2805 - "node_modules/workerd": { 2806 - "version": "1.20250508.0", 2807 - "resolved": "https://registry.npmjs.org/workerd/-/workerd-1.20250508.0.tgz", 2808 - "integrity": "sha512-ffLxe7dXSuGoA6jb3Qx2SClIV1aLHfJQ6RhGhzYHjQgv7dL6fdUOSIIGgzmu2mRKs+WFSujp6c8WgKquco6w3w==", 2809 - "dev": true, 2810 - "hasInstallScript": true, 2811 - "license": "Apache-2.0", 2812 - "bin": { 2813 - "workerd": "bin/workerd" 2814 - }, 2815 - "engines": { 2816 - "node": ">=16" 2817 - }, 2818 - "optionalDependencies": { 2819 - "@cloudflare/workerd-darwin-64": "1.20250508.0", 2820 - "@cloudflare/workerd-darwin-arm64": "1.20250508.0", 2821 - "@cloudflare/workerd-linux-64": "1.20250508.0", 2822 - "@cloudflare/workerd-linux-arm64": "1.20250508.0", 2823 - "@cloudflare/workerd-windows-64": "1.20250508.0" 2824 - } 2825 - }, 2826 - "node_modules/wrangler": { 2827 - "version": "4.14.4", 2828 - "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-4.14.4.tgz", 2829 - "integrity": "sha512-HIdOdiMIcJV5ymw80RKsr3Uzen/p1kRX4jnCEmR2XVeoEhV2Qw6GABxS5WMTlSES2/vEX0Y+ezUAdsprcUhJ5g==", 2830 - "dev": true, 2831 - "license": "MIT OR Apache-2.0", 2832 - "dependencies": { 2833 - "@cloudflare/kv-asset-handler": "0.4.0", 2834 - "@cloudflare/unenv-preset": "2.3.1", 2835 - "blake3-wasm": "2.1.5", 2836 - "esbuild": "0.25.4", 2837 - "miniflare": "4.20250507.0", 2838 - "path-to-regexp": "6.3.0", 2839 - "unenv": "2.0.0-rc.15", 2840 - "workerd": "1.20250507.0" 2841 - }, 2842 - "bin": { 2843 - "wrangler": "bin/wrangler.js", 2844 - "wrangler2": "bin/wrangler.js" 2845 - }, 2846 - "engines": { 2847 - "node": ">=18.0.0" 2848 - }, 2849 - "optionalDependencies": { 2850 - "fsevents": "~2.3.2", 2851 - "sharp": "^0.33.5" 2852 - }, 2853 - "peerDependencies": { 2854 - "@cloudflare/workers-types": "^4.20250507.0" 2855 - }, 2856 - "peerDependenciesMeta": { 2857 - "@cloudflare/workers-types": { 2858 - "optional": true 2859 - } 2860 - } 2861 - }, 2862 - "node_modules/wrangler/node_modules/@cloudflare/workerd-darwin-64": { 2863 - "version": "1.20250507.0", 2864 - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20250507.0.tgz", 2865 - "integrity": "sha512-xC+8hmQuOUUNCVT9DWpLMfxhR4Xs4kI8v7Bkybh4pzGC85moH6fMfCBNaP0YQCNAA/BR56aL/AwfvMVGskTK/A==", 2866 - "cpu": [ 2867 - "x64" 2868 - ], 2869 - "dev": true, 2870 - "license": "Apache-2.0", 2871 - "optional": true, 2872 - "os": [ 2873 - "darwin" 2874 - ], 2875 - "engines": { 2876 - "node": ">=16" 2877 - } 2878 - }, 2879 - "node_modules/wrangler/node_modules/@cloudflare/workerd-darwin-arm64": { 2880 - "version": "1.20250507.0", 2881 - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20250507.0.tgz", 2882 - "integrity": "sha512-Oynff5H8yM4trfUFaKdkOvPV3jac8mg7QC19ILZluCVgLx/JGEVLEJ7do1Na9rLqV8CK4gmUXPrUMX7uerhQgg==", 2883 - "cpu": [ 2884 - "arm64" 2885 - ], 2886 - "dev": true, 2887 - "license": "Apache-2.0", 2888 - "optional": true, 2889 - "os": [ 2890 - "darwin" 2891 - ], 2892 - "engines": { 2893 - "node": ">=16" 2894 - } 2895 - }, 2896 - "node_modules/wrangler/node_modules/@cloudflare/workerd-linux-64": { 2897 - "version": "1.20250507.0", 2898 - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20250507.0.tgz", 2899 - "integrity": "sha512-/HAA+Zg/R7Q/Smyl835FUFKjotZN1UzN9j/BHBd0xKmKov97QkXAX8gsyGnyKqRReIOinp8x/8+UebTICR7VJw==", 2900 - "cpu": [ 2901 - "x64" 2902 - ], 2903 - "dev": true, 2904 - "license": "Apache-2.0", 2905 - "optional": true, 2906 - "os": [ 2907 - "linux" 2908 - ], 2909 - "engines": { 2910 - "node": ">=16" 2911 - } 2912 - }, 2913 - "node_modules/wrangler/node_modules/@cloudflare/workerd-linux-arm64": { 2914 - "version": "1.20250507.0", 2915 - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20250507.0.tgz", 2916 - "integrity": "sha512-NMPibSdOYeycU0IrKkgOESFJQy7dEpHvuatZxQxlT+mIQK0INzI3irp2kKxhF99s25kPC4p+xg9bU3ugTrs3VQ==", 2917 - "cpu": [ 2918 - "arm64" 2919 - ], 2920 - "dev": true, 2921 - "license": "Apache-2.0", 2922 - "optional": true, 2923 - "os": [ 2924 - "linux" 2925 - ], 2926 - "engines": { 2927 - "node": ">=16" 2928 - } 2929 - }, 2930 - "node_modules/wrangler/node_modules/@cloudflare/workerd-windows-64": { 2931 - "version": "1.20250507.0", 2932 - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20250507.0.tgz", 2933 - "integrity": "sha512-c91fhNP8ufycdIDqjVyKTqeb4ewkbAYXFQbLreMVgh4LLQQPDDEte8wCdmaFy5bIL0M9d85PpdCq51RCzq/FaQ==", 2934 - "cpu": [ 2935 - "x64" 2936 - ], 2937 - "dev": true, 2938 - "license": "Apache-2.0", 2939 - "optional": true, 2940 - "os": [ 2941 - "win32" 2942 - ], 2943 - "engines": { 2944 - "node": ">=16" 2945 - } 2946 - }, 2947 - "node_modules/wrangler/node_modules/miniflare": { 2948 - "version": "4.20250507.0", 2949 - "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-4.20250507.0.tgz", 2950 - "integrity": "sha512-EgbQRt/Hnr8HCmW2J/4LRNE3yOzJTdNd98XJ8gnGXFKcimXxUFPiWP3k1df+ZPCtEHp6cXxi8+jP7v9vuIbIsg==", 2951 - "dev": true, 2952 - "license": "MIT", 2953 - "dependencies": { 2954 - "@cspotcode/source-map-support": "0.8.1", 2955 - "acorn": "8.14.0", 2956 - "acorn-walk": "8.3.2", 2957 - "exit-hook": "2.2.1", 2958 - "glob-to-regexp": "0.4.1", 2959 - "stoppable": "1.1.0", 2960 - "undici": "^5.28.5", 2961 - "workerd": "1.20250507.0", 2962 - "ws": "8.18.0", 2963 - "youch": "3.3.4", 2964 - "zod": "3.22.3" 2965 - }, 2966 - "bin": { 2967 - "miniflare": "bootstrap.js" 2968 - }, 2969 - "engines": { 2970 - "node": ">=18.0.0" 2971 - } 2972 - }, 2973 - "node_modules/wrangler/node_modules/workerd": { 2974 - "version": "1.20250507.0", 2975 - "resolved": "https://registry.npmjs.org/workerd/-/workerd-1.20250507.0.tgz", 2976 - "integrity": "sha512-OXaGjEh5THT9iblwWIyPrYBoaPe/d4zN03Go7/w8CmS8sma7//O9hjbk43sboWkc89taGPmU0/LNyZUUiUlHeQ==", 2977 - "dev": true, 2978 - "hasInstallScript": true, 2979 - "license": "Apache-2.0", 2980 - "bin": { 2981 - "workerd": "bin/workerd" 2982 - }, 2983 - "engines": { 2984 - "node": ">=16" 2985 - }, 2986 - "optionalDependencies": { 2987 - "@cloudflare/workerd-darwin-64": "1.20250507.0", 2988 - "@cloudflare/workerd-darwin-arm64": "1.20250507.0", 2989 - "@cloudflare/workerd-linux-64": "1.20250507.0", 2990 - "@cloudflare/workerd-linux-arm64": "1.20250507.0", 2991 - "@cloudflare/workerd-windows-64": "1.20250507.0" 2992 - } 2993 - }, 2994 - "node_modules/wrangler/node_modules/zod": { 2995 - "version": "3.22.3", 2996 - "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.3.tgz", 2997 - "integrity": "sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==", 2998 - "dev": true, 2999 - "license": "MIT", 3000 - "funding": { 3001 - "url": "https://github.com/sponsors/colinhacks" 3002 - } 3003 - }, 3004 - "node_modules/ws": { 3005 - "version": "8.18.0", 3006 - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", 3007 - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", 3008 - "dev": true, 3009 - "license": "MIT", 3010 - "engines": { 3011 - "node": ">=10.0.0" 3012 - }, 3013 - "peerDependencies": { 3014 - "bufferutil": "^4.0.1", 3015 - "utf-8-validate": ">=5.0.2" 3016 - }, 3017 - "peerDependenciesMeta": { 3018 - "bufferutil": { 3019 - "optional": true 3020 - }, 3021 - "utf-8-validate": { 3022 - "optional": true 3023 - } 3024 - } 3025 - }, 3026 - "node_modules/youch": { 3027 - "version": "3.3.4", 3028 - "resolved": "https://registry.npmjs.org/youch/-/youch-3.3.4.tgz", 3029 - "integrity": "sha512-UeVBXie8cA35DS6+nBkls68xaBBXCye0CNznrhszZjTbRVnJKQuNsyLKBTTL4ln1o1rh2PKtv35twV7irj5SEg==", 3030 - "dev": true, 3031 - "license": "MIT", 3032 - "dependencies": { 3033 - "cookie": "^0.7.1", 3034 - "mustache": "^4.2.0", 3035 - "stacktracey": "^2.1.8" 3036 - } 3037 - }, 3038 - "node_modules/zod": { 3039 - "version": "3.24.4", 3040 - "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.4.tgz", 3041 - "integrity": "sha512-OdqJE9UDRPwWsrHjLN2F8bPxvwJBK22EHLWtanu0LSYr5YqzsaaW3RMgmjwr8Rypg5k+meEJdSPXJZXE/yqOMg==", 3042 - "dev": true, 3043 - "license": "MIT", 3044 - "funding": { 3045 - "url": "https://github.com/sponsors/colinhacks" 3046 - } 3047 - } 3048 - } 2 + "name": "budget-edge", 3 + "version": "0.0.0", 4 + "lockfileVersion": 3, 5 + "requires": true, 6 + "packages": { 7 + "": { 8 + "name": "budget-edge", 9 + "version": "0.0.0", 10 + "dependencies": { 11 + "google-auth-library": "^9.15.1", 12 + "hono": "^4.4.13", 13 + "jose": "^6.0.11" 14 + }, 15 + "devDependencies": { 16 + "@eslint/js": "^9.26.0", 17 + "@trivago/prettier-plugin-sort-imports": "^5.2.2", 18 + "@types/node": "^22.15.18", 19 + "eslint": "^9.26.0", 20 + "prettier": "^3.5.3", 21 + "typescript": "^5.5.2", 22 + "typescript-eslint": "^8.32.1", 23 + "wrangler": "^4.14.4" 24 + } 25 + }, 26 + "node_modules/@babel/code-frame": { 27 + "version": "7.27.1", 28 + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", 29 + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", 30 + "dev": true, 31 + "license": "MIT", 32 + "dependencies": { 33 + "@babel/helper-validator-identifier": "^7.27.1", 34 + "js-tokens": "^4.0.0", 35 + "picocolors": "^1.1.1" 36 + }, 37 + "engines": { 38 + "node": ">=6.9.0" 39 + } 40 + }, 41 + "node_modules/@babel/generator": { 42 + "version": "7.27.1", 43 + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.1.tgz", 44 + "integrity": "sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==", 45 + "dev": true, 46 + "license": "MIT", 47 + "dependencies": { 48 + "@babel/parser": "^7.27.1", 49 + "@babel/types": "^7.27.1", 50 + "@jridgewell/gen-mapping": "^0.3.5", 51 + "@jridgewell/trace-mapping": "^0.3.25", 52 + "jsesc": "^3.0.2" 53 + }, 54 + "engines": { 55 + "node": ">=6.9.0" 56 + } 57 + }, 58 + "node_modules/@babel/generator/node_modules/@jridgewell/trace-mapping": { 59 + "version": "0.3.25", 60 + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", 61 + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", 62 + "dev": true, 63 + "license": "MIT", 64 + "dependencies": { 65 + "@jridgewell/resolve-uri": "^3.1.0", 66 + "@jridgewell/sourcemap-codec": "^1.4.14" 67 + } 68 + }, 69 + "node_modules/@babel/helper-string-parser": { 70 + "version": "7.27.1", 71 + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", 72 + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", 73 + "dev": true, 74 + "license": "MIT", 75 + "engines": { 76 + "node": ">=6.9.0" 77 + } 78 + }, 79 + "node_modules/@babel/helper-validator-identifier": { 80 + "version": "7.27.1", 81 + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", 82 + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", 83 + "dev": true, 84 + "license": "MIT", 85 + "engines": { 86 + "node": ">=6.9.0" 87 + } 88 + }, 89 + "node_modules/@babel/parser": { 90 + "version": "7.27.2", 91 + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.2.tgz", 92 + "integrity": "sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw==", 93 + "dev": true, 94 + "license": "MIT", 95 + "dependencies": { 96 + "@babel/types": "^7.27.1" 97 + }, 98 + "bin": { 99 + "parser": "bin/babel-parser.js" 100 + }, 101 + "engines": { 102 + "node": ">=6.0.0" 103 + } 104 + }, 105 + "node_modules/@babel/template": { 106 + "version": "7.27.2", 107 + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", 108 + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", 109 + "dev": true, 110 + "license": "MIT", 111 + "dependencies": { 112 + "@babel/code-frame": "^7.27.1", 113 + "@babel/parser": "^7.27.2", 114 + "@babel/types": "^7.27.1" 115 + }, 116 + "engines": { 117 + "node": ">=6.9.0" 118 + } 119 + }, 120 + "node_modules/@babel/traverse": { 121 + "version": "7.27.1", 122 + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.1.tgz", 123 + "integrity": "sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==", 124 + "dev": true, 125 + "license": "MIT", 126 + "dependencies": { 127 + "@babel/code-frame": "^7.27.1", 128 + "@babel/generator": "^7.27.1", 129 + "@babel/parser": "^7.27.1", 130 + "@babel/template": "^7.27.1", 131 + "@babel/types": "^7.27.1", 132 + "debug": "^4.3.1", 133 + "globals": "^11.1.0" 134 + }, 135 + "engines": { 136 + "node": ">=6.9.0" 137 + } 138 + }, 139 + "node_modules/@babel/types": { 140 + "version": "7.27.1", 141 + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.1.tgz", 142 + "integrity": "sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==", 143 + "dev": true, 144 + "license": "MIT", 145 + "dependencies": { 146 + "@babel/helper-string-parser": "^7.27.1", 147 + "@babel/helper-validator-identifier": "^7.27.1" 148 + }, 149 + "engines": { 150 + "node": ">=6.9.0" 151 + } 152 + }, 153 + "node_modules/@cloudflare/kv-asset-handler": { 154 + "version": "0.4.0", 155 + "resolved": "https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.4.0.tgz", 156 + "integrity": "sha512-+tv3z+SPp+gqTIcImN9o0hqE9xyfQjI1XD9pL6NuKjua9B1y7mNYv0S9cP+QEbA4ppVgGZEmKOvHX5G5Ei1CVA==", 157 + "dev": true, 158 + "license": "MIT OR Apache-2.0", 159 + "dependencies": { 160 + "mime": "^3.0.0" 161 + }, 162 + "engines": { 163 + "node": ">=18.0.0" 164 + } 165 + }, 166 + "node_modules/@cloudflare/unenv-preset": { 167 + "version": "2.3.1", 168 + "resolved": "https://registry.npmjs.org/@cloudflare/unenv-preset/-/unenv-preset-2.3.1.tgz", 169 + "integrity": "sha512-Xq57Qd+ADpt6hibcVBO0uLG9zzRgyRhfCUgBT9s+g3+3Ivg5zDyVgLFy40ES1VdNcu8rPNSivm9A+kGP5IVaPg==", 170 + "dev": true, 171 + "license": "MIT OR Apache-2.0", 172 + "peerDependencies": { 173 + "unenv": "2.0.0-rc.15", 174 + "workerd": "^1.20250320.0" 175 + }, 176 + "peerDependenciesMeta": { 177 + "workerd": { 178 + "optional": true 179 + } 180 + } 181 + }, 182 + "node_modules/@cloudflare/workerd-darwin-64": { 183 + "version": "1.20250508.0", 184 + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20250508.0.tgz", 185 + "integrity": "sha512-9x09MrA9Y5RQs3zqWvWns8xHgM2pVNXWpeJ+3hQYu4PrwPFZXtTD6b/iMmOnlYKzINlREq1RGeEybMFyWEUlUg==", 186 + "cpu": [ 187 + "x64" 188 + ], 189 + "dev": true, 190 + "license": "Apache-2.0", 191 + "optional": true, 192 + "os": [ 193 + "darwin" 194 + ], 195 + "peer": true, 196 + "engines": { 197 + "node": ">=16" 198 + } 199 + }, 200 + "node_modules/@cloudflare/workerd-darwin-arm64": { 201 + "version": "1.20250508.0", 202 + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20250508.0.tgz", 203 + "integrity": "sha512-0Ili+nE2LLRzYue/yPc1pepSyNNg6LxR3/ng/rlQzVQUxPXIXldHFkJ/ynsYwQnAcf6OxasSi/kbTm6yvDoSAQ==", 204 + "cpu": [ 205 + "arm64" 206 + ], 207 + "dev": true, 208 + "license": "Apache-2.0", 209 + "optional": true, 210 + "os": [ 211 + "darwin" 212 + ], 213 + "peer": true, 214 + "engines": { 215 + "node": ">=16" 216 + } 217 + }, 218 + "node_modules/@cloudflare/workerd-linux-64": { 219 + "version": "1.20250508.0", 220 + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20250508.0.tgz", 221 + "integrity": "sha512-5saVrZ3uVwYxvBa7BaonXjeqB6X0YF3ak05qvBaWcmZ3FNmnarMm2W8842cnbhnckDVBpB/iDo51Sy6Y7y1jcw==", 222 + "cpu": [ 223 + "x64" 224 + ], 225 + "dev": true, 226 + "license": "Apache-2.0", 227 + "optional": true, 228 + "os": [ 229 + "linux" 230 + ], 231 + "peer": true, 232 + "engines": { 233 + "node": ">=16" 234 + } 235 + }, 236 + "node_modules/@cloudflare/workerd-linux-arm64": { 237 + "version": "1.20250508.0", 238 + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20250508.0.tgz", 239 + "integrity": "sha512-muQe1pkxRi3eaq1Q417xvfGd2SlktbLTzNhT5Yftsx8OecWrYuB8i4ttR6Nr5ER06bfEj0FqQjqJJhcp6wLLUQ==", 240 + "cpu": [ 241 + "arm64" 242 + ], 243 + "dev": true, 244 + "license": "Apache-2.0", 245 + "optional": true, 246 + "os": [ 247 + "linux" 248 + ], 249 + "peer": true, 250 + "engines": { 251 + "node": ">=16" 252 + } 253 + }, 254 + "node_modules/@cloudflare/workerd-windows-64": { 255 + "version": "1.20250508.0", 256 + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20250508.0.tgz", 257 + "integrity": "sha512-EJj8iTWFMqjgvZUxxNvzK7frA1JMFi3y/9eDIdZPL/OaQh3cmk5Lai5DCXsKYUxfooMBZWYTp53zOLrvuJI8VQ==", 258 + "cpu": [ 259 + "x64" 260 + ], 261 + "dev": true, 262 + "license": "Apache-2.0", 263 + "optional": true, 264 + "os": [ 265 + "win32" 266 + ], 267 + "peer": true, 268 + "engines": { 269 + "node": ">=16" 270 + } 271 + }, 272 + "node_modules/@cspotcode/source-map-support": { 273 + "version": "0.8.1", 274 + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", 275 + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", 276 + "dev": true, 277 + "license": "MIT", 278 + "dependencies": { 279 + "@jridgewell/trace-mapping": "0.3.9" 280 + }, 281 + "engines": { 282 + "node": ">=12" 283 + } 284 + }, 285 + "node_modules/@emnapi/runtime": { 286 + "version": "1.4.3", 287 + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.3.tgz", 288 + "integrity": "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==", 289 + "dev": true, 290 + "license": "MIT", 291 + "optional": true, 292 + "dependencies": { 293 + "tslib": "^2.4.0" 294 + } 295 + }, 296 + "node_modules/@esbuild/aix-ppc64": { 297 + "version": "0.25.4", 298 + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.4.tgz", 299 + "integrity": "sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==", 300 + "cpu": [ 301 + "ppc64" 302 + ], 303 + "dev": true, 304 + "license": "MIT", 305 + "optional": true, 306 + "os": [ 307 + "aix" 308 + ], 309 + "engines": { 310 + "node": ">=18" 311 + } 312 + }, 313 + "node_modules/@esbuild/android-arm": { 314 + "version": "0.25.4", 315 + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.4.tgz", 316 + "integrity": "sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==", 317 + "cpu": [ 318 + "arm" 319 + ], 320 + "dev": true, 321 + "license": "MIT", 322 + "optional": true, 323 + "os": [ 324 + "android" 325 + ], 326 + "engines": { 327 + "node": ">=18" 328 + } 329 + }, 330 + "node_modules/@esbuild/android-arm64": { 331 + "version": "0.25.4", 332 + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.4.tgz", 333 + "integrity": "sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==", 334 + "cpu": [ 335 + "arm64" 336 + ], 337 + "dev": true, 338 + "license": "MIT", 339 + "optional": true, 340 + "os": [ 341 + "android" 342 + ], 343 + "engines": { 344 + "node": ">=18" 345 + } 346 + }, 347 + "node_modules/@esbuild/android-x64": { 348 + "version": "0.25.4", 349 + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.4.tgz", 350 + "integrity": "sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==", 351 + "cpu": [ 352 + "x64" 353 + ], 354 + "dev": true, 355 + "license": "MIT", 356 + "optional": true, 357 + "os": [ 358 + "android" 359 + ], 360 + "engines": { 361 + "node": ">=18" 362 + } 363 + }, 364 + "node_modules/@esbuild/darwin-arm64": { 365 + "version": "0.25.4", 366 + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.4.tgz", 367 + "integrity": "sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==", 368 + "cpu": [ 369 + "arm64" 370 + ], 371 + "dev": true, 372 + "license": "MIT", 373 + "optional": true, 374 + "os": [ 375 + "darwin" 376 + ], 377 + "engines": { 378 + "node": ">=18" 379 + } 380 + }, 381 + "node_modules/@esbuild/darwin-x64": { 382 + "version": "0.25.4", 383 + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.4.tgz", 384 + "integrity": "sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==", 385 + "cpu": [ 386 + "x64" 387 + ], 388 + "dev": true, 389 + "license": "MIT", 390 + "optional": true, 391 + "os": [ 392 + "darwin" 393 + ], 394 + "engines": { 395 + "node": ">=18" 396 + } 397 + }, 398 + "node_modules/@esbuild/freebsd-arm64": { 399 + "version": "0.25.4", 400 + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.4.tgz", 401 + "integrity": "sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==", 402 + "cpu": [ 403 + "arm64" 404 + ], 405 + "dev": true, 406 + "license": "MIT", 407 + "optional": true, 408 + "os": [ 409 + "freebsd" 410 + ], 411 + "engines": { 412 + "node": ">=18" 413 + } 414 + }, 415 + "node_modules/@esbuild/freebsd-x64": { 416 + "version": "0.25.4", 417 + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.4.tgz", 418 + "integrity": "sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==", 419 + "cpu": [ 420 + "x64" 421 + ], 422 + "dev": true, 423 + "license": "MIT", 424 + "optional": true, 425 + "os": [ 426 + "freebsd" 427 + ], 428 + "engines": { 429 + "node": ">=18" 430 + } 431 + }, 432 + "node_modules/@esbuild/linux-arm": { 433 + "version": "0.25.4", 434 + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.4.tgz", 435 + "integrity": "sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==", 436 + "cpu": [ 437 + "arm" 438 + ], 439 + "dev": true, 440 + "license": "MIT", 441 + "optional": true, 442 + "os": [ 443 + "linux" 444 + ], 445 + "engines": { 446 + "node": ">=18" 447 + } 448 + }, 449 + "node_modules/@esbuild/linux-arm64": { 450 + "version": "0.25.4", 451 + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.4.tgz", 452 + "integrity": "sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==", 453 + "cpu": [ 454 + "arm64" 455 + ], 456 + "dev": true, 457 + "license": "MIT", 458 + "optional": true, 459 + "os": [ 460 + "linux" 461 + ], 462 + "engines": { 463 + "node": ">=18" 464 + } 465 + }, 466 + "node_modules/@esbuild/linux-ia32": { 467 + "version": "0.25.4", 468 + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.4.tgz", 469 + "integrity": "sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==", 470 + "cpu": [ 471 + "ia32" 472 + ], 473 + "dev": true, 474 + "license": "MIT", 475 + "optional": true, 476 + "os": [ 477 + "linux" 478 + ], 479 + "engines": { 480 + "node": ">=18" 481 + } 482 + }, 483 + "node_modules/@esbuild/linux-loong64": { 484 + "version": "0.25.4", 485 + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.4.tgz", 486 + "integrity": "sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==", 487 + "cpu": [ 488 + "loong64" 489 + ], 490 + "dev": true, 491 + "license": "MIT", 492 + "optional": true, 493 + "os": [ 494 + "linux" 495 + ], 496 + "engines": { 497 + "node": ">=18" 498 + } 499 + }, 500 + "node_modules/@esbuild/linux-mips64el": { 501 + "version": "0.25.4", 502 + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.4.tgz", 503 + "integrity": "sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==", 504 + "cpu": [ 505 + "mips64el" 506 + ], 507 + "dev": true, 508 + "license": "MIT", 509 + "optional": true, 510 + "os": [ 511 + "linux" 512 + ], 513 + "engines": { 514 + "node": ">=18" 515 + } 516 + }, 517 + "node_modules/@esbuild/linux-ppc64": { 518 + "version": "0.25.4", 519 + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.4.tgz", 520 + "integrity": "sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==", 521 + "cpu": [ 522 + "ppc64" 523 + ], 524 + "dev": true, 525 + "license": "MIT", 526 + "optional": true, 527 + "os": [ 528 + "linux" 529 + ], 530 + "engines": { 531 + "node": ">=18" 532 + } 533 + }, 534 + "node_modules/@esbuild/linux-riscv64": { 535 + "version": "0.25.4", 536 + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.4.tgz", 537 + "integrity": "sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==", 538 + "cpu": [ 539 + "riscv64" 540 + ], 541 + "dev": true, 542 + "license": "MIT", 543 + "optional": true, 544 + "os": [ 545 + "linux" 546 + ], 547 + "engines": { 548 + "node": ">=18" 549 + } 550 + }, 551 + "node_modules/@esbuild/linux-s390x": { 552 + "version": "0.25.4", 553 + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.4.tgz", 554 + "integrity": "sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==", 555 + "cpu": [ 556 + "s390x" 557 + ], 558 + "dev": true, 559 + "license": "MIT", 560 + "optional": true, 561 + "os": [ 562 + "linux" 563 + ], 564 + "engines": { 565 + "node": ">=18" 566 + } 567 + }, 568 + "node_modules/@esbuild/linux-x64": { 569 + "version": "0.25.4", 570 + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.4.tgz", 571 + "integrity": "sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==", 572 + "cpu": [ 573 + "x64" 574 + ], 575 + "dev": true, 576 + "license": "MIT", 577 + "optional": true, 578 + "os": [ 579 + "linux" 580 + ], 581 + "engines": { 582 + "node": ">=18" 583 + } 584 + }, 585 + "node_modules/@esbuild/netbsd-arm64": { 586 + "version": "0.25.4", 587 + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.4.tgz", 588 + "integrity": "sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==", 589 + "cpu": [ 590 + "arm64" 591 + ], 592 + "dev": true, 593 + "license": "MIT", 594 + "optional": true, 595 + "os": [ 596 + "netbsd" 597 + ], 598 + "engines": { 599 + "node": ">=18" 600 + } 601 + }, 602 + "node_modules/@esbuild/netbsd-x64": { 603 + "version": "0.25.4", 604 + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.4.tgz", 605 + "integrity": "sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==", 606 + "cpu": [ 607 + "x64" 608 + ], 609 + "dev": true, 610 + "license": "MIT", 611 + "optional": true, 612 + "os": [ 613 + "netbsd" 614 + ], 615 + "engines": { 616 + "node": ">=18" 617 + } 618 + }, 619 + "node_modules/@esbuild/openbsd-arm64": { 620 + "version": "0.25.4", 621 + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.4.tgz", 622 + "integrity": "sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==", 623 + "cpu": [ 624 + "arm64" 625 + ], 626 + "dev": true, 627 + "license": "MIT", 628 + "optional": true, 629 + "os": [ 630 + "openbsd" 631 + ], 632 + "engines": { 633 + "node": ">=18" 634 + } 635 + }, 636 + "node_modules/@esbuild/openbsd-x64": { 637 + "version": "0.25.4", 638 + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.4.tgz", 639 + "integrity": "sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==", 640 + "cpu": [ 641 + "x64" 642 + ], 643 + "dev": true, 644 + "license": "MIT", 645 + "optional": true, 646 + "os": [ 647 + "openbsd" 648 + ], 649 + "engines": { 650 + "node": ">=18" 651 + } 652 + }, 653 + "node_modules/@esbuild/sunos-x64": { 654 + "version": "0.25.4", 655 + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.4.tgz", 656 + "integrity": "sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==", 657 + "cpu": [ 658 + "x64" 659 + ], 660 + "dev": true, 661 + "license": "MIT", 662 + "optional": true, 663 + "os": [ 664 + "sunos" 665 + ], 666 + "engines": { 667 + "node": ">=18" 668 + } 669 + }, 670 + "node_modules/@esbuild/win32-arm64": { 671 + "version": "0.25.4", 672 + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.4.tgz", 673 + "integrity": "sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==", 674 + "cpu": [ 675 + "arm64" 676 + ], 677 + "dev": true, 678 + "license": "MIT", 679 + "optional": true, 680 + "os": [ 681 + "win32" 682 + ], 683 + "engines": { 684 + "node": ">=18" 685 + } 686 + }, 687 + "node_modules/@esbuild/win32-ia32": { 688 + "version": "0.25.4", 689 + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.4.tgz", 690 + "integrity": "sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==", 691 + "cpu": [ 692 + "ia32" 693 + ], 694 + "dev": true, 695 + "license": "MIT", 696 + "optional": true, 697 + "os": [ 698 + "win32" 699 + ], 700 + "engines": { 701 + "node": ">=18" 702 + } 703 + }, 704 + "node_modules/@esbuild/win32-x64": { 705 + "version": "0.25.4", 706 + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.4.tgz", 707 + "integrity": "sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==", 708 + "cpu": [ 709 + "x64" 710 + ], 711 + "dev": true, 712 + "license": "MIT", 713 + "optional": true, 714 + "os": [ 715 + "win32" 716 + ], 717 + "engines": { 718 + "node": ">=18" 719 + } 720 + }, 721 + "node_modules/@eslint-community/eslint-utils": { 722 + "version": "4.7.0", 723 + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", 724 + "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==", 725 + "dev": true, 726 + "license": "MIT", 727 + "dependencies": { 728 + "eslint-visitor-keys": "^3.4.3" 729 + }, 730 + "engines": { 731 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 732 + }, 733 + "funding": { 734 + "url": "https://opencollective.com/eslint" 735 + }, 736 + "peerDependencies": { 737 + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" 738 + } 739 + }, 740 + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { 741 + "version": "3.4.3", 742 + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", 743 + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", 744 + "dev": true, 745 + "license": "Apache-2.0", 746 + "engines": { 747 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 748 + }, 749 + "funding": { 750 + "url": "https://opencollective.com/eslint" 751 + } 752 + }, 753 + "node_modules/@eslint-community/regexpp": { 754 + "version": "4.12.1", 755 + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", 756 + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", 757 + "dev": true, 758 + "license": "MIT", 759 + "engines": { 760 + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" 761 + } 762 + }, 763 + "node_modules/@eslint/config-array": { 764 + "version": "0.20.0", 765 + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.20.0.tgz", 766 + "integrity": "sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==", 767 + "dev": true, 768 + "license": "Apache-2.0", 769 + "dependencies": { 770 + "@eslint/object-schema": "^2.1.6", 771 + "debug": "^4.3.1", 772 + "minimatch": "^3.1.2" 773 + }, 774 + "engines": { 775 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 776 + } 777 + }, 778 + "node_modules/@eslint/config-helpers": { 779 + "version": "0.2.2", 780 + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.2.tgz", 781 + "integrity": "sha512-+GPzk8PlG0sPpzdU5ZvIRMPidzAnZDl/s9L+y13iodqvb8leL53bTannOrQ/Im7UkpsmFU5Ily5U60LWixnmLg==", 782 + "dev": true, 783 + "license": "Apache-2.0", 784 + "engines": { 785 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 786 + } 787 + }, 788 + "node_modules/@eslint/core": { 789 + "version": "0.13.0", 790 + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.13.0.tgz", 791 + "integrity": "sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==", 792 + "dev": true, 793 + "license": "Apache-2.0", 794 + "dependencies": { 795 + "@types/json-schema": "^7.0.15" 796 + }, 797 + "engines": { 798 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 799 + } 800 + }, 801 + "node_modules/@eslint/eslintrc": { 802 + "version": "3.3.1", 803 + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", 804 + "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", 805 + "dev": true, 806 + "license": "MIT", 807 + "dependencies": { 808 + "ajv": "^6.12.4", 809 + "debug": "^4.3.2", 810 + "espree": "^10.0.1", 811 + "globals": "^14.0.0", 812 + "ignore": "^5.2.0", 813 + "import-fresh": "^3.2.1", 814 + "js-yaml": "^4.1.0", 815 + "minimatch": "^3.1.2", 816 + "strip-json-comments": "^3.1.1" 817 + }, 818 + "engines": { 819 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 820 + }, 821 + "funding": { 822 + "url": "https://opencollective.com/eslint" 823 + } 824 + }, 825 + "node_modules/@eslint/eslintrc/node_modules/globals": { 826 + "version": "14.0.0", 827 + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", 828 + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", 829 + "dev": true, 830 + "license": "MIT", 831 + "engines": { 832 + "node": ">=18" 833 + }, 834 + "funding": { 835 + "url": "https://github.com/sponsors/sindresorhus" 836 + } 837 + }, 838 + "node_modules/@eslint/js": { 839 + "version": "9.26.0", 840 + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.26.0.tgz", 841 + "integrity": "sha512-I9XlJawFdSMvWjDt6wksMCrgns5ggLNfFwFvnShsleWruvXM514Qxk8V246efTw+eo9JABvVz+u3q2RiAowKxQ==", 842 + "dev": true, 843 + "license": "MIT", 844 + "engines": { 845 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 846 + } 847 + }, 848 + "node_modules/@eslint/object-schema": { 849 + "version": "2.1.6", 850 + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", 851 + "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", 852 + "dev": true, 853 + "license": "Apache-2.0", 854 + "engines": { 855 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 856 + } 857 + }, 858 + "node_modules/@eslint/plugin-kit": { 859 + "version": "0.2.8", 860 + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.8.tgz", 861 + "integrity": "sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==", 862 + "dev": true, 863 + "license": "Apache-2.0", 864 + "dependencies": { 865 + "@eslint/core": "^0.13.0", 866 + "levn": "^0.4.1" 867 + }, 868 + "engines": { 869 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 870 + } 871 + }, 872 + "node_modules/@fastify/busboy": { 873 + "version": "2.1.1", 874 + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", 875 + "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", 876 + "dev": true, 877 + "license": "MIT", 878 + "engines": { 879 + "node": ">=14" 880 + } 881 + }, 882 + "node_modules/@humanfs/core": { 883 + "version": "0.19.1", 884 + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", 885 + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", 886 + "dev": true, 887 + "license": "Apache-2.0", 888 + "engines": { 889 + "node": ">=18.18.0" 890 + } 891 + }, 892 + "node_modules/@humanfs/node": { 893 + "version": "0.16.6", 894 + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", 895 + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", 896 + "dev": true, 897 + "license": "Apache-2.0", 898 + "dependencies": { 899 + "@humanfs/core": "^0.19.1", 900 + "@humanwhocodes/retry": "^0.3.0" 901 + }, 902 + "engines": { 903 + "node": ">=18.18.0" 904 + } 905 + }, 906 + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { 907 + "version": "0.3.1", 908 + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", 909 + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", 910 + "dev": true, 911 + "license": "Apache-2.0", 912 + "engines": { 913 + "node": ">=18.18" 914 + }, 915 + "funding": { 916 + "type": "github", 917 + "url": "https://github.com/sponsors/nzakas" 918 + } 919 + }, 920 + "node_modules/@humanwhocodes/module-importer": { 921 + "version": "1.0.1", 922 + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", 923 + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", 924 + "dev": true, 925 + "license": "Apache-2.0", 926 + "engines": { 927 + "node": ">=12.22" 928 + }, 929 + "funding": { 930 + "type": "github", 931 + "url": "https://github.com/sponsors/nzakas" 932 + } 933 + }, 934 + "node_modules/@humanwhocodes/retry": { 935 + "version": "0.4.3", 936 + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", 937 + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", 938 + "dev": true, 939 + "license": "Apache-2.0", 940 + "engines": { 941 + "node": ">=18.18" 942 + }, 943 + "funding": { 944 + "type": "github", 945 + "url": "https://github.com/sponsors/nzakas" 946 + } 947 + }, 948 + "node_modules/@img/sharp-darwin-arm64": { 949 + "version": "0.33.5", 950 + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", 951 + "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==", 952 + "cpu": [ 953 + "arm64" 954 + ], 955 + "dev": true, 956 + "license": "Apache-2.0", 957 + "optional": true, 958 + "os": [ 959 + "darwin" 960 + ], 961 + "engines": { 962 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 963 + }, 964 + "funding": { 965 + "url": "https://opencollective.com/libvips" 966 + }, 967 + "optionalDependencies": { 968 + "@img/sharp-libvips-darwin-arm64": "1.0.4" 969 + } 970 + }, 971 + "node_modules/@img/sharp-darwin-x64": { 972 + "version": "0.33.5", 973 + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz", 974 + "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==", 975 + "cpu": [ 976 + "x64" 977 + ], 978 + "dev": true, 979 + "license": "Apache-2.0", 980 + "optional": true, 981 + "os": [ 982 + "darwin" 983 + ], 984 + "engines": { 985 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 986 + }, 987 + "funding": { 988 + "url": "https://opencollective.com/libvips" 989 + }, 990 + "optionalDependencies": { 991 + "@img/sharp-libvips-darwin-x64": "1.0.4" 992 + } 993 + }, 994 + "node_modules/@img/sharp-libvips-darwin-arm64": { 995 + "version": "1.0.4", 996 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz", 997 + "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==", 998 + "cpu": [ 999 + "arm64" 1000 + ], 1001 + "dev": true, 1002 + "license": "LGPL-3.0-or-later", 1003 + "optional": true, 1004 + "os": [ 1005 + "darwin" 1006 + ], 1007 + "funding": { 1008 + "url": "https://opencollective.com/libvips" 1009 + } 1010 + }, 1011 + "node_modules/@img/sharp-libvips-darwin-x64": { 1012 + "version": "1.0.4", 1013 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz", 1014 + "integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==", 1015 + "cpu": [ 1016 + "x64" 1017 + ], 1018 + "dev": true, 1019 + "license": "LGPL-3.0-or-later", 1020 + "optional": true, 1021 + "os": [ 1022 + "darwin" 1023 + ], 1024 + "funding": { 1025 + "url": "https://opencollective.com/libvips" 1026 + } 1027 + }, 1028 + "node_modules/@img/sharp-libvips-linux-arm": { 1029 + "version": "1.0.5", 1030 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz", 1031 + "integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==", 1032 + "cpu": [ 1033 + "arm" 1034 + ], 1035 + "dev": true, 1036 + "license": "LGPL-3.0-or-later", 1037 + "optional": true, 1038 + "os": [ 1039 + "linux" 1040 + ], 1041 + "funding": { 1042 + "url": "https://opencollective.com/libvips" 1043 + } 1044 + }, 1045 + "node_modules/@img/sharp-libvips-linux-arm64": { 1046 + "version": "1.0.4", 1047 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz", 1048 + "integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==", 1049 + "cpu": [ 1050 + "arm64" 1051 + ], 1052 + "dev": true, 1053 + "license": "LGPL-3.0-or-later", 1054 + "optional": true, 1055 + "os": [ 1056 + "linux" 1057 + ], 1058 + "funding": { 1059 + "url": "https://opencollective.com/libvips" 1060 + } 1061 + }, 1062 + "node_modules/@img/sharp-libvips-linux-s390x": { 1063 + "version": "1.0.4", 1064 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz", 1065 + "integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==", 1066 + "cpu": [ 1067 + "s390x" 1068 + ], 1069 + "dev": true, 1070 + "license": "LGPL-3.0-or-later", 1071 + "optional": true, 1072 + "os": [ 1073 + "linux" 1074 + ], 1075 + "funding": { 1076 + "url": "https://opencollective.com/libvips" 1077 + } 1078 + }, 1079 + "node_modules/@img/sharp-libvips-linux-x64": { 1080 + "version": "1.0.4", 1081 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz", 1082 + "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==", 1083 + "cpu": [ 1084 + "x64" 1085 + ], 1086 + "dev": true, 1087 + "license": "LGPL-3.0-or-later", 1088 + "optional": true, 1089 + "os": [ 1090 + "linux" 1091 + ], 1092 + "funding": { 1093 + "url": "https://opencollective.com/libvips" 1094 + } 1095 + }, 1096 + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { 1097 + "version": "1.0.4", 1098 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz", 1099 + "integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==", 1100 + "cpu": [ 1101 + "arm64" 1102 + ], 1103 + "dev": true, 1104 + "license": "LGPL-3.0-or-later", 1105 + "optional": true, 1106 + "os": [ 1107 + "linux" 1108 + ], 1109 + "funding": { 1110 + "url": "https://opencollective.com/libvips" 1111 + } 1112 + }, 1113 + "node_modules/@img/sharp-libvips-linuxmusl-x64": { 1114 + "version": "1.0.4", 1115 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz", 1116 + "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==", 1117 + "cpu": [ 1118 + "x64" 1119 + ], 1120 + "dev": true, 1121 + "license": "LGPL-3.0-or-later", 1122 + "optional": true, 1123 + "os": [ 1124 + "linux" 1125 + ], 1126 + "funding": { 1127 + "url": "https://opencollective.com/libvips" 1128 + } 1129 + }, 1130 + "node_modules/@img/sharp-linux-arm": { 1131 + "version": "0.33.5", 1132 + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz", 1133 + "integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==", 1134 + "cpu": [ 1135 + "arm" 1136 + ], 1137 + "dev": true, 1138 + "license": "Apache-2.0", 1139 + "optional": true, 1140 + "os": [ 1141 + "linux" 1142 + ], 1143 + "engines": { 1144 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1145 + }, 1146 + "funding": { 1147 + "url": "https://opencollective.com/libvips" 1148 + }, 1149 + "optionalDependencies": { 1150 + "@img/sharp-libvips-linux-arm": "1.0.5" 1151 + } 1152 + }, 1153 + "node_modules/@img/sharp-linux-arm64": { 1154 + "version": "0.33.5", 1155 + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz", 1156 + "integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==", 1157 + "cpu": [ 1158 + "arm64" 1159 + ], 1160 + "dev": true, 1161 + "license": "Apache-2.0", 1162 + "optional": true, 1163 + "os": [ 1164 + "linux" 1165 + ], 1166 + "engines": { 1167 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1168 + }, 1169 + "funding": { 1170 + "url": "https://opencollective.com/libvips" 1171 + }, 1172 + "optionalDependencies": { 1173 + "@img/sharp-libvips-linux-arm64": "1.0.4" 1174 + } 1175 + }, 1176 + "node_modules/@img/sharp-linux-s390x": { 1177 + "version": "0.33.5", 1178 + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz", 1179 + "integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==", 1180 + "cpu": [ 1181 + "s390x" 1182 + ], 1183 + "dev": true, 1184 + "license": "Apache-2.0", 1185 + "optional": true, 1186 + "os": [ 1187 + "linux" 1188 + ], 1189 + "engines": { 1190 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1191 + }, 1192 + "funding": { 1193 + "url": "https://opencollective.com/libvips" 1194 + }, 1195 + "optionalDependencies": { 1196 + "@img/sharp-libvips-linux-s390x": "1.0.4" 1197 + } 1198 + }, 1199 + "node_modules/@img/sharp-linux-x64": { 1200 + "version": "0.33.5", 1201 + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz", 1202 + "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==", 1203 + "cpu": [ 1204 + "x64" 1205 + ], 1206 + "dev": true, 1207 + "license": "Apache-2.0", 1208 + "optional": true, 1209 + "os": [ 1210 + "linux" 1211 + ], 1212 + "engines": { 1213 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1214 + }, 1215 + "funding": { 1216 + "url": "https://opencollective.com/libvips" 1217 + }, 1218 + "optionalDependencies": { 1219 + "@img/sharp-libvips-linux-x64": "1.0.4" 1220 + } 1221 + }, 1222 + "node_modules/@img/sharp-linuxmusl-arm64": { 1223 + "version": "0.33.5", 1224 + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz", 1225 + "integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==", 1226 + "cpu": [ 1227 + "arm64" 1228 + ], 1229 + "dev": true, 1230 + "license": "Apache-2.0", 1231 + "optional": true, 1232 + "os": [ 1233 + "linux" 1234 + ], 1235 + "engines": { 1236 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1237 + }, 1238 + "funding": { 1239 + "url": "https://opencollective.com/libvips" 1240 + }, 1241 + "optionalDependencies": { 1242 + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4" 1243 + } 1244 + }, 1245 + "node_modules/@img/sharp-linuxmusl-x64": { 1246 + "version": "0.33.5", 1247 + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz", 1248 + "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==", 1249 + "cpu": [ 1250 + "x64" 1251 + ], 1252 + "dev": true, 1253 + "license": "Apache-2.0", 1254 + "optional": true, 1255 + "os": [ 1256 + "linux" 1257 + ], 1258 + "engines": { 1259 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1260 + }, 1261 + "funding": { 1262 + "url": "https://opencollective.com/libvips" 1263 + }, 1264 + "optionalDependencies": { 1265 + "@img/sharp-libvips-linuxmusl-x64": "1.0.4" 1266 + } 1267 + }, 1268 + "node_modules/@img/sharp-wasm32": { 1269 + "version": "0.33.5", 1270 + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz", 1271 + "integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==", 1272 + "cpu": [ 1273 + "wasm32" 1274 + ], 1275 + "dev": true, 1276 + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", 1277 + "optional": true, 1278 + "dependencies": { 1279 + "@emnapi/runtime": "^1.2.0" 1280 + }, 1281 + "engines": { 1282 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1283 + }, 1284 + "funding": { 1285 + "url": "https://opencollective.com/libvips" 1286 + } 1287 + }, 1288 + "node_modules/@img/sharp-win32-ia32": { 1289 + "version": "0.33.5", 1290 + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz", 1291 + "integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==", 1292 + "cpu": [ 1293 + "ia32" 1294 + ], 1295 + "dev": true, 1296 + "license": "Apache-2.0 AND LGPL-3.0-or-later", 1297 + "optional": true, 1298 + "os": [ 1299 + "win32" 1300 + ], 1301 + "engines": { 1302 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1303 + }, 1304 + "funding": { 1305 + "url": "https://opencollective.com/libvips" 1306 + } 1307 + }, 1308 + "node_modules/@img/sharp-win32-x64": { 1309 + "version": "0.33.5", 1310 + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz", 1311 + "integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==", 1312 + "cpu": [ 1313 + "x64" 1314 + ], 1315 + "dev": true, 1316 + "license": "Apache-2.0 AND LGPL-3.0-or-later", 1317 + "optional": true, 1318 + "os": [ 1319 + "win32" 1320 + ], 1321 + "engines": { 1322 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1323 + }, 1324 + "funding": { 1325 + "url": "https://opencollective.com/libvips" 1326 + } 1327 + }, 1328 + "node_modules/@jridgewell/gen-mapping": { 1329 + "version": "0.3.8", 1330 + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", 1331 + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", 1332 + "dev": true, 1333 + "license": "MIT", 1334 + "dependencies": { 1335 + "@jridgewell/set-array": "^1.2.1", 1336 + "@jridgewell/sourcemap-codec": "^1.4.10", 1337 + "@jridgewell/trace-mapping": "^0.3.24" 1338 + }, 1339 + "engines": { 1340 + "node": ">=6.0.0" 1341 + } 1342 + }, 1343 + "node_modules/@jridgewell/gen-mapping/node_modules/@jridgewell/trace-mapping": { 1344 + "version": "0.3.25", 1345 + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", 1346 + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", 1347 + "dev": true, 1348 + "license": "MIT", 1349 + "dependencies": { 1350 + "@jridgewell/resolve-uri": "^3.1.0", 1351 + "@jridgewell/sourcemap-codec": "^1.4.14" 1352 + } 1353 + }, 1354 + "node_modules/@jridgewell/resolve-uri": { 1355 + "version": "3.1.2", 1356 + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", 1357 + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", 1358 + "dev": true, 1359 + "license": "MIT", 1360 + "engines": { 1361 + "node": ">=6.0.0" 1362 + } 1363 + }, 1364 + "node_modules/@jridgewell/set-array": { 1365 + "version": "1.2.1", 1366 + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", 1367 + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", 1368 + "dev": true, 1369 + "license": "MIT", 1370 + "engines": { 1371 + "node": ">=6.0.0" 1372 + } 1373 + }, 1374 + "node_modules/@jridgewell/sourcemap-codec": { 1375 + "version": "1.5.0", 1376 + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", 1377 + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", 1378 + "dev": true, 1379 + "license": "MIT" 1380 + }, 1381 + "node_modules/@jridgewell/trace-mapping": { 1382 + "version": "0.3.9", 1383 + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", 1384 + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", 1385 + "dev": true, 1386 + "license": "MIT", 1387 + "dependencies": { 1388 + "@jridgewell/resolve-uri": "^3.0.3", 1389 + "@jridgewell/sourcemap-codec": "^1.4.10" 1390 + } 1391 + }, 1392 + "node_modules/@modelcontextprotocol/sdk": { 1393 + "version": "1.11.2", 1394 + "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.11.2.tgz", 1395 + "integrity": "sha512-H9vwztj5OAqHg9GockCQC06k1natgcxWQSRpQcPJf6i5+MWBzfKkRtxGbjQf0X2ihii0ffLZCRGbYV2f2bjNCQ==", 1396 + "dev": true, 1397 + "license": "MIT", 1398 + "dependencies": { 1399 + "content-type": "^1.0.5", 1400 + "cors": "^2.8.5", 1401 + "cross-spawn": "^7.0.3", 1402 + "eventsource": "^3.0.2", 1403 + "express": "^5.0.1", 1404 + "express-rate-limit": "^7.5.0", 1405 + "pkce-challenge": "^5.0.0", 1406 + "raw-body": "^3.0.0", 1407 + "zod": "^3.23.8", 1408 + "zod-to-json-schema": "^3.24.1" 1409 + }, 1410 + "engines": { 1411 + "node": ">=18" 1412 + } 1413 + }, 1414 + "node_modules/@nodelib/fs.scandir": { 1415 + "version": "2.1.5", 1416 + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 1417 + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 1418 + "dev": true, 1419 + "license": "MIT", 1420 + "dependencies": { 1421 + "@nodelib/fs.stat": "2.0.5", 1422 + "run-parallel": "^1.1.9" 1423 + }, 1424 + "engines": { 1425 + "node": ">= 8" 1426 + } 1427 + }, 1428 + "node_modules/@nodelib/fs.stat": { 1429 + "version": "2.0.5", 1430 + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 1431 + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", 1432 + "dev": true, 1433 + "license": "MIT", 1434 + "engines": { 1435 + "node": ">= 8" 1436 + } 1437 + }, 1438 + "node_modules/@nodelib/fs.walk": { 1439 + "version": "1.2.8", 1440 + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 1441 + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 1442 + "dev": true, 1443 + "license": "MIT", 1444 + "dependencies": { 1445 + "@nodelib/fs.scandir": "2.1.5", 1446 + "fastq": "^1.6.0" 1447 + }, 1448 + "engines": { 1449 + "node": ">= 8" 1450 + } 1451 + }, 1452 + "node_modules/@trivago/prettier-plugin-sort-imports": { 1453 + "version": "5.2.2", 1454 + "resolved": "https://registry.npmjs.org/@trivago/prettier-plugin-sort-imports/-/prettier-plugin-sort-imports-5.2.2.tgz", 1455 + "integrity": "sha512-fYDQA9e6yTNmA13TLVSA+WMQRc5Bn/c0EUBditUHNfMMxN7M82c38b1kEggVE3pLpZ0FwkwJkUEKMiOi52JXFA==", 1456 + "dev": true, 1457 + "license": "Apache-2.0", 1458 + "dependencies": { 1459 + "@babel/generator": "^7.26.5", 1460 + "@babel/parser": "^7.26.7", 1461 + "@babel/traverse": "^7.26.7", 1462 + "@babel/types": "^7.26.7", 1463 + "javascript-natural-sort": "^0.7.1", 1464 + "lodash": "^4.17.21" 1465 + }, 1466 + "engines": { 1467 + "node": ">18.12" 1468 + }, 1469 + "peerDependencies": { 1470 + "@vue/compiler-sfc": "3.x", 1471 + "prettier": "2.x - 3.x", 1472 + "prettier-plugin-svelte": "3.x", 1473 + "svelte": "4.x || 5.x" 1474 + }, 1475 + "peerDependenciesMeta": { 1476 + "@vue/compiler-sfc": { 1477 + "optional": true 1478 + }, 1479 + "prettier-plugin-svelte": { 1480 + "optional": true 1481 + }, 1482 + "svelte": { 1483 + "optional": true 1484 + } 1485 + } 1486 + }, 1487 + "node_modules/@types/estree": { 1488 + "version": "1.0.7", 1489 + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", 1490 + "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", 1491 + "dev": true, 1492 + "license": "MIT" 1493 + }, 1494 + "node_modules/@types/json-schema": { 1495 + "version": "7.0.15", 1496 + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", 1497 + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", 1498 + "dev": true, 1499 + "license": "MIT" 1500 + }, 1501 + "node_modules/@types/node": { 1502 + "version": "22.15.18", 1503 + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.18.tgz", 1504 + "integrity": "sha512-v1DKRfUdyW+jJhZNEI1PYy29S2YRxMV5AOO/x/SjKmW0acCIOqmbj6Haf9eHAhsPmrhlHSxEhv/1WszcLWV4cg==", 1505 + "dev": true, 1506 + "license": "MIT", 1507 + "dependencies": { 1508 + "undici-types": "~6.21.0" 1509 + } 1510 + }, 1511 + "node_modules/@typescript-eslint/eslint-plugin": { 1512 + "version": "8.32.1", 1513 + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.32.1.tgz", 1514 + "integrity": "sha512-6u6Plg9nP/J1GRpe/vcjjabo6Uc5YQPAMxsgQyGC/I0RuukiG1wIe3+Vtg3IrSCVJDmqK3j8adrtzXSENRtFgg==", 1515 + "dev": true, 1516 + "license": "MIT", 1517 + "dependencies": { 1518 + "@eslint-community/regexpp": "^4.10.0", 1519 + "@typescript-eslint/scope-manager": "8.32.1", 1520 + "@typescript-eslint/type-utils": "8.32.1", 1521 + "@typescript-eslint/utils": "8.32.1", 1522 + "@typescript-eslint/visitor-keys": "8.32.1", 1523 + "graphemer": "^1.4.0", 1524 + "ignore": "^7.0.0", 1525 + "natural-compare": "^1.4.0", 1526 + "ts-api-utils": "^2.1.0" 1527 + }, 1528 + "engines": { 1529 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1530 + }, 1531 + "funding": { 1532 + "type": "opencollective", 1533 + "url": "https://opencollective.com/typescript-eslint" 1534 + }, 1535 + "peerDependencies": { 1536 + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", 1537 + "eslint": "^8.57.0 || ^9.0.0", 1538 + "typescript": ">=4.8.4 <5.9.0" 1539 + } 1540 + }, 1541 + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { 1542 + "version": "7.0.4", 1543 + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.4.tgz", 1544 + "integrity": "sha512-gJzzk+PQNznz8ysRrC0aOkBNVRBDtE1n53IqyqEf3PXrYwomFs5q4pGMizBMJF+ykh03insJ27hB8gSrD2Hn8A==", 1545 + "dev": true, 1546 + "license": "MIT", 1547 + "engines": { 1548 + "node": ">= 4" 1549 + } 1550 + }, 1551 + "node_modules/@typescript-eslint/parser": { 1552 + "version": "8.32.1", 1553 + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.32.1.tgz", 1554 + "integrity": "sha512-LKMrmwCPoLhM45Z00O1ulb6jwyVr2kr3XJp+G+tSEZcbauNnScewcQwtJqXDhXeYPDEjZ8C1SjXm015CirEmGg==", 1555 + "dev": true, 1556 + "license": "MIT", 1557 + "dependencies": { 1558 + "@typescript-eslint/scope-manager": "8.32.1", 1559 + "@typescript-eslint/types": "8.32.1", 1560 + "@typescript-eslint/typescript-estree": "8.32.1", 1561 + "@typescript-eslint/visitor-keys": "8.32.1", 1562 + "debug": "^4.3.4" 1563 + }, 1564 + "engines": { 1565 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1566 + }, 1567 + "funding": { 1568 + "type": "opencollective", 1569 + "url": "https://opencollective.com/typescript-eslint" 1570 + }, 1571 + "peerDependencies": { 1572 + "eslint": "^8.57.0 || ^9.0.0", 1573 + "typescript": ">=4.8.4 <5.9.0" 1574 + } 1575 + }, 1576 + "node_modules/@typescript-eslint/scope-manager": { 1577 + "version": "8.32.1", 1578 + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.32.1.tgz", 1579 + "integrity": "sha512-7IsIaIDeZn7kffk7qXC3o6Z4UblZJKV3UBpkvRNpr5NSyLji7tvTcvmnMNYuYLyh26mN8W723xpo3i4MlD33vA==", 1580 + "dev": true, 1581 + "license": "MIT", 1582 + "dependencies": { 1583 + "@typescript-eslint/types": "8.32.1", 1584 + "@typescript-eslint/visitor-keys": "8.32.1" 1585 + }, 1586 + "engines": { 1587 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1588 + }, 1589 + "funding": { 1590 + "type": "opencollective", 1591 + "url": "https://opencollective.com/typescript-eslint" 1592 + } 1593 + }, 1594 + "node_modules/@typescript-eslint/type-utils": { 1595 + "version": "8.32.1", 1596 + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.32.1.tgz", 1597 + "integrity": "sha512-mv9YpQGA8iIsl5KyUPi+FGLm7+bA4fgXaeRcFKRDRwDMu4iwrSHeDPipwueNXhdIIZltwCJv+NkxftECbIZWfA==", 1598 + "dev": true, 1599 + "license": "MIT", 1600 + "dependencies": { 1601 + "@typescript-eslint/typescript-estree": "8.32.1", 1602 + "@typescript-eslint/utils": "8.32.1", 1603 + "debug": "^4.3.4", 1604 + "ts-api-utils": "^2.1.0" 1605 + }, 1606 + "engines": { 1607 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1608 + }, 1609 + "funding": { 1610 + "type": "opencollective", 1611 + "url": "https://opencollective.com/typescript-eslint" 1612 + }, 1613 + "peerDependencies": { 1614 + "eslint": "^8.57.0 || ^9.0.0", 1615 + "typescript": ">=4.8.4 <5.9.0" 1616 + } 1617 + }, 1618 + "node_modules/@typescript-eslint/types": { 1619 + "version": "8.32.1", 1620 + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.32.1.tgz", 1621 + "integrity": "sha512-YmybwXUJcgGqgAp6bEsgpPXEg6dcCyPyCSr0CAAueacR/CCBi25G3V8gGQ2kRzQRBNol7VQknxMs9HvVa9Rvfg==", 1622 + "dev": true, 1623 + "license": "MIT", 1624 + "engines": { 1625 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1626 + }, 1627 + "funding": { 1628 + "type": "opencollective", 1629 + "url": "https://opencollective.com/typescript-eslint" 1630 + } 1631 + }, 1632 + "node_modules/@typescript-eslint/typescript-estree": { 1633 + "version": "8.32.1", 1634 + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.32.1.tgz", 1635 + "integrity": "sha512-Y3AP9EIfYwBb4kWGb+simvPaqQoT5oJuzzj9m0i6FCY6SPvlomY2Ei4UEMm7+FXtlNJbor80ximyslzaQF6xhg==", 1636 + "dev": true, 1637 + "license": "MIT", 1638 + "dependencies": { 1639 + "@typescript-eslint/types": "8.32.1", 1640 + "@typescript-eslint/visitor-keys": "8.32.1", 1641 + "debug": "^4.3.4", 1642 + "fast-glob": "^3.3.2", 1643 + "is-glob": "^4.0.3", 1644 + "minimatch": "^9.0.4", 1645 + "semver": "^7.6.0", 1646 + "ts-api-utils": "^2.1.0" 1647 + }, 1648 + "engines": { 1649 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1650 + }, 1651 + "funding": { 1652 + "type": "opencollective", 1653 + "url": "https://opencollective.com/typescript-eslint" 1654 + }, 1655 + "peerDependencies": { 1656 + "typescript": ">=4.8.4 <5.9.0" 1657 + } 1658 + }, 1659 + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { 1660 + "version": "2.0.1", 1661 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", 1662 + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", 1663 + "dev": true, 1664 + "license": "MIT", 1665 + "dependencies": { 1666 + "balanced-match": "^1.0.0" 1667 + } 1668 + }, 1669 + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { 1670 + "version": "9.0.5", 1671 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", 1672 + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", 1673 + "dev": true, 1674 + "license": "ISC", 1675 + "dependencies": { 1676 + "brace-expansion": "^2.0.1" 1677 + }, 1678 + "engines": { 1679 + "node": ">=16 || 14 >=14.17" 1680 + }, 1681 + "funding": { 1682 + "url": "https://github.com/sponsors/isaacs" 1683 + } 1684 + }, 1685 + "node_modules/@typescript-eslint/utils": { 1686 + "version": "8.32.1", 1687 + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.32.1.tgz", 1688 + "integrity": "sha512-DsSFNIgLSrc89gpq1LJB7Hm1YpuhK086DRDJSNrewcGvYloWW1vZLHBTIvarKZDcAORIy/uWNx8Gad+4oMpkSA==", 1689 + "dev": true, 1690 + "license": "MIT", 1691 + "dependencies": { 1692 + "@eslint-community/eslint-utils": "^4.7.0", 1693 + "@typescript-eslint/scope-manager": "8.32.1", 1694 + "@typescript-eslint/types": "8.32.1", 1695 + "@typescript-eslint/typescript-estree": "8.32.1" 1696 + }, 1697 + "engines": { 1698 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1699 + }, 1700 + "funding": { 1701 + "type": "opencollective", 1702 + "url": "https://opencollective.com/typescript-eslint" 1703 + }, 1704 + "peerDependencies": { 1705 + "eslint": "^8.57.0 || ^9.0.0", 1706 + "typescript": ">=4.8.4 <5.9.0" 1707 + } 1708 + }, 1709 + "node_modules/@typescript-eslint/visitor-keys": { 1710 + "version": "8.32.1", 1711 + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.32.1.tgz", 1712 + "integrity": "sha512-ar0tjQfObzhSaW3C3QNmTc5ofj0hDoNQ5XWrCy6zDyabdr0TWhCkClp+rywGNj/odAFBVzzJrK4tEq5M4Hmu4w==", 1713 + "dev": true, 1714 + "license": "MIT", 1715 + "dependencies": { 1716 + "@typescript-eslint/types": "8.32.1", 1717 + "eslint-visitor-keys": "^4.2.0" 1718 + }, 1719 + "engines": { 1720 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1721 + }, 1722 + "funding": { 1723 + "type": "opencollective", 1724 + "url": "https://opencollective.com/typescript-eslint" 1725 + } 1726 + }, 1727 + "node_modules/accepts": { 1728 + "version": "2.0.0", 1729 + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", 1730 + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", 1731 + "dev": true, 1732 + "license": "MIT", 1733 + "dependencies": { 1734 + "mime-types": "^3.0.0", 1735 + "negotiator": "^1.0.0" 1736 + }, 1737 + "engines": { 1738 + "node": ">= 0.6" 1739 + } 1740 + }, 1741 + "node_modules/acorn": { 1742 + "version": "8.14.0", 1743 + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", 1744 + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", 1745 + "dev": true, 1746 + "license": "MIT", 1747 + "bin": { 1748 + "acorn": "bin/acorn" 1749 + }, 1750 + "engines": { 1751 + "node": ">=0.4.0" 1752 + } 1753 + }, 1754 + "node_modules/acorn-jsx": { 1755 + "version": "5.3.2", 1756 + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", 1757 + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", 1758 + "dev": true, 1759 + "license": "MIT", 1760 + "peerDependencies": { 1761 + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" 1762 + } 1763 + }, 1764 + "node_modules/acorn-walk": { 1765 + "version": "8.3.2", 1766 + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", 1767 + "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", 1768 + "dev": true, 1769 + "license": "MIT", 1770 + "engines": { 1771 + "node": ">=0.4.0" 1772 + } 1773 + }, 1774 + "node_modules/agent-base": { 1775 + "version": "7.1.3", 1776 + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", 1777 + "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", 1778 + "license": "MIT", 1779 + "engines": { 1780 + "node": ">= 14" 1781 + } 1782 + }, 1783 + "node_modules/ajv": { 1784 + "version": "6.12.6", 1785 + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", 1786 + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", 1787 + "dev": true, 1788 + "license": "MIT", 1789 + "dependencies": { 1790 + "fast-deep-equal": "^3.1.1", 1791 + "fast-json-stable-stringify": "^2.0.0", 1792 + "json-schema-traverse": "^0.4.1", 1793 + "uri-js": "^4.2.2" 1794 + }, 1795 + "funding": { 1796 + "type": "github", 1797 + "url": "https://github.com/sponsors/epoberezkin" 1798 + } 1799 + }, 1800 + "node_modules/ansi-styles": { 1801 + "version": "4.3.0", 1802 + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 1803 + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 1804 + "dev": true, 1805 + "license": "MIT", 1806 + "dependencies": { 1807 + "color-convert": "^2.0.1" 1808 + }, 1809 + "engines": { 1810 + "node": ">=8" 1811 + }, 1812 + "funding": { 1813 + "url": "https://github.com/chalk/ansi-styles?sponsor=1" 1814 + } 1815 + }, 1816 + "node_modules/argparse": { 1817 + "version": "2.0.1", 1818 + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", 1819 + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", 1820 + "dev": true, 1821 + "license": "Python-2.0" 1822 + }, 1823 + "node_modules/as-table": { 1824 + "version": "1.0.55", 1825 + "resolved": "https://registry.npmjs.org/as-table/-/as-table-1.0.55.tgz", 1826 + "integrity": "sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==", 1827 + "dev": true, 1828 + "license": "MIT", 1829 + "dependencies": { 1830 + "printable-characters": "^1.0.42" 1831 + } 1832 + }, 1833 + "node_modules/balanced-match": { 1834 + "version": "1.0.2", 1835 + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 1836 + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 1837 + "dev": true, 1838 + "license": "MIT" 1839 + }, 1840 + "node_modules/base64-js": { 1841 + "version": "1.5.1", 1842 + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", 1843 + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", 1844 + "funding": [ 1845 + { 1846 + "type": "github", 1847 + "url": "https://github.com/sponsors/feross" 1848 + }, 1849 + { 1850 + "type": "patreon", 1851 + "url": "https://www.patreon.com/feross" 1852 + }, 1853 + { 1854 + "type": "consulting", 1855 + "url": "https://feross.org/support" 1856 + } 1857 + ], 1858 + "license": "MIT" 1859 + }, 1860 + "node_modules/bignumber.js": { 1861 + "version": "9.3.0", 1862 + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.0.tgz", 1863 + "integrity": "sha512-EM7aMFTXbptt/wZdMlBv2t8IViwQL+h6SLHosp8Yf0dqJMTnY6iL32opnAB6kAdL0SZPuvcAzFr31o0c/R3/RA==", 1864 + "license": "MIT", 1865 + "engines": { 1866 + "node": "*" 1867 + } 1868 + }, 1869 + "node_modules/blake3-wasm": { 1870 + "version": "2.1.5", 1871 + "resolved": "https://registry.npmjs.org/blake3-wasm/-/blake3-wasm-2.1.5.tgz", 1872 + "integrity": "sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==", 1873 + "dev": true, 1874 + "license": "MIT" 1875 + }, 1876 + "node_modules/body-parser": { 1877 + "version": "2.2.0", 1878 + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.0.tgz", 1879 + "integrity": "sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg==", 1880 + "dev": true, 1881 + "license": "MIT", 1882 + "dependencies": { 1883 + "bytes": "^3.1.2", 1884 + "content-type": "^1.0.5", 1885 + "debug": "^4.4.0", 1886 + "http-errors": "^2.0.0", 1887 + "iconv-lite": "^0.6.3", 1888 + "on-finished": "^2.4.1", 1889 + "qs": "^6.14.0", 1890 + "raw-body": "^3.0.0", 1891 + "type-is": "^2.0.0" 1892 + }, 1893 + "engines": { 1894 + "node": ">=18" 1895 + } 1896 + }, 1897 + "node_modules/brace-expansion": { 1898 + "version": "1.1.11", 1899 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 1900 + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 1901 + "dev": true, 1902 + "license": "MIT", 1903 + "dependencies": { 1904 + "balanced-match": "^1.0.0", 1905 + "concat-map": "0.0.1" 1906 + } 1907 + }, 1908 + "node_modules/braces": { 1909 + "version": "3.0.3", 1910 + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", 1911 + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", 1912 + "dev": true, 1913 + "license": "MIT", 1914 + "dependencies": { 1915 + "fill-range": "^7.1.1" 1916 + }, 1917 + "engines": { 1918 + "node": ">=8" 1919 + } 1920 + }, 1921 + "node_modules/buffer-equal-constant-time": { 1922 + "version": "1.0.1", 1923 + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", 1924 + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", 1925 + "license": "BSD-3-Clause" 1926 + }, 1927 + "node_modules/bytes": { 1928 + "version": "3.1.2", 1929 + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", 1930 + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", 1931 + "dev": true, 1932 + "license": "MIT", 1933 + "engines": { 1934 + "node": ">= 0.8" 1935 + } 1936 + }, 1937 + "node_modules/call-bind-apply-helpers": { 1938 + "version": "1.0.2", 1939 + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", 1940 + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", 1941 + "dev": true, 1942 + "license": "MIT", 1943 + "dependencies": { 1944 + "es-errors": "^1.3.0", 1945 + "function-bind": "^1.1.2" 1946 + }, 1947 + "engines": { 1948 + "node": ">= 0.4" 1949 + } 1950 + }, 1951 + "node_modules/call-bound": { 1952 + "version": "1.0.4", 1953 + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", 1954 + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", 1955 + "dev": true, 1956 + "license": "MIT", 1957 + "dependencies": { 1958 + "call-bind-apply-helpers": "^1.0.2", 1959 + "get-intrinsic": "^1.3.0" 1960 + }, 1961 + "engines": { 1962 + "node": ">= 0.4" 1963 + }, 1964 + "funding": { 1965 + "url": "https://github.com/sponsors/ljharb" 1966 + } 1967 + }, 1968 + "node_modules/callsites": { 1969 + "version": "3.1.0", 1970 + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 1971 + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 1972 + "dev": true, 1973 + "license": "MIT", 1974 + "engines": { 1975 + "node": ">=6" 1976 + } 1977 + }, 1978 + "node_modules/chalk": { 1979 + "version": "4.1.2", 1980 + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 1981 + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 1982 + "dev": true, 1983 + "license": "MIT", 1984 + "dependencies": { 1985 + "ansi-styles": "^4.1.0", 1986 + "supports-color": "^7.1.0" 1987 + }, 1988 + "engines": { 1989 + "node": ">=10" 1990 + }, 1991 + "funding": { 1992 + "url": "https://github.com/chalk/chalk?sponsor=1" 1993 + } 1994 + }, 1995 + "node_modules/color": { 1996 + "version": "4.2.3", 1997 + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", 1998 + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", 1999 + "dev": true, 2000 + "license": "MIT", 2001 + "optional": true, 2002 + "dependencies": { 2003 + "color-convert": "^2.0.1", 2004 + "color-string": "^1.9.0" 2005 + }, 2006 + "engines": { 2007 + "node": ">=12.5.0" 2008 + } 2009 + }, 2010 + "node_modules/color-convert": { 2011 + "version": "2.0.1", 2012 + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 2013 + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 2014 + "dev": true, 2015 + "license": "MIT", 2016 + "dependencies": { 2017 + "color-name": "~1.1.4" 2018 + }, 2019 + "engines": { 2020 + "node": ">=7.0.0" 2021 + } 2022 + }, 2023 + "node_modules/color-name": { 2024 + "version": "1.1.4", 2025 + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 2026 + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 2027 + "dev": true, 2028 + "license": "MIT" 2029 + }, 2030 + "node_modules/color-string": { 2031 + "version": "1.9.1", 2032 + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", 2033 + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", 2034 + "dev": true, 2035 + "license": "MIT", 2036 + "optional": true, 2037 + "dependencies": { 2038 + "color-name": "^1.0.0", 2039 + "simple-swizzle": "^0.2.2" 2040 + } 2041 + }, 2042 + "node_modules/concat-map": { 2043 + "version": "0.0.1", 2044 + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 2045 + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", 2046 + "dev": true, 2047 + "license": "MIT" 2048 + }, 2049 + "node_modules/content-disposition": { 2050 + "version": "1.0.0", 2051 + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.0.tgz", 2052 + "integrity": "sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==", 2053 + "dev": true, 2054 + "license": "MIT", 2055 + "dependencies": { 2056 + "safe-buffer": "5.2.1" 2057 + }, 2058 + "engines": { 2059 + "node": ">= 0.6" 2060 + } 2061 + }, 2062 + "node_modules/content-type": { 2063 + "version": "1.0.5", 2064 + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", 2065 + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", 2066 + "dev": true, 2067 + "license": "MIT", 2068 + "engines": { 2069 + "node": ">= 0.6" 2070 + } 2071 + }, 2072 + "node_modules/cookie": { 2073 + "version": "0.7.2", 2074 + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", 2075 + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", 2076 + "dev": true, 2077 + "license": "MIT", 2078 + "engines": { 2079 + "node": ">= 0.6" 2080 + } 2081 + }, 2082 + "node_modules/cookie-signature": { 2083 + "version": "1.2.2", 2084 + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", 2085 + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", 2086 + "dev": true, 2087 + "license": "MIT", 2088 + "engines": { 2089 + "node": ">=6.6.0" 2090 + } 2091 + }, 2092 + "node_modules/cors": { 2093 + "version": "2.8.5", 2094 + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", 2095 + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", 2096 + "dev": true, 2097 + "license": "MIT", 2098 + "dependencies": { 2099 + "object-assign": "^4", 2100 + "vary": "^1" 2101 + }, 2102 + "engines": { 2103 + "node": ">= 0.10" 2104 + } 2105 + }, 2106 + "node_modules/cross-spawn": { 2107 + "version": "7.0.6", 2108 + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", 2109 + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", 2110 + "dev": true, 2111 + "license": "MIT", 2112 + "dependencies": { 2113 + "path-key": "^3.1.0", 2114 + "shebang-command": "^2.0.0", 2115 + "which": "^2.0.1" 2116 + }, 2117 + "engines": { 2118 + "node": ">= 8" 2119 + } 2120 + }, 2121 + "node_modules/data-uri-to-buffer": { 2122 + "version": "2.0.2", 2123 + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-2.0.2.tgz", 2124 + "integrity": "sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==", 2125 + "dev": true, 2126 + "license": "MIT" 2127 + }, 2128 + "node_modules/debug": { 2129 + "version": "4.4.1", 2130 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", 2131 + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", 2132 + "license": "MIT", 2133 + "dependencies": { 2134 + "ms": "^2.1.3" 2135 + }, 2136 + "engines": { 2137 + "node": ">=6.0" 2138 + }, 2139 + "peerDependenciesMeta": { 2140 + "supports-color": { 2141 + "optional": true 2142 + } 2143 + } 2144 + }, 2145 + "node_modules/deep-is": { 2146 + "version": "0.1.4", 2147 + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", 2148 + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", 2149 + "dev": true, 2150 + "license": "MIT" 2151 + }, 2152 + "node_modules/defu": { 2153 + "version": "6.1.4", 2154 + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", 2155 + "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==", 2156 + "dev": true, 2157 + "license": "MIT" 2158 + }, 2159 + "node_modules/depd": { 2160 + "version": "2.0.0", 2161 + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", 2162 + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", 2163 + "dev": true, 2164 + "license": "MIT", 2165 + "engines": { 2166 + "node": ">= 0.8" 2167 + } 2168 + }, 2169 + "node_modules/detect-libc": { 2170 + "version": "2.0.4", 2171 + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", 2172 + "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", 2173 + "dev": true, 2174 + "license": "Apache-2.0", 2175 + "optional": true, 2176 + "engines": { 2177 + "node": ">=8" 2178 + } 2179 + }, 2180 + "node_modules/dunder-proto": { 2181 + "version": "1.0.1", 2182 + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", 2183 + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", 2184 + "dev": true, 2185 + "license": "MIT", 2186 + "dependencies": { 2187 + "call-bind-apply-helpers": "^1.0.1", 2188 + "es-errors": "^1.3.0", 2189 + "gopd": "^1.2.0" 2190 + }, 2191 + "engines": { 2192 + "node": ">= 0.4" 2193 + } 2194 + }, 2195 + "node_modules/ecdsa-sig-formatter": { 2196 + "version": "1.0.11", 2197 + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", 2198 + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", 2199 + "license": "Apache-2.0", 2200 + "dependencies": { 2201 + "safe-buffer": "^5.0.1" 2202 + } 2203 + }, 2204 + "node_modules/ee-first": { 2205 + "version": "1.1.1", 2206 + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", 2207 + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", 2208 + "dev": true, 2209 + "license": "MIT" 2210 + }, 2211 + "node_modules/encodeurl": { 2212 + "version": "2.0.0", 2213 + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", 2214 + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", 2215 + "dev": true, 2216 + "license": "MIT", 2217 + "engines": { 2218 + "node": ">= 0.8" 2219 + } 2220 + }, 2221 + "node_modules/es-define-property": { 2222 + "version": "1.0.1", 2223 + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", 2224 + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", 2225 + "dev": true, 2226 + "license": "MIT", 2227 + "engines": { 2228 + "node": ">= 0.4" 2229 + } 2230 + }, 2231 + "node_modules/es-errors": { 2232 + "version": "1.3.0", 2233 + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", 2234 + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", 2235 + "dev": true, 2236 + "license": "MIT", 2237 + "engines": { 2238 + "node": ">= 0.4" 2239 + } 2240 + }, 2241 + "node_modules/es-object-atoms": { 2242 + "version": "1.1.1", 2243 + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", 2244 + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", 2245 + "dev": true, 2246 + "license": "MIT", 2247 + "dependencies": { 2248 + "es-errors": "^1.3.0" 2249 + }, 2250 + "engines": { 2251 + "node": ">= 0.4" 2252 + } 2253 + }, 2254 + "node_modules/esbuild": { 2255 + "version": "0.25.4", 2256 + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.4.tgz", 2257 + "integrity": "sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==", 2258 + "dev": true, 2259 + "hasInstallScript": true, 2260 + "license": "MIT", 2261 + "bin": { 2262 + "esbuild": "bin/esbuild" 2263 + }, 2264 + "engines": { 2265 + "node": ">=18" 2266 + }, 2267 + "optionalDependencies": { 2268 + "@esbuild/aix-ppc64": "0.25.4", 2269 + "@esbuild/android-arm": "0.25.4", 2270 + "@esbuild/android-arm64": "0.25.4", 2271 + "@esbuild/android-x64": "0.25.4", 2272 + "@esbuild/darwin-arm64": "0.25.4", 2273 + "@esbuild/darwin-x64": "0.25.4", 2274 + "@esbuild/freebsd-arm64": "0.25.4", 2275 + "@esbuild/freebsd-x64": "0.25.4", 2276 + "@esbuild/linux-arm": "0.25.4", 2277 + "@esbuild/linux-arm64": "0.25.4", 2278 + "@esbuild/linux-ia32": "0.25.4", 2279 + "@esbuild/linux-loong64": "0.25.4", 2280 + "@esbuild/linux-mips64el": "0.25.4", 2281 + "@esbuild/linux-ppc64": "0.25.4", 2282 + "@esbuild/linux-riscv64": "0.25.4", 2283 + "@esbuild/linux-s390x": "0.25.4", 2284 + "@esbuild/linux-x64": "0.25.4", 2285 + "@esbuild/netbsd-arm64": "0.25.4", 2286 + "@esbuild/netbsd-x64": "0.25.4", 2287 + "@esbuild/openbsd-arm64": "0.25.4", 2288 + "@esbuild/openbsd-x64": "0.25.4", 2289 + "@esbuild/sunos-x64": "0.25.4", 2290 + "@esbuild/win32-arm64": "0.25.4", 2291 + "@esbuild/win32-ia32": "0.25.4", 2292 + "@esbuild/win32-x64": "0.25.4" 2293 + } 2294 + }, 2295 + "node_modules/escape-html": { 2296 + "version": "1.0.3", 2297 + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 2298 + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", 2299 + "dev": true, 2300 + "license": "MIT" 2301 + }, 2302 + "node_modules/escape-string-regexp": { 2303 + "version": "4.0.0", 2304 + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", 2305 + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", 2306 + "dev": true, 2307 + "license": "MIT", 2308 + "engines": { 2309 + "node": ">=10" 2310 + }, 2311 + "funding": { 2312 + "url": "https://github.com/sponsors/sindresorhus" 2313 + } 2314 + }, 2315 + "node_modules/eslint": { 2316 + "version": "9.26.0", 2317 + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.26.0.tgz", 2318 + "integrity": "sha512-Hx0MOjPh6uK9oq9nVsATZKE/Wlbai7KFjfCuw9UHaguDW3x+HF0O5nIi3ud39TWgrTjTO5nHxmL3R1eANinWHQ==", 2319 + "dev": true, 2320 + "license": "MIT", 2321 + "dependencies": { 2322 + "@eslint-community/eslint-utils": "^4.2.0", 2323 + "@eslint-community/regexpp": "^4.12.1", 2324 + "@eslint/config-array": "^0.20.0", 2325 + "@eslint/config-helpers": "^0.2.1", 2326 + "@eslint/core": "^0.13.0", 2327 + "@eslint/eslintrc": "^3.3.1", 2328 + "@eslint/js": "9.26.0", 2329 + "@eslint/plugin-kit": "^0.2.8", 2330 + "@humanfs/node": "^0.16.6", 2331 + "@humanwhocodes/module-importer": "^1.0.1", 2332 + "@humanwhocodes/retry": "^0.4.2", 2333 + "@modelcontextprotocol/sdk": "^1.8.0", 2334 + "@types/estree": "^1.0.6", 2335 + "@types/json-schema": "^7.0.15", 2336 + "ajv": "^6.12.4", 2337 + "chalk": "^4.0.0", 2338 + "cross-spawn": "^7.0.6", 2339 + "debug": "^4.3.2", 2340 + "escape-string-regexp": "^4.0.0", 2341 + "eslint-scope": "^8.3.0", 2342 + "eslint-visitor-keys": "^4.2.0", 2343 + "espree": "^10.3.0", 2344 + "esquery": "^1.5.0", 2345 + "esutils": "^2.0.2", 2346 + "fast-deep-equal": "^3.1.3", 2347 + "file-entry-cache": "^8.0.0", 2348 + "find-up": "^5.0.0", 2349 + "glob-parent": "^6.0.2", 2350 + "ignore": "^5.2.0", 2351 + "imurmurhash": "^0.1.4", 2352 + "is-glob": "^4.0.0", 2353 + "json-stable-stringify-without-jsonify": "^1.0.1", 2354 + "lodash.merge": "^4.6.2", 2355 + "minimatch": "^3.1.2", 2356 + "natural-compare": "^1.4.0", 2357 + "optionator": "^0.9.3", 2358 + "zod": "^3.24.2" 2359 + }, 2360 + "bin": { 2361 + "eslint": "bin/eslint.js" 2362 + }, 2363 + "engines": { 2364 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 2365 + }, 2366 + "funding": { 2367 + "url": "https://eslint.org/donate" 2368 + }, 2369 + "peerDependencies": { 2370 + "jiti": "*" 2371 + }, 2372 + "peerDependenciesMeta": { 2373 + "jiti": { 2374 + "optional": true 2375 + } 2376 + } 2377 + }, 2378 + "node_modules/eslint-scope": { 2379 + "version": "8.3.0", 2380 + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz", 2381 + "integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==", 2382 + "dev": true, 2383 + "license": "BSD-2-Clause", 2384 + "dependencies": { 2385 + "esrecurse": "^4.3.0", 2386 + "estraverse": "^5.2.0" 2387 + }, 2388 + "engines": { 2389 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 2390 + }, 2391 + "funding": { 2392 + "url": "https://opencollective.com/eslint" 2393 + } 2394 + }, 2395 + "node_modules/eslint-visitor-keys": { 2396 + "version": "4.2.0", 2397 + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", 2398 + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", 2399 + "dev": true, 2400 + "license": "Apache-2.0", 2401 + "engines": { 2402 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 2403 + }, 2404 + "funding": { 2405 + "url": "https://opencollective.com/eslint" 2406 + } 2407 + }, 2408 + "node_modules/espree": { 2409 + "version": "10.3.0", 2410 + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", 2411 + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", 2412 + "dev": true, 2413 + "license": "BSD-2-Clause", 2414 + "dependencies": { 2415 + "acorn": "^8.14.0", 2416 + "acorn-jsx": "^5.3.2", 2417 + "eslint-visitor-keys": "^4.2.0" 2418 + }, 2419 + "engines": { 2420 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 2421 + }, 2422 + "funding": { 2423 + "url": "https://opencollective.com/eslint" 2424 + } 2425 + }, 2426 + "node_modules/esquery": { 2427 + "version": "1.6.0", 2428 + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", 2429 + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", 2430 + "dev": true, 2431 + "license": "BSD-3-Clause", 2432 + "dependencies": { 2433 + "estraverse": "^5.1.0" 2434 + }, 2435 + "engines": { 2436 + "node": ">=0.10" 2437 + } 2438 + }, 2439 + "node_modules/esrecurse": { 2440 + "version": "4.3.0", 2441 + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", 2442 + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", 2443 + "dev": true, 2444 + "license": "BSD-2-Clause", 2445 + "dependencies": { 2446 + "estraverse": "^5.2.0" 2447 + }, 2448 + "engines": { 2449 + "node": ">=4.0" 2450 + } 2451 + }, 2452 + "node_modules/estraverse": { 2453 + "version": "5.3.0", 2454 + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", 2455 + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", 2456 + "dev": true, 2457 + "license": "BSD-2-Clause", 2458 + "engines": { 2459 + "node": ">=4.0" 2460 + } 2461 + }, 2462 + "node_modules/esutils": { 2463 + "version": "2.0.3", 2464 + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", 2465 + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", 2466 + "dev": true, 2467 + "license": "BSD-2-Clause", 2468 + "engines": { 2469 + "node": ">=0.10.0" 2470 + } 2471 + }, 2472 + "node_modules/etag": { 2473 + "version": "1.8.1", 2474 + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", 2475 + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", 2476 + "dev": true, 2477 + "license": "MIT", 2478 + "engines": { 2479 + "node": ">= 0.6" 2480 + } 2481 + }, 2482 + "node_modules/eventsource": { 2483 + "version": "3.0.7", 2484 + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-3.0.7.tgz", 2485 + "integrity": "sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==", 2486 + "dev": true, 2487 + "license": "MIT", 2488 + "dependencies": { 2489 + "eventsource-parser": "^3.0.1" 2490 + }, 2491 + "engines": { 2492 + "node": ">=18.0.0" 2493 + } 2494 + }, 2495 + "node_modules/eventsource-parser": { 2496 + "version": "3.0.1", 2497 + "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.0.1.tgz", 2498 + "integrity": "sha512-VARTJ9CYeuQYb0pZEPbzi740OWFgpHe7AYJ2WFZVnUDUQp5Dk2yJUgF36YsZ81cOyxT0QxmXD2EQpapAouzWVA==", 2499 + "dev": true, 2500 + "license": "MIT", 2501 + "engines": { 2502 + "node": ">=18.0.0" 2503 + } 2504 + }, 2505 + "node_modules/exit-hook": { 2506 + "version": "2.2.1", 2507 + "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-2.2.1.tgz", 2508 + "integrity": "sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==", 2509 + "dev": true, 2510 + "license": "MIT", 2511 + "engines": { 2512 + "node": ">=6" 2513 + }, 2514 + "funding": { 2515 + "url": "https://github.com/sponsors/sindresorhus" 2516 + } 2517 + }, 2518 + "node_modules/express": { 2519 + "version": "5.1.0", 2520 + "resolved": "https://registry.npmjs.org/express/-/express-5.1.0.tgz", 2521 + "integrity": "sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==", 2522 + "dev": true, 2523 + "license": "MIT", 2524 + "dependencies": { 2525 + "accepts": "^2.0.0", 2526 + "body-parser": "^2.2.0", 2527 + "content-disposition": "^1.0.0", 2528 + "content-type": "^1.0.5", 2529 + "cookie": "^0.7.1", 2530 + "cookie-signature": "^1.2.1", 2531 + "debug": "^4.4.0", 2532 + "encodeurl": "^2.0.0", 2533 + "escape-html": "^1.0.3", 2534 + "etag": "^1.8.1", 2535 + "finalhandler": "^2.1.0", 2536 + "fresh": "^2.0.0", 2537 + "http-errors": "^2.0.0", 2538 + "merge-descriptors": "^2.0.0", 2539 + "mime-types": "^3.0.0", 2540 + "on-finished": "^2.4.1", 2541 + "once": "^1.4.0", 2542 + "parseurl": "^1.3.3", 2543 + "proxy-addr": "^2.0.7", 2544 + "qs": "^6.14.0", 2545 + "range-parser": "^1.2.1", 2546 + "router": "^2.2.0", 2547 + "send": "^1.1.0", 2548 + "serve-static": "^2.2.0", 2549 + "statuses": "^2.0.1", 2550 + "type-is": "^2.0.1", 2551 + "vary": "^1.1.2" 2552 + }, 2553 + "engines": { 2554 + "node": ">= 18" 2555 + }, 2556 + "funding": { 2557 + "type": "opencollective", 2558 + "url": "https://opencollective.com/express" 2559 + } 2560 + }, 2561 + "node_modules/express-rate-limit": { 2562 + "version": "7.5.0", 2563 + "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-7.5.0.tgz", 2564 + "integrity": "sha512-eB5zbQh5h+VenMPM3fh+nw1YExi5nMr6HUCR62ELSP11huvxm/Uir1H1QEyTkk5QX6A58pX6NmaTMceKZ0Eodg==", 2565 + "dev": true, 2566 + "license": "MIT", 2567 + "engines": { 2568 + "node": ">= 16" 2569 + }, 2570 + "funding": { 2571 + "url": "https://github.com/sponsors/express-rate-limit" 2572 + }, 2573 + "peerDependencies": { 2574 + "express": "^4.11 || 5 || ^5.0.0-beta.1" 2575 + } 2576 + }, 2577 + "node_modules/exsolve": { 2578 + "version": "1.0.5", 2579 + "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.5.tgz", 2580 + "integrity": "sha512-pz5dvkYYKQ1AHVrgOzBKWeP4u4FRb3a6DNK2ucr0OoNwYIU4QWsJ+NM36LLzORT+z845MzKHHhpXiUF5nvQoJg==", 2581 + "dev": true, 2582 + "license": "MIT" 2583 + }, 2584 + "node_modules/extend": { 2585 + "version": "3.0.2", 2586 + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", 2587 + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", 2588 + "license": "MIT" 2589 + }, 2590 + "node_modules/fast-deep-equal": { 2591 + "version": "3.1.3", 2592 + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 2593 + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", 2594 + "dev": true, 2595 + "license": "MIT" 2596 + }, 2597 + "node_modules/fast-glob": { 2598 + "version": "3.3.3", 2599 + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", 2600 + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", 2601 + "dev": true, 2602 + "license": "MIT", 2603 + "dependencies": { 2604 + "@nodelib/fs.stat": "^2.0.2", 2605 + "@nodelib/fs.walk": "^1.2.3", 2606 + "glob-parent": "^5.1.2", 2607 + "merge2": "^1.3.0", 2608 + "micromatch": "^4.0.8" 2609 + }, 2610 + "engines": { 2611 + "node": ">=8.6.0" 2612 + } 2613 + }, 2614 + "node_modules/fast-glob/node_modules/glob-parent": { 2615 + "version": "5.1.2", 2616 + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 2617 + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 2618 + "dev": true, 2619 + "license": "ISC", 2620 + "dependencies": { 2621 + "is-glob": "^4.0.1" 2622 + }, 2623 + "engines": { 2624 + "node": ">= 6" 2625 + } 2626 + }, 2627 + "node_modules/fast-json-stable-stringify": { 2628 + "version": "2.1.0", 2629 + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 2630 + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", 2631 + "dev": true, 2632 + "license": "MIT" 2633 + }, 2634 + "node_modules/fast-levenshtein": { 2635 + "version": "2.0.6", 2636 + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 2637 + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", 2638 + "dev": true, 2639 + "license": "MIT" 2640 + }, 2641 + "node_modules/fastq": { 2642 + "version": "1.19.1", 2643 + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", 2644 + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", 2645 + "dev": true, 2646 + "license": "ISC", 2647 + "dependencies": { 2648 + "reusify": "^1.0.4" 2649 + } 2650 + }, 2651 + "node_modules/file-entry-cache": { 2652 + "version": "8.0.0", 2653 + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", 2654 + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", 2655 + "dev": true, 2656 + "license": "MIT", 2657 + "dependencies": { 2658 + "flat-cache": "^4.0.0" 2659 + }, 2660 + "engines": { 2661 + "node": ">=16.0.0" 2662 + } 2663 + }, 2664 + "node_modules/fill-range": { 2665 + "version": "7.1.1", 2666 + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", 2667 + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", 2668 + "dev": true, 2669 + "license": "MIT", 2670 + "dependencies": { 2671 + "to-regex-range": "^5.0.1" 2672 + }, 2673 + "engines": { 2674 + "node": ">=8" 2675 + } 2676 + }, 2677 + "node_modules/finalhandler": { 2678 + "version": "2.1.0", 2679 + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.0.tgz", 2680 + "integrity": "sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==", 2681 + "dev": true, 2682 + "license": "MIT", 2683 + "dependencies": { 2684 + "debug": "^4.4.0", 2685 + "encodeurl": "^2.0.0", 2686 + "escape-html": "^1.0.3", 2687 + "on-finished": "^2.4.1", 2688 + "parseurl": "^1.3.3", 2689 + "statuses": "^2.0.1" 2690 + }, 2691 + "engines": { 2692 + "node": ">= 0.8" 2693 + } 2694 + }, 2695 + "node_modules/find-up": { 2696 + "version": "5.0.0", 2697 + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", 2698 + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", 2699 + "dev": true, 2700 + "license": "MIT", 2701 + "dependencies": { 2702 + "locate-path": "^6.0.0", 2703 + "path-exists": "^4.0.0" 2704 + }, 2705 + "engines": { 2706 + "node": ">=10" 2707 + }, 2708 + "funding": { 2709 + "url": "https://github.com/sponsors/sindresorhus" 2710 + } 2711 + }, 2712 + "node_modules/flat-cache": { 2713 + "version": "4.0.1", 2714 + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", 2715 + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", 2716 + "dev": true, 2717 + "license": "MIT", 2718 + "dependencies": { 2719 + "flatted": "^3.2.9", 2720 + "keyv": "^4.5.4" 2721 + }, 2722 + "engines": { 2723 + "node": ">=16" 2724 + } 2725 + }, 2726 + "node_modules/flatted": { 2727 + "version": "3.3.3", 2728 + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", 2729 + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", 2730 + "dev": true, 2731 + "license": "ISC" 2732 + }, 2733 + "node_modules/forwarded": { 2734 + "version": "0.2.0", 2735 + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", 2736 + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", 2737 + "dev": true, 2738 + "license": "MIT", 2739 + "engines": { 2740 + "node": ">= 0.6" 2741 + } 2742 + }, 2743 + "node_modules/fresh": { 2744 + "version": "2.0.0", 2745 + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", 2746 + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", 2747 + "dev": true, 2748 + "license": "MIT", 2749 + "engines": { 2750 + "node": ">= 0.8" 2751 + } 2752 + }, 2753 + "node_modules/fsevents": { 2754 + "version": "2.3.3", 2755 + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", 2756 + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", 2757 + "dev": true, 2758 + "hasInstallScript": true, 2759 + "license": "MIT", 2760 + "optional": true, 2761 + "os": [ 2762 + "darwin" 2763 + ], 2764 + "engines": { 2765 + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 2766 + } 2767 + }, 2768 + "node_modules/function-bind": { 2769 + "version": "1.1.2", 2770 + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", 2771 + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", 2772 + "dev": true, 2773 + "license": "MIT", 2774 + "funding": { 2775 + "url": "https://github.com/sponsors/ljharb" 2776 + } 2777 + }, 2778 + "node_modules/gaxios": { 2779 + "version": "6.7.1", 2780 + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.7.1.tgz", 2781 + "integrity": "sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==", 2782 + "license": "Apache-2.0", 2783 + "dependencies": { 2784 + "extend": "^3.0.2", 2785 + "https-proxy-agent": "^7.0.1", 2786 + "is-stream": "^2.0.0", 2787 + "node-fetch": "^2.6.9", 2788 + "uuid": "^9.0.1" 2789 + }, 2790 + "engines": { 2791 + "node": ">=14" 2792 + } 2793 + }, 2794 + "node_modules/gcp-metadata": { 2795 + "version": "6.1.1", 2796 + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-6.1.1.tgz", 2797 + "integrity": "sha512-a4tiq7E0/5fTjxPAaH4jpjkSv/uCaU2p5KC6HVGrvl0cDjA8iBZv4vv1gyzlmK0ZUKqwpOyQMKzZQe3lTit77A==", 2798 + "license": "Apache-2.0", 2799 + "dependencies": { 2800 + "gaxios": "^6.1.1", 2801 + "google-logging-utils": "^0.0.2", 2802 + "json-bigint": "^1.0.0" 2803 + }, 2804 + "engines": { 2805 + "node": ">=14" 2806 + } 2807 + }, 2808 + "node_modules/get-intrinsic": { 2809 + "version": "1.3.0", 2810 + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", 2811 + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", 2812 + "dev": true, 2813 + "license": "MIT", 2814 + "dependencies": { 2815 + "call-bind-apply-helpers": "^1.0.2", 2816 + "es-define-property": "^1.0.1", 2817 + "es-errors": "^1.3.0", 2818 + "es-object-atoms": "^1.1.1", 2819 + "function-bind": "^1.1.2", 2820 + "get-proto": "^1.0.1", 2821 + "gopd": "^1.2.0", 2822 + "has-symbols": "^1.1.0", 2823 + "hasown": "^2.0.2", 2824 + "math-intrinsics": "^1.1.0" 2825 + }, 2826 + "engines": { 2827 + "node": ">= 0.4" 2828 + }, 2829 + "funding": { 2830 + "url": "https://github.com/sponsors/ljharb" 2831 + } 2832 + }, 2833 + "node_modules/get-proto": { 2834 + "version": "1.0.1", 2835 + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", 2836 + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", 2837 + "dev": true, 2838 + "license": "MIT", 2839 + "dependencies": { 2840 + "dunder-proto": "^1.0.1", 2841 + "es-object-atoms": "^1.0.0" 2842 + }, 2843 + "engines": { 2844 + "node": ">= 0.4" 2845 + } 2846 + }, 2847 + "node_modules/get-source": { 2848 + "version": "2.0.12", 2849 + "resolved": "https://registry.npmjs.org/get-source/-/get-source-2.0.12.tgz", 2850 + "integrity": "sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==", 2851 + "dev": true, 2852 + "license": "Unlicense", 2853 + "dependencies": { 2854 + "data-uri-to-buffer": "^2.0.0", 2855 + "source-map": "^0.6.1" 2856 + } 2857 + }, 2858 + "node_modules/glob-parent": { 2859 + "version": "6.0.2", 2860 + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", 2861 + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", 2862 + "dev": true, 2863 + "license": "ISC", 2864 + "dependencies": { 2865 + "is-glob": "^4.0.3" 2866 + }, 2867 + "engines": { 2868 + "node": ">=10.13.0" 2869 + } 2870 + }, 2871 + "node_modules/glob-to-regexp": { 2872 + "version": "0.4.1", 2873 + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", 2874 + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", 2875 + "dev": true, 2876 + "license": "BSD-2-Clause" 2877 + }, 2878 + "node_modules/globals": { 2879 + "version": "11.12.0", 2880 + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", 2881 + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", 2882 + "dev": true, 2883 + "license": "MIT", 2884 + "engines": { 2885 + "node": ">=4" 2886 + } 2887 + }, 2888 + "node_modules/google-auth-library": { 2889 + "version": "9.15.1", 2890 + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-9.15.1.tgz", 2891 + "integrity": "sha512-Jb6Z0+nvECVz+2lzSMt9u98UsoakXxA2HGHMCxh+so3n90XgYWkq5dur19JAJV7ONiJY22yBTyJB1TSkvPq9Ng==", 2892 + "license": "Apache-2.0", 2893 + "dependencies": { 2894 + "base64-js": "^1.3.0", 2895 + "ecdsa-sig-formatter": "^1.0.11", 2896 + "gaxios": "^6.1.1", 2897 + "gcp-metadata": "^6.1.0", 2898 + "gtoken": "^7.0.0", 2899 + "jws": "^4.0.0" 2900 + }, 2901 + "engines": { 2902 + "node": ">=14" 2903 + } 2904 + }, 2905 + "node_modules/google-logging-utils": { 2906 + "version": "0.0.2", 2907 + "resolved": "https://registry.npmjs.org/google-logging-utils/-/google-logging-utils-0.0.2.tgz", 2908 + "integrity": "sha512-NEgUnEcBiP5HrPzufUkBzJOD/Sxsco3rLNo1F1TNf7ieU8ryUzBhqba8r756CjLX7rn3fHl6iLEwPYuqpoKgQQ==", 2909 + "license": "Apache-2.0", 2910 + "engines": { 2911 + "node": ">=14" 2912 + } 2913 + }, 2914 + "node_modules/gopd": { 2915 + "version": "1.2.0", 2916 + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", 2917 + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", 2918 + "dev": true, 2919 + "license": "MIT", 2920 + "engines": { 2921 + "node": ">= 0.4" 2922 + }, 2923 + "funding": { 2924 + "url": "https://github.com/sponsors/ljharb" 2925 + } 2926 + }, 2927 + "node_modules/graphemer": { 2928 + "version": "1.4.0", 2929 + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", 2930 + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", 2931 + "dev": true, 2932 + "license": "MIT" 2933 + }, 2934 + "node_modules/gtoken": { 2935 + "version": "7.1.0", 2936 + "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-7.1.0.tgz", 2937 + "integrity": "sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==", 2938 + "license": "MIT", 2939 + "dependencies": { 2940 + "gaxios": "^6.0.0", 2941 + "jws": "^4.0.0" 2942 + }, 2943 + "engines": { 2944 + "node": ">=14.0.0" 2945 + } 2946 + }, 2947 + "node_modules/has-flag": { 2948 + "version": "4.0.0", 2949 + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 2950 + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 2951 + "dev": true, 2952 + "license": "MIT", 2953 + "engines": { 2954 + "node": ">=8" 2955 + } 2956 + }, 2957 + "node_modules/has-symbols": { 2958 + "version": "1.1.0", 2959 + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", 2960 + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", 2961 + "dev": true, 2962 + "license": "MIT", 2963 + "engines": { 2964 + "node": ">= 0.4" 2965 + }, 2966 + "funding": { 2967 + "url": "https://github.com/sponsors/ljharb" 2968 + } 2969 + }, 2970 + "node_modules/hasown": { 2971 + "version": "2.0.2", 2972 + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", 2973 + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", 2974 + "dev": true, 2975 + "license": "MIT", 2976 + "dependencies": { 2977 + "function-bind": "^1.1.2" 2978 + }, 2979 + "engines": { 2980 + "node": ">= 0.4" 2981 + } 2982 + }, 2983 + "node_modules/hono": { 2984 + "version": "4.7.9", 2985 + "resolved": "https://registry.npmjs.org/hono/-/hono-4.7.9.tgz", 2986 + "integrity": "sha512-/EsCoR5h7N4yu01TDu9GMCCJa6ZLk5ZJIWFFGNawAXmd1Tp53+Wir4xm0D2X19bbykWUlzQG0+BvPAji6p9E8Q==", 2987 + "license": "MIT", 2988 + "engines": { 2989 + "node": ">=16.9.0" 2990 + } 2991 + }, 2992 + "node_modules/http-errors": { 2993 + "version": "2.0.0", 2994 + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", 2995 + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", 2996 + "dev": true, 2997 + "license": "MIT", 2998 + "dependencies": { 2999 + "depd": "2.0.0", 3000 + "inherits": "2.0.4", 3001 + "setprototypeof": "1.2.0", 3002 + "statuses": "2.0.1", 3003 + "toidentifier": "1.0.1" 3004 + }, 3005 + "engines": { 3006 + "node": ">= 0.8" 3007 + } 3008 + }, 3009 + "node_modules/https-proxy-agent": { 3010 + "version": "7.0.6", 3011 + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", 3012 + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", 3013 + "license": "MIT", 3014 + "dependencies": { 3015 + "agent-base": "^7.1.2", 3016 + "debug": "4" 3017 + }, 3018 + "engines": { 3019 + "node": ">= 14" 3020 + } 3021 + }, 3022 + "node_modules/iconv-lite": { 3023 + "version": "0.6.3", 3024 + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", 3025 + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", 3026 + "dev": true, 3027 + "license": "MIT", 3028 + "dependencies": { 3029 + "safer-buffer": ">= 2.1.2 < 3.0.0" 3030 + }, 3031 + "engines": { 3032 + "node": ">=0.10.0" 3033 + } 3034 + }, 3035 + "node_modules/ignore": { 3036 + "version": "5.3.2", 3037 + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", 3038 + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", 3039 + "dev": true, 3040 + "license": "MIT", 3041 + "engines": { 3042 + "node": ">= 4" 3043 + } 3044 + }, 3045 + "node_modules/import-fresh": { 3046 + "version": "3.3.1", 3047 + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", 3048 + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", 3049 + "dev": true, 3050 + "license": "MIT", 3051 + "dependencies": { 3052 + "parent-module": "^1.0.0", 3053 + "resolve-from": "^4.0.0" 3054 + }, 3055 + "engines": { 3056 + "node": ">=6" 3057 + }, 3058 + "funding": { 3059 + "url": "https://github.com/sponsors/sindresorhus" 3060 + } 3061 + }, 3062 + "node_modules/imurmurhash": { 3063 + "version": "0.1.4", 3064 + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 3065 + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", 3066 + "dev": true, 3067 + "license": "MIT", 3068 + "engines": { 3069 + "node": ">=0.8.19" 3070 + } 3071 + }, 3072 + "node_modules/inherits": { 3073 + "version": "2.0.4", 3074 + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 3075 + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 3076 + "dev": true, 3077 + "license": "ISC" 3078 + }, 3079 + "node_modules/ipaddr.js": { 3080 + "version": "1.9.1", 3081 + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", 3082 + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", 3083 + "dev": true, 3084 + "license": "MIT", 3085 + "engines": { 3086 + "node": ">= 0.10" 3087 + } 3088 + }, 3089 + "node_modules/is-arrayish": { 3090 + "version": "0.3.2", 3091 + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", 3092 + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", 3093 + "dev": true, 3094 + "license": "MIT", 3095 + "optional": true 3096 + }, 3097 + "node_modules/is-extglob": { 3098 + "version": "2.1.1", 3099 + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 3100 + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 3101 + "dev": true, 3102 + "license": "MIT", 3103 + "engines": { 3104 + "node": ">=0.10.0" 3105 + } 3106 + }, 3107 + "node_modules/is-glob": { 3108 + "version": "4.0.3", 3109 + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 3110 + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 3111 + "dev": true, 3112 + "license": "MIT", 3113 + "dependencies": { 3114 + "is-extglob": "^2.1.1" 3115 + }, 3116 + "engines": { 3117 + "node": ">=0.10.0" 3118 + } 3119 + }, 3120 + "node_modules/is-number": { 3121 + "version": "7.0.0", 3122 + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 3123 + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 3124 + "dev": true, 3125 + "license": "MIT", 3126 + "engines": { 3127 + "node": ">=0.12.0" 3128 + } 3129 + }, 3130 + "node_modules/is-promise": { 3131 + "version": "4.0.0", 3132 + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", 3133 + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", 3134 + "dev": true, 3135 + "license": "MIT" 3136 + }, 3137 + "node_modules/is-stream": { 3138 + "version": "2.0.1", 3139 + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", 3140 + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", 3141 + "license": "MIT", 3142 + "engines": { 3143 + "node": ">=8" 3144 + }, 3145 + "funding": { 3146 + "url": "https://github.com/sponsors/sindresorhus" 3147 + } 3148 + }, 3149 + "node_modules/isexe": { 3150 + "version": "2.0.0", 3151 + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 3152 + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", 3153 + "dev": true, 3154 + "license": "ISC" 3155 + }, 3156 + "node_modules/javascript-natural-sort": { 3157 + "version": "0.7.1", 3158 + "resolved": "https://registry.npmjs.org/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz", 3159 + "integrity": "sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==", 3160 + "dev": true, 3161 + "license": "MIT" 3162 + }, 3163 + "node_modules/jose": { 3164 + "version": "6.0.11", 3165 + "resolved": "https://registry.npmjs.org/jose/-/jose-6.0.11.tgz", 3166 + "integrity": "sha512-QxG7EaliDARm1O1S8BGakqncGT9s25bKL1WSf6/oa17Tkqwi8D2ZNglqCF+DsYF88/rV66Q/Q2mFAy697E1DUg==", 3167 + "license": "MIT", 3168 + "funding": { 3169 + "url": "https://github.com/sponsors/panva" 3170 + } 3171 + }, 3172 + "node_modules/js-tokens": { 3173 + "version": "4.0.0", 3174 + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 3175 + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 3176 + "dev": true, 3177 + "license": "MIT" 3178 + }, 3179 + "node_modules/js-yaml": { 3180 + "version": "4.1.0", 3181 + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", 3182 + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", 3183 + "dev": true, 3184 + "license": "MIT", 3185 + "dependencies": { 3186 + "argparse": "^2.0.1" 3187 + }, 3188 + "bin": { 3189 + "js-yaml": "bin/js-yaml.js" 3190 + } 3191 + }, 3192 + "node_modules/jsesc": { 3193 + "version": "3.1.0", 3194 + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", 3195 + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", 3196 + "dev": true, 3197 + "license": "MIT", 3198 + "bin": { 3199 + "jsesc": "bin/jsesc" 3200 + }, 3201 + "engines": { 3202 + "node": ">=6" 3203 + } 3204 + }, 3205 + "node_modules/json-bigint": { 3206 + "version": "1.0.0", 3207 + "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", 3208 + "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", 3209 + "license": "MIT", 3210 + "dependencies": { 3211 + "bignumber.js": "^9.0.0" 3212 + } 3213 + }, 3214 + "node_modules/json-buffer": { 3215 + "version": "3.0.1", 3216 + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", 3217 + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", 3218 + "dev": true, 3219 + "license": "MIT" 3220 + }, 3221 + "node_modules/json-schema-traverse": { 3222 + "version": "0.4.1", 3223 + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 3224 + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 3225 + "dev": true, 3226 + "license": "MIT" 3227 + }, 3228 + "node_modules/json-stable-stringify-without-jsonify": { 3229 + "version": "1.0.1", 3230 + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", 3231 + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", 3232 + "dev": true, 3233 + "license": "MIT" 3234 + }, 3235 + "node_modules/jwa": { 3236 + "version": "2.0.1", 3237 + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz", 3238 + "integrity": "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==", 3239 + "license": "MIT", 3240 + "dependencies": { 3241 + "buffer-equal-constant-time": "^1.0.1", 3242 + "ecdsa-sig-formatter": "1.0.11", 3243 + "safe-buffer": "^5.0.1" 3244 + } 3245 + }, 3246 + "node_modules/jws": { 3247 + "version": "4.0.0", 3248 + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", 3249 + "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", 3250 + "license": "MIT", 3251 + "dependencies": { 3252 + "jwa": "^2.0.0", 3253 + "safe-buffer": "^5.0.1" 3254 + } 3255 + }, 3256 + "node_modules/keyv": { 3257 + "version": "4.5.4", 3258 + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", 3259 + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", 3260 + "dev": true, 3261 + "license": "MIT", 3262 + "dependencies": { 3263 + "json-buffer": "3.0.1" 3264 + } 3265 + }, 3266 + "node_modules/levn": { 3267 + "version": "0.4.1", 3268 + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", 3269 + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", 3270 + "dev": true, 3271 + "license": "MIT", 3272 + "dependencies": { 3273 + "prelude-ls": "^1.2.1", 3274 + "type-check": "~0.4.0" 3275 + }, 3276 + "engines": { 3277 + "node": ">= 0.8.0" 3278 + } 3279 + }, 3280 + "node_modules/locate-path": { 3281 + "version": "6.0.0", 3282 + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", 3283 + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", 3284 + "dev": true, 3285 + "license": "MIT", 3286 + "dependencies": { 3287 + "p-locate": "^5.0.0" 3288 + }, 3289 + "engines": { 3290 + "node": ">=10" 3291 + }, 3292 + "funding": { 3293 + "url": "https://github.com/sponsors/sindresorhus" 3294 + } 3295 + }, 3296 + "node_modules/lodash": { 3297 + "version": "4.17.21", 3298 + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", 3299 + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", 3300 + "dev": true, 3301 + "license": "MIT" 3302 + }, 3303 + "node_modules/lodash.merge": { 3304 + "version": "4.6.2", 3305 + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", 3306 + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", 3307 + "dev": true, 3308 + "license": "MIT" 3309 + }, 3310 + "node_modules/math-intrinsics": { 3311 + "version": "1.1.0", 3312 + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", 3313 + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", 3314 + "dev": true, 3315 + "license": "MIT", 3316 + "engines": { 3317 + "node": ">= 0.4" 3318 + } 3319 + }, 3320 + "node_modules/media-typer": { 3321 + "version": "1.1.0", 3322 + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", 3323 + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", 3324 + "dev": true, 3325 + "license": "MIT", 3326 + "engines": { 3327 + "node": ">= 0.8" 3328 + } 3329 + }, 3330 + "node_modules/merge-descriptors": { 3331 + "version": "2.0.0", 3332 + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", 3333 + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", 3334 + "dev": true, 3335 + "license": "MIT", 3336 + "engines": { 3337 + "node": ">=18" 3338 + }, 3339 + "funding": { 3340 + "url": "https://github.com/sponsors/sindresorhus" 3341 + } 3342 + }, 3343 + "node_modules/merge2": { 3344 + "version": "1.4.1", 3345 + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", 3346 + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", 3347 + "dev": true, 3348 + "license": "MIT", 3349 + "engines": { 3350 + "node": ">= 8" 3351 + } 3352 + }, 3353 + "node_modules/micromatch": { 3354 + "version": "4.0.8", 3355 + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", 3356 + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", 3357 + "dev": true, 3358 + "license": "MIT", 3359 + "dependencies": { 3360 + "braces": "^3.0.3", 3361 + "picomatch": "^2.3.1" 3362 + }, 3363 + "engines": { 3364 + "node": ">=8.6" 3365 + } 3366 + }, 3367 + "node_modules/micromatch/node_modules/picomatch": { 3368 + "version": "2.3.1", 3369 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 3370 + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 3371 + "dev": true, 3372 + "license": "MIT", 3373 + "engines": { 3374 + "node": ">=8.6" 3375 + }, 3376 + "funding": { 3377 + "url": "https://github.com/sponsors/jonschlinkert" 3378 + } 3379 + }, 3380 + "node_modules/mime": { 3381 + "version": "3.0.0", 3382 + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", 3383 + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", 3384 + "dev": true, 3385 + "license": "MIT", 3386 + "bin": { 3387 + "mime": "cli.js" 3388 + }, 3389 + "engines": { 3390 + "node": ">=10.0.0" 3391 + } 3392 + }, 3393 + "node_modules/mime-db": { 3394 + "version": "1.54.0", 3395 + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", 3396 + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", 3397 + "dev": true, 3398 + "license": "MIT", 3399 + "engines": { 3400 + "node": ">= 0.6" 3401 + } 3402 + }, 3403 + "node_modules/mime-types": { 3404 + "version": "3.0.1", 3405 + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", 3406 + "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", 3407 + "dev": true, 3408 + "license": "MIT", 3409 + "dependencies": { 3410 + "mime-db": "^1.54.0" 3411 + }, 3412 + "engines": { 3413 + "node": ">= 0.6" 3414 + } 3415 + }, 3416 + "node_modules/minimatch": { 3417 + "version": "3.1.2", 3418 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 3419 + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 3420 + "dev": true, 3421 + "license": "ISC", 3422 + "dependencies": { 3423 + "brace-expansion": "^1.1.7" 3424 + }, 3425 + "engines": { 3426 + "node": "*" 3427 + } 3428 + }, 3429 + "node_modules/ms": { 3430 + "version": "2.1.3", 3431 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 3432 + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", 3433 + "license": "MIT" 3434 + }, 3435 + "node_modules/mustache": { 3436 + "version": "4.2.0", 3437 + "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", 3438 + "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", 3439 + "dev": true, 3440 + "license": "MIT", 3441 + "bin": { 3442 + "mustache": "bin/mustache" 3443 + } 3444 + }, 3445 + "node_modules/natural-compare": { 3446 + "version": "1.4.0", 3447 + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 3448 + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", 3449 + "dev": true, 3450 + "license": "MIT" 3451 + }, 3452 + "node_modules/negotiator": { 3453 + "version": "1.0.0", 3454 + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", 3455 + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", 3456 + "dev": true, 3457 + "license": "MIT", 3458 + "engines": { 3459 + "node": ">= 0.6" 3460 + } 3461 + }, 3462 + "node_modules/node-fetch": { 3463 + "version": "2.7.0", 3464 + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", 3465 + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", 3466 + "license": "MIT", 3467 + "dependencies": { 3468 + "whatwg-url": "^5.0.0" 3469 + }, 3470 + "engines": { 3471 + "node": "4.x || >=6.0.0" 3472 + }, 3473 + "peerDependencies": { 3474 + "encoding": "^0.1.0" 3475 + }, 3476 + "peerDependenciesMeta": { 3477 + "encoding": { 3478 + "optional": true 3479 + } 3480 + } 3481 + }, 3482 + "node_modules/object-assign": { 3483 + "version": "4.1.1", 3484 + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 3485 + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", 3486 + "dev": true, 3487 + "license": "MIT", 3488 + "engines": { 3489 + "node": ">=0.10.0" 3490 + } 3491 + }, 3492 + "node_modules/object-inspect": { 3493 + "version": "1.13.4", 3494 + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", 3495 + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", 3496 + "dev": true, 3497 + "license": "MIT", 3498 + "engines": { 3499 + "node": ">= 0.4" 3500 + }, 3501 + "funding": { 3502 + "url": "https://github.com/sponsors/ljharb" 3503 + } 3504 + }, 3505 + "node_modules/ohash": { 3506 + "version": "2.0.11", 3507 + "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz", 3508 + "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==", 3509 + "dev": true, 3510 + "license": "MIT" 3511 + }, 3512 + "node_modules/on-finished": { 3513 + "version": "2.4.1", 3514 + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", 3515 + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", 3516 + "dev": true, 3517 + "license": "MIT", 3518 + "dependencies": { 3519 + "ee-first": "1.1.1" 3520 + }, 3521 + "engines": { 3522 + "node": ">= 0.8" 3523 + } 3524 + }, 3525 + "node_modules/once": { 3526 + "version": "1.4.0", 3527 + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 3528 + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 3529 + "dev": true, 3530 + "license": "ISC", 3531 + "dependencies": { 3532 + "wrappy": "1" 3533 + } 3534 + }, 3535 + "node_modules/optionator": { 3536 + "version": "0.9.4", 3537 + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", 3538 + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", 3539 + "dev": true, 3540 + "license": "MIT", 3541 + "dependencies": { 3542 + "deep-is": "^0.1.3", 3543 + "fast-levenshtein": "^2.0.6", 3544 + "levn": "^0.4.1", 3545 + "prelude-ls": "^1.2.1", 3546 + "type-check": "^0.4.0", 3547 + "word-wrap": "^1.2.5" 3548 + }, 3549 + "engines": { 3550 + "node": ">= 0.8.0" 3551 + } 3552 + }, 3553 + "node_modules/p-limit": { 3554 + "version": "3.1.0", 3555 + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", 3556 + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", 3557 + "dev": true, 3558 + "license": "MIT", 3559 + "dependencies": { 3560 + "yocto-queue": "^0.1.0" 3561 + }, 3562 + "engines": { 3563 + "node": ">=10" 3564 + }, 3565 + "funding": { 3566 + "url": "https://github.com/sponsors/sindresorhus" 3567 + } 3568 + }, 3569 + "node_modules/p-locate": { 3570 + "version": "5.0.0", 3571 + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", 3572 + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", 3573 + "dev": true, 3574 + "license": "MIT", 3575 + "dependencies": { 3576 + "p-limit": "^3.0.2" 3577 + }, 3578 + "engines": { 3579 + "node": ">=10" 3580 + }, 3581 + "funding": { 3582 + "url": "https://github.com/sponsors/sindresorhus" 3583 + } 3584 + }, 3585 + "node_modules/parent-module": { 3586 + "version": "1.0.1", 3587 + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 3588 + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 3589 + "dev": true, 3590 + "license": "MIT", 3591 + "dependencies": { 3592 + "callsites": "^3.0.0" 3593 + }, 3594 + "engines": { 3595 + "node": ">=6" 3596 + } 3597 + }, 3598 + "node_modules/parseurl": { 3599 + "version": "1.3.3", 3600 + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", 3601 + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", 3602 + "dev": true, 3603 + "license": "MIT", 3604 + "engines": { 3605 + "node": ">= 0.8" 3606 + } 3607 + }, 3608 + "node_modules/path-exists": { 3609 + "version": "4.0.0", 3610 + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 3611 + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 3612 + "dev": true, 3613 + "license": "MIT", 3614 + "engines": { 3615 + "node": ">=8" 3616 + } 3617 + }, 3618 + "node_modules/path-key": { 3619 + "version": "3.1.1", 3620 + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 3621 + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 3622 + "dev": true, 3623 + "license": "MIT", 3624 + "engines": { 3625 + "node": ">=8" 3626 + } 3627 + }, 3628 + "node_modules/path-to-regexp": { 3629 + "version": "6.3.0", 3630 + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", 3631 + "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", 3632 + "dev": true, 3633 + "license": "MIT" 3634 + }, 3635 + "node_modules/pathe": { 3636 + "version": "2.0.3", 3637 + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", 3638 + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", 3639 + "dev": true, 3640 + "license": "MIT" 3641 + }, 3642 + "node_modules/picocolors": { 3643 + "version": "1.1.1", 3644 + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", 3645 + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", 3646 + "dev": true, 3647 + "license": "ISC" 3648 + }, 3649 + "node_modules/pkce-challenge": { 3650 + "version": "5.0.0", 3651 + "resolved": "https://registry.npmjs.org/pkce-challenge/-/pkce-challenge-5.0.0.tgz", 3652 + "integrity": "sha512-ueGLflrrnvwB3xuo/uGob5pd5FN7l0MsLf0Z87o/UQmRtwjvfylfc9MurIxRAWywCYTgrvpXBcqjV4OfCYGCIQ==", 3653 + "dev": true, 3654 + "license": "MIT", 3655 + "engines": { 3656 + "node": ">=16.20.0" 3657 + } 3658 + }, 3659 + "node_modules/prelude-ls": { 3660 + "version": "1.2.1", 3661 + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", 3662 + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", 3663 + "dev": true, 3664 + "license": "MIT", 3665 + "engines": { 3666 + "node": ">= 0.8.0" 3667 + } 3668 + }, 3669 + "node_modules/prettier": { 3670 + "version": "3.5.3", 3671 + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", 3672 + "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", 3673 + "dev": true, 3674 + "license": "MIT", 3675 + "bin": { 3676 + "prettier": "bin/prettier.cjs" 3677 + }, 3678 + "engines": { 3679 + "node": ">=14" 3680 + }, 3681 + "funding": { 3682 + "url": "https://github.com/prettier/prettier?sponsor=1" 3683 + } 3684 + }, 3685 + "node_modules/printable-characters": { 3686 + "version": "1.0.42", 3687 + "resolved": "https://registry.npmjs.org/printable-characters/-/printable-characters-1.0.42.tgz", 3688 + "integrity": "sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==", 3689 + "dev": true, 3690 + "license": "Unlicense" 3691 + }, 3692 + "node_modules/proxy-addr": { 3693 + "version": "2.0.7", 3694 + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", 3695 + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", 3696 + "dev": true, 3697 + "license": "MIT", 3698 + "dependencies": { 3699 + "forwarded": "0.2.0", 3700 + "ipaddr.js": "1.9.1" 3701 + }, 3702 + "engines": { 3703 + "node": ">= 0.10" 3704 + } 3705 + }, 3706 + "node_modules/punycode": { 3707 + "version": "2.3.1", 3708 + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", 3709 + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", 3710 + "dev": true, 3711 + "license": "MIT", 3712 + "engines": { 3713 + "node": ">=6" 3714 + } 3715 + }, 3716 + "node_modules/qs": { 3717 + "version": "6.14.0", 3718 + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", 3719 + "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", 3720 + "dev": true, 3721 + "license": "BSD-3-Clause", 3722 + "dependencies": { 3723 + "side-channel": "^1.1.0" 3724 + }, 3725 + "engines": { 3726 + "node": ">=0.6" 3727 + }, 3728 + "funding": { 3729 + "url": "https://github.com/sponsors/ljharb" 3730 + } 3731 + }, 3732 + "node_modules/queue-microtask": { 3733 + "version": "1.2.3", 3734 + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 3735 + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 3736 + "dev": true, 3737 + "funding": [ 3738 + { 3739 + "type": "github", 3740 + "url": "https://github.com/sponsors/feross" 3741 + }, 3742 + { 3743 + "type": "patreon", 3744 + "url": "https://www.patreon.com/feross" 3745 + }, 3746 + { 3747 + "type": "consulting", 3748 + "url": "https://feross.org/support" 3749 + } 3750 + ], 3751 + "license": "MIT" 3752 + }, 3753 + "node_modules/range-parser": { 3754 + "version": "1.2.1", 3755 + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", 3756 + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", 3757 + "dev": true, 3758 + "license": "MIT", 3759 + "engines": { 3760 + "node": ">= 0.6" 3761 + } 3762 + }, 3763 + "node_modules/raw-body": { 3764 + "version": "3.0.0", 3765 + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.0.tgz", 3766 + "integrity": "sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==", 3767 + "dev": true, 3768 + "license": "MIT", 3769 + "dependencies": { 3770 + "bytes": "3.1.2", 3771 + "http-errors": "2.0.0", 3772 + "iconv-lite": "0.6.3", 3773 + "unpipe": "1.0.0" 3774 + }, 3775 + "engines": { 3776 + "node": ">= 0.8" 3777 + } 3778 + }, 3779 + "node_modules/resolve-from": { 3780 + "version": "4.0.0", 3781 + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 3782 + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 3783 + "dev": true, 3784 + "license": "MIT", 3785 + "engines": { 3786 + "node": ">=4" 3787 + } 3788 + }, 3789 + "node_modules/reusify": { 3790 + "version": "1.1.0", 3791 + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", 3792 + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", 3793 + "dev": true, 3794 + "license": "MIT", 3795 + "engines": { 3796 + "iojs": ">=1.0.0", 3797 + "node": ">=0.10.0" 3798 + } 3799 + }, 3800 + "node_modules/router": { 3801 + "version": "2.2.0", 3802 + "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", 3803 + "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", 3804 + "dev": true, 3805 + "license": "MIT", 3806 + "dependencies": { 3807 + "debug": "^4.4.0", 3808 + "depd": "^2.0.0", 3809 + "is-promise": "^4.0.0", 3810 + "parseurl": "^1.3.3", 3811 + "path-to-regexp": "^8.0.0" 3812 + }, 3813 + "engines": { 3814 + "node": ">= 18" 3815 + } 3816 + }, 3817 + "node_modules/router/node_modules/path-to-regexp": { 3818 + "version": "8.2.0", 3819 + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.2.0.tgz", 3820 + "integrity": "sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==", 3821 + "dev": true, 3822 + "license": "MIT", 3823 + "engines": { 3824 + "node": ">=16" 3825 + } 3826 + }, 3827 + "node_modules/run-parallel": { 3828 + "version": "1.2.0", 3829 + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", 3830 + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 3831 + "dev": true, 3832 + "funding": [ 3833 + { 3834 + "type": "github", 3835 + "url": "https://github.com/sponsors/feross" 3836 + }, 3837 + { 3838 + "type": "patreon", 3839 + "url": "https://www.patreon.com/feross" 3840 + }, 3841 + { 3842 + "type": "consulting", 3843 + "url": "https://feross.org/support" 3844 + } 3845 + ], 3846 + "license": "MIT", 3847 + "dependencies": { 3848 + "queue-microtask": "^1.2.2" 3849 + } 3850 + }, 3851 + "node_modules/safe-buffer": { 3852 + "version": "5.2.1", 3853 + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 3854 + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", 3855 + "funding": [ 3856 + { 3857 + "type": "github", 3858 + "url": "https://github.com/sponsors/feross" 3859 + }, 3860 + { 3861 + "type": "patreon", 3862 + "url": "https://www.patreon.com/feross" 3863 + }, 3864 + { 3865 + "type": "consulting", 3866 + "url": "https://feross.org/support" 3867 + } 3868 + ], 3869 + "license": "MIT" 3870 + }, 3871 + "node_modules/safer-buffer": { 3872 + "version": "2.1.2", 3873 + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 3874 + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", 3875 + "dev": true, 3876 + "license": "MIT" 3877 + }, 3878 + "node_modules/semver": { 3879 + "version": "7.7.2", 3880 + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", 3881 + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", 3882 + "dev": true, 3883 + "license": "ISC", 3884 + "bin": { 3885 + "semver": "bin/semver.js" 3886 + }, 3887 + "engines": { 3888 + "node": ">=10" 3889 + } 3890 + }, 3891 + "node_modules/send": { 3892 + "version": "1.2.0", 3893 + "resolved": "https://registry.npmjs.org/send/-/send-1.2.0.tgz", 3894 + "integrity": "sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==", 3895 + "dev": true, 3896 + "license": "MIT", 3897 + "dependencies": { 3898 + "debug": "^4.3.5", 3899 + "encodeurl": "^2.0.0", 3900 + "escape-html": "^1.0.3", 3901 + "etag": "^1.8.1", 3902 + "fresh": "^2.0.0", 3903 + "http-errors": "^2.0.0", 3904 + "mime-types": "^3.0.1", 3905 + "ms": "^2.1.3", 3906 + "on-finished": "^2.4.1", 3907 + "range-parser": "^1.2.1", 3908 + "statuses": "^2.0.1" 3909 + }, 3910 + "engines": { 3911 + "node": ">= 18" 3912 + } 3913 + }, 3914 + "node_modules/serve-static": { 3915 + "version": "2.2.0", 3916 + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.0.tgz", 3917 + "integrity": "sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==", 3918 + "dev": true, 3919 + "license": "MIT", 3920 + "dependencies": { 3921 + "encodeurl": "^2.0.0", 3922 + "escape-html": "^1.0.3", 3923 + "parseurl": "^1.3.3", 3924 + "send": "^1.2.0" 3925 + }, 3926 + "engines": { 3927 + "node": ">= 18" 3928 + } 3929 + }, 3930 + "node_modules/setprototypeof": { 3931 + "version": "1.2.0", 3932 + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", 3933 + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", 3934 + "dev": true, 3935 + "license": "ISC" 3936 + }, 3937 + "node_modules/sharp": { 3938 + "version": "0.33.5", 3939 + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", 3940 + "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==", 3941 + "dev": true, 3942 + "hasInstallScript": true, 3943 + "license": "Apache-2.0", 3944 + "optional": true, 3945 + "dependencies": { 3946 + "color": "^4.2.3", 3947 + "detect-libc": "^2.0.3", 3948 + "semver": "^7.6.3" 3949 + }, 3950 + "engines": { 3951 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 3952 + }, 3953 + "funding": { 3954 + "url": "https://opencollective.com/libvips" 3955 + }, 3956 + "optionalDependencies": { 3957 + "@img/sharp-darwin-arm64": "0.33.5", 3958 + "@img/sharp-darwin-x64": "0.33.5", 3959 + "@img/sharp-libvips-darwin-arm64": "1.0.4", 3960 + "@img/sharp-libvips-darwin-x64": "1.0.4", 3961 + "@img/sharp-libvips-linux-arm": "1.0.5", 3962 + "@img/sharp-libvips-linux-arm64": "1.0.4", 3963 + "@img/sharp-libvips-linux-s390x": "1.0.4", 3964 + "@img/sharp-libvips-linux-x64": "1.0.4", 3965 + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", 3966 + "@img/sharp-libvips-linuxmusl-x64": "1.0.4", 3967 + "@img/sharp-linux-arm": "0.33.5", 3968 + "@img/sharp-linux-arm64": "0.33.5", 3969 + "@img/sharp-linux-s390x": "0.33.5", 3970 + "@img/sharp-linux-x64": "0.33.5", 3971 + "@img/sharp-linuxmusl-arm64": "0.33.5", 3972 + "@img/sharp-linuxmusl-x64": "0.33.5", 3973 + "@img/sharp-wasm32": "0.33.5", 3974 + "@img/sharp-win32-ia32": "0.33.5", 3975 + "@img/sharp-win32-x64": "0.33.5" 3976 + } 3977 + }, 3978 + "node_modules/shebang-command": { 3979 + "version": "2.0.0", 3980 + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 3981 + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 3982 + "dev": true, 3983 + "license": "MIT", 3984 + "dependencies": { 3985 + "shebang-regex": "^3.0.0" 3986 + }, 3987 + "engines": { 3988 + "node": ">=8" 3989 + } 3990 + }, 3991 + "node_modules/shebang-regex": { 3992 + "version": "3.0.0", 3993 + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 3994 + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 3995 + "dev": true, 3996 + "license": "MIT", 3997 + "engines": { 3998 + "node": ">=8" 3999 + } 4000 + }, 4001 + "node_modules/side-channel": { 4002 + "version": "1.1.0", 4003 + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", 4004 + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", 4005 + "dev": true, 4006 + "license": "MIT", 4007 + "dependencies": { 4008 + "es-errors": "^1.3.0", 4009 + "object-inspect": "^1.13.3", 4010 + "side-channel-list": "^1.0.0", 4011 + "side-channel-map": "^1.0.1", 4012 + "side-channel-weakmap": "^1.0.2" 4013 + }, 4014 + "engines": { 4015 + "node": ">= 0.4" 4016 + }, 4017 + "funding": { 4018 + "url": "https://github.com/sponsors/ljharb" 4019 + } 4020 + }, 4021 + "node_modules/side-channel-list": { 4022 + "version": "1.0.0", 4023 + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", 4024 + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", 4025 + "dev": true, 4026 + "license": "MIT", 4027 + "dependencies": { 4028 + "es-errors": "^1.3.0", 4029 + "object-inspect": "^1.13.3" 4030 + }, 4031 + "engines": { 4032 + "node": ">= 0.4" 4033 + }, 4034 + "funding": { 4035 + "url": "https://github.com/sponsors/ljharb" 4036 + } 4037 + }, 4038 + "node_modules/side-channel-map": { 4039 + "version": "1.0.1", 4040 + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", 4041 + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", 4042 + "dev": true, 4043 + "license": "MIT", 4044 + "dependencies": { 4045 + "call-bound": "^1.0.2", 4046 + "es-errors": "^1.3.0", 4047 + "get-intrinsic": "^1.2.5", 4048 + "object-inspect": "^1.13.3" 4049 + }, 4050 + "engines": { 4051 + "node": ">= 0.4" 4052 + }, 4053 + "funding": { 4054 + "url": "https://github.com/sponsors/ljharb" 4055 + } 4056 + }, 4057 + "node_modules/side-channel-weakmap": { 4058 + "version": "1.0.2", 4059 + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", 4060 + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", 4061 + "dev": true, 4062 + "license": "MIT", 4063 + "dependencies": { 4064 + "call-bound": "^1.0.2", 4065 + "es-errors": "^1.3.0", 4066 + "get-intrinsic": "^1.2.5", 4067 + "object-inspect": "^1.13.3", 4068 + "side-channel-map": "^1.0.1" 4069 + }, 4070 + "engines": { 4071 + "node": ">= 0.4" 4072 + }, 4073 + "funding": { 4074 + "url": "https://github.com/sponsors/ljharb" 4075 + } 4076 + }, 4077 + "node_modules/simple-swizzle": { 4078 + "version": "0.2.2", 4079 + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", 4080 + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", 4081 + "dev": true, 4082 + "license": "MIT", 4083 + "optional": true, 4084 + "dependencies": { 4085 + "is-arrayish": "^0.3.1" 4086 + } 4087 + }, 4088 + "node_modules/source-map": { 4089 + "version": "0.6.1", 4090 + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 4091 + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 4092 + "dev": true, 4093 + "license": "BSD-3-Clause", 4094 + "engines": { 4095 + "node": ">=0.10.0" 4096 + } 4097 + }, 4098 + "node_modules/stacktracey": { 4099 + "version": "2.1.8", 4100 + "resolved": "https://registry.npmjs.org/stacktracey/-/stacktracey-2.1.8.tgz", 4101 + "integrity": "sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==", 4102 + "dev": true, 4103 + "license": "Unlicense", 4104 + "dependencies": { 4105 + "as-table": "^1.0.36", 4106 + "get-source": "^2.0.12" 4107 + } 4108 + }, 4109 + "node_modules/statuses": { 4110 + "version": "2.0.1", 4111 + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", 4112 + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", 4113 + "dev": true, 4114 + "license": "MIT", 4115 + "engines": { 4116 + "node": ">= 0.8" 4117 + } 4118 + }, 4119 + "node_modules/stoppable": { 4120 + "version": "1.1.0", 4121 + "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz", 4122 + "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==", 4123 + "dev": true, 4124 + "license": "MIT", 4125 + "engines": { 4126 + "node": ">=4", 4127 + "npm": ">=6" 4128 + } 4129 + }, 4130 + "node_modules/strip-json-comments": { 4131 + "version": "3.1.1", 4132 + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", 4133 + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", 4134 + "dev": true, 4135 + "license": "MIT", 4136 + "engines": { 4137 + "node": ">=8" 4138 + }, 4139 + "funding": { 4140 + "url": "https://github.com/sponsors/sindresorhus" 4141 + } 4142 + }, 4143 + "node_modules/supports-color": { 4144 + "version": "7.2.0", 4145 + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 4146 + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 4147 + "dev": true, 4148 + "license": "MIT", 4149 + "dependencies": { 4150 + "has-flag": "^4.0.0" 4151 + }, 4152 + "engines": { 4153 + "node": ">=8" 4154 + } 4155 + }, 4156 + "node_modules/to-regex-range": { 4157 + "version": "5.0.1", 4158 + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 4159 + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 4160 + "dev": true, 4161 + "license": "MIT", 4162 + "dependencies": { 4163 + "is-number": "^7.0.0" 4164 + }, 4165 + "engines": { 4166 + "node": ">=8.0" 4167 + } 4168 + }, 4169 + "node_modules/toidentifier": { 4170 + "version": "1.0.1", 4171 + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", 4172 + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", 4173 + "dev": true, 4174 + "license": "MIT", 4175 + "engines": { 4176 + "node": ">=0.6" 4177 + } 4178 + }, 4179 + "node_modules/tr46": { 4180 + "version": "0.0.3", 4181 + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", 4182 + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", 4183 + "license": "MIT" 4184 + }, 4185 + "node_modules/ts-api-utils": { 4186 + "version": "2.1.0", 4187 + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", 4188 + "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", 4189 + "dev": true, 4190 + "license": "MIT", 4191 + "engines": { 4192 + "node": ">=18.12" 4193 + }, 4194 + "peerDependencies": { 4195 + "typescript": ">=4.8.4" 4196 + } 4197 + }, 4198 + "node_modules/tslib": { 4199 + "version": "2.8.1", 4200 + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", 4201 + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", 4202 + "dev": true, 4203 + "license": "0BSD", 4204 + "optional": true 4205 + }, 4206 + "node_modules/type-check": { 4207 + "version": "0.4.0", 4208 + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", 4209 + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", 4210 + "dev": true, 4211 + "license": "MIT", 4212 + "dependencies": { 4213 + "prelude-ls": "^1.2.1" 4214 + }, 4215 + "engines": { 4216 + "node": ">= 0.8.0" 4217 + } 4218 + }, 4219 + "node_modules/type-is": { 4220 + "version": "2.0.1", 4221 + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", 4222 + "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", 4223 + "dev": true, 4224 + "license": "MIT", 4225 + "dependencies": { 4226 + "content-type": "^1.0.5", 4227 + "media-typer": "^1.1.0", 4228 + "mime-types": "^3.0.0" 4229 + }, 4230 + "engines": { 4231 + "node": ">= 0.6" 4232 + } 4233 + }, 4234 + "node_modules/typescript": { 4235 + "version": "5.8.3", 4236 + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", 4237 + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", 4238 + "dev": true, 4239 + "license": "Apache-2.0", 4240 + "bin": { 4241 + "tsc": "bin/tsc", 4242 + "tsserver": "bin/tsserver" 4243 + }, 4244 + "engines": { 4245 + "node": ">=14.17" 4246 + } 4247 + }, 4248 + "node_modules/typescript-eslint": { 4249 + "version": "8.32.1", 4250 + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.32.1.tgz", 4251 + "integrity": "sha512-D7el+eaDHAmXvrZBy1zpzSNIRqnCOrkwTgZxTu3MUqRWk8k0q9m9Ho4+vPf7iHtgUfrK/o8IZaEApsxPlHTFCg==", 4252 + "dev": true, 4253 + "license": "MIT", 4254 + "dependencies": { 4255 + "@typescript-eslint/eslint-plugin": "8.32.1", 4256 + "@typescript-eslint/parser": "8.32.1", 4257 + "@typescript-eslint/utils": "8.32.1" 4258 + }, 4259 + "engines": { 4260 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 4261 + }, 4262 + "funding": { 4263 + "type": "opencollective", 4264 + "url": "https://opencollective.com/typescript-eslint" 4265 + }, 4266 + "peerDependencies": { 4267 + "eslint": "^8.57.0 || ^9.0.0", 4268 + "typescript": ">=4.8.4 <5.9.0" 4269 + } 4270 + }, 4271 + "node_modules/ufo": { 4272 + "version": "1.6.1", 4273 + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz", 4274 + "integrity": "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==", 4275 + "dev": true, 4276 + "license": "MIT" 4277 + }, 4278 + "node_modules/undici": { 4279 + "version": "5.29.0", 4280 + "resolved": "https://registry.npmjs.org/undici/-/undici-5.29.0.tgz", 4281 + "integrity": "sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==", 4282 + "dev": true, 4283 + "license": "MIT", 4284 + "dependencies": { 4285 + "@fastify/busboy": "^2.0.0" 4286 + }, 4287 + "engines": { 4288 + "node": ">=14.0" 4289 + } 4290 + }, 4291 + "node_modules/undici-types": { 4292 + "version": "6.21.0", 4293 + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", 4294 + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", 4295 + "dev": true, 4296 + "license": "MIT" 4297 + }, 4298 + "node_modules/unenv": { 4299 + "version": "2.0.0-rc.15", 4300 + "resolved": "https://registry.npmjs.org/unenv/-/unenv-2.0.0-rc.15.tgz", 4301 + "integrity": "sha512-J/rEIZU8w6FOfLNz/hNKsnY+fFHWnu9MH4yRbSZF3xbbGHovcetXPs7sD+9p8L6CeNC//I9bhRYAOsBt2u7/OA==", 4302 + "dev": true, 4303 + "license": "MIT", 4304 + "dependencies": { 4305 + "defu": "^6.1.4", 4306 + "exsolve": "^1.0.4", 4307 + "ohash": "^2.0.11", 4308 + "pathe": "^2.0.3", 4309 + "ufo": "^1.5.4" 4310 + } 4311 + }, 4312 + "node_modules/unpipe": { 4313 + "version": "1.0.0", 4314 + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 4315 + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", 4316 + "dev": true, 4317 + "license": "MIT", 4318 + "engines": { 4319 + "node": ">= 0.8" 4320 + } 4321 + }, 4322 + "node_modules/uri-js": { 4323 + "version": "4.4.1", 4324 + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", 4325 + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 4326 + "dev": true, 4327 + "license": "BSD-2-Clause", 4328 + "dependencies": { 4329 + "punycode": "^2.1.0" 4330 + } 4331 + }, 4332 + "node_modules/uuid": { 4333 + "version": "9.0.1", 4334 + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", 4335 + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", 4336 + "funding": [ 4337 + "https://github.com/sponsors/broofa", 4338 + "https://github.com/sponsors/ctavan" 4339 + ], 4340 + "license": "MIT", 4341 + "bin": { 4342 + "uuid": "dist/bin/uuid" 4343 + } 4344 + }, 4345 + "node_modules/vary": { 4346 + "version": "1.1.2", 4347 + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", 4348 + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", 4349 + "dev": true, 4350 + "license": "MIT", 4351 + "engines": { 4352 + "node": ">= 0.8" 4353 + } 4354 + }, 4355 + "node_modules/webidl-conversions": { 4356 + "version": "3.0.1", 4357 + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", 4358 + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", 4359 + "license": "BSD-2-Clause" 4360 + }, 4361 + "node_modules/whatwg-url": { 4362 + "version": "5.0.0", 4363 + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", 4364 + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", 4365 + "license": "MIT", 4366 + "dependencies": { 4367 + "tr46": "~0.0.3", 4368 + "webidl-conversions": "^3.0.0" 4369 + } 4370 + }, 4371 + "node_modules/which": { 4372 + "version": "2.0.2", 4373 + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 4374 + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 4375 + "dev": true, 4376 + "license": "ISC", 4377 + "dependencies": { 4378 + "isexe": "^2.0.0" 4379 + }, 4380 + "bin": { 4381 + "node-which": "bin/node-which" 4382 + }, 4383 + "engines": { 4384 + "node": ">= 8" 4385 + } 4386 + }, 4387 + "node_modules/word-wrap": { 4388 + "version": "1.2.5", 4389 + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", 4390 + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", 4391 + "dev": true, 4392 + "license": "MIT", 4393 + "engines": { 4394 + "node": ">=0.10.0" 4395 + } 4396 + }, 4397 + "node_modules/workerd": { 4398 + "version": "1.20250508.0", 4399 + "resolved": "https://registry.npmjs.org/workerd/-/workerd-1.20250508.0.tgz", 4400 + "integrity": "sha512-ffLxe7dXSuGoA6jb3Qx2SClIV1aLHfJQ6RhGhzYHjQgv7dL6fdUOSIIGgzmu2mRKs+WFSujp6c8WgKquco6w3w==", 4401 + "dev": true, 4402 + "hasInstallScript": true, 4403 + "license": "Apache-2.0", 4404 + "optional": true, 4405 + "peer": true, 4406 + "bin": { 4407 + "workerd": "bin/workerd" 4408 + }, 4409 + "engines": { 4410 + "node": ">=16" 4411 + }, 4412 + "optionalDependencies": { 4413 + "@cloudflare/workerd-darwin-64": "1.20250508.0", 4414 + "@cloudflare/workerd-darwin-arm64": "1.20250508.0", 4415 + "@cloudflare/workerd-linux-64": "1.20250508.0", 4416 + "@cloudflare/workerd-linux-arm64": "1.20250508.0", 4417 + "@cloudflare/workerd-windows-64": "1.20250508.0" 4418 + } 4419 + }, 4420 + "node_modules/wrangler": { 4421 + "version": "4.14.4", 4422 + "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-4.14.4.tgz", 4423 + "integrity": "sha512-HIdOdiMIcJV5ymw80RKsr3Uzen/p1kRX4jnCEmR2XVeoEhV2Qw6GABxS5WMTlSES2/vEX0Y+ezUAdsprcUhJ5g==", 4424 + "dev": true, 4425 + "license": "MIT OR Apache-2.0", 4426 + "dependencies": { 4427 + "@cloudflare/kv-asset-handler": "0.4.0", 4428 + "@cloudflare/unenv-preset": "2.3.1", 4429 + "blake3-wasm": "2.1.5", 4430 + "esbuild": "0.25.4", 4431 + "miniflare": "4.20250507.0", 4432 + "path-to-regexp": "6.3.0", 4433 + "unenv": "2.0.0-rc.15", 4434 + "workerd": "1.20250507.0" 4435 + }, 4436 + "bin": { 4437 + "wrangler": "bin/wrangler.js", 4438 + "wrangler2": "bin/wrangler.js" 4439 + }, 4440 + "engines": { 4441 + "node": ">=18.0.0" 4442 + }, 4443 + "optionalDependencies": { 4444 + "fsevents": "~2.3.2", 4445 + "sharp": "^0.33.5" 4446 + }, 4447 + "peerDependencies": { 4448 + "@cloudflare/workers-types": "^4.20250507.0" 4449 + }, 4450 + "peerDependenciesMeta": { 4451 + "@cloudflare/workers-types": { 4452 + "optional": true 4453 + } 4454 + } 4455 + }, 4456 + "node_modules/wrangler/node_modules/@cloudflare/workerd-darwin-64": { 4457 + "version": "1.20250507.0", 4458 + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20250507.0.tgz", 4459 + "integrity": "sha512-xC+8hmQuOUUNCVT9DWpLMfxhR4Xs4kI8v7Bkybh4pzGC85moH6fMfCBNaP0YQCNAA/BR56aL/AwfvMVGskTK/A==", 4460 + "cpu": [ 4461 + "x64" 4462 + ], 4463 + "dev": true, 4464 + "license": "Apache-2.0", 4465 + "optional": true, 4466 + "os": [ 4467 + "darwin" 4468 + ], 4469 + "engines": { 4470 + "node": ">=16" 4471 + } 4472 + }, 4473 + "node_modules/wrangler/node_modules/@cloudflare/workerd-darwin-arm64": { 4474 + "version": "1.20250507.0", 4475 + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20250507.0.tgz", 4476 + "integrity": "sha512-Oynff5H8yM4trfUFaKdkOvPV3jac8mg7QC19ILZluCVgLx/JGEVLEJ7do1Na9rLqV8CK4gmUXPrUMX7uerhQgg==", 4477 + "cpu": [ 4478 + "arm64" 4479 + ], 4480 + "dev": true, 4481 + "license": "Apache-2.0", 4482 + "optional": true, 4483 + "os": [ 4484 + "darwin" 4485 + ], 4486 + "engines": { 4487 + "node": ">=16" 4488 + } 4489 + }, 4490 + "node_modules/wrangler/node_modules/@cloudflare/workerd-linux-64": { 4491 + "version": "1.20250507.0", 4492 + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20250507.0.tgz", 4493 + "integrity": "sha512-/HAA+Zg/R7Q/Smyl835FUFKjotZN1UzN9j/BHBd0xKmKov97QkXAX8gsyGnyKqRReIOinp8x/8+UebTICR7VJw==", 4494 + "cpu": [ 4495 + "x64" 4496 + ], 4497 + "dev": true, 4498 + "license": "Apache-2.0", 4499 + "optional": true, 4500 + "os": [ 4501 + "linux" 4502 + ], 4503 + "engines": { 4504 + "node": ">=16" 4505 + } 4506 + }, 4507 + "node_modules/wrangler/node_modules/@cloudflare/workerd-linux-arm64": { 4508 + "version": "1.20250507.0", 4509 + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20250507.0.tgz", 4510 + "integrity": "sha512-NMPibSdOYeycU0IrKkgOESFJQy7dEpHvuatZxQxlT+mIQK0INzI3irp2kKxhF99s25kPC4p+xg9bU3ugTrs3VQ==", 4511 + "cpu": [ 4512 + "arm64" 4513 + ], 4514 + "dev": true, 4515 + "license": "Apache-2.0", 4516 + "optional": true, 4517 + "os": [ 4518 + "linux" 4519 + ], 4520 + "engines": { 4521 + "node": ">=16" 4522 + } 4523 + }, 4524 + "node_modules/wrangler/node_modules/@cloudflare/workerd-windows-64": { 4525 + "version": "1.20250507.0", 4526 + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20250507.0.tgz", 4527 + "integrity": "sha512-c91fhNP8ufycdIDqjVyKTqeb4ewkbAYXFQbLreMVgh4LLQQPDDEte8wCdmaFy5bIL0M9d85PpdCq51RCzq/FaQ==", 4528 + "cpu": [ 4529 + "x64" 4530 + ], 4531 + "dev": true, 4532 + "license": "Apache-2.0", 4533 + "optional": true, 4534 + "os": [ 4535 + "win32" 4536 + ], 4537 + "engines": { 4538 + "node": ">=16" 4539 + } 4540 + }, 4541 + "node_modules/wrangler/node_modules/miniflare": { 4542 + "version": "4.20250507.0", 4543 + "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-4.20250507.0.tgz", 4544 + "integrity": "sha512-EgbQRt/Hnr8HCmW2J/4LRNE3yOzJTdNd98XJ8gnGXFKcimXxUFPiWP3k1df+ZPCtEHp6cXxi8+jP7v9vuIbIsg==", 4545 + "dev": true, 4546 + "license": "MIT", 4547 + "dependencies": { 4548 + "@cspotcode/source-map-support": "0.8.1", 4549 + "acorn": "8.14.0", 4550 + "acorn-walk": "8.3.2", 4551 + "exit-hook": "2.2.1", 4552 + "glob-to-regexp": "0.4.1", 4553 + "stoppable": "1.1.0", 4554 + "undici": "^5.28.5", 4555 + "workerd": "1.20250507.0", 4556 + "ws": "8.18.0", 4557 + "youch": "3.3.4", 4558 + "zod": "3.22.3" 4559 + }, 4560 + "bin": { 4561 + "miniflare": "bootstrap.js" 4562 + }, 4563 + "engines": { 4564 + "node": ">=18.0.0" 4565 + } 4566 + }, 4567 + "node_modules/wrangler/node_modules/workerd": { 4568 + "version": "1.20250507.0", 4569 + "resolved": "https://registry.npmjs.org/workerd/-/workerd-1.20250507.0.tgz", 4570 + "integrity": "sha512-OXaGjEh5THT9iblwWIyPrYBoaPe/d4zN03Go7/w8CmS8sma7//O9hjbk43sboWkc89taGPmU0/LNyZUUiUlHeQ==", 4571 + "dev": true, 4572 + "hasInstallScript": true, 4573 + "license": "Apache-2.0", 4574 + "bin": { 4575 + "workerd": "bin/workerd" 4576 + }, 4577 + "engines": { 4578 + "node": ">=16" 4579 + }, 4580 + "optionalDependencies": { 4581 + "@cloudflare/workerd-darwin-64": "1.20250507.0", 4582 + "@cloudflare/workerd-darwin-arm64": "1.20250507.0", 4583 + "@cloudflare/workerd-linux-64": "1.20250507.0", 4584 + "@cloudflare/workerd-linux-arm64": "1.20250507.0", 4585 + "@cloudflare/workerd-windows-64": "1.20250507.0" 4586 + } 4587 + }, 4588 + "node_modules/wrangler/node_modules/zod": { 4589 + "version": "3.22.3", 4590 + "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.3.tgz", 4591 + "integrity": "sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==", 4592 + "dev": true, 4593 + "license": "MIT", 4594 + "funding": { 4595 + "url": "https://github.com/sponsors/colinhacks" 4596 + } 4597 + }, 4598 + "node_modules/wrappy": { 4599 + "version": "1.0.2", 4600 + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 4601 + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", 4602 + "dev": true, 4603 + "license": "ISC" 4604 + }, 4605 + "node_modules/ws": { 4606 + "version": "8.18.0", 4607 + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", 4608 + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", 4609 + "dev": true, 4610 + "license": "MIT", 4611 + "engines": { 4612 + "node": ">=10.0.0" 4613 + }, 4614 + "peerDependencies": { 4615 + "bufferutil": "^4.0.1", 4616 + "utf-8-validate": ">=5.0.2" 4617 + }, 4618 + "peerDependenciesMeta": { 4619 + "bufferutil": { 4620 + "optional": true 4621 + }, 4622 + "utf-8-validate": { 4623 + "optional": true 4624 + } 4625 + } 4626 + }, 4627 + "node_modules/yocto-queue": { 4628 + "version": "0.1.0", 4629 + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", 4630 + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", 4631 + "dev": true, 4632 + "license": "MIT", 4633 + "engines": { 4634 + "node": ">=10" 4635 + }, 4636 + "funding": { 4637 + "url": "https://github.com/sponsors/sindresorhus" 4638 + } 4639 + }, 4640 + "node_modules/youch": { 4641 + "version": "3.3.4", 4642 + "resolved": "https://registry.npmjs.org/youch/-/youch-3.3.4.tgz", 4643 + "integrity": "sha512-UeVBXie8cA35DS6+nBkls68xaBBXCye0CNznrhszZjTbRVnJKQuNsyLKBTTL4ln1o1rh2PKtv35twV7irj5SEg==", 4644 + "dev": true, 4645 + "license": "MIT", 4646 + "dependencies": { 4647 + "cookie": "^0.7.1", 4648 + "mustache": "^4.2.0", 4649 + "stacktracey": "^2.1.8" 4650 + } 4651 + }, 4652 + "node_modules/zod": { 4653 + "version": "3.24.4", 4654 + "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.4.tgz", 4655 + "integrity": "sha512-OdqJE9UDRPwWsrHjLN2F8bPxvwJBK22EHLWtanu0LSYr5YqzsaaW3RMgmjwr8Rypg5k+meEJdSPXJZXE/yqOMg==", 4656 + "dev": true, 4657 + "license": "MIT", 4658 + "funding": { 4659 + "url": "https://github.com/sponsors/colinhacks" 4660 + } 4661 + }, 4662 + "node_modules/zod-to-json-schema": { 4663 + "version": "3.24.5", 4664 + "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.24.5.tgz", 4665 + "integrity": "sha512-/AuWwMP+YqiPbsJx5D6TfgRTc4kTLjsh5SOcd4bLsfUg2RcEXrFMJl1DGgdHy2aCfsIA/cr/1JM0xcB2GZji8g==", 4666 + "dev": true, 4667 + "license": "ISC", 4668 + "peerDependencies": { 4669 + "zod": "^3.24.1" 4670 + } 4671 + } 4672 + } 3049 4673 }
+27 -22
package.json
··· 1 1 { 2 - "name": "budget-edge", 3 - "version": "0.0.0", 4 - "private": true, 5 - "scripts": { 6 - "deploy": "wrangler deploy", 7 - "dev": "wrangler dev", 8 - "start": "wrangler dev", 9 - "test": "vitest", 10 - "cf-typegen": "wrangler types" 11 - }, 12 - "devDependencies": { 13 - "@cloudflare/vitest-pool-workers": "^0.8.19", 14 - "@types/node": "^22.15.18", 15 - "typescript": "^5.5.2", 16 - "vitest": "~3.0.7", 17 - "wrangler": "^4.14.4" 18 - }, 19 - "dependencies": { 20 - "google-auth-library": "^9.15.1", 21 - "hono": "^4.4.13", 22 - "jose": "^6.0.11" 23 - } 2 + "name": "budget-edge", 3 + "version": "0.0.0", 4 + "private": true, 5 + "scripts": { 6 + "deploy": "wrangler deploy", 7 + "dev": "wrangler dev", 8 + "start": "wrangler dev", 9 + "cf-typegen": "wrangler types", 10 + "format": "npx prettier --write .", 11 + "lint": "npx eslint .", 12 + "lint:fix": "npx eslint --fix ." 13 + }, 14 + "devDependencies": { 15 + "@trivago/prettier-plugin-sort-imports": "^5.2.2", 16 + "@types/node": "^22.15.18", 17 + "prettier": "^3.5.3", 18 + "typescript": "^5.5.2", 19 + "wrangler": "^4.14.4", 20 + "@eslint/js": "^9.26.0", 21 + "eslint": "^9.26.0", 22 + "typescript-eslint": "^8.32.1" 23 + }, 24 + "dependencies": { 25 + "google-auth-library": "^9.15.1", 26 + "hono": "^4.4.13", 27 + "jose": "^6.0.11" 28 + } 24 29 }
+40
package2.json
··· 1 + { 2 + "name": "name-goes-here", 3 + "version": "1.0.0", 4 + "description": "description-goes-here", 5 + "main": "src/index.ts", 6 + "type": "module", 7 + "scripts": { 8 + "start": "bunx tsx src/index.ts", 9 + "dev": "bunx --watch src/index.ts", 10 + "format": "bunx prettier --write .", 11 + "lint": "bunx eslint .", 12 + "lint:fix": "bunx eslint --fix .", 13 + "prepare": "husky" 14 + }, 15 + "dependencies": { 16 + "dotenv": "^16.4.5", 17 + "fastify": "^5.0.0", 18 + "husky": "^9.1.6", 19 + "lint-staged": "^15.2.10", 20 + "pino": "^9.5.0", 21 + "pino-pretty": "^11.3.0", 22 + "prom-client": "^15.1.3" 23 + }, 24 + "devDependencies": { 25 + "@eslint/js": "^9.13.0", 26 + "@trivago/prettier-plugin-sort-imports": "^4.3.0", 27 + "@types/eslint__js": "^8.42.3", 28 + "@types/node": "^22.8.4", 29 + "eslint": "^9.13.0", 30 + "prettier": "^3.3.3", 31 + "tsx": "^4.19.2", 32 + "typescript": "^5.6.3", 33 + "typescript-eslint": "^8.12.2" 34 + }, 35 + "lint-staged": { 36 + "*": "prettier --ignore-unknown --write --ignore-path .prettierignore" 37 + }, 38 + "author": "alice", 39 + "license": "MIT" 40 + }
+81 -96
src/index.ts
··· 1 - import { Hono, type Context, type Next } from 'hono'; 2 1 import { JWT } from 'google-auth-library'; 2 + import { Hono } from 'hono'; 3 3 4 - // Define the Env type for bindings 5 - export type Env = { 6 - // KV Namespace 4 + export interface Env { 7 5 LIST_CACHE: KVNamespace; 8 - 9 - // Environment Variables (Secrets) 10 6 API_KEY: string; 11 7 SHEET_ID: string; 12 8 SA_EMAIL: string; 13 9 SA_PRIVATE_KEY: string; 14 - 15 - // Environment Variables (Non-Secrets) 16 10 TX_RANGE: string; 17 11 PURPOSE_TAB: string; 18 12 ACCOUNT_TAB: string; 19 - }; 13 + } 14 + 15 + interface AddRequestBody { 16 + date: string; 17 + amount: number; 18 + currency: string; 19 + description: string; 20 + purpose: string; 21 + account: string; 22 + } 20 23 21 24 const SCOPE = 'https://www.googleapis.com/auth/spreadsheets'; 22 - const LIST_CACHE_KEY = 'lists-v1'; // Memory mentioned 'v2', but code uses 'lists-v1'. Sticking to 'lists-v1'. 23 - 24 - let jwtClient: JWT; // Global JWT client for Google Auth 25 + const LIST_CACHE_KEY = 'lists-v1'; 26 + const TOKEN_CACHE_KEY = 'token-v1'; 25 27 26 - // --- Helper Functions --- (Adapted to use Env type) 28 + let jwtClient: JWT | null = null; 27 29 28 30 async function accessToken(env: Env): Promise<string> { 29 - if (!jwtClient) { 30 - jwtClient = new JWT({ 31 - email: env.SA_EMAIL, 32 - key: env.SA_PRIVATE_KEY.replace(/\\n/g, '\n'), // Crucial for env var private keys 33 - scopes: [SCOPE], 34 - }); 31 + const now = Date.now(); 32 + // Try KV cache 33 + const cached = await env.LIST_CACHE.get<{ token: string; expiry: number }>(TOKEN_CACHE_KEY, { type: 'json' }); 34 + if (cached && now < cached.expiry - 60000) { 35 + return cached.token; 35 36 } 37 + // Initialize client if needed 38 + jwtClient ??= new JWT({ 39 + email: env.SA_EMAIL, 40 + key: env.SA_PRIVATE_KEY.replace(/\\n/g, '\n'), 41 + scopes: [SCOPE], 42 + }); 36 43 await jwtClient.authorize(); 37 44 const token = jwtClient.credentials.access_token; 45 + const expiry = jwtClient.credentials.expiry_date ?? now + 3600 * 1000; 38 46 if (!token) throw new Error('Failed to obtain access token'); 47 + // Store in KV with TTL 48 + const ttl = Math.max(Math.floor((expiry - now) / 1000), 1); 49 + await env.LIST_CACHE.put(TOKEN_CACHE_KEY, JSON.stringify({ token, expiry }), { 50 + expirationTtl: ttl, 51 + }); 39 52 return token; 40 53 } 41 54 42 55 async function batchGet(ranges: string[], env: Env): Promise<string[][]> { 43 56 const token = await accessToken(env); 44 57 const q = ranges.map((r) => `ranges=${encodeURIComponent(r)}`).join('&'); 45 - const res = await fetch( 46 - `https://sheets.googleapis.com/v4/spreadsheets/${env.SHEET_ID}/values:batchGet?${q}`, 47 - { headers: { Authorization: `Bearer ${token}` } }, 48 - ); 58 + const res = await fetch(`https://sheets.googleapis.com/v4/spreadsheets/${env.SHEET_ID}/values:batchGet?${q}`, { 59 + headers: { Authorization: `Bearer ${token}` }, 60 + }); 49 61 if (!res.ok) { 50 62 const errorText = await res.text(); 51 63 throw new Error(`Sheets batchGet failed: ${res.status} ${res.statusText} - ${errorText}`); 52 64 } 53 - const { valueRanges } = (await res.json()) as { valueRanges?: { values?: string[][] }[] }; 54 - // Ensure each sub-array in valueRanges.values is filtered for empty/null strings 55 - return valueRanges?.map((v) => v.values?.flat().filter(s => typeof s === 'string' && s.trim() !== '') ?? []) ?? ranges.map(() => []); 65 + const { valueRanges } = await res.json<{ valueRanges?: { values?: string[][] }[] }>(); 66 + return valueRanges?.map((v) => v.values?.flat().filter((s) => s.trim() !== '') ?? []) ?? ranges.map(() => []); 56 67 } 57 68 58 69 async function appendRow(cells: (string | number)[], env: Env): Promise<void> { ··· 61 72 `https://sheets.googleapis.com/v4/spreadsheets/${env.SHEET_ID}/values/${encodeURIComponent(env.TX_RANGE)}:append?valueInputOption=USER_ENTERED`, 62 73 { 63 74 method: 'POST', 64 - headers: { Authorization: `Bearer ${token}`, 'Content-Type': 'application/json' }, 75 + headers: { 76 + Authorization: `Bearer ${token}`, 77 + 'Content-Type': 'application/json', 78 + }, 65 79 body: JSON.stringify({ values: [cells] }), 66 80 }, 67 81 ); ··· 71 85 } 72 86 } 73 87 74 - // --- Hono Application Setup --- 75 88 const app = new Hono<{ Bindings: Env }>(); 76 89 77 - // Middleware: Server Configuration Check 78 - app.use('*', async (c: Context<{ Bindings: Env }>, next: Next) => { 79 - const { API_KEY, SHEET_ID, TX_RANGE, PURPOSE_TAB, ACCOUNT_TAB, SA_EMAIL, SA_PRIVATE_KEY, LIST_CACHE } = c.env; 80 - if ( 81 - ![API_KEY, SHEET_ID, TX_RANGE, PURPOSE_TAB, ACCOUNT_TAB, SA_EMAIL, SA_PRIVATE_KEY].every(Boolean) || 82 - !LIST_CACHE 83 - ) { 84 - return c.json({ status: 'ERROR', message: 'Server misconfigured. Essential bindings are missing.' }, 500); 90 + app.use('*', async (c, next) => { 91 + const { API_KEY, SHEET_ID, TX_RANGE, PURPOSE_TAB, ACCOUNT_TAB, SA_EMAIL, SA_PRIVATE_KEY } = c.env; 92 + if (![API_KEY, SHEET_ID, TX_RANGE, PURPOSE_TAB, ACCOUNT_TAB, SA_EMAIL, SA_PRIVATE_KEY].every(Boolean)) { 93 + return c.json({ status: 'ERROR', message: 'Server misconfigured' }, 500); 85 94 } 86 - await next(); 87 - }); 88 - 89 - // Middleware: API Key Check (applied to all routes after config check) 90 - app.use('*', async (c: Context<{ Bindings: Env }>, next: Next) => { 91 - const url = new URL(c.req.url); 92 - // Allow root path without API key for a basic health check 93 - if (url.pathname === '/') { 94 - await next(); 95 - return; 96 - } 97 - if (url.searchParams.get('key') !== c.env.API_KEY) { 98 - return c.json({ status: 'ERROR', message: 'Forbidden: Invalid or missing API key.' }, 403); 95 + const { pathname, searchParams } = new URL(c.req.url); 96 + if (pathname !== '/' && searchParams.get('key') !== API_KEY) { 97 + return c.json({ status: 'ERROR', message: 'Forbidden' }, 403); 99 98 } 100 99 await next(); 101 100 }); 102 101 103 - // --- Route Handlers --- 104 - 105 - // GET /lists: Fetches purposes and accounts, uses cache 106 - app.get('/lists', async (c: Context<{ Bindings: Env }>) => { 102 + app.get('/lists', async (c) => { 107 103 const env = c.env; 108 104 try { 109 - const cached = await env.LIST_CACHE.get(LIST_CACHE_KEY, { type: 'json' }) as { purposes: string[], accounts: string[] } | null; 105 + const cached = await env.LIST_CACHE.get(LIST_CACHE_KEY, { type: 'json' }); 110 106 if (cached) { 111 107 return c.json(cached); 112 108 } 113 109 114 - const [purposesData, accountsData] = await batchGet( 115 - [`${env.PURPOSE_TAB}!A2:A`, `${env.ACCOUNT_TAB}!A2:A`], 116 - env, 117 - ); 118 - // Data from batchGet is already string[] and filtered by the helper itself. 110 + const [purposesData, accountsData] = await batchGet([`${env.PURPOSE_TAB}!A2:A`, `${env.ACCOUNT_TAB}!A2:A`], env); 119 111 const payload = { purposes: purposesData, accounts: accountsData }; 120 112 121 113 c.executionCtx.waitUntil( 122 - env.LIST_CACHE.put(LIST_CACHE_KEY, JSON.stringify(payload), { expirationTtl: 86400 }), // 24 hours TTL 114 + env.LIST_CACHE.put(LIST_CACHE_KEY, JSON.stringify(payload), { 115 + expirationTtl: 86400, 116 + }), 123 117 ); 124 118 return c.json(payload); 125 119 } catch (err) { 126 120 const message = err instanceof Error ? err.message : String(err); 127 - // console.error('Error in /lists:', message, (err as Error).stack); // For server-side debugging 128 121 return c.json({ status: 'ERROR', message: 'Failed to fetch lists.', detail: message }, 500); 129 122 } 130 123 }); 131 124 132 - // POST /add: Appends a new transaction row 133 - app.post('/add', async (c: Context<{ Bindings: Env }>) => { 125 + app.post('/add', async (c) => { 134 126 const env = c.env; 135 127 try { 136 - // Define the expected type for the request body 137 - type AddRequestBody = { 138 - date: string; 139 - amount: number; 140 - currency: string; 141 - description: string; 142 - purpose: string; 143 - account: string; 144 - }; 145 128 const body = await c.req.json<AddRequestBody>(); 146 129 147 - const { date, amount, currency, description, purpose, account } = body; 130 + const { amount, currency, description, purpose, account } = body; 131 + const date = new Date(body.date).toISOString().split('T')[0]; 148 132 149 - if (!date || amount == null || !currency || !description || !purpose || !account) { 150 - return c.json({ status: 'ERROR', message: 'Missing required fields in request body.' }, 400); 133 + if (!date || !amount || !currency || !description || !purpose || !account) { 134 + return c.json( 135 + { 136 + status: 'ERROR', 137 + message: 'Missing required fields in request body.', 138 + }, 139 + 400, 140 + ); 151 141 } 152 142 153 143 await appendRow([date, amount, currency, description, purpose, account], env); 154 144 return c.json({ status: 'OK', message: 'Transaction added successfully.' }); 155 145 } catch (err) { 156 146 const message = err instanceof Error ? err.message : String(err); 157 - // console.error('Error in /add:', message, (err as Error).stack); // For server-side debugging 158 - return c.json({ status: 'ERROR', message: 'Failed to add transaction.', detail: message }, 500); 147 + return c.json( 148 + { 149 + status: 'ERROR', 150 + message: 'Failed to add transaction.', 151 + detail: message, 152 + }, 153 + 500, 154 + ); 159 155 } 160 156 }); 161 157 162 - // POST /flush-cache: Clears the cache for /lists 163 - app.post('/flush-cache', async (c: Context<{ Bindings: Env }>) => { 158 + app.post('/flush-cache', async (c) => { 164 159 const env = c.env; 165 160 try { 166 161 await env.LIST_CACHE.delete(LIST_CACHE_KEY); 167 - return c.json({ status: 'OK', message: `Cache key '${LIST_CACHE_KEY}' flushed successfully.` }); 162 + return c.json({ 163 + status: 'OK', 164 + message: `Cache key '${LIST_CACHE_KEY}' flushed successfully.`, 165 + }); 168 166 } catch (err) { 169 167 const message = err instanceof Error ? err.message : String(err); 170 - // console.error('Error in /flush-cache:', message, (err as Error).stack); // For server-side debugging 171 168 return c.json({ status: 'ERROR', message: 'Failed to flush cache.', detail: message }, 500); 172 169 } 173 170 }); 174 171 175 - // Root path for basic health check (does not require API key due to middleware logic) 176 - app.get('/', (c: Context<{ Bindings: Env }>) => { 177 - return c.text('Budget Edge Worker with Hono is running!'); 178 - }); 179 - 180 - // --- Hono Error Handling --- 172 + app.get('/', (c) => c.text('Budget Edge Worker is running!')); 181 173 182 - // Not Found Handler 183 - app.notFound((c: Context<{ Bindings: Env }>) => { 184 - return c.json({ status: 'ERROR', message: 'Not Found. The requested endpoint does not exist.' }, 404); 185 - }); 174 + app.notFound((c) => c.json({ status: 'ERROR', message: 'Not Found' }, 404)); 186 175 187 - // Global Error Handler 188 - app.onError((err: Error, c: Context<{ Bindings: Env }>) => { 189 - // console.error('Global Hono Error:', err.message, err.stack); // For server-side debugging 190 - return c.json({ status: 'ERROR', message: 'Internal Server Error.', detail: err.message }, 500); 191 - }); 176 + app.onError((err, c) => c.json({ status: 'ERROR', message: 'Internal Server Error', detail: err.message }, 500)); 192 177 193 178 export default app;
-10
src/types.d.ts
··· 1 - export interface Env { 2 - API_KEY: string; 3 - SA_EMAIL: string; 4 - SA_PRIVATE_KEY: string; 5 - SHEET_ID: string; 6 - PURPOSE_TAB: string; // from vars 7 - ACCOUNT_TAB: string; 8 - TX_RANGE: string; 9 - LIST_CACHE: KVNamespace; 10 - }
-3
test/env.d.ts
··· 1 - declare module 'cloudflare:test' { 2 - interface ProvidedEnv extends Env {} 3 - }
-41
test/index.spec.ts
··· 1 - import { env, createExecutionContext, waitOnExecutionContext, SELF } from 'cloudflare:test'; 2 - import { describe, it, expect } from 'vitest'; 3 - import worker from '../src'; 4 - 5 - describe('Hello World user worker', () => { 6 - describe('request for /message', () => { 7 - it('/ responds with "Hello, World!" (unit style)', async () => { 8 - const request = new Request<unknown, IncomingRequestCfProperties>('http://example.com/message'); 9 - // Create an empty context to pass to `worker.fetch()`. 10 - const ctx = createExecutionContext(); 11 - const response = await worker.fetch(request, env, ctx); 12 - // Wait for all `Promise`s passed to `ctx.waitUntil()` to settle before running test assertions 13 - await waitOnExecutionContext(ctx); 14 - expect(await response.text()).toMatchInlineSnapshot(`"Hello, World!"`); 15 - }); 16 - 17 - it('responds with "Hello, World!" (integration style)', async () => { 18 - const request = new Request('http://example.com/message'); 19 - const response = await SELF.fetch(request); 20 - expect(await response.text()).toMatchInlineSnapshot(`"Hello, World!"`); 21 - }); 22 - }); 23 - 24 - describe('request for /random', () => { 25 - it('/ responds with a random UUID (unit style)', async () => { 26 - const request = new Request<unknown, IncomingRequestCfProperties>('http://example.com/random'); 27 - // Create an empty context to pass to `worker.fetch()`. 28 - const ctx = createExecutionContext(); 29 - const response = await worker.fetch(request, env, ctx); 30 - // Wait for all `Promise`s passed to `ctx.waitUntil()` to settle before running test assertions 31 - await waitOnExecutionContext(ctx); 32 - expect(await response.text()).toMatch(/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}/); 33 - }); 34 - 35 - it('responds with a random UUID (integration style)', async () => { 36 - const request = new Request('http://example.com/random'); 37 - const response = await SELF.fetch(request); 38 - expect(await response.text()).toMatch(/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}/); 39 - }); 40 - }); 41 - });
-8
test/tsconfig.json
··· 1 - { 2 - "extends": "../tsconfig.json", 3 - "compilerOptions": { 4 - "types": ["@cloudflare/vitest-pool-workers"] 5 - }, 6 - "include": ["./**/*.ts", "../worker-configuration.d.ts"], 7 - "exclude": [] 8 - }
+17 -44
tsconfig.json
··· 1 1 { 2 - "compilerOptions": { 3 - /* Visit https://aka.ms/tsconfig.json to read more about this file */ 4 - 5 - /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ 6 - "target": "es2021", 7 - /* Specify a set of bundled library declaration files that describe the target runtime environment. */ 8 - "lib": ["es2021"], 9 - /* Specify what JSX code is generated. */ 10 - "jsx": "react-jsx", 11 - 12 - /* Specify what module code is generated. */ 13 - "module": "es2022", 14 - /* Specify how TypeScript looks up a file from a given module specifier. */ 15 - "moduleResolution": "Bundler", 16 - /* Enable importing .json files */ 17 - "resolveJsonModule": true, 18 - 19 - /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */ 20 - "allowJs": true, 21 - /* Enable error reporting in type-checked JavaScript files. */ 22 - "checkJs": false, 23 - 24 - /* Disable emitting files from a compilation. */ 25 - "noEmit": true, 26 - 27 - /* Ensure that each file can be safely transpiled without relying on other imports. */ 28 - "isolatedModules": true, 29 - /* Allow 'import x from y' when a module doesn't have a default export. */ 30 - "allowSyntheticDefaultImports": true, 31 - /* Ensure that casing is correct in imports. */ 32 - "forceConsistentCasingInFileNames": true, 33 - 34 - /* Enable all strict type-checking options. */ 35 - "strict": true, 36 - 37 - /* Skip type checking all .d.ts files. */ 38 - "skipLibCheck": true, 39 - "types": [ 40 - "node", 41 - "worker-configuration.d.ts" 42 - ] 43 - }, 44 - "exclude": ["test"], 45 - "include": ["worker-configuration.d.ts", "src/**/*.ts"] 2 + "compilerOptions": { 3 + "target": "es2021", 4 + "lib": ["es2021"], 5 + "module": "es2022", 6 + "moduleResolution": "Bundler", 7 + "resolveJsonModule": true, 8 + "allowJs": true, 9 + "checkJs": false, 10 + "noEmit": true, 11 + "isolatedModules": true, 12 + "allowSyntheticDefaultImports": true, 13 + "forceConsistentCasingInFileNames": true, 14 + "strict": true, 15 + "skipLibCheck": true, 16 + "types": ["node"] 17 + }, 18 + "include": ["worker-configuration.d.ts", "src/**/*.ts"] 46 19 }
-11
vitest.config.mts
··· 1 - import { defineWorkersConfig } from '@cloudflare/vitest-pool-workers/config'; 2 - 3 - export default defineWorkersConfig({ 4 - test: { 5 - poolOptions: { 6 - workers: { 7 - wrangler: { configPath: './wrangler.jsonc' }, 8 - }, 9 - }, 10 - }, 11 - });
+20 -20
wrangler.jsonc
··· 3 3 * https://developers.cloudflare.com/workers/wrangler/configuration/ 4 4 */ 5 5 { 6 - "$schema": "node_modules/wrangler/config-schema.json", 7 - "name": "budget-edge", 8 - "main": "src/index.ts", 9 - "compatibility_date": "2025-05-14", 10 - "compatibility_flags": ["nodejs_compat", "global_fetch_strictly_public"], 11 - "observability": { 12 - "enabled": true 13 - }, 14 - "placement": { "mode": "smart" }, 15 - "kv_namespaces": [ 16 - { 17 - "binding": "LIST_CACHE", 18 - "id": "47ad2f322ad1433692d34804b9e975b2" 19 - } 20 - ], 21 - "vars": { 22 - "PURPOSE_TAB": "Purposes", 23 - "ACCOUNT_TAB": "Accounts", 24 - "TX_RANGE": "Transactions!A2:G" 25 - } 6 + "$schema": "node_modules/wrangler/config-schema.json", 7 + "name": "budget-edge", 8 + "main": "src/index.ts", 9 + "compatibility_date": "2025-05-14", 10 + "compatibility_flags": ["nodejs_compat", "global_fetch_strictly_public"], 11 + "observability": { 12 + "enabled": true, 13 + }, 14 + "placement": { "mode": "smart" }, 15 + "kv_namespaces": [ 16 + { 17 + "binding": "LIST_CACHE", 18 + "id": "47ad2f322ad1433692d34804b9e975b2", 19 + }, 20 + ], 21 + "vars": { 22 + "PURPOSE_TAB": "Purposes", 23 + "ACCOUNT_TAB": "Accounts", 24 + "TX_RANGE": "Transactions!A2:G", 25 + }, 26 26 }