Image CDN for atproto built on cloudflare

add ability to lookup via rkey tid

evan.jarrett.net 4d6c781d a23ba547

verified
Changed files
+1202 -582
src
+1110 -566
package-lock.json
··· 11 11 "multiformats": "^13.3.7" 12 12 }, 13 13 "devDependencies": { 14 - "@cloudflare/vitest-pool-workers": "^0.8.19", 14 + "@cloudflare/vitest-pool-workers": "^0.11.1", 15 15 "typescript": "^5.5.2", 16 - "vitest": "~3.2.0", 16 + "vitest": "^3.2.4", 17 17 "wrangler": "^4.21.2" 18 18 } 19 19 }, 20 20 "node_modules/@cloudflare/kv-asset-handler": { 21 - "version": "0.4.0", 22 - "resolved": "https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.4.0.tgz", 23 - "integrity": "sha512-+tv3z+SPp+gqTIcImN9o0hqE9xyfQjI1XD9pL6NuKjua9B1y7mNYv0S9cP+QEbA4ppVgGZEmKOvHX5G5Ei1CVA==", 21 + "version": "0.4.1", 22 + "resolved": "https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.4.1.tgz", 23 + "integrity": "sha512-Nu8ahitGFFJztxUml9oD/DLb7Z28C8cd8F46IVQ7y5Btz575pvMY8AqZsXkX7Gds29eCKdMgIHjIvzskHgPSFg==", 24 24 "dev": true, 25 25 "license": "MIT OR Apache-2.0", 26 26 "dependencies": { ··· 30 30 "node": ">=18.0.0" 31 31 } 32 32 }, 33 - "node_modules/@cloudflare/unenv-preset": { 34 - "version": "2.3.3", 35 - "resolved": "https://registry.npmjs.org/@cloudflare/unenv-preset/-/unenv-preset-2.3.3.tgz", 36 - "integrity": "sha512-/M3MEcj3V2WHIRSW1eAQBPRJ6JnGQHc6JKMAPLkDb7pLs3m6X9ES/+K3ceGqxI6TKeF32AWAi7ls0AYzVxCP0A==", 37 - "dev": true, 38 - "license": "MIT OR Apache-2.0", 39 - "peerDependencies": { 40 - "unenv": "2.0.0-rc.17", 41 - "workerd": "^1.20250508.0" 42 - }, 43 - "peerDependenciesMeta": { 44 - "workerd": { 45 - "optional": true 46 - } 47 - } 48 - }, 49 33 "node_modules/@cloudflare/vitest-pool-workers": { 50 - "version": "0.8.47", 51 - "resolved": "https://registry.npmjs.org/@cloudflare/vitest-pool-workers/-/vitest-pool-workers-0.8.47.tgz", 52 - "integrity": "sha512-deg1XHJ7bdLprgg41GijbRZrIf/EgRtqP9VDY3cDptO5L2IAqDOu4UC0ckgHLCojXiczchviKXE+N0ui2YzqIQ==", 34 + "version": "0.11.1", 35 + "resolved": "https://registry.npmjs.org/@cloudflare/vitest-pool-workers/-/vitest-pool-workers-0.11.1.tgz", 36 + "integrity": "sha512-2ATtR5pb5Q6R19ByHN/Dbe1JY5JWuqGMz3yI2MusDqPcDvL1o5OPlPKJAXphOMEIilXLeATPYrNamdqLBJu3sg==", 53 37 "dev": true, 54 38 "license": "MIT", 55 39 "dependencies": { 56 40 "birpc": "0.2.14", 57 41 "cjs-module-lexer": "^1.2.3", 58 - "devalue": "^4.3.0", 59 - "miniflare": "4.20250617.4", 42 + "devalue": "^5.3.2", 43 + "esbuild": "0.27.0", 44 + "miniflare": "4.20251217.0", 60 45 "semver": "^7.7.1", 61 - "wrangler": "4.22.0", 46 + "wrangler": "4.56.0", 62 47 "zod": "^3.22.3" 63 48 }, 64 49 "peerDependencies": { ··· 67 52 "vitest": "2.0.x - 3.2.x" 68 53 } 69 54 }, 55 + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/aix-ppc64": { 56 + "version": "0.27.0", 57 + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.0.tgz", 58 + "integrity": "sha512-KuZrd2hRjz01y5JK9mEBSD3Vj3mbCvemhT466rSuJYeE/hjuBrHfjjcjMdTm/sz7au+++sdbJZJmuBwQLuw68A==", 59 + "cpu": [ 60 + "ppc64" 61 + ], 62 + "dev": true, 63 + "license": "MIT", 64 + "optional": true, 65 + "os": [ 66 + "aix" 67 + ], 68 + "engines": { 69 + "node": ">=18" 70 + } 71 + }, 72 + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/android-arm": { 73 + "version": "0.27.0", 74 + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.0.tgz", 75 + "integrity": "sha512-j67aezrPNYWJEOHUNLPj9maeJte7uSMM6gMoxfPC9hOg8N02JuQi/T7ewumf4tNvJadFkvLZMlAq73b9uwdMyQ==", 76 + "cpu": [ 77 + "arm" 78 + ], 79 + "dev": true, 80 + "license": "MIT", 81 + "optional": true, 82 + "os": [ 83 + "android" 84 + ], 85 + "engines": { 86 + "node": ">=18" 87 + } 88 + }, 89 + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/android-arm64": { 90 + "version": "0.27.0", 91 + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.0.tgz", 92 + "integrity": "sha512-CC3vt4+1xZrs97/PKDkl0yN7w8edvU2vZvAFGD16n9F0Cvniy5qvzRXjfO1l94efczkkQE6g1x0i73Qf5uthOQ==", 93 + "cpu": [ 94 + "arm64" 95 + ], 96 + "dev": true, 97 + "license": "MIT", 98 + "optional": true, 99 + "os": [ 100 + "android" 101 + ], 102 + "engines": { 103 + "node": ">=18" 104 + } 105 + }, 106 + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/android-x64": { 107 + "version": "0.27.0", 108 + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.0.tgz", 109 + "integrity": "sha512-wurMkF1nmQajBO1+0CJmcN17U4BP6GqNSROP8t0X/Jiw2ltYGLHpEksp9MpoBqkrFR3kv2/te6Sha26k3+yZ9Q==", 110 + "cpu": [ 111 + "x64" 112 + ], 113 + "dev": true, 114 + "license": "MIT", 115 + "optional": true, 116 + "os": [ 117 + "android" 118 + ], 119 + "engines": { 120 + "node": ">=18" 121 + } 122 + }, 123 + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/darwin-arm64": { 124 + "version": "0.27.0", 125 + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.0.tgz", 126 + "integrity": "sha512-uJOQKYCcHhg07DL7i8MzjvS2LaP7W7Pn/7uA0B5S1EnqAirJtbyw4yC5jQ5qcFjHK9l6o/MX9QisBg12kNkdHg==", 127 + "cpu": [ 128 + "arm64" 129 + ], 130 + "dev": true, 131 + "license": "MIT", 132 + "optional": true, 133 + "os": [ 134 + "darwin" 135 + ], 136 + "engines": { 137 + "node": ">=18" 138 + } 139 + }, 140 + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/darwin-x64": { 141 + "version": "0.27.0", 142 + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.0.tgz", 143 + "integrity": "sha512-8mG6arH3yB/4ZXiEnXof5MK72dE6zM9cDvUcPtxhUZsDjESl9JipZYW60C3JGreKCEP+p8P/72r69m4AZGJd5g==", 144 + "cpu": [ 145 + "x64" 146 + ], 147 + "dev": true, 148 + "license": "MIT", 149 + "optional": true, 150 + "os": [ 151 + "darwin" 152 + ], 153 + "engines": { 154 + "node": ">=18" 155 + } 156 + }, 157 + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/freebsd-arm64": { 158 + "version": "0.27.0", 159 + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.0.tgz", 160 + "integrity": "sha512-9FHtyO988CwNMMOE3YIeci+UV+x5Zy8fI2qHNpsEtSF83YPBmE8UWmfYAQg6Ux7Gsmd4FejZqnEUZCMGaNQHQw==", 161 + "cpu": [ 162 + "arm64" 163 + ], 164 + "dev": true, 165 + "license": "MIT", 166 + "optional": true, 167 + "os": [ 168 + "freebsd" 169 + ], 170 + "engines": { 171 + "node": ">=18" 172 + } 173 + }, 174 + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/freebsd-x64": { 175 + "version": "0.27.0", 176 + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.0.tgz", 177 + "integrity": "sha512-zCMeMXI4HS/tXvJz8vWGexpZj2YVtRAihHLk1imZj4efx1BQzN76YFeKqlDr3bUWI26wHwLWPd3rwh6pe4EV7g==", 178 + "cpu": [ 179 + "x64" 180 + ], 181 + "dev": true, 182 + "license": "MIT", 183 + "optional": true, 184 + "os": [ 185 + "freebsd" 186 + ], 187 + "engines": { 188 + "node": ">=18" 189 + } 190 + }, 191 + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/linux-arm": { 192 + "version": "0.27.0", 193 + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.0.tgz", 194 + "integrity": "sha512-t76XLQDpxgmq2cNXKTVEB7O7YMb42atj2Re2Haf45HkaUpjM2J0UuJZDuaGbPbamzZ7bawyGFUkodL+zcE+jvQ==", 195 + "cpu": [ 196 + "arm" 197 + ], 198 + "dev": true, 199 + "license": "MIT", 200 + "optional": true, 201 + "os": [ 202 + "linux" 203 + ], 204 + "engines": { 205 + "node": ">=18" 206 + } 207 + }, 208 + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/linux-arm64": { 209 + "version": "0.27.0", 210 + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.0.tgz", 211 + "integrity": "sha512-AS18v0V+vZiLJyi/4LphvBE+OIX682Pu7ZYNsdUHyUKSoRwdnOsMf6FDekwoAFKej14WAkOef3zAORJgAtXnlQ==", 212 + "cpu": [ 213 + "arm64" 214 + ], 215 + "dev": true, 216 + "license": "MIT", 217 + "optional": true, 218 + "os": [ 219 + "linux" 220 + ], 221 + "engines": { 222 + "node": ">=18" 223 + } 224 + }, 225 + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/linux-ia32": { 226 + "version": "0.27.0", 227 + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.0.tgz", 228 + "integrity": "sha512-Mz1jxqm/kfgKkc/KLHC5qIujMvnnarD9ra1cEcrs7qshTUSksPihGrWHVG5+osAIQ68577Zpww7SGapmzSt4Nw==", 229 + "cpu": [ 230 + "ia32" 231 + ], 232 + "dev": true, 233 + "license": "MIT", 234 + "optional": true, 235 + "os": [ 236 + "linux" 237 + ], 238 + "engines": { 239 + "node": ">=18" 240 + } 241 + }, 242 + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/linux-loong64": { 243 + "version": "0.27.0", 244 + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.0.tgz", 245 + "integrity": "sha512-QbEREjdJeIreIAbdG2hLU1yXm1uu+LTdzoq1KCo4G4pFOLlvIspBm36QrQOar9LFduavoWX2msNFAAAY9j4BDg==", 246 + "cpu": [ 247 + "loong64" 248 + ], 249 + "dev": true, 250 + "license": "MIT", 251 + "optional": true, 252 + "os": [ 253 + "linux" 254 + ], 255 + "engines": { 256 + "node": ">=18" 257 + } 258 + }, 259 + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/linux-mips64el": { 260 + "version": "0.27.0", 261 + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.0.tgz", 262 + "integrity": "sha512-sJz3zRNe4tO2wxvDpH/HYJilb6+2YJxo/ZNbVdtFiKDufzWq4JmKAiHy9iGoLjAV7r/W32VgaHGkk35cUXlNOg==", 263 + "cpu": [ 264 + "mips64el" 265 + ], 266 + "dev": true, 267 + "license": "MIT", 268 + "optional": true, 269 + "os": [ 270 + "linux" 271 + ], 272 + "engines": { 273 + "node": ">=18" 274 + } 275 + }, 276 + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/linux-ppc64": { 277 + "version": "0.27.0", 278 + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.0.tgz", 279 + "integrity": "sha512-z9N10FBD0DCS2dmSABDBb5TLAyF1/ydVb+N4pi88T45efQ/w4ohr/F/QYCkxDPnkhkp6AIpIcQKQ8F0ANoA2JA==", 280 + "cpu": [ 281 + "ppc64" 282 + ], 283 + "dev": true, 284 + "license": "MIT", 285 + "optional": true, 286 + "os": [ 287 + "linux" 288 + ], 289 + "engines": { 290 + "node": ">=18" 291 + } 292 + }, 293 + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/linux-riscv64": { 294 + "version": "0.27.0", 295 + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.0.tgz", 296 + "integrity": "sha512-pQdyAIZ0BWIC5GyvVFn5awDiO14TkT/19FTmFcPdDec94KJ1uZcmFs21Fo8auMXzD4Tt+diXu1LW1gHus9fhFQ==", 297 + "cpu": [ 298 + "riscv64" 299 + ], 300 + "dev": true, 301 + "license": "MIT", 302 + "optional": true, 303 + "os": [ 304 + "linux" 305 + ], 306 + "engines": { 307 + "node": ">=18" 308 + } 309 + }, 310 + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/linux-s390x": { 311 + "version": "0.27.0", 312 + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.0.tgz", 313 + "integrity": "sha512-hPlRWR4eIDDEci953RI1BLZitgi5uqcsjKMxwYfmi4LcwyWo2IcRP+lThVnKjNtk90pLS8nKdroXYOqW+QQH+w==", 314 + "cpu": [ 315 + "s390x" 316 + ], 317 + "dev": true, 318 + "license": "MIT", 319 + "optional": true, 320 + "os": [ 321 + "linux" 322 + ], 323 + "engines": { 324 + "node": ">=18" 325 + } 326 + }, 327 + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/linux-x64": { 328 + "version": "0.27.0", 329 + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.0.tgz", 330 + "integrity": "sha512-1hBWx4OUJE2cab++aVZ7pObD6s+DK4mPGpemtnAORBvb5l/g5xFGk0vc0PjSkrDs0XaXj9yyob3d14XqvnQ4gw==", 331 + "cpu": [ 332 + "x64" 333 + ], 334 + "dev": true, 335 + "license": "MIT", 336 + "optional": true, 337 + "os": [ 338 + "linux" 339 + ], 340 + "engines": { 341 + "node": ">=18" 342 + } 343 + }, 344 + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/netbsd-arm64": { 345 + "version": "0.27.0", 346 + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.0.tgz", 347 + "integrity": "sha512-6m0sfQfxfQfy1qRuecMkJlf1cIzTOgyaeXaiVaaki8/v+WB+U4hc6ik15ZW6TAllRlg/WuQXxWj1jx6C+dfy3w==", 348 + "cpu": [ 349 + "arm64" 350 + ], 351 + "dev": true, 352 + "license": "MIT", 353 + "optional": true, 354 + "os": [ 355 + "netbsd" 356 + ], 357 + "engines": { 358 + "node": ">=18" 359 + } 360 + }, 361 + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/netbsd-x64": { 362 + "version": "0.27.0", 363 + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.0.tgz", 364 + "integrity": "sha512-xbbOdfn06FtcJ9d0ShxxvSn2iUsGd/lgPIO2V3VZIPDbEaIj1/3nBBe1AwuEZKXVXkMmpr6LUAgMkLD/4D2PPA==", 365 + "cpu": [ 366 + "x64" 367 + ], 368 + "dev": true, 369 + "license": "MIT", 370 + "optional": true, 371 + "os": [ 372 + "netbsd" 373 + ], 374 + "engines": { 375 + "node": ">=18" 376 + } 377 + }, 378 + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/openbsd-arm64": { 379 + "version": "0.27.0", 380 + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.0.tgz", 381 + "integrity": "sha512-fWgqR8uNbCQ/GGv0yhzttj6sU/9Z5/Sv/VGU3F5OuXK6J6SlriONKrQ7tNlwBrJZXRYk5jUhuWvF7GYzGguBZQ==", 382 + "cpu": [ 383 + "arm64" 384 + ], 385 + "dev": true, 386 + "license": "MIT", 387 + "optional": true, 388 + "os": [ 389 + "openbsd" 390 + ], 391 + "engines": { 392 + "node": ">=18" 393 + } 394 + }, 395 + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/openbsd-x64": { 396 + "version": "0.27.0", 397 + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.0.tgz", 398 + "integrity": "sha512-aCwlRdSNMNxkGGqQajMUza6uXzR/U0dIl1QmLjPtRbLOx3Gy3otfFu/VjATy4yQzo9yFDGTxYDo1FfAD9oRD2A==", 399 + "cpu": [ 400 + "x64" 401 + ], 402 + "dev": true, 403 + "license": "MIT", 404 + "optional": true, 405 + "os": [ 406 + "openbsd" 407 + ], 408 + "engines": { 409 + "node": ">=18" 410 + } 411 + }, 412 + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/openharmony-arm64": { 413 + "version": "0.27.0", 414 + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.0.tgz", 415 + "integrity": "sha512-nyvsBccxNAsNYz2jVFYwEGuRRomqZ149A39SHWk4hV0jWxKM0hjBPm3AmdxcbHiFLbBSwG6SbpIcUbXjgyECfA==", 416 + "cpu": [ 417 + "arm64" 418 + ], 419 + "dev": true, 420 + "license": "MIT", 421 + "optional": true, 422 + "os": [ 423 + "openharmony" 424 + ], 425 + "engines": { 426 + "node": ">=18" 427 + } 428 + }, 429 + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/sunos-x64": { 430 + "version": "0.27.0", 431 + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.0.tgz", 432 + "integrity": "sha512-Q1KY1iJafM+UX6CFEL+F4HRTgygmEW568YMqDA5UV97AuZSm21b7SXIrRJDwXWPzr8MGr75fUZPV67FdtMHlHA==", 433 + "cpu": [ 434 + "x64" 435 + ], 436 + "dev": true, 437 + "license": "MIT", 438 + "optional": true, 439 + "os": [ 440 + "sunos" 441 + ], 442 + "engines": { 443 + "node": ">=18" 444 + } 445 + }, 446 + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/win32-arm64": { 447 + "version": "0.27.0", 448 + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.0.tgz", 449 + "integrity": "sha512-W1eyGNi6d+8kOmZIwi/EDjrL9nxQIQ0MiGqe/AWc6+IaHloxHSGoeRgDRKHFISThLmsewZ5nHFvGFWdBYlgKPg==", 450 + "cpu": [ 451 + "arm64" 452 + ], 453 + "dev": true, 454 + "license": "MIT", 455 + "optional": true, 456 + "os": [ 457 + "win32" 458 + ], 459 + "engines": { 460 + "node": ">=18" 461 + } 462 + }, 463 + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/win32-ia32": { 464 + "version": "0.27.0", 465 + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.0.tgz", 466 + "integrity": "sha512-30z1aKL9h22kQhilnYkORFYt+3wp7yZsHWus+wSKAJR8JtdfI76LJ4SBdMsCopTR3z/ORqVu5L1vtnHZWVj4cQ==", 467 + "cpu": [ 468 + "ia32" 469 + ], 470 + "dev": true, 471 + "license": "MIT", 472 + "optional": true, 473 + "os": [ 474 + "win32" 475 + ], 476 + "engines": { 477 + "node": ">=18" 478 + } 479 + }, 480 + "node_modules/@cloudflare/vitest-pool-workers/node_modules/@esbuild/win32-x64": { 481 + "version": "0.27.0", 482 + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.0.tgz", 483 + "integrity": "sha512-aIitBcjQeyOhMTImhLZmtxfdOcuNRpwlPNmlFKPcHQYPhEssw75Cl1TSXJXpMkzaua9FUetx/4OQKq7eJul5Cg==", 484 + "cpu": [ 485 + "x64" 486 + ], 487 + "dev": true, 488 + "license": "MIT", 489 + "optional": true, 490 + "os": [ 491 + "win32" 492 + ], 493 + "engines": { 494 + "node": ">=18" 495 + } 496 + }, 497 + "node_modules/@cloudflare/vitest-pool-workers/node_modules/esbuild": { 498 + "version": "0.27.0", 499 + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.0.tgz", 500 + "integrity": "sha512-jd0f4NHbD6cALCyGElNpGAOtWxSq46l9X/sWB0Nzd5er4Kz2YTm+Vl0qKFT9KUJvD8+fiO8AvoHhFvEatfVixA==", 501 + "dev": true, 502 + "hasInstallScript": true, 503 + "license": "MIT", 504 + "bin": { 505 + "esbuild": "bin/esbuild" 506 + }, 507 + "engines": { 508 + "node": ">=18" 509 + }, 510 + "optionalDependencies": { 511 + "@esbuild/aix-ppc64": "0.27.0", 512 + "@esbuild/android-arm": "0.27.0", 513 + "@esbuild/android-arm64": "0.27.0", 514 + "@esbuild/android-x64": "0.27.0", 515 + "@esbuild/darwin-arm64": "0.27.0", 516 + "@esbuild/darwin-x64": "0.27.0", 517 + "@esbuild/freebsd-arm64": "0.27.0", 518 + "@esbuild/freebsd-x64": "0.27.0", 519 + "@esbuild/linux-arm": "0.27.0", 520 + "@esbuild/linux-arm64": "0.27.0", 521 + "@esbuild/linux-ia32": "0.27.0", 522 + "@esbuild/linux-loong64": "0.27.0", 523 + "@esbuild/linux-mips64el": "0.27.0", 524 + "@esbuild/linux-ppc64": "0.27.0", 525 + "@esbuild/linux-riscv64": "0.27.0", 526 + "@esbuild/linux-s390x": "0.27.0", 527 + "@esbuild/linux-x64": "0.27.0", 528 + "@esbuild/netbsd-arm64": "0.27.0", 529 + "@esbuild/netbsd-x64": "0.27.0", 530 + "@esbuild/openbsd-arm64": "0.27.0", 531 + "@esbuild/openbsd-x64": "0.27.0", 532 + "@esbuild/openharmony-arm64": "0.27.0", 533 + "@esbuild/sunos-x64": "0.27.0", 534 + "@esbuild/win32-arm64": "0.27.0", 535 + "@esbuild/win32-ia32": "0.27.0", 536 + "@esbuild/win32-x64": "0.27.0" 537 + } 538 + }, 70 539 "node_modules/@cloudflare/workerd-darwin-64": { 71 - "version": "1.20250617.0", 72 - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20250617.0.tgz", 73 - "integrity": "sha512-toG8JUKVLIks4oOJLe9FeuixE84pDpMZ32ip7mCpE7JaFc5BqGFvevk0YC/db3T71AQlialjRwioH3jS/dzItA==", 540 + "version": "1.20251217.0", 541 + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20251217.0.tgz", 542 + "integrity": "sha512-DN6vT+9ho61d/1/YuILW4VS+N1JBLaixWRL1vqNmhgbf8J8VHwWWotrRruEUYigJKx2yZyw6YsasE+yLXgx/Fw==", 74 543 "cpu": [ 75 544 "x64" 76 545 ], ··· 85 554 } 86 555 }, 87 556 "node_modules/@cloudflare/workerd-darwin-arm64": { 88 - "version": "1.20250617.0", 89 - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20250617.0.tgz", 90 - "integrity": "sha512-JTX0exbC9/ZtMmQQA8tDZEZFMXZrxOpTUj2hHnsUkErWYkr5SSZH04RBhPg6dU4VL8bXuB5/eJAh7+P9cZAp7g==", 557 + "version": "1.20251217.0", 558 + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20251217.0.tgz", 559 + "integrity": "sha512-5nZOpRTkHmtcTc4Wbr1mj/O3dLb6aHZSiJuVBgtdbVcVmOXueSay3hnw1PXEyR+vpTKGUPkM+omUIslKHWnXDw==", 91 560 "cpu": [ 92 561 "arm64" 93 562 ], ··· 102 571 } 103 572 }, 104 573 "node_modules/@cloudflare/workerd-linux-64": { 105 - "version": "1.20250617.0", 106 - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20250617.0.tgz", 107 - "integrity": "sha512-8jkSoVRJ+1bOx3tuWlZCGaGCV2ew7/jFMl6V3CPXOoEtERUHsZBQLVkQIGKcmC/LKSj7f/mpyBUeu2EPTo2HEg==", 574 + "version": "1.20251217.0", 575 + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20251217.0.tgz", 576 + "integrity": "sha512-uoPGhMaZVXPpCsU0oG3HQzyVpXCGi5rU+jcHRjUI7DXM4EwctBGvZ380Knkja36qtl+ZvSKVR1pUFSGdK+45Pg==", 108 577 "cpu": [ 109 578 "x64" 110 579 ], ··· 119 588 } 120 589 }, 121 590 "node_modules/@cloudflare/workerd-linux-arm64": { 122 - "version": "1.20250617.0", 123 - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20250617.0.tgz", 124 - "integrity": "sha512-YAzcOyu897z5dQKFzme1oujGWMGEJCR7/Wrrm1nSP6dqutxFPTubRADM8BHn2CV3ij//vaPnAeLmZE3jVwOwig==", 591 + "version": "1.20251217.0", 592 + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20251217.0.tgz", 593 + "integrity": "sha512-ixHnHKsiz1Xko+eDgCJOZ7EEUZKtmnYq3AjW3nkVcLFypSLks4C29E45zVewdaN4wq8sCLeyQCl6r1kS17+DQQ==", 125 594 "cpu": [ 126 595 "arm64" 127 596 ], ··· 136 605 } 137 606 }, 138 607 "node_modules/@cloudflare/workerd-windows-64": { 139 - "version": "1.20250617.0", 140 - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20250617.0.tgz", 141 - "integrity": "sha512-XWM/6sagDrO0CYDKhXhPjM23qusvIN1ju9ZEml6gOQs8tNOFnq6Cn6X9FAmnyapRFCGUSEC3HZYJAm7zwVKaMA==", 608 + "version": "1.20251217.0", 609 + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20251217.0.tgz", 610 + "integrity": "sha512-rP6USX+7ctynz3AtmKi+EvlLP3Xdr1ETrSdcnv693/I5QdUwBxq4yE1Lj6CV7GJizX6opXKYg8QMq0Q4eB9zRQ==", 142 611 "cpu": [ 143 612 "x64" 144 613 ], ··· 166 635 } 167 636 }, 168 637 "node_modules/@emnapi/runtime": { 169 - "version": "1.4.3", 170 - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.3.tgz", 171 - "integrity": "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==", 638 + "version": "1.7.1", 639 + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.7.1.tgz", 640 + "integrity": "sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==", 172 641 "dev": true, 173 642 "license": "MIT", 174 643 "optional": true, ··· 177 646 } 178 647 }, 179 648 "node_modules/@esbuild/aix-ppc64": { 180 - "version": "0.25.5", 181 - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.5.tgz", 182 - "integrity": "sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA==", 649 + "version": "0.27.2", 650 + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.2.tgz", 651 + "integrity": "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==", 183 652 "cpu": [ 184 653 "ppc64" 185 654 ], ··· 194 663 } 195 664 }, 196 665 "node_modules/@esbuild/android-arm": { 197 - "version": "0.25.5", 198 - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.5.tgz", 199 - "integrity": "sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA==", 666 + "version": "0.27.2", 667 + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.2.tgz", 668 + "integrity": "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==", 200 669 "cpu": [ 201 670 "arm" 202 671 ], ··· 211 680 } 212 681 }, 213 682 "node_modules/@esbuild/android-arm64": { 214 - "version": "0.25.5", 215 - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.5.tgz", 216 - "integrity": "sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg==", 683 + "version": "0.27.2", 684 + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.2.tgz", 685 + "integrity": "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==", 217 686 "cpu": [ 218 687 "arm64" 219 688 ], ··· 228 697 } 229 698 }, 230 699 "node_modules/@esbuild/android-x64": { 231 - "version": "0.25.5", 232 - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.5.tgz", 233 - "integrity": "sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw==", 700 + "version": "0.27.2", 701 + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.2.tgz", 702 + "integrity": "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==", 234 703 "cpu": [ 235 704 "x64" 236 705 ], ··· 245 714 } 246 715 }, 247 716 "node_modules/@esbuild/darwin-arm64": { 248 - "version": "0.25.5", 249 - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.5.tgz", 250 - "integrity": "sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ==", 717 + "version": "0.27.2", 718 + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.2.tgz", 719 + "integrity": "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==", 251 720 "cpu": [ 252 721 "arm64" 253 722 ], ··· 262 731 } 263 732 }, 264 733 "node_modules/@esbuild/darwin-x64": { 265 - "version": "0.25.5", 266 - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.5.tgz", 267 - "integrity": "sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ==", 734 + "version": "0.27.2", 735 + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz", 736 + "integrity": "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==", 268 737 "cpu": [ 269 738 "x64" 270 739 ], ··· 279 748 } 280 749 }, 281 750 "node_modules/@esbuild/freebsd-arm64": { 282 - "version": "0.25.5", 283 - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.5.tgz", 284 - "integrity": "sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw==", 751 + "version": "0.27.2", 752 + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.2.tgz", 753 + "integrity": "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==", 285 754 "cpu": [ 286 755 "arm64" 287 756 ], ··· 296 765 } 297 766 }, 298 767 "node_modules/@esbuild/freebsd-x64": { 299 - "version": "0.25.5", 300 - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.5.tgz", 301 - "integrity": "sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw==", 768 + "version": "0.27.2", 769 + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.2.tgz", 770 + "integrity": "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==", 302 771 "cpu": [ 303 772 "x64" 304 773 ], ··· 313 782 } 314 783 }, 315 784 "node_modules/@esbuild/linux-arm": { 316 - "version": "0.25.5", 317 - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.5.tgz", 318 - "integrity": "sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw==", 785 + "version": "0.27.2", 786 + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.2.tgz", 787 + "integrity": "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==", 319 788 "cpu": [ 320 789 "arm" 321 790 ], ··· 330 799 } 331 800 }, 332 801 "node_modules/@esbuild/linux-arm64": { 333 - "version": "0.25.5", 334 - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.5.tgz", 335 - "integrity": "sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg==", 802 + "version": "0.27.2", 803 + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.2.tgz", 804 + "integrity": "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==", 336 805 "cpu": [ 337 806 "arm64" 338 807 ], ··· 347 816 } 348 817 }, 349 818 "node_modules/@esbuild/linux-ia32": { 350 - "version": "0.25.5", 351 - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.5.tgz", 352 - "integrity": "sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA==", 819 + "version": "0.27.2", 820 + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.2.tgz", 821 + "integrity": "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==", 353 822 "cpu": [ 354 823 "ia32" 355 824 ], ··· 364 833 } 365 834 }, 366 835 "node_modules/@esbuild/linux-loong64": { 367 - "version": "0.25.5", 368 - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.5.tgz", 369 - "integrity": "sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg==", 836 + "version": "0.27.2", 837 + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.2.tgz", 838 + "integrity": "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==", 370 839 "cpu": [ 371 840 "loong64" 372 841 ], ··· 381 850 } 382 851 }, 383 852 "node_modules/@esbuild/linux-mips64el": { 384 - "version": "0.25.5", 385 - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.5.tgz", 386 - "integrity": "sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg==", 853 + "version": "0.27.2", 854 + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.2.tgz", 855 + "integrity": "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==", 387 856 "cpu": [ 388 857 "mips64el" 389 858 ], ··· 398 867 } 399 868 }, 400 869 "node_modules/@esbuild/linux-ppc64": { 401 - "version": "0.25.5", 402 - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.5.tgz", 403 - "integrity": "sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ==", 870 + "version": "0.27.2", 871 + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.2.tgz", 872 + "integrity": "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==", 404 873 "cpu": [ 405 874 "ppc64" 406 875 ], ··· 415 884 } 416 885 }, 417 886 "node_modules/@esbuild/linux-riscv64": { 418 - "version": "0.25.5", 419 - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.5.tgz", 420 - "integrity": "sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA==", 887 + "version": "0.27.2", 888 + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.2.tgz", 889 + "integrity": "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==", 421 890 "cpu": [ 422 891 "riscv64" 423 892 ], ··· 432 901 } 433 902 }, 434 903 "node_modules/@esbuild/linux-s390x": { 435 - "version": "0.25.5", 436 - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.5.tgz", 437 - "integrity": "sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ==", 904 + "version": "0.27.2", 905 + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.2.tgz", 906 + "integrity": "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==", 438 907 "cpu": [ 439 908 "s390x" 440 909 ], ··· 449 918 } 450 919 }, 451 920 "node_modules/@esbuild/linux-x64": { 452 - "version": "0.25.5", 453 - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.5.tgz", 454 - "integrity": "sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw==", 921 + "version": "0.27.2", 922 + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.2.tgz", 923 + "integrity": "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==", 455 924 "cpu": [ 456 925 "x64" 457 926 ], ··· 466 935 } 467 936 }, 468 937 "node_modules/@esbuild/netbsd-arm64": { 469 - "version": "0.25.5", 470 - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.5.tgz", 471 - "integrity": "sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw==", 938 + "version": "0.27.2", 939 + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.2.tgz", 940 + "integrity": "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==", 472 941 "cpu": [ 473 942 "arm64" 474 943 ], ··· 483 952 } 484 953 }, 485 954 "node_modules/@esbuild/netbsd-x64": { 486 - "version": "0.25.5", 487 - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.5.tgz", 488 - "integrity": "sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ==", 955 + "version": "0.27.2", 956 + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.2.tgz", 957 + "integrity": "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==", 489 958 "cpu": [ 490 959 "x64" 491 960 ], ··· 500 969 } 501 970 }, 502 971 "node_modules/@esbuild/openbsd-arm64": { 503 - "version": "0.25.5", 504 - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.5.tgz", 505 - "integrity": "sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw==", 972 + "version": "0.27.2", 973 + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.2.tgz", 974 + "integrity": "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==", 506 975 "cpu": [ 507 976 "arm64" 508 977 ], ··· 517 986 } 518 987 }, 519 988 "node_modules/@esbuild/openbsd-x64": { 520 - "version": "0.25.5", 521 - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.5.tgz", 522 - "integrity": "sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg==", 989 + "version": "0.27.2", 990 + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.2.tgz", 991 + "integrity": "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==", 523 992 "cpu": [ 524 993 "x64" 525 994 ], ··· 533 1002 "node": ">=18" 534 1003 } 535 1004 }, 1005 + "node_modules/@esbuild/openharmony-arm64": { 1006 + "version": "0.27.2", 1007 + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.2.tgz", 1008 + "integrity": "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==", 1009 + "cpu": [ 1010 + "arm64" 1011 + ], 1012 + "dev": true, 1013 + "license": "MIT", 1014 + "optional": true, 1015 + "os": [ 1016 + "openharmony" 1017 + ], 1018 + "engines": { 1019 + "node": ">=18" 1020 + } 1021 + }, 536 1022 "node_modules/@esbuild/sunos-x64": { 537 - "version": "0.25.5", 538 - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.5.tgz", 539 - "integrity": "sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA==", 1023 + "version": "0.27.2", 1024 + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.2.tgz", 1025 + "integrity": "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==", 540 1026 "cpu": [ 541 1027 "x64" 542 1028 ], ··· 551 1037 } 552 1038 }, 553 1039 "node_modules/@esbuild/win32-arm64": { 554 - "version": "0.25.5", 555 - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.5.tgz", 556 - "integrity": "sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw==", 1040 + "version": "0.27.2", 1041 + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.2.tgz", 1042 + "integrity": "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==", 557 1043 "cpu": [ 558 1044 "arm64" 559 1045 ], ··· 568 1054 } 569 1055 }, 570 1056 "node_modules/@esbuild/win32-ia32": { 571 - "version": "0.25.5", 572 - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.5.tgz", 573 - "integrity": "sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ==", 1057 + "version": "0.27.2", 1058 + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.2.tgz", 1059 + "integrity": "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==", 574 1060 "cpu": [ 575 1061 "ia32" 576 1062 ], ··· 585 1071 } 586 1072 }, 587 1073 "node_modules/@esbuild/win32-x64": { 588 - "version": "0.25.5", 589 - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.5.tgz", 590 - "integrity": "sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g==", 1074 + "version": "0.27.2", 1075 + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.2.tgz", 1076 + "integrity": "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==", 591 1077 "cpu": [ 592 1078 "x64" 593 1079 ], ··· 601 1087 "node": ">=18" 602 1088 } 603 1089 }, 604 - "node_modules/@fastify/busboy": { 605 - "version": "2.1.1", 606 - "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", 607 - "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", 608 - "dev": true, 609 - "license": "MIT", 610 - "engines": { 611 - "node": ">=14" 612 - } 613 - }, 614 1090 "node_modules/@img/sharp-darwin-arm64": { 615 1091 "version": "0.33.5", 616 1092 "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", ··· 1002 1478 } 1003 1479 }, 1004 1480 "node_modules/@jridgewell/sourcemap-codec": { 1005 - "version": "1.5.0", 1006 - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", 1007 - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", 1481 + "version": "1.5.5", 1482 + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", 1483 + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", 1008 1484 "dev": true, 1009 1485 "license": "MIT" 1010 1486 }, ··· 1019 1495 "@jridgewell/sourcemap-codec": "^1.4.10" 1020 1496 } 1021 1497 }, 1498 + "node_modules/@poppinss/colors": { 1499 + "version": "4.1.6", 1500 + "resolved": "https://registry.npmjs.org/@poppinss/colors/-/colors-4.1.6.tgz", 1501 + "integrity": "sha512-H9xkIdFswbS8n1d6vmRd8+c10t2Qe+rZITbbDHHkQixH5+2x1FDGmi/0K+WgWiqQFKPSlIYB7jlH6Kpfn6Fleg==", 1502 + "dev": true, 1503 + "license": "MIT", 1504 + "dependencies": { 1505 + "kleur": "^4.1.5" 1506 + } 1507 + }, 1508 + "node_modules/@poppinss/dumper": { 1509 + "version": "0.6.5", 1510 + "resolved": "https://registry.npmjs.org/@poppinss/dumper/-/dumper-0.6.5.tgz", 1511 + "integrity": "sha512-NBdYIb90J7LfOI32dOewKI1r7wnkiH6m920puQ3qHUeZkxNkQiFnXVWoE6YtFSv6QOiPPf7ys6i+HWWecDz7sw==", 1512 + "dev": true, 1513 + "license": "MIT", 1514 + "dependencies": { 1515 + "@poppinss/colors": "^4.1.5", 1516 + "@sindresorhus/is": "^7.0.2", 1517 + "supports-color": "^10.0.0" 1518 + } 1519 + }, 1520 + "node_modules/@poppinss/exception": { 1521 + "version": "1.2.3", 1522 + "resolved": "https://registry.npmjs.org/@poppinss/exception/-/exception-1.2.3.tgz", 1523 + "integrity": "sha512-dCED+QRChTVatE9ibtoaxc+WkdzOSjYTKi/+uacHWIsfodVfpsueo3+DKpgU5Px8qXjgmXkSvhXvSCz3fnP9lw==", 1524 + "dev": true, 1525 + "license": "MIT" 1526 + }, 1022 1527 "node_modules/@rollup/rollup-android-arm-eabi": { 1023 - "version": "4.44.1", 1024 - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.44.1.tgz", 1025 - "integrity": "sha512-JAcBr1+fgqx20m7Fwe1DxPUl/hPkee6jA6Pl7n1v2EFiktAHenTaXl5aIFjUIEsfn9w3HE4gK1lEgNGMzBDs1w==", 1528 + "version": "4.54.0", 1529 + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.54.0.tgz", 1530 + "integrity": "sha512-OywsdRHrFvCdvsewAInDKCNyR3laPA2mc9bRYJ6LBp5IyvF3fvXbbNR0bSzHlZVFtn6E0xw2oZlyjg4rKCVcng==", 1026 1531 "cpu": [ 1027 1532 "arm" 1028 1533 ], ··· 1034 1539 ] 1035 1540 }, 1036 1541 "node_modules/@rollup/rollup-android-arm64": { 1037 - "version": "4.44.1", 1038 - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.44.1.tgz", 1039 - "integrity": "sha512-RurZetXqTu4p+G0ChbnkwBuAtwAbIwJkycw1n6GvlGlBuS4u5qlr5opix8cBAYFJgaY05TWtM+LaoFggUmbZEQ==", 1542 + "version": "4.54.0", 1543 + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.54.0.tgz", 1544 + "integrity": "sha512-Skx39Uv+u7H224Af+bDgNinitlmHyQX1K/atIA32JP3JQw6hVODX5tkbi2zof/E69M1qH2UoN3Xdxgs90mmNYw==", 1040 1545 "cpu": [ 1041 1546 "arm64" 1042 1547 ], ··· 1048 1553 ] 1049 1554 }, 1050 1555 "node_modules/@rollup/rollup-darwin-arm64": { 1051 - "version": "4.44.1", 1052 - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.44.1.tgz", 1053 - "integrity": "sha512-fM/xPesi7g2M7chk37LOnmnSTHLG/v2ggWqKj3CCA1rMA4mm5KVBT1fNoswbo1JhPuNNZrVwpTvlCVggv8A2zg==", 1556 + "version": "4.54.0", 1557 + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.54.0.tgz", 1558 + "integrity": "sha512-k43D4qta/+6Fq+nCDhhv9yP2HdeKeP56QrUUTW7E6PhZP1US6NDqpJj4MY0jBHlJivVJD5P8NxrjuobZBJTCRw==", 1054 1559 "cpu": [ 1055 1560 "arm64" 1056 1561 ], ··· 1062 1567 ] 1063 1568 }, 1064 1569 "node_modules/@rollup/rollup-darwin-x64": { 1065 - "version": "4.44.1", 1066 - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.44.1.tgz", 1067 - "integrity": "sha512-gDnWk57urJrkrHQ2WVx9TSVTH7lSlU7E3AFqiko+bgjlh78aJ88/3nycMax52VIVjIm3ObXnDL2H00e/xzoipw==", 1570 + "version": "4.54.0", 1571 + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.54.0.tgz", 1572 + "integrity": "sha512-cOo7biqwkpawslEfox5Vs8/qj83M/aZCSSNIWpVzfU2CYHa2G3P1UN5WF01RdTHSgCkri7XOlTdtk17BezlV3A==", 1068 1573 "cpu": [ 1069 1574 "x64" 1070 1575 ], ··· 1076 1581 ] 1077 1582 }, 1078 1583 "node_modules/@rollup/rollup-freebsd-arm64": { 1079 - "version": "4.44.1", 1080 - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.44.1.tgz", 1081 - "integrity": "sha512-wnFQmJ/zPThM5zEGcnDcCJeYJgtSLjh1d//WuHzhf6zT3Md1BvvhJnWoy+HECKu2bMxaIcfWiu3bJgx6z4g2XA==", 1584 + "version": "4.54.0", 1585 + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.54.0.tgz", 1586 + "integrity": "sha512-miSvuFkmvFbgJ1BevMa4CPCFt5MPGw094knM64W9I0giUIMMmRYcGW/JWZDriaw/k1kOBtsWh1z6nIFV1vPNtA==", 1082 1587 "cpu": [ 1083 1588 "arm64" 1084 1589 ], ··· 1090 1595 ] 1091 1596 }, 1092 1597 "node_modules/@rollup/rollup-freebsd-x64": { 1093 - "version": "4.44.1", 1094 - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.44.1.tgz", 1095 - "integrity": "sha512-uBmIxoJ4493YATvU2c0upGz87f99e3wop7TJgOA/bXMFd2SvKCI7xkxY/5k50bv7J6dw1SXT4MQBQSLn8Bb/Uw==", 1598 + "version": "4.54.0", 1599 + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.54.0.tgz", 1600 + "integrity": "sha512-KGXIs55+b/ZfZsq9aR026tmr/+7tq6VG6MsnrvF4H8VhwflTIuYh+LFUlIsRdQSgrgmtM3fVATzEAj4hBQlaqQ==", 1096 1601 "cpu": [ 1097 1602 "x64" 1098 1603 ], ··· 1104 1609 ] 1105 1610 }, 1106 1611 "node_modules/@rollup/rollup-linux-arm-gnueabihf": { 1107 - "version": "4.44.1", 1108 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.44.1.tgz", 1109 - "integrity": "sha512-n0edDmSHlXFhrlmTK7XBuwKlG5MbS7yleS1cQ9nn4kIeW+dJH+ExqNgQ0RrFRew8Y+0V/x6C5IjsHrJmiHtkxQ==", 1612 + "version": "4.54.0", 1613 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.54.0.tgz", 1614 + "integrity": "sha512-EHMUcDwhtdRGlXZsGSIuXSYwD5kOT9NVnx9sqzYiwAc91wfYOE1g1djOEDseZJKKqtHAHGwnGPQu3kytmfaXLQ==", 1110 1615 "cpu": [ 1111 1616 "arm" 1112 1617 ], ··· 1118 1623 ] 1119 1624 }, 1120 1625 "node_modules/@rollup/rollup-linux-arm-musleabihf": { 1121 - "version": "4.44.1", 1122 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.44.1.tgz", 1123 - "integrity": "sha512-8WVUPy3FtAsKSpyk21kV52HCxB+me6YkbkFHATzC2Yd3yuqHwy2lbFL4alJOLXKljoRw08Zk8/xEj89cLQ/4Nw==", 1626 + "version": "4.54.0", 1627 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.54.0.tgz", 1628 + "integrity": "sha512-+pBrqEjaakN2ySv5RVrj/qLytYhPKEUwk+e3SFU5jTLHIcAtqh2rLrd/OkbNuHJpsBgxsD8ccJt5ga/SeG0JmA==", 1124 1629 "cpu": [ 1125 1630 "arm" 1126 1631 ], ··· 1132 1637 ] 1133 1638 }, 1134 1639 "node_modules/@rollup/rollup-linux-arm64-gnu": { 1135 - "version": "4.44.1", 1136 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.44.1.tgz", 1137 - "integrity": "sha512-yuktAOaeOgorWDeFJggjuCkMGeITfqvPgkIXhDqsfKX8J3jGyxdDZgBV/2kj/2DyPaLiX6bPdjJDTu9RB8lUPQ==", 1640 + "version": "4.54.0", 1641 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.54.0.tgz", 1642 + "integrity": "sha512-NSqc7rE9wuUaRBsBp5ckQ5CVz5aIRKCwsoa6WMF7G01sX3/qHUw/z4pv+D+ahL1EIKy6Enpcnz1RY8pf7bjwng==", 1138 1643 "cpu": [ 1139 1644 "arm64" 1140 1645 ], ··· 1146 1651 ] 1147 1652 }, 1148 1653 "node_modules/@rollup/rollup-linux-arm64-musl": { 1149 - "version": "4.44.1", 1150 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.44.1.tgz", 1151 - "integrity": "sha512-W+GBM4ifET1Plw8pdVaecwUgxmiH23CfAUj32u8knq0JPFyK4weRy6H7ooxYFD19YxBulL0Ktsflg5XS7+7u9g==", 1654 + "version": "4.54.0", 1655 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.54.0.tgz", 1656 + "integrity": "sha512-gr5vDbg3Bakga5kbdpqx81m2n9IX8M6gIMlQQIXiLTNeQW6CucvuInJ91EuCJ/JYvc+rcLLsDFcfAD1K7fMofg==", 1152 1657 "cpu": [ 1153 1658 "arm64" 1154 1659 ], ··· 1159 1664 "linux" 1160 1665 ] 1161 1666 }, 1162 - "node_modules/@rollup/rollup-linux-loongarch64-gnu": { 1163 - "version": "4.44.1", 1164 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.44.1.tgz", 1165 - "integrity": "sha512-1zqnUEMWp9WrGVuVak6jWTl4fEtrVKfZY7CvcBmUUpxAJ7WcSowPSAWIKa/0o5mBL/Ij50SIf9tuirGx63Ovew==", 1667 + "node_modules/@rollup/rollup-linux-loong64-gnu": { 1668 + "version": "4.54.0", 1669 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.54.0.tgz", 1670 + "integrity": "sha512-gsrtB1NA3ZYj2vq0Rzkylo9ylCtW/PhpLEivlgWe0bpgtX5+9j9EZa0wtZiCjgu6zmSeZWyI/e2YRX1URozpIw==", 1166 1671 "cpu": [ 1167 1672 "loong64" 1168 1673 ], ··· 1173 1678 "linux" 1174 1679 ] 1175 1680 }, 1176 - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { 1177 - "version": "4.44.1", 1178 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.44.1.tgz", 1179 - "integrity": "sha512-Rl3JKaRu0LHIx7ExBAAnf0JcOQetQffaw34T8vLlg9b1IhzcBgaIdnvEbbsZq9uZp3uAH+JkHd20Nwn0h9zPjA==", 1681 + "node_modules/@rollup/rollup-linux-ppc64-gnu": { 1682 + "version": "4.54.0", 1683 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.54.0.tgz", 1684 + "integrity": "sha512-y3qNOfTBStmFNq+t4s7Tmc9hW2ENtPg8FeUD/VShI7rKxNW7O4fFeaYbMsd3tpFlIg1Q8IapFgy7Q9i2BqeBvA==", 1180 1685 "cpu": [ 1181 1686 "ppc64" 1182 1687 ], ··· 1188 1693 ] 1189 1694 }, 1190 1695 "node_modules/@rollup/rollup-linux-riscv64-gnu": { 1191 - "version": "4.44.1", 1192 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.44.1.tgz", 1193 - "integrity": "sha512-j5akelU3snyL6K3N/iX7otLBIl347fGwmd95U5gS/7z6T4ftK288jKq3A5lcFKcx7wwzb5rgNvAg3ZbV4BqUSw==", 1696 + "version": "4.54.0", 1697 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.54.0.tgz", 1698 + "integrity": "sha512-89sepv7h2lIVPsFma8iwmccN7Yjjtgz0Rj/Ou6fEqg3HDhpCa+Et+YSufy27i6b0Wav69Qv4WBNl3Rs6pwhebQ==", 1194 1699 "cpu": [ 1195 1700 "riscv64" 1196 1701 ], ··· 1202 1707 ] 1203 1708 }, 1204 1709 "node_modules/@rollup/rollup-linux-riscv64-musl": { 1205 - "version": "4.44.1", 1206 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.44.1.tgz", 1207 - "integrity": "sha512-ppn5llVGgrZw7yxbIm8TTvtj1EoPgYUAbfw0uDjIOzzoqlZlZrLJ/KuiE7uf5EpTpCTrNt1EdtzF0naMm0wGYg==", 1710 + "version": "4.54.0", 1711 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.54.0.tgz", 1712 + "integrity": "sha512-ZcU77ieh0M2Q8Ur7D5X7KvK+UxbXeDHwiOt/CPSBTI1fBmeDMivW0dPkdqkT4rOgDjrDDBUed9x4EgraIKoR2A==", 1208 1713 "cpu": [ 1209 1714 "riscv64" 1210 1715 ], ··· 1216 1721 ] 1217 1722 }, 1218 1723 "node_modules/@rollup/rollup-linux-s390x-gnu": { 1219 - "version": "4.44.1", 1220 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.44.1.tgz", 1221 - "integrity": "sha512-Hu6hEdix0oxtUma99jSP7xbvjkUM/ycke/AQQ4EC5g7jNRLLIwjcNwaUy95ZKBJJwg1ZowsclNnjYqzN4zwkAw==", 1724 + "version": "4.54.0", 1725 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.54.0.tgz", 1726 + "integrity": "sha512-2AdWy5RdDF5+4YfG/YesGDDtbyJlC9LHmL6rZw6FurBJ5n4vFGupsOBGfwMRjBYH7qRQowT8D/U4LoSvVwOhSQ==", 1222 1727 "cpu": [ 1223 1728 "s390x" 1224 1729 ], ··· 1230 1735 ] 1231 1736 }, 1232 1737 "node_modules/@rollup/rollup-linux-x64-gnu": { 1233 - "version": "4.44.1", 1234 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.44.1.tgz", 1235 - "integrity": "sha512-EtnsrmZGomz9WxK1bR5079zee3+7a+AdFlghyd6VbAjgRJDbTANJ9dcPIPAi76uG05micpEL+gPGmAKYTschQw==", 1738 + "version": "4.54.0", 1739 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.54.0.tgz", 1740 + "integrity": "sha512-WGt5J8Ij/rvyqpFexxk3ffKqqbLf9AqrTBbWDk7ApGUzaIs6V+s2s84kAxklFwmMF/vBNGrVdYgbblCOFFezMQ==", 1236 1741 "cpu": [ 1237 1742 "x64" 1238 1743 ], ··· 1244 1749 ] 1245 1750 }, 1246 1751 "node_modules/@rollup/rollup-linux-x64-musl": { 1247 - "version": "4.44.1", 1248 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.44.1.tgz", 1249 - "integrity": "sha512-iAS4p+J1az6Usn0f8xhgL4PaU878KEtutP4hqw52I4IO6AGoyOkHCxcc4bqufv1tQLdDWFx8lR9YlwxKuv3/3g==", 1752 + "version": "4.54.0", 1753 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.54.0.tgz", 1754 + "integrity": "sha512-JzQmb38ATzHjxlPHuTH6tE7ojnMKM2kYNzt44LO/jJi8BpceEC8QuXYA908n8r3CNuG/B3BV8VR3Hi1rYtmPiw==", 1250 1755 "cpu": [ 1251 1756 "x64" 1252 1757 ], ··· 1255 1760 "optional": true, 1256 1761 "os": [ 1257 1762 "linux" 1763 + ] 1764 + }, 1765 + "node_modules/@rollup/rollup-openharmony-arm64": { 1766 + "version": "4.54.0", 1767 + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.54.0.tgz", 1768 + "integrity": "sha512-huT3fd0iC7jigGh7n3q/+lfPcXxBi+om/Rs3yiFxjvSxbSB6aohDFXbWvlspaqjeOh+hx7DDHS+5Es5qRkWkZg==", 1769 + "cpu": [ 1770 + "arm64" 1771 + ], 1772 + "dev": true, 1773 + "license": "MIT", 1774 + "optional": true, 1775 + "os": [ 1776 + "openharmony" 1258 1777 ] 1259 1778 }, 1260 1779 "node_modules/@rollup/rollup-win32-arm64-msvc": { 1261 - "version": "4.44.1", 1262 - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.44.1.tgz", 1263 - "integrity": "sha512-NtSJVKcXwcqozOl+FwI41OH3OApDyLk3kqTJgx8+gp6On9ZEt5mYhIsKNPGuaZr3p9T6NWPKGU/03Vw4CNU9qg==", 1780 + "version": "4.54.0", 1781 + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.54.0.tgz", 1782 + "integrity": "sha512-c2V0W1bsKIKfbLMBu/WGBz6Yci8nJ/ZJdheE0EwB73N3MvHYKiKGs3mVilX4Gs70eGeDaMqEob25Tw2Gb9Nqyw==", 1264 1783 "cpu": [ 1265 1784 "arm64" 1266 1785 ], ··· 1272 1791 ] 1273 1792 }, 1274 1793 "node_modules/@rollup/rollup-win32-ia32-msvc": { 1275 - "version": "4.44.1", 1276 - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.44.1.tgz", 1277 - "integrity": "sha512-JYA3qvCOLXSsnTR3oiyGws1Dm0YTuxAAeaYGVlGpUsHqloPcFjPg+X0Fj2qODGLNwQOAcCiQmHub/V007kiH5A==", 1794 + "version": "4.54.0", 1795 + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.54.0.tgz", 1796 + "integrity": "sha512-woEHgqQqDCkAzrDhvDipnSirm5vxUXtSKDYTVpZG3nUdW/VVB5VdCYA2iReSj/u3yCZzXID4kuKG7OynPnB3WQ==", 1278 1797 "cpu": [ 1279 1798 "ia32" 1799 + ], 1800 + "dev": true, 1801 + "license": "MIT", 1802 + "optional": true, 1803 + "os": [ 1804 + "win32" 1805 + ] 1806 + }, 1807 + "node_modules/@rollup/rollup-win32-x64-gnu": { 1808 + "version": "4.54.0", 1809 + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.54.0.tgz", 1810 + "integrity": "sha512-dzAc53LOuFvHwbCEOS0rPbXp6SIhAf2txMP5p6mGyOXXw5mWY8NGGbPMPrs4P1WItkfApDathBj/NzMLUZ9rtQ==", 1811 + "cpu": [ 1812 + "x64" 1280 1813 ], 1281 1814 "dev": true, 1282 1815 "license": "MIT", ··· 1286 1819 ] 1287 1820 }, 1288 1821 "node_modules/@rollup/rollup-win32-x64-msvc": { 1289 - "version": "4.44.1", 1290 - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.44.1.tgz", 1291 - "integrity": "sha512-J8o22LuF0kTe7m+8PvW9wk3/bRq5+mRo5Dqo6+vXb7otCm3TPhYOJqOaQtGU9YMWQSL3krMnoOxMr0+9E6F3Ug==", 1822 + "version": "4.54.0", 1823 + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.54.0.tgz", 1824 + "integrity": "sha512-hYT5d3YNdSh3mbCU1gwQyPgQd3T2ne0A3KG8KSBdav5TiBg6eInVmV+TeR5uHufiIgSFg0XsOWGW5/RhNcSvPg==", 1292 1825 "cpu": [ 1293 1826 "x64" 1294 1827 ], ··· 1298 1831 "os": [ 1299 1832 "win32" 1300 1833 ] 1834 + }, 1835 + "node_modules/@sindresorhus/is": { 1836 + "version": "7.2.0", 1837 + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-7.2.0.tgz", 1838 + "integrity": "sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw==", 1839 + "dev": true, 1840 + "license": "MIT", 1841 + "engines": { 1842 + "node": ">=18" 1843 + }, 1844 + "funding": { 1845 + "url": "https://github.com/sindresorhus/is?sponsor=1" 1846 + } 1847 + }, 1848 + "node_modules/@speed-highlight/core": { 1849 + "version": "1.2.12", 1850 + "resolved": "https://registry.npmjs.org/@speed-highlight/core/-/core-1.2.12.tgz", 1851 + "integrity": "sha512-uilwrK0Ygyri5dToHYdZSjcvpS2ZwX0w5aSt3GCEN9hrjxWCoeV4Z2DTXuxjwbntaLQIEEAlCeNQss5SoHvAEA==", 1852 + "dev": true, 1853 + "license": "CC0-1.0" 1301 1854 }, 1302 1855 "node_modules/@types/chai": { 1303 - "version": "5.2.2", 1304 - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.2.tgz", 1305 - "integrity": "sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==", 1856 + "version": "5.2.3", 1857 + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", 1858 + "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", 1306 1859 "dev": true, 1307 1860 "license": "MIT", 1308 1861 "dependencies": { 1309 - "@types/deep-eql": "*" 1862 + "@types/deep-eql": "*", 1863 + "assertion-error": "^2.0.1" 1310 1864 } 1311 1865 }, 1312 1866 "node_modules/@types/deep-eql": { ··· 1461 2015 "node": ">=0.4.0" 1462 2016 } 1463 2017 }, 1464 - "node_modules/as-table": { 1465 - "version": "1.0.55", 1466 - "resolved": "https://registry.npmjs.org/as-table/-/as-table-1.0.55.tgz", 1467 - "integrity": "sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==", 1468 - "dev": true, 1469 - "license": "MIT", 1470 - "dependencies": { 1471 - "printable-characters": "^1.0.42" 1472 - } 1473 - }, 1474 2018 "node_modules/assertion-error": { 1475 2019 "version": "2.0.1", 1476 2020 "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", ··· 1509 2053 } 1510 2054 }, 1511 2055 "node_modules/chai": { 1512 - "version": "5.2.0", 1513 - "resolved": "https://registry.npmjs.org/chai/-/chai-5.2.0.tgz", 1514 - "integrity": "sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==", 2056 + "version": "5.3.3", 2057 + "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", 2058 + "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", 1515 2059 "dev": true, 1516 2060 "license": "MIT", 1517 2061 "dependencies": { ··· 1522 2066 "pathval": "^2.0.0" 1523 2067 }, 1524 2068 "engines": { 1525 - "node": ">=12" 2069 + "node": ">=18" 1526 2070 } 1527 2071 }, 1528 2072 "node_modules/check-error": { ··· 1588 2132 } 1589 2133 }, 1590 2134 "node_modules/cookie": { 1591 - "version": "0.7.2", 1592 - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", 1593 - "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", 2135 + "version": "1.1.1", 2136 + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz", 2137 + "integrity": "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==", 1594 2138 "dev": true, 1595 2139 "license": "MIT", 1596 2140 "engines": { 1597 - "node": ">= 0.6" 2141 + "node": ">=18" 2142 + }, 2143 + "funding": { 2144 + "type": "opencollective", 2145 + "url": "https://opencollective.com/express" 1598 2146 } 1599 2147 }, 1600 - "node_modules/data-uri-to-buffer": { 1601 - "version": "2.0.2", 1602 - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-2.0.2.tgz", 1603 - "integrity": "sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==", 1604 - "dev": true, 1605 - "license": "MIT" 1606 - }, 1607 2148 "node_modules/debug": { 1608 - "version": "4.4.1", 1609 - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", 1610 - "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", 2149 + "version": "4.4.3", 2150 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", 2151 + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", 1611 2152 "dev": true, 1612 2153 "license": "MIT", 1613 2154 "dependencies": { ··· 1632 2173 "node": ">=6" 1633 2174 } 1634 2175 }, 1635 - "node_modules/defu": { 1636 - "version": "6.1.4", 1637 - "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", 1638 - "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==", 1639 - "dev": true, 1640 - "license": "MIT" 1641 - }, 1642 2176 "node_modules/detect-libc": { 1643 - "version": "2.0.4", 1644 - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", 1645 - "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", 2177 + "version": "2.1.2", 2178 + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", 2179 + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", 1646 2180 "dev": true, 1647 2181 "license": "Apache-2.0", 1648 2182 "engines": { ··· 1650 2184 } 1651 2185 }, 1652 2186 "node_modules/devalue": { 1653 - "version": "4.3.3", 1654 - "resolved": "https://registry.npmjs.org/devalue/-/devalue-4.3.3.tgz", 1655 - "integrity": "sha512-UH8EL6H2ifcY8TbD2QsxwCC/pr5xSwPvv85LrLXVihmHVC3T3YqTCIwnR5ak0yO1KYqlxrPVOA/JVZJYPy2ATg==", 2187 + "version": "5.6.1", 2188 + "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.6.1.tgz", 2189 + "integrity": "sha512-jDwizj+IlEZBunHcOuuFVBnIMPAEHvTsJj0BcIp94xYguLRVBcXO853px/MyIJvbVzWdsGvrRweIUWJw8hBP7A==", 1656 2190 "dev": true, 1657 2191 "license": "MIT" 1658 2192 }, 2193 + "node_modules/error-stack-parser-es": { 2194 + "version": "1.0.5", 2195 + "resolved": "https://registry.npmjs.org/error-stack-parser-es/-/error-stack-parser-es-1.0.5.tgz", 2196 + "integrity": "sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==", 2197 + "dev": true, 2198 + "license": "MIT", 2199 + "funding": { 2200 + "url": "https://github.com/sponsors/antfu" 2201 + } 2202 + }, 1659 2203 "node_modules/es-module-lexer": { 1660 2204 "version": "1.7.0", 1661 2205 "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", ··· 1664 2208 "license": "MIT" 1665 2209 }, 1666 2210 "node_modules/esbuild": { 1667 - "version": "0.25.5", 1668 - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.5.tgz", 1669 - "integrity": "sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ==", 2211 + "version": "0.27.2", 2212 + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.2.tgz", 2213 + "integrity": "sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==", 1670 2214 "dev": true, 1671 2215 "hasInstallScript": true, 1672 2216 "license": "MIT", ··· 1677 2221 "node": ">=18" 1678 2222 }, 1679 2223 "optionalDependencies": { 1680 - "@esbuild/aix-ppc64": "0.25.5", 1681 - "@esbuild/android-arm": "0.25.5", 1682 - "@esbuild/android-arm64": "0.25.5", 1683 - "@esbuild/android-x64": "0.25.5", 1684 - "@esbuild/darwin-arm64": "0.25.5", 1685 - "@esbuild/darwin-x64": "0.25.5", 1686 - "@esbuild/freebsd-arm64": "0.25.5", 1687 - "@esbuild/freebsd-x64": "0.25.5", 1688 - "@esbuild/linux-arm": "0.25.5", 1689 - "@esbuild/linux-arm64": "0.25.5", 1690 - "@esbuild/linux-ia32": "0.25.5", 1691 - "@esbuild/linux-loong64": "0.25.5", 1692 - "@esbuild/linux-mips64el": "0.25.5", 1693 - "@esbuild/linux-ppc64": "0.25.5", 1694 - "@esbuild/linux-riscv64": "0.25.5", 1695 - "@esbuild/linux-s390x": "0.25.5", 1696 - "@esbuild/linux-x64": "0.25.5", 1697 - "@esbuild/netbsd-arm64": "0.25.5", 1698 - "@esbuild/netbsd-x64": "0.25.5", 1699 - "@esbuild/openbsd-arm64": "0.25.5", 1700 - "@esbuild/openbsd-x64": "0.25.5", 1701 - "@esbuild/sunos-x64": "0.25.5", 1702 - "@esbuild/win32-arm64": "0.25.5", 1703 - "@esbuild/win32-ia32": "0.25.5", 1704 - "@esbuild/win32-x64": "0.25.5" 2224 + "@esbuild/aix-ppc64": "0.27.2", 2225 + "@esbuild/android-arm": "0.27.2", 2226 + "@esbuild/android-arm64": "0.27.2", 2227 + "@esbuild/android-x64": "0.27.2", 2228 + "@esbuild/darwin-arm64": "0.27.2", 2229 + "@esbuild/darwin-x64": "0.27.2", 2230 + "@esbuild/freebsd-arm64": "0.27.2", 2231 + "@esbuild/freebsd-x64": "0.27.2", 2232 + "@esbuild/linux-arm": "0.27.2", 2233 + "@esbuild/linux-arm64": "0.27.2", 2234 + "@esbuild/linux-ia32": "0.27.2", 2235 + "@esbuild/linux-loong64": "0.27.2", 2236 + "@esbuild/linux-mips64el": "0.27.2", 2237 + "@esbuild/linux-ppc64": "0.27.2", 2238 + "@esbuild/linux-riscv64": "0.27.2", 2239 + "@esbuild/linux-s390x": "0.27.2", 2240 + "@esbuild/linux-x64": "0.27.2", 2241 + "@esbuild/netbsd-arm64": "0.27.2", 2242 + "@esbuild/netbsd-x64": "0.27.2", 2243 + "@esbuild/openbsd-arm64": "0.27.2", 2244 + "@esbuild/openbsd-x64": "0.27.2", 2245 + "@esbuild/openharmony-arm64": "0.27.2", 2246 + "@esbuild/sunos-x64": "0.27.2", 2247 + "@esbuild/win32-arm64": "0.27.2", 2248 + "@esbuild/win32-ia32": "0.27.2", 2249 + "@esbuild/win32-x64": "0.27.2" 1705 2250 } 1706 2251 }, 1707 2252 "node_modules/estree-walker": { ··· 1728 2273 } 1729 2274 }, 1730 2275 "node_modules/expect-type": { 1731 - "version": "1.2.1", 1732 - "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.2.1.tgz", 1733 - "integrity": "sha512-/kP8CAwxzLVEeFrMm4kMmy4CCDlpipyA7MYLVrdJIkV0fYF0UaigQHRsxHiuY/GEea+bh4KSv3TIlgr+2UL6bw==", 2276 + "version": "1.3.0", 2277 + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz", 2278 + "integrity": "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==", 1734 2279 "dev": true, 1735 2280 "license": "Apache-2.0", 1736 2281 "engines": { 1737 2282 "node": ">=12.0.0" 1738 2283 } 1739 2284 }, 1740 - "node_modules/exsolve": { 1741 - "version": "1.0.7", 1742 - "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.7.tgz", 1743 - "integrity": "sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==", 1744 - "dev": true, 1745 - "license": "MIT" 1746 - }, 1747 2285 "node_modules/fdir": { 1748 - "version": "6.4.6", 1749 - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz", 1750 - "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==", 2286 + "version": "6.5.0", 2287 + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", 2288 + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", 1751 2289 "dev": true, 1752 2290 "license": "MIT", 2291 + "engines": { 2292 + "node": ">=12.0.0" 2293 + }, 1753 2294 "peerDependencies": { 1754 2295 "picomatch": "^3 || ^4" 1755 2296 }, ··· 1772 2313 ], 1773 2314 "engines": { 1774 2315 "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 1775 - } 1776 - }, 1777 - "node_modules/get-source": { 1778 - "version": "2.0.12", 1779 - "resolved": "https://registry.npmjs.org/get-source/-/get-source-2.0.12.tgz", 1780 - "integrity": "sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==", 1781 - "dev": true, 1782 - "license": "Unlicense", 1783 - "dependencies": { 1784 - "data-uri-to-buffer": "^2.0.0", 1785 - "source-map": "^0.6.1" 1786 2316 } 1787 2317 }, 1788 2318 "node_modules/glob-to-regexp": { ··· 1793 2323 "license": "BSD-2-Clause" 1794 2324 }, 1795 2325 "node_modules/is-arrayish": { 1796 - "version": "0.3.2", 1797 - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", 1798 - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", 2326 + "version": "0.3.4", 2327 + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.4.tgz", 2328 + "integrity": "sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==", 1799 2329 "dev": true, 1800 2330 "license": "MIT" 1801 2331 }, ··· 1806 2336 "dev": true, 1807 2337 "license": "MIT" 1808 2338 }, 2339 + "node_modules/kleur": { 2340 + "version": "4.1.5", 2341 + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", 2342 + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", 2343 + "dev": true, 2344 + "license": "MIT", 2345 + "engines": { 2346 + "node": ">=6" 2347 + } 2348 + }, 1809 2349 "node_modules/loupe": { 1810 - "version": "3.1.4", 1811 - "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.4.tgz", 1812 - "integrity": "sha512-wJzkKwJrheKtknCOKNEtDK4iqg/MxmZheEMtSTYvnzRdEYaZzmgH976nenp8WdJRdx5Vc1X/9MO0Oszl6ezeXg==", 2350 + "version": "3.2.1", 2351 + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz", 2352 + "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==", 1813 2353 "dev": true, 1814 2354 "license": "MIT" 1815 2355 }, 1816 2356 "node_modules/magic-string": { 1817 - "version": "0.30.17", 1818 - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", 1819 - "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", 2357 + "version": "0.30.21", 2358 + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", 2359 + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", 1820 2360 "dev": true, 1821 2361 "license": "MIT", 1822 2362 "dependencies": { 1823 - "@jridgewell/sourcemap-codec": "^1.5.0" 2363 + "@jridgewell/sourcemap-codec": "^1.5.5" 1824 2364 } 1825 2365 }, 1826 2366 "node_modules/mime": { ··· 1837 2377 } 1838 2378 }, 1839 2379 "node_modules/miniflare": { 1840 - "version": "4.20250617.4", 1841 - "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-4.20250617.4.tgz", 1842 - "integrity": "sha512-IAoApFKxOJlaaFkym5ETstVX3qWzVt3xyqCDj6vSSTgEH3zxZJ5417jZGg8iQfMHosKCcQH1doPPqqnOZm/yrw==", 2380 + "version": "4.20251217.0", 2381 + "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-4.20251217.0.tgz", 2382 + "integrity": "sha512-8xsTQbPS6YV+ABZl9qiJIbsum6hbpbhqiyKpOVdzZrhK+1N8EFpT8R6aBZff7kezGmxYZSntjgjqTwJmj3JLgA==", 1843 2383 "dev": true, 1844 2384 "license": "MIT", 1845 2385 "dependencies": { ··· 1850 2390 "glob-to-regexp": "0.4.1", 1851 2391 "sharp": "^0.33.5", 1852 2392 "stoppable": "1.1.0", 1853 - "undici": "^5.28.5", 1854 - "workerd": "1.20250617.0", 2393 + "undici": "7.14.0", 2394 + "workerd": "1.20251217.0", 1855 2395 "ws": "8.18.0", 1856 - "youch": "3.3.4", 2396 + "youch": "4.1.0-beta.10", 1857 2397 "zod": "3.22.3" 1858 2398 }, 1859 2399 "bin": { ··· 1881 2421 "license": "MIT" 1882 2422 }, 1883 2423 "node_modules/multiformats": { 1884 - "version": "13.3.7", 1885 - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.3.7.tgz", 1886 - "integrity": "sha512-meL9DERHj+fFVWoOX9fXqfcYcSpUfSYJPcFvDPKrxitICbwAoWR+Ut4j5NO9zAT917HUHLQmqzQbAsGNHlDcxQ==", 2424 + "version": "13.4.2", 2425 + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.2.tgz", 2426 + "integrity": "sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==", 1887 2427 "license": "Apache-2.0 OR MIT" 1888 2428 }, 1889 - "node_modules/mustache": { 1890 - "version": "4.2.0", 1891 - "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", 1892 - "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", 1893 - "dev": true, 1894 - "license": "MIT", 1895 - "bin": { 1896 - "mustache": "bin/mustache" 1897 - } 1898 - }, 1899 2429 "node_modules/nanoid": { 1900 2430 "version": "3.3.11", 1901 2431 "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", ··· 1914 2444 "engines": { 1915 2445 "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 1916 2446 } 1917 - }, 1918 - "node_modules/ohash": { 1919 - "version": "2.0.11", 1920 - "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz", 1921 - "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==", 1922 - "dev": true, 1923 - "license": "MIT" 1924 2447 }, 1925 2448 "node_modules/path-to-regexp": { 1926 2449 "version": "6.3.0", ··· 1954 2477 "license": "ISC" 1955 2478 }, 1956 2479 "node_modules/picomatch": { 1957 - "version": "4.0.2", 1958 - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", 1959 - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", 2480 + "version": "4.0.3", 2481 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", 2482 + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", 1960 2483 "dev": true, 1961 2484 "license": "MIT", 1962 2485 "engines": { ··· 1995 2518 "node": "^10 || ^12 || >=14" 1996 2519 } 1997 2520 }, 1998 - "node_modules/printable-characters": { 1999 - "version": "1.0.42", 2000 - "resolved": "https://registry.npmjs.org/printable-characters/-/printable-characters-1.0.42.tgz", 2001 - "integrity": "sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==", 2002 - "dev": true, 2003 - "license": "Unlicense" 2004 - }, 2005 2521 "node_modules/rollup": { 2006 - "version": "4.44.1", 2007 - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.44.1.tgz", 2008 - "integrity": "sha512-x8H8aPvD+xbl0Do8oez5f5o8eMS3trfCghc4HhLAnCkj7Vl0d1JWGs0UF/D886zLW2rOj2QymV/JcSSsw+XDNg==", 2522 + "version": "4.54.0", 2523 + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.54.0.tgz", 2524 + "integrity": "sha512-3nk8Y3a9Ea8szgKhinMlGMhGMw89mqule3KWczxhIzqudyHdCIOHw8WJlj/r329fACjKLEh13ZSk7oE22kyeIw==", 2009 2525 "dev": true, 2010 2526 "license": "MIT", 2011 2527 "dependencies": { ··· 2019 2535 "npm": ">=8.0.0" 2020 2536 }, 2021 2537 "optionalDependencies": { 2022 - "@rollup/rollup-android-arm-eabi": "4.44.1", 2023 - "@rollup/rollup-android-arm64": "4.44.1", 2024 - "@rollup/rollup-darwin-arm64": "4.44.1", 2025 - "@rollup/rollup-darwin-x64": "4.44.1", 2026 - "@rollup/rollup-freebsd-arm64": "4.44.1", 2027 - "@rollup/rollup-freebsd-x64": "4.44.1", 2028 - "@rollup/rollup-linux-arm-gnueabihf": "4.44.1", 2029 - "@rollup/rollup-linux-arm-musleabihf": "4.44.1", 2030 - "@rollup/rollup-linux-arm64-gnu": "4.44.1", 2031 - "@rollup/rollup-linux-arm64-musl": "4.44.1", 2032 - "@rollup/rollup-linux-loongarch64-gnu": "4.44.1", 2033 - "@rollup/rollup-linux-powerpc64le-gnu": "4.44.1", 2034 - "@rollup/rollup-linux-riscv64-gnu": "4.44.1", 2035 - "@rollup/rollup-linux-riscv64-musl": "4.44.1", 2036 - "@rollup/rollup-linux-s390x-gnu": "4.44.1", 2037 - "@rollup/rollup-linux-x64-gnu": "4.44.1", 2038 - "@rollup/rollup-linux-x64-musl": "4.44.1", 2039 - "@rollup/rollup-win32-arm64-msvc": "4.44.1", 2040 - "@rollup/rollup-win32-ia32-msvc": "4.44.1", 2041 - "@rollup/rollup-win32-x64-msvc": "4.44.1", 2538 + "@rollup/rollup-android-arm-eabi": "4.54.0", 2539 + "@rollup/rollup-android-arm64": "4.54.0", 2540 + "@rollup/rollup-darwin-arm64": "4.54.0", 2541 + "@rollup/rollup-darwin-x64": "4.54.0", 2542 + "@rollup/rollup-freebsd-arm64": "4.54.0", 2543 + "@rollup/rollup-freebsd-x64": "4.54.0", 2544 + "@rollup/rollup-linux-arm-gnueabihf": "4.54.0", 2545 + "@rollup/rollup-linux-arm-musleabihf": "4.54.0", 2546 + "@rollup/rollup-linux-arm64-gnu": "4.54.0", 2547 + "@rollup/rollup-linux-arm64-musl": "4.54.0", 2548 + "@rollup/rollup-linux-loong64-gnu": "4.54.0", 2549 + "@rollup/rollup-linux-ppc64-gnu": "4.54.0", 2550 + "@rollup/rollup-linux-riscv64-gnu": "4.54.0", 2551 + "@rollup/rollup-linux-riscv64-musl": "4.54.0", 2552 + "@rollup/rollup-linux-s390x-gnu": "4.54.0", 2553 + "@rollup/rollup-linux-x64-gnu": "4.54.0", 2554 + "@rollup/rollup-linux-x64-musl": "4.54.0", 2555 + "@rollup/rollup-openharmony-arm64": "4.54.0", 2556 + "@rollup/rollup-win32-arm64-msvc": "4.54.0", 2557 + "@rollup/rollup-win32-ia32-msvc": "4.54.0", 2558 + "@rollup/rollup-win32-x64-gnu": "4.54.0", 2559 + "@rollup/rollup-win32-x64-msvc": "4.54.0", 2042 2560 "fsevents": "~2.3.2" 2043 2561 } 2044 2562 }, 2045 2563 "node_modules/semver": { 2046 - "version": "7.7.2", 2047 - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", 2048 - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", 2564 + "version": "7.7.3", 2565 + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", 2566 + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", 2049 2567 "dev": true, 2050 2568 "license": "ISC", 2051 2569 "bin": { ··· 2103 2621 "license": "ISC" 2104 2622 }, 2105 2623 "node_modules/simple-swizzle": { 2106 - "version": "0.2.2", 2107 - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", 2108 - "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", 2624 + "version": "0.2.4", 2625 + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.4.tgz", 2626 + "integrity": "sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==", 2109 2627 "dev": true, 2110 2628 "license": "MIT", 2111 2629 "dependencies": { 2112 2630 "is-arrayish": "^0.3.1" 2113 2631 } 2114 2632 }, 2115 - "node_modules/source-map": { 2116 - "version": "0.6.1", 2117 - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 2118 - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 2119 - "dev": true, 2120 - "license": "BSD-3-Clause", 2121 - "engines": { 2122 - "node": ">=0.10.0" 2123 - } 2124 - }, 2125 2633 "node_modules/source-map-js": { 2126 2634 "version": "1.2.1", 2127 2635 "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", ··· 2139 2647 "dev": true, 2140 2648 "license": "MIT" 2141 2649 }, 2142 - "node_modules/stacktracey": { 2143 - "version": "2.1.8", 2144 - "resolved": "https://registry.npmjs.org/stacktracey/-/stacktracey-2.1.8.tgz", 2145 - "integrity": "sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==", 2146 - "dev": true, 2147 - "license": "Unlicense", 2148 - "dependencies": { 2149 - "as-table": "^1.0.36", 2150 - "get-source": "^2.0.12" 2151 - } 2152 - }, 2153 2650 "node_modules/std-env": { 2154 - "version": "3.9.0", 2155 - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz", 2156 - "integrity": "sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==", 2651 + "version": "3.10.0", 2652 + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", 2653 + "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", 2157 2654 "dev": true, 2158 2655 "license": "MIT" 2159 2656 }, ··· 2169 2666 } 2170 2667 }, 2171 2668 "node_modules/strip-literal": { 2172 - "version": "3.0.0", 2173 - "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.0.0.tgz", 2174 - "integrity": "sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==", 2669 + "version": "3.1.0", 2670 + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.1.0.tgz", 2671 + "integrity": "sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==", 2175 2672 "dev": true, 2176 2673 "license": "MIT", 2177 2674 "dependencies": { ··· 2181 2678 "url": "https://github.com/sponsors/antfu" 2182 2679 } 2183 2680 }, 2681 + "node_modules/supports-color": { 2682 + "version": "10.2.2", 2683 + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-10.2.2.tgz", 2684 + "integrity": "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==", 2685 + "dev": true, 2686 + "license": "MIT", 2687 + "engines": { 2688 + "node": ">=18" 2689 + }, 2690 + "funding": { 2691 + "url": "https://github.com/chalk/supports-color?sponsor=1" 2692 + } 2693 + }, 2184 2694 "node_modules/tinybench": { 2185 2695 "version": "2.9.0", 2186 2696 "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", ··· 2196 2706 "license": "MIT" 2197 2707 }, 2198 2708 "node_modules/tinyglobby": { 2199 - "version": "0.2.14", 2200 - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", 2201 - "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", 2709 + "version": "0.2.15", 2710 + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", 2711 + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", 2202 2712 "dev": true, 2203 2713 "license": "MIT", 2204 2714 "dependencies": { 2205 - "fdir": "^6.4.4", 2206 - "picomatch": "^4.0.2" 2715 + "fdir": "^6.5.0", 2716 + "picomatch": "^4.0.3" 2207 2717 }, 2208 2718 "engines": { 2209 2719 "node": ">=12.0.0" ··· 2233 2743 } 2234 2744 }, 2235 2745 "node_modules/tinyspy": { 2236 - "version": "4.0.3", 2237 - "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.3.tgz", 2238 - "integrity": "sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A==", 2746 + "version": "4.0.4", 2747 + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.4.tgz", 2748 + "integrity": "sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==", 2239 2749 "dev": true, 2240 2750 "license": "MIT", 2241 2751 "engines": { ··· 2251 2761 "optional": true 2252 2762 }, 2253 2763 "node_modules/typescript": { 2254 - "version": "5.8.3", 2255 - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", 2256 - "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", 2764 + "version": "5.9.3", 2765 + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", 2766 + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", 2257 2767 "dev": true, 2258 2768 "license": "Apache-2.0", 2259 2769 "bin": { ··· 2264 2774 "node": ">=14.17" 2265 2775 } 2266 2776 }, 2267 - "node_modules/ufo": { 2268 - "version": "1.6.1", 2269 - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz", 2270 - "integrity": "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==", 2271 - "dev": true, 2272 - "license": "MIT" 2273 - }, 2274 2777 "node_modules/undici": { 2275 - "version": "5.29.0", 2276 - "resolved": "https://registry.npmjs.org/undici/-/undici-5.29.0.tgz", 2277 - "integrity": "sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==", 2778 + "version": "7.14.0", 2779 + "resolved": "https://registry.npmjs.org/undici/-/undici-7.14.0.tgz", 2780 + "integrity": "sha512-Vqs8HTzjpQXZeXdpsfChQTlafcMQaaIwnGwLam1wudSSjlJeQ3bw1j+TLPePgrCnCpUXx7Ba5Pdpf5OBih62NQ==", 2278 2781 "dev": true, 2279 2782 "license": "MIT", 2280 - "dependencies": { 2281 - "@fastify/busboy": "^2.0.0" 2282 - }, 2283 2783 "engines": { 2284 - "node": ">=14.0" 2784 + "node": ">=20.18.1" 2285 2785 } 2286 2786 }, 2287 2787 "node_modules/unenv": { 2288 - "version": "2.0.0-rc.17", 2289 - "resolved": "https://registry.npmjs.org/unenv/-/unenv-2.0.0-rc.17.tgz", 2290 - "integrity": "sha512-B06u0wXkEd+o5gOCMl/ZHl5cfpYbDZKAT+HWTL+Hws6jWu7dCiqBBXXXzMFcFVJb8D4ytAnYmxJA83uwOQRSsg==", 2788 + "version": "2.0.0-rc.24", 2789 + "resolved": "https://registry.npmjs.org/unenv/-/unenv-2.0.0-rc.24.tgz", 2790 + "integrity": "sha512-i7qRCmY42zmCwnYlh9H2SvLEypEFGye5iRmEMKjcGi7zk9UquigRjFtTLz0TYqr0ZGLZhaMHl/foy1bZR+Cwlw==", 2291 2791 "dev": true, 2292 2792 "license": "MIT", 2293 2793 "dependencies": { 2294 - "defu": "^6.1.4", 2295 - "exsolve": "^1.0.4", 2296 - "ohash": "^2.0.11", 2297 - "pathe": "^2.0.3", 2298 - "ufo": "^1.6.1" 2794 + "pathe": "^2.0.3" 2299 2795 } 2300 2796 }, 2301 2797 "node_modules/vite": { 2302 - "version": "7.0.0", 2303 - "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.0.tgz", 2304 - "integrity": "sha512-ixXJB1YRgDIw2OszKQS9WxGHKwLdCsbQNkpJN171udl6szi/rIySHL6/Os3s2+oE4P/FLD4dxg4mD7Wust+u5g==", 2798 + "version": "7.3.0", 2799 + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.0.tgz", 2800 + "integrity": "sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==", 2305 2801 "dev": true, 2306 2802 "license": "MIT", 2307 2803 "dependencies": { 2308 - "esbuild": "^0.25.0", 2309 - "fdir": "^6.4.6", 2310 - "picomatch": "^4.0.2", 2804 + "esbuild": "^0.27.0", 2805 + "fdir": "^6.5.0", 2806 + "picomatch": "^4.0.3", 2311 2807 "postcss": "^8.5.6", 2312 - "rollup": "^4.40.0", 2313 - "tinyglobby": "^0.2.14" 2808 + "rollup": "^4.43.0", 2809 + "tinyglobby": "^0.2.15" 2314 2810 }, 2315 2811 "bin": { 2316 2812 "vite": "bin/vite.js" ··· 2487 2983 } 2488 2984 }, 2489 2985 "node_modules/workerd": { 2490 - "version": "1.20250617.0", 2491 - "resolved": "https://registry.npmjs.org/workerd/-/workerd-1.20250617.0.tgz", 2492 - "integrity": "sha512-Uv6p0PYUHp/W/aWfUPLkZVAoAjapisM27JJlwcX9wCPTfCfnuegGOxFMvvlYpmNaX4YCwEdLCwuNn3xkpSkuZw==", 2986 + "version": "1.20251217.0", 2987 + "resolved": "https://registry.npmjs.org/workerd/-/workerd-1.20251217.0.tgz", 2988 + "integrity": "sha512-s3mHDSWwHTduyY8kpHOsl27ZJ4ziDBJlc18PfBvNMqNnhO7yBeemlxH7bo7yQyU1foJrIZ6IENHDDg0Z9N8zQA==", 2493 2989 "dev": true, 2494 2990 "hasInstallScript": true, 2495 2991 "license": "Apache-2.0", ··· 2500 2996 "node": ">=16" 2501 2997 }, 2502 2998 "optionalDependencies": { 2503 - "@cloudflare/workerd-darwin-64": "1.20250617.0", 2504 - "@cloudflare/workerd-darwin-arm64": "1.20250617.0", 2505 - "@cloudflare/workerd-linux-64": "1.20250617.0", 2506 - "@cloudflare/workerd-linux-arm64": "1.20250617.0", 2507 - "@cloudflare/workerd-windows-64": "1.20250617.0" 2999 + "@cloudflare/workerd-darwin-64": "1.20251217.0", 3000 + "@cloudflare/workerd-darwin-arm64": "1.20251217.0", 3001 + "@cloudflare/workerd-linux-64": "1.20251217.0", 3002 + "@cloudflare/workerd-linux-arm64": "1.20251217.0", 3003 + "@cloudflare/workerd-windows-64": "1.20251217.0" 2508 3004 } 2509 3005 }, 2510 3006 "node_modules/wrangler": { 2511 - "version": "4.22.0", 2512 - "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-4.22.0.tgz", 2513 - "integrity": "sha512-m8qVO3YxhUTII+4U889G/f5UuLSvMkUkCNatupV2f/SJ+iqaWtP1QbuQII8bs2J/O4rqxsz46Wu2S50u7tKB5Q==", 3007 + "version": "4.56.0", 3008 + "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-4.56.0.tgz", 3009 + "integrity": "sha512-Nqi8duQeRbA+31QrD6QlWHW3IZVnuuRxMy7DEg46deUzywivmaRV/euBN5KKXDPtA24VyhYsK7I0tkb7P5DM2w==", 3010 + "deprecated": "Version 4.55.0 and 4.56.0 can incorrectly automatically delegate 'wrangler deploy' to 'opennextjs-cloudflare'. Use an older or newer version.", 2514 3011 "dev": true, 2515 3012 "license": "MIT OR Apache-2.0", 2516 3013 "dependencies": { 2517 - "@cloudflare/kv-asset-handler": "0.4.0", 2518 - "@cloudflare/unenv-preset": "2.3.3", 3014 + "@cloudflare/kv-asset-handler": "0.4.1", 3015 + "@cloudflare/unenv-preset": "2.7.13", 2519 3016 "blake3-wasm": "2.1.5", 2520 - "esbuild": "0.25.4", 2521 - "miniflare": "4.20250617.4", 3017 + "esbuild": "0.27.0", 3018 + "miniflare": "4.20251217.0", 2522 3019 "path-to-regexp": "6.3.0", 2523 - "unenv": "2.0.0-rc.17", 2524 - "workerd": "1.20250617.0" 3020 + "unenv": "2.0.0-rc.24", 3021 + "workerd": "1.20251217.0" 2525 3022 }, 2526 3023 "bin": { 2527 3024 "wrangler": "bin/wrangler.js", 2528 3025 "wrangler2": "bin/wrangler.js" 2529 3026 }, 2530 3027 "engines": { 2531 - "node": ">=18.0.0" 3028 + "node": ">=20.0.0" 2532 3029 }, 2533 3030 "optionalDependencies": { 2534 3031 "fsevents": "~2.3.2" 2535 3032 }, 2536 3033 "peerDependencies": { 2537 - "@cloudflare/workers-types": "^4.20250617.0" 3034 + "@cloudflare/workers-types": "^4.20251217.0" 2538 3035 }, 2539 3036 "peerDependenciesMeta": { 2540 3037 "@cloudflare/workers-types": { ··· 2542 3039 } 2543 3040 } 2544 3041 }, 3042 + "node_modules/wrangler/node_modules/@cloudflare/unenv-preset": { 3043 + "version": "2.7.13", 3044 + "resolved": "https://registry.npmjs.org/@cloudflare/unenv-preset/-/unenv-preset-2.7.13.tgz", 3045 + "integrity": "sha512-NulO1H8R/DzsJguLC0ndMuk4Ufv0KSlN+E54ay9rn9ZCQo0kpAPwwh3LhgpZ96a3Dr6L9LqW57M4CqC34iLOvw==", 3046 + "dev": true, 3047 + "license": "MIT OR Apache-2.0", 3048 + "peerDependencies": { 3049 + "unenv": "2.0.0-rc.24", 3050 + "workerd": "^1.20251202.0" 3051 + }, 3052 + "peerDependenciesMeta": { 3053 + "workerd": { 3054 + "optional": true 3055 + } 3056 + } 3057 + }, 2545 3058 "node_modules/wrangler/node_modules/@esbuild/aix-ppc64": { 2546 - "version": "0.25.4", 2547 - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.4.tgz", 2548 - "integrity": "sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==", 3059 + "version": "0.27.0", 3060 + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.0.tgz", 3061 + "integrity": "sha512-KuZrd2hRjz01y5JK9mEBSD3Vj3mbCvemhT466rSuJYeE/hjuBrHfjjcjMdTm/sz7au+++sdbJZJmuBwQLuw68A==", 2549 3062 "cpu": [ 2550 3063 "ppc64" 2551 3064 ], ··· 2560 3073 } 2561 3074 }, 2562 3075 "node_modules/wrangler/node_modules/@esbuild/android-arm": { 2563 - "version": "0.25.4", 2564 - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.4.tgz", 2565 - "integrity": "sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==", 3076 + "version": "0.27.0", 3077 + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.0.tgz", 3078 + "integrity": "sha512-j67aezrPNYWJEOHUNLPj9maeJte7uSMM6gMoxfPC9hOg8N02JuQi/T7ewumf4tNvJadFkvLZMlAq73b9uwdMyQ==", 2566 3079 "cpu": [ 2567 3080 "arm" 2568 3081 ], ··· 2577 3090 } 2578 3091 }, 2579 3092 "node_modules/wrangler/node_modules/@esbuild/android-arm64": { 2580 - "version": "0.25.4", 2581 - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.4.tgz", 2582 - "integrity": "sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==", 3093 + "version": "0.27.0", 3094 + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.0.tgz", 3095 + "integrity": "sha512-CC3vt4+1xZrs97/PKDkl0yN7w8edvU2vZvAFGD16n9F0Cvniy5qvzRXjfO1l94efczkkQE6g1x0i73Qf5uthOQ==", 2583 3096 "cpu": [ 2584 3097 "arm64" 2585 3098 ], ··· 2594 3107 } 2595 3108 }, 2596 3109 "node_modules/wrangler/node_modules/@esbuild/android-x64": { 2597 - "version": "0.25.4", 2598 - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.4.tgz", 2599 - "integrity": "sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==", 3110 + "version": "0.27.0", 3111 + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.0.tgz", 3112 + "integrity": "sha512-wurMkF1nmQajBO1+0CJmcN17U4BP6GqNSROP8t0X/Jiw2ltYGLHpEksp9MpoBqkrFR3kv2/te6Sha26k3+yZ9Q==", 2600 3113 "cpu": [ 2601 3114 "x64" 2602 3115 ], ··· 2611 3124 } 2612 3125 }, 2613 3126 "node_modules/wrangler/node_modules/@esbuild/darwin-arm64": { 2614 - "version": "0.25.4", 2615 - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.4.tgz", 2616 - "integrity": "sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==", 3127 + "version": "0.27.0", 3128 + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.0.tgz", 3129 + "integrity": "sha512-uJOQKYCcHhg07DL7i8MzjvS2LaP7W7Pn/7uA0B5S1EnqAirJtbyw4yC5jQ5qcFjHK9l6o/MX9QisBg12kNkdHg==", 2617 3130 "cpu": [ 2618 3131 "arm64" 2619 3132 ], ··· 2628 3141 } 2629 3142 }, 2630 3143 "node_modules/wrangler/node_modules/@esbuild/darwin-x64": { 2631 - "version": "0.25.4", 2632 - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.4.tgz", 2633 - "integrity": "sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==", 3144 + "version": "0.27.0", 3145 + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.0.tgz", 3146 + "integrity": "sha512-8mG6arH3yB/4ZXiEnXof5MK72dE6zM9cDvUcPtxhUZsDjESl9JipZYW60C3JGreKCEP+p8P/72r69m4AZGJd5g==", 2634 3147 "cpu": [ 2635 3148 "x64" 2636 3149 ], ··· 2645 3158 } 2646 3159 }, 2647 3160 "node_modules/wrangler/node_modules/@esbuild/freebsd-arm64": { 2648 - "version": "0.25.4", 2649 - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.4.tgz", 2650 - "integrity": "sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==", 3161 + "version": "0.27.0", 3162 + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.0.tgz", 3163 + "integrity": "sha512-9FHtyO988CwNMMOE3YIeci+UV+x5Zy8fI2qHNpsEtSF83YPBmE8UWmfYAQg6Ux7Gsmd4FejZqnEUZCMGaNQHQw==", 2651 3164 "cpu": [ 2652 3165 "arm64" 2653 3166 ], ··· 2662 3175 } 2663 3176 }, 2664 3177 "node_modules/wrangler/node_modules/@esbuild/freebsd-x64": { 2665 - "version": "0.25.4", 2666 - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.4.tgz", 2667 - "integrity": "sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==", 3178 + "version": "0.27.0", 3179 + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.0.tgz", 3180 + "integrity": "sha512-zCMeMXI4HS/tXvJz8vWGexpZj2YVtRAihHLk1imZj4efx1BQzN76YFeKqlDr3bUWI26wHwLWPd3rwh6pe4EV7g==", 2668 3181 "cpu": [ 2669 3182 "x64" 2670 3183 ], ··· 2679 3192 } 2680 3193 }, 2681 3194 "node_modules/wrangler/node_modules/@esbuild/linux-arm": { 2682 - "version": "0.25.4", 2683 - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.4.tgz", 2684 - "integrity": "sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==", 3195 + "version": "0.27.0", 3196 + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.0.tgz", 3197 + "integrity": "sha512-t76XLQDpxgmq2cNXKTVEB7O7YMb42atj2Re2Haf45HkaUpjM2J0UuJZDuaGbPbamzZ7bawyGFUkodL+zcE+jvQ==", 2685 3198 "cpu": [ 2686 3199 "arm" 2687 3200 ], ··· 2696 3209 } 2697 3210 }, 2698 3211 "node_modules/wrangler/node_modules/@esbuild/linux-arm64": { 2699 - "version": "0.25.4", 2700 - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.4.tgz", 2701 - "integrity": "sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==", 3212 + "version": "0.27.0", 3213 + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.0.tgz", 3214 + "integrity": "sha512-AS18v0V+vZiLJyi/4LphvBE+OIX682Pu7ZYNsdUHyUKSoRwdnOsMf6FDekwoAFKej14WAkOef3zAORJgAtXnlQ==", 2702 3215 "cpu": [ 2703 3216 "arm64" 2704 3217 ], ··· 2713 3226 } 2714 3227 }, 2715 3228 "node_modules/wrangler/node_modules/@esbuild/linux-ia32": { 2716 - "version": "0.25.4", 2717 - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.4.tgz", 2718 - "integrity": "sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==", 3229 + "version": "0.27.0", 3230 + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.0.tgz", 3231 + "integrity": "sha512-Mz1jxqm/kfgKkc/KLHC5qIujMvnnarD9ra1cEcrs7qshTUSksPihGrWHVG5+osAIQ68577Zpww7SGapmzSt4Nw==", 2719 3232 "cpu": [ 2720 3233 "ia32" 2721 3234 ], ··· 2730 3243 } 2731 3244 }, 2732 3245 "node_modules/wrangler/node_modules/@esbuild/linux-loong64": { 2733 - "version": "0.25.4", 2734 - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.4.tgz", 2735 - "integrity": "sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==", 3246 + "version": "0.27.0", 3247 + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.0.tgz", 3248 + "integrity": "sha512-QbEREjdJeIreIAbdG2hLU1yXm1uu+LTdzoq1KCo4G4pFOLlvIspBm36QrQOar9LFduavoWX2msNFAAAY9j4BDg==", 2736 3249 "cpu": [ 2737 3250 "loong64" 2738 3251 ], ··· 2747 3260 } 2748 3261 }, 2749 3262 "node_modules/wrangler/node_modules/@esbuild/linux-mips64el": { 2750 - "version": "0.25.4", 2751 - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.4.tgz", 2752 - "integrity": "sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==", 3263 + "version": "0.27.0", 3264 + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.0.tgz", 3265 + "integrity": "sha512-sJz3zRNe4tO2wxvDpH/HYJilb6+2YJxo/ZNbVdtFiKDufzWq4JmKAiHy9iGoLjAV7r/W32VgaHGkk35cUXlNOg==", 2753 3266 "cpu": [ 2754 3267 "mips64el" 2755 3268 ], ··· 2764 3277 } 2765 3278 }, 2766 3279 "node_modules/wrangler/node_modules/@esbuild/linux-ppc64": { 2767 - "version": "0.25.4", 2768 - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.4.tgz", 2769 - "integrity": "sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==", 3280 + "version": "0.27.0", 3281 + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.0.tgz", 3282 + "integrity": "sha512-z9N10FBD0DCS2dmSABDBb5TLAyF1/ydVb+N4pi88T45efQ/w4ohr/F/QYCkxDPnkhkp6AIpIcQKQ8F0ANoA2JA==", 2770 3283 "cpu": [ 2771 3284 "ppc64" 2772 3285 ], ··· 2781 3294 } 2782 3295 }, 2783 3296 "node_modules/wrangler/node_modules/@esbuild/linux-riscv64": { 2784 - "version": "0.25.4", 2785 - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.4.tgz", 2786 - "integrity": "sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==", 3297 + "version": "0.27.0", 3298 + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.0.tgz", 3299 + "integrity": "sha512-pQdyAIZ0BWIC5GyvVFn5awDiO14TkT/19FTmFcPdDec94KJ1uZcmFs21Fo8auMXzD4Tt+diXu1LW1gHus9fhFQ==", 2787 3300 "cpu": [ 2788 3301 "riscv64" 2789 3302 ], ··· 2798 3311 } 2799 3312 }, 2800 3313 "node_modules/wrangler/node_modules/@esbuild/linux-s390x": { 2801 - "version": "0.25.4", 2802 - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.4.tgz", 2803 - "integrity": "sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==", 3314 + "version": "0.27.0", 3315 + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.0.tgz", 3316 + "integrity": "sha512-hPlRWR4eIDDEci953RI1BLZitgi5uqcsjKMxwYfmi4LcwyWo2IcRP+lThVnKjNtk90pLS8nKdroXYOqW+QQH+w==", 2804 3317 "cpu": [ 2805 3318 "s390x" 2806 3319 ], ··· 2815 3328 } 2816 3329 }, 2817 3330 "node_modules/wrangler/node_modules/@esbuild/linux-x64": { 2818 - "version": "0.25.4", 2819 - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.4.tgz", 2820 - "integrity": "sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==", 3331 + "version": "0.27.0", 3332 + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.0.tgz", 3333 + "integrity": "sha512-1hBWx4OUJE2cab++aVZ7pObD6s+DK4mPGpemtnAORBvb5l/g5xFGk0vc0PjSkrDs0XaXj9yyob3d14XqvnQ4gw==", 2821 3334 "cpu": [ 2822 3335 "x64" 2823 3336 ], ··· 2832 3345 } 2833 3346 }, 2834 3347 "node_modules/wrangler/node_modules/@esbuild/netbsd-arm64": { 2835 - "version": "0.25.4", 2836 - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.4.tgz", 2837 - "integrity": "sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==", 3348 + "version": "0.27.0", 3349 + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.0.tgz", 3350 + "integrity": "sha512-6m0sfQfxfQfy1qRuecMkJlf1cIzTOgyaeXaiVaaki8/v+WB+U4hc6ik15ZW6TAllRlg/WuQXxWj1jx6C+dfy3w==", 2838 3351 "cpu": [ 2839 3352 "arm64" 2840 3353 ], ··· 2849 3362 } 2850 3363 }, 2851 3364 "node_modules/wrangler/node_modules/@esbuild/netbsd-x64": { 2852 - "version": "0.25.4", 2853 - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.4.tgz", 2854 - "integrity": "sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==", 3365 + "version": "0.27.0", 3366 + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.0.tgz", 3367 + "integrity": "sha512-xbbOdfn06FtcJ9d0ShxxvSn2iUsGd/lgPIO2V3VZIPDbEaIj1/3nBBe1AwuEZKXVXkMmpr6LUAgMkLD/4D2PPA==", 2855 3368 "cpu": [ 2856 3369 "x64" 2857 3370 ], ··· 2866 3379 } 2867 3380 }, 2868 3381 "node_modules/wrangler/node_modules/@esbuild/openbsd-arm64": { 2869 - "version": "0.25.4", 2870 - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.4.tgz", 2871 - "integrity": "sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==", 3382 + "version": "0.27.0", 3383 + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.0.tgz", 3384 + "integrity": "sha512-fWgqR8uNbCQ/GGv0yhzttj6sU/9Z5/Sv/VGU3F5OuXK6J6SlriONKrQ7tNlwBrJZXRYk5jUhuWvF7GYzGguBZQ==", 2872 3385 "cpu": [ 2873 3386 "arm64" 2874 3387 ], ··· 2883 3396 } 2884 3397 }, 2885 3398 "node_modules/wrangler/node_modules/@esbuild/openbsd-x64": { 2886 - "version": "0.25.4", 2887 - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.4.tgz", 2888 - "integrity": "sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==", 3399 + "version": "0.27.0", 3400 + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.0.tgz", 3401 + "integrity": "sha512-aCwlRdSNMNxkGGqQajMUza6uXzR/U0dIl1QmLjPtRbLOx3Gy3otfFu/VjATy4yQzo9yFDGTxYDo1FfAD9oRD2A==", 2889 3402 "cpu": [ 2890 3403 "x64" 2891 3404 ], ··· 2899 3412 "node": ">=18" 2900 3413 } 2901 3414 }, 3415 + "node_modules/wrangler/node_modules/@esbuild/openharmony-arm64": { 3416 + "version": "0.27.0", 3417 + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.0.tgz", 3418 + "integrity": "sha512-nyvsBccxNAsNYz2jVFYwEGuRRomqZ149A39SHWk4hV0jWxKM0hjBPm3AmdxcbHiFLbBSwG6SbpIcUbXjgyECfA==", 3419 + "cpu": [ 3420 + "arm64" 3421 + ], 3422 + "dev": true, 3423 + "license": "MIT", 3424 + "optional": true, 3425 + "os": [ 3426 + "openharmony" 3427 + ], 3428 + "engines": { 3429 + "node": ">=18" 3430 + } 3431 + }, 2902 3432 "node_modules/wrangler/node_modules/@esbuild/sunos-x64": { 2903 - "version": "0.25.4", 2904 - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.4.tgz", 2905 - "integrity": "sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==", 3433 + "version": "0.27.0", 3434 + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.0.tgz", 3435 + "integrity": "sha512-Q1KY1iJafM+UX6CFEL+F4HRTgygmEW568YMqDA5UV97AuZSm21b7SXIrRJDwXWPzr8MGr75fUZPV67FdtMHlHA==", 2906 3436 "cpu": [ 2907 3437 "x64" 2908 3438 ], ··· 2917 3447 } 2918 3448 }, 2919 3449 "node_modules/wrangler/node_modules/@esbuild/win32-arm64": { 2920 - "version": "0.25.4", 2921 - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.4.tgz", 2922 - "integrity": "sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==", 3450 + "version": "0.27.0", 3451 + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.0.tgz", 3452 + "integrity": "sha512-W1eyGNi6d+8kOmZIwi/EDjrL9nxQIQ0MiGqe/AWc6+IaHloxHSGoeRgDRKHFISThLmsewZ5nHFvGFWdBYlgKPg==", 2923 3453 "cpu": [ 2924 3454 "arm64" 2925 3455 ], ··· 2934 3464 } 2935 3465 }, 2936 3466 "node_modules/wrangler/node_modules/@esbuild/win32-ia32": { 2937 - "version": "0.25.4", 2938 - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.4.tgz", 2939 - "integrity": "sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==", 3467 + "version": "0.27.0", 3468 + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.0.tgz", 3469 + "integrity": "sha512-30z1aKL9h22kQhilnYkORFYt+3wp7yZsHWus+wSKAJR8JtdfI76LJ4SBdMsCopTR3z/ORqVu5L1vtnHZWVj4cQ==", 2940 3470 "cpu": [ 2941 3471 "ia32" 2942 3472 ], ··· 2951 3481 } 2952 3482 }, 2953 3483 "node_modules/wrangler/node_modules/@esbuild/win32-x64": { 2954 - "version": "0.25.4", 2955 - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.4.tgz", 2956 - "integrity": "sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==", 3484 + "version": "0.27.0", 3485 + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.0.tgz", 3486 + "integrity": "sha512-aIitBcjQeyOhMTImhLZmtxfdOcuNRpwlPNmlFKPcHQYPhEssw75Cl1TSXJXpMkzaua9FUetx/4OQKq7eJul5Cg==", 2957 3487 "cpu": [ 2958 3488 "x64" 2959 3489 ], ··· 2968 3498 } 2969 3499 }, 2970 3500 "node_modules/wrangler/node_modules/esbuild": { 2971 - "version": "0.25.4", 2972 - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.4.tgz", 2973 - "integrity": "sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==", 3501 + "version": "0.27.0", 3502 + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.0.tgz", 3503 + "integrity": "sha512-jd0f4NHbD6cALCyGElNpGAOtWxSq46l9X/sWB0Nzd5er4Kz2YTm+Vl0qKFT9KUJvD8+fiO8AvoHhFvEatfVixA==", 2974 3504 "dev": true, 2975 3505 "hasInstallScript": true, 2976 3506 "license": "MIT", ··· 2981 3511 "node": ">=18" 2982 3512 }, 2983 3513 "optionalDependencies": { 2984 - "@esbuild/aix-ppc64": "0.25.4", 2985 - "@esbuild/android-arm": "0.25.4", 2986 - "@esbuild/android-arm64": "0.25.4", 2987 - "@esbuild/android-x64": "0.25.4", 2988 - "@esbuild/darwin-arm64": "0.25.4", 2989 - "@esbuild/darwin-x64": "0.25.4", 2990 - "@esbuild/freebsd-arm64": "0.25.4", 2991 - "@esbuild/freebsd-x64": "0.25.4", 2992 - "@esbuild/linux-arm": "0.25.4", 2993 - "@esbuild/linux-arm64": "0.25.4", 2994 - "@esbuild/linux-ia32": "0.25.4", 2995 - "@esbuild/linux-loong64": "0.25.4", 2996 - "@esbuild/linux-mips64el": "0.25.4", 2997 - "@esbuild/linux-ppc64": "0.25.4", 2998 - "@esbuild/linux-riscv64": "0.25.4", 2999 - "@esbuild/linux-s390x": "0.25.4", 3000 - "@esbuild/linux-x64": "0.25.4", 3001 - "@esbuild/netbsd-arm64": "0.25.4", 3002 - "@esbuild/netbsd-x64": "0.25.4", 3003 - "@esbuild/openbsd-arm64": "0.25.4", 3004 - "@esbuild/openbsd-x64": "0.25.4", 3005 - "@esbuild/sunos-x64": "0.25.4", 3006 - "@esbuild/win32-arm64": "0.25.4", 3007 - "@esbuild/win32-ia32": "0.25.4", 3008 - "@esbuild/win32-x64": "0.25.4" 3514 + "@esbuild/aix-ppc64": "0.27.0", 3515 + "@esbuild/android-arm": "0.27.0", 3516 + "@esbuild/android-arm64": "0.27.0", 3517 + "@esbuild/android-x64": "0.27.0", 3518 + "@esbuild/darwin-arm64": "0.27.0", 3519 + "@esbuild/darwin-x64": "0.27.0", 3520 + "@esbuild/freebsd-arm64": "0.27.0", 3521 + "@esbuild/freebsd-x64": "0.27.0", 3522 + "@esbuild/linux-arm": "0.27.0", 3523 + "@esbuild/linux-arm64": "0.27.0", 3524 + "@esbuild/linux-ia32": "0.27.0", 3525 + "@esbuild/linux-loong64": "0.27.0", 3526 + "@esbuild/linux-mips64el": "0.27.0", 3527 + "@esbuild/linux-ppc64": "0.27.0", 3528 + "@esbuild/linux-riscv64": "0.27.0", 3529 + "@esbuild/linux-s390x": "0.27.0", 3530 + "@esbuild/linux-x64": "0.27.0", 3531 + "@esbuild/netbsd-arm64": "0.27.0", 3532 + "@esbuild/netbsd-x64": "0.27.0", 3533 + "@esbuild/openbsd-arm64": "0.27.0", 3534 + "@esbuild/openbsd-x64": "0.27.0", 3535 + "@esbuild/openharmony-arm64": "0.27.0", 3536 + "@esbuild/sunos-x64": "0.27.0", 3537 + "@esbuild/win32-arm64": "0.27.0", 3538 + "@esbuild/win32-ia32": "0.27.0", 3539 + "@esbuild/win32-x64": "0.27.0" 3009 3540 } 3010 3541 }, 3011 3542 "node_modules/ws": { ··· 3031 3562 } 3032 3563 }, 3033 3564 "node_modules/youch": { 3034 - "version": "3.3.4", 3035 - "resolved": "https://registry.npmjs.org/youch/-/youch-3.3.4.tgz", 3036 - "integrity": "sha512-UeVBXie8cA35DS6+nBkls68xaBBXCye0CNznrhszZjTbRVnJKQuNsyLKBTTL4ln1o1rh2PKtv35twV7irj5SEg==", 3565 + "version": "4.1.0-beta.10", 3566 + "resolved": "https://registry.npmjs.org/youch/-/youch-4.1.0-beta.10.tgz", 3567 + "integrity": "sha512-rLfVLB4FgQneDr0dv1oddCVZmKjcJ6yX6mS4pU82Mq/Dt9a3cLZQ62pDBL4AUO+uVrCvtWz3ZFUL2HFAFJ/BXQ==", 3037 3568 "dev": true, 3038 3569 "license": "MIT", 3039 3570 "dependencies": { 3040 - "cookie": "^0.7.1", 3041 - "mustache": "^4.2.0", 3042 - "stacktracey": "^2.1.8" 3571 + "@poppinss/colors": "^4.1.5", 3572 + "@poppinss/dumper": "^0.6.4", 3573 + "@speed-highlight/core": "^1.2.7", 3574 + "cookie": "^1.0.2", 3575 + "youch-core": "^0.3.3" 3576 + } 3577 + }, 3578 + "node_modules/youch-core": { 3579 + "version": "0.3.3", 3580 + "resolved": "https://registry.npmjs.org/youch-core/-/youch-core-0.3.3.tgz", 3581 + "integrity": "sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==", 3582 + "dev": true, 3583 + "license": "MIT", 3584 + "dependencies": { 3585 + "@poppinss/exception": "^1.2.2", 3586 + "error-stack-parser-es": "^1.0.5" 3043 3587 } 3044 3588 }, 3045 3589 "node_modules/zod": { 3046 - "version": "3.25.67", 3047 - "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.67.tgz", 3048 - "integrity": "sha512-idA2YXwpCdqUSKRCACDE6ItZD9TZzy3OZMtpfLoh6oPR47lipysRrJfjzMqFxQ3uJuUPyUeWe1r9vLH33xO/Qw==", 3590 + "version": "3.25.76", 3591 + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", 3592 + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", 3049 3593 "dev": true, 3050 3594 "license": "MIT", 3051 3595 "funding": {
+2 -2
package.json
··· 10 10 "cf-typegen": "wrangler types" 11 11 }, 12 12 "devDependencies": { 13 - "@cloudflare/vitest-pool-workers": "^0.8.19", 13 + "@cloudflare/vitest-pool-workers": "^0.11.1", 14 14 "typescript": "^5.5.2", 15 - "vitest": "~3.2.0", 15 + "vitest": "^3.2.4", 16 16 "wrangler": "^4.21.2" 17 17 }, 18 18 "dependencies": {
+90 -14
src/index.ts
··· 6 6 USER_CACHE: KVNamespace; 7 7 } 8 8 9 + // TID (Timestamp Identifier) constants for AT Protocol record keys 10 + const TID_LENGTH = 13; 11 + const TID_REGEX = /^[234567abcdefghij][234567abcdefghijklmnopqrstuvwxyz]{12}$/; 12 + const COLLECTION = 'blue.imgs.blup.image'; 13 + 9 14 function base62ToBytes(base62: string): Uint8Array { 10 15 let num = 0n; 11 16 for (let i = 0; i < base62.length; i++) { ··· 18 23 num = num >> 8n; 19 24 } 20 25 return new Uint8Array(bytes); 26 + } 27 + 28 + /** 29 + * Detect the format of the identifier in the URL path 30 + */ 31 + function detectIdentifierFormat(id: string): 'tid' | 'base32' | 'base62' { 32 + if (id.startsWith('bafkrei')) return 'base32'; 33 + if (id.length === TID_LENGTH && TID_REGEX.test(id)) return 'tid'; 34 + return 'base62'; 21 35 } 22 36 23 37 async function resolveHandleToDID(handle: string): Promise<string | null> { ··· 146 160 } 147 161 } 148 162 163 + /** 164 + * Fetch blob CID from ATProto record using rkey 165 + */ 166 + async function fetchBlobCidFromRecord( 167 + did: string, 168 + rkey: string 169 + ): Promise<string | null> { 170 + const pdsHost = await resolvePDSHost(did); 171 + if (!pdsHost) return null; 172 + 173 + const url = `${pdsHost}/xrpc/com.atproto.repo.getRecord?` + 174 + `repo=${encodeURIComponent(did)}` + 175 + `&collection=${encodeURIComponent(COLLECTION)}` + 176 + `&rkey=${encodeURIComponent(rkey)}`; 177 + 178 + try { 179 + const response = await fetch(url, { 180 + method: 'GET', 181 + headers: { 182 + 'Accept': 'application/json', 183 + 'User-Agent': 'CloudflareWorker/1.0' 184 + }, 185 + cf: { 186 + cacheTtl: 3600, // Cache record lookups for 1 hour 187 + cacheEverything: true 188 + } 189 + }); 190 + 191 + if (!response.ok) { 192 + console.error(`Record fetch failed: ${response.status}`); 193 + return null; 194 + } 195 + 196 + const data = await response.json() as { 197 + uri: string; 198 + cid: string; 199 + value: { 200 + blob?: { 201 + ref?: { $link: string }; 202 + }; 203 + }; 204 + }; 205 + 206 + return data.value?.blob?.ref?.$link || null; 207 + } catch (error) { 208 + console.error('Error fetching record:', error); 209 + return null; 210 + } 211 + } 212 + 149 213 async function downloadBlobUnauthenticated( 150 214 did: string, 151 215 blobRef: string, ··· 256 320 base62OrCid = match[1]; 257 321 } 258 322 259 - // CID handling - expect bafkrei* format 260 - if (base62OrCid.startsWith('bafkrei')) { 261 - // Already a proper CID 262 - cid = base62OrCid; 263 - } else { 264 - try { 265 - // Convert base62 to CID 266 - const bytes = base62ToBytes(base62OrCid); 267 - const cidObj = CID.decode(bytes); 323 + // Detect identifier format: TID (rkey), base32 CID, or base62 CID 324 + const format = detectIdentifierFormat(base62OrCid); 268 325 269 - // Convert to base32 CIDv1 string (bafkrei format) 270 - cid = cidObj.toString(); 271 - } catch (error) { 272 - return new Response('Invalid CID encoding', { status: 400 }); 273 - } 326 + switch (format) { 327 + case 'base32': 328 + // Already a proper CID 329 + cid = base62OrCid; 330 + break; 331 + case 'tid': 332 + // Fetch record to get blob CID 333 + const blobCid = await fetchBlobCidFromRecord(did, base62OrCid); 334 + if (!blobCid) { 335 + return new Response('Record not found', { status: 404 }); 336 + } 337 + cid = blobCid; 338 + break; 339 + case 'base62': 340 + default: 341 + try { 342 + // Convert base62 to CID 343 + const bytes = base62ToBytes(base62OrCid); 344 + const cidObj = CID.decode(bytes); 345 + // Convert to base32 CIDv1 string (bafkrei format) 346 + cid = cidObj.toString(); 347 + } catch (error) { 348 + return new Response('Invalid CID encoding', { status: 400 }); 349 + } 274 350 } 275 351 276 352 // Download blob from AT Protocol PDS