A tool for parsing traffic on the jetstream and applying a moderation workstream based on regexp based rules

feat(language-detection): replace lande with franc for improved language detection

- Replaced lande v1.0.10 with franc v6.2.0 for better maintenance and performance
- Simplified getLanguage function to use franc's simpler API
- Fixed redundant null check lint issue
- Removed invalid stylistic/comma-trailing package that was breaking npm install
- Updated implementation to handle franc's "und" (undetermined) response

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

+4 -15
.claude/settings.local.json
··· 1 1 { 2 2 "permissions": { 3 3 "allow": [ 4 - "mcp__git-mcp-server__git_status", 5 - "mcp__git-mcp-server__git_diff", 6 - "mcp__git-mcp-server__git_set_working_dir", 7 - "mcp__git-mcp-server__git_branch", 8 - "mcp__git-mcp-server__git_checkout", 9 - "Bash(bun run lint:*)", 10 - "mcp__git-mcp-server__git_commit", 11 - "mcp__git-mcp-server__git_push", 12 - "Bash(bunx tsc:*)", 13 - "Bash(DID=did:test OZONE_URL=http://test OZONE_PDS=http://test BSKY_HANDLE=test.bsky.social BSKY_PASSWORD=testpass bun --eval \"import(''./src/validateEnv.js'').then(m => m.validateEnvironment())\")", 14 - "mcp__git-mcp-server__git_add", 15 - "Bash(bunx eslint:*)" 4 + "Bash(git checkout:*)", 5 + "mcp__git-mcp-server__git_add" 16 6 ], 17 - "ask": [ 18 - "curl" 19 - ] 7 + "deny": [], 8 + "ask": [] 20 9 }, 21 10 "enableAllProjectMcpServers": true, 22 11 "enabledMcpjsonServers": [
+78
PLAN.md
··· 1 + # Implementation Plan: Replace lande with franc 2 + 3 + ## Overview 4 + Replace the `lande` library with `franc` for language detection in the `getLanguage` function located in `src/utils.ts`. 5 + 6 + ## Current State Analysis 7 + - **Current Library**: `lande` v1.0.10 8 + - **Function Location**: `src/utils.ts:67-92` 9 + - **Current Implementation**: 10 + - Uses dynamic import: `const lande = (await import("lande")).default;` 11 + - Returns a probability map sorted by likelihood 12 + - Returns the language code with highest probability 13 + - Defaults to "eng" for empty or invalid input 14 + 15 + ## Implementation Steps 16 + 17 + ### 1. Research & Dependencies 18 + - **franc** is a natural language detection library similar to `lande` 19 + - Supports 187 languages (ISO 639-3 codes) 20 + - Smaller footprint and better maintained than `lande` 21 + - Returns ISO 639-3 codes (3-letter codes like "eng", "fra", "spa") 22 + 23 + ### 2. Code Changes Required 24 + 25 + #### Step 2.1: Update package.json 26 + - Remove: `"lande": "^1.0.10"` 27 + - Add: `"franc": "^6.2.0"` (latest stable version) 28 + 29 + #### Step 2.2: Modify getLanguage function 30 + ```typescript 31 + // Before (lines 82-92) 32 + const lande = (await import("lande")).default; 33 + let langsProbabilityMap = lande(profileText); 34 + langsProbabilityMap.sort(...); 35 + return langsProbabilityMap[0][0]; 36 + 37 + // After 38 + const { franc } = await import("franc"); 39 + const detectedLang = franc(profileText); 40 + return detectedLang === "und" ? "eng" : detectedLang; 41 + ``` 42 + 43 + ### 3. Key Differences & Considerations 44 + 45 + #### API Differences: 46 + - **lande**: Returns array of `[language, probability]` tuples 47 + - **franc**: Returns single language code or "und" (undetermined) 48 + 49 + #### Return Values: 50 + - Both libraries use ISO 639-3 codes (3-letter codes) 51 + - franc returns "und" for undetermined text (we'll map to "eng" default) 52 + 53 + ### 4. Testing Strategy 54 + 1. Test with empty string → should return "eng" 55 + 2. Test with invalid input (null/undefined) → should return "eng" 56 + 3. Test with English text → should return "eng" 57 + 4. Test with other language samples → verify correct detection 58 + 5. Test with mixed language text → verify reasonable detection 59 + 60 + ### 5. Rollback Plan 61 + If issues arise: 62 + 1. Keep the original `lande` code commented 63 + 2. Can quickly revert by uncommenting old code and reinstalling `lande` 64 + 65 + ## Implementation Order 66 + 1. ✅ Analyze current implementation 67 + 2. ✅ Research franc library compatibility 68 + 3. 📝 Create this implementation plan 69 + 4. Update package.json to replace lande with franc 70 + 5. Modify getLanguage function in src/utils.ts 71 + 6. Run lint and format checks 72 + 7. Test the changes manually or with existing tests 73 + 74 + ## Risk Assessment 75 + - **Low Risk**: Direct replacement with similar functionality 76 + - **Compatibility**: Both libraries use ISO 639-3 codes 77 + - **Performance**: franc is generally faster and lighter 78 + - **Maintenance**: franc is more actively maintained
+1 -1
PRD.md
··· 1 - Replace lande with franc for language handling. 1 + Replace lande with franc for language handling in export async function getLanguage. This is found in the file `src/utils.ts`.
+8634
package-lock.json
··· 1 + { 2 + "name": "skywatch-automod", 3 + "version": "1.2.0", 4 + "lockfileVersion": 3, 5 + "requires": true, 6 + "packages": { 7 + "": { 8 + "name": "skywatch-automod", 9 + "version": "1.2.0", 10 + "dependencies": { 11 + "@atproto/api": "^0.13.35", 12 + "@atproto/bsky": "^0.0.101", 13 + "@atproto/lexicon": "^0.4.10", 14 + "@atproto/ozone": "^0.1.108", 15 + "@atproto/repo": "^0.6.5", 16 + "@atproto/xrpc-server": "^0.7.17", 17 + "@skyware/bot": "^0.3.11", 18 + "@skyware/jetstream": "^0.2.2", 19 + "@skyware/labeler": "^0.1.13", 20 + "bottleneck": "^2.19.5", 21 + "dotenv": "^16.5.0", 22 + "express": "^4.21.2", 23 + "franc": "^6.2.0", 24 + "husky": "^9.1.7", 25 + "lint-staged": "^15.5.1", 26 + "p-ratelimit": "^1.0.1", 27 + "pino": "^9.6.0", 28 + "pino-pretty": "^13.0.0", 29 + "prom-client": "^15.1.3", 30 + "undici": "^7.8.0" 31 + }, 32 + "devDependencies": { 33 + "@eslint/compat": "^1.3.2", 34 + "@eslint/eslintrc": "^3.3.1", 35 + "@eslint/js": "^9.29.0", 36 + "@stylistic/eslint-plugin": "^5.2.3", 37 + "@trivago/prettier-plugin-sort-imports": "^4.3.0", 38 + "@types/better-sqlite3": "^7.6.13", 39 + "@types/eslint__js": "^8.42.3", 40 + "@types/express": "^4.17.23", 41 + "@types/node": "^22.15.32", 42 + "@typescript-eslint/eslint-plugin": "^6.10.0", 43 + "@typescript-eslint/parser": "^6.10.0", 44 + "eslint": "^9.29.0", 45 + "eslint-config-prettier": "^10.1.8", 46 + "eslint-plugin-import": "^2.32.0", 47 + "eslint-plugin-prettier": "^5.5.4", 48 + "prettier": "^3.5.3", 49 + "tsx": "^4.20.3", 50 + "typescript": "^5.8.3", 51 + "typescript-eslint": "^8.34.1" 52 + } 53 + }, 54 + "node_modules/@atcute/bluesky": { 55 + "version": "1.0.11", 56 + "license": "MIT", 57 + "peerDependencies": { 58 + "@atcute/client": "^1.0.0 || ^2.0.0" 59 + } 60 + }, 61 + "node_modules/@atcute/bluesky-richtext-builder": { 62 + "version": "1.0.2", 63 + "license": "MIT", 64 + "peerDependencies": { 65 + "@atcute/bluesky": "^1.0.0", 66 + "@atcute/client": "^1.0.0 || ^2.0.0" 67 + } 68 + }, 69 + "node_modules/@atcute/car": { 70 + "version": "1.1.1", 71 + "license": "MIT", 72 + "optional": true, 73 + "dependencies": { 74 + "@atcute/cbor": "^1.0.6", 75 + "@atcute/cid": "^1.0.2", 76 + "@atcute/varint": "^1.0.1" 77 + } 78 + }, 79 + "node_modules/@atcute/cbor": { 80 + "version": "1.0.7", 81 + "license": "MIT", 82 + "dependencies": { 83 + "@atcute/cid": "^1.0.3", 84 + "@atcute/multibase": "^1.0.0" 85 + } 86 + }, 87 + "node_modules/@atcute/cid": { 88 + "version": "1.0.3", 89 + "license": "MIT", 90 + "dependencies": { 91 + "@atcute/multibase": "^1.0.0", 92 + "@atcute/varint": "^1.0.1" 93 + } 94 + }, 95 + "node_modules/@atcute/client": { 96 + "version": "2.0.6", 97 + "license": "MIT" 98 + }, 99 + "node_modules/@atcute/multibase": { 100 + "version": "1.0.1", 101 + "license": "MIT" 102 + }, 103 + "node_modules/@atcute/ozone": { 104 + "version": "1.0.8", 105 + "license": "MIT", 106 + "peerDependencies": { 107 + "@atcute/bluesky": "^1.0.0", 108 + "@atcute/client": "^1.0.0 || ^2.0.0" 109 + } 110 + }, 111 + "node_modules/@atcute/varint": { 112 + "version": "1.0.1", 113 + "license": "MIT" 114 + }, 115 + "node_modules/@atproto/api": { 116 + "version": "0.13.35", 117 + "license": "MIT", 118 + "dependencies": { 119 + "@atproto/common-web": "^0.4.0", 120 + "@atproto/lexicon": "^0.4.6", 121 + "@atproto/syntax": "^0.3.2", 122 + "@atproto/xrpc": "^0.6.8", 123 + "await-lock": "^2.2.2", 124 + "multiformats": "^9.9.0", 125 + "tlds": "^1.234.0", 126 + "zod": "^3.23.8" 127 + } 128 + }, 129 + "node_modules/@atproto/bsky": { 130 + "version": "0.0.101", 131 + "license": "MIT", 132 + "dependencies": { 133 + "@atproto/api": "^0.13.23", 134 + "@atproto/common": "^0.4.5", 135 + "@atproto/crypto": "^0.4.2", 136 + "@atproto/identity": "^0.4.3", 137 + "@atproto/lexicon": "^0.4.4", 138 + "@atproto/repo": "^0.6.0", 139 + "@atproto/sync": "^0.1.7", 140 + "@atproto/syntax": "^0.3.1", 141 + "@atproto/xrpc-server": "^0.7.4", 142 + "@bufbuild/protobuf": "^1.5.0", 143 + "@connectrpc/connect": "^1.1.4", 144 + "@connectrpc/connect-express": "^1.1.4", 145 + "@connectrpc/connect-node": "^1.1.4", 146 + "@did-plc/lib": "^0.0.1", 147 + "compression": "^1.7.4", 148 + "cors": "^2.8.5", 149 + "express": "^4.17.2", 150 + "http-errors": "^2.0.0", 151 + "http-terminator": "^3.2.0", 152 + "ioredis": "^5.3.2", 153 + "jose": "^5.0.1", 154 + "key-encoder": "^2.0.3", 155 + "kysely": "^0.22.0", 156 + "multiformats": "^9.9.0", 157 + "murmurhash": "^2.0.1", 158 + "p-queue": "^6.6.2", 159 + "pg": "^8.10.0", 160 + "pino": "^8.21.0", 161 + "pino-http": "^8.2.1", 162 + "sharp": "^0.33.5", 163 + "statsig-node": "^5.23.1", 164 + "structured-headers": "^1.0.1", 165 + "typed-emitter": "^2.1.0", 166 + "uint8arrays": "3.0.0" 167 + }, 168 + "bin": { 169 + "bsky": "dist/bin.js" 170 + } 171 + }, 172 + "node_modules/@atproto/bsky/node_modules/@atproto/api": { 173 + "version": "0.13.23", 174 + "license": "MIT", 175 + "dependencies": { 176 + "@atproto/common-web": "^0.3.1", 177 + "@atproto/lexicon": "^0.4.4", 178 + "@atproto/syntax": "^0.3.1", 179 + "@atproto/xrpc": "^0.6.5", 180 + "await-lock": "^2.2.2", 181 + "multiformats": "^9.9.0", 182 + "tlds": "^1.234.0", 183 + "zod": "^3.23.8" 184 + } 185 + }, 186 + "node_modules/@atproto/bsky/node_modules/@atproto/api/node_modules/@atproto/common-web": { 187 + "version": "0.3.1", 188 + "license": "MIT", 189 + "dependencies": { 190 + "graphemer": "^1.4.0", 191 + "multiformats": "^9.9.0", 192 + "uint8arrays": "3.0.0", 193 + "zod": "^3.23.8" 194 + } 195 + }, 196 + "node_modules/@atproto/bsky/node_modules/@atproto/api/node_modules/@atproto/xrpc": { 197 + "version": "0.6.5", 198 + "license": "MIT", 199 + "dependencies": { 200 + "@atproto/lexicon": "^0.4.4", 201 + "zod": "^3.23.8" 202 + } 203 + }, 204 + "node_modules/@atproto/bsky/node_modules/@atproto/lexicon": { 205 + "version": "0.4.4", 206 + "license": "MIT", 207 + "dependencies": { 208 + "@atproto/common-web": "^0.3.1", 209 + "@atproto/syntax": "^0.3.1", 210 + "iso-datestring-validator": "^2.2.2", 211 + "multiformats": "^9.9.0", 212 + "zod": "^3.23.8" 213 + } 214 + }, 215 + "node_modules/@atproto/bsky/node_modules/@atproto/lexicon/node_modules/@atproto/common-web": { 216 + "version": "0.3.1", 217 + "license": "MIT", 218 + "dependencies": { 219 + "graphemer": "^1.4.0", 220 + "multiformats": "^9.9.0", 221 + "uint8arrays": "3.0.0", 222 + "zod": "^3.23.8" 223 + } 224 + }, 225 + "node_modules/@atproto/bsky/node_modules/@atproto/repo": { 226 + "version": "0.6.0", 227 + "license": "MIT", 228 + "dependencies": { 229 + "@atproto/common": "^0.4.5", 230 + "@atproto/common-web": "^0.3.1", 231 + "@atproto/crypto": "^0.4.2", 232 + "@atproto/lexicon": "^0.4.4", 233 + "@ipld/car": "^3.2.3", 234 + "@ipld/dag-cbor": "^7.0.0", 235 + "multiformats": "^9.9.0", 236 + "uint8arrays": "3.0.0", 237 + "zod": "^3.23.8" 238 + } 239 + }, 240 + "node_modules/@atproto/bsky/node_modules/@atproto/repo/node_modules/@atproto/common-web": { 241 + "version": "0.3.1", 242 + "license": "MIT", 243 + "dependencies": { 244 + "graphemer": "^1.4.0", 245 + "multiformats": "^9.9.0", 246 + "uint8arrays": "3.0.0", 247 + "zod": "^3.23.8" 248 + } 249 + }, 250 + "node_modules/@atproto/bsky/node_modules/@atproto/syntax": { 251 + "version": "0.3.1", 252 + "license": "MIT" 253 + }, 254 + "node_modules/@atproto/bsky/node_modules/@atproto/xrpc-server": { 255 + "version": "0.7.4", 256 + "license": "MIT", 257 + "dependencies": { 258 + "@atproto/common": "^0.4.5", 259 + "@atproto/crypto": "^0.4.2", 260 + "@atproto/lexicon": "^0.4.4", 261 + "@atproto/xrpc": "^0.6.5", 262 + "cbor-x": "^1.5.1", 263 + "express": "^4.17.2", 264 + "http-errors": "^2.0.0", 265 + "mime-types": "^2.1.35", 266 + "rate-limiter-flexible": "^2.4.1", 267 + "uint8arrays": "3.0.0", 268 + "ws": "^8.12.0", 269 + "zod": "^3.23.8" 270 + } 271 + }, 272 + "node_modules/@atproto/bsky/node_modules/@atproto/xrpc-server/node_modules/@atproto/xrpc": { 273 + "version": "0.6.5", 274 + "license": "MIT", 275 + "dependencies": { 276 + "@atproto/lexicon": "^0.4.4", 277 + "zod": "^3.23.8" 278 + } 279 + }, 280 + "node_modules/@atproto/bsky/node_modules/pino": { 281 + "version": "8.21.0", 282 + "license": "MIT", 283 + "dependencies": { 284 + "atomic-sleep": "^1.0.0", 285 + "fast-redact": "^3.1.1", 286 + "on-exit-leak-free": "^2.1.0", 287 + "pino-abstract-transport": "^1.2.0", 288 + "pino-std-serializers": "^6.0.0", 289 + "process-warning": "^3.0.0", 290 + "quick-format-unescaped": "^4.0.3", 291 + "real-require": "^0.2.0", 292 + "safe-stable-stringify": "^2.3.1", 293 + "sonic-boom": "^3.7.0", 294 + "thread-stream": "^2.6.0" 295 + }, 296 + "bin": { 297 + "pino": "bin.js" 298 + } 299 + }, 300 + "node_modules/@atproto/bsky/node_modules/pino/node_modules/pino-abstract-transport": { 301 + "version": "1.2.0", 302 + "license": "MIT", 303 + "dependencies": { 304 + "readable-stream": "^4.0.0", 305 + "split2": "^4.0.0" 306 + } 307 + }, 308 + "node_modules/@atproto/bsky/node_modules/pino/node_modules/pino-std-serializers": { 309 + "version": "6.2.2", 310 + "license": "MIT" 311 + }, 312 + "node_modules/@atproto/bsky/node_modules/pino/node_modules/process-warning": { 313 + "version": "3.0.0", 314 + "license": "MIT" 315 + }, 316 + "node_modules/@atproto/bsky/node_modules/pino/node_modules/sonic-boom": { 317 + "version": "3.8.1", 318 + "license": "MIT", 319 + "dependencies": { 320 + "atomic-sleep": "^1.0.0" 321 + } 322 + }, 323 + "node_modules/@atproto/bsky/node_modules/pino/node_modules/thread-stream": { 324 + "version": "2.7.0", 325 + "license": "MIT", 326 + "dependencies": { 327 + "real-require": "^0.2.0" 328 + } 329 + }, 330 + "node_modules/@atproto/common": { 331 + "version": "0.4.5", 332 + "license": "MIT", 333 + "dependencies": { 334 + "@atproto/common-web": "^0.3.1", 335 + "@ipld/dag-cbor": "^7.0.3", 336 + "cbor-x": "^1.5.1", 337 + "iso-datestring-validator": "^2.2.2", 338 + "multiformats": "^9.9.0", 339 + "pino": "^8.21.0" 340 + } 341 + }, 342 + "node_modules/@atproto/common-web": { 343 + "version": "0.4.2", 344 + "license": "MIT", 345 + "dependencies": { 346 + "graphemer": "^1.4.0", 347 + "multiformats": "^9.9.0", 348 + "uint8arrays": "3.0.0", 349 + "zod": "^3.23.8" 350 + } 351 + }, 352 + "node_modules/@atproto/common/node_modules/@atproto/common-web": { 353 + "version": "0.3.1", 354 + "license": "MIT", 355 + "dependencies": { 356 + "graphemer": "^1.4.0", 357 + "multiformats": "^9.9.0", 358 + "uint8arrays": "3.0.0", 359 + "zod": "^3.23.8" 360 + } 361 + }, 362 + "node_modules/@atproto/common/node_modules/pino": { 363 + "version": "8.21.0", 364 + "license": "MIT", 365 + "dependencies": { 366 + "atomic-sleep": "^1.0.0", 367 + "fast-redact": "^3.1.1", 368 + "on-exit-leak-free": "^2.1.0", 369 + "pino-abstract-transport": "^1.2.0", 370 + "pino-std-serializers": "^6.0.0", 371 + "process-warning": "^3.0.0", 372 + "quick-format-unescaped": "^4.0.3", 373 + "real-require": "^0.2.0", 374 + "safe-stable-stringify": "^2.3.1", 375 + "sonic-boom": "^3.7.0", 376 + "thread-stream": "^2.6.0" 377 + }, 378 + "bin": { 379 + "pino": "bin.js" 380 + } 381 + }, 382 + "node_modules/@atproto/common/node_modules/pino/node_modules/pino-abstract-transport": { 383 + "version": "1.2.0", 384 + "license": "MIT", 385 + "dependencies": { 386 + "readable-stream": "^4.0.0", 387 + "split2": "^4.0.0" 388 + } 389 + }, 390 + "node_modules/@atproto/common/node_modules/pino/node_modules/pino-std-serializers": { 391 + "version": "6.2.2", 392 + "license": "MIT" 393 + }, 394 + "node_modules/@atproto/common/node_modules/pino/node_modules/process-warning": { 395 + "version": "3.0.0", 396 + "license": "MIT" 397 + }, 398 + "node_modules/@atproto/common/node_modules/pino/node_modules/sonic-boom": { 399 + "version": "3.8.1", 400 + "license": "MIT", 401 + "dependencies": { 402 + "atomic-sleep": "^1.0.0" 403 + } 404 + }, 405 + "node_modules/@atproto/common/node_modules/pino/node_modules/thread-stream": { 406 + "version": "2.7.0", 407 + "license": "MIT", 408 + "dependencies": { 409 + "real-require": "^0.2.0" 410 + } 411 + }, 412 + "node_modules/@atproto/crypto": { 413 + "version": "0.4.2", 414 + "license": "MIT", 415 + "dependencies": { 416 + "@noble/curves": "^1.1.0", 417 + "@noble/hashes": "^1.3.1", 418 + "uint8arrays": "3.0.0" 419 + } 420 + }, 421 + "node_modules/@atproto/identity": { 422 + "version": "0.4.3", 423 + "license": "MIT", 424 + "dependencies": { 425 + "@atproto/common-web": "^0.3.1", 426 + "@atproto/crypto": "^0.4.2", 427 + "axios": "^0.27.2" 428 + } 429 + }, 430 + "node_modules/@atproto/identity/node_modules/@atproto/common-web": { 431 + "version": "0.3.1", 432 + "license": "MIT", 433 + "dependencies": { 434 + "graphemer": "^1.4.0", 435 + "multiformats": "^9.9.0", 436 + "uint8arrays": "3.0.0", 437 + "zod": "^3.23.8" 438 + } 439 + }, 440 + "node_modules/@atproto/lexicon": { 441 + "version": "0.4.11", 442 + "license": "MIT", 443 + "dependencies": { 444 + "@atproto/common-web": "^0.4.2", 445 + "@atproto/syntax": "^0.4.0", 446 + "iso-datestring-validator": "^2.2.2", 447 + "multiformats": "^9.9.0", 448 + "zod": "^3.23.8" 449 + } 450 + }, 451 + "node_modules/@atproto/lexicon/node_modules/@atproto/syntax": { 452 + "version": "0.4.0", 453 + "license": "MIT" 454 + }, 455 + "node_modules/@atproto/ozone": { 456 + "version": "0.1.121", 457 + "license": "MIT", 458 + "dependencies": { 459 + "@atproto/api": "^0.15.16", 460 + "@atproto/common": "^0.4.11", 461 + "@atproto/crypto": "^0.4.4", 462 + "@atproto/identity": "^0.4.8", 463 + "@atproto/lexicon": "^0.4.11", 464 + "@atproto/syntax": "^0.4.0", 465 + "@atproto/xrpc": "^0.7.0", 466 + "@atproto/xrpc-server": "^0.8.0", 467 + "@did-plc/lib": "^0.0.1", 468 + "compression": "^1.7.4", 469 + "cors": "^2.8.5", 470 + "express": "^4.17.2", 471 + "http-terminator": "^3.2.0", 472 + "kysely": "^0.22.0", 473 + "lande": "^1.0.10", 474 + "multiformats": "^9.9.0", 475 + "p-queue": "^6.6.2", 476 + "pg": "^8.10.0", 477 + "pino-http": "^8.2.1", 478 + "structured-headers": "^1.0.1", 479 + "typed-emitter": "^2.1.0", 480 + "uint8arrays": "3.0.0", 481 + "undici": "^6.14.1", 482 + "ws": "^8.12.0" 483 + }, 484 + "engines": { 485 + "node": ">=18.7.0" 486 + } 487 + }, 488 + "node_modules/@atproto/ozone/node_modules/@atproto/api": { 489 + "version": "0.15.16", 490 + "license": "MIT", 491 + "dependencies": { 492 + "@atproto/common-web": "^0.4.2", 493 + "@atproto/lexicon": "^0.4.11", 494 + "@atproto/syntax": "^0.4.0", 495 + "@atproto/xrpc": "^0.7.0", 496 + "await-lock": "^2.2.2", 497 + "multiformats": "^9.9.0", 498 + "tlds": "^1.234.0", 499 + "zod": "^3.23.8" 500 + } 501 + }, 502 + "node_modules/@atproto/ozone/node_modules/@atproto/common": { 503 + "version": "0.4.11", 504 + "license": "MIT", 505 + "dependencies": { 506 + "@atproto/common-web": "^0.4.2", 507 + "@ipld/dag-cbor": "^7.0.3", 508 + "cbor-x": "^1.5.1", 509 + "iso-datestring-validator": "^2.2.2", 510 + "multiformats": "^9.9.0", 511 + "pino": "^8.21.0" 512 + }, 513 + "engines": { 514 + "node": ">=18.7.0" 515 + } 516 + }, 517 + "node_modules/@atproto/ozone/node_modules/@atproto/common/node_modules/pino": { 518 + "version": "8.21.0", 519 + "license": "MIT", 520 + "dependencies": { 521 + "atomic-sleep": "^1.0.0", 522 + "fast-redact": "^3.1.1", 523 + "on-exit-leak-free": "^2.1.0", 524 + "pino-abstract-transport": "^1.2.0", 525 + "pino-std-serializers": "^6.0.0", 526 + "process-warning": "^3.0.0", 527 + "quick-format-unescaped": "^4.0.3", 528 + "real-require": "^0.2.0", 529 + "safe-stable-stringify": "^2.3.1", 530 + "sonic-boom": "^3.7.0", 531 + "thread-stream": "^2.6.0" 532 + }, 533 + "bin": { 534 + "pino": "bin.js" 535 + } 536 + }, 537 + "node_modules/@atproto/ozone/node_modules/@atproto/common/node_modules/pino/node_modules/pino-abstract-transport": { 538 + "version": "1.2.0", 539 + "license": "MIT", 540 + "dependencies": { 541 + "readable-stream": "^4.0.0", 542 + "split2": "^4.0.0" 543 + } 544 + }, 545 + "node_modules/@atproto/ozone/node_modules/@atproto/common/node_modules/pino/node_modules/pino-std-serializers": { 546 + "version": "6.2.2", 547 + "license": "MIT" 548 + }, 549 + "node_modules/@atproto/ozone/node_modules/@atproto/common/node_modules/pino/node_modules/process-warning": { 550 + "version": "3.0.0", 551 + "license": "MIT" 552 + }, 553 + "node_modules/@atproto/ozone/node_modules/@atproto/common/node_modules/pino/node_modules/sonic-boom": { 554 + "version": "3.8.1", 555 + "license": "MIT", 556 + "dependencies": { 557 + "atomic-sleep": "^1.0.0" 558 + } 559 + }, 560 + "node_modules/@atproto/ozone/node_modules/@atproto/common/node_modules/pino/node_modules/thread-stream": { 561 + "version": "2.7.0", 562 + "license": "MIT", 563 + "dependencies": { 564 + "real-require": "^0.2.0" 565 + } 566 + }, 567 + "node_modules/@atproto/ozone/node_modules/@atproto/crypto": { 568 + "version": "0.4.4", 569 + "license": "MIT", 570 + "dependencies": { 571 + "@noble/curves": "^1.7.0", 572 + "@noble/hashes": "^1.6.1", 573 + "uint8arrays": "3.0.0" 574 + }, 575 + "engines": { 576 + "node": ">=18.7.0" 577 + } 578 + }, 579 + "node_modules/@atproto/ozone/node_modules/@atproto/identity": { 580 + "version": "0.4.8", 581 + "license": "MIT", 582 + "dependencies": { 583 + "@atproto/common-web": "^0.4.2", 584 + "@atproto/crypto": "^0.4.4" 585 + }, 586 + "engines": { 587 + "node": ">=18.7.0" 588 + } 589 + }, 590 + "node_modules/@atproto/ozone/node_modules/@atproto/syntax": { 591 + "version": "0.4.0", 592 + "license": "MIT" 593 + }, 594 + "node_modules/@atproto/ozone/node_modules/@atproto/xrpc": { 595 + "version": "0.7.0", 596 + "license": "MIT", 597 + "dependencies": { 598 + "@atproto/lexicon": "^0.4.11", 599 + "zod": "^3.23.8" 600 + } 601 + }, 602 + "node_modules/@atproto/ozone/node_modules/@atproto/xrpc-server": { 603 + "version": "0.8.0", 604 + "license": "MIT", 605 + "dependencies": { 606 + "@atproto/common": "^0.4.11", 607 + "@atproto/crypto": "^0.4.4", 608 + "@atproto/lexicon": "^0.4.11", 609 + "@atproto/xrpc": "^0.7.0", 610 + "cbor-x": "^1.5.1", 611 + "express": "^4.17.2", 612 + "http-errors": "^2.0.0", 613 + "mime-types": "^2.1.35", 614 + "rate-limiter-flexible": "^2.4.1", 615 + "uint8arrays": "3.0.0", 616 + "ws": "^8.12.0", 617 + "zod": "^3.23.8" 618 + }, 619 + "engines": { 620 + "node": ">=18.7.0" 621 + } 622 + }, 623 + "node_modules/@atproto/ozone/node_modules/undici": { 624 + "version": "6.21.3", 625 + "license": "MIT", 626 + "engines": { 627 + "node": ">=18.17" 628 + } 629 + }, 630 + "node_modules/@atproto/repo": { 631 + "version": "0.6.5", 632 + "license": "MIT", 633 + "dependencies": { 634 + "@atproto/common": "^0.4.8", 635 + "@atproto/common-web": "^0.4.0", 636 + "@atproto/crypto": "^0.4.4", 637 + "@atproto/lexicon": "^0.4.7", 638 + "@ipld/car": "^3.2.3", 639 + "@ipld/dag-cbor": "^7.0.0", 640 + "multiformats": "^9.9.0", 641 + "uint8arrays": "3.0.0", 642 + "zod": "^3.23.8" 643 + }, 644 + "engines": { 645 + "node": ">=18.7.0" 646 + } 647 + }, 648 + "node_modules/@atproto/repo/node_modules/@atproto/common": { 649 + "version": "0.4.11", 650 + "license": "MIT", 651 + "dependencies": { 652 + "@atproto/common-web": "^0.4.2", 653 + "@ipld/dag-cbor": "^7.0.3", 654 + "cbor-x": "^1.5.1", 655 + "iso-datestring-validator": "^2.2.2", 656 + "multiformats": "^9.9.0", 657 + "pino": "^8.21.0" 658 + }, 659 + "engines": { 660 + "node": ">=18.7.0" 661 + } 662 + }, 663 + "node_modules/@atproto/repo/node_modules/@atproto/common/node_modules/pino": { 664 + "version": "8.21.0", 665 + "license": "MIT", 666 + "dependencies": { 667 + "atomic-sleep": "^1.0.0", 668 + "fast-redact": "^3.1.1", 669 + "on-exit-leak-free": "^2.1.0", 670 + "pino-abstract-transport": "^1.2.0", 671 + "pino-std-serializers": "^6.0.0", 672 + "process-warning": "^3.0.0", 673 + "quick-format-unescaped": "^4.0.3", 674 + "real-require": "^0.2.0", 675 + "safe-stable-stringify": "^2.3.1", 676 + "sonic-boom": "^3.7.0", 677 + "thread-stream": "^2.6.0" 678 + }, 679 + "bin": { 680 + "pino": "bin.js" 681 + } 682 + }, 683 + "node_modules/@atproto/repo/node_modules/@atproto/common/node_modules/pino/node_modules/pino-abstract-transport": { 684 + "version": "1.2.0", 685 + "license": "MIT", 686 + "dependencies": { 687 + "readable-stream": "^4.0.0", 688 + "split2": "^4.0.0" 689 + } 690 + }, 691 + "node_modules/@atproto/repo/node_modules/@atproto/common/node_modules/pino/node_modules/pino-std-serializers": { 692 + "version": "6.2.2", 693 + "license": "MIT" 694 + }, 695 + "node_modules/@atproto/repo/node_modules/@atproto/common/node_modules/pino/node_modules/process-warning": { 696 + "version": "3.0.0", 697 + "license": "MIT" 698 + }, 699 + "node_modules/@atproto/repo/node_modules/@atproto/common/node_modules/pino/node_modules/sonic-boom": { 700 + "version": "3.8.1", 701 + "license": "MIT", 702 + "dependencies": { 703 + "atomic-sleep": "^1.0.0" 704 + } 705 + }, 706 + "node_modules/@atproto/repo/node_modules/@atproto/common/node_modules/pino/node_modules/thread-stream": { 707 + "version": "2.7.0", 708 + "license": "MIT", 709 + "dependencies": { 710 + "real-require": "^0.2.0" 711 + } 712 + }, 713 + "node_modules/@atproto/repo/node_modules/@atproto/crypto": { 714 + "version": "0.4.4", 715 + "license": "MIT", 716 + "dependencies": { 717 + "@noble/curves": "^1.7.0", 718 + "@noble/hashes": "^1.6.1", 719 + "uint8arrays": "3.0.0" 720 + }, 721 + "engines": { 722 + "node": ">=18.7.0" 723 + } 724 + }, 725 + "node_modules/@atproto/sync": { 726 + "version": "0.1.7", 727 + "license": "MIT", 728 + "dependencies": { 729 + "@atproto/common": "^0.4.5", 730 + "@atproto/identity": "^0.4.3", 731 + "@atproto/lexicon": "^0.4.4", 732 + "@atproto/repo": "^0.6.0", 733 + "@atproto/syntax": "^0.3.1", 734 + "@atproto/xrpc-server": "^0.7.4", 735 + "multiformats": "^9.9.0", 736 + "p-queue": "^6.6.2", 737 + "ws": "^8.12.0" 738 + } 739 + }, 740 + "node_modules/@atproto/sync/node_modules/@atproto/lexicon": { 741 + "version": "0.4.4", 742 + "license": "MIT", 743 + "dependencies": { 744 + "@atproto/common-web": "^0.3.1", 745 + "@atproto/syntax": "^0.3.1", 746 + "iso-datestring-validator": "^2.2.2", 747 + "multiformats": "^9.9.0", 748 + "zod": "^3.23.8" 749 + } 750 + }, 751 + "node_modules/@atproto/sync/node_modules/@atproto/lexicon/node_modules/@atproto/common-web": { 752 + "version": "0.3.1", 753 + "license": "MIT", 754 + "dependencies": { 755 + "graphemer": "^1.4.0", 756 + "multiformats": "^9.9.0", 757 + "uint8arrays": "3.0.0", 758 + "zod": "^3.23.8" 759 + } 760 + }, 761 + "node_modules/@atproto/sync/node_modules/@atproto/repo": { 762 + "version": "0.6.0", 763 + "license": "MIT", 764 + "dependencies": { 765 + "@atproto/common": "^0.4.5", 766 + "@atproto/common-web": "^0.3.1", 767 + "@atproto/crypto": "^0.4.2", 768 + "@atproto/lexicon": "^0.4.4", 769 + "@ipld/car": "^3.2.3", 770 + "@ipld/dag-cbor": "^7.0.0", 771 + "multiformats": "^9.9.0", 772 + "uint8arrays": "3.0.0", 773 + "zod": "^3.23.8" 774 + } 775 + }, 776 + "node_modules/@atproto/sync/node_modules/@atproto/repo/node_modules/@atproto/common-web": { 777 + "version": "0.3.1", 778 + "license": "MIT", 779 + "dependencies": { 780 + "graphemer": "^1.4.0", 781 + "multiformats": "^9.9.0", 782 + "uint8arrays": "3.0.0", 783 + "zod": "^3.23.8" 784 + } 785 + }, 786 + "node_modules/@atproto/sync/node_modules/@atproto/syntax": { 787 + "version": "0.3.1", 788 + "license": "MIT" 789 + }, 790 + "node_modules/@atproto/sync/node_modules/@atproto/xrpc-server": { 791 + "version": "0.7.4", 792 + "license": "MIT", 793 + "dependencies": { 794 + "@atproto/common": "^0.4.5", 795 + "@atproto/crypto": "^0.4.2", 796 + "@atproto/lexicon": "^0.4.4", 797 + "@atproto/xrpc": "^0.6.5", 798 + "cbor-x": "^1.5.1", 799 + "express": "^4.17.2", 800 + "http-errors": "^2.0.0", 801 + "mime-types": "^2.1.35", 802 + "rate-limiter-flexible": "^2.4.1", 803 + "uint8arrays": "3.0.0", 804 + "ws": "^8.12.0", 805 + "zod": "^3.23.8" 806 + } 807 + }, 808 + "node_modules/@atproto/sync/node_modules/@atproto/xrpc-server/node_modules/@atproto/xrpc": { 809 + "version": "0.6.5", 810 + "license": "MIT", 811 + "dependencies": { 812 + "@atproto/lexicon": "^0.4.4", 813 + "zod": "^3.23.8" 814 + } 815 + }, 816 + "node_modules/@atproto/syntax": { 817 + "version": "0.3.4", 818 + "license": "MIT" 819 + }, 820 + "node_modules/@atproto/xrpc": { 821 + "version": "0.6.12", 822 + "license": "MIT", 823 + "dependencies": { 824 + "@atproto/lexicon": "^0.4.10", 825 + "zod": "^3.23.8" 826 + } 827 + }, 828 + "node_modules/@atproto/xrpc-server": { 829 + "version": "0.7.19", 830 + "license": "MIT", 831 + "dependencies": { 832 + "@atproto/common": "^0.4.11", 833 + "@atproto/crypto": "^0.4.4", 834 + "@atproto/lexicon": "^0.4.11", 835 + "@atproto/xrpc": "^0.7.0", 836 + "cbor-x": "^1.5.1", 837 + "express": "^4.17.2", 838 + "http-errors": "^2.0.0", 839 + "mime-types": "^2.1.35", 840 + "rate-limiter-flexible": "^2.4.1", 841 + "uint8arrays": "3.0.0", 842 + "ws": "^8.12.0", 843 + "zod": "^3.23.8" 844 + }, 845 + "engines": { 846 + "node": ">=18.7.0" 847 + } 848 + }, 849 + "node_modules/@atproto/xrpc-server/node_modules/@atproto/common": { 850 + "version": "0.4.11", 851 + "license": "MIT", 852 + "dependencies": { 853 + "@atproto/common-web": "^0.4.2", 854 + "@ipld/dag-cbor": "^7.0.3", 855 + "cbor-x": "^1.5.1", 856 + "iso-datestring-validator": "^2.2.2", 857 + "multiformats": "^9.9.0", 858 + "pino": "^8.21.0" 859 + }, 860 + "engines": { 861 + "node": ">=18.7.0" 862 + } 863 + }, 864 + "node_modules/@atproto/xrpc-server/node_modules/@atproto/common/node_modules/pino": { 865 + "version": "8.21.0", 866 + "license": "MIT", 867 + "dependencies": { 868 + "atomic-sleep": "^1.0.0", 869 + "fast-redact": "^3.1.1", 870 + "on-exit-leak-free": "^2.1.0", 871 + "pino-abstract-transport": "^1.2.0", 872 + "pino-std-serializers": "^6.0.0", 873 + "process-warning": "^3.0.0", 874 + "quick-format-unescaped": "^4.0.3", 875 + "real-require": "^0.2.0", 876 + "safe-stable-stringify": "^2.3.1", 877 + "sonic-boom": "^3.7.0", 878 + "thread-stream": "^2.6.0" 879 + }, 880 + "bin": { 881 + "pino": "bin.js" 882 + } 883 + }, 884 + "node_modules/@atproto/xrpc-server/node_modules/@atproto/common/node_modules/pino/node_modules/pino-abstract-transport": { 885 + "version": "1.2.0", 886 + "license": "MIT", 887 + "dependencies": { 888 + "readable-stream": "^4.0.0", 889 + "split2": "^4.0.0" 890 + } 891 + }, 892 + "node_modules/@atproto/xrpc-server/node_modules/@atproto/common/node_modules/pino/node_modules/pino-std-serializers": { 893 + "version": "6.2.2", 894 + "license": "MIT" 895 + }, 896 + "node_modules/@atproto/xrpc-server/node_modules/@atproto/common/node_modules/pino/node_modules/process-warning": { 897 + "version": "3.0.0", 898 + "license": "MIT" 899 + }, 900 + "node_modules/@atproto/xrpc-server/node_modules/@atproto/common/node_modules/pino/node_modules/sonic-boom": { 901 + "version": "3.8.1", 902 + "license": "MIT", 903 + "dependencies": { 904 + "atomic-sleep": "^1.0.0" 905 + } 906 + }, 907 + "node_modules/@atproto/xrpc-server/node_modules/@atproto/common/node_modules/pino/node_modules/thread-stream": { 908 + "version": "2.7.0", 909 + "license": "MIT", 910 + "dependencies": { 911 + "real-require": "^0.2.0" 912 + } 913 + }, 914 + "node_modules/@atproto/xrpc-server/node_modules/@atproto/crypto": { 915 + "version": "0.4.4", 916 + "license": "MIT", 917 + "dependencies": { 918 + "@noble/curves": "^1.7.0", 919 + "@noble/hashes": "^1.6.1", 920 + "uint8arrays": "3.0.0" 921 + }, 922 + "engines": { 923 + "node": ">=18.7.0" 924 + } 925 + }, 926 + "node_modules/@atproto/xrpc-server/node_modules/@atproto/xrpc": { 927 + "version": "0.7.0", 928 + "license": "MIT", 929 + "dependencies": { 930 + "@atproto/lexicon": "^0.4.11", 931 + "zod": "^3.23.8" 932 + } 933 + }, 934 + "node_modules/@babel/code-frame": { 935 + "version": "7.26.2", 936 + "dev": true, 937 + "license": "MIT", 938 + "dependencies": { 939 + "@babel/helper-validator-identifier": "^7.25.9", 940 + "js-tokens": "^4.0.0", 941 + "picocolors": "^1.0.0" 942 + }, 943 + "engines": { 944 + "node": ">=6.9.0" 945 + } 946 + }, 947 + "node_modules/@babel/generator": { 948 + "version": "7.17.7", 949 + "dev": true, 950 + "license": "MIT", 951 + "dependencies": { 952 + "@babel/types": "^7.17.0", 953 + "jsesc": "^2.5.1", 954 + "source-map": "^0.5.0" 955 + }, 956 + "engines": { 957 + "node": ">=6.9.0" 958 + } 959 + }, 960 + "node_modules/@babel/generator/node_modules/@babel/types": { 961 + "version": "7.26.3", 962 + "dev": true, 963 + "license": "MIT", 964 + "dependencies": { 965 + "@babel/helper-string-parser": "^7.25.9", 966 + "@babel/helper-validator-identifier": "^7.25.9" 967 + }, 968 + "engines": { 969 + "node": ">=6.9.0" 970 + } 971 + }, 972 + "node_modules/@babel/helper-environment-visitor": { 973 + "version": "7.24.7", 974 + "dev": true, 975 + "license": "MIT", 976 + "dependencies": { 977 + "@babel/types": "^7.24.7" 978 + }, 979 + "engines": { 980 + "node": ">=6.9.0" 981 + } 982 + }, 983 + "node_modules/@babel/helper-environment-visitor/node_modules/@babel/types": { 984 + "version": "7.26.3", 985 + "dev": true, 986 + "license": "MIT", 987 + "dependencies": { 988 + "@babel/helper-string-parser": "^7.25.9", 989 + "@babel/helper-validator-identifier": "^7.25.9" 990 + }, 991 + "engines": { 992 + "node": ">=6.9.0" 993 + } 994 + }, 995 + "node_modules/@babel/helper-function-name": { 996 + "version": "7.24.7", 997 + "dev": true, 998 + "license": "MIT", 999 + "dependencies": { 1000 + "@babel/template": "^7.24.7", 1001 + "@babel/types": "^7.24.7" 1002 + }, 1003 + "engines": { 1004 + "node": ">=6.9.0" 1005 + } 1006 + }, 1007 + "node_modules/@babel/helper-function-name/node_modules/@babel/types": { 1008 + "version": "7.26.3", 1009 + "dev": true, 1010 + "license": "MIT", 1011 + "dependencies": { 1012 + "@babel/helper-string-parser": "^7.25.9", 1013 + "@babel/helper-validator-identifier": "^7.25.9" 1014 + }, 1015 + "engines": { 1016 + "node": ">=6.9.0" 1017 + } 1018 + }, 1019 + "node_modules/@babel/helper-hoist-variables": { 1020 + "version": "7.24.7", 1021 + "dev": true, 1022 + "license": "MIT", 1023 + "dependencies": { 1024 + "@babel/types": "^7.24.7" 1025 + }, 1026 + "engines": { 1027 + "node": ">=6.9.0" 1028 + } 1029 + }, 1030 + "node_modules/@babel/helper-hoist-variables/node_modules/@babel/types": { 1031 + "version": "7.26.3", 1032 + "dev": true, 1033 + "license": "MIT", 1034 + "dependencies": { 1035 + "@babel/helper-string-parser": "^7.25.9", 1036 + "@babel/helper-validator-identifier": "^7.25.9" 1037 + }, 1038 + "engines": { 1039 + "node": ">=6.9.0" 1040 + } 1041 + }, 1042 + "node_modules/@babel/helper-split-export-declaration": { 1043 + "version": "7.24.7", 1044 + "dev": true, 1045 + "license": "MIT", 1046 + "dependencies": { 1047 + "@babel/types": "^7.24.7" 1048 + }, 1049 + "engines": { 1050 + "node": ">=6.9.0" 1051 + } 1052 + }, 1053 + "node_modules/@babel/helper-split-export-declaration/node_modules/@babel/types": { 1054 + "version": "7.26.3", 1055 + "dev": true, 1056 + "license": "MIT", 1057 + "dependencies": { 1058 + "@babel/helper-string-parser": "^7.25.9", 1059 + "@babel/helper-validator-identifier": "^7.25.9" 1060 + }, 1061 + "engines": { 1062 + "node": ">=6.9.0" 1063 + } 1064 + }, 1065 + "node_modules/@babel/helper-string-parser": { 1066 + "version": "7.25.9", 1067 + "dev": true, 1068 + "license": "MIT", 1069 + "engines": { 1070 + "node": ">=6.9.0" 1071 + } 1072 + }, 1073 + "node_modules/@babel/helper-validator-identifier": { 1074 + "version": "7.25.9", 1075 + "dev": true, 1076 + "license": "MIT", 1077 + "engines": { 1078 + "node": ">=6.9.0" 1079 + } 1080 + }, 1081 + "node_modules/@babel/parser": { 1082 + "version": "7.26.3", 1083 + "dev": true, 1084 + "license": "MIT", 1085 + "dependencies": { 1086 + "@babel/types": "^7.26.3" 1087 + }, 1088 + "bin": { 1089 + "parser": "bin/babel-parser.js" 1090 + }, 1091 + "engines": { 1092 + "node": ">=6.0.0" 1093 + } 1094 + }, 1095 + "node_modules/@babel/parser/node_modules/@babel/types": { 1096 + "version": "7.26.3", 1097 + "dev": true, 1098 + "license": "MIT", 1099 + "dependencies": { 1100 + "@babel/helper-string-parser": "^7.25.9", 1101 + "@babel/helper-validator-identifier": "^7.25.9" 1102 + }, 1103 + "engines": { 1104 + "node": ">=6.9.0" 1105 + } 1106 + }, 1107 + "node_modules/@babel/template": { 1108 + "version": "7.25.9", 1109 + "dev": true, 1110 + "license": "MIT", 1111 + "dependencies": { 1112 + "@babel/code-frame": "^7.25.9", 1113 + "@babel/parser": "^7.25.9", 1114 + "@babel/types": "^7.25.9" 1115 + }, 1116 + "engines": { 1117 + "node": ">=6.9.0" 1118 + } 1119 + }, 1120 + "node_modules/@babel/template/node_modules/@babel/types": { 1121 + "version": "7.26.3", 1122 + "dev": true, 1123 + "license": "MIT", 1124 + "dependencies": { 1125 + "@babel/helper-string-parser": "^7.25.9", 1126 + "@babel/helper-validator-identifier": "^7.25.9" 1127 + }, 1128 + "engines": { 1129 + "node": ">=6.9.0" 1130 + } 1131 + }, 1132 + "node_modules/@babel/traverse": { 1133 + "version": "7.23.2", 1134 + "dev": true, 1135 + "license": "MIT", 1136 + "dependencies": { 1137 + "@babel/code-frame": "^7.22.13", 1138 + "@babel/generator": "^7.23.0", 1139 + "@babel/helper-environment-visitor": "^7.22.20", 1140 + "@babel/helper-function-name": "^7.23.0", 1141 + "@babel/helper-hoist-variables": "^7.22.5", 1142 + "@babel/helper-split-export-declaration": "^7.22.6", 1143 + "@babel/parser": "^7.23.0", 1144 + "@babel/types": "^7.23.0", 1145 + "debug": "^4.1.0", 1146 + "globals": "^11.1.0" 1147 + }, 1148 + "engines": { 1149 + "node": ">=6.9.0" 1150 + } 1151 + }, 1152 + "node_modules/@babel/traverse/node_modules/@babel/generator": { 1153 + "version": "7.26.3", 1154 + "dev": true, 1155 + "license": "MIT", 1156 + "dependencies": { 1157 + "@babel/parser": "^7.26.3", 1158 + "@babel/types": "^7.26.3", 1159 + "@jridgewell/gen-mapping": "^0.3.5", 1160 + "@jridgewell/trace-mapping": "^0.3.25", 1161 + "jsesc": "^3.0.2" 1162 + }, 1163 + "engines": { 1164 + "node": ">=6.9.0" 1165 + } 1166 + }, 1167 + "node_modules/@babel/traverse/node_modules/@babel/generator/node_modules/jsesc": { 1168 + "version": "3.1.0", 1169 + "dev": true, 1170 + "license": "MIT", 1171 + "bin": { 1172 + "jsesc": "bin/jsesc" 1173 + }, 1174 + "engines": { 1175 + "node": ">=6" 1176 + } 1177 + }, 1178 + "node_modules/@babel/traverse/node_modules/@babel/types": { 1179 + "version": "7.26.3", 1180 + "dev": true, 1181 + "license": "MIT", 1182 + "dependencies": { 1183 + "@babel/helper-string-parser": "^7.25.9", 1184 + "@babel/helper-validator-identifier": "^7.25.9" 1185 + }, 1186 + "engines": { 1187 + "node": ">=6.9.0" 1188 + } 1189 + }, 1190 + "node_modules/@babel/traverse/node_modules/globals": { 1191 + "version": "11.12.0", 1192 + "dev": true, 1193 + "license": "MIT", 1194 + "engines": { 1195 + "node": ">=4" 1196 + } 1197 + }, 1198 + "node_modules/@babel/types": { 1199 + "version": "7.17.0", 1200 + "dev": true, 1201 + "license": "MIT", 1202 + "dependencies": { 1203 + "@babel/helper-validator-identifier": "^7.16.7", 1204 + "to-fast-properties": "^2.0.0" 1205 + }, 1206 + "engines": { 1207 + "node": ">=6.9.0" 1208 + } 1209 + }, 1210 + "node_modules/@bufbuild/protobuf": { 1211 + "version": "1.10.0", 1212 + "license": "(Apache-2.0 AND BSD-3-Clause)" 1213 + }, 1214 + "node_modules/@cbor-extract/cbor-extract-darwin-arm64": { 1215 + "version": "2.2.0", 1216 + "cpu": [ 1217 + "arm64" 1218 + ], 1219 + "license": "MIT", 1220 + "optional": true, 1221 + "os": [ 1222 + "darwin" 1223 + ] 1224 + }, 1225 + "node_modules/@connectrpc/connect": { 1226 + "version": "1.6.1", 1227 + "license": "Apache-2.0", 1228 + "peerDependencies": { 1229 + "@bufbuild/protobuf": "^1.10.0" 1230 + } 1231 + }, 1232 + "node_modules/@connectrpc/connect-express": { 1233 + "version": "1.6.1", 1234 + "license": "Apache-2.0", 1235 + "engines": { 1236 + "node": ">=16.0.0" 1237 + }, 1238 + "peerDependencies": { 1239 + "@bufbuild/protobuf": "^1.10.0", 1240 + "@connectrpc/connect": "1.6.1", 1241 + "@connectrpc/connect-node": "1.6.1" 1242 + } 1243 + }, 1244 + "node_modules/@connectrpc/connect-node": { 1245 + "version": "1.6.1", 1246 + "license": "Apache-2.0", 1247 + "dependencies": { 1248 + "undici": "^5.28.4" 1249 + }, 1250 + "engines": { 1251 + "node": ">=16.0.0" 1252 + }, 1253 + "peerDependencies": { 1254 + "@bufbuild/protobuf": "^1.10.0", 1255 + "@connectrpc/connect": "1.6.1" 1256 + } 1257 + }, 1258 + "node_modules/@connectrpc/connect-node/node_modules/undici": { 1259 + "version": "5.28.4", 1260 + "license": "MIT", 1261 + "dependencies": { 1262 + "@fastify/busboy": "^2.0.0" 1263 + }, 1264 + "engines": { 1265 + "node": ">=14.0" 1266 + } 1267 + }, 1268 + "node_modules/@did-plc/lib": { 1269 + "version": "0.0.1", 1270 + "license": "MIT", 1271 + "dependencies": { 1272 + "@atproto/common": "0.1.0", 1273 + "@atproto/crypto": "0.1.0", 1274 + "@ipld/dag-cbor": "^7.0.3", 1275 + "axios": "^1.3.4", 1276 + "multiformats": "^9.6.4", 1277 + "uint8arrays": "3.0.0", 1278 + "zod": "^3.14.2" 1279 + } 1280 + }, 1281 + "node_modules/@did-plc/lib/node_modules/@atproto/common": { 1282 + "version": "0.1.0", 1283 + "license": "MIT", 1284 + "dependencies": { 1285 + "@ipld/dag-cbor": "^7.0.3", 1286 + "multiformats": "^9.6.4", 1287 + "pino": "^8.6.1", 1288 + "zod": "^3.14.2" 1289 + } 1290 + }, 1291 + "node_modules/@did-plc/lib/node_modules/@atproto/common/node_modules/pino": { 1292 + "version": "8.21.0", 1293 + "license": "MIT", 1294 + "dependencies": { 1295 + "atomic-sleep": "^1.0.0", 1296 + "fast-redact": "^3.1.1", 1297 + "on-exit-leak-free": "^2.1.0", 1298 + "pino-abstract-transport": "^1.2.0", 1299 + "pino-std-serializers": "^6.0.0", 1300 + "process-warning": "^3.0.0", 1301 + "quick-format-unescaped": "^4.0.3", 1302 + "real-require": "^0.2.0", 1303 + "safe-stable-stringify": "^2.3.1", 1304 + "sonic-boom": "^3.7.0", 1305 + "thread-stream": "^2.6.0" 1306 + }, 1307 + "bin": { 1308 + "pino": "bin.js" 1309 + } 1310 + }, 1311 + "node_modules/@did-plc/lib/node_modules/@atproto/common/node_modules/pino/node_modules/pino-abstract-transport": { 1312 + "version": "1.2.0", 1313 + "license": "MIT", 1314 + "dependencies": { 1315 + "readable-stream": "^4.0.0", 1316 + "split2": "^4.0.0" 1317 + } 1318 + }, 1319 + "node_modules/@did-plc/lib/node_modules/@atproto/common/node_modules/pino/node_modules/pino-std-serializers": { 1320 + "version": "6.2.2", 1321 + "license": "MIT" 1322 + }, 1323 + "node_modules/@did-plc/lib/node_modules/@atproto/common/node_modules/pino/node_modules/process-warning": { 1324 + "version": "3.0.0", 1325 + "license": "MIT" 1326 + }, 1327 + "node_modules/@did-plc/lib/node_modules/@atproto/common/node_modules/pino/node_modules/sonic-boom": { 1328 + "version": "3.8.1", 1329 + "license": "MIT", 1330 + "dependencies": { 1331 + "atomic-sleep": "^1.0.0" 1332 + } 1333 + }, 1334 + "node_modules/@did-plc/lib/node_modules/@atproto/common/node_modules/pino/node_modules/thread-stream": { 1335 + "version": "2.7.0", 1336 + "license": "MIT", 1337 + "dependencies": { 1338 + "real-require": "^0.2.0" 1339 + } 1340 + }, 1341 + "node_modules/@did-plc/lib/node_modules/@atproto/crypto": { 1342 + "version": "0.1.0", 1343 + "license": "MIT", 1344 + "dependencies": { 1345 + "@noble/secp256k1": "^1.7.0", 1346 + "big-integer": "^1.6.51", 1347 + "multiformats": "^9.6.4", 1348 + "one-webcrypto": "^1.0.3", 1349 + "uint8arrays": "3.0.0" 1350 + } 1351 + }, 1352 + "node_modules/@did-plc/lib/node_modules/axios": { 1353 + "version": "1.7.9", 1354 + "license": "MIT", 1355 + "dependencies": { 1356 + "follow-redirects": "^1.15.6", 1357 + "form-data": "^4.0.0", 1358 + "proxy-from-env": "^1.1.0" 1359 + } 1360 + }, 1361 + "node_modules/@esbuild/darwin-arm64": { 1362 + "version": "0.25.5", 1363 + "cpu": [ 1364 + "arm64" 1365 + ], 1366 + "dev": true, 1367 + "license": "MIT", 1368 + "optional": true, 1369 + "os": [ 1370 + "darwin" 1371 + ], 1372 + "engines": { 1373 + "node": ">=18" 1374 + } 1375 + }, 1376 + "node_modules/@eslint-community/eslint-utils": { 1377 + "version": "4.7.0", 1378 + "dev": true, 1379 + "license": "MIT", 1380 + "dependencies": { 1381 + "eslint-visitor-keys": "^3.4.3" 1382 + }, 1383 + "engines": { 1384 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 1385 + }, 1386 + "funding": { 1387 + "url": "https://opencollective.com/eslint" 1388 + }, 1389 + "peerDependencies": { 1390 + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" 1391 + } 1392 + }, 1393 + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { 1394 + "version": "3.4.3", 1395 + "dev": true, 1396 + "license": "Apache-2.0", 1397 + "engines": { 1398 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 1399 + }, 1400 + "funding": { 1401 + "url": "https://opencollective.com/eslint" 1402 + } 1403 + }, 1404 + "node_modules/@eslint-community/regexpp": { 1405 + "version": "4.12.1", 1406 + "dev": true, 1407 + "license": "MIT", 1408 + "engines": { 1409 + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" 1410 + } 1411 + }, 1412 + "node_modules/@eslint/compat": { 1413 + "version": "1.3.2", 1414 + "dev": true, 1415 + "license": "Apache-2.0", 1416 + "engines": { 1417 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1418 + }, 1419 + "peerDependencies": { 1420 + "eslint": "^8.40 || 9" 1421 + }, 1422 + "peerDependenciesMeta": { 1423 + "eslint": { 1424 + "optional": true 1425 + } 1426 + } 1427 + }, 1428 + "node_modules/@eslint/config-array": { 1429 + "version": "0.20.1", 1430 + "dev": true, 1431 + "license": "Apache-2.0", 1432 + "dependencies": { 1433 + "@eslint/object-schema": "^2.1.6", 1434 + "debug": "^4.3.1", 1435 + "minimatch": "^3.1.2" 1436 + }, 1437 + "engines": { 1438 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1439 + } 1440 + }, 1441 + "node_modules/@eslint/config-helpers": { 1442 + "version": "0.2.3", 1443 + "dev": true, 1444 + "license": "Apache-2.0", 1445 + "engines": { 1446 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1447 + } 1448 + }, 1449 + "node_modules/@eslint/core": { 1450 + "version": "0.14.0", 1451 + "dev": true, 1452 + "license": "Apache-2.0", 1453 + "dependencies": { 1454 + "@types/json-schema": "^7.0.15" 1455 + }, 1456 + "engines": { 1457 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1458 + } 1459 + }, 1460 + "node_modules/@eslint/eslintrc": { 1461 + "version": "3.3.1", 1462 + "dev": true, 1463 + "license": "MIT", 1464 + "dependencies": { 1465 + "ajv": "^6.12.4", 1466 + "debug": "^4.3.2", 1467 + "espree": "^10.0.1", 1468 + "globals": "^14.0.0", 1469 + "ignore": "^5.2.0", 1470 + "import-fresh": "^3.2.1", 1471 + "js-yaml": "^4.1.0", 1472 + "minimatch": "^3.1.2", 1473 + "strip-json-comments": "^3.1.1" 1474 + }, 1475 + "engines": { 1476 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1477 + }, 1478 + "funding": { 1479 + "url": "https://opencollective.com/eslint" 1480 + } 1481 + }, 1482 + "node_modules/@eslint/eslintrc/node_modules/globals": { 1483 + "version": "14.0.0", 1484 + "dev": true, 1485 + "license": "MIT", 1486 + "engines": { 1487 + "node": ">=18" 1488 + }, 1489 + "funding": { 1490 + "url": "https://github.com/sponsors/sindresorhus" 1491 + } 1492 + }, 1493 + "node_modules/@eslint/js": { 1494 + "version": "9.29.0", 1495 + "dev": true, 1496 + "license": "MIT", 1497 + "engines": { 1498 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1499 + }, 1500 + "funding": { 1501 + "url": "https://eslint.org/donate" 1502 + } 1503 + }, 1504 + "node_modules/@eslint/object-schema": { 1505 + "version": "2.1.6", 1506 + "dev": true, 1507 + "license": "Apache-2.0", 1508 + "engines": { 1509 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1510 + } 1511 + }, 1512 + "node_modules/@eslint/plugin-kit": { 1513 + "version": "0.3.2", 1514 + "dev": true, 1515 + "license": "Apache-2.0", 1516 + "dependencies": { 1517 + "@eslint/core": "^0.15.0", 1518 + "levn": "^0.4.1" 1519 + }, 1520 + "engines": { 1521 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1522 + } 1523 + }, 1524 + "node_modules/@eslint/plugin-kit/node_modules/@eslint/core": { 1525 + "version": "0.15.0", 1526 + "dev": true, 1527 + "license": "Apache-2.0", 1528 + "dependencies": { 1529 + "@types/json-schema": "^7.0.15" 1530 + }, 1531 + "engines": { 1532 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1533 + } 1534 + }, 1535 + "node_modules/@fastify/ajv-compiler": { 1536 + "version": "3.6.0", 1537 + "license": "MIT", 1538 + "dependencies": { 1539 + "ajv": "^8.11.0", 1540 + "ajv-formats": "^2.1.1", 1541 + "fast-uri": "^2.0.0" 1542 + } 1543 + }, 1544 + "node_modules/@fastify/ajv-compiler/node_modules/ajv": { 1545 + "version": "8.17.1", 1546 + "license": "MIT", 1547 + "dependencies": { 1548 + "fast-deep-equal": "^3.1.3", 1549 + "fast-uri": "^3.0.1", 1550 + "json-schema-traverse": "^1.0.0", 1551 + "require-from-string": "^2.0.2" 1552 + }, 1553 + "funding": { 1554 + "type": "github", 1555 + "url": "https://github.com/sponsors/epoberezkin" 1556 + } 1557 + }, 1558 + "node_modules/@fastify/ajv-compiler/node_modules/ajv/node_modules/fast-uri": { 1559 + "version": "3.0.3", 1560 + "license": "BSD-3-Clause" 1561 + }, 1562 + "node_modules/@fastify/ajv-compiler/node_modules/ajv/node_modules/json-schema-traverse": { 1563 + "version": "1.0.0", 1564 + "license": "MIT" 1565 + }, 1566 + "node_modules/@fastify/busboy": { 1567 + "version": "2.1.1", 1568 + "license": "MIT", 1569 + "engines": { 1570 + "node": ">=14" 1571 + } 1572 + }, 1573 + "node_modules/@fastify/error": { 1574 + "version": "3.4.1", 1575 + "license": "MIT" 1576 + }, 1577 + "node_modules/@fastify/fast-json-stringify-compiler": { 1578 + "version": "4.3.0", 1579 + "license": "MIT", 1580 + "dependencies": { 1581 + "fast-json-stringify": "^5.7.0" 1582 + } 1583 + }, 1584 + "node_modules/@fastify/merge-json-schemas": { 1585 + "version": "0.1.1", 1586 + "license": "MIT", 1587 + "dependencies": { 1588 + "fast-deep-equal": "^3.1.3" 1589 + } 1590 + }, 1591 + "node_modules/@fastify/websocket": { 1592 + "version": "10.0.1", 1593 + "license": "MIT", 1594 + "dependencies": { 1595 + "duplexify": "^4.1.2", 1596 + "fastify-plugin": "^4.0.0", 1597 + "ws": "^8.0.0" 1598 + } 1599 + }, 1600 + "node_modules/@humanfs/core": { 1601 + "version": "0.19.1", 1602 + "dev": true, 1603 + "license": "Apache-2.0", 1604 + "engines": { 1605 + "node": ">=18.18.0" 1606 + } 1607 + }, 1608 + "node_modules/@humanfs/node": { 1609 + "version": "0.16.6", 1610 + "dev": true, 1611 + "license": "Apache-2.0", 1612 + "dependencies": { 1613 + "@humanfs/core": "^0.19.1", 1614 + "@humanwhocodes/retry": "^0.3.0" 1615 + }, 1616 + "engines": { 1617 + "node": ">=18.18.0" 1618 + } 1619 + }, 1620 + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { 1621 + "version": "0.3.1", 1622 + "dev": true, 1623 + "license": "Apache-2.0", 1624 + "engines": { 1625 + "node": ">=18.18" 1626 + }, 1627 + "funding": { 1628 + "type": "github", 1629 + "url": "https://github.com/sponsors/nzakas" 1630 + } 1631 + }, 1632 + "node_modules/@humanwhocodes/module-importer": { 1633 + "version": "1.0.1", 1634 + "dev": true, 1635 + "license": "Apache-2.0", 1636 + "engines": { 1637 + "node": ">=12.22" 1638 + }, 1639 + "funding": { 1640 + "type": "github", 1641 + "url": "https://github.com/sponsors/nzakas" 1642 + } 1643 + }, 1644 + "node_modules/@humanwhocodes/retry": { 1645 + "version": "0.4.3", 1646 + "dev": true, 1647 + "license": "Apache-2.0", 1648 + "engines": { 1649 + "node": ">=18.18" 1650 + }, 1651 + "funding": { 1652 + "type": "github", 1653 + "url": "https://github.com/sponsors/nzakas" 1654 + } 1655 + }, 1656 + "node_modules/@img/sharp-darwin-arm64": { 1657 + "version": "0.33.5", 1658 + "cpu": [ 1659 + "arm64" 1660 + ], 1661 + "license": "Apache-2.0", 1662 + "optional": true, 1663 + "os": [ 1664 + "darwin" 1665 + ], 1666 + "engines": { 1667 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1668 + }, 1669 + "funding": { 1670 + "url": "https://opencollective.com/libvips" 1671 + }, 1672 + "optionalDependencies": { 1673 + "@img/sharp-libvips-darwin-arm64": "1.0.4" 1674 + } 1675 + }, 1676 + "node_modules/@img/sharp-libvips-darwin-arm64": { 1677 + "version": "1.0.4", 1678 + "cpu": [ 1679 + "arm64" 1680 + ], 1681 + "license": "LGPL-3.0-or-later", 1682 + "optional": true, 1683 + "os": [ 1684 + "darwin" 1685 + ], 1686 + "funding": { 1687 + "url": "https://opencollective.com/libvips" 1688 + } 1689 + }, 1690 + "node_modules/@ioredis/commands": { 1691 + "version": "1.2.0", 1692 + "license": "MIT" 1693 + }, 1694 + "node_modules/@ipld/car": { 1695 + "version": "3.2.4", 1696 + "license": "(Apache-2.0 AND MIT)", 1697 + "dependencies": { 1698 + "@ipld/dag-cbor": "^7.0.0", 1699 + "multiformats": "^9.5.4", 1700 + "varint": "^6.0.0" 1701 + } 1702 + }, 1703 + "node_modules/@ipld/dag-cbor": { 1704 + "version": "7.0.3", 1705 + "license": "(Apache-2.0 AND MIT)", 1706 + "dependencies": { 1707 + "cborg": "^1.6.0", 1708 + "multiformats": "^9.5.4" 1709 + } 1710 + }, 1711 + "node_modules/@jridgewell/gen-mapping": { 1712 + "version": "0.3.8", 1713 + "dev": true, 1714 + "license": "MIT", 1715 + "dependencies": { 1716 + "@jridgewell/set-array": "^1.2.1", 1717 + "@jridgewell/sourcemap-codec": "^1.4.10", 1718 + "@jridgewell/trace-mapping": "^0.3.24" 1719 + }, 1720 + "engines": { 1721 + "node": ">=6.0.0" 1722 + } 1723 + }, 1724 + "node_modules/@jridgewell/resolve-uri": { 1725 + "version": "3.1.2", 1726 + "dev": true, 1727 + "license": "MIT", 1728 + "engines": { 1729 + "node": ">=6.0.0" 1730 + } 1731 + }, 1732 + "node_modules/@jridgewell/set-array": { 1733 + "version": "1.2.1", 1734 + "dev": true, 1735 + "license": "MIT", 1736 + "engines": { 1737 + "node": ">=6.0.0" 1738 + } 1739 + }, 1740 + "node_modules/@jridgewell/sourcemap-codec": { 1741 + "version": "1.5.0", 1742 + "dev": true, 1743 + "license": "MIT" 1744 + }, 1745 + "node_modules/@jridgewell/trace-mapping": { 1746 + "version": "0.3.25", 1747 + "dev": true, 1748 + "license": "MIT", 1749 + "dependencies": { 1750 + "@jridgewell/resolve-uri": "^3.1.0", 1751 + "@jridgewell/sourcemap-codec": "^1.4.14" 1752 + } 1753 + }, 1754 + "node_modules/@libsql/darwin-arm64": { 1755 + "version": "0.4.7", 1756 + "cpu": [ 1757 + "arm64" 1758 + ], 1759 + "license": "MIT", 1760 + "optional": true, 1761 + "os": [ 1762 + "darwin" 1763 + ] 1764 + }, 1765 + "node_modules/@neon-rs/load": { 1766 + "version": "0.0.4", 1767 + "license": "MIT" 1768 + }, 1769 + "node_modules/@noble/curves": { 1770 + "version": "1.7.0", 1771 + "license": "MIT", 1772 + "dependencies": { 1773 + "@noble/hashes": "1.6.0" 1774 + }, 1775 + "engines": { 1776 + "node": "^14.21.3 || >=16" 1777 + }, 1778 + "funding": { 1779 + "url": "https://paulmillr.com/funding/" 1780 + } 1781 + }, 1782 + "node_modules/@noble/curves/node_modules/@noble/hashes": { 1783 + "version": "1.6.0", 1784 + "license": "MIT", 1785 + "engines": { 1786 + "node": "^14.21.3 || >=16" 1787 + }, 1788 + "funding": { 1789 + "url": "https://paulmillr.com/funding/" 1790 + } 1791 + }, 1792 + "node_modules/@noble/hashes": { 1793 + "version": "1.6.1", 1794 + "license": "MIT", 1795 + "engines": { 1796 + "node": "^14.21.3 || >=16" 1797 + }, 1798 + "funding": { 1799 + "url": "https://paulmillr.com/funding/" 1800 + } 1801 + }, 1802 + "node_modules/@noble/secp256k1": { 1803 + "version": "1.7.1", 1804 + "funding": [ 1805 + { 1806 + "type": "individual", 1807 + "url": "https://paulmillr.com/funding/" 1808 + } 1809 + ], 1810 + "license": "MIT" 1811 + }, 1812 + "node_modules/@nodelib/fs.scandir": { 1813 + "version": "2.1.5", 1814 + "dev": true, 1815 + "license": "MIT", 1816 + "dependencies": { 1817 + "@nodelib/fs.stat": "2.0.5", 1818 + "run-parallel": "^1.1.9" 1819 + }, 1820 + "engines": { 1821 + "node": ">= 8" 1822 + } 1823 + }, 1824 + "node_modules/@nodelib/fs.stat": { 1825 + "version": "2.0.5", 1826 + "dev": true, 1827 + "license": "MIT", 1828 + "engines": { 1829 + "node": ">= 8" 1830 + } 1831 + }, 1832 + "node_modules/@nodelib/fs.walk": { 1833 + "version": "1.2.8", 1834 + "dev": true, 1835 + "license": "MIT", 1836 + "dependencies": { 1837 + "@nodelib/fs.scandir": "2.1.5", 1838 + "fastq": "^1.6.0" 1839 + }, 1840 + "engines": { 1841 + "node": ">= 8" 1842 + } 1843 + }, 1844 + "node_modules/@opentelemetry/api": { 1845 + "version": "1.9.0", 1846 + "license": "Apache-2.0", 1847 + "engines": { 1848 + "node": ">=8.0.0" 1849 + } 1850 + }, 1851 + "node_modules/@pkgr/core": { 1852 + "version": "0.2.9", 1853 + "dev": true, 1854 + "license": "MIT", 1855 + "engines": { 1856 + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" 1857 + }, 1858 + "funding": { 1859 + "url": "https://opencollective.com/pkgr" 1860 + } 1861 + }, 1862 + "node_modules/@rtsao/scc": { 1863 + "version": "1.1.0", 1864 + "dev": true, 1865 + "license": "MIT" 1866 + }, 1867 + "node_modules/@skyware/bot": { 1868 + "version": "0.3.11", 1869 + "license": "MPL-2.0", 1870 + "dependencies": { 1871 + "@atcute/bluesky": "^1.0.7", 1872 + "@atcute/bluesky-richtext-builder": "^1.0.1", 1873 + "@atcute/client": "^2.0.3", 1874 + "@atcute/ozone": "^1.0.5", 1875 + "quick-lru": "^7.0.0", 1876 + "rate-limit-threshold": "^0.1.5" 1877 + }, 1878 + "optionalDependencies": { 1879 + "@skyware/firehose": "^0.3.2", 1880 + "@skyware/jetstream": "^0.1.9" 1881 + } 1882 + }, 1883 + "node_modules/@skyware/bot/node_modules/@skyware/jetstream": { 1884 + "version": "0.1.9", 1885 + "license": "MPL-2.0", 1886 + "optional": true, 1887 + "dependencies": { 1888 + "@atcute/bluesky": "^1.0.6", 1889 + "partysocket": "^1.0.2" 1890 + } 1891 + }, 1892 + "node_modules/@skyware/firehose": { 1893 + "version": "0.3.2", 1894 + "license": "MPL-2.0", 1895 + "optional": true, 1896 + "dependencies": { 1897 + "@atcute/car": "^1.1.0", 1898 + "@atcute/cbor": "^1.0.3", 1899 + "ws": "^8.16.0" 1900 + } 1901 + }, 1902 + "node_modules/@skyware/jetstream": { 1903 + "version": "0.2.2", 1904 + "license": "MPL-2.0", 1905 + "dependencies": { 1906 + "@atcute/bluesky": "^1.0.6", 1907 + "partysocket": "^1.0.2" 1908 + } 1909 + }, 1910 + "node_modules/@skyware/labeler": { 1911 + "version": "0.1.13", 1912 + "license": "MPL-2.0", 1913 + "dependencies": { 1914 + "@atcute/bluesky": "^1.0.7", 1915 + "@atcute/cbor": "^1.0.2", 1916 + "@atcute/client": "^2.0.3", 1917 + "@atcute/ozone": "^1.0.4", 1918 + "@fastify/websocket": "^10.0.1", 1919 + "@noble/curves": "^1.6.0", 1920 + "@noble/hashes": "^1.5.0", 1921 + "fastify": "^4.28.1", 1922 + "libsql": "^0.4.6", 1923 + "prompts": "^2.4.2", 1924 + "uint8arrays": "^5.1.0" 1925 + }, 1926 + "bin": { 1927 + "labeler": "dist/bin.js" 1928 + } 1929 + }, 1930 + "node_modules/@skyware/labeler/node_modules/uint8arrays": { 1931 + "version": "5.1.0", 1932 + "license": "Apache-2.0 OR MIT", 1933 + "dependencies": { 1934 + "multiformats": "^13.0.0" 1935 + } 1936 + }, 1937 + "node_modules/@skyware/labeler/node_modules/uint8arrays/node_modules/multiformats": { 1938 + "version": "13.3.1", 1939 + "license": "Apache-2.0 OR MIT" 1940 + }, 1941 + "node_modules/@stylistic/eslint-plugin": { 1942 + "version": "5.2.3", 1943 + "dev": true, 1944 + "license": "MIT", 1945 + "dependencies": { 1946 + "@eslint-community/eslint-utils": "^4.7.0", 1947 + "@typescript-eslint/types": "^8.38.0", 1948 + "eslint-visitor-keys": "^4.2.1", 1949 + "espree": "^10.4.0", 1950 + "estraverse": "^5.3.0", 1951 + "picomatch": "^4.0.3" 1952 + }, 1953 + "engines": { 1954 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1955 + }, 1956 + "peerDependencies": { 1957 + "eslint": ">=9.0.0" 1958 + } 1959 + }, 1960 + "node_modules/@trivago/prettier-plugin-sort-imports": { 1961 + "version": "4.3.0", 1962 + "dev": true, 1963 + "license": "Apache-2.0", 1964 + "dependencies": { 1965 + "@babel/generator": "7.17.7", 1966 + "@babel/parser": "^7.20.5", 1967 + "@babel/traverse": "7.23.2", 1968 + "@babel/types": "7.17.0", 1969 + "javascript-natural-sort": "0.7.1", 1970 + "lodash": "^4.17.21" 1971 + }, 1972 + "peerDependencies": { 1973 + "@vue/compiler-sfc": "3.x", 1974 + "prettier": "2.x - 3.x" 1975 + }, 1976 + "peerDependenciesMeta": { 1977 + "@vue/compiler-sfc": { 1978 + "optional": true 1979 + } 1980 + } 1981 + }, 1982 + "node_modules/@types/better-sqlite3": { 1983 + "version": "7.6.13", 1984 + "dev": true, 1985 + "license": "MIT", 1986 + "dependencies": { 1987 + "@types/node": "*" 1988 + } 1989 + }, 1990 + "node_modules/@types/bn.js": { 1991 + "version": "5.1.6", 1992 + "license": "MIT", 1993 + "dependencies": { 1994 + "@types/node": "*" 1995 + } 1996 + }, 1997 + "node_modules/@types/bn.js/node_modules/@types/node": { 1998 + "version": "22.10.2", 1999 + "license": "MIT", 2000 + "dependencies": { 2001 + "undici-types": "~6.20.0" 2002 + } 2003 + }, 2004 + "node_modules/@types/bn.js/node_modules/@types/node/node_modules/undici-types": { 2005 + "version": "6.20.0", 2006 + "license": "MIT" 2007 + }, 2008 + "node_modules/@types/body-parser": { 2009 + "version": "1.19.5", 2010 + "dev": true, 2011 + "license": "MIT", 2012 + "dependencies": { 2013 + "@types/connect": "*", 2014 + "@types/node": "*" 2015 + } 2016 + }, 2017 + "node_modules/@types/body-parser/node_modules/@types/node": { 2018 + "version": "22.10.2", 2019 + "dev": true, 2020 + "license": "MIT", 2021 + "dependencies": { 2022 + "undici-types": "~6.20.0" 2023 + } 2024 + }, 2025 + "node_modules/@types/body-parser/node_modules/@types/node/node_modules/undici-types": { 2026 + "version": "6.20.0", 2027 + "dev": true, 2028 + "license": "MIT" 2029 + }, 2030 + "node_modules/@types/connect": { 2031 + "version": "3.4.38", 2032 + "dev": true, 2033 + "license": "MIT", 2034 + "dependencies": { 2035 + "@types/node": "*" 2036 + } 2037 + }, 2038 + "node_modules/@types/connect/node_modules/@types/node": { 2039 + "version": "22.10.2", 2040 + "dev": true, 2041 + "license": "MIT", 2042 + "dependencies": { 2043 + "undici-types": "~6.20.0" 2044 + } 2045 + }, 2046 + "node_modules/@types/connect/node_modules/@types/node/node_modules/undici-types": { 2047 + "version": "6.20.0", 2048 + "dev": true, 2049 + "license": "MIT" 2050 + }, 2051 + "node_modules/@types/elliptic": { 2052 + "version": "6.4.18", 2053 + "license": "MIT", 2054 + "dependencies": { 2055 + "@types/bn.js": "*" 2056 + } 2057 + }, 2058 + "node_modules/@types/eslint": { 2059 + "version": "9.6.1", 2060 + "dev": true, 2061 + "license": "MIT", 2062 + "dependencies": { 2063 + "@types/estree": "*", 2064 + "@types/json-schema": "*" 2065 + } 2066 + }, 2067 + "node_modules/@types/eslint__js": { 2068 + "version": "8.42.3", 2069 + "dev": true, 2070 + "license": "MIT", 2071 + "dependencies": { 2072 + "@types/eslint": "*" 2073 + } 2074 + }, 2075 + "node_modules/@types/estree": { 2076 + "version": "1.0.6", 2077 + "dev": true, 2078 + "license": "MIT" 2079 + }, 2080 + "node_modules/@types/express": { 2081 + "version": "4.17.23", 2082 + "dev": true, 2083 + "license": "MIT", 2084 + "dependencies": { 2085 + "@types/body-parser": "*", 2086 + "@types/express-serve-static-core": "^4.17.33", 2087 + "@types/qs": "*", 2088 + "@types/serve-static": "*" 2089 + } 2090 + }, 2091 + "node_modules/@types/express-serve-static-core": { 2092 + "version": "4.19.6", 2093 + "dev": true, 2094 + "license": "MIT", 2095 + "dependencies": { 2096 + "@types/node": "*", 2097 + "@types/qs": "*", 2098 + "@types/range-parser": "*", 2099 + "@types/send": "*" 2100 + } 2101 + }, 2102 + "node_modules/@types/express-serve-static-core/node_modules/@types/node": { 2103 + "version": "22.10.2", 2104 + "dev": true, 2105 + "license": "MIT", 2106 + "dependencies": { 2107 + "undici-types": "~6.20.0" 2108 + } 2109 + }, 2110 + "node_modules/@types/express-serve-static-core/node_modules/@types/node/node_modules/undici-types": { 2111 + "version": "6.20.0", 2112 + "dev": true, 2113 + "license": "MIT" 2114 + }, 2115 + "node_modules/@types/http-errors": { 2116 + "version": "2.0.4", 2117 + "dev": true, 2118 + "license": "MIT" 2119 + }, 2120 + "node_modules/@types/json-schema": { 2121 + "version": "7.0.15", 2122 + "dev": true, 2123 + "license": "MIT" 2124 + }, 2125 + "node_modules/@types/json5": { 2126 + "version": "0.0.29", 2127 + "dev": true, 2128 + "license": "MIT" 2129 + }, 2130 + "node_modules/@types/mime": { 2131 + "version": "1.3.5", 2132 + "dev": true, 2133 + "license": "MIT" 2134 + }, 2135 + "node_modules/@types/node": { 2136 + "version": "22.15.32", 2137 + "dev": true, 2138 + "license": "MIT", 2139 + "dependencies": { 2140 + "undici-types": "~6.21.0" 2141 + } 2142 + }, 2143 + "node_modules/@types/qs": { 2144 + "version": "6.9.17", 2145 + "dev": true, 2146 + "license": "MIT" 2147 + }, 2148 + "node_modules/@types/range-parser": { 2149 + "version": "1.2.7", 2150 + "dev": true, 2151 + "license": "MIT" 2152 + }, 2153 + "node_modules/@types/semver": { 2154 + "version": "7.7.0", 2155 + "dev": true, 2156 + "license": "MIT" 2157 + }, 2158 + "node_modules/@types/send": { 2159 + "version": "0.17.4", 2160 + "dev": true, 2161 + "license": "MIT", 2162 + "dependencies": { 2163 + "@types/mime": "^1", 2164 + "@types/node": "*" 2165 + } 2166 + }, 2167 + "node_modules/@types/send/node_modules/@types/node": { 2168 + "version": "22.10.2", 2169 + "dev": true, 2170 + "license": "MIT", 2171 + "dependencies": { 2172 + "undici-types": "~6.20.0" 2173 + } 2174 + }, 2175 + "node_modules/@types/send/node_modules/@types/node/node_modules/undici-types": { 2176 + "version": "6.20.0", 2177 + "dev": true, 2178 + "license": "MIT" 2179 + }, 2180 + "node_modules/@types/serve-static": { 2181 + "version": "1.15.7", 2182 + "dev": true, 2183 + "license": "MIT", 2184 + "dependencies": { 2185 + "@types/http-errors": "*", 2186 + "@types/node": "*", 2187 + "@types/send": "*" 2188 + } 2189 + }, 2190 + "node_modules/@types/serve-static/node_modules/@types/node": { 2191 + "version": "22.10.2", 2192 + "dev": true, 2193 + "license": "MIT", 2194 + "dependencies": { 2195 + "undici-types": "~6.20.0" 2196 + } 2197 + }, 2198 + "node_modules/@types/serve-static/node_modules/@types/node/node_modules/undici-types": { 2199 + "version": "6.20.0", 2200 + "dev": true, 2201 + "license": "MIT" 2202 + }, 2203 + "node_modules/@typescript-eslint/eslint-plugin": { 2204 + "version": "6.21.0", 2205 + "dev": true, 2206 + "license": "MIT", 2207 + "dependencies": { 2208 + "@eslint-community/regexpp": "^4.5.1", 2209 + "@typescript-eslint/scope-manager": "6.21.0", 2210 + "@typescript-eslint/type-utils": "6.21.0", 2211 + "@typescript-eslint/utils": "6.21.0", 2212 + "@typescript-eslint/visitor-keys": "6.21.0", 2213 + "debug": "^4.3.4", 2214 + "graphemer": "^1.4.0", 2215 + "ignore": "^5.2.4", 2216 + "natural-compare": "^1.4.0", 2217 + "semver": "^7.5.4", 2218 + "ts-api-utils": "^1.0.1" 2219 + }, 2220 + "engines": { 2221 + "node": "^16.0.0 || >=18.0.0" 2222 + }, 2223 + "funding": { 2224 + "type": "opencollective", 2225 + "url": "https://opencollective.com/typescript-eslint" 2226 + }, 2227 + "peerDependencies": { 2228 + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", 2229 + "eslint": "^7.0.0 || ^8.0.0" 2230 + }, 2231 + "peerDependenciesMeta": { 2232 + "typescript": { 2233 + "optional": true 2234 + } 2235 + } 2236 + }, 2237 + "node_modules/@typescript-eslint/parser": { 2238 + "version": "6.21.0", 2239 + "dev": true, 2240 + "license": "BSD-2-Clause", 2241 + "dependencies": { 2242 + "@typescript-eslint/scope-manager": "6.21.0", 2243 + "@typescript-eslint/types": "6.21.0", 2244 + "@typescript-eslint/typescript-estree": "6.21.0", 2245 + "@typescript-eslint/visitor-keys": "6.21.0", 2246 + "debug": "^4.3.4" 2247 + }, 2248 + "engines": { 2249 + "node": "^16.0.0 || >=18.0.0" 2250 + }, 2251 + "funding": { 2252 + "type": "opencollective", 2253 + "url": "https://opencollective.com/typescript-eslint" 2254 + }, 2255 + "peerDependencies": { 2256 + "eslint": "^7.0.0 || ^8.0.0" 2257 + }, 2258 + "peerDependenciesMeta": { 2259 + "typescript": { 2260 + "optional": true 2261 + } 2262 + } 2263 + }, 2264 + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { 2265 + "version": "6.21.0", 2266 + "dev": true, 2267 + "license": "MIT", 2268 + "engines": { 2269 + "node": "^16.0.0 || >=18.0.0" 2270 + }, 2271 + "funding": { 2272 + "type": "opencollective", 2273 + "url": "https://opencollective.com/typescript-eslint" 2274 + } 2275 + }, 2276 + "node_modules/@typescript-eslint/project-service": { 2277 + "version": "8.34.1", 2278 + "dev": true, 2279 + "license": "MIT", 2280 + "dependencies": { 2281 + "@typescript-eslint/tsconfig-utils": "^8.34.1", 2282 + "@typescript-eslint/types": "^8.34.1", 2283 + "debug": "^4.3.4" 2284 + }, 2285 + "engines": { 2286 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 2287 + }, 2288 + "funding": { 2289 + "type": "opencollective", 2290 + "url": "https://opencollective.com/typescript-eslint" 2291 + }, 2292 + "peerDependencies": { 2293 + "typescript": ">=4.8.4 <5.9.0" 2294 + } 2295 + }, 2296 + "node_modules/@typescript-eslint/project-service/node_modules/@typescript-eslint/types": { 2297 + "version": "8.34.1", 2298 + "dev": true, 2299 + "license": "MIT", 2300 + "engines": { 2301 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 2302 + }, 2303 + "funding": { 2304 + "type": "opencollective", 2305 + "url": "https://opencollective.com/typescript-eslint" 2306 + } 2307 + }, 2308 + "node_modules/@typescript-eslint/scope-manager": { 2309 + "version": "6.21.0", 2310 + "dev": true, 2311 + "license": "MIT", 2312 + "dependencies": { 2313 + "@typescript-eslint/types": "6.21.0", 2314 + "@typescript-eslint/visitor-keys": "6.21.0" 2315 + }, 2316 + "engines": { 2317 + "node": "^16.0.0 || >=18.0.0" 2318 + }, 2319 + "funding": { 2320 + "type": "opencollective", 2321 + "url": "https://opencollective.com/typescript-eslint" 2322 + } 2323 + }, 2324 + "node_modules/@typescript-eslint/scope-manager/node_modules/@typescript-eslint/types": { 2325 + "version": "6.21.0", 2326 + "dev": true, 2327 + "license": "MIT", 2328 + "engines": { 2329 + "node": "^16.0.0 || >=18.0.0" 2330 + }, 2331 + "funding": { 2332 + "type": "opencollective", 2333 + "url": "https://opencollective.com/typescript-eslint" 2334 + } 2335 + }, 2336 + "node_modules/@typescript-eslint/tsconfig-utils": { 2337 + "version": "8.34.1", 2338 + "dev": true, 2339 + "license": "MIT", 2340 + "engines": { 2341 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 2342 + }, 2343 + "funding": { 2344 + "type": "opencollective", 2345 + "url": "https://opencollective.com/typescript-eslint" 2346 + }, 2347 + "peerDependencies": { 2348 + "typescript": ">=4.8.4 <5.9.0" 2349 + } 2350 + }, 2351 + "node_modules/@typescript-eslint/type-utils": { 2352 + "version": "6.21.0", 2353 + "dev": true, 2354 + "license": "MIT", 2355 + "dependencies": { 2356 + "@typescript-eslint/typescript-estree": "6.21.0", 2357 + "@typescript-eslint/utils": "6.21.0", 2358 + "debug": "^4.3.4", 2359 + "ts-api-utils": "^1.0.1" 2360 + }, 2361 + "engines": { 2362 + "node": "^16.0.0 || >=18.0.0" 2363 + }, 2364 + "funding": { 2365 + "type": "opencollective", 2366 + "url": "https://opencollective.com/typescript-eslint" 2367 + }, 2368 + "peerDependencies": { 2369 + "eslint": "^7.0.0 || ^8.0.0" 2370 + }, 2371 + "peerDependenciesMeta": { 2372 + "typescript": { 2373 + "optional": true 2374 + } 2375 + } 2376 + }, 2377 + "node_modules/@typescript-eslint/types": { 2378 + "version": "8.39.1", 2379 + "dev": true, 2380 + "license": "MIT", 2381 + "engines": { 2382 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 2383 + }, 2384 + "funding": { 2385 + "type": "opencollective", 2386 + "url": "https://opencollective.com/typescript-eslint" 2387 + } 2388 + }, 2389 + "node_modules/@typescript-eslint/typescript-estree": { 2390 + "version": "6.21.0", 2391 + "dev": true, 2392 + "license": "BSD-2-Clause", 2393 + "dependencies": { 2394 + "@typescript-eslint/types": "6.21.0", 2395 + "@typescript-eslint/visitor-keys": "6.21.0", 2396 + "debug": "^4.3.4", 2397 + "globby": "^11.1.0", 2398 + "is-glob": "^4.0.3", 2399 + "minimatch": "9.0.3", 2400 + "semver": "^7.5.4", 2401 + "ts-api-utils": "^1.0.1" 2402 + }, 2403 + "engines": { 2404 + "node": "^16.0.0 || >=18.0.0" 2405 + }, 2406 + "funding": { 2407 + "type": "opencollective", 2408 + "url": "https://opencollective.com/typescript-eslint" 2409 + }, 2410 + "peerDependenciesMeta": { 2411 + "typescript": { 2412 + "optional": true 2413 + } 2414 + } 2415 + }, 2416 + "node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/types": { 2417 + "version": "6.21.0", 2418 + "dev": true, 2419 + "license": "MIT", 2420 + "engines": { 2421 + "node": "^16.0.0 || >=18.0.0" 2422 + }, 2423 + "funding": { 2424 + "type": "opencollective", 2425 + "url": "https://opencollective.com/typescript-eslint" 2426 + } 2427 + }, 2428 + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { 2429 + "version": "9.0.3", 2430 + "dev": true, 2431 + "license": "ISC", 2432 + "dependencies": { 2433 + "brace-expansion": "^2.0.1" 2434 + }, 2435 + "engines": { 2436 + "node": ">=16 || 14 >=14.17" 2437 + }, 2438 + "funding": { 2439 + "url": "https://github.com/sponsors/isaacs" 2440 + } 2441 + }, 2442 + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/node_modules/brace-expansion": { 2443 + "version": "2.0.1", 2444 + "dev": true, 2445 + "license": "MIT", 2446 + "dependencies": { 2447 + "balanced-match": "^1.0.0" 2448 + } 2449 + }, 2450 + "node_modules/@typescript-eslint/utils": { 2451 + "version": "6.21.0", 2452 + "dev": true, 2453 + "license": "MIT", 2454 + "dependencies": { 2455 + "@eslint-community/eslint-utils": "^4.4.0", 2456 + "@types/json-schema": "^7.0.12", 2457 + "@types/semver": "^7.5.0", 2458 + "@typescript-eslint/scope-manager": "6.21.0", 2459 + "@typescript-eslint/types": "6.21.0", 2460 + "@typescript-eslint/typescript-estree": "6.21.0", 2461 + "semver": "^7.5.4" 2462 + }, 2463 + "engines": { 2464 + "node": "^16.0.0 || >=18.0.0" 2465 + }, 2466 + "funding": { 2467 + "type": "opencollective", 2468 + "url": "https://opencollective.com/typescript-eslint" 2469 + }, 2470 + "peerDependencies": { 2471 + "eslint": "^7.0.0 || ^8.0.0" 2472 + } 2473 + }, 2474 + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { 2475 + "version": "6.21.0", 2476 + "dev": true, 2477 + "license": "MIT", 2478 + "engines": { 2479 + "node": "^16.0.0 || >=18.0.0" 2480 + }, 2481 + "funding": { 2482 + "type": "opencollective", 2483 + "url": "https://opencollective.com/typescript-eslint" 2484 + } 2485 + }, 2486 + "node_modules/@typescript-eslint/visitor-keys": { 2487 + "version": "6.21.0", 2488 + "dev": true, 2489 + "license": "MIT", 2490 + "dependencies": { 2491 + "@typescript-eslint/types": "6.21.0", 2492 + "eslint-visitor-keys": "^3.4.1" 2493 + }, 2494 + "engines": { 2495 + "node": "^16.0.0 || >=18.0.0" 2496 + }, 2497 + "funding": { 2498 + "type": "opencollective", 2499 + "url": "https://opencollective.com/typescript-eslint" 2500 + } 2501 + }, 2502 + "node_modules/@typescript-eslint/visitor-keys/node_modules/@typescript-eslint/types": { 2503 + "version": "6.21.0", 2504 + "dev": true, 2505 + "license": "MIT", 2506 + "engines": { 2507 + "node": "^16.0.0 || >=18.0.0" 2508 + }, 2509 + "funding": { 2510 + "type": "opencollective", 2511 + "url": "https://opencollective.com/typescript-eslint" 2512 + } 2513 + }, 2514 + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { 2515 + "version": "3.4.3", 2516 + "dev": true, 2517 + "license": "Apache-2.0", 2518 + "engines": { 2519 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 2520 + }, 2521 + "funding": { 2522 + "url": "https://opencollective.com/eslint" 2523 + } 2524 + }, 2525 + "node_modules/abort-controller": { 2526 + "version": "3.0.0", 2527 + "license": "MIT", 2528 + "dependencies": { 2529 + "event-target-shim": "^5.0.0" 2530 + }, 2531 + "engines": { 2532 + "node": ">=6.5" 2533 + } 2534 + }, 2535 + "node_modules/abort-controller/node_modules/event-target-shim": { 2536 + "version": "5.0.1", 2537 + "license": "MIT", 2538 + "engines": { 2539 + "node": ">=6" 2540 + } 2541 + }, 2542 + "node_modules/abstract-logging": { 2543 + "version": "2.0.1", 2544 + "license": "MIT" 2545 + }, 2546 + "node_modules/accepts": { 2547 + "version": "1.3.8", 2548 + "license": "MIT", 2549 + "dependencies": { 2550 + "mime-types": "~2.1.34", 2551 + "negotiator": "0.6.3" 2552 + }, 2553 + "engines": { 2554 + "node": ">= 0.6" 2555 + } 2556 + }, 2557 + "node_modules/accepts/node_modules/negotiator": { 2558 + "version": "0.6.3", 2559 + "license": "MIT", 2560 + "engines": { 2561 + "node": ">= 0.6" 2562 + } 2563 + }, 2564 + "node_modules/acorn": { 2565 + "version": "8.15.0", 2566 + "dev": true, 2567 + "license": "MIT", 2568 + "bin": { 2569 + "acorn": "bin/acorn" 2570 + }, 2571 + "engines": { 2572 + "node": ">=0.4.0" 2573 + } 2574 + }, 2575 + "node_modules/acorn-jsx": { 2576 + "version": "5.3.2", 2577 + "dev": true, 2578 + "license": "MIT", 2579 + "peerDependencies": { 2580 + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" 2581 + } 2582 + }, 2583 + "node_modules/ajv": { 2584 + "version": "6.12.6", 2585 + "dev": true, 2586 + "license": "MIT", 2587 + "dependencies": { 2588 + "fast-deep-equal": "^3.1.1", 2589 + "fast-json-stable-stringify": "^2.0.0", 2590 + "json-schema-traverse": "^0.4.1", 2591 + "uri-js": "^4.2.2" 2592 + }, 2593 + "funding": { 2594 + "type": "github", 2595 + "url": "https://github.com/sponsors/epoberezkin" 2596 + } 2597 + }, 2598 + "node_modules/ajv-formats": { 2599 + "version": "2.1.1", 2600 + "license": "MIT", 2601 + "dependencies": { 2602 + "ajv": "^8.0.0" 2603 + }, 2604 + "peerDependencies": { 2605 + "ajv": "^8.0.0" 2606 + }, 2607 + "peerDependenciesMeta": { 2608 + "ajv": { 2609 + "optional": true 2610 + } 2611 + } 2612 + }, 2613 + "node_modules/ajv-formats/node_modules/ajv": { 2614 + "version": "8.17.1", 2615 + "license": "MIT", 2616 + "dependencies": { 2617 + "fast-deep-equal": "^3.1.3", 2618 + "fast-uri": "^3.0.1", 2619 + "json-schema-traverse": "^1.0.0", 2620 + "require-from-string": "^2.0.2" 2621 + }, 2622 + "funding": { 2623 + "type": "github", 2624 + "url": "https://github.com/sponsors/epoberezkin" 2625 + } 2626 + }, 2627 + "node_modules/ajv-formats/node_modules/ajv/node_modules/fast-uri": { 2628 + "version": "3.0.3", 2629 + "license": "BSD-3-Clause" 2630 + }, 2631 + "node_modules/ajv-formats/node_modules/ajv/node_modules/json-schema-traverse": { 2632 + "version": "1.0.0", 2633 + "license": "MIT" 2634 + }, 2635 + "node_modules/ansi-escapes": { 2636 + "version": "7.0.0", 2637 + "license": "MIT", 2638 + "dependencies": { 2639 + "environment": "^1.0.0" 2640 + }, 2641 + "engines": { 2642 + "node": ">=18" 2643 + }, 2644 + "funding": { 2645 + "url": "https://github.com/sponsors/sindresorhus" 2646 + } 2647 + }, 2648 + "node_modules/ansi-regex": { 2649 + "version": "6.1.0", 2650 + "license": "MIT", 2651 + "engines": { 2652 + "node": ">=12" 2653 + }, 2654 + "funding": { 2655 + "url": "https://github.com/chalk/ansi-regex?sponsor=1" 2656 + } 2657 + }, 2658 + "node_modules/ansi-styles": { 2659 + "version": "4.3.0", 2660 + "dev": true, 2661 + "license": "MIT", 2662 + "dependencies": { 2663 + "color-convert": "^2.0.1" 2664 + }, 2665 + "engines": { 2666 + "node": ">=8" 2667 + }, 2668 + "funding": { 2669 + "url": "https://github.com/chalk/ansi-styles?sponsor=1" 2670 + } 2671 + }, 2672 + "node_modules/argparse": { 2673 + "version": "2.0.1", 2674 + "dev": true, 2675 + "license": "Python-2.0" 2676 + }, 2677 + "node_modules/array-buffer-byte-length": { 2678 + "version": "1.0.2", 2679 + "dev": true, 2680 + "license": "MIT", 2681 + "dependencies": { 2682 + "call-bound": "^1.0.3", 2683 + "is-array-buffer": "^3.0.5" 2684 + }, 2685 + "engines": { 2686 + "node": ">= 0.4" 2687 + }, 2688 + "funding": { 2689 + "url": "https://github.com/sponsors/ljharb" 2690 + } 2691 + }, 2692 + "node_modules/array-flatten": { 2693 + "version": "1.1.1", 2694 + "license": "MIT" 2695 + }, 2696 + "node_modules/array-includes": { 2697 + "version": "3.1.9", 2698 + "dev": true, 2699 + "license": "MIT", 2700 + "dependencies": { 2701 + "call-bind": "^1.0.8", 2702 + "call-bound": "^1.0.4", 2703 + "define-properties": "^1.2.1", 2704 + "es-abstract": "^1.24.0", 2705 + "es-object-atoms": "^1.1.1", 2706 + "get-intrinsic": "^1.3.0", 2707 + "is-string": "^1.1.1", 2708 + "math-intrinsics": "^1.1.0" 2709 + }, 2710 + "engines": { 2711 + "node": ">= 0.4" 2712 + }, 2713 + "funding": { 2714 + "url": "https://github.com/sponsors/ljharb" 2715 + } 2716 + }, 2717 + "node_modules/array-union": { 2718 + "version": "2.1.0", 2719 + "dev": true, 2720 + "license": "MIT", 2721 + "engines": { 2722 + "node": ">=8" 2723 + } 2724 + }, 2725 + "node_modules/array.prototype.findlastindex": { 2726 + "version": "1.2.6", 2727 + "dev": true, 2728 + "license": "MIT", 2729 + "dependencies": { 2730 + "call-bind": "^1.0.8", 2731 + "call-bound": "^1.0.4", 2732 + "define-properties": "^1.2.1", 2733 + "es-abstract": "^1.23.9", 2734 + "es-errors": "^1.3.0", 2735 + "es-object-atoms": "^1.1.1", 2736 + "es-shim-unscopables": "^1.1.0" 2737 + }, 2738 + "engines": { 2739 + "node": ">= 0.4" 2740 + }, 2741 + "funding": { 2742 + "url": "https://github.com/sponsors/ljharb" 2743 + } 2744 + }, 2745 + "node_modules/array.prototype.flat": { 2746 + "version": "1.3.3", 2747 + "dev": true, 2748 + "license": "MIT", 2749 + "dependencies": { 2750 + "call-bind": "^1.0.8", 2751 + "define-properties": "^1.2.1", 2752 + "es-abstract": "^1.23.5", 2753 + "es-shim-unscopables": "^1.0.2" 2754 + }, 2755 + "engines": { 2756 + "node": ">= 0.4" 2757 + }, 2758 + "funding": { 2759 + "url": "https://github.com/sponsors/ljharb" 2760 + } 2761 + }, 2762 + "node_modules/array.prototype.flatmap": { 2763 + "version": "1.3.3", 2764 + "dev": true, 2765 + "license": "MIT", 2766 + "dependencies": { 2767 + "call-bind": "^1.0.8", 2768 + "define-properties": "^1.2.1", 2769 + "es-abstract": "^1.23.5", 2770 + "es-shim-unscopables": "^1.0.2" 2771 + }, 2772 + "engines": { 2773 + "node": ">= 0.4" 2774 + }, 2775 + "funding": { 2776 + "url": "https://github.com/sponsors/ljharb" 2777 + } 2778 + }, 2779 + "node_modules/arraybuffer.prototype.slice": { 2780 + "version": "1.0.4", 2781 + "dev": true, 2782 + "license": "MIT", 2783 + "dependencies": { 2784 + "array-buffer-byte-length": "^1.0.1", 2785 + "call-bind": "^1.0.8", 2786 + "define-properties": "^1.2.1", 2787 + "es-abstract": "^1.23.5", 2788 + "es-errors": "^1.3.0", 2789 + "get-intrinsic": "^1.2.6", 2790 + "is-array-buffer": "^3.0.4" 2791 + }, 2792 + "engines": { 2793 + "node": ">= 0.4" 2794 + }, 2795 + "funding": { 2796 + "url": "https://github.com/sponsors/ljharb" 2797 + } 2798 + }, 2799 + "node_modules/asn1.js": { 2800 + "version": "5.4.1", 2801 + "license": "MIT", 2802 + "dependencies": { 2803 + "bn.js": "^4.0.0", 2804 + "inherits": "^2.0.1", 2805 + "minimalistic-assert": "^1.0.0", 2806 + "safer-buffer": "^2.1.0" 2807 + } 2808 + }, 2809 + "node_modules/async-function": { 2810 + "version": "1.0.0", 2811 + "dev": true, 2812 + "license": "MIT", 2813 + "engines": { 2814 + "node": ">= 0.4" 2815 + } 2816 + }, 2817 + "node_modules/asynckit": { 2818 + "version": "0.4.0", 2819 + "license": "MIT" 2820 + }, 2821 + "node_modules/atomic-sleep": { 2822 + "version": "1.0.0", 2823 + "license": "MIT", 2824 + "engines": { 2825 + "node": ">=8.0.0" 2826 + } 2827 + }, 2828 + "node_modules/available-typed-arrays": { 2829 + "version": "1.0.7", 2830 + "dev": true, 2831 + "license": "MIT", 2832 + "dependencies": { 2833 + "possible-typed-array-names": "^1.0.0" 2834 + }, 2835 + "engines": { 2836 + "node": ">= 0.4" 2837 + }, 2838 + "funding": { 2839 + "url": "https://github.com/sponsors/ljharb" 2840 + } 2841 + }, 2842 + "node_modules/avvio": { 2843 + "version": "8.4.0", 2844 + "license": "MIT", 2845 + "dependencies": { 2846 + "@fastify/error": "^3.3.0", 2847 + "fastq": "^1.17.1" 2848 + } 2849 + }, 2850 + "node_modules/await-lock": { 2851 + "version": "2.2.2", 2852 + "license": "MIT" 2853 + }, 2854 + "node_modules/axios": { 2855 + "version": "0.27.2", 2856 + "license": "MIT", 2857 + "dependencies": { 2858 + "follow-redirects": "^1.14.9", 2859 + "form-data": "^4.0.0" 2860 + } 2861 + }, 2862 + "node_modules/balanced-match": { 2863 + "version": "1.0.2", 2864 + "dev": true, 2865 + "license": "MIT" 2866 + }, 2867 + "node_modules/base64-js": { 2868 + "version": "1.5.1", 2869 + "funding": [ 2870 + { 2871 + "type": "github", 2872 + "url": "https://github.com/sponsors/feross" 2873 + }, 2874 + { 2875 + "type": "patreon", 2876 + "url": "https://www.patreon.com/feross" 2877 + }, 2878 + { 2879 + "type": "consulting", 2880 + "url": "https://feross.org/support" 2881 + } 2882 + ], 2883 + "license": "MIT" 2884 + }, 2885 + "node_modules/big-integer": { 2886 + "version": "1.6.52", 2887 + "license": "Unlicense", 2888 + "engines": { 2889 + "node": ">=0.6" 2890 + } 2891 + }, 2892 + "node_modules/bintrees": { 2893 + "version": "1.0.2", 2894 + "license": "MIT" 2895 + }, 2896 + "node_modules/bn.js": { 2897 + "version": "4.12.1", 2898 + "license": "MIT" 2899 + }, 2900 + "node_modules/body-parser": { 2901 + "version": "1.20.3", 2902 + "license": "MIT", 2903 + "dependencies": { 2904 + "bytes": "3.1.2", 2905 + "content-type": "~1.0.5", 2906 + "debug": "2.6.9", 2907 + "depd": "2.0.0", 2908 + "destroy": "1.2.0", 2909 + "http-errors": "2.0.0", 2910 + "iconv-lite": "0.4.24", 2911 + "on-finished": "2.4.1", 2912 + "qs": "6.13.0", 2913 + "raw-body": "2.5.2", 2914 + "type-is": "~1.6.18", 2915 + "unpipe": "1.0.0" 2916 + }, 2917 + "engines": { 2918 + "node": ">= 0.8", 2919 + "npm": "1.2.8000 || >= 1.4.16" 2920 + } 2921 + }, 2922 + "node_modules/body-parser/node_modules/debug": { 2923 + "version": "2.6.9", 2924 + "license": "MIT", 2925 + "dependencies": { 2926 + "ms": "2.0.0" 2927 + } 2928 + }, 2929 + "node_modules/body-parser/node_modules/debug/node_modules/ms": { 2930 + "version": "2.0.0", 2931 + "license": "MIT" 2932 + }, 2933 + "node_modules/bottleneck": { 2934 + "version": "2.19.5", 2935 + "license": "MIT" 2936 + }, 2937 + "node_modules/brace-expansion": { 2938 + "version": "1.1.11", 2939 + "dev": true, 2940 + "license": "MIT", 2941 + "dependencies": { 2942 + "balanced-match": "^1.0.0", 2943 + "concat-map": "0.0.1" 2944 + } 2945 + }, 2946 + "node_modules/braces": { 2947 + "version": "3.0.3", 2948 + "license": "MIT", 2949 + "dependencies": { 2950 + "fill-range": "^7.1.1" 2951 + }, 2952 + "engines": { 2953 + "node": ">=8" 2954 + } 2955 + }, 2956 + "node_modules/brorand": { 2957 + "version": "1.1.0", 2958 + "license": "MIT" 2959 + }, 2960 + "node_modules/buffer": { 2961 + "version": "6.0.3", 2962 + "funding": [ 2963 + { 2964 + "type": "github", 2965 + "url": "https://github.com/sponsors/feross" 2966 + }, 2967 + { 2968 + "type": "patreon", 2969 + "url": "https://www.patreon.com/feross" 2970 + }, 2971 + { 2972 + "type": "consulting", 2973 + "url": "https://feross.org/support" 2974 + } 2975 + ], 2976 + "license": "MIT", 2977 + "dependencies": { 2978 + "base64-js": "^1.3.1", 2979 + "ieee754": "^1.2.1" 2980 + } 2981 + }, 2982 + "node_modules/bytes": { 2983 + "version": "3.1.2", 2984 + "license": "MIT", 2985 + "engines": { 2986 + "node": ">= 0.8" 2987 + } 2988 + }, 2989 + "node_modules/call-bind": { 2990 + "version": "1.0.8", 2991 + "dev": true, 2992 + "license": "MIT", 2993 + "dependencies": { 2994 + "call-bind-apply-helpers": "^1.0.0", 2995 + "es-define-property": "^1.0.0", 2996 + "get-intrinsic": "^1.2.4", 2997 + "set-function-length": "^1.2.2" 2998 + }, 2999 + "engines": { 3000 + "node": ">= 0.4" 3001 + }, 3002 + "funding": { 3003 + "url": "https://github.com/sponsors/ljharb" 3004 + } 3005 + }, 3006 + "node_modules/call-bind-apply-helpers": { 3007 + "version": "1.0.1", 3008 + "license": "MIT", 3009 + "dependencies": { 3010 + "es-errors": "^1.3.0", 3011 + "function-bind": "^1.1.2" 3012 + }, 3013 + "engines": { 3014 + "node": ">= 0.4" 3015 + } 3016 + }, 3017 + "node_modules/call-bound": { 3018 + "version": "1.0.4", 3019 + "dev": true, 3020 + "license": "MIT", 3021 + "dependencies": { 3022 + "call-bind-apply-helpers": "^1.0.2", 3023 + "get-intrinsic": "^1.3.0" 3024 + }, 3025 + "engines": { 3026 + "node": ">= 0.4" 3027 + }, 3028 + "funding": { 3029 + "url": "https://github.com/sponsors/ljharb" 3030 + } 3031 + }, 3032 + "node_modules/call-bound/node_modules/call-bind-apply-helpers": { 3033 + "version": "1.0.2", 3034 + "dev": true, 3035 + "license": "MIT", 3036 + "dependencies": { 3037 + "es-errors": "^1.3.0", 3038 + "function-bind": "^1.1.2" 3039 + }, 3040 + "engines": { 3041 + "node": ">= 0.4" 3042 + } 3043 + }, 3044 + "node_modules/callsites": { 3045 + "version": "3.1.0", 3046 + "dev": true, 3047 + "license": "MIT", 3048 + "engines": { 3049 + "node": ">=6" 3050 + } 3051 + }, 3052 + "node_modules/cbor-extract": { 3053 + "version": "2.2.0", 3054 + "hasInstallScript": true, 3055 + "license": "MIT", 3056 + "optional": true, 3057 + "dependencies": { 3058 + "node-gyp-build-optional-packages": "5.1.1" 3059 + }, 3060 + "bin": { 3061 + "download-cbor-prebuilds": "bin/download-prebuilds.js" 3062 + }, 3063 + "optionalDependencies": { 3064 + "@cbor-extract/cbor-extract-darwin-arm64": "2.2.0", 3065 + "@cbor-extract/cbor-extract-darwin-x64": "2.2.0", 3066 + "@cbor-extract/cbor-extract-linux-arm": "2.2.0", 3067 + "@cbor-extract/cbor-extract-linux-arm64": "2.2.0", 3068 + "@cbor-extract/cbor-extract-linux-x64": "2.2.0", 3069 + "@cbor-extract/cbor-extract-win32-x64": "2.2.0" 3070 + } 3071 + }, 3072 + "node_modules/cbor-x": { 3073 + "version": "1.6.0", 3074 + "license": "MIT", 3075 + "optionalDependencies": { 3076 + "cbor-extract": "^2.2.0" 3077 + } 3078 + }, 3079 + "node_modules/cborg": { 3080 + "version": "1.10.2", 3081 + "license": "Apache-2.0", 3082 + "bin": { 3083 + "cborg": "cli.js" 3084 + } 3085 + }, 3086 + "node_modules/chalk": { 3087 + "version": "4.1.2", 3088 + "dev": true, 3089 + "license": "MIT", 3090 + "dependencies": { 3091 + "ansi-styles": "^4.1.0", 3092 + "supports-color": "^7.1.0" 3093 + }, 3094 + "engines": { 3095 + "node": ">=10" 3096 + }, 3097 + "funding": { 3098 + "url": "https://github.com/chalk/chalk?sponsor=1" 3099 + } 3100 + }, 3101 + "node_modules/cli-cursor": { 3102 + "version": "5.0.0", 3103 + "license": "MIT", 3104 + "dependencies": { 3105 + "restore-cursor": "^5.0.0" 3106 + }, 3107 + "engines": { 3108 + "node": ">=18" 3109 + }, 3110 + "funding": { 3111 + "url": "https://github.com/sponsors/sindresorhus" 3112 + } 3113 + }, 3114 + "node_modules/cli-truncate": { 3115 + "version": "4.0.0", 3116 + "license": "MIT", 3117 + "dependencies": { 3118 + "slice-ansi": "^5.0.0", 3119 + "string-width": "^7.0.0" 3120 + }, 3121 + "engines": { 3122 + "node": ">=18" 3123 + }, 3124 + "funding": { 3125 + "url": "https://github.com/sponsors/sindresorhus" 3126 + } 3127 + }, 3128 + "node_modules/cluster-key-slot": { 3129 + "version": "1.1.2", 3130 + "license": "Apache-2.0", 3131 + "engines": { 3132 + "node": ">=0.10.0" 3133 + } 3134 + }, 3135 + "node_modules/collapse-white-space": { 3136 + "version": "2.1.0", 3137 + "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz", 3138 + "integrity": "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==", 3139 + "license": "MIT", 3140 + "funding": { 3141 + "type": "github", 3142 + "url": "https://github.com/sponsors/wooorm" 3143 + } 3144 + }, 3145 + "node_modules/color": { 3146 + "version": "4.2.3", 3147 + "license": "MIT", 3148 + "dependencies": { 3149 + "color-convert": "^2.0.1", 3150 + "color-string": "^1.9.0" 3151 + }, 3152 + "engines": { 3153 + "node": ">=12.5.0" 3154 + } 3155 + }, 3156 + "node_modules/color-convert": { 3157 + "version": "2.0.1", 3158 + "license": "MIT", 3159 + "dependencies": { 3160 + "color-name": "~1.1.4" 3161 + }, 3162 + "engines": { 3163 + "node": ">=7.0.0" 3164 + } 3165 + }, 3166 + "node_modules/color-name": { 3167 + "version": "1.1.4", 3168 + "license": "MIT" 3169 + }, 3170 + "node_modules/color-string": { 3171 + "version": "1.9.1", 3172 + "license": "MIT", 3173 + "dependencies": { 3174 + "color-name": "^1.0.0", 3175 + "simple-swizzle": "^0.2.2" 3176 + } 3177 + }, 3178 + "node_modules/colorette": { 3179 + "version": "2.0.20", 3180 + "license": "MIT" 3181 + }, 3182 + "node_modules/combined-stream": { 3183 + "version": "1.0.8", 3184 + "license": "MIT", 3185 + "dependencies": { 3186 + "delayed-stream": "~1.0.0" 3187 + }, 3188 + "engines": { 3189 + "node": ">= 0.8" 3190 + } 3191 + }, 3192 + "node_modules/commander": { 3193 + "version": "13.1.0", 3194 + "license": "MIT", 3195 + "engines": { 3196 + "node": ">=18" 3197 + } 3198 + }, 3199 + "node_modules/compressible": { 3200 + "version": "2.0.18", 3201 + "license": "MIT", 3202 + "dependencies": { 3203 + "mime-db": ">= 1.43.0 < 2" 3204 + }, 3205 + "engines": { 3206 + "node": ">= 0.6" 3207 + } 3208 + }, 3209 + "node_modules/compression": { 3210 + "version": "1.7.5", 3211 + "license": "MIT", 3212 + "dependencies": { 3213 + "bytes": "3.1.2", 3214 + "compressible": "~2.0.18", 3215 + "debug": "2.6.9", 3216 + "negotiator": "~0.6.4", 3217 + "on-headers": "~1.0.2", 3218 + "safe-buffer": "5.2.1", 3219 + "vary": "~1.1.2" 3220 + }, 3221 + "engines": { 3222 + "node": ">= 0.8.0" 3223 + } 3224 + }, 3225 + "node_modules/compression/node_modules/debug": { 3226 + "version": "2.6.9", 3227 + "license": "MIT", 3228 + "dependencies": { 3229 + "ms": "2.0.0" 3230 + } 3231 + }, 3232 + "node_modules/compression/node_modules/debug/node_modules/ms": { 3233 + "version": "2.0.0", 3234 + "license": "MIT" 3235 + }, 3236 + "node_modules/concat-map": { 3237 + "version": "0.0.1", 3238 + "dev": true, 3239 + "license": "MIT" 3240 + }, 3241 + "node_modules/content-disposition": { 3242 + "version": "0.5.4", 3243 + "license": "MIT", 3244 + "dependencies": { 3245 + "safe-buffer": "5.2.1" 3246 + }, 3247 + "engines": { 3248 + "node": ">= 0.6" 3249 + } 3250 + }, 3251 + "node_modules/content-type": { 3252 + "version": "1.0.5", 3253 + "license": "MIT", 3254 + "engines": { 3255 + "node": ">= 0.6" 3256 + } 3257 + }, 3258 + "node_modules/cookie": { 3259 + "version": "0.7.1", 3260 + "license": "MIT", 3261 + "engines": { 3262 + "node": ">= 0.6" 3263 + } 3264 + }, 3265 + "node_modules/cookie-signature": { 3266 + "version": "1.0.6", 3267 + "license": "MIT" 3268 + }, 3269 + "node_modules/cors": { 3270 + "version": "2.8.5", 3271 + "license": "MIT", 3272 + "dependencies": { 3273 + "object-assign": "^4", 3274 + "vary": "^1" 3275 + }, 3276 + "engines": { 3277 + "node": ">= 0.10" 3278 + } 3279 + }, 3280 + "node_modules/cross-spawn": { 3281 + "version": "7.0.6", 3282 + "license": "MIT", 3283 + "dependencies": { 3284 + "path-key": "^3.1.0", 3285 + "shebang-command": "^2.0.0", 3286 + "which": "^2.0.1" 3287 + }, 3288 + "engines": { 3289 + "node": ">= 8" 3290 + } 3291 + }, 3292 + "node_modules/data-view-buffer": { 3293 + "version": "1.0.2", 3294 + "dev": true, 3295 + "license": "MIT", 3296 + "dependencies": { 3297 + "call-bound": "^1.0.3", 3298 + "es-errors": "^1.3.0", 3299 + "is-data-view": "^1.0.2" 3300 + }, 3301 + "engines": { 3302 + "node": ">= 0.4" 3303 + }, 3304 + "funding": { 3305 + "url": "https://github.com/sponsors/ljharb" 3306 + } 3307 + }, 3308 + "node_modules/data-view-byte-length": { 3309 + "version": "1.0.2", 3310 + "dev": true, 3311 + "license": "MIT", 3312 + "dependencies": { 3313 + "call-bound": "^1.0.3", 3314 + "es-errors": "^1.3.0", 3315 + "is-data-view": "^1.0.2" 3316 + }, 3317 + "engines": { 3318 + "node": ">= 0.4" 3319 + }, 3320 + "funding": { 3321 + "url": "https://github.com/sponsors/inspect-js" 3322 + } 3323 + }, 3324 + "node_modules/data-view-byte-offset": { 3325 + "version": "1.0.1", 3326 + "dev": true, 3327 + "license": "MIT", 3328 + "dependencies": { 3329 + "call-bound": "^1.0.2", 3330 + "es-errors": "^1.3.0", 3331 + "is-data-view": "^1.0.1" 3332 + }, 3333 + "engines": { 3334 + "node": ">= 0.4" 3335 + }, 3336 + "funding": { 3337 + "url": "https://github.com/sponsors/ljharb" 3338 + } 3339 + }, 3340 + "node_modules/dateformat": { 3341 + "version": "4.6.3", 3342 + "license": "MIT", 3343 + "engines": { 3344 + "node": "*" 3345 + } 3346 + }, 3347 + "node_modules/debug": { 3348 + "version": "4.4.0", 3349 + "license": "MIT", 3350 + "dependencies": { 3351 + "ms": "^2.1.3" 3352 + }, 3353 + "engines": { 3354 + "node": ">=6.0" 3355 + }, 3356 + "peerDependenciesMeta": { 3357 + "supports-color": { 3358 + "optional": true 3359 + } 3360 + } 3361 + }, 3362 + "node_modules/deep-is": { 3363 + "version": "0.1.4", 3364 + "dev": true, 3365 + "license": "MIT" 3366 + }, 3367 + "node_modules/define-data-property": { 3368 + "version": "1.1.4", 3369 + "dev": true, 3370 + "license": "MIT", 3371 + "dependencies": { 3372 + "es-define-property": "^1.0.0", 3373 + "es-errors": "^1.3.0", 3374 + "gopd": "^1.0.1" 3375 + }, 3376 + "engines": { 3377 + "node": ">= 0.4" 3378 + }, 3379 + "funding": { 3380 + "url": "https://github.com/sponsors/ljharb" 3381 + } 3382 + }, 3383 + "node_modules/define-properties": { 3384 + "version": "1.2.1", 3385 + "dev": true, 3386 + "license": "MIT", 3387 + "dependencies": { 3388 + "define-data-property": "^1.0.1", 3389 + "has-property-descriptors": "^1.0.0", 3390 + "object-keys": "^1.1.1" 3391 + }, 3392 + "engines": { 3393 + "node": ">= 0.4" 3394 + }, 3395 + "funding": { 3396 + "url": "https://github.com/sponsors/ljharb" 3397 + } 3398 + }, 3399 + "node_modules/delay": { 3400 + "version": "5.0.0", 3401 + "license": "MIT", 3402 + "engines": { 3403 + "node": ">=10" 3404 + }, 3405 + "funding": { 3406 + "url": "https://github.com/sponsors/sindresorhus" 3407 + } 3408 + }, 3409 + "node_modules/delayed-stream": { 3410 + "version": "1.0.0", 3411 + "license": "MIT", 3412 + "engines": { 3413 + "node": ">=0.4.0" 3414 + } 3415 + }, 3416 + "node_modules/denque": { 3417 + "version": "2.1.0", 3418 + "license": "Apache-2.0", 3419 + "engines": { 3420 + "node": ">=0.10" 3421 + } 3422 + }, 3423 + "node_modules/depd": { 3424 + "version": "2.0.0", 3425 + "license": "MIT", 3426 + "engines": { 3427 + "node": ">= 0.8" 3428 + } 3429 + }, 3430 + "node_modules/destroy": { 3431 + "version": "1.2.0", 3432 + "license": "MIT", 3433 + "engines": { 3434 + "node": ">= 0.8", 3435 + "npm": "1.2.8000 || >= 1.4.16" 3436 + } 3437 + }, 3438 + "node_modules/detect-libc": { 3439 + "version": "2.0.3", 3440 + "license": "Apache-2.0", 3441 + "engines": { 3442 + "node": ">=8" 3443 + } 3444 + }, 3445 + "node_modules/dir-glob": { 3446 + "version": "3.0.1", 3447 + "dev": true, 3448 + "license": "MIT", 3449 + "dependencies": { 3450 + "path-type": "^4.0.0" 3451 + }, 3452 + "engines": { 3453 + "node": ">=8" 3454 + } 3455 + }, 3456 + "node_modules/doctrine": { 3457 + "version": "2.1.0", 3458 + "dev": true, 3459 + "license": "Apache-2.0", 3460 + "dependencies": { 3461 + "esutils": "^2.0.2" 3462 + }, 3463 + "engines": { 3464 + "node": ">=0.10.0" 3465 + } 3466 + }, 3467 + "node_modules/dotenv": { 3468 + "version": "16.5.0", 3469 + "license": "BSD-2-Clause", 3470 + "engines": { 3471 + "node": ">=12" 3472 + }, 3473 + "funding": { 3474 + "url": "https://dotenvx.com" 3475 + } 3476 + }, 3477 + "node_modules/dunder-proto": { 3478 + "version": "1.0.1", 3479 + "license": "MIT", 3480 + "dependencies": { 3481 + "call-bind-apply-helpers": "^1.0.1", 3482 + "es-errors": "^1.3.0", 3483 + "gopd": "^1.2.0" 3484 + }, 3485 + "engines": { 3486 + "node": ">= 0.4" 3487 + } 3488 + }, 3489 + "node_modules/duplexify": { 3490 + "version": "4.1.3", 3491 + "license": "MIT", 3492 + "dependencies": { 3493 + "end-of-stream": "^1.4.1", 3494 + "inherits": "^2.0.3", 3495 + "readable-stream": "^3.1.1", 3496 + "stream-shift": "^1.0.2" 3497 + } 3498 + }, 3499 + "node_modules/duplexify/node_modules/readable-stream": { 3500 + "version": "3.6.2", 3501 + "license": "MIT", 3502 + "dependencies": { 3503 + "inherits": "^2.0.3", 3504 + "string_decoder": "^1.1.1", 3505 + "util-deprecate": "^1.0.1" 3506 + }, 3507 + "engines": { 3508 + "node": ">= 6" 3509 + } 3510 + }, 3511 + "node_modules/ee-first": { 3512 + "version": "1.1.1", 3513 + "license": "MIT" 3514 + }, 3515 + "node_modules/elliptic": { 3516 + "version": "6.6.1", 3517 + "license": "MIT", 3518 + "dependencies": { 3519 + "bn.js": "^4.11.9", 3520 + "brorand": "^1.1.0", 3521 + "hash.js": "^1.0.0", 3522 + "hmac-drbg": "^1.0.1", 3523 + "inherits": "^2.0.4", 3524 + "minimalistic-assert": "^1.0.1", 3525 + "minimalistic-crypto-utils": "^1.0.1" 3526 + } 3527 + }, 3528 + "node_modules/emoji-regex": { 3529 + "version": "10.4.0", 3530 + "license": "MIT" 3531 + }, 3532 + "node_modules/encodeurl": { 3533 + "version": "2.0.0", 3534 + "license": "MIT", 3535 + "engines": { 3536 + "node": ">= 0.8" 3537 + } 3538 + }, 3539 + "node_modules/end-of-stream": { 3540 + "version": "1.4.4", 3541 + "license": "MIT", 3542 + "dependencies": { 3543 + "once": "^1.4.0" 3544 + } 3545 + }, 3546 + "node_modules/environment": { 3547 + "version": "1.1.0", 3548 + "license": "MIT", 3549 + "engines": { 3550 + "node": ">=18" 3551 + }, 3552 + "funding": { 3553 + "url": "https://github.com/sponsors/sindresorhus" 3554 + } 3555 + }, 3556 + "node_modules/es-abstract": { 3557 + "version": "1.24.0", 3558 + "dev": true, 3559 + "license": "MIT", 3560 + "dependencies": { 3561 + "array-buffer-byte-length": "^1.0.2", 3562 + "arraybuffer.prototype.slice": "^1.0.4", 3563 + "available-typed-arrays": "^1.0.7", 3564 + "call-bind": "^1.0.8", 3565 + "call-bound": "^1.0.4", 3566 + "data-view-buffer": "^1.0.2", 3567 + "data-view-byte-length": "^1.0.2", 3568 + "data-view-byte-offset": "^1.0.1", 3569 + "es-define-property": "^1.0.1", 3570 + "es-errors": "^1.3.0", 3571 + "es-object-atoms": "^1.1.1", 3572 + "es-set-tostringtag": "^2.1.0", 3573 + "es-to-primitive": "^1.3.0", 3574 + "function.prototype.name": "^1.1.8", 3575 + "get-intrinsic": "^1.3.0", 3576 + "get-proto": "^1.0.1", 3577 + "get-symbol-description": "^1.1.0", 3578 + "globalthis": "^1.0.4", 3579 + "gopd": "^1.2.0", 3580 + "has-property-descriptors": "^1.0.2", 3581 + "has-proto": "^1.2.0", 3582 + "has-symbols": "^1.1.0", 3583 + "hasown": "^2.0.2", 3584 + "internal-slot": "^1.1.0", 3585 + "is-array-buffer": "^3.0.5", 3586 + "is-callable": "^1.2.7", 3587 + "is-data-view": "^1.0.2", 3588 + "is-negative-zero": "^2.0.3", 3589 + "is-regex": "^1.2.1", 3590 + "is-set": "^2.0.3", 3591 + "is-shared-array-buffer": "^1.0.4", 3592 + "is-string": "^1.1.1", 3593 + "is-typed-array": "^1.1.15", 3594 + "is-weakref": "^1.1.1", 3595 + "math-intrinsics": "^1.1.0", 3596 + "object-inspect": "^1.13.4", 3597 + "object-keys": "^1.1.1", 3598 + "object.assign": "^4.1.7", 3599 + "own-keys": "^1.0.1", 3600 + "regexp.prototype.flags": "^1.5.4", 3601 + "safe-array-concat": "^1.1.3", 3602 + "safe-push-apply": "^1.0.0", 3603 + "safe-regex-test": "^1.1.0", 3604 + "set-proto": "^1.0.0", 3605 + "stop-iteration-iterator": "^1.1.0", 3606 + "string.prototype.trim": "^1.2.10", 3607 + "string.prototype.trimend": "^1.0.9", 3608 + "string.prototype.trimstart": "^1.0.8", 3609 + "typed-array-buffer": "^1.0.3", 3610 + "typed-array-byte-length": "^1.0.3", 3611 + "typed-array-byte-offset": "^1.0.4", 3612 + "typed-array-length": "^1.0.7", 3613 + "unbox-primitive": "^1.1.0", 3614 + "which-typed-array": "^1.1.19" 3615 + }, 3616 + "engines": { 3617 + "node": ">= 0.4" 3618 + }, 3619 + "funding": { 3620 + "url": "https://github.com/sponsors/ljharb" 3621 + } 3622 + }, 3623 + "node_modules/es-define-property": { 3624 + "version": "1.0.1", 3625 + "license": "MIT", 3626 + "engines": { 3627 + "node": ">= 0.4" 3628 + } 3629 + }, 3630 + "node_modules/es-errors": { 3631 + "version": "1.3.0", 3632 + "license": "MIT", 3633 + "engines": { 3634 + "node": ">= 0.4" 3635 + } 3636 + }, 3637 + "node_modules/es-object-atoms": { 3638 + "version": "1.1.1", 3639 + "dev": true, 3640 + "license": "MIT", 3641 + "dependencies": { 3642 + "es-errors": "^1.3.0" 3643 + }, 3644 + "engines": { 3645 + "node": ">= 0.4" 3646 + } 3647 + }, 3648 + "node_modules/es-set-tostringtag": { 3649 + "version": "2.1.0", 3650 + "dev": true, 3651 + "license": "MIT", 3652 + "dependencies": { 3653 + "es-errors": "^1.3.0", 3654 + "get-intrinsic": "^1.2.6", 3655 + "has-tostringtag": "^1.0.2", 3656 + "hasown": "^2.0.2" 3657 + }, 3658 + "engines": { 3659 + "node": ">= 0.4" 3660 + } 3661 + }, 3662 + "node_modules/es-shim-unscopables": { 3663 + "version": "1.1.0", 3664 + "dev": true, 3665 + "license": "MIT", 3666 + "dependencies": { 3667 + "hasown": "^2.0.2" 3668 + }, 3669 + "engines": { 3670 + "node": ">= 0.4" 3671 + } 3672 + }, 3673 + "node_modules/es-to-primitive": { 3674 + "version": "1.3.0", 3675 + "dev": true, 3676 + "license": "MIT", 3677 + "dependencies": { 3678 + "is-callable": "^1.2.7", 3679 + "is-date-object": "^1.0.5", 3680 + "is-symbol": "^1.0.4" 3681 + }, 3682 + "engines": { 3683 + "node": ">= 0.4" 3684 + }, 3685 + "funding": { 3686 + "url": "https://github.com/sponsors/ljharb" 3687 + } 3688 + }, 3689 + "node_modules/esbuild": { 3690 + "version": "0.25.5", 3691 + "dev": true, 3692 + "hasInstallScript": true, 3693 + "license": "MIT", 3694 + "bin": { 3695 + "esbuild": "bin/esbuild" 3696 + }, 3697 + "engines": { 3698 + "node": ">=18" 3699 + }, 3700 + "optionalDependencies": { 3701 + "@esbuild/aix-ppc64": "0.25.5", 3702 + "@esbuild/android-arm": "0.25.5", 3703 + "@esbuild/android-arm64": "0.25.5", 3704 + "@esbuild/android-x64": "0.25.5", 3705 + "@esbuild/darwin-arm64": "0.25.5", 3706 + "@esbuild/darwin-x64": "0.25.5", 3707 + "@esbuild/freebsd-arm64": "0.25.5", 3708 + "@esbuild/freebsd-x64": "0.25.5", 3709 + "@esbuild/linux-arm": "0.25.5", 3710 + "@esbuild/linux-arm64": "0.25.5", 3711 + "@esbuild/linux-ia32": "0.25.5", 3712 + "@esbuild/linux-loong64": "0.25.5", 3713 + "@esbuild/linux-mips64el": "0.25.5", 3714 + "@esbuild/linux-ppc64": "0.25.5", 3715 + "@esbuild/linux-riscv64": "0.25.5", 3716 + "@esbuild/linux-s390x": "0.25.5", 3717 + "@esbuild/linux-x64": "0.25.5", 3718 + "@esbuild/netbsd-arm64": "0.25.5", 3719 + "@esbuild/netbsd-x64": "0.25.5", 3720 + "@esbuild/openbsd-arm64": "0.25.5", 3721 + "@esbuild/openbsd-x64": "0.25.5", 3722 + "@esbuild/sunos-x64": "0.25.5", 3723 + "@esbuild/win32-arm64": "0.25.5", 3724 + "@esbuild/win32-ia32": "0.25.5", 3725 + "@esbuild/win32-x64": "0.25.5" 3726 + } 3727 + }, 3728 + "node_modules/escape-html": { 3729 + "version": "1.0.3", 3730 + "license": "MIT" 3731 + }, 3732 + "node_modules/escape-string-regexp": { 3733 + "version": "4.0.0", 3734 + "dev": true, 3735 + "license": "MIT", 3736 + "engines": { 3737 + "node": ">=10" 3738 + }, 3739 + "funding": { 3740 + "url": "https://github.com/sponsors/sindresorhus" 3741 + } 3742 + }, 3743 + "node_modules/eslint": { 3744 + "version": "9.29.0", 3745 + "dev": true, 3746 + "license": "MIT", 3747 + "dependencies": { 3748 + "@eslint-community/eslint-utils": "^4.2.0", 3749 + "@eslint-community/regexpp": "^4.12.1", 3750 + "@eslint/config-array": "^0.20.1", 3751 + "@eslint/config-helpers": "^0.2.1", 3752 + "@eslint/core": "^0.14.0", 3753 + "@eslint/eslintrc": "^3.3.1", 3754 + "@eslint/js": "9.29.0", 3755 + "@eslint/plugin-kit": "^0.3.1", 3756 + "@humanfs/node": "^0.16.6", 3757 + "@humanwhocodes/module-importer": "^1.0.1", 3758 + "@humanwhocodes/retry": "^0.4.2", 3759 + "@types/estree": "^1.0.6", 3760 + "@types/json-schema": "^7.0.15", 3761 + "ajv": "^6.12.4", 3762 + "chalk": "^4.0.0", 3763 + "cross-spawn": "^7.0.6", 3764 + "debug": "^4.3.2", 3765 + "escape-string-regexp": "^4.0.0", 3766 + "eslint-scope": "^8.4.0", 3767 + "eslint-visitor-keys": "^4.2.1", 3768 + "espree": "^10.4.0", 3769 + "esquery": "^1.5.0", 3770 + "esutils": "^2.0.2", 3771 + "fast-deep-equal": "^3.1.3", 3772 + "file-entry-cache": "^8.0.0", 3773 + "find-up": "^5.0.0", 3774 + "glob-parent": "^6.0.2", 3775 + "ignore": "^5.2.0", 3776 + "imurmurhash": "^0.1.4", 3777 + "is-glob": "^4.0.0", 3778 + "json-stable-stringify-without-jsonify": "^1.0.1", 3779 + "lodash.merge": "^4.6.2", 3780 + "minimatch": "^3.1.2", 3781 + "natural-compare": "^1.4.0", 3782 + "optionator": "^0.9.3" 3783 + }, 3784 + "bin": { 3785 + "eslint": "bin/eslint.js" 3786 + }, 3787 + "engines": { 3788 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 3789 + }, 3790 + "funding": { 3791 + "url": "https://eslint.org/donate" 3792 + }, 3793 + "peerDependencies": { 3794 + "jiti": "*" 3795 + }, 3796 + "peerDependenciesMeta": { 3797 + "jiti": { 3798 + "optional": true 3799 + } 3800 + } 3801 + }, 3802 + "node_modules/eslint-config-prettier": { 3803 + "version": "10.1.8", 3804 + "dev": true, 3805 + "license": "MIT", 3806 + "bin": { 3807 + "eslint-config-prettier": "bin/cli.js" 3808 + }, 3809 + "funding": { 3810 + "url": "https://opencollective.com/eslint-config-prettier" 3811 + }, 3812 + "peerDependencies": { 3813 + "eslint": ">=7.0.0" 3814 + } 3815 + }, 3816 + "node_modules/eslint-import-resolver-node": { 3817 + "version": "0.3.9", 3818 + "dev": true, 3819 + "license": "MIT", 3820 + "dependencies": { 3821 + "debug": "^3.2.7", 3822 + "is-core-module": "^2.13.0", 3823 + "resolve": "^1.22.4" 3824 + } 3825 + }, 3826 + "node_modules/eslint-import-resolver-node/node_modules/debug": { 3827 + "version": "3.2.7", 3828 + "dev": true, 3829 + "license": "MIT", 3830 + "dependencies": { 3831 + "ms": "^2.1.1" 3832 + } 3833 + }, 3834 + "node_modules/eslint-module-utils": { 3835 + "version": "2.12.1", 3836 + "dev": true, 3837 + "license": "MIT", 3838 + "dependencies": { 3839 + "debug": "^3.2.7" 3840 + }, 3841 + "engines": { 3842 + "node": ">=4" 3843 + }, 3844 + "peerDependenciesMeta": { 3845 + "eslint": { 3846 + "optional": true 3847 + } 3848 + } 3849 + }, 3850 + "node_modules/eslint-module-utils/node_modules/debug": { 3851 + "version": "3.2.7", 3852 + "dev": true, 3853 + "license": "MIT", 3854 + "dependencies": { 3855 + "ms": "^2.1.1" 3856 + } 3857 + }, 3858 + "node_modules/eslint-plugin-import": { 3859 + "version": "2.32.0", 3860 + "dev": true, 3861 + "license": "MIT", 3862 + "dependencies": { 3863 + "@rtsao/scc": "^1.1.0", 3864 + "array-includes": "^3.1.9", 3865 + "array.prototype.findlastindex": "^1.2.6", 3866 + "array.prototype.flat": "^1.3.3", 3867 + "array.prototype.flatmap": "^1.3.3", 3868 + "debug": "^3.2.7", 3869 + "doctrine": "^2.1.0", 3870 + "eslint-import-resolver-node": "^0.3.9", 3871 + "eslint-module-utils": "^2.12.1", 3872 + "hasown": "^2.0.2", 3873 + "is-core-module": "^2.16.1", 3874 + "is-glob": "^4.0.3", 3875 + "minimatch": "^3.1.2", 3876 + "object.fromentries": "^2.0.8", 3877 + "object.groupby": "^1.0.3", 3878 + "object.values": "^1.2.1", 3879 + "semver": "^6.3.1", 3880 + "string.prototype.trimend": "^1.0.9", 3881 + "tsconfig-paths": "^3.15.0" 3882 + }, 3883 + "engines": { 3884 + "node": ">=4" 3885 + }, 3886 + "peerDependencies": { 3887 + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" 3888 + } 3889 + }, 3890 + "node_modules/eslint-plugin-import/node_modules/debug": { 3891 + "version": "3.2.7", 3892 + "dev": true, 3893 + "license": "MIT", 3894 + "dependencies": { 3895 + "ms": "^2.1.1" 3896 + } 3897 + }, 3898 + "node_modules/eslint-plugin-import/node_modules/semver": { 3899 + "version": "6.3.1", 3900 + "dev": true, 3901 + "license": "ISC", 3902 + "bin": { 3903 + "semver": "bin/semver.js" 3904 + } 3905 + }, 3906 + "node_modules/eslint-plugin-prettier": { 3907 + "version": "5.5.4", 3908 + "dev": true, 3909 + "license": "MIT", 3910 + "dependencies": { 3911 + "prettier-linter-helpers": "^1.0.0", 3912 + "synckit": "^0.11.7" 3913 + }, 3914 + "engines": { 3915 + "node": "^14.18.0 || >=16.0.0" 3916 + }, 3917 + "funding": { 3918 + "url": "https://opencollective.com/eslint-plugin-prettier" 3919 + }, 3920 + "peerDependencies": { 3921 + "@types/eslint": ">=8.0.0", 3922 + "eslint": ">=8.0.0", 3923 + "eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0", 3924 + "prettier": ">=3.0.0" 3925 + }, 3926 + "peerDependenciesMeta": { 3927 + "@types/eslint": { 3928 + "optional": true 3929 + }, 3930 + "eslint-config-prettier": { 3931 + "optional": true 3932 + } 3933 + } 3934 + }, 3935 + "node_modules/eslint-scope": { 3936 + "version": "8.4.0", 3937 + "dev": true, 3938 + "license": "BSD-2-Clause", 3939 + "dependencies": { 3940 + "esrecurse": "^4.3.0", 3941 + "estraverse": "^5.2.0" 3942 + }, 3943 + "engines": { 3944 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 3945 + }, 3946 + "funding": { 3947 + "url": "https://opencollective.com/eslint" 3948 + } 3949 + }, 3950 + "node_modules/eslint-visitor-keys": { 3951 + "version": "4.2.1", 3952 + "dev": true, 3953 + "license": "Apache-2.0", 3954 + "engines": { 3955 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 3956 + }, 3957 + "funding": { 3958 + "url": "https://opencollective.com/eslint" 3959 + } 3960 + }, 3961 + "node_modules/eslint/node_modules/@eslint-community/eslint-utils": { 3962 + "version": "4.4.1", 3963 + "dev": true, 3964 + "license": "MIT", 3965 + "dependencies": { 3966 + "eslint-visitor-keys": "^3.4.3" 3967 + }, 3968 + "engines": { 3969 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 3970 + }, 3971 + "funding": { 3972 + "url": "https://opencollective.com/eslint" 3973 + }, 3974 + "peerDependencies": { 3975 + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" 3976 + } 3977 + }, 3978 + "node_modules/eslint/node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { 3979 + "version": "3.4.3", 3980 + "dev": true, 3981 + "license": "Apache-2.0", 3982 + "engines": { 3983 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 3984 + }, 3985 + "funding": { 3986 + "url": "https://opencollective.com/eslint" 3987 + } 3988 + }, 3989 + "node_modules/espree": { 3990 + "version": "10.4.0", 3991 + "dev": true, 3992 + "license": "BSD-2-Clause", 3993 + "dependencies": { 3994 + "acorn": "^8.15.0", 3995 + "acorn-jsx": "^5.3.2", 3996 + "eslint-visitor-keys": "^4.2.1" 3997 + }, 3998 + "engines": { 3999 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 4000 + }, 4001 + "funding": { 4002 + "url": "https://opencollective.com/eslint" 4003 + } 4004 + }, 4005 + "node_modules/esquery": { 4006 + "version": "1.6.0", 4007 + "dev": true, 4008 + "license": "BSD-3-Clause", 4009 + "dependencies": { 4010 + "estraverse": "^5.1.0" 4011 + }, 4012 + "engines": { 4013 + "node": ">=0.10" 4014 + } 4015 + }, 4016 + "node_modules/esrecurse": { 4017 + "version": "4.3.0", 4018 + "dev": true, 4019 + "license": "BSD-2-Clause", 4020 + "dependencies": { 4021 + "estraverse": "^5.2.0" 4022 + }, 4023 + "engines": { 4024 + "node": ">=4.0" 4025 + } 4026 + }, 4027 + "node_modules/estraverse": { 4028 + "version": "5.3.0", 4029 + "dev": true, 4030 + "license": "BSD-2-Clause", 4031 + "engines": { 4032 + "node": ">=4.0" 4033 + } 4034 + }, 4035 + "node_modules/esutils": { 4036 + "version": "2.0.3", 4037 + "dev": true, 4038 + "license": "BSD-2-Clause", 4039 + "engines": { 4040 + "node": ">=0.10.0" 4041 + } 4042 + }, 4043 + "node_modules/etag": { 4044 + "version": "1.8.1", 4045 + "license": "MIT", 4046 + "engines": { 4047 + "node": ">= 0.6" 4048 + } 4049 + }, 4050 + "node_modules/event-target-shim": { 4051 + "version": "6.0.2", 4052 + "license": "MIT", 4053 + "engines": { 4054 + "node": ">=10.13.0" 4055 + }, 4056 + "funding": { 4057 + "url": "https://github.com/sponsors/mysticatea" 4058 + } 4059 + }, 4060 + "node_modules/eventemitter3": { 4061 + "version": "4.0.7", 4062 + "license": "MIT" 4063 + }, 4064 + "node_modules/events": { 4065 + "version": "3.3.0", 4066 + "license": "MIT", 4067 + "engines": { 4068 + "node": ">=0.8.x" 4069 + } 4070 + }, 4071 + "node_modules/execa": { 4072 + "version": "8.0.1", 4073 + "license": "MIT", 4074 + "dependencies": { 4075 + "cross-spawn": "^7.0.3", 4076 + "get-stream": "^8.0.1", 4077 + "human-signals": "^5.0.0", 4078 + "is-stream": "^3.0.0", 4079 + "merge-stream": "^2.0.0", 4080 + "npm-run-path": "^5.1.0", 4081 + "onetime": "^6.0.0", 4082 + "signal-exit": "^4.1.0", 4083 + "strip-final-newline": "^3.0.0" 4084 + }, 4085 + "engines": { 4086 + "node": ">=16.17" 4087 + }, 4088 + "funding": { 4089 + "url": "https://github.com/sindresorhus/execa?sponsor=1" 4090 + } 4091 + }, 4092 + "node_modules/express": { 4093 + "version": "4.21.2", 4094 + "license": "MIT", 4095 + "dependencies": { 4096 + "accepts": "~1.3.8", 4097 + "array-flatten": "1.1.1", 4098 + "body-parser": "1.20.3", 4099 + "content-disposition": "0.5.4", 4100 + "content-type": "~1.0.4", 4101 + "cookie": "0.7.1", 4102 + "cookie-signature": "1.0.6", 4103 + "debug": "2.6.9", 4104 + "depd": "2.0.0", 4105 + "encodeurl": "~2.0.0", 4106 + "escape-html": "~1.0.3", 4107 + "etag": "~1.8.1", 4108 + "finalhandler": "1.3.1", 4109 + "fresh": "0.5.2", 4110 + "http-errors": "2.0.0", 4111 + "merge-descriptors": "1.0.3", 4112 + "methods": "~1.1.2", 4113 + "on-finished": "2.4.1", 4114 + "parseurl": "~1.3.3", 4115 + "path-to-regexp": "0.1.12", 4116 + "proxy-addr": "~2.0.7", 4117 + "qs": "6.13.0", 4118 + "range-parser": "~1.2.1", 4119 + "safe-buffer": "5.2.1", 4120 + "send": "0.19.0", 4121 + "serve-static": "1.16.2", 4122 + "setprototypeof": "1.2.0", 4123 + "statuses": "2.0.1", 4124 + "type-is": "~1.6.18", 4125 + "utils-merge": "1.0.1", 4126 + "vary": "~1.1.2" 4127 + }, 4128 + "engines": { 4129 + "node": ">= 0.10.0" 4130 + }, 4131 + "funding": { 4132 + "type": "opencollective", 4133 + "url": "https://opencollective.com/express" 4134 + } 4135 + }, 4136 + "node_modules/express/node_modules/debug": { 4137 + "version": "2.6.9", 4138 + "license": "MIT", 4139 + "dependencies": { 4140 + "ms": "2.0.0" 4141 + } 4142 + }, 4143 + "node_modules/express/node_modules/debug/node_modules/ms": { 4144 + "version": "2.0.0", 4145 + "license": "MIT" 4146 + }, 4147 + "node_modules/fast-content-type-parse": { 4148 + "version": "1.1.0", 4149 + "license": "MIT" 4150 + }, 4151 + "node_modules/fast-copy": { 4152 + "version": "3.0.2", 4153 + "license": "MIT" 4154 + }, 4155 + "node_modules/fast-decode-uri-component": { 4156 + "version": "1.0.1", 4157 + "license": "MIT" 4158 + }, 4159 + "node_modules/fast-deep-equal": { 4160 + "version": "3.1.3", 4161 + "license": "MIT" 4162 + }, 4163 + "node_modules/fast-diff": { 4164 + "version": "1.3.0", 4165 + "dev": true, 4166 + "license": "Apache-2.0" 4167 + }, 4168 + "node_modules/fast-glob": { 4169 + "version": "3.3.2", 4170 + "dev": true, 4171 + "license": "MIT", 4172 + "dependencies": { 4173 + "@nodelib/fs.stat": "^2.0.2", 4174 + "@nodelib/fs.walk": "^1.2.3", 4175 + "glob-parent": "^5.1.2", 4176 + "merge2": "^1.3.0", 4177 + "micromatch": "^4.0.4" 4178 + }, 4179 + "engines": { 4180 + "node": ">=8.6.0" 4181 + } 4182 + }, 4183 + "node_modules/fast-glob/node_modules/glob-parent": { 4184 + "version": "5.1.2", 4185 + "dev": true, 4186 + "license": "ISC", 4187 + "dependencies": { 4188 + "is-glob": "^4.0.1" 4189 + }, 4190 + "engines": { 4191 + "node": ">= 6" 4192 + } 4193 + }, 4194 + "node_modules/fast-json-stable-stringify": { 4195 + "version": "2.1.0", 4196 + "dev": true, 4197 + "license": "MIT" 4198 + }, 4199 + "node_modules/fast-json-stringify": { 4200 + "version": "5.16.1", 4201 + "license": "MIT", 4202 + "dependencies": { 4203 + "@fastify/merge-json-schemas": "^0.1.0", 4204 + "ajv": "^8.10.0", 4205 + "ajv-formats": "^3.0.1", 4206 + "fast-deep-equal": "^3.1.3", 4207 + "fast-uri": "^2.1.0", 4208 + "json-schema-ref-resolver": "^1.0.1", 4209 + "rfdc": "^1.2.0" 4210 + } 4211 + }, 4212 + "node_modules/fast-json-stringify/node_modules/ajv": { 4213 + "version": "8.17.1", 4214 + "license": "MIT", 4215 + "dependencies": { 4216 + "fast-deep-equal": "^3.1.3", 4217 + "fast-uri": "^3.0.1", 4218 + "json-schema-traverse": "^1.0.0", 4219 + "require-from-string": "^2.0.2" 4220 + }, 4221 + "funding": { 4222 + "type": "github", 4223 + "url": "https://github.com/sponsors/epoberezkin" 4224 + } 4225 + }, 4226 + "node_modules/fast-json-stringify/node_modules/ajv-formats": { 4227 + "version": "3.0.1", 4228 + "license": "MIT", 4229 + "dependencies": { 4230 + "ajv": "^8.0.0" 4231 + }, 4232 + "peerDependencies": { 4233 + "ajv": "^8.0.0" 4234 + }, 4235 + "peerDependenciesMeta": { 4236 + "ajv": { 4237 + "optional": true 4238 + } 4239 + } 4240 + }, 4241 + "node_modules/fast-json-stringify/node_modules/ajv/node_modules/fast-uri": { 4242 + "version": "3.0.3", 4243 + "license": "BSD-3-Clause" 4244 + }, 4245 + "node_modules/fast-json-stringify/node_modules/ajv/node_modules/json-schema-traverse": { 4246 + "version": "1.0.0", 4247 + "license": "MIT" 4248 + }, 4249 + "node_modules/fast-levenshtein": { 4250 + "version": "2.0.6", 4251 + "dev": true, 4252 + "license": "MIT" 4253 + }, 4254 + "node_modules/fast-printf": { 4255 + "version": "1.6.10", 4256 + "license": "BSD-3-Clause", 4257 + "engines": { 4258 + "node": ">=10.0" 4259 + } 4260 + }, 4261 + "node_modules/fast-querystring": { 4262 + "version": "1.1.2", 4263 + "license": "MIT", 4264 + "dependencies": { 4265 + "fast-decode-uri-component": "^1.0.1" 4266 + } 4267 + }, 4268 + "node_modules/fast-redact": { 4269 + "version": "3.5.0", 4270 + "license": "MIT", 4271 + "engines": { 4272 + "node": ">=6" 4273 + } 4274 + }, 4275 + "node_modules/fast-safe-stringify": { 4276 + "version": "2.1.1", 4277 + "license": "MIT" 4278 + }, 4279 + "node_modules/fast-uri": { 4280 + "version": "2.4.0", 4281 + "license": "MIT" 4282 + }, 4283 + "node_modules/fastify": { 4284 + "version": "4.29.0", 4285 + "funding": [ 4286 + { 4287 + "type": "github", 4288 + "url": "https://github.com/sponsors/fastify" 4289 + }, 4290 + { 4291 + "type": "opencollective", 4292 + "url": "https://opencollective.com/fastify" 4293 + } 4294 + ], 4295 + "license": "MIT", 4296 + "dependencies": { 4297 + "@fastify/ajv-compiler": "^3.5.0", 4298 + "@fastify/error": "^3.4.0", 4299 + "@fastify/fast-json-stringify-compiler": "^4.3.0", 4300 + "abstract-logging": "^2.0.1", 4301 + "avvio": "^8.3.0", 4302 + "fast-content-type-parse": "^1.1.0", 4303 + "fast-json-stringify": "^5.8.0", 4304 + "find-my-way": "^8.0.0", 4305 + "light-my-request": "^5.11.0", 4306 + "pino": "^9.0.0", 4307 + "process-warning": "^3.0.0", 4308 + "proxy-addr": "^2.0.7", 4309 + "rfdc": "^1.3.0", 4310 + "secure-json-parse": "^2.7.0", 4311 + "semver": "^7.5.4", 4312 + "toad-cache": "^3.3.0" 4313 + } 4314 + }, 4315 + "node_modules/fastify-plugin": { 4316 + "version": "4.5.1", 4317 + "license": "MIT" 4318 + }, 4319 + "node_modules/fastify/node_modules/process-warning": { 4320 + "version": "3.0.0", 4321 + "license": "MIT" 4322 + }, 4323 + "node_modules/fastq": { 4324 + "version": "1.18.0", 4325 + "license": "ISC", 4326 + "dependencies": { 4327 + "reusify": "^1.0.4" 4328 + } 4329 + }, 4330 + "node_modules/file-entry-cache": { 4331 + "version": "8.0.0", 4332 + "dev": true, 4333 + "license": "MIT", 4334 + "dependencies": { 4335 + "flat-cache": "^4.0.0" 4336 + }, 4337 + "engines": { 4338 + "node": ">=16.0.0" 4339 + } 4340 + }, 4341 + "node_modules/fill-range": { 4342 + "version": "7.1.1", 4343 + "license": "MIT", 4344 + "dependencies": { 4345 + "to-regex-range": "^5.0.1" 4346 + }, 4347 + "engines": { 4348 + "node": ">=8" 4349 + } 4350 + }, 4351 + "node_modules/finalhandler": { 4352 + "version": "1.3.1", 4353 + "license": "MIT", 4354 + "dependencies": { 4355 + "debug": "2.6.9", 4356 + "encodeurl": "~2.0.0", 4357 + "escape-html": "~1.0.3", 4358 + "on-finished": "2.4.1", 4359 + "parseurl": "~1.3.3", 4360 + "statuses": "2.0.1", 4361 + "unpipe": "~1.0.0" 4362 + }, 4363 + "engines": { 4364 + "node": ">= 0.8" 4365 + } 4366 + }, 4367 + "node_modules/finalhandler/node_modules/debug": { 4368 + "version": "2.6.9", 4369 + "license": "MIT", 4370 + "dependencies": { 4371 + "ms": "2.0.0" 4372 + } 4373 + }, 4374 + "node_modules/finalhandler/node_modules/debug/node_modules/ms": { 4375 + "version": "2.0.0", 4376 + "license": "MIT" 4377 + }, 4378 + "node_modules/find-my-way": { 4379 + "version": "8.2.2", 4380 + "license": "MIT", 4381 + "dependencies": { 4382 + "fast-deep-equal": "^3.1.3", 4383 + "fast-querystring": "^1.0.0", 4384 + "safe-regex2": "^3.1.0" 4385 + }, 4386 + "engines": { 4387 + "node": ">=14" 4388 + } 4389 + }, 4390 + "node_modules/find-up": { 4391 + "version": "5.0.0", 4392 + "dev": true, 4393 + "license": "MIT", 4394 + "dependencies": { 4395 + "locate-path": "^6.0.0", 4396 + "path-exists": "^4.0.0" 4397 + }, 4398 + "engines": { 4399 + "node": ">=10" 4400 + }, 4401 + "funding": { 4402 + "url": "https://github.com/sponsors/sindresorhus" 4403 + } 4404 + }, 4405 + "node_modules/flat-cache": { 4406 + "version": "4.0.1", 4407 + "dev": true, 4408 + "license": "MIT", 4409 + "dependencies": { 4410 + "flatted": "^3.2.9", 4411 + "keyv": "^4.5.4" 4412 + }, 4413 + "engines": { 4414 + "node": ">=16" 4415 + } 4416 + }, 4417 + "node_modules/flatted": { 4418 + "version": "3.3.2", 4419 + "dev": true, 4420 + "license": "ISC" 4421 + }, 4422 + "node_modules/follow-redirects": { 4423 + "version": "1.15.9", 4424 + "funding": [ 4425 + { 4426 + "type": "individual", 4427 + "url": "https://github.com/sponsors/RubenVerborgh" 4428 + } 4429 + ], 4430 + "license": "MIT", 4431 + "engines": { 4432 + "node": ">=4.0" 4433 + }, 4434 + "peerDependenciesMeta": { 4435 + "debug": { 4436 + "optional": true 4437 + } 4438 + } 4439 + }, 4440 + "node_modules/for-each": { 4441 + "version": "0.3.5", 4442 + "dev": true, 4443 + "license": "MIT", 4444 + "dependencies": { 4445 + "is-callable": "^1.2.7" 4446 + }, 4447 + "engines": { 4448 + "node": ">= 0.4" 4449 + }, 4450 + "funding": { 4451 + "url": "https://github.com/sponsors/ljharb" 4452 + } 4453 + }, 4454 + "node_modules/form-data": { 4455 + "version": "4.0.1", 4456 + "license": "MIT", 4457 + "dependencies": { 4458 + "asynckit": "^0.4.0", 4459 + "combined-stream": "^1.0.8", 4460 + "mime-types": "^2.1.12" 4461 + }, 4462 + "engines": { 4463 + "node": ">= 6" 4464 + } 4465 + }, 4466 + "node_modules/forwarded": { 4467 + "version": "0.2.0", 4468 + "license": "MIT", 4469 + "engines": { 4470 + "node": ">= 0.6" 4471 + } 4472 + }, 4473 + "node_modules/franc": { 4474 + "version": "6.2.0", 4475 + "resolved": "https://registry.npmjs.org/franc/-/franc-6.2.0.tgz", 4476 + "integrity": "sha512-rcAewP7PSHvjq7Kgd7dhj82zE071kX5B4W1M4ewYMf/P+i6YsDQmj62Xz3VQm9zyUzUXwhIde/wHLGCMrM+yGg==", 4477 + "license": "MIT", 4478 + "dependencies": { 4479 + "trigram-utils": "^2.0.0" 4480 + }, 4481 + "funding": { 4482 + "type": "github", 4483 + "url": "https://github.com/sponsors/wooorm" 4484 + } 4485 + }, 4486 + "node_modules/fresh": { 4487 + "version": "0.5.2", 4488 + "license": "MIT", 4489 + "engines": { 4490 + "node": ">= 0.6" 4491 + } 4492 + }, 4493 + "node_modules/fsevents": { 4494 + "version": "2.3.3", 4495 + "dev": true, 4496 + "license": "MIT", 4497 + "optional": true, 4498 + "os": [ 4499 + "darwin" 4500 + ], 4501 + "engines": { 4502 + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 4503 + } 4504 + }, 4505 + "node_modules/function-bind": { 4506 + "version": "1.1.2", 4507 + "license": "MIT", 4508 + "funding": { 4509 + "url": "https://github.com/sponsors/ljharb" 4510 + } 4511 + }, 4512 + "node_modules/function.prototype.name": { 4513 + "version": "1.1.8", 4514 + "dev": true, 4515 + "license": "MIT", 4516 + "dependencies": { 4517 + "call-bind": "^1.0.8", 4518 + "call-bound": "^1.0.3", 4519 + "define-properties": "^1.2.1", 4520 + "functions-have-names": "^1.2.3", 4521 + "hasown": "^2.0.2", 4522 + "is-callable": "^1.2.7" 4523 + }, 4524 + "engines": { 4525 + "node": ">= 0.4" 4526 + }, 4527 + "funding": { 4528 + "url": "https://github.com/sponsors/ljharb" 4529 + } 4530 + }, 4531 + "node_modules/functions-have-names": { 4532 + "version": "1.2.3", 4533 + "dev": true, 4534 + "license": "MIT", 4535 + "funding": { 4536 + "url": "https://github.com/sponsors/ljharb" 4537 + } 4538 + }, 4539 + "node_modules/get-caller-file": { 4540 + "version": "2.0.5", 4541 + "license": "ISC", 4542 + "engines": { 4543 + "node": "6.* || 8.* || >= 10.*" 4544 + } 4545 + }, 4546 + "node_modules/get-east-asian-width": { 4547 + "version": "1.3.0", 4548 + "license": "MIT", 4549 + "engines": { 4550 + "node": ">=18" 4551 + }, 4552 + "funding": { 4553 + "url": "https://github.com/sponsors/sindresorhus" 4554 + } 4555 + }, 4556 + "node_modules/get-intrinsic": { 4557 + "version": "1.3.0", 4558 + "dev": true, 4559 + "license": "MIT", 4560 + "dependencies": { 4561 + "call-bind-apply-helpers": "^1.0.2", 4562 + "es-define-property": "^1.0.1", 4563 + "es-errors": "^1.3.0", 4564 + "es-object-atoms": "^1.1.1", 4565 + "function-bind": "^1.1.2", 4566 + "get-proto": "^1.0.1", 4567 + "gopd": "^1.2.0", 4568 + "has-symbols": "^1.1.0", 4569 + "hasown": "^2.0.2", 4570 + "math-intrinsics": "^1.1.0" 4571 + }, 4572 + "engines": { 4573 + "node": ">= 0.4" 4574 + }, 4575 + "funding": { 4576 + "url": "https://github.com/sponsors/ljharb" 4577 + } 4578 + }, 4579 + "node_modules/get-intrinsic/node_modules/call-bind-apply-helpers": { 4580 + "version": "1.0.2", 4581 + "dev": true, 4582 + "license": "MIT", 4583 + "dependencies": { 4584 + "es-errors": "^1.3.0", 4585 + "function-bind": "^1.1.2" 4586 + }, 4587 + "engines": { 4588 + "node": ">= 0.4" 4589 + } 4590 + }, 4591 + "node_modules/get-proto": { 4592 + "version": "1.0.1", 4593 + "dev": true, 4594 + "license": "MIT", 4595 + "dependencies": { 4596 + "dunder-proto": "^1.0.1", 4597 + "es-object-atoms": "^1.0.0" 4598 + }, 4599 + "engines": { 4600 + "node": ">= 0.4" 4601 + } 4602 + }, 4603 + "node_modules/get-stream": { 4604 + "version": "8.0.1", 4605 + "license": "MIT", 4606 + "engines": { 4607 + "node": ">=16" 4608 + }, 4609 + "funding": { 4610 + "url": "https://github.com/sponsors/sindresorhus" 4611 + } 4612 + }, 4613 + "node_modules/get-symbol-description": { 4614 + "version": "1.1.0", 4615 + "dev": true, 4616 + "license": "MIT", 4617 + "dependencies": { 4618 + "call-bound": "^1.0.3", 4619 + "es-errors": "^1.3.0", 4620 + "get-intrinsic": "^1.2.6" 4621 + }, 4622 + "engines": { 4623 + "node": ">= 0.4" 4624 + }, 4625 + "funding": { 4626 + "url": "https://github.com/sponsors/ljharb" 4627 + } 4628 + }, 4629 + "node_modules/get-tsconfig": { 4630 + "version": "4.8.1", 4631 + "dev": true, 4632 + "license": "MIT", 4633 + "dependencies": { 4634 + "resolve-pkg-maps": "^1.0.0" 4635 + }, 4636 + "funding": { 4637 + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" 4638 + } 4639 + }, 4640 + "node_modules/glob-parent": { 4641 + "version": "6.0.2", 4642 + "dev": true, 4643 + "license": "ISC", 4644 + "dependencies": { 4645 + "is-glob": "^4.0.3" 4646 + }, 4647 + "engines": { 4648 + "node": ">=10.13.0" 4649 + } 4650 + }, 4651 + "node_modules/globalthis": { 4652 + "version": "1.0.4", 4653 + "dev": true, 4654 + "license": "MIT", 4655 + "dependencies": { 4656 + "define-properties": "^1.2.1", 4657 + "gopd": "^1.0.1" 4658 + }, 4659 + "engines": { 4660 + "node": ">= 0.4" 4661 + }, 4662 + "funding": { 4663 + "url": "https://github.com/sponsors/ljharb" 4664 + } 4665 + }, 4666 + "node_modules/globby": { 4667 + "version": "11.1.0", 4668 + "dev": true, 4669 + "license": "MIT", 4670 + "dependencies": { 4671 + "array-union": "^2.1.0", 4672 + "dir-glob": "^3.0.1", 4673 + "fast-glob": "^3.2.9", 4674 + "ignore": "^5.2.0", 4675 + "merge2": "^1.4.1", 4676 + "slash": "^3.0.0" 4677 + }, 4678 + "engines": { 4679 + "node": ">=10" 4680 + }, 4681 + "funding": { 4682 + "url": "https://github.com/sponsors/sindresorhus" 4683 + } 4684 + }, 4685 + "node_modules/gopd": { 4686 + "version": "1.2.0", 4687 + "license": "MIT", 4688 + "engines": { 4689 + "node": ">= 0.4" 4690 + }, 4691 + "funding": { 4692 + "url": "https://github.com/sponsors/ljharb" 4693 + } 4694 + }, 4695 + "node_modules/graphemer": { 4696 + "version": "1.4.0", 4697 + "license": "MIT" 4698 + }, 4699 + "node_modules/has-bigints": { 4700 + "version": "1.1.0", 4701 + "dev": true, 4702 + "license": "MIT", 4703 + "engines": { 4704 + "node": ">= 0.4" 4705 + }, 4706 + "funding": { 4707 + "url": "https://github.com/sponsors/ljharb" 4708 + } 4709 + }, 4710 + "node_modules/has-flag": { 4711 + "version": "4.0.0", 4712 + "dev": true, 4713 + "license": "MIT", 4714 + "engines": { 4715 + "node": ">=8" 4716 + } 4717 + }, 4718 + "node_modules/has-property-descriptors": { 4719 + "version": "1.0.2", 4720 + "dev": true, 4721 + "license": "MIT", 4722 + "dependencies": { 4723 + "es-define-property": "^1.0.0" 4724 + }, 4725 + "funding": { 4726 + "url": "https://github.com/sponsors/ljharb" 4727 + } 4728 + }, 4729 + "node_modules/has-proto": { 4730 + "version": "1.2.0", 4731 + "dev": true, 4732 + "license": "MIT", 4733 + "dependencies": { 4734 + "dunder-proto": "^1.0.0" 4735 + }, 4736 + "engines": { 4737 + "node": ">= 0.4" 4738 + }, 4739 + "funding": { 4740 + "url": "https://github.com/sponsors/ljharb" 4741 + } 4742 + }, 4743 + "node_modules/has-symbols": { 4744 + "version": "1.1.0", 4745 + "license": "MIT", 4746 + "engines": { 4747 + "node": ">= 0.4" 4748 + }, 4749 + "funding": { 4750 + "url": "https://github.com/sponsors/ljharb" 4751 + } 4752 + }, 4753 + "node_modules/has-tostringtag": { 4754 + "version": "1.0.2", 4755 + "dev": true, 4756 + "license": "MIT", 4757 + "dependencies": { 4758 + "has-symbols": "^1.0.3" 4759 + }, 4760 + "engines": { 4761 + "node": ">= 0.4" 4762 + }, 4763 + "funding": { 4764 + "url": "https://github.com/sponsors/ljharb" 4765 + } 4766 + }, 4767 + "node_modules/hash.js": { 4768 + "version": "1.1.7", 4769 + "license": "MIT", 4770 + "dependencies": { 4771 + "inherits": "^2.0.3", 4772 + "minimalistic-assert": "^1.0.1" 4773 + } 4774 + }, 4775 + "node_modules/hasown": { 4776 + "version": "2.0.2", 4777 + "license": "MIT", 4778 + "dependencies": { 4779 + "function-bind": "^1.1.2" 4780 + }, 4781 + "engines": { 4782 + "node": ">= 0.4" 4783 + } 4784 + }, 4785 + "node_modules/help-me": { 4786 + "version": "5.0.0", 4787 + "license": "MIT" 4788 + }, 4789 + "node_modules/hmac-drbg": { 4790 + "version": "1.0.1", 4791 + "license": "MIT", 4792 + "dependencies": { 4793 + "hash.js": "^1.0.3", 4794 + "minimalistic-assert": "^1.0.0", 4795 + "minimalistic-crypto-utils": "^1.0.1" 4796 + } 4797 + }, 4798 + "node_modules/http-errors": { 4799 + "version": "2.0.0", 4800 + "license": "MIT", 4801 + "dependencies": { 4802 + "depd": "2.0.0", 4803 + "inherits": "2.0.4", 4804 + "setprototypeof": "1.2.0", 4805 + "statuses": "2.0.1", 4806 + "toidentifier": "1.0.1" 4807 + }, 4808 + "engines": { 4809 + "node": ">= 0.8" 4810 + } 4811 + }, 4812 + "node_modules/http-terminator": { 4813 + "version": "3.2.0", 4814 + "license": "BSD-3-Clause", 4815 + "dependencies": { 4816 + "delay": "^5.0.0", 4817 + "p-wait-for": "^3.2.0", 4818 + "roarr": "^7.0.4", 4819 + "type-fest": "^2.3.3" 4820 + }, 4821 + "engines": { 4822 + "node": ">=14" 4823 + } 4824 + }, 4825 + "node_modules/human-signals": { 4826 + "version": "5.0.0", 4827 + "license": "Apache-2.0", 4828 + "engines": { 4829 + "node": ">=16.17.0" 4830 + } 4831 + }, 4832 + "node_modules/husky": { 4833 + "version": "9.1.7", 4834 + "license": "MIT", 4835 + "bin": { 4836 + "husky": "bin.js" 4837 + }, 4838 + "engines": { 4839 + "node": ">=18" 4840 + }, 4841 + "funding": { 4842 + "url": "https://github.com/sponsors/typicode" 4843 + } 4844 + }, 4845 + "node_modules/iconv-lite": { 4846 + "version": "0.4.24", 4847 + "license": "MIT", 4848 + "dependencies": { 4849 + "safer-buffer": ">= 2.1.2 < 3" 4850 + }, 4851 + "engines": { 4852 + "node": ">=0.10.0" 4853 + } 4854 + }, 4855 + "node_modules/ieee754": { 4856 + "version": "1.2.1", 4857 + "funding": [ 4858 + { 4859 + "type": "github", 4860 + "url": "https://github.com/sponsors/feross" 4861 + }, 4862 + { 4863 + "type": "patreon", 4864 + "url": "https://www.patreon.com/feross" 4865 + }, 4866 + { 4867 + "type": "consulting", 4868 + "url": "https://feross.org/support" 4869 + } 4870 + ], 4871 + "license": "BSD-3-Clause" 4872 + }, 4873 + "node_modules/ignore": { 4874 + "version": "5.3.2", 4875 + "dev": true, 4876 + "license": "MIT", 4877 + "engines": { 4878 + "node": ">= 4" 4879 + } 4880 + }, 4881 + "node_modules/import-fresh": { 4882 + "version": "3.3.0", 4883 + "dev": true, 4884 + "license": "MIT", 4885 + "dependencies": { 4886 + "parent-module": "^1.0.0", 4887 + "resolve-from": "^4.0.0" 4888 + }, 4889 + "engines": { 4890 + "node": ">=6" 4891 + }, 4892 + "funding": { 4893 + "url": "https://github.com/sponsors/sindresorhus" 4894 + } 4895 + }, 4896 + "node_modules/imurmurhash": { 4897 + "version": "0.1.4", 4898 + "dev": true, 4899 + "license": "MIT", 4900 + "engines": { 4901 + "node": ">=0.8.19" 4902 + } 4903 + }, 4904 + "node_modules/inherits": { 4905 + "version": "2.0.4", 4906 + "license": "ISC" 4907 + }, 4908 + "node_modules/internal-slot": { 4909 + "version": "1.1.0", 4910 + "dev": true, 4911 + "license": "MIT", 4912 + "dependencies": { 4913 + "es-errors": "^1.3.0", 4914 + "hasown": "^2.0.2", 4915 + "side-channel": "^1.1.0" 4916 + }, 4917 + "engines": { 4918 + "node": ">= 0.4" 4919 + } 4920 + }, 4921 + "node_modules/ioredis": { 4922 + "version": "5.4.2", 4923 + "license": "MIT", 4924 + "dependencies": { 4925 + "@ioredis/commands": "^1.1.1", 4926 + "cluster-key-slot": "^1.1.0", 4927 + "debug": "^4.3.4", 4928 + "denque": "^2.1.0", 4929 + "lodash.defaults": "^4.2.0", 4930 + "lodash.isarguments": "^3.1.0", 4931 + "redis-errors": "^1.2.0", 4932 + "redis-parser": "^3.0.0", 4933 + "standard-as-callback": "^2.1.0" 4934 + }, 4935 + "engines": { 4936 + "node": ">=12.22.0" 4937 + }, 4938 + "funding": { 4939 + "type": "opencollective", 4940 + "url": "https://opencollective.com/ioredis" 4941 + } 4942 + }, 4943 + "node_modules/ip3country": { 4944 + "version": "5.0.0", 4945 + "license": "ISC" 4946 + }, 4947 + "node_modules/ipaddr.js": { 4948 + "version": "1.9.1", 4949 + "license": "MIT", 4950 + "engines": { 4951 + "node": ">= 0.10" 4952 + } 4953 + }, 4954 + "node_modules/is-array-buffer": { 4955 + "version": "3.0.5", 4956 + "dev": true, 4957 + "license": "MIT", 4958 + "dependencies": { 4959 + "call-bind": "^1.0.8", 4960 + "call-bound": "^1.0.3", 4961 + "get-intrinsic": "^1.2.6" 4962 + }, 4963 + "engines": { 4964 + "node": ">= 0.4" 4965 + }, 4966 + "funding": { 4967 + "url": "https://github.com/sponsors/ljharb" 4968 + } 4969 + }, 4970 + "node_modules/is-arrayish": { 4971 + "version": "0.3.2", 4972 + "license": "MIT" 4973 + }, 4974 + "node_modules/is-async-function": { 4975 + "version": "2.1.1", 4976 + "dev": true, 4977 + "license": "MIT", 4978 + "dependencies": { 4979 + "async-function": "^1.0.0", 4980 + "call-bound": "^1.0.3", 4981 + "get-proto": "^1.0.1", 4982 + "has-tostringtag": "^1.0.2", 4983 + "safe-regex-test": "^1.1.0" 4984 + }, 4985 + "engines": { 4986 + "node": ">= 0.4" 4987 + }, 4988 + "funding": { 4989 + "url": "https://github.com/sponsors/ljharb" 4990 + } 4991 + }, 4992 + "node_modules/is-bigint": { 4993 + "version": "1.1.0", 4994 + "dev": true, 4995 + "license": "MIT", 4996 + "dependencies": { 4997 + "has-bigints": "^1.0.2" 4998 + }, 4999 + "engines": { 5000 + "node": ">= 0.4" 5001 + }, 5002 + "funding": { 5003 + "url": "https://github.com/sponsors/ljharb" 5004 + } 5005 + }, 5006 + "node_modules/is-boolean-object": { 5007 + "version": "1.2.2", 5008 + "dev": true, 5009 + "license": "MIT", 5010 + "dependencies": { 5011 + "call-bound": "^1.0.3", 5012 + "has-tostringtag": "^1.0.2" 5013 + }, 5014 + "engines": { 5015 + "node": ">= 0.4" 5016 + }, 5017 + "funding": { 5018 + "url": "https://github.com/sponsors/ljharb" 5019 + } 5020 + }, 5021 + "node_modules/is-callable": { 5022 + "version": "1.2.7", 5023 + "dev": true, 5024 + "license": "MIT", 5025 + "engines": { 5026 + "node": ">= 0.4" 5027 + }, 5028 + "funding": { 5029 + "url": "https://github.com/sponsors/ljharb" 5030 + } 5031 + }, 5032 + "node_modules/is-core-module": { 5033 + "version": "2.16.1", 5034 + "dev": true, 5035 + "license": "MIT", 5036 + "dependencies": { 5037 + "hasown": "^2.0.2" 5038 + }, 5039 + "engines": { 5040 + "node": ">= 0.4" 5041 + }, 5042 + "funding": { 5043 + "url": "https://github.com/sponsors/ljharb" 5044 + } 5045 + }, 5046 + "node_modules/is-data-view": { 5047 + "version": "1.0.2", 5048 + "dev": true, 5049 + "license": "MIT", 5050 + "dependencies": { 5051 + "call-bound": "^1.0.2", 5052 + "get-intrinsic": "^1.2.6", 5053 + "is-typed-array": "^1.1.13" 5054 + }, 5055 + "engines": { 5056 + "node": ">= 0.4" 5057 + }, 5058 + "funding": { 5059 + "url": "https://github.com/sponsors/ljharb" 5060 + } 5061 + }, 5062 + "node_modules/is-date-object": { 5063 + "version": "1.1.0", 5064 + "dev": true, 5065 + "license": "MIT", 5066 + "dependencies": { 5067 + "call-bound": "^1.0.2", 5068 + "has-tostringtag": "^1.0.2" 5069 + }, 5070 + "engines": { 5071 + "node": ">= 0.4" 5072 + }, 5073 + "funding": { 5074 + "url": "https://github.com/sponsors/ljharb" 5075 + } 5076 + }, 5077 + "node_modules/is-extglob": { 5078 + "version": "2.1.1", 5079 + "dev": true, 5080 + "license": "MIT", 5081 + "engines": { 5082 + "node": ">=0.10.0" 5083 + } 5084 + }, 5085 + "node_modules/is-finalizationregistry": { 5086 + "version": "1.1.1", 5087 + "dev": true, 5088 + "license": "MIT", 5089 + "dependencies": { 5090 + "call-bound": "^1.0.3" 5091 + }, 5092 + "engines": { 5093 + "node": ">= 0.4" 5094 + }, 5095 + "funding": { 5096 + "url": "https://github.com/sponsors/ljharb" 5097 + } 5098 + }, 5099 + "node_modules/is-fullwidth-code-point": { 5100 + "version": "4.0.0", 5101 + "license": "MIT", 5102 + "engines": { 5103 + "node": ">=12" 5104 + }, 5105 + "funding": { 5106 + "url": "https://github.com/sponsors/sindresorhus" 5107 + } 5108 + }, 5109 + "node_modules/is-generator-function": { 5110 + "version": "1.1.0", 5111 + "dev": true, 5112 + "license": "MIT", 5113 + "dependencies": { 5114 + "call-bound": "^1.0.3", 5115 + "get-proto": "^1.0.0", 5116 + "has-tostringtag": "^1.0.2", 5117 + "safe-regex-test": "^1.1.0" 5118 + }, 5119 + "engines": { 5120 + "node": ">= 0.4" 5121 + }, 5122 + "funding": { 5123 + "url": "https://github.com/sponsors/ljharb" 5124 + } 5125 + }, 5126 + "node_modules/is-glob": { 5127 + "version": "4.0.3", 5128 + "dev": true, 5129 + "license": "MIT", 5130 + "dependencies": { 5131 + "is-extglob": "^2.1.1" 5132 + }, 5133 + "engines": { 5134 + "node": ">=0.10.0" 5135 + } 5136 + }, 5137 + "node_modules/is-map": { 5138 + "version": "2.0.3", 5139 + "dev": true, 5140 + "license": "MIT", 5141 + "engines": { 5142 + "node": ">= 0.4" 5143 + }, 5144 + "funding": { 5145 + "url": "https://github.com/sponsors/ljharb" 5146 + } 5147 + }, 5148 + "node_modules/is-negative-zero": { 5149 + "version": "2.0.3", 5150 + "dev": true, 5151 + "license": "MIT", 5152 + "engines": { 5153 + "node": ">= 0.4" 5154 + }, 5155 + "funding": { 5156 + "url": "https://github.com/sponsors/ljharb" 5157 + } 5158 + }, 5159 + "node_modules/is-number": { 5160 + "version": "7.0.0", 5161 + "license": "MIT", 5162 + "engines": { 5163 + "node": ">=0.12.0" 5164 + } 5165 + }, 5166 + "node_modules/is-number-object": { 5167 + "version": "1.1.1", 5168 + "dev": true, 5169 + "license": "MIT", 5170 + "dependencies": { 5171 + "call-bound": "^1.0.3", 5172 + "has-tostringtag": "^1.0.2" 5173 + }, 5174 + "engines": { 5175 + "node": ">= 0.4" 5176 + }, 5177 + "funding": { 5178 + "url": "https://github.com/sponsors/ljharb" 5179 + } 5180 + }, 5181 + "node_modules/is-regex": { 5182 + "version": "1.2.1", 5183 + "dev": true, 5184 + "license": "MIT", 5185 + "dependencies": { 5186 + "call-bound": "^1.0.2", 5187 + "gopd": "^1.2.0", 5188 + "has-tostringtag": "^1.0.2", 5189 + "hasown": "^2.0.2" 5190 + }, 5191 + "engines": { 5192 + "node": ">= 0.4" 5193 + }, 5194 + "funding": { 5195 + "url": "https://github.com/sponsors/ljharb" 5196 + } 5197 + }, 5198 + "node_modules/is-set": { 5199 + "version": "2.0.3", 5200 + "dev": true, 5201 + "license": "MIT", 5202 + "engines": { 5203 + "node": ">= 0.4" 5204 + }, 5205 + "funding": { 5206 + "url": "https://github.com/sponsors/ljharb" 5207 + } 5208 + }, 5209 + "node_modules/is-shared-array-buffer": { 5210 + "version": "1.0.4", 5211 + "dev": true, 5212 + "license": "MIT", 5213 + "dependencies": { 5214 + "call-bound": "^1.0.3" 5215 + }, 5216 + "engines": { 5217 + "node": ">= 0.4" 5218 + }, 5219 + "funding": { 5220 + "url": "https://github.com/sponsors/ljharb" 5221 + } 5222 + }, 5223 + "node_modules/is-stream": { 5224 + "version": "3.0.0", 5225 + "license": "MIT", 5226 + "engines": { 5227 + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" 5228 + }, 5229 + "funding": { 5230 + "url": "https://github.com/sponsors/sindresorhus" 5231 + } 5232 + }, 5233 + "node_modules/is-string": { 5234 + "version": "1.1.1", 5235 + "dev": true, 5236 + "license": "MIT", 5237 + "dependencies": { 5238 + "call-bound": "^1.0.3", 5239 + "has-tostringtag": "^1.0.2" 5240 + }, 5241 + "engines": { 5242 + "node": ">= 0.4" 5243 + }, 5244 + "funding": { 5245 + "url": "https://github.com/sponsors/ljharb" 5246 + } 5247 + }, 5248 + "node_modules/is-symbol": { 5249 + "version": "1.1.1", 5250 + "dev": true, 5251 + "license": "MIT", 5252 + "dependencies": { 5253 + "call-bound": "^1.0.2", 5254 + "has-symbols": "^1.1.0", 5255 + "safe-regex-test": "^1.1.0" 5256 + }, 5257 + "engines": { 5258 + "node": ">= 0.4" 5259 + }, 5260 + "funding": { 5261 + "url": "https://github.com/sponsors/ljharb" 5262 + } 5263 + }, 5264 + "node_modules/is-typed-array": { 5265 + "version": "1.1.15", 5266 + "dev": true, 5267 + "license": "MIT", 5268 + "dependencies": { 5269 + "which-typed-array": "^1.1.16" 5270 + }, 5271 + "engines": { 5272 + "node": ">= 0.4" 5273 + }, 5274 + "funding": { 5275 + "url": "https://github.com/sponsors/ljharb" 5276 + } 5277 + }, 5278 + "node_modules/is-weakmap": { 5279 + "version": "2.0.2", 5280 + "dev": true, 5281 + "license": "MIT", 5282 + "engines": { 5283 + "node": ">= 0.4" 5284 + }, 5285 + "funding": { 5286 + "url": "https://github.com/sponsors/ljharb" 5287 + } 5288 + }, 5289 + "node_modules/is-weakref": { 5290 + "version": "1.1.1", 5291 + "dev": true, 5292 + "license": "MIT", 5293 + "dependencies": { 5294 + "call-bound": "^1.0.3" 5295 + }, 5296 + "engines": { 5297 + "node": ">= 0.4" 5298 + }, 5299 + "funding": { 5300 + "url": "https://github.com/sponsors/ljharb" 5301 + } 5302 + }, 5303 + "node_modules/is-weakset": { 5304 + "version": "2.0.4", 5305 + "dev": true, 5306 + "license": "MIT", 5307 + "dependencies": { 5308 + "call-bound": "^1.0.3", 5309 + "get-intrinsic": "^1.2.6" 5310 + }, 5311 + "engines": { 5312 + "node": ">= 0.4" 5313 + }, 5314 + "funding": { 5315 + "url": "https://github.com/sponsors/ljharb" 5316 + } 5317 + }, 5318 + "node_modules/isarray": { 5319 + "version": "2.0.5", 5320 + "dev": true, 5321 + "license": "MIT" 5322 + }, 5323 + "node_modules/isexe": { 5324 + "version": "2.0.0", 5325 + "license": "ISC" 5326 + }, 5327 + "node_modules/iso-datestring-validator": { 5328 + "version": "2.2.2", 5329 + "license": "MIT" 5330 + }, 5331 + "node_modules/javascript-natural-sort": { 5332 + "version": "0.7.1", 5333 + "dev": true, 5334 + "license": "MIT" 5335 + }, 5336 + "node_modules/jose": { 5337 + "version": "5.9.6", 5338 + "license": "MIT", 5339 + "funding": { 5340 + "url": "https://github.com/sponsors/panva" 5341 + } 5342 + }, 5343 + "node_modules/joycon": { 5344 + "version": "3.1.1", 5345 + "license": "MIT", 5346 + "engines": { 5347 + "node": ">=10" 5348 + } 5349 + }, 5350 + "node_modules/js-tokens": { 5351 + "version": "4.0.0", 5352 + "dev": true, 5353 + "license": "MIT" 5354 + }, 5355 + "node_modules/js-yaml": { 5356 + "version": "4.1.0", 5357 + "dev": true, 5358 + "license": "MIT", 5359 + "dependencies": { 5360 + "argparse": "^2.0.1" 5361 + }, 5362 + "bin": { 5363 + "js-yaml": "bin/js-yaml.js" 5364 + } 5365 + }, 5366 + "node_modules/jsesc": { 5367 + "version": "2.5.2", 5368 + "dev": true, 5369 + "license": "MIT", 5370 + "bin": { 5371 + "jsesc": "bin/jsesc" 5372 + }, 5373 + "engines": { 5374 + "node": ">=4" 5375 + } 5376 + }, 5377 + "node_modules/json-buffer": { 5378 + "version": "3.0.1", 5379 + "dev": true, 5380 + "license": "MIT" 5381 + }, 5382 + "node_modules/json-schema-ref-resolver": { 5383 + "version": "1.0.1", 5384 + "license": "MIT", 5385 + "dependencies": { 5386 + "fast-deep-equal": "^3.1.3" 5387 + } 5388 + }, 5389 + "node_modules/json-schema-traverse": { 5390 + "version": "0.4.1", 5391 + "dev": true, 5392 + "license": "MIT" 5393 + }, 5394 + "node_modules/json-stable-stringify-without-jsonify": { 5395 + "version": "1.0.1", 5396 + "dev": true, 5397 + "license": "MIT" 5398 + }, 5399 + "node_modules/json5": { 5400 + "version": "1.0.2", 5401 + "dev": true, 5402 + "license": "MIT", 5403 + "dependencies": { 5404 + "minimist": "^1.2.0" 5405 + }, 5406 + "bin": { 5407 + "json5": "lib/cli.js" 5408 + } 5409 + }, 5410 + "node_modules/key-encoder": { 5411 + "version": "2.0.3", 5412 + "license": "MIT", 5413 + "dependencies": { 5414 + "@types/elliptic": "^6.4.9", 5415 + "asn1.js": "^5.0.1", 5416 + "bn.js": "^4.11.8", 5417 + "elliptic": "^6.4.1" 5418 + } 5419 + }, 5420 + "node_modules/keyv": { 5421 + "version": "4.5.4", 5422 + "dev": true, 5423 + "license": "MIT", 5424 + "dependencies": { 5425 + "json-buffer": "3.0.1" 5426 + } 5427 + }, 5428 + "node_modules/kleur": { 5429 + "version": "3.0.3", 5430 + "license": "MIT", 5431 + "engines": { 5432 + "node": ">=6" 5433 + } 5434 + }, 5435 + "node_modules/kysely": { 5436 + "version": "0.22.0", 5437 + "license": "MIT", 5438 + "engines": { 5439 + "node": ">=14.0.0" 5440 + } 5441 + }, 5442 + "node_modules/lande": { 5443 + "version": "1.0.10", 5444 + "dependencies": { 5445 + "toygrad": "^2.6.0" 5446 + } 5447 + }, 5448 + "node_modules/levn": { 5449 + "version": "0.4.1", 5450 + "dev": true, 5451 + "license": "MIT", 5452 + "dependencies": { 5453 + "prelude-ls": "^1.2.1", 5454 + "type-check": "~0.4.0" 5455 + }, 5456 + "engines": { 5457 + "node": ">= 0.8.0" 5458 + } 5459 + }, 5460 + "node_modules/libsql": { 5461 + "version": "0.4.7", 5462 + "cpu": [ 5463 + "x64", 5464 + "arm64", 5465 + "wasm32" 5466 + ], 5467 + "license": "MIT", 5468 + "os": [ 5469 + "darwin", 5470 + "linux", 5471 + "win32" 5472 + ], 5473 + "dependencies": { 5474 + "@neon-rs/load": "^0.0.4", 5475 + "detect-libc": "2.0.2" 5476 + }, 5477 + "optionalDependencies": { 5478 + "@libsql/darwin-arm64": "0.4.7", 5479 + "@libsql/darwin-x64": "0.4.7", 5480 + "@libsql/linux-arm64-gnu": "0.4.7", 5481 + "@libsql/linux-arm64-musl": "0.4.7", 5482 + "@libsql/linux-x64-gnu": "0.4.7", 5483 + "@libsql/linux-x64-musl": "0.4.7", 5484 + "@libsql/win32-x64-msvc": "0.4.7" 5485 + } 5486 + }, 5487 + "node_modules/libsql/node_modules/detect-libc": { 5488 + "version": "2.0.2", 5489 + "license": "Apache-2.0", 5490 + "engines": { 5491 + "node": ">=8" 5492 + } 5493 + }, 5494 + "node_modules/light-my-request": { 5495 + "version": "5.14.0", 5496 + "license": "BSD-3-Clause", 5497 + "dependencies": { 5498 + "cookie": "^0.7.0", 5499 + "process-warning": "^3.0.0", 5500 + "set-cookie-parser": "^2.4.1" 5501 + } 5502 + }, 5503 + "node_modules/light-my-request/node_modules/process-warning": { 5504 + "version": "3.0.0", 5505 + "license": "MIT" 5506 + }, 5507 + "node_modules/lilconfig": { 5508 + "version": "3.1.3", 5509 + "license": "MIT", 5510 + "engines": { 5511 + "node": ">=14" 5512 + }, 5513 + "funding": { 5514 + "url": "https://github.com/sponsors/antonk52" 5515 + } 5516 + }, 5517 + "node_modules/lint-staged": { 5518 + "version": "15.5.2", 5519 + "license": "MIT", 5520 + "dependencies": { 5521 + "chalk": "^5.4.1", 5522 + "commander": "^13.1.0", 5523 + "debug": "^4.4.0", 5524 + "execa": "^8.0.1", 5525 + "lilconfig": "^3.1.3", 5526 + "listr2": "^8.2.5", 5527 + "micromatch": "^4.0.8", 5528 + "pidtree": "^0.6.0", 5529 + "string-argv": "^0.3.2", 5530 + "yaml": "^2.7.0" 5531 + }, 5532 + "bin": { 5533 + "lint-staged": "bin/lint-staged.js" 5534 + }, 5535 + "engines": { 5536 + "node": ">=18.12.0" 5537 + }, 5538 + "funding": { 5539 + "url": "https://opencollective.com/lint-staged" 5540 + } 5541 + }, 5542 + "node_modules/lint-staged/node_modules/chalk": { 5543 + "version": "5.4.1", 5544 + "license": "MIT", 5545 + "engines": { 5546 + "node": "^12.17.0 || ^14.13 || >=16.0.0" 5547 + }, 5548 + "funding": { 5549 + "url": "https://github.com/chalk/chalk?sponsor=1" 5550 + } 5551 + }, 5552 + "node_modules/listr2": { 5553 + "version": "8.2.5", 5554 + "license": "MIT", 5555 + "dependencies": { 5556 + "cli-truncate": "^4.0.0", 5557 + "colorette": "^2.0.20", 5558 + "eventemitter3": "^5.0.1", 5559 + "log-update": "^6.1.0", 5560 + "rfdc": "^1.4.1", 5561 + "wrap-ansi": "^9.0.0" 5562 + }, 5563 + "engines": { 5564 + "node": ">=18.0.0" 5565 + } 5566 + }, 5567 + "node_modules/listr2/node_modules/eventemitter3": { 5568 + "version": "5.0.1", 5569 + "license": "MIT" 5570 + }, 5571 + "node_modules/locate-path": { 5572 + "version": "6.0.0", 5573 + "dev": true, 5574 + "license": "MIT", 5575 + "dependencies": { 5576 + "p-locate": "^5.0.0" 5577 + }, 5578 + "engines": { 5579 + "node": ">=10" 5580 + }, 5581 + "funding": { 5582 + "url": "https://github.com/sponsors/sindresorhus" 5583 + } 5584 + }, 5585 + "node_modules/lodash": { 5586 + "version": "4.17.21", 5587 + "dev": true, 5588 + "license": "MIT" 5589 + }, 5590 + "node_modules/lodash.defaults": { 5591 + "version": "4.2.0", 5592 + "license": "MIT" 5593 + }, 5594 + "node_modules/lodash.isarguments": { 5595 + "version": "3.1.0", 5596 + "license": "MIT" 5597 + }, 5598 + "node_modules/lodash.merge": { 5599 + "version": "4.6.2", 5600 + "dev": true, 5601 + "license": "MIT" 5602 + }, 5603 + "node_modules/log-update": { 5604 + "version": "6.1.0", 5605 + "license": "MIT", 5606 + "dependencies": { 5607 + "ansi-escapes": "^7.0.0", 5608 + "cli-cursor": "^5.0.0", 5609 + "slice-ansi": "^7.1.0", 5610 + "strip-ansi": "^7.1.0", 5611 + "wrap-ansi": "^9.0.0" 5612 + }, 5613 + "engines": { 5614 + "node": ">=18" 5615 + }, 5616 + "funding": { 5617 + "url": "https://github.com/sponsors/sindresorhus" 5618 + } 5619 + }, 5620 + "node_modules/log-update/node_modules/slice-ansi": { 5621 + "version": "7.1.0", 5622 + "license": "MIT", 5623 + "dependencies": { 5624 + "ansi-styles": "^6.2.1", 5625 + "is-fullwidth-code-point": "^5.0.0" 5626 + }, 5627 + "engines": { 5628 + "node": ">=18" 5629 + }, 5630 + "funding": { 5631 + "url": "https://github.com/chalk/slice-ansi?sponsor=1" 5632 + } 5633 + }, 5634 + "node_modules/log-update/node_modules/slice-ansi/node_modules/ansi-styles": { 5635 + "version": "6.2.1", 5636 + "license": "MIT", 5637 + "engines": { 5638 + "node": ">=12" 5639 + }, 5640 + "funding": { 5641 + "url": "https://github.com/chalk/ansi-styles?sponsor=1" 5642 + } 5643 + }, 5644 + "node_modules/log-update/node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { 5645 + "version": "5.0.0", 5646 + "license": "MIT", 5647 + "dependencies": { 5648 + "get-east-asian-width": "^1.0.0" 5649 + }, 5650 + "engines": { 5651 + "node": ">=18" 5652 + }, 5653 + "funding": { 5654 + "url": "https://github.com/sponsors/sindresorhus" 5655 + } 5656 + }, 5657 + "node_modules/math-intrinsics": { 5658 + "version": "1.1.0", 5659 + "license": "MIT", 5660 + "engines": { 5661 + "node": ">= 0.4" 5662 + } 5663 + }, 5664 + "node_modules/media-typer": { 5665 + "version": "0.3.0", 5666 + "license": "MIT", 5667 + "engines": { 5668 + "node": ">= 0.6" 5669 + } 5670 + }, 5671 + "node_modules/merge-descriptors": { 5672 + "version": "1.0.3", 5673 + "license": "MIT", 5674 + "funding": { 5675 + "url": "https://github.com/sponsors/sindresorhus" 5676 + } 5677 + }, 5678 + "node_modules/merge-stream": { 5679 + "version": "2.0.0", 5680 + "license": "MIT" 5681 + }, 5682 + "node_modules/merge2": { 5683 + "version": "1.4.1", 5684 + "dev": true, 5685 + "license": "MIT", 5686 + "engines": { 5687 + "node": ">= 8" 5688 + } 5689 + }, 5690 + "node_modules/methods": { 5691 + "version": "1.1.2", 5692 + "license": "MIT", 5693 + "engines": { 5694 + "node": ">= 0.6" 5695 + } 5696 + }, 5697 + "node_modules/micromatch": { 5698 + "version": "4.0.8", 5699 + "license": "MIT", 5700 + "dependencies": { 5701 + "braces": "^3.0.3", 5702 + "picomatch": "^2.3.1" 5703 + }, 5704 + "engines": { 5705 + "node": ">=8.6" 5706 + } 5707 + }, 5708 + "node_modules/micromatch/node_modules/picomatch": { 5709 + "version": "2.3.1", 5710 + "license": "MIT", 5711 + "engines": { 5712 + "node": ">=8.6" 5713 + }, 5714 + "funding": { 5715 + "url": "https://github.com/sponsors/jonschlinkert" 5716 + } 5717 + }, 5718 + "node_modules/mime": { 5719 + "version": "1.6.0", 5720 + "license": "MIT", 5721 + "bin": { 5722 + "mime": "cli.js" 5723 + }, 5724 + "engines": { 5725 + "node": ">=4" 5726 + } 5727 + }, 5728 + "node_modules/mime-db": { 5729 + "version": "1.52.0", 5730 + "license": "MIT", 5731 + "engines": { 5732 + "node": ">= 0.6" 5733 + } 5734 + }, 5735 + "node_modules/mime-types": { 5736 + "version": "2.1.35", 5737 + "license": "MIT", 5738 + "dependencies": { 5739 + "mime-db": "1.52.0" 5740 + }, 5741 + "engines": { 5742 + "node": ">= 0.6" 5743 + } 5744 + }, 5745 + "node_modules/mimic-fn": { 5746 + "version": "4.0.0", 5747 + "license": "MIT", 5748 + "engines": { 5749 + "node": ">=12" 5750 + }, 5751 + "funding": { 5752 + "url": "https://github.com/sponsors/sindresorhus" 5753 + } 5754 + }, 5755 + "node_modules/mimic-function": { 5756 + "version": "5.0.1", 5757 + "license": "MIT", 5758 + "engines": { 5759 + "node": ">=18" 5760 + }, 5761 + "funding": { 5762 + "url": "https://github.com/sponsors/sindresorhus" 5763 + } 5764 + }, 5765 + "node_modules/minimalistic-assert": { 5766 + "version": "1.0.1", 5767 + "license": "ISC" 5768 + }, 5769 + "node_modules/minimalistic-crypto-utils": { 5770 + "version": "1.0.1", 5771 + "license": "MIT" 5772 + }, 5773 + "node_modules/minimatch": { 5774 + "version": "3.1.2", 5775 + "dev": true, 5776 + "license": "ISC", 5777 + "dependencies": { 5778 + "brace-expansion": "^1.1.7" 5779 + }, 5780 + "engines": { 5781 + "node": "*" 5782 + } 5783 + }, 5784 + "node_modules/minimist": { 5785 + "version": "1.2.8", 5786 + "license": "MIT", 5787 + "funding": { 5788 + "url": "https://github.com/sponsors/ljharb" 5789 + } 5790 + }, 5791 + "node_modules/ms": { 5792 + "version": "2.1.3", 5793 + "license": "MIT" 5794 + }, 5795 + "node_modules/multiformats": { 5796 + "version": "9.9.0", 5797 + "license": "(Apache-2.0 AND MIT)" 5798 + }, 5799 + "node_modules/murmurhash": { 5800 + "version": "2.0.1", 5801 + "license": "MIT" 5802 + }, 5803 + "node_modules/n-gram": { 5804 + "version": "2.0.2", 5805 + "resolved": "https://registry.npmjs.org/n-gram/-/n-gram-2.0.2.tgz", 5806 + "integrity": "sha512-S24aGsn+HLBxUGVAUFOwGpKs7LBcG4RudKU//eWzt/mQ97/NMKQxDWHyHx63UNWk/OOdihgmzoETn1tf5nQDzQ==", 5807 + "license": "MIT", 5808 + "funding": { 5809 + "type": "github", 5810 + "url": "https://github.com/sponsors/wooorm" 5811 + } 5812 + }, 5813 + "node_modules/natural-compare": { 5814 + "version": "1.4.0", 5815 + "dev": true, 5816 + "license": "MIT" 5817 + }, 5818 + "node_modules/negotiator": { 5819 + "version": "0.6.4", 5820 + "license": "MIT", 5821 + "engines": { 5822 + "node": ">= 0.6" 5823 + } 5824 + }, 5825 + "node_modules/node-fetch": { 5826 + "version": "2.7.0", 5827 + "license": "MIT", 5828 + "dependencies": { 5829 + "whatwg-url": "^5.0.0" 5830 + }, 5831 + "engines": { 5832 + "node": "4.x || >=6.0.0" 5833 + }, 5834 + "peerDependencies": { 5835 + "encoding": "^0.1.0" 5836 + }, 5837 + "peerDependenciesMeta": { 5838 + "encoding": { 5839 + "optional": true 5840 + } 5841 + } 5842 + }, 5843 + "node_modules/node-gyp-build-optional-packages": { 5844 + "version": "5.1.1", 5845 + "license": "MIT", 5846 + "optional": true, 5847 + "dependencies": { 5848 + "detect-libc": "^2.0.1" 5849 + }, 5850 + "bin": { 5851 + "node-gyp-build-optional-packages": "bin.js", 5852 + "node-gyp-build-optional-packages-optional": "optional.js", 5853 + "node-gyp-build-optional-packages-test": "build-test.js" 5854 + } 5855 + }, 5856 + "node_modules/npm-run-path": { 5857 + "version": "5.3.0", 5858 + "license": "MIT", 5859 + "dependencies": { 5860 + "path-key": "^4.0.0" 5861 + }, 5862 + "engines": { 5863 + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" 5864 + }, 5865 + "funding": { 5866 + "url": "https://github.com/sponsors/sindresorhus" 5867 + } 5868 + }, 5869 + "node_modules/npm-run-path/node_modules/path-key": { 5870 + "version": "4.0.0", 5871 + "license": "MIT", 5872 + "engines": { 5873 + "node": ">=12" 5874 + }, 5875 + "funding": { 5876 + "url": "https://github.com/sponsors/sindresorhus" 5877 + } 5878 + }, 5879 + "node_modules/object-assign": { 5880 + "version": "4.1.1", 5881 + "license": "MIT", 5882 + "engines": { 5883 + "node": ">=0.10.0" 5884 + } 5885 + }, 5886 + "node_modules/object-inspect": { 5887 + "version": "1.13.4", 5888 + "dev": true, 5889 + "license": "MIT", 5890 + "engines": { 5891 + "node": ">= 0.4" 5892 + }, 5893 + "funding": { 5894 + "url": "https://github.com/sponsors/ljharb" 5895 + } 5896 + }, 5897 + "node_modules/object-keys": { 5898 + "version": "1.1.1", 5899 + "dev": true, 5900 + "license": "MIT", 5901 + "engines": { 5902 + "node": ">= 0.4" 5903 + } 5904 + }, 5905 + "node_modules/object.assign": { 5906 + "version": "4.1.7", 5907 + "dev": true, 5908 + "license": "MIT", 5909 + "dependencies": { 5910 + "call-bind": "^1.0.8", 5911 + "call-bound": "^1.0.3", 5912 + "define-properties": "^1.2.1", 5913 + "es-object-atoms": "^1.0.0", 5914 + "has-symbols": "^1.1.0", 5915 + "object-keys": "^1.1.1" 5916 + }, 5917 + "engines": { 5918 + "node": ">= 0.4" 5919 + }, 5920 + "funding": { 5921 + "url": "https://github.com/sponsors/ljharb" 5922 + } 5923 + }, 5924 + "node_modules/object.fromentries": { 5925 + "version": "2.0.8", 5926 + "dev": true, 5927 + "license": "MIT", 5928 + "dependencies": { 5929 + "call-bind": "^1.0.7", 5930 + "define-properties": "^1.2.1", 5931 + "es-abstract": "^1.23.2", 5932 + "es-object-atoms": "^1.0.0" 5933 + }, 5934 + "engines": { 5935 + "node": ">= 0.4" 5936 + }, 5937 + "funding": { 5938 + "url": "https://github.com/sponsors/ljharb" 5939 + } 5940 + }, 5941 + "node_modules/object.fromentries/node_modules/es-object-atoms": { 5942 + "version": "1.0.0", 5943 + "dev": true, 5944 + "license": "MIT", 5945 + "dependencies": { 5946 + "es-errors": "^1.3.0" 5947 + }, 5948 + "engines": { 5949 + "node": ">= 0.4" 5950 + } 5951 + }, 5952 + "node_modules/object.groupby": { 5953 + "version": "1.0.3", 5954 + "dev": true, 5955 + "license": "MIT", 5956 + "dependencies": { 5957 + "call-bind": "^1.0.7", 5958 + "define-properties": "^1.2.1", 5959 + "es-abstract": "^1.23.2" 5960 + }, 5961 + "engines": { 5962 + "node": ">= 0.4" 5963 + } 5964 + }, 5965 + "node_modules/object.values": { 5966 + "version": "1.2.1", 5967 + "dev": true, 5968 + "license": "MIT", 5969 + "dependencies": { 5970 + "call-bind": "^1.0.8", 5971 + "call-bound": "^1.0.3", 5972 + "define-properties": "^1.2.1", 5973 + "es-object-atoms": "^1.0.0" 5974 + }, 5975 + "engines": { 5976 + "node": ">= 0.4" 5977 + }, 5978 + "funding": { 5979 + "url": "https://github.com/sponsors/ljharb" 5980 + } 5981 + }, 5982 + "node_modules/object.values/node_modules/call-bound": { 5983 + "version": "1.0.3", 5984 + "dev": true, 5985 + "license": "MIT", 5986 + "dependencies": { 5987 + "call-bind-apply-helpers": "^1.0.1", 5988 + "get-intrinsic": "^1.2.6" 5989 + }, 5990 + "engines": { 5991 + "node": ">= 0.4" 5992 + }, 5993 + "funding": { 5994 + "url": "https://github.com/sponsors/ljharb" 5995 + } 5996 + }, 5997 + "node_modules/object.values/node_modules/call-bound/node_modules/get-intrinsic": { 5998 + "version": "1.2.6", 5999 + "dev": true, 6000 + "license": "MIT", 6001 + "dependencies": { 6002 + "call-bind-apply-helpers": "^1.0.1", 6003 + "dunder-proto": "^1.0.0", 6004 + "es-define-property": "^1.0.1", 6005 + "es-errors": "^1.3.0", 6006 + "es-object-atoms": "^1.0.0", 6007 + "function-bind": "^1.1.2", 6008 + "gopd": "^1.2.0", 6009 + "has-symbols": "^1.1.0", 6010 + "hasown": "^2.0.2", 6011 + "math-intrinsics": "^1.0.0" 6012 + }, 6013 + "engines": { 6014 + "node": ">= 0.4" 6015 + }, 6016 + "funding": { 6017 + "url": "https://github.com/sponsors/ljharb" 6018 + } 6019 + }, 6020 + "node_modules/object.values/node_modules/es-object-atoms": { 6021 + "version": "1.0.0", 6022 + "dev": true, 6023 + "license": "MIT", 6024 + "dependencies": { 6025 + "es-errors": "^1.3.0" 6026 + }, 6027 + "engines": { 6028 + "node": ">= 0.4" 6029 + } 6030 + }, 6031 + "node_modules/on-exit-leak-free": { 6032 + "version": "2.1.2", 6033 + "license": "MIT", 6034 + "engines": { 6035 + "node": ">=14.0.0" 6036 + } 6037 + }, 6038 + "node_modules/on-finished": { 6039 + "version": "2.4.1", 6040 + "license": "MIT", 6041 + "dependencies": { 6042 + "ee-first": "1.1.1" 6043 + }, 6044 + "engines": { 6045 + "node": ">= 0.8" 6046 + } 6047 + }, 6048 + "node_modules/on-headers": { 6049 + "version": "1.0.2", 6050 + "license": "MIT", 6051 + "engines": { 6052 + "node": ">= 0.8" 6053 + } 6054 + }, 6055 + "node_modules/once": { 6056 + "version": "1.4.0", 6057 + "license": "ISC", 6058 + "dependencies": { 6059 + "wrappy": "1" 6060 + } 6061 + }, 6062 + "node_modules/one-webcrypto": { 6063 + "version": "1.0.3", 6064 + "license": "MIT" 6065 + }, 6066 + "node_modules/onetime": { 6067 + "version": "6.0.0", 6068 + "license": "MIT", 6069 + "dependencies": { 6070 + "mimic-fn": "^4.0.0" 6071 + }, 6072 + "engines": { 6073 + "node": ">=12" 6074 + }, 6075 + "funding": { 6076 + "url": "https://github.com/sponsors/sindresorhus" 6077 + } 6078 + }, 6079 + "node_modules/optionator": { 6080 + "version": "0.9.4", 6081 + "dev": true, 6082 + "license": "MIT", 6083 + "dependencies": { 6084 + "deep-is": "^0.1.3", 6085 + "fast-levenshtein": "^2.0.6", 6086 + "levn": "^0.4.1", 6087 + "prelude-ls": "^1.2.1", 6088 + "type-check": "^0.4.0", 6089 + "word-wrap": "^1.2.5" 6090 + }, 6091 + "engines": { 6092 + "node": ">= 0.8.0" 6093 + } 6094 + }, 6095 + "node_modules/own-keys": { 6096 + "version": "1.0.1", 6097 + "dev": true, 6098 + "license": "MIT", 6099 + "dependencies": { 6100 + "get-intrinsic": "^1.2.6", 6101 + "object-keys": "^1.1.1", 6102 + "safe-push-apply": "^1.0.0" 6103 + }, 6104 + "engines": { 6105 + "node": ">= 0.4" 6106 + }, 6107 + "funding": { 6108 + "url": "https://github.com/sponsors/ljharb" 6109 + } 6110 + }, 6111 + "node_modules/p-finally": { 6112 + "version": "1.0.0", 6113 + "license": "MIT", 6114 + "engines": { 6115 + "node": ">=4" 6116 + } 6117 + }, 6118 + "node_modules/p-limit": { 6119 + "version": "3.1.0", 6120 + "dev": true, 6121 + "license": "MIT", 6122 + "dependencies": { 6123 + "yocto-queue": "^0.1.0" 6124 + }, 6125 + "engines": { 6126 + "node": ">=10" 6127 + }, 6128 + "funding": { 6129 + "url": "https://github.com/sponsors/sindresorhus" 6130 + } 6131 + }, 6132 + "node_modules/p-locate": { 6133 + "version": "5.0.0", 6134 + "dev": true, 6135 + "license": "MIT", 6136 + "dependencies": { 6137 + "p-limit": "^3.0.2" 6138 + }, 6139 + "engines": { 6140 + "node": ">=10" 6141 + }, 6142 + "funding": { 6143 + "url": "https://github.com/sponsors/sindresorhus" 6144 + } 6145 + }, 6146 + "node_modules/p-queue": { 6147 + "version": "6.6.2", 6148 + "license": "MIT", 6149 + "dependencies": { 6150 + "eventemitter3": "^4.0.4", 6151 + "p-timeout": "^3.2.0" 6152 + }, 6153 + "engines": { 6154 + "node": ">=8" 6155 + }, 6156 + "funding": { 6157 + "url": "https://github.com/sponsors/sindresorhus" 6158 + } 6159 + }, 6160 + "node_modules/p-ratelimit": { 6161 + "version": "1.0.1", 6162 + "license": "MIT", 6163 + "engines": { 6164 + "node": ">=10.23.0" 6165 + } 6166 + }, 6167 + "node_modules/p-timeout": { 6168 + "version": "3.2.0", 6169 + "license": "MIT", 6170 + "dependencies": { 6171 + "p-finally": "^1.0.0" 6172 + }, 6173 + "engines": { 6174 + "node": ">=8" 6175 + } 6176 + }, 6177 + "node_modules/p-wait-for": { 6178 + "version": "3.2.0", 6179 + "license": "MIT", 6180 + "dependencies": { 6181 + "p-timeout": "^3.0.0" 6182 + }, 6183 + "engines": { 6184 + "node": ">=8" 6185 + }, 6186 + "funding": { 6187 + "url": "https://github.com/sponsors/sindresorhus" 6188 + } 6189 + }, 6190 + "node_modules/parent-module": { 6191 + "version": "1.0.1", 6192 + "dev": true, 6193 + "license": "MIT", 6194 + "dependencies": { 6195 + "callsites": "^3.0.0" 6196 + }, 6197 + "engines": { 6198 + "node": ">=6" 6199 + } 6200 + }, 6201 + "node_modules/parseurl": { 6202 + "version": "1.3.3", 6203 + "license": "MIT", 6204 + "engines": { 6205 + "node": ">= 0.8" 6206 + } 6207 + }, 6208 + "node_modules/partysocket": { 6209 + "version": "1.0.3", 6210 + "license": "ISC", 6211 + "dependencies": { 6212 + "event-target-shim": "^6.0.2" 6213 + } 6214 + }, 6215 + "node_modules/path-exists": { 6216 + "version": "4.0.0", 6217 + "dev": true, 6218 + "license": "MIT", 6219 + "engines": { 6220 + "node": ">=8" 6221 + } 6222 + }, 6223 + "node_modules/path-key": { 6224 + "version": "3.1.1", 6225 + "license": "MIT", 6226 + "engines": { 6227 + "node": ">=8" 6228 + } 6229 + }, 6230 + "node_modules/path-parse": { 6231 + "version": "1.0.7", 6232 + "dev": true, 6233 + "license": "MIT" 6234 + }, 6235 + "node_modules/path-to-regexp": { 6236 + "version": "0.1.12", 6237 + "license": "MIT" 6238 + }, 6239 + "node_modules/path-type": { 6240 + "version": "4.0.0", 6241 + "dev": true, 6242 + "license": "MIT", 6243 + "engines": { 6244 + "node": ">=8" 6245 + } 6246 + }, 6247 + "node_modules/pg": { 6248 + "version": "8.13.1", 6249 + "license": "MIT", 6250 + "dependencies": { 6251 + "pg-connection-string": "^2.7.0", 6252 + "pg-pool": "^3.7.0", 6253 + "pg-protocol": "^1.7.0", 6254 + "pg-types": "^2.1.0", 6255 + "pgpass": "1.x" 6256 + }, 6257 + "engines": { 6258 + "node": ">= 8.0.0" 6259 + }, 6260 + "optionalDependencies": { 6261 + "pg-cloudflare": "^1.1.1" 6262 + }, 6263 + "peerDependencies": { 6264 + "pg-native": ">=3.0.1" 6265 + }, 6266 + "peerDependenciesMeta": { 6267 + "pg-native": { 6268 + "optional": true 6269 + } 6270 + } 6271 + }, 6272 + "node_modules/pg-cloudflare": { 6273 + "version": "1.1.1", 6274 + "license": "MIT", 6275 + "optional": true 6276 + }, 6277 + "node_modules/pg-connection-string": { 6278 + "version": "2.7.0", 6279 + "license": "MIT" 6280 + }, 6281 + "node_modules/pg-int8": { 6282 + "version": "1.0.1", 6283 + "license": "ISC", 6284 + "engines": { 6285 + "node": ">=4.0.0" 6286 + } 6287 + }, 6288 + "node_modules/pg-pool": { 6289 + "version": "3.7.0", 6290 + "license": "MIT", 6291 + "peerDependencies": { 6292 + "pg": ">=8.0" 6293 + } 6294 + }, 6295 + "node_modules/pg-protocol": { 6296 + "version": "1.7.0", 6297 + "license": "MIT" 6298 + }, 6299 + "node_modules/pg-types": { 6300 + "version": "2.2.0", 6301 + "license": "MIT", 6302 + "dependencies": { 6303 + "pg-int8": "1.0.1", 6304 + "postgres-array": "~2.0.0", 6305 + "postgres-bytea": "~1.0.0", 6306 + "postgres-date": "~1.0.4", 6307 + "postgres-interval": "^1.1.0" 6308 + }, 6309 + "engines": { 6310 + "node": ">=4" 6311 + } 6312 + }, 6313 + "node_modules/pgpass": { 6314 + "version": "1.0.5", 6315 + "license": "MIT", 6316 + "dependencies": { 6317 + "split2": "^4.1.0" 6318 + } 6319 + }, 6320 + "node_modules/picocolors": { 6321 + "version": "1.1.1", 6322 + "dev": true, 6323 + "license": "ISC" 6324 + }, 6325 + "node_modules/picomatch": { 6326 + "version": "4.0.3", 6327 + "dev": true, 6328 + "license": "MIT", 6329 + "engines": { 6330 + "node": ">=12" 6331 + }, 6332 + "funding": { 6333 + "url": "https://github.com/sponsors/jonschlinkert" 6334 + } 6335 + }, 6336 + "node_modules/pidtree": { 6337 + "version": "0.6.0", 6338 + "license": "MIT", 6339 + "bin": { 6340 + "pidtree": "bin/pidtree.js" 6341 + }, 6342 + "engines": { 6343 + "node": ">=0.10" 6344 + } 6345 + }, 6346 + "node_modules/pino": { 6347 + "version": "9.6.0", 6348 + "license": "MIT", 6349 + "dependencies": { 6350 + "atomic-sleep": "^1.0.0", 6351 + "fast-redact": "^3.1.1", 6352 + "on-exit-leak-free": "^2.1.0", 6353 + "pino-abstract-transport": "^2.0.0", 6354 + "pino-std-serializers": "^7.0.0", 6355 + "process-warning": "^4.0.0", 6356 + "quick-format-unescaped": "^4.0.3", 6357 + "real-require": "^0.2.0", 6358 + "safe-stable-stringify": "^2.3.1", 6359 + "sonic-boom": "^4.0.1", 6360 + "thread-stream": "^3.0.0" 6361 + }, 6362 + "bin": { 6363 + "pino": "bin.js" 6364 + } 6365 + }, 6366 + "node_modules/pino-abstract-transport": { 6367 + "version": "2.0.0", 6368 + "license": "MIT", 6369 + "dependencies": { 6370 + "split2": "^4.0.0" 6371 + } 6372 + }, 6373 + "node_modules/pino-http": { 6374 + "version": "8.6.1", 6375 + "license": "MIT", 6376 + "dependencies": { 6377 + "get-caller-file": "^2.0.5", 6378 + "pino": "^8.17.1", 6379 + "pino-std-serializers": "^6.2.2", 6380 + "process-warning": "^3.0.0" 6381 + } 6382 + }, 6383 + "node_modules/pino-http/node_modules/pino": { 6384 + "version": "8.21.0", 6385 + "license": "MIT", 6386 + "dependencies": { 6387 + "atomic-sleep": "^1.0.0", 6388 + "fast-redact": "^3.1.1", 6389 + "on-exit-leak-free": "^2.1.0", 6390 + "pino-abstract-transport": "^1.2.0", 6391 + "pino-std-serializers": "^6.0.0", 6392 + "process-warning": "^3.0.0", 6393 + "quick-format-unescaped": "^4.0.3", 6394 + "real-require": "^0.2.0", 6395 + "safe-stable-stringify": "^2.3.1", 6396 + "sonic-boom": "^3.7.0", 6397 + "thread-stream": "^2.6.0" 6398 + }, 6399 + "bin": { 6400 + "pino": "bin.js" 6401 + } 6402 + }, 6403 + "node_modules/pino-http/node_modules/pino-std-serializers": { 6404 + "version": "6.2.2", 6405 + "license": "MIT" 6406 + }, 6407 + "node_modules/pino-http/node_modules/pino/node_modules/pino-abstract-transport": { 6408 + "version": "1.2.0", 6409 + "license": "MIT", 6410 + "dependencies": { 6411 + "readable-stream": "^4.0.0", 6412 + "split2": "^4.0.0" 6413 + } 6414 + }, 6415 + "node_modules/pino-http/node_modules/pino/node_modules/sonic-boom": { 6416 + "version": "3.8.1", 6417 + "license": "MIT", 6418 + "dependencies": { 6419 + "atomic-sleep": "^1.0.0" 6420 + } 6421 + }, 6422 + "node_modules/pino-http/node_modules/pino/node_modules/thread-stream": { 6423 + "version": "2.7.0", 6424 + "license": "MIT", 6425 + "dependencies": { 6426 + "real-require": "^0.2.0" 6427 + } 6428 + }, 6429 + "node_modules/pino-http/node_modules/process-warning": { 6430 + "version": "3.0.0", 6431 + "license": "MIT" 6432 + }, 6433 + "node_modules/pino-pretty": { 6434 + "version": "13.0.0", 6435 + "license": "MIT", 6436 + "dependencies": { 6437 + "colorette": "^2.0.7", 6438 + "dateformat": "^4.6.3", 6439 + "fast-copy": "^3.0.2", 6440 + "fast-safe-stringify": "^2.1.1", 6441 + "help-me": "^5.0.0", 6442 + "joycon": "^3.1.1", 6443 + "minimist": "^1.2.6", 6444 + "on-exit-leak-free": "^2.1.0", 6445 + "pino-abstract-transport": "^2.0.0", 6446 + "pump": "^3.0.0", 6447 + "secure-json-parse": "^2.4.0", 6448 + "sonic-boom": "^4.0.1", 6449 + "strip-json-comments": "^3.1.1" 6450 + }, 6451 + "bin": { 6452 + "pino-pretty": "bin.js" 6453 + } 6454 + }, 6455 + "node_modules/pino-std-serializers": { 6456 + "version": "7.0.0", 6457 + "license": "MIT" 6458 + }, 6459 + "node_modules/possible-typed-array-names": { 6460 + "version": "1.1.0", 6461 + "dev": true, 6462 + "license": "MIT", 6463 + "engines": { 6464 + "node": ">= 0.4" 6465 + } 6466 + }, 6467 + "node_modules/postgres-array": { 6468 + "version": "2.0.0", 6469 + "license": "MIT", 6470 + "engines": { 6471 + "node": ">=4" 6472 + } 6473 + }, 6474 + "node_modules/postgres-bytea": { 6475 + "version": "1.0.0", 6476 + "license": "MIT", 6477 + "engines": { 6478 + "node": ">=0.10.0" 6479 + } 6480 + }, 6481 + "node_modules/postgres-date": { 6482 + "version": "1.0.7", 6483 + "license": "MIT", 6484 + "engines": { 6485 + "node": ">=0.10.0" 6486 + } 6487 + }, 6488 + "node_modules/postgres-interval": { 6489 + "version": "1.2.0", 6490 + "license": "MIT", 6491 + "dependencies": { 6492 + "xtend": "^4.0.0" 6493 + }, 6494 + "engines": { 6495 + "node": ">=0.10.0" 6496 + } 6497 + }, 6498 + "node_modules/prelude-ls": { 6499 + "version": "1.2.1", 6500 + "dev": true, 6501 + "license": "MIT", 6502 + "engines": { 6503 + "node": ">= 0.8.0" 6504 + } 6505 + }, 6506 + "node_modules/prettier": { 6507 + "version": "3.5.3", 6508 + "dev": true, 6509 + "license": "MIT", 6510 + "bin": { 6511 + "prettier": "bin/prettier.cjs" 6512 + }, 6513 + "engines": { 6514 + "node": ">=14" 6515 + }, 6516 + "funding": { 6517 + "url": "https://github.com/prettier/prettier?sponsor=1" 6518 + } 6519 + }, 6520 + "node_modules/prettier-linter-helpers": { 6521 + "version": "1.0.0", 6522 + "dev": true, 6523 + "license": "MIT", 6524 + "dependencies": { 6525 + "fast-diff": "^1.1.2" 6526 + }, 6527 + "engines": { 6528 + "node": ">=6.0.0" 6529 + } 6530 + }, 6531 + "node_modules/process": { 6532 + "version": "0.11.10", 6533 + "license": "MIT", 6534 + "engines": { 6535 + "node": ">= 0.6.0" 6536 + } 6537 + }, 6538 + "node_modules/process-warning": { 6539 + "version": "4.0.0", 6540 + "license": "MIT" 6541 + }, 6542 + "node_modules/prom-client": { 6543 + "version": "15.1.3", 6544 + "license": "Apache-2.0", 6545 + "dependencies": { 6546 + "@opentelemetry/api": "^1.4.0", 6547 + "tdigest": "^0.1.1" 6548 + }, 6549 + "engines": { 6550 + "node": "^16 || ^18 || >=20" 6551 + } 6552 + }, 6553 + "node_modules/prompts": { 6554 + "version": "2.4.2", 6555 + "license": "MIT", 6556 + "dependencies": { 6557 + "kleur": "^3.0.3", 6558 + "sisteransi": "^1.0.5" 6559 + }, 6560 + "engines": { 6561 + "node": ">= 6" 6562 + } 6563 + }, 6564 + "node_modules/proxy-addr": { 6565 + "version": "2.0.7", 6566 + "license": "MIT", 6567 + "dependencies": { 6568 + "forwarded": "0.2.0", 6569 + "ipaddr.js": "1.9.1" 6570 + }, 6571 + "engines": { 6572 + "node": ">= 0.10" 6573 + } 6574 + }, 6575 + "node_modules/proxy-from-env": { 6576 + "version": "1.1.0", 6577 + "license": "MIT" 6578 + }, 6579 + "node_modules/pump": { 6580 + "version": "3.0.2", 6581 + "license": "MIT", 6582 + "dependencies": { 6583 + "end-of-stream": "^1.1.0", 6584 + "once": "^1.3.1" 6585 + } 6586 + }, 6587 + "node_modules/punycode": { 6588 + "version": "2.3.1", 6589 + "dev": true, 6590 + "license": "MIT", 6591 + "engines": { 6592 + "node": ">=6" 6593 + } 6594 + }, 6595 + "node_modules/qs": { 6596 + "version": "6.13.0", 6597 + "license": "BSD-3-Clause", 6598 + "dependencies": { 6599 + "side-channel": "^1.0.6" 6600 + }, 6601 + "engines": { 6602 + "node": ">=0.6" 6603 + }, 6604 + "funding": { 6605 + "url": "https://github.com/sponsors/ljharb" 6606 + } 6607 + }, 6608 + "node_modules/queue-microtask": { 6609 + "version": "1.2.3", 6610 + "dev": true, 6611 + "funding": [ 6612 + { 6613 + "type": "github", 6614 + "url": "https://github.com/sponsors/feross" 6615 + }, 6616 + { 6617 + "type": "patreon", 6618 + "url": "https://www.patreon.com/feross" 6619 + }, 6620 + { 6621 + "type": "consulting", 6622 + "url": "https://feross.org/support" 6623 + } 6624 + ], 6625 + "license": "MIT" 6626 + }, 6627 + "node_modules/quick-format-unescaped": { 6628 + "version": "4.0.4", 6629 + "license": "MIT" 6630 + }, 6631 + "node_modules/quick-lru": { 6632 + "version": "7.0.0", 6633 + "license": "MIT", 6634 + "engines": { 6635 + "node": ">=18" 6636 + }, 6637 + "funding": { 6638 + "url": "https://github.com/sponsors/sindresorhus" 6639 + } 6640 + }, 6641 + "node_modules/range-parser": { 6642 + "version": "1.2.1", 6643 + "license": "MIT", 6644 + "engines": { 6645 + "node": ">= 0.6" 6646 + } 6647 + }, 6648 + "node_modules/rate-limit-threshold": { 6649 + "version": "0.1.5", 6650 + "license": "MIT", 6651 + "engines": { 6652 + "node": "^14.13.1 || >=16.0.0" 6653 + } 6654 + }, 6655 + "node_modules/rate-limiter-flexible": { 6656 + "version": "2.4.2", 6657 + "license": "ISC" 6658 + }, 6659 + "node_modules/raw-body": { 6660 + "version": "2.5.2", 6661 + "license": "MIT", 6662 + "dependencies": { 6663 + "bytes": "3.1.2", 6664 + "http-errors": "2.0.0", 6665 + "iconv-lite": "0.4.24", 6666 + "unpipe": "1.0.0" 6667 + }, 6668 + "engines": { 6669 + "node": ">= 0.8" 6670 + } 6671 + }, 6672 + "node_modules/readable-stream": { 6673 + "version": "4.6.0", 6674 + "license": "MIT", 6675 + "dependencies": { 6676 + "abort-controller": "^3.0.0", 6677 + "buffer": "^6.0.3", 6678 + "events": "^3.3.0", 6679 + "process": "^0.11.10", 6680 + "string_decoder": "^1.3.0" 6681 + }, 6682 + "engines": { 6683 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 6684 + } 6685 + }, 6686 + "node_modules/real-require": { 6687 + "version": "0.2.0", 6688 + "license": "MIT", 6689 + "engines": { 6690 + "node": ">= 12.13.0" 6691 + } 6692 + }, 6693 + "node_modules/redis-errors": { 6694 + "version": "1.2.0", 6695 + "license": "MIT", 6696 + "engines": { 6697 + "node": ">=4" 6698 + } 6699 + }, 6700 + "node_modules/redis-parser": { 6701 + "version": "3.0.0", 6702 + "license": "MIT", 6703 + "dependencies": { 6704 + "redis-errors": "^1.0.0" 6705 + }, 6706 + "engines": { 6707 + "node": ">=4" 6708 + } 6709 + }, 6710 + "node_modules/reflect.getprototypeof": { 6711 + "version": "1.0.10", 6712 + "dev": true, 6713 + "license": "MIT", 6714 + "dependencies": { 6715 + "call-bind": "^1.0.8", 6716 + "define-properties": "^1.2.1", 6717 + "es-abstract": "^1.23.9", 6718 + "es-errors": "^1.3.0", 6719 + "es-object-atoms": "^1.0.0", 6720 + "get-intrinsic": "^1.2.7", 6721 + "get-proto": "^1.0.1", 6722 + "which-builtin-type": "^1.2.1" 6723 + }, 6724 + "engines": { 6725 + "node": ">= 0.4" 6726 + }, 6727 + "funding": { 6728 + "url": "https://github.com/sponsors/ljharb" 6729 + } 6730 + }, 6731 + "node_modules/regexp.prototype.flags": { 6732 + "version": "1.5.4", 6733 + "dev": true, 6734 + "license": "MIT", 6735 + "dependencies": { 6736 + "call-bind": "^1.0.8", 6737 + "define-properties": "^1.2.1", 6738 + "es-errors": "^1.3.0", 6739 + "get-proto": "^1.0.1", 6740 + "gopd": "^1.2.0", 6741 + "set-function-name": "^2.0.2" 6742 + }, 6743 + "engines": { 6744 + "node": ">= 0.4" 6745 + }, 6746 + "funding": { 6747 + "url": "https://github.com/sponsors/ljharb" 6748 + } 6749 + }, 6750 + "node_modules/require-from-string": { 6751 + "version": "2.0.2", 6752 + "license": "MIT", 6753 + "engines": { 6754 + "node": ">=0.10.0" 6755 + } 6756 + }, 6757 + "node_modules/resolve": { 6758 + "version": "1.22.10", 6759 + "dev": true, 6760 + "license": "MIT", 6761 + "dependencies": { 6762 + "is-core-module": "^2.16.0", 6763 + "path-parse": "^1.0.7", 6764 + "supports-preserve-symlinks-flag": "^1.0.0" 6765 + }, 6766 + "bin": { 6767 + "resolve": "bin/resolve" 6768 + }, 6769 + "engines": { 6770 + "node": ">= 0.4" 6771 + }, 6772 + "funding": { 6773 + "url": "https://github.com/sponsors/ljharb" 6774 + } 6775 + }, 6776 + "node_modules/resolve-from": { 6777 + "version": "4.0.0", 6778 + "dev": true, 6779 + "license": "MIT", 6780 + "engines": { 6781 + "node": ">=4" 6782 + } 6783 + }, 6784 + "node_modules/resolve-pkg-maps": { 6785 + "version": "1.0.0", 6786 + "dev": true, 6787 + "license": "MIT", 6788 + "funding": { 6789 + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" 6790 + } 6791 + }, 6792 + "node_modules/restore-cursor": { 6793 + "version": "5.1.0", 6794 + "license": "MIT", 6795 + "dependencies": { 6796 + "onetime": "^7.0.0", 6797 + "signal-exit": "^4.1.0" 6798 + }, 6799 + "engines": { 6800 + "node": ">=18" 6801 + }, 6802 + "funding": { 6803 + "url": "https://github.com/sponsors/sindresorhus" 6804 + } 6805 + }, 6806 + "node_modules/restore-cursor/node_modules/onetime": { 6807 + "version": "7.0.0", 6808 + "license": "MIT", 6809 + "dependencies": { 6810 + "mimic-function": "^5.0.0" 6811 + }, 6812 + "engines": { 6813 + "node": ">=18" 6814 + }, 6815 + "funding": { 6816 + "url": "https://github.com/sponsors/sindresorhus" 6817 + } 6818 + }, 6819 + "node_modules/ret": { 6820 + "version": "0.4.3", 6821 + "license": "MIT", 6822 + "engines": { 6823 + "node": ">=10" 6824 + } 6825 + }, 6826 + "node_modules/reusify": { 6827 + "version": "1.0.4", 6828 + "license": "MIT", 6829 + "engines": { 6830 + "iojs": ">=1.0.0", 6831 + "node": ">=0.10.0" 6832 + } 6833 + }, 6834 + "node_modules/rfdc": { 6835 + "version": "1.4.1", 6836 + "license": "MIT" 6837 + }, 6838 + "node_modules/roarr": { 6839 + "version": "7.21.1", 6840 + "license": "BSD-3-Clause", 6841 + "dependencies": { 6842 + "fast-printf": "^1.6.9", 6843 + "safe-stable-stringify": "^2.4.3", 6844 + "semver-compare": "^1.0.0" 6845 + }, 6846 + "engines": { 6847 + "node": ">=18.0" 6848 + } 6849 + }, 6850 + "node_modules/run-parallel": { 6851 + "version": "1.2.0", 6852 + "dev": true, 6853 + "funding": [ 6854 + { 6855 + "type": "github", 6856 + "url": "https://github.com/sponsors/feross" 6857 + }, 6858 + { 6859 + "type": "patreon", 6860 + "url": "https://www.patreon.com/feross" 6861 + }, 6862 + { 6863 + "type": "consulting", 6864 + "url": "https://feross.org/support" 6865 + } 6866 + ], 6867 + "license": "MIT", 6868 + "dependencies": { 6869 + "queue-microtask": "^1.2.2" 6870 + } 6871 + }, 6872 + "node_modules/rxjs": { 6873 + "version": "7.8.1", 6874 + "license": "Apache-2.0", 6875 + "optional": true, 6876 + "dependencies": { 6877 + "tslib": "^2.1.0" 6878 + } 6879 + }, 6880 + "node_modules/safe-array-concat": { 6881 + "version": "1.1.3", 6882 + "dev": true, 6883 + "license": "MIT", 6884 + "dependencies": { 6885 + "call-bind": "^1.0.8", 6886 + "call-bound": "^1.0.2", 6887 + "get-intrinsic": "^1.2.6", 6888 + "has-symbols": "^1.1.0", 6889 + "isarray": "^2.0.5" 6890 + }, 6891 + "engines": { 6892 + "node": ">=0.4" 6893 + }, 6894 + "funding": { 6895 + "url": "https://github.com/sponsors/ljharb" 6896 + } 6897 + }, 6898 + "node_modules/safe-buffer": { 6899 + "version": "5.2.1", 6900 + "funding": [ 6901 + { 6902 + "type": "github", 6903 + "url": "https://github.com/sponsors/feross" 6904 + }, 6905 + { 6906 + "type": "patreon", 6907 + "url": "https://www.patreon.com/feross" 6908 + }, 6909 + { 6910 + "type": "consulting", 6911 + "url": "https://feross.org/support" 6912 + } 6913 + ], 6914 + "license": "MIT" 6915 + }, 6916 + "node_modules/safe-push-apply": { 6917 + "version": "1.0.0", 6918 + "dev": true, 6919 + "license": "MIT", 6920 + "dependencies": { 6921 + "es-errors": "^1.3.0", 6922 + "isarray": "^2.0.5" 6923 + }, 6924 + "engines": { 6925 + "node": ">= 0.4" 6926 + }, 6927 + "funding": { 6928 + "url": "https://github.com/sponsors/ljharb" 6929 + } 6930 + }, 6931 + "node_modules/safe-regex-test": { 6932 + "version": "1.1.0", 6933 + "dev": true, 6934 + "license": "MIT", 6935 + "dependencies": { 6936 + "call-bound": "^1.0.2", 6937 + "es-errors": "^1.3.0", 6938 + "is-regex": "^1.2.1" 6939 + }, 6940 + "engines": { 6941 + "node": ">= 0.4" 6942 + }, 6943 + "funding": { 6944 + "url": "https://github.com/sponsors/ljharb" 6945 + } 6946 + }, 6947 + "node_modules/safe-regex2": { 6948 + "version": "3.1.0", 6949 + "license": "MIT", 6950 + "dependencies": { 6951 + "ret": "~0.4.0" 6952 + } 6953 + }, 6954 + "node_modules/safe-stable-stringify": { 6955 + "version": "2.5.0", 6956 + "license": "MIT", 6957 + "engines": { 6958 + "node": ">=10" 6959 + } 6960 + }, 6961 + "node_modules/safer-buffer": { 6962 + "version": "2.1.2", 6963 + "license": "MIT" 6964 + }, 6965 + "node_modules/secure-json-parse": { 6966 + "version": "2.7.0", 6967 + "license": "BSD-3-Clause" 6968 + }, 6969 + "node_modules/semver": { 6970 + "version": "7.6.3", 6971 + "license": "ISC", 6972 + "bin": { 6973 + "semver": "bin/semver.js" 6974 + }, 6975 + "engines": { 6976 + "node": ">=10" 6977 + } 6978 + }, 6979 + "node_modules/semver-compare": { 6980 + "version": "1.0.0", 6981 + "license": "MIT" 6982 + }, 6983 + "node_modules/send": { 6984 + "version": "0.19.0", 6985 + "license": "MIT", 6986 + "dependencies": { 6987 + "debug": "2.6.9", 6988 + "depd": "2.0.0", 6989 + "destroy": "1.2.0", 6990 + "encodeurl": "~1.0.2", 6991 + "escape-html": "~1.0.3", 6992 + "etag": "~1.8.1", 6993 + "fresh": "0.5.2", 6994 + "http-errors": "2.0.0", 6995 + "mime": "1.6.0", 6996 + "ms": "2.1.3", 6997 + "on-finished": "2.4.1", 6998 + "range-parser": "~1.2.1", 6999 + "statuses": "2.0.1" 7000 + }, 7001 + "engines": { 7002 + "node": ">= 0.8.0" 7003 + } 7004 + }, 7005 + "node_modules/send/node_modules/debug": { 7006 + "version": "2.6.9", 7007 + "license": "MIT", 7008 + "dependencies": { 7009 + "ms": "2.0.0" 7010 + } 7011 + }, 7012 + "node_modules/send/node_modules/debug/node_modules/ms": { 7013 + "version": "2.0.0", 7014 + "license": "MIT" 7015 + }, 7016 + "node_modules/send/node_modules/encodeurl": { 7017 + "version": "1.0.2", 7018 + "license": "MIT", 7019 + "engines": { 7020 + "node": ">= 0.8" 7021 + } 7022 + }, 7023 + "node_modules/serve-static": { 7024 + "version": "1.16.2", 7025 + "license": "MIT", 7026 + "dependencies": { 7027 + "encodeurl": "~2.0.0", 7028 + "escape-html": "~1.0.3", 7029 + "parseurl": "~1.3.3", 7030 + "send": "0.19.0" 7031 + }, 7032 + "engines": { 7033 + "node": ">= 0.8.0" 7034 + } 7035 + }, 7036 + "node_modules/set-cookie-parser": { 7037 + "version": "2.7.1", 7038 + "license": "MIT" 7039 + }, 7040 + "node_modules/set-function-length": { 7041 + "version": "1.2.2", 7042 + "dev": true, 7043 + "license": "MIT", 7044 + "dependencies": { 7045 + "define-data-property": "^1.1.4", 7046 + "es-errors": "^1.3.0", 7047 + "function-bind": "^1.1.2", 7048 + "get-intrinsic": "^1.2.4", 7049 + "gopd": "^1.0.1", 7050 + "has-property-descriptors": "^1.0.2" 7051 + }, 7052 + "engines": { 7053 + "node": ">= 0.4" 7054 + } 7055 + }, 7056 + "node_modules/set-function-name": { 7057 + "version": "2.0.2", 7058 + "dev": true, 7059 + "license": "MIT", 7060 + "dependencies": { 7061 + "define-data-property": "^1.1.4", 7062 + "es-errors": "^1.3.0", 7063 + "functions-have-names": "^1.2.3", 7064 + "has-property-descriptors": "^1.0.2" 7065 + }, 7066 + "engines": { 7067 + "node": ">= 0.4" 7068 + } 7069 + }, 7070 + "node_modules/set-proto": { 7071 + "version": "1.0.0", 7072 + "dev": true, 7073 + "license": "MIT", 7074 + "dependencies": { 7075 + "dunder-proto": "^1.0.1", 7076 + "es-errors": "^1.3.0", 7077 + "es-object-atoms": "^1.0.0" 7078 + }, 7079 + "engines": { 7080 + "node": ">= 0.4" 7081 + } 7082 + }, 7083 + "node_modules/setprototypeof": { 7084 + "version": "1.2.0", 7085 + "license": "ISC" 7086 + }, 7087 + "node_modules/sharp": { 7088 + "version": "0.33.5", 7089 + "hasInstallScript": true, 7090 + "license": "Apache-2.0", 7091 + "dependencies": { 7092 + "color": "^4.2.3", 7093 + "detect-libc": "^2.0.3", 7094 + "semver": "^7.6.3" 7095 + }, 7096 + "engines": { 7097 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 7098 + }, 7099 + "funding": { 7100 + "url": "https://opencollective.com/libvips" 7101 + }, 7102 + "optionalDependencies": { 7103 + "@img/sharp-darwin-arm64": "0.33.5", 7104 + "@img/sharp-darwin-x64": "0.33.5", 7105 + "@img/sharp-libvips-darwin-arm64": "1.0.4", 7106 + "@img/sharp-libvips-darwin-x64": "1.0.4", 7107 + "@img/sharp-libvips-linux-arm": "1.0.5", 7108 + "@img/sharp-libvips-linux-arm64": "1.0.4", 7109 + "@img/sharp-libvips-linux-s390x": "1.0.4", 7110 + "@img/sharp-libvips-linux-x64": "1.0.4", 7111 + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", 7112 + "@img/sharp-libvips-linuxmusl-x64": "1.0.4", 7113 + "@img/sharp-linux-arm": "0.33.5", 7114 + "@img/sharp-linux-arm64": "0.33.5", 7115 + "@img/sharp-linux-s390x": "0.33.5", 7116 + "@img/sharp-linux-x64": "0.33.5", 7117 + "@img/sharp-linuxmusl-arm64": "0.33.5", 7118 + "@img/sharp-linuxmusl-x64": "0.33.5", 7119 + "@img/sharp-wasm32": "0.33.5", 7120 + "@img/sharp-win32-ia32": "0.33.5", 7121 + "@img/sharp-win32-x64": "0.33.5" 7122 + } 7123 + }, 7124 + "node_modules/shebang-command": { 7125 + "version": "2.0.0", 7126 + "license": "MIT", 7127 + "dependencies": { 7128 + "shebang-regex": "^3.0.0" 7129 + }, 7130 + "engines": { 7131 + "node": ">=8" 7132 + } 7133 + }, 7134 + "node_modules/shebang-regex": { 7135 + "version": "3.0.0", 7136 + "license": "MIT", 7137 + "engines": { 7138 + "node": ">=8" 7139 + } 7140 + }, 7141 + "node_modules/side-channel": { 7142 + "version": "1.1.0", 7143 + "license": "MIT", 7144 + "dependencies": { 7145 + "es-errors": "^1.3.0", 7146 + "object-inspect": "^1.13.3", 7147 + "side-channel-list": "^1.0.0", 7148 + "side-channel-map": "^1.0.1", 7149 + "side-channel-weakmap": "^1.0.2" 7150 + }, 7151 + "engines": { 7152 + "node": ">= 0.4" 7153 + }, 7154 + "funding": { 7155 + "url": "https://github.com/sponsors/ljharb" 7156 + } 7157 + }, 7158 + "node_modules/side-channel-list": { 7159 + "version": "1.0.0", 7160 + "license": "MIT", 7161 + "dependencies": { 7162 + "es-errors": "^1.3.0", 7163 + "object-inspect": "^1.13.3" 7164 + }, 7165 + "engines": { 7166 + "node": ">= 0.4" 7167 + }, 7168 + "funding": { 7169 + "url": "https://github.com/sponsors/ljharb" 7170 + } 7171 + }, 7172 + "node_modules/side-channel-list/node_modules/object-inspect": { 7173 + "version": "1.13.3", 7174 + "license": "MIT", 7175 + "engines": { 7176 + "node": ">= 0.4" 7177 + }, 7178 + "funding": { 7179 + "url": "https://github.com/sponsors/ljharb" 7180 + } 7181 + }, 7182 + "node_modules/side-channel-map": { 7183 + "version": "1.0.1", 7184 + "license": "MIT", 7185 + "dependencies": { 7186 + "call-bound": "^1.0.2", 7187 + "es-errors": "^1.3.0", 7188 + "get-intrinsic": "^1.2.5", 7189 + "object-inspect": "^1.13.3" 7190 + }, 7191 + "engines": { 7192 + "node": ">= 0.4" 7193 + }, 7194 + "funding": { 7195 + "url": "https://github.com/sponsors/ljharb" 7196 + } 7197 + }, 7198 + "node_modules/side-channel-map/node_modules/call-bound": { 7199 + "version": "1.0.3", 7200 + "license": "MIT", 7201 + "dependencies": { 7202 + "call-bind-apply-helpers": "^1.0.1", 7203 + "get-intrinsic": "^1.2.6" 7204 + }, 7205 + "engines": { 7206 + "node": ">= 0.4" 7207 + }, 7208 + "funding": { 7209 + "url": "https://github.com/sponsors/ljharb" 7210 + } 7211 + }, 7212 + "node_modules/side-channel-map/node_modules/get-intrinsic": { 7213 + "version": "1.2.6", 7214 + "license": "MIT", 7215 + "dependencies": { 7216 + "call-bind-apply-helpers": "^1.0.1", 7217 + "dunder-proto": "^1.0.0", 7218 + "es-define-property": "^1.0.1", 7219 + "es-errors": "^1.3.0", 7220 + "es-object-atoms": "^1.0.0", 7221 + "function-bind": "^1.1.2", 7222 + "gopd": "^1.2.0", 7223 + "has-symbols": "^1.1.0", 7224 + "hasown": "^2.0.2", 7225 + "math-intrinsics": "^1.0.0" 7226 + }, 7227 + "engines": { 7228 + "node": ">= 0.4" 7229 + }, 7230 + "funding": { 7231 + "url": "https://github.com/sponsors/ljharb" 7232 + } 7233 + }, 7234 + "node_modules/side-channel-map/node_modules/get-intrinsic/node_modules/es-object-atoms": { 7235 + "version": "1.0.0", 7236 + "license": "MIT", 7237 + "dependencies": { 7238 + "es-errors": "^1.3.0" 7239 + }, 7240 + "engines": { 7241 + "node": ">= 0.4" 7242 + } 7243 + }, 7244 + "node_modules/side-channel-map/node_modules/object-inspect": { 7245 + "version": "1.13.3", 7246 + "license": "MIT", 7247 + "engines": { 7248 + "node": ">= 0.4" 7249 + }, 7250 + "funding": { 7251 + "url": "https://github.com/sponsors/ljharb" 7252 + } 7253 + }, 7254 + "node_modules/side-channel-weakmap": { 7255 + "version": "1.0.2", 7256 + "license": "MIT", 7257 + "dependencies": { 7258 + "call-bound": "^1.0.2", 7259 + "es-errors": "^1.3.0", 7260 + "get-intrinsic": "^1.2.5", 7261 + "object-inspect": "^1.13.3", 7262 + "side-channel-map": "^1.0.1" 7263 + }, 7264 + "engines": { 7265 + "node": ">= 0.4" 7266 + }, 7267 + "funding": { 7268 + "url": "https://github.com/sponsors/ljharb" 7269 + } 7270 + }, 7271 + "node_modules/side-channel-weakmap/node_modules/call-bound": { 7272 + "version": "1.0.3", 7273 + "license": "MIT", 7274 + "dependencies": { 7275 + "call-bind-apply-helpers": "^1.0.1", 7276 + "get-intrinsic": "^1.2.6" 7277 + }, 7278 + "engines": { 7279 + "node": ">= 0.4" 7280 + }, 7281 + "funding": { 7282 + "url": "https://github.com/sponsors/ljharb" 7283 + } 7284 + }, 7285 + "node_modules/side-channel-weakmap/node_modules/get-intrinsic": { 7286 + "version": "1.2.6", 7287 + "license": "MIT", 7288 + "dependencies": { 7289 + "call-bind-apply-helpers": "^1.0.1", 7290 + "dunder-proto": "^1.0.0", 7291 + "es-define-property": "^1.0.1", 7292 + "es-errors": "^1.3.0", 7293 + "es-object-atoms": "^1.0.0", 7294 + "function-bind": "^1.1.2", 7295 + "gopd": "^1.2.0", 7296 + "has-symbols": "^1.1.0", 7297 + "hasown": "^2.0.2", 7298 + "math-intrinsics": "^1.0.0" 7299 + }, 7300 + "engines": { 7301 + "node": ">= 0.4" 7302 + }, 7303 + "funding": { 7304 + "url": "https://github.com/sponsors/ljharb" 7305 + } 7306 + }, 7307 + "node_modules/side-channel-weakmap/node_modules/get-intrinsic/node_modules/es-object-atoms": { 7308 + "version": "1.0.0", 7309 + "license": "MIT", 7310 + "dependencies": { 7311 + "es-errors": "^1.3.0" 7312 + }, 7313 + "engines": { 7314 + "node": ">= 0.4" 7315 + } 7316 + }, 7317 + "node_modules/side-channel-weakmap/node_modules/object-inspect": { 7318 + "version": "1.13.3", 7319 + "license": "MIT", 7320 + "engines": { 7321 + "node": ">= 0.4" 7322 + }, 7323 + "funding": { 7324 + "url": "https://github.com/sponsors/ljharb" 7325 + } 7326 + }, 7327 + "node_modules/side-channel/node_modules/object-inspect": { 7328 + "version": "1.13.3", 7329 + "license": "MIT", 7330 + "engines": { 7331 + "node": ">= 0.4" 7332 + }, 7333 + "funding": { 7334 + "url": "https://github.com/sponsors/ljharb" 7335 + } 7336 + }, 7337 + "node_modules/signal-exit": { 7338 + "version": "4.1.0", 7339 + "license": "ISC", 7340 + "engines": { 7341 + "node": ">=14" 7342 + }, 7343 + "funding": { 7344 + "url": "https://github.com/sponsors/isaacs" 7345 + } 7346 + }, 7347 + "node_modules/simple-swizzle": { 7348 + "version": "0.2.2", 7349 + "license": "MIT", 7350 + "dependencies": { 7351 + "is-arrayish": "^0.3.1" 7352 + } 7353 + }, 7354 + "node_modules/sisteransi": { 7355 + "version": "1.0.5", 7356 + "license": "MIT" 7357 + }, 7358 + "node_modules/slash": { 7359 + "version": "3.0.0", 7360 + "dev": true, 7361 + "license": "MIT", 7362 + "engines": { 7363 + "node": ">=8" 7364 + } 7365 + }, 7366 + "node_modules/slice-ansi": { 7367 + "version": "5.0.0", 7368 + "license": "MIT", 7369 + "dependencies": { 7370 + "ansi-styles": "^6.0.0", 7371 + "is-fullwidth-code-point": "^4.0.0" 7372 + }, 7373 + "engines": { 7374 + "node": ">=12" 7375 + }, 7376 + "funding": { 7377 + "url": "https://github.com/chalk/slice-ansi?sponsor=1" 7378 + } 7379 + }, 7380 + "node_modules/slice-ansi/node_modules/ansi-styles": { 7381 + "version": "6.2.1", 7382 + "license": "MIT", 7383 + "engines": { 7384 + "node": ">=12" 7385 + }, 7386 + "funding": { 7387 + "url": "https://github.com/chalk/ansi-styles?sponsor=1" 7388 + } 7389 + }, 7390 + "node_modules/sonic-boom": { 7391 + "version": "4.2.0", 7392 + "license": "MIT", 7393 + "dependencies": { 7394 + "atomic-sleep": "^1.0.0" 7395 + } 7396 + }, 7397 + "node_modules/source-map": { 7398 + "version": "0.5.7", 7399 + "dev": true, 7400 + "license": "BSD-3-Clause", 7401 + "engines": { 7402 + "node": ">=0.10.0" 7403 + } 7404 + }, 7405 + "node_modules/split2": { 7406 + "version": "4.2.0", 7407 + "license": "ISC", 7408 + "engines": { 7409 + "node": ">= 10.x" 7410 + } 7411 + }, 7412 + "node_modules/standard-as-callback": { 7413 + "version": "2.1.0", 7414 + "license": "MIT" 7415 + }, 7416 + "node_modules/statsig-node": { 7417 + "version": "5.30.0", 7418 + "license": "ISC", 7419 + "dependencies": { 7420 + "ip3country": "^5.0.0", 7421 + "node-fetch": "^2.6.13", 7422 + "ua-parser-js": "^1.0.2", 7423 + "uuid": "^8.3.2" 7424 + } 7425 + }, 7426 + "node_modules/statuses": { 7427 + "version": "2.0.1", 7428 + "license": "MIT", 7429 + "engines": { 7430 + "node": ">= 0.8" 7431 + } 7432 + }, 7433 + "node_modules/stop-iteration-iterator": { 7434 + "version": "1.1.0", 7435 + "dev": true, 7436 + "license": "MIT", 7437 + "dependencies": { 7438 + "es-errors": "^1.3.0", 7439 + "internal-slot": "^1.1.0" 7440 + }, 7441 + "engines": { 7442 + "node": ">= 0.4" 7443 + } 7444 + }, 7445 + "node_modules/stream-shift": { 7446 + "version": "1.0.3", 7447 + "license": "MIT" 7448 + }, 7449 + "node_modules/string_decoder": { 7450 + "version": "1.3.0", 7451 + "license": "MIT", 7452 + "dependencies": { 7453 + "safe-buffer": "~5.2.0" 7454 + } 7455 + }, 7456 + "node_modules/string-argv": { 7457 + "version": "0.3.2", 7458 + "license": "MIT", 7459 + "engines": { 7460 + "node": ">=0.6.19" 7461 + } 7462 + }, 7463 + "node_modules/string-width": { 7464 + "version": "7.2.0", 7465 + "license": "MIT", 7466 + "dependencies": { 7467 + "emoji-regex": "^10.3.0", 7468 + "get-east-asian-width": "^1.0.0", 7469 + "strip-ansi": "^7.1.0" 7470 + }, 7471 + "engines": { 7472 + "node": ">=18" 7473 + }, 7474 + "funding": { 7475 + "url": "https://github.com/sponsors/sindresorhus" 7476 + } 7477 + }, 7478 + "node_modules/string.prototype.trim": { 7479 + "version": "1.2.10", 7480 + "dev": true, 7481 + "license": "MIT", 7482 + "dependencies": { 7483 + "call-bind": "^1.0.8", 7484 + "call-bound": "^1.0.2", 7485 + "define-data-property": "^1.1.4", 7486 + "define-properties": "^1.2.1", 7487 + "es-abstract": "^1.23.5", 7488 + "es-object-atoms": "^1.0.0", 7489 + "has-property-descriptors": "^1.0.2" 7490 + }, 7491 + "engines": { 7492 + "node": ">= 0.4" 7493 + }, 7494 + "funding": { 7495 + "url": "https://github.com/sponsors/ljharb" 7496 + } 7497 + }, 7498 + "node_modules/string.prototype.trimend": { 7499 + "version": "1.0.9", 7500 + "dev": true, 7501 + "license": "MIT", 7502 + "dependencies": { 7503 + "call-bind": "^1.0.8", 7504 + "call-bound": "^1.0.2", 7505 + "define-properties": "^1.2.1", 7506 + "es-object-atoms": "^1.0.0" 7507 + }, 7508 + "engines": { 7509 + "node": ">= 0.4" 7510 + }, 7511 + "funding": { 7512 + "url": "https://github.com/sponsors/ljharb" 7513 + } 7514 + }, 7515 + "node_modules/string.prototype.trimstart": { 7516 + "version": "1.0.8", 7517 + "dev": true, 7518 + "license": "MIT", 7519 + "dependencies": { 7520 + "call-bind": "^1.0.7", 7521 + "define-properties": "^1.2.1", 7522 + "es-object-atoms": "^1.0.0" 7523 + }, 7524 + "engines": { 7525 + "node": ">= 0.4" 7526 + }, 7527 + "funding": { 7528 + "url": "https://github.com/sponsors/ljharb" 7529 + } 7530 + }, 7531 + "node_modules/strip-ansi": { 7532 + "version": "7.1.0", 7533 + "license": "MIT", 7534 + "dependencies": { 7535 + "ansi-regex": "^6.0.1" 7536 + }, 7537 + "engines": { 7538 + "node": ">=12" 7539 + }, 7540 + "funding": { 7541 + "url": "https://github.com/chalk/strip-ansi?sponsor=1" 7542 + } 7543 + }, 7544 + "node_modules/strip-bom": { 7545 + "version": "3.0.0", 7546 + "dev": true, 7547 + "license": "MIT", 7548 + "engines": { 7549 + "node": ">=4" 7550 + } 7551 + }, 7552 + "node_modules/strip-final-newline": { 7553 + "version": "3.0.0", 7554 + "license": "MIT", 7555 + "engines": { 7556 + "node": ">=12" 7557 + }, 7558 + "funding": { 7559 + "url": "https://github.com/sponsors/sindresorhus" 7560 + } 7561 + }, 7562 + "node_modules/strip-json-comments": { 7563 + "version": "3.1.1", 7564 + "license": "MIT", 7565 + "engines": { 7566 + "node": ">=8" 7567 + }, 7568 + "funding": { 7569 + "url": "https://github.com/sponsors/sindresorhus" 7570 + } 7571 + }, 7572 + "node_modules/structured-headers": { 7573 + "version": "1.0.1", 7574 + "license": "MIT", 7575 + "engines": { 7576 + "node": ">= 14", 7577 + "npm": ">=6" 7578 + } 7579 + }, 7580 + "node_modules/supports-color": { 7581 + "version": "7.2.0", 7582 + "dev": true, 7583 + "license": "MIT", 7584 + "dependencies": { 7585 + "has-flag": "^4.0.0" 7586 + }, 7587 + "engines": { 7588 + "node": ">=8" 7589 + } 7590 + }, 7591 + "node_modules/supports-preserve-symlinks-flag": { 7592 + "version": "1.0.0", 7593 + "dev": true, 7594 + "license": "MIT", 7595 + "engines": { 7596 + "node": ">= 0.4" 7597 + }, 7598 + "funding": { 7599 + "url": "https://github.com/sponsors/ljharb" 7600 + } 7601 + }, 7602 + "node_modules/synckit": { 7603 + "version": "0.11.11", 7604 + "dev": true, 7605 + "license": "MIT", 7606 + "dependencies": { 7607 + "@pkgr/core": "^0.2.9" 7608 + }, 7609 + "engines": { 7610 + "node": "^14.18.0 || >=16.0.0" 7611 + }, 7612 + "funding": { 7613 + "url": "https://opencollective.com/synckit" 7614 + } 7615 + }, 7616 + "node_modules/tdigest": { 7617 + "version": "0.1.2", 7618 + "license": "MIT", 7619 + "dependencies": { 7620 + "bintrees": "1.0.2" 7621 + } 7622 + }, 7623 + "node_modules/thread-stream": { 7624 + "version": "3.1.0", 7625 + "license": "MIT", 7626 + "dependencies": { 7627 + "real-require": "^0.2.0" 7628 + } 7629 + }, 7630 + "node_modules/tlds": { 7631 + "version": "1.255.0", 7632 + "license": "MIT", 7633 + "bin": { 7634 + "tlds": "bin.js" 7635 + } 7636 + }, 7637 + "node_modules/to-fast-properties": { 7638 + "version": "2.0.0", 7639 + "dev": true, 7640 + "license": "MIT", 7641 + "engines": { 7642 + "node": ">=4" 7643 + } 7644 + }, 7645 + "node_modules/to-regex-range": { 7646 + "version": "5.0.1", 7647 + "license": "MIT", 7648 + "dependencies": { 7649 + "is-number": "^7.0.0" 7650 + }, 7651 + "engines": { 7652 + "node": ">=8.0" 7653 + } 7654 + }, 7655 + "node_modules/toad-cache": { 7656 + "version": "3.7.0", 7657 + "license": "MIT", 7658 + "engines": { 7659 + "node": ">=12" 7660 + } 7661 + }, 7662 + "node_modules/toidentifier": { 7663 + "version": "1.0.1", 7664 + "license": "MIT", 7665 + "engines": { 7666 + "node": ">=0.6" 7667 + } 7668 + }, 7669 + "node_modules/toygrad": { 7670 + "version": "2.6.0" 7671 + }, 7672 + "node_modules/tr46": { 7673 + "version": "0.0.3", 7674 + "license": "MIT" 7675 + }, 7676 + "node_modules/trigram-utils": { 7677 + "version": "2.0.1", 7678 + "resolved": "https://registry.npmjs.org/trigram-utils/-/trigram-utils-2.0.1.tgz", 7679 + "integrity": "sha512-nfWIXHEaB+HdyslAfMxSqWKDdmqY9I32jS7GnqpdWQnLH89r6A5sdk3fDVYqGAZ0CrT8ovAFSAo6HRiWcWNIGQ==", 7680 + "license": "MIT", 7681 + "dependencies": { 7682 + "collapse-white-space": "^2.0.0", 7683 + "n-gram": "^2.0.0" 7684 + }, 7685 + "funding": { 7686 + "type": "github", 7687 + "url": "https://github.com/sponsors/wooorm" 7688 + } 7689 + }, 7690 + "node_modules/ts-api-utils": { 7691 + "version": "1.4.3", 7692 + "dev": true, 7693 + "license": "MIT", 7694 + "engines": { 7695 + "node": ">=16" 7696 + }, 7697 + "peerDependencies": { 7698 + "typescript": ">=4.2.0" 7699 + } 7700 + }, 7701 + "node_modules/tsconfig-paths": { 7702 + "version": "3.15.0", 7703 + "dev": true, 7704 + "license": "MIT", 7705 + "dependencies": { 7706 + "@types/json5": "^0.0.29", 7707 + "json5": "^1.0.2", 7708 + "minimist": "^1.2.6", 7709 + "strip-bom": "^3.0.0" 7710 + } 7711 + }, 7712 + "node_modules/tslib": { 7713 + "version": "2.8.1", 7714 + "license": "0BSD", 7715 + "optional": true 7716 + }, 7717 + "node_modules/tsx": { 7718 + "version": "4.20.3", 7719 + "dev": true, 7720 + "license": "MIT", 7721 + "dependencies": { 7722 + "esbuild": "~0.25.0", 7723 + "get-tsconfig": "^4.7.5" 7724 + }, 7725 + "bin": { 7726 + "tsx": "dist/cli.mjs" 7727 + }, 7728 + "engines": { 7729 + "node": ">=18.0.0" 7730 + }, 7731 + "optionalDependencies": { 7732 + "fsevents": "~2.3.3" 7733 + } 7734 + }, 7735 + "node_modules/type-check": { 7736 + "version": "0.4.0", 7737 + "dev": true, 7738 + "license": "MIT", 7739 + "dependencies": { 7740 + "prelude-ls": "^1.2.1" 7741 + }, 7742 + "engines": { 7743 + "node": ">= 0.8.0" 7744 + } 7745 + }, 7746 + "node_modules/type-fest": { 7747 + "version": "2.19.0", 7748 + "license": "(MIT OR CC0-1.0)", 7749 + "engines": { 7750 + "node": ">=12.20" 7751 + }, 7752 + "funding": { 7753 + "url": "https://github.com/sponsors/sindresorhus" 7754 + } 7755 + }, 7756 + "node_modules/type-is": { 7757 + "version": "1.6.18", 7758 + "license": "MIT", 7759 + "dependencies": { 7760 + "media-typer": "0.3.0", 7761 + "mime-types": "~2.1.24" 7762 + }, 7763 + "engines": { 7764 + "node": ">= 0.6" 7765 + } 7766 + }, 7767 + "node_modules/typed-array-buffer": { 7768 + "version": "1.0.3", 7769 + "dev": true, 7770 + "license": "MIT", 7771 + "dependencies": { 7772 + "call-bound": "^1.0.3", 7773 + "es-errors": "^1.3.0", 7774 + "is-typed-array": "^1.1.14" 7775 + }, 7776 + "engines": { 7777 + "node": ">= 0.4" 7778 + } 7779 + }, 7780 + "node_modules/typed-array-byte-length": { 7781 + "version": "1.0.3", 7782 + "dev": true, 7783 + "license": "MIT", 7784 + "dependencies": { 7785 + "call-bind": "^1.0.8", 7786 + "for-each": "^0.3.3", 7787 + "gopd": "^1.2.0", 7788 + "has-proto": "^1.2.0", 7789 + "is-typed-array": "^1.1.14" 7790 + }, 7791 + "engines": { 7792 + "node": ">= 0.4" 7793 + }, 7794 + "funding": { 7795 + "url": "https://github.com/sponsors/ljharb" 7796 + } 7797 + }, 7798 + "node_modules/typed-array-byte-offset": { 7799 + "version": "1.0.4", 7800 + "dev": true, 7801 + "license": "MIT", 7802 + "dependencies": { 7803 + "available-typed-arrays": "^1.0.7", 7804 + "call-bind": "^1.0.8", 7805 + "for-each": "^0.3.3", 7806 + "gopd": "^1.2.0", 7807 + "has-proto": "^1.2.0", 7808 + "is-typed-array": "^1.1.15", 7809 + "reflect.getprototypeof": "^1.0.9" 7810 + }, 7811 + "engines": { 7812 + "node": ">= 0.4" 7813 + }, 7814 + "funding": { 7815 + "url": "https://github.com/sponsors/ljharb" 7816 + } 7817 + }, 7818 + "node_modules/typed-array-length": { 7819 + "version": "1.0.7", 7820 + "dev": true, 7821 + "license": "MIT", 7822 + "dependencies": { 7823 + "call-bind": "^1.0.7", 7824 + "for-each": "^0.3.3", 7825 + "gopd": "^1.0.1", 7826 + "is-typed-array": "^1.1.13", 7827 + "possible-typed-array-names": "^1.0.0", 7828 + "reflect.getprototypeof": "^1.0.6" 7829 + }, 7830 + "engines": { 7831 + "node": ">= 0.4" 7832 + }, 7833 + "funding": { 7834 + "url": "https://github.com/sponsors/ljharb" 7835 + } 7836 + }, 7837 + "node_modules/typed-emitter": { 7838 + "version": "2.1.0", 7839 + "license": "MIT", 7840 + "optionalDependencies": { 7841 + "rxjs": "*" 7842 + } 7843 + }, 7844 + "node_modules/typescript": { 7845 + "version": "5.8.3", 7846 + "dev": true, 7847 + "license": "Apache-2.0", 7848 + "bin": { 7849 + "tsc": "bin/tsc", 7850 + "tsserver": "bin/tsserver" 7851 + }, 7852 + "engines": { 7853 + "node": ">=14.17" 7854 + } 7855 + }, 7856 + "node_modules/typescript-eslint": { 7857 + "version": "8.34.1", 7858 + "dev": true, 7859 + "license": "MIT", 7860 + "dependencies": { 7861 + "@typescript-eslint/eslint-plugin": "8.34.1", 7862 + "@typescript-eslint/parser": "8.34.1", 7863 + "@typescript-eslint/utils": "8.34.1" 7864 + }, 7865 + "engines": { 7866 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 7867 + }, 7868 + "funding": { 7869 + "type": "opencollective", 7870 + "url": "https://opencollective.com/typescript-eslint" 7871 + }, 7872 + "peerDependencies": { 7873 + "eslint": "^8.57.0 || ^9.0.0", 7874 + "typescript": ">=4.8.4 <5.9.0" 7875 + } 7876 + }, 7877 + "node_modules/typescript-eslint/node_modules/@typescript-eslint/eslint-plugin": { 7878 + "version": "8.34.1", 7879 + "dev": true, 7880 + "license": "MIT", 7881 + "dependencies": { 7882 + "@eslint-community/regexpp": "^4.10.0", 7883 + "@typescript-eslint/scope-manager": "8.34.1", 7884 + "@typescript-eslint/type-utils": "8.34.1", 7885 + "@typescript-eslint/utils": "8.34.1", 7886 + "@typescript-eslint/visitor-keys": "8.34.1", 7887 + "graphemer": "^1.4.0", 7888 + "ignore": "^7.0.0", 7889 + "natural-compare": "^1.4.0", 7890 + "ts-api-utils": "^2.1.0" 7891 + }, 7892 + "engines": { 7893 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 7894 + }, 7895 + "funding": { 7896 + "type": "opencollective", 7897 + "url": "https://opencollective.com/typescript-eslint" 7898 + }, 7899 + "peerDependencies": { 7900 + "@typescript-eslint/parser": "^8.34.1", 7901 + "eslint": "^8.57.0 || ^9.0.0", 7902 + "typescript": ">=4.8.4 <5.9.0" 7903 + } 7904 + }, 7905 + "node_modules/typescript-eslint/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { 7906 + "version": "8.34.1", 7907 + "dev": true, 7908 + "license": "MIT", 7909 + "dependencies": { 7910 + "@typescript-eslint/types": "8.34.1", 7911 + "@typescript-eslint/visitor-keys": "8.34.1" 7912 + }, 7913 + "engines": { 7914 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 7915 + }, 7916 + "funding": { 7917 + "type": "opencollective", 7918 + "url": "https://opencollective.com/typescript-eslint" 7919 + } 7920 + }, 7921 + "node_modules/typescript-eslint/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager/node_modules/@typescript-eslint/types": { 7922 + "version": "8.34.1", 7923 + "dev": true, 7924 + "license": "MIT", 7925 + "engines": { 7926 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 7927 + }, 7928 + "funding": { 7929 + "type": "opencollective", 7930 + "url": "https://opencollective.com/typescript-eslint" 7931 + } 7932 + }, 7933 + "node_modules/typescript-eslint/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils": { 7934 + "version": "8.34.1", 7935 + "dev": true, 7936 + "license": "MIT", 7937 + "dependencies": { 7938 + "@typescript-eslint/typescript-estree": "8.34.1", 7939 + "@typescript-eslint/utils": "8.34.1", 7940 + "debug": "^4.3.4", 7941 + "ts-api-utils": "^2.1.0" 7942 + }, 7943 + "engines": { 7944 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 7945 + }, 7946 + "funding": { 7947 + "type": "opencollective", 7948 + "url": "https://opencollective.com/typescript-eslint" 7949 + }, 7950 + "peerDependencies": { 7951 + "eslint": "^8.57.0 || ^9.0.0", 7952 + "typescript": ">=4.8.4 <5.9.0" 7953 + } 7954 + }, 7955 + "node_modules/typescript-eslint/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { 7956 + "version": "8.34.1", 7957 + "dev": true, 7958 + "license": "MIT", 7959 + "dependencies": { 7960 + "@typescript-eslint/project-service": "8.34.1", 7961 + "@typescript-eslint/tsconfig-utils": "8.34.1", 7962 + "@typescript-eslint/types": "8.34.1", 7963 + "@typescript-eslint/visitor-keys": "8.34.1", 7964 + "debug": "^4.3.4", 7965 + "fast-glob": "^3.3.2", 7966 + "is-glob": "^4.0.3", 7967 + "minimatch": "^9.0.4", 7968 + "semver": "^7.6.0", 7969 + "ts-api-utils": "^2.1.0" 7970 + }, 7971 + "engines": { 7972 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 7973 + }, 7974 + "funding": { 7975 + "type": "opencollective", 7976 + "url": "https://opencollective.com/typescript-eslint" 7977 + }, 7978 + "peerDependencies": { 7979 + "typescript": ">=4.8.4 <5.9.0" 7980 + } 7981 + }, 7982 + "node_modules/typescript-eslint/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/types": { 7983 + "version": "8.34.1", 7984 + "dev": true, 7985 + "license": "MIT", 7986 + "engines": { 7987 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 7988 + }, 7989 + "funding": { 7990 + "type": "opencollective", 7991 + "url": "https://opencollective.com/typescript-eslint" 7992 + } 7993 + }, 7994 + "node_modules/typescript-eslint/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { 7995 + "version": "9.0.5", 7996 + "dev": true, 7997 + "license": "ISC", 7998 + "dependencies": { 7999 + "brace-expansion": "^2.0.1" 8000 + }, 8001 + "engines": { 8002 + "node": ">=16 || 14 >=14.17" 8003 + }, 8004 + "funding": { 8005 + "url": "https://github.com/sponsors/isaacs" 8006 + } 8007 + }, 8008 + "node_modules/typescript-eslint/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/node_modules/brace-expansion": { 8009 + "version": "2.0.1", 8010 + "dev": true, 8011 + "license": "MIT", 8012 + "dependencies": { 8013 + "balanced-match": "^1.0.0" 8014 + } 8015 + }, 8016 + "node_modules/typescript-eslint/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { 8017 + "version": "8.34.1", 8018 + "dev": true, 8019 + "license": "MIT", 8020 + "dependencies": { 8021 + "@typescript-eslint/types": "8.34.1", 8022 + "eslint-visitor-keys": "^4.2.1" 8023 + }, 8024 + "engines": { 8025 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 8026 + }, 8027 + "funding": { 8028 + "type": "opencollective", 8029 + "url": "https://opencollective.com/typescript-eslint" 8030 + } 8031 + }, 8032 + "node_modules/typescript-eslint/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys/node_modules/@typescript-eslint/types": { 8033 + "version": "8.34.1", 8034 + "dev": true, 8035 + "license": "MIT", 8036 + "engines": { 8037 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 8038 + }, 8039 + "funding": { 8040 + "type": "opencollective", 8041 + "url": "https://opencollective.com/typescript-eslint" 8042 + } 8043 + }, 8044 + "node_modules/typescript-eslint/node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { 8045 + "version": "7.0.5", 8046 + "dev": true, 8047 + "license": "MIT", 8048 + "engines": { 8049 + "node": ">= 4" 8050 + } 8051 + }, 8052 + "node_modules/typescript-eslint/node_modules/@typescript-eslint/eslint-plugin/node_modules/ts-api-utils": { 8053 + "version": "2.1.0", 8054 + "dev": true, 8055 + "license": "MIT", 8056 + "engines": { 8057 + "node": ">=18.12" 8058 + }, 8059 + "peerDependencies": { 8060 + "typescript": ">=4.8.4" 8061 + } 8062 + }, 8063 + "node_modules/typescript-eslint/node_modules/@typescript-eslint/parser": { 8064 + "version": "8.34.1", 8065 + "dev": true, 8066 + "license": "MIT", 8067 + "dependencies": { 8068 + "@typescript-eslint/scope-manager": "8.34.1", 8069 + "@typescript-eslint/types": "8.34.1", 8070 + "@typescript-eslint/typescript-estree": "8.34.1", 8071 + "@typescript-eslint/visitor-keys": "8.34.1", 8072 + "debug": "^4.3.4" 8073 + }, 8074 + "engines": { 8075 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 8076 + }, 8077 + "funding": { 8078 + "type": "opencollective", 8079 + "url": "https://opencollective.com/typescript-eslint" 8080 + }, 8081 + "peerDependencies": { 8082 + "eslint": "^8.57.0 || ^9.0.0", 8083 + "typescript": ">=4.8.4 <5.9.0" 8084 + } 8085 + }, 8086 + "node_modules/typescript-eslint/node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { 8087 + "version": "8.34.1", 8088 + "dev": true, 8089 + "license": "MIT", 8090 + "dependencies": { 8091 + "@typescript-eslint/types": "8.34.1", 8092 + "@typescript-eslint/visitor-keys": "8.34.1" 8093 + }, 8094 + "engines": { 8095 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 8096 + }, 8097 + "funding": { 8098 + "type": "opencollective", 8099 + "url": "https://opencollective.com/typescript-eslint" 8100 + } 8101 + }, 8102 + "node_modules/typescript-eslint/node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { 8103 + "version": "8.34.1", 8104 + "dev": true, 8105 + "license": "MIT", 8106 + "engines": { 8107 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 8108 + }, 8109 + "funding": { 8110 + "type": "opencollective", 8111 + "url": "https://opencollective.com/typescript-eslint" 8112 + } 8113 + }, 8114 + "node_modules/typescript-eslint/node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { 8115 + "version": "8.34.1", 8116 + "dev": true, 8117 + "license": "MIT", 8118 + "dependencies": { 8119 + "@typescript-eslint/project-service": "8.34.1", 8120 + "@typescript-eslint/tsconfig-utils": "8.34.1", 8121 + "@typescript-eslint/types": "8.34.1", 8122 + "@typescript-eslint/visitor-keys": "8.34.1", 8123 + "debug": "^4.3.4", 8124 + "fast-glob": "^3.3.2", 8125 + "is-glob": "^4.0.3", 8126 + "minimatch": "^9.0.4", 8127 + "semver": "^7.6.0", 8128 + "ts-api-utils": "^2.1.0" 8129 + }, 8130 + "engines": { 8131 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 8132 + }, 8133 + "funding": { 8134 + "type": "opencollective", 8135 + "url": "https://opencollective.com/typescript-eslint" 8136 + }, 8137 + "peerDependencies": { 8138 + "typescript": ">=4.8.4 <5.9.0" 8139 + } 8140 + }, 8141 + "node_modules/typescript-eslint/node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { 8142 + "version": "9.0.5", 8143 + "dev": true, 8144 + "license": "ISC", 8145 + "dependencies": { 8146 + "brace-expansion": "^2.0.1" 8147 + }, 8148 + "engines": { 8149 + "node": ">=16 || 14 >=14.17" 8150 + }, 8151 + "funding": { 8152 + "url": "https://github.com/sponsors/isaacs" 8153 + } 8154 + }, 8155 + "node_modules/typescript-eslint/node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/node_modules/brace-expansion": { 8156 + "version": "2.0.1", 8157 + "dev": true, 8158 + "license": "MIT", 8159 + "dependencies": { 8160 + "balanced-match": "^1.0.0" 8161 + } 8162 + }, 8163 + "node_modules/typescript-eslint/node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree/node_modules/ts-api-utils": { 8164 + "version": "2.1.0", 8165 + "dev": true, 8166 + "license": "MIT", 8167 + "engines": { 8168 + "node": ">=18.12" 8169 + }, 8170 + "peerDependencies": { 8171 + "typescript": ">=4.8.4" 8172 + } 8173 + }, 8174 + "node_modules/typescript-eslint/node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { 8175 + "version": "8.34.1", 8176 + "dev": true, 8177 + "license": "MIT", 8178 + "dependencies": { 8179 + "@typescript-eslint/types": "8.34.1", 8180 + "eslint-visitor-keys": "^4.2.1" 8181 + }, 8182 + "engines": { 8183 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 8184 + }, 8185 + "funding": { 8186 + "type": "opencollective", 8187 + "url": "https://opencollective.com/typescript-eslint" 8188 + } 8189 + }, 8190 + "node_modules/typescript-eslint/node_modules/@typescript-eslint/utils": { 8191 + "version": "8.34.1", 8192 + "dev": true, 8193 + "license": "MIT", 8194 + "dependencies": { 8195 + "@eslint-community/eslint-utils": "^4.7.0", 8196 + "@typescript-eslint/scope-manager": "8.34.1", 8197 + "@typescript-eslint/types": "8.34.1", 8198 + "@typescript-eslint/typescript-estree": "8.34.1" 8199 + }, 8200 + "engines": { 8201 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 8202 + }, 8203 + "funding": { 8204 + "type": "opencollective", 8205 + "url": "https://opencollective.com/typescript-eslint" 8206 + }, 8207 + "peerDependencies": { 8208 + "eslint": "^8.57.0 || ^9.0.0", 8209 + "typescript": ">=4.8.4 <5.9.0" 8210 + } 8211 + }, 8212 + "node_modules/typescript-eslint/node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { 8213 + "version": "8.34.1", 8214 + "dev": true, 8215 + "license": "MIT", 8216 + "dependencies": { 8217 + "@typescript-eslint/types": "8.34.1", 8218 + "@typescript-eslint/visitor-keys": "8.34.1" 8219 + }, 8220 + "engines": { 8221 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 8222 + }, 8223 + "funding": { 8224 + "type": "opencollective", 8225 + "url": "https://opencollective.com/typescript-eslint" 8226 + } 8227 + }, 8228 + "node_modules/typescript-eslint/node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager/node_modules/@typescript-eslint/visitor-keys": { 8229 + "version": "8.34.1", 8230 + "dev": true, 8231 + "license": "MIT", 8232 + "dependencies": { 8233 + "@typescript-eslint/types": "8.34.1", 8234 + "eslint-visitor-keys": "^4.2.1" 8235 + }, 8236 + "engines": { 8237 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 8238 + }, 8239 + "funding": { 8240 + "type": "opencollective", 8241 + "url": "https://opencollective.com/typescript-eslint" 8242 + } 8243 + }, 8244 + "node_modules/typescript-eslint/node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { 8245 + "version": "8.34.1", 8246 + "dev": true, 8247 + "license": "MIT", 8248 + "engines": { 8249 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 8250 + }, 8251 + "funding": { 8252 + "type": "opencollective", 8253 + "url": "https://opencollective.com/typescript-eslint" 8254 + } 8255 + }, 8256 + "node_modules/typescript-eslint/node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { 8257 + "version": "8.34.1", 8258 + "dev": true, 8259 + "license": "MIT", 8260 + "dependencies": { 8261 + "@typescript-eslint/project-service": "8.34.1", 8262 + "@typescript-eslint/tsconfig-utils": "8.34.1", 8263 + "@typescript-eslint/types": "8.34.1", 8264 + "@typescript-eslint/visitor-keys": "8.34.1", 8265 + "debug": "^4.3.4", 8266 + "fast-glob": "^3.3.2", 8267 + "is-glob": "^4.0.3", 8268 + "minimatch": "^9.0.4", 8269 + "semver": "^7.6.0", 8270 + "ts-api-utils": "^2.1.0" 8271 + }, 8272 + "engines": { 8273 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 8274 + }, 8275 + "funding": { 8276 + "type": "opencollective", 8277 + "url": "https://opencollective.com/typescript-eslint" 8278 + }, 8279 + "peerDependencies": { 8280 + "typescript": ">=4.8.4 <5.9.0" 8281 + } 8282 + }, 8283 + "node_modules/typescript-eslint/node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/visitor-keys": { 8284 + "version": "8.34.1", 8285 + "dev": true, 8286 + "license": "MIT", 8287 + "dependencies": { 8288 + "@typescript-eslint/types": "8.34.1", 8289 + "eslint-visitor-keys": "^4.2.1" 8290 + }, 8291 + "engines": { 8292 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 8293 + }, 8294 + "funding": { 8295 + "type": "opencollective", 8296 + "url": "https://opencollective.com/typescript-eslint" 8297 + } 8298 + }, 8299 + "node_modules/typescript-eslint/node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { 8300 + "version": "9.0.5", 8301 + "dev": true, 8302 + "license": "ISC", 8303 + "dependencies": { 8304 + "brace-expansion": "^2.0.1" 8305 + }, 8306 + "engines": { 8307 + "node": ">=16 || 14 >=14.17" 8308 + }, 8309 + "funding": { 8310 + "url": "https://github.com/sponsors/isaacs" 8311 + } 8312 + }, 8313 + "node_modules/typescript-eslint/node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/node_modules/brace-expansion": { 8314 + "version": "2.0.1", 8315 + "dev": true, 8316 + "license": "MIT", 8317 + "dependencies": { 8318 + "balanced-match": "^1.0.0" 8319 + } 8320 + }, 8321 + "node_modules/typescript-eslint/node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree/node_modules/ts-api-utils": { 8322 + "version": "2.1.0", 8323 + "dev": true, 8324 + "license": "MIT", 8325 + "engines": { 8326 + "node": ">=18.12" 8327 + }, 8328 + "peerDependencies": { 8329 + "typescript": ">=4.8.4" 8330 + } 8331 + }, 8332 + "node_modules/ua-parser-js": { 8333 + "version": "1.0.40", 8334 + "funding": [ 8335 + { 8336 + "type": "opencollective", 8337 + "url": "https://opencollective.com/ua-parser-js" 8338 + }, 8339 + { 8340 + "type": "paypal", 8341 + "url": "https://paypal.me/faisalman" 8342 + }, 8343 + { 8344 + "type": "github", 8345 + "url": "https://github.com/sponsors/faisalman" 8346 + } 8347 + ], 8348 + "license": "MIT", 8349 + "bin": { 8350 + "ua-parser-js": "script/cli.js" 8351 + }, 8352 + "engines": { 8353 + "node": "*" 8354 + } 8355 + }, 8356 + "node_modules/uint8arrays": { 8357 + "version": "3.0.0", 8358 + "license": "MIT", 8359 + "dependencies": { 8360 + "multiformats": "^9.4.2" 8361 + } 8362 + }, 8363 + "node_modules/unbox-primitive": { 8364 + "version": "1.1.0", 8365 + "dev": true, 8366 + "license": "MIT", 8367 + "dependencies": { 8368 + "call-bound": "^1.0.3", 8369 + "has-bigints": "^1.0.2", 8370 + "has-symbols": "^1.1.0", 8371 + "which-boxed-primitive": "^1.1.1" 8372 + }, 8373 + "engines": { 8374 + "node": ">= 0.4" 8375 + }, 8376 + "funding": { 8377 + "url": "https://github.com/sponsors/ljharb" 8378 + } 8379 + }, 8380 + "node_modules/undici": { 8381 + "version": "7.10.0", 8382 + "license": "MIT", 8383 + "engines": { 8384 + "node": ">=20.18.1" 8385 + } 8386 + }, 8387 + "node_modules/undici-types": { 8388 + "version": "6.21.0", 8389 + "dev": true, 8390 + "license": "MIT" 8391 + }, 8392 + "node_modules/unpipe": { 8393 + "version": "1.0.0", 8394 + "license": "MIT", 8395 + "engines": { 8396 + "node": ">= 0.8" 8397 + } 8398 + }, 8399 + "node_modules/uri-js": { 8400 + "version": "4.4.1", 8401 + "dev": true, 8402 + "license": "BSD-2-Clause", 8403 + "dependencies": { 8404 + "punycode": "^2.1.0" 8405 + } 8406 + }, 8407 + "node_modules/util-deprecate": { 8408 + "version": "1.0.2", 8409 + "license": "MIT" 8410 + }, 8411 + "node_modules/utils-merge": { 8412 + "version": "1.0.1", 8413 + "license": "MIT", 8414 + "engines": { 8415 + "node": ">= 0.4.0" 8416 + } 8417 + }, 8418 + "node_modules/uuid": { 8419 + "version": "8.3.2", 8420 + "license": "MIT", 8421 + "bin": { 8422 + "uuid": "dist/bin/uuid" 8423 + } 8424 + }, 8425 + "node_modules/varint": { 8426 + "version": "6.0.0", 8427 + "license": "MIT" 8428 + }, 8429 + "node_modules/vary": { 8430 + "version": "1.1.2", 8431 + "license": "MIT", 8432 + "engines": { 8433 + "node": ">= 0.8" 8434 + } 8435 + }, 8436 + "node_modules/webidl-conversions": { 8437 + "version": "3.0.1", 8438 + "license": "BSD-2-Clause" 8439 + }, 8440 + "node_modules/whatwg-url": { 8441 + "version": "5.0.0", 8442 + "license": "MIT", 8443 + "dependencies": { 8444 + "tr46": "~0.0.3", 8445 + "webidl-conversions": "^3.0.0" 8446 + } 8447 + }, 8448 + "node_modules/which": { 8449 + "version": "2.0.2", 8450 + "license": "ISC", 8451 + "dependencies": { 8452 + "isexe": "^2.0.0" 8453 + }, 8454 + "bin": { 8455 + "node-which": "bin/node-which" 8456 + }, 8457 + "engines": { 8458 + "node": ">= 8" 8459 + } 8460 + }, 8461 + "node_modules/which-boxed-primitive": { 8462 + "version": "1.1.1", 8463 + "dev": true, 8464 + "license": "MIT", 8465 + "dependencies": { 8466 + "is-bigint": "^1.1.0", 8467 + "is-boolean-object": "^1.2.1", 8468 + "is-number-object": "^1.1.1", 8469 + "is-string": "^1.1.1", 8470 + "is-symbol": "^1.1.1" 8471 + }, 8472 + "engines": { 8473 + "node": ">= 0.4" 8474 + }, 8475 + "funding": { 8476 + "url": "https://github.com/sponsors/ljharb" 8477 + } 8478 + }, 8479 + "node_modules/which-builtin-type": { 8480 + "version": "1.2.1", 8481 + "dev": true, 8482 + "license": "MIT", 8483 + "dependencies": { 8484 + "call-bound": "^1.0.2", 8485 + "function.prototype.name": "^1.1.6", 8486 + "has-tostringtag": "^1.0.2", 8487 + "is-async-function": "^2.0.0", 8488 + "is-date-object": "^1.1.0", 8489 + "is-finalizationregistry": "^1.1.0", 8490 + "is-generator-function": "^1.0.10", 8491 + "is-regex": "^1.2.1", 8492 + "is-weakref": "^1.0.2", 8493 + "isarray": "^2.0.5", 8494 + "which-boxed-primitive": "^1.1.0", 8495 + "which-collection": "^1.0.2", 8496 + "which-typed-array": "^1.1.16" 8497 + }, 8498 + "engines": { 8499 + "node": ">= 0.4" 8500 + }, 8501 + "funding": { 8502 + "url": "https://github.com/sponsors/ljharb" 8503 + } 8504 + }, 8505 + "node_modules/which-collection": { 8506 + "version": "1.0.2", 8507 + "dev": true, 8508 + "license": "MIT", 8509 + "dependencies": { 8510 + "is-map": "^2.0.3", 8511 + "is-set": "^2.0.3", 8512 + "is-weakmap": "^2.0.2", 8513 + "is-weakset": "^2.0.3" 8514 + }, 8515 + "engines": { 8516 + "node": ">= 0.4" 8517 + }, 8518 + "funding": { 8519 + "url": "https://github.com/sponsors/ljharb" 8520 + } 8521 + }, 8522 + "node_modules/which-typed-array": { 8523 + "version": "1.1.19", 8524 + "dev": true, 8525 + "license": "MIT", 8526 + "dependencies": { 8527 + "available-typed-arrays": "^1.0.7", 8528 + "call-bind": "^1.0.8", 8529 + "call-bound": "^1.0.4", 8530 + "for-each": "^0.3.5", 8531 + "get-proto": "^1.0.1", 8532 + "gopd": "^1.2.0", 8533 + "has-tostringtag": "^1.0.2" 8534 + }, 8535 + "engines": { 8536 + "node": ">= 0.4" 8537 + }, 8538 + "funding": { 8539 + "url": "https://github.com/sponsors/ljharb" 8540 + } 8541 + }, 8542 + "node_modules/word-wrap": { 8543 + "version": "1.2.5", 8544 + "dev": true, 8545 + "license": "MIT", 8546 + "engines": { 8547 + "node": ">=0.10.0" 8548 + } 8549 + }, 8550 + "node_modules/wrap-ansi": { 8551 + "version": "9.0.0", 8552 + "license": "MIT", 8553 + "dependencies": { 8554 + "ansi-styles": "^6.2.1", 8555 + "string-width": "^7.0.0", 8556 + "strip-ansi": "^7.1.0" 8557 + }, 8558 + "engines": { 8559 + "node": ">=18" 8560 + }, 8561 + "funding": { 8562 + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" 8563 + } 8564 + }, 8565 + "node_modules/wrap-ansi/node_modules/ansi-styles": { 8566 + "version": "6.2.1", 8567 + "license": "MIT", 8568 + "engines": { 8569 + "node": ">=12" 8570 + }, 8571 + "funding": { 8572 + "url": "https://github.com/chalk/ansi-styles?sponsor=1" 8573 + } 8574 + }, 8575 + "node_modules/wrappy": { 8576 + "version": "1.0.2", 8577 + "license": "ISC" 8578 + }, 8579 + "node_modules/ws": { 8580 + "version": "8.18.0", 8581 + "license": "MIT", 8582 + "engines": { 8583 + "node": ">=10.0.0" 8584 + }, 8585 + "peerDependencies": { 8586 + "bufferutil": "^4.0.1", 8587 + "utf-8-validate": ">=5.0.2" 8588 + }, 8589 + "peerDependenciesMeta": { 8590 + "bufferutil": { 8591 + "optional": true 8592 + }, 8593 + "utf-8-validate": { 8594 + "optional": true 8595 + } 8596 + } 8597 + }, 8598 + "node_modules/xtend": { 8599 + "version": "4.0.2", 8600 + "license": "MIT", 8601 + "engines": { 8602 + "node": ">=0.4" 8603 + } 8604 + }, 8605 + "node_modules/yaml": { 8606 + "version": "2.8.0", 8607 + "license": "ISC", 8608 + "bin": { 8609 + "yaml": "bin.mjs" 8610 + }, 8611 + "engines": { 8612 + "node": ">= 14.6" 8613 + } 8614 + }, 8615 + "node_modules/yocto-queue": { 8616 + "version": "0.1.0", 8617 + "dev": true, 8618 + "license": "MIT", 8619 + "engines": { 8620 + "node": ">=10" 8621 + }, 8622 + "funding": { 8623 + "url": "https://github.com/sponsors/sindresorhus" 8624 + } 8625 + }, 8626 + "node_modules/zod": { 8627 + "version": "3.24.1", 8628 + "license": "MIT", 8629 + "funding": { 8630 + "url": "https://github.com/sponsors/colinhacks" 8631 + } 8632 + } 8633 + } 8634 + }
+1 -2
package.json
··· 47 47 "bottleneck": "^2.19.5", 48 48 "dotenv": "^16.5.0", 49 49 "express": "^4.21.2", 50 + "franc": "^6.2.0", 50 51 "husky": "^9.1.7", 51 - "lande": "^1.0.10", 52 52 "lint-staged": "^15.5.1", 53 53 "p-ratelimit": "^1.0.1", 54 54 "pino": "^9.6.0", 55 55 "pino-pretty": "^13.0.0", 56 56 "prom-client": "^15.1.3", 57 - "stylistic/comma-trailing": "stylistic/comma-trailing", 58 57 "undici": "^7.8.0" 59 58 } 60 59 }
+2 -1
src/agent.ts
··· 1 + import { AtpAgent } from "@atproto/api"; 1 2 import { setGlobalDispatcher, Agent as Agent } from "undici"; 3 + 2 4 setGlobalDispatcher(new Agent({ connect: { timeout: 20_000 } })); 3 5 import { BSKY_HANDLE, BSKY_PASSWORD, OZONE_PDS } from "./config.js"; 4 - import { AtpAgent } from "@atproto/api"; 5 6 6 7 export const agent = new AtpAgent({ 7 8 service: `https://${OZONE_PDS}`,
+7 -7
src/checkHandles.ts
··· 40 40 } 41 41 42 42 if (checkList?.toLabel === true) { 43 - logger.info(`[CHECKHANDLE]: Labeling ${did} for ${checkList!.label}`); 43 + logger.info(`[CHECKHANDLE]: Labeling ${did} for ${checkList.label}`); 44 44 { 45 45 createAccountLabel( 46 46 did, 47 - `${checkList!.label}`, 48 - `${time}: ${checkList!.comment} - ${handle}`, 47 + checkList.label, 48 + `${time}: ${checkList.comment} - ${handle}`, 49 49 ); 50 50 } 51 51 } 52 52 53 53 if (checkList?.reportAcct === true) { 54 - logger.info(`[CHECKHANDLE]: Reporting ${did} for ${checkList!.label}`); 55 - createAccountReport(did, `${time}: ${checkList!.comment} - ${handle}`); 54 + logger.info(`[CHECKHANDLE]: Reporting ${did} for ${checkList.label}`); 55 + createAccountReport(did, `${time}: ${checkList.comment} - ${handle}`); 56 56 } 57 57 58 58 if (checkList?.commentAcct === true) { 59 59 logger.info( 60 - `[CHECKHANDLE]: Commenting on ${did} for ${checkList!.label}`, 60 + `[CHECKHANDLE]: Commenting on ${did} for ${checkList.label}`, 61 61 ); 62 - createAccountComment(did, `${time}: ${checkList!.comment} - ${handle}`); 62 + createAccountComment(did, `${time}: ${checkList.comment} - ${handle}`); 63 63 } 64 64 } 65 65 });
+7 -7
src/checkPosts.ts
··· 1 1 import { LINK_SHORTENER, POST_CHECKS } from "./constants.js"; 2 - import { Post } from "./types.js"; 2 + import { countStarterPacks } from "./count.js"; 3 3 import logger from "./logger.js"; 4 - import { countStarterPacks } from "./count.js"; 5 4 import { 6 5 createPostLabel, 7 6 createAccountReport, 8 7 createAccountComment, 9 8 createPostReport, 10 9 } from "./moderation.js"; 10 + import type { Post } from "./types.js"; 11 11 import { getFinalUrl, getLanguage } from "./utils.js"; 12 12 13 13 export const checkPosts = async (post: Post[]) => { ··· 68 68 // Check if post is whitelisted 69 69 if (checkPost?.whitelist) { 70 70 if (checkPost?.whitelist.test(post[0].text)) { 71 - logger.info(`[CHECKPOSTS]: Whitelisted phrase found"`); 71 + logger.info("[CHECKPOSTS]: Whitelisted phrase found\""); 72 72 return; 73 73 } 74 74 } 75 75 76 76 countStarterPacks(post[0].did, post[0].time); 77 77 78 - if (checkPost!.toLabel === true) { 78 + if (checkPost!.toLabel) { 79 79 logger.info( 80 80 `[CHECKPOSTS]: Labeling ${post[0].atURI} for ${checkPost!.label}`, 81 81 ); 82 82 createPostLabel( 83 83 post[0].atURI, 84 84 post[0].cid, 85 - `${checkPost!.label}`, 85 + checkPost!.label, 86 86 `${post[0].time}: ${checkPost!.comment} at ${post[0].atURI} with text "${post[0].text}"`, 87 87 ); 88 88 } ··· 99 99 ); 100 100 } 101 101 102 - if (checkPost!.reportAcct === true) { 102 + if (checkPost!.reportAcct) { 103 103 logger.info( 104 104 `[CHECKPOSTS]: Reporting on ${post[0].did} for ${checkPost!.label} in ${post[0].atURI}`, 105 105 ); ··· 109 109 ); 110 110 } 111 111 112 - if (checkPost!.commentAcct === true) { 112 + if (checkPost!.commentAcct) { 113 113 logger.info( 114 114 `[CHECKPOSTS]: Commenting on ${post[0].did} for ${checkPost!.label} in ${post[0].atURI}`, 115 115 );
+28 -28
src/checkProfiles.ts
··· 43 43 44 44 if (description) { 45 45 if (checkProfiles?.description === true) { 46 - if (checkProfiles!.check.test(description)) { 46 + if (checkProfiles.check.test(description)) { 47 47 // Check if description is whitelisted 48 - if (checkProfiles!.whitelist) { 49 - if (checkProfiles!.whitelist.test(description)) { 50 - logger.info(`[CHECKDESCRIPTION]: Whitelisted phrase found.`); 48 + if (checkProfiles.whitelist) { 49 + if (checkProfiles.whitelist.test(description)) { 50 + logger.info("[CHECKDESCRIPTION]: Whitelisted phrase found."); 51 51 return; 52 52 } 53 53 } 54 54 55 - if (checkProfiles!.toLabel === true) { 55 + if (checkProfiles.toLabel) { 56 56 createAccountLabel( 57 57 did, 58 - `${checkProfiles!.label}`, 59 - `${time}: ${checkProfiles!.comment} - ${displayName} - ${description}`, 58 + checkProfiles.label, 59 + `${time}: ${checkProfiles.comment} - ${displayName} - ${description}`, 60 60 ); 61 61 logger.info( 62 - `[CHECKDESCRIPTION]: Labeling ${did} for ${checkProfiles!.label}`, 62 + `[CHECKDESCRIPTION]: Labeling ${did} for ${checkProfiles.label}`, 63 63 ); 64 64 } 65 65 66 - if (checkProfiles!.reportAcct === true) { 66 + if (checkProfiles.reportAcct) { 67 67 createAccountReport( 68 68 did, 69 - `${time}: ${checkProfiles!.comment} - ${displayName} - ${description}`, 69 + `${time}: ${checkProfiles.comment} - ${displayName} - ${description}`, 70 70 ); 71 71 logger.info( 72 - `[CHECKDESCRIPTION]: Reporting ${did} for ${checkProfiles!.label}`, 72 + `[CHECKDESCRIPTION]: Reporting ${did} for ${checkProfiles.label}`, 73 73 ); 74 74 } 75 75 76 - if (checkProfiles!.commentAcct === true) { 76 + if (checkProfiles.commentAcct) { 77 77 createAccountComment( 78 78 did, 79 - `${time}: ${checkProfiles!.comment} - ${displayName} - ${description}`, 79 + `${time}: ${checkProfiles.comment} - ${displayName} - ${description}`, 80 80 ); 81 81 logger.info( 82 - `[CHECKDESCRIPTION]: Commenting on ${did} for ${checkProfiles!.label}`, 82 + `[CHECKDESCRIPTION]: Commenting on ${did} for ${checkProfiles.label}`, 83 83 ); 84 84 } 85 85 } ··· 124 124 125 125 if (displayName) { 126 126 if (checkProfiles?.displayName === true) { 127 - if (checkProfiles!.check.test(displayName)) { 127 + if (checkProfiles.check.test(displayName)) { 128 128 // Check if displayName is whitelisted 129 - if (checkProfiles!.whitelist) { 130 - if (checkProfiles!.whitelist.test(displayName)) { 131 - logger.info(`[CHECKDISPLAYNAME]: Whitelisted phrase found.`); 129 + if (checkProfiles.whitelist) { 130 + if (checkProfiles.whitelist.test(displayName)) { 131 + logger.info("[CHECKDISPLAYNAME]: Whitelisted phrase found."); 132 132 return; 133 133 } 134 134 } 135 135 136 - if (checkProfiles!.toLabel === true) { 136 + if (checkProfiles.toLabel) { 137 137 createAccountLabel( 138 138 did, 139 - `${checkProfiles!.label}`, 140 - `${time}: ${checkProfiles!.comment} - ${displayName} - ${description}`, 139 + checkProfiles.label, 140 + `${time}: ${checkProfiles.comment} - ${displayName} - ${description}`, 141 141 ); 142 142 logger.info( 143 - `[CHECKDISPLAYNAME]: Labeling ${did} for ${checkProfiles!.label}`, 143 + `[CHECKDISPLAYNAME]: Labeling ${did} for ${checkProfiles.label}`, 144 144 ); 145 145 } 146 146 147 - if (checkProfiles!.reportAcct === true) { 147 + if (checkProfiles.reportAcct) { 148 148 createAccountReport( 149 149 did, 150 - `${time}: ${checkProfiles!.comment} - ${displayName} - ${description}`, 150 + `${time}: ${checkProfiles.comment} - ${displayName} - ${description}`, 151 151 ); 152 152 logger.info( 153 - `[CHECKDISPLAYNAME]: Reporting ${did} for ${checkProfiles!.label}`, 153 + `[CHECKDISPLAYNAME]: Reporting ${did} for ${checkProfiles.label}`, 154 154 ); 155 155 } 156 156 157 - if (checkProfiles!.commentAcct === true) { 157 + if (checkProfiles.commentAcct) { 158 158 createAccountComment( 159 159 did, 160 - `${time}: ${checkProfiles!.comment} - ${displayName} - ${description}`, 160 + `${time}: ${checkProfiles.comment} - ${displayName} - ${description}`, 161 161 ); 162 162 logger.info( 163 - `[CHECKDISPLAYNAME]: Commenting on ${did} for ${checkProfiles!.label}`, 163 + `[CHECKDISPLAYNAME]: Commenting on ${did} for ${checkProfiles.label}`, 164 164 ); 165 165 } 166 166 }
+8 -8
src/checkStarterPack.ts
··· 26 26 // Check if DID is whitelisted 27 27 if (checkProfiles?.ignoredDIDs) { 28 28 if (checkProfiles.ignoredDIDs.includes(did)) { 29 - return logger.info(`Whitelisted DID: ${did}`); 29 + logger.info(`Whitelisted DID: ${did}`); return; 30 30 } 31 31 } 32 32 ··· 36 36 logger.info(`Account joined via starter pack at: ${atURI}`); 37 37 createAccountLabel( 38 38 did, 39 - `${checkProfiles!.label}`, 40 - `${time}: ${checkProfiles!.comment} - Account joined via starter pack at: ${atURI}`, 39 + checkProfiles.label, 40 + `${time}: ${checkProfiles.comment} - Account joined via starter pack at: ${atURI}`, 41 41 ); 42 42 } 43 43 } ··· 65 65 createPostLabel( 66 66 atURI, 67 67 cid, 68 - `${checkList!.label}`, 69 - `${time}: Starter pack created by known vector for ${checkList!.label} at: ${atURI}"`, 68 + checkList.label, 69 + `${time}: Starter pack created by known vector for ${checkList.label} at: ${atURI}"`, 70 70 ); 71 71 createAccountReport( 72 72 did, 73 - `${time}: Starter pack created by known vector for ${checkList!.label} at: ${atURI}"`, 73 + `${time}: Starter pack created by known vector for ${checkList.label} at: ${atURI}"`, 74 74 ); 75 75 } 76 76 ··· 80 80 createPostLabel( 81 81 atURI, 82 82 cid, 83 - `${checkList!.label}`, 83 + checkList!.label, 84 84 `${time}: ${checkList!.comment} at ${atURI} with text "${description}"`, 85 85 ); 86 86 createAccountReport( ··· 96 96 createPostLabel( 97 97 atURI, 98 98 cid, 99 - `${checkList!.label}`, 99 + checkList!.label, 100 100 `${time}: ${checkList!.comment} at ${atURI} with pack name "${packName}"`, 101 101 ); 102 102 createAccountReport(
+2 -2
src/config.ts
··· 20 20 export const CURSOR_UPDATE_INTERVAL = process.env.CURSOR_UPDATE_INTERVAL 21 21 ? Number(process.env.CURSOR_UPDATE_INTERVAL) 22 22 : 60000; 23 - export const LABEL_LIMIT = process.env.LABEL_LIMIT; 24 - export const LABEL_LIMIT_WAIT = process.env.LABEL_LIMIT_WAIT; 23 + export const { LABEL_LIMIT } = process.env; 24 + export const { LABEL_LIMIT_WAIT } = process.env;
+1 -1
src/count.ts
··· 1 1 import { isLoggedIn, agent } from "./agent.js"; 2 - import logger from "./logger.js"; 3 2 import { limit } from "./limits.js"; 3 + import logger from "./logger.js"; 4 4 import { createAccountLabel } from "./moderation.js"; 5 5 6 6 export const countStarterPacks = async (did: string, time: number) => {
+1 -1
src/homoglyphs.ts
··· 1 - /* eslint-disable no-misleading-character-class */ 1 + 2 2 3 3 export const homoglyphMap: Record<string, string> = { 4 4 // Confusables for 'a'
-44
src/lists.ts
··· 1 - import { List } from "./types.js"; 2 - 3 - export const LISTS: List[] = [ 4 - { 5 - label: "blue-heart-emoji", 6 - rkey: "3lfbtgosyyi22", 7 - }, 8 - { 9 - label: "troll", 10 - rkey: "3lbckxhgu3r2v", 11 - }, 12 - { 13 - label: "maga-trump", 14 - rkey: "3l53cjwlt4o2s", 15 - }, 16 - { 17 - label: "elon-musk", 18 - rkey: "3l72tte74wa2m", 19 - }, 20 - { 21 - label: "rmve-imve", 22 - rkey: "3l6tfurf7li27", 23 - }, 24 - { 25 - label: "nazi-symbolism", 26 - rkey: "3l6vdudxgeb2z", 27 - }, 28 - { 29 - label: "hammer-sickle", 30 - rkey: "3l4ue6w2aur2v", 31 - }, 32 - { 33 - label: "inverted-red-triangle", 34 - rkey: "3l4ueabtpec2a", 35 - }, 36 - { 37 - label: "automated-reply-guy", 38 - rkey: "3lch7qbvzpx23", 39 - }, 40 - { 41 - label: "terf-gc", 42 - rkey: "3lcqjqjdejs2x", 43 - }, 44 - ];
+7 -7
src/logger.ts
··· 5 5 transport: 6 6 process.env.NODE_ENV !== "production" 7 7 ? { 8 - target: "pino-pretty", 9 - options: { 10 - colorize: true, 11 - translateTime: "SYS:standard", 12 - ignore: "pid,hostname", 13 - }, 14 - } 8 + target: "pino-pretty", 9 + options: { 10 + colorize: true, 11 + translateTime: "SYS:standard", 12 + ignore: "pid,hostname", 13 + }, 14 + } 15 15 : undefined, 16 16 timestamp: pino.stdTimeFunctions.isoTime, 17 17 });
+31 -27
src/main.ts
··· 1 + import fs from "node:fs"; 2 + 3 + import type { 4 + CommitCreateEvent, 5 + CommitUpdateEvent, 6 + IdentityEvent } from "@skyware/jetstream"; 1 7 import { 2 - CommitCreateEvent, 3 8 CommitUpdate, 4 - CommitUpdateEvent, 5 - IdentityEvent, 6 9 Jetstream, 7 10 } from "@skyware/jetstream"; 8 - import fs from "node:fs"; 11 + 9 12 13 + import { checkHandle } from "./checkHandles.js"; 14 + import { checkPosts } from "./checkPosts.js"; 15 + import { checkDescription, checkDisplayName } from "./checkProfiles.js"; 16 + import { checkStarterPack, checkNewStarterPack } from "./checkStarterPack.js"; 10 17 import { 11 18 CURSOR_UPDATE_INTERVAL, 12 19 FIREHOSE_URL, ··· 15 22 } from "./config.js"; 16 23 import logger from "./logger.js"; 17 24 import { startMetricsServer } from "./metrics.js"; 18 - import { Post, LinkFeature, Handle } from "./types.js"; 19 - import { checkPosts } from "./checkPosts.js"; 20 - import { checkHandle } from "./checkHandles.js"; 21 - import { checkStarterPack, checkNewStarterPack } from "./checkStarterPack.js"; 22 - import { checkDescription, checkDisplayName } from "./checkProfiles.js"; 25 + import type { Post, LinkFeature } from "./types.js"; 26 + import { Handle } from "./types.js"; 23 27 24 28 let cursor = 0; 25 29 let cursorUpdateInterval: NodeJS.Timeout; ··· 48 52 const jetstream = new Jetstream({ 49 53 wantedCollections: WANTED_COLLECTION, 50 54 endpoint: FIREHOSE_URL, 51 - cursor: cursor, 55 + cursor, 52 56 }); 53 57 54 58 jetstream.on("open", () => { ··· 105 109 if (hasLinkType) { 106 110 const urls = event.commit.record 107 111 .facets!.flatMap((facet) => 108 - facet.features.filter( 109 - (feature) => feature.$type === "app.bsky.richtext.facet#link", 110 - ), 111 - ) 112 + facet.features.filter( 113 + (feature) => feature.$type === "app.bsky.richtext.facet#link", 114 + ), 115 + ) 112 116 .map((feature: LinkFeature) => feature.uri); 113 117 114 118 urls.forEach((url) => { ··· 117 121 did: event.did, 118 122 time: event.time_us, 119 123 rkey: event.commit.rkey, 120 - atURI: atURI, 124 + atURI, 121 125 text: url, 122 126 cid: event.commit.cid, 123 127 }, ··· 133 137 did: event.did, 134 138 time: event.time_us, 135 139 rkey: event.commit.rkey, 136 - atURI: atURI, 140 + atURI, 137 141 text: event.commit.record.text, 138 142 cid: event.commit.cid, 139 143 }, ··· 142 146 } 143 147 144 148 if (hasEmbed) { 145 - const embed = event.commit.record.embed; 149 + const { embed } = event.commit.record; 146 150 if (embed && embed.$type === "app.bsky.embed.external") { 147 151 const posts: Post[] = [ 148 152 { 149 153 did: event.did, 150 154 time: event.time_us, 151 155 rkey: event.commit.rkey, 152 - atURI: atURI, 156 + atURI, 153 157 text: embed.external.uri, 154 158 cid: event.commit.cid, 155 159 }, ··· 164 168 did: event.did, 165 169 time: event.time_us, 166 170 rkey: event.commit.rkey, 167 - atURI: atURI, 171 + atURI, 168 172 text: embed.media.external.uri, 169 173 cid: event.commit.cid, 170 174 }, ··· 185 189 checkDescription( 186 190 event.did, 187 191 event.time_us, 188 - event.commit.record.displayName as string, 189 - event.commit.record.description as string, 192 + event.commit.record.displayName!, 193 + event.commit.record.description!, 190 194 ); 191 195 checkDisplayName( 192 196 event.did, 193 197 event.time_us, 194 - event.commit.record.displayName as string, 195 - event.commit.record.description as string, 198 + event.commit.record.displayName!, 199 + event.commit.record.description!, 196 200 ); 197 201 } 198 202 ··· 219 223 checkDescription( 220 224 event.did, 221 225 event.time_us, 222 - event.commit.record.displayName as string, 223 - event.commit.record.description as string, 226 + event.commit.record.displayName!, 227 + event.commit.record.description!, 224 228 ); 225 229 checkDisplayName( 226 230 event.did, 227 231 event.time_us, 228 - event.commit.record.displayName as string, 229 - event.commit.record.description as string, 232 + event.commit.record.displayName!, 233 + event.commit.record.description!, 230 234 ); 231 235 } 232 236
+19 -51
src/moderation.ts
··· 2 2 import { MOD_DID } from "./config.js"; 3 3 import { limit } from "./limits.js"; 4 4 import logger from "./logger.js"; 5 - import { LISTS } from "./lists.js"; 6 5 7 6 export const createPostLabel = async ( 8 7 uri: string, ··· 13 12 await isLoggedIn; 14 13 await limit(async () => { 15 14 try { 16 - return agent.tools.ozone.moderation.emitEvent( 15 + await agent.tools.ozone.moderation.emitEvent( 17 16 { 18 17 event: { 19 18 $type: "tools.ozone.moderation.defs#modEventLabel", 20 - comment: comment, 19 + comment, 21 20 createLabelVals: [label], 22 21 negateLabelVals: [], 23 22 }, 24 23 // specify the labeled post by strongRef 25 24 subject: { 26 25 $type: "com.atproto.repo.strongRef", 27 - uri: uri, 28 - cid: cid, 26 + uri, 27 + cid, 29 28 }, 30 29 // put in the rest of the metadata 31 30 createdBy: `${agent.did}`, ··· 34 33 { 35 34 encoding: "application/json", 36 35 headers: { 37 - "atproto-proxy": `${MOD_DID!}#atproto_labeler`, 36 + "atproto-proxy": `${MOD_DID}#atproto_labeler`, 38 37 "atproto-accept-labelers": 39 38 "did:plc:ar7c4by46qjdydhdevvrndac;redact", 40 39 }, ··· 58 57 { 59 58 event: { 60 59 $type: "tools.ozone.moderation.defs#modEventLabel", 61 - comment: comment, 60 + comment, 62 61 createLabelVals: [label], 63 62 negateLabelVals: [], 64 63 }, 65 64 // specify the labeled post by strongRef 66 65 subject: { 67 66 $type: "com.atproto.admin.defs#repoRef", 68 - did: did, 67 + did, 69 68 }, 70 69 // put in the rest of the metadata 71 70 createdBy: `${agent.did}`, ··· 74 73 { 75 74 encoding: "application/json", 76 75 headers: { 77 - "atproto-proxy": `${MOD_DID!}#atproto_labeler`, 76 + "atproto-proxy": `${MOD_DID}#atproto_labeler`, 78 77 "atproto-accept-labelers": 79 78 "did:plc:ar7c4by46qjdydhdevvrndac;redact", 80 79 }, ··· 94 93 await isLoggedIn; 95 94 await limit(async () => { 96 95 try { 97 - return agent.tools.ozone.moderation.emitEvent( 96 + await agent.tools.ozone.moderation.emitEvent( 98 97 { 99 98 event: { 100 99 $type: "tools.ozone.moderation.defs#modEventReport", 101 - comment: comment, 100 + comment, 102 101 reportType: "com.atproto.moderation.defs#reasonOther", 103 102 }, 104 103 // specify the labeled post by strongRef 105 104 subject: { 106 105 $type: "com.atproto.repo.strongRef", 107 - uri: uri, 108 - cid: cid, 106 + uri, 107 + cid, 109 108 }, 110 109 // put in the rest of the metadata 111 110 createdBy: `${agent.did}`, ··· 114 113 { 115 114 encoding: "application/json", 116 115 headers: { 117 - "atproto-proxy": `${MOD_DID!}#atproto_labeler`, 116 + "atproto-proxy": `${MOD_DID}#atproto_labeler`, 118 117 "atproto-accept-labelers": 119 118 "did:plc:ar7c4by46qjdydhdevvrndac;redact", 120 119 }, ··· 134 133 { 135 134 event: { 136 135 $type: "tools.ozone.moderation.defs#modEventComment", 137 - comment: comment, 136 + comment, 138 137 }, 139 138 // specify the labeled post by strongRef 140 139 subject: { 141 140 $type: "com.atproto.admin.defs#repoRef", 142 - did: did, 141 + did, 143 142 }, 144 143 // put in the rest of the metadata 145 144 createdBy: `${agent.did}`, ··· 148 147 { 149 148 encoding: "application/json", 150 149 headers: { 151 - "atproto-proxy": `${MOD_DID!}#atproto_labeler`, 150 + "atproto-proxy": `${MOD_DID}#atproto_labeler`, 152 151 "atproto-accept-labelers": 153 152 "did:plc:ar7c4by46qjdydhdevvrndac;redact", 154 153 }, ··· 168 167 { 169 168 event: { 170 169 $type: "tools.ozone.moderation.defs#modEventReport", 171 - comment: comment, 170 + comment, 172 171 reportType: "com.atproto.moderation.defs#reasonOther", 173 172 }, 174 173 // specify the labeled post by strongRef 175 174 subject: { 176 175 $type: "com.atproto.admin.defs#repoRef", 177 - did: did, 176 + did, 178 177 }, 179 178 // put in the rest of the metadata 180 179 createdBy: `${agent.did}`, ··· 183 182 { 184 183 encoding: "application/json", 185 184 headers: { 186 - "atproto-proxy": `${MOD_DID!}#atproto_labeler`, 185 + "atproto-proxy": `${MOD_DID}#atproto_labeler`, 187 186 "atproto-accept-labelers": 188 187 "did:plc:ar7c4by46qjdydhdevvrndac;redact", 189 188 }, 190 189 }, 191 190 ); 192 - } catch (e) { 193 - console.error(e); 194 - } 195 - }); 196 - }; 197 - 198 - export const addToList = async (label: string, did: string) => { 199 - await isLoggedIn; 200 - 201 - const newList = LISTS.find((list) => list.label === label); 202 - if (!newList) { 203 - logger.warn( 204 - `List not found for ${label}. Likely a label not associated with a list`, 205 - ); 206 - return; 207 - } 208 - logger.info(`New label added to list: ${newList.label}`); 209 - 210 - const listUri = `at://${MOD_DID!}/app.bsky.graph.list/${newList.rkey}`; 211 - 212 - await limit(async () => { 213 - try { 214 - await agent.com.atproto.repo.createRecord({ 215 - collection: "app.bsky.graph.listitem", 216 - repo: `${MOD_DID!}`, 217 - record: { 218 - subject: did, 219 - list: listUri, 220 - createdAt: new Date().toISOString(), 221 - }, 222 - }); 223 191 } catch (e) { 224 192 console.error(e); 225 193 }
+21 -20
src/monitor.ts
··· 1 1 import { describe } from "node:test"; 2 + 2 3 import { PROFILE_CHECKS } from "./constants.js"; 3 4 import logger from "./logger.js"; 4 5 import { createAccountReport, createAccountLabel } from "./moderation.js"; ··· 24 25 // Check if DID is whitelisted 25 26 if (checkProfiles?.ignoredDIDs) { 26 27 if (checkProfiles.ignoredDIDs.includes(did)) { 27 - return logger.info(`Whitelisted DID: ${did}`); 28 + logger.info(`Whitelisted DID: ${did}`); return; 28 29 } 29 30 } 30 31 31 32 if (description) { 32 33 if (checkProfiles?.description === true) { 33 - if (checkProfiles!.check.test(description)) { 34 - if (checkProfiles!.whitelist) { 35 - if (checkProfiles!.whitelist.test(description)) { 36 - logger.info(`Whitelisted phrase found.`); 34 + if (checkProfiles.check.test(description)) { 35 + if (checkProfiles.whitelist) { 36 + if (checkProfiles.whitelist.test(description)) { 37 + logger.info("Whitelisted phrase found."); 37 38 return; 38 39 } 39 40 } else { 40 - logger.info(`${checkProfiles!.label} in description for ${did}`); 41 + logger.info(`${checkProfiles.label} in description for ${did}`); 41 42 } 42 43 43 - if (checkProfiles!.reportOnly === true) { 44 + if (checkProfiles.reportOnly === true) { 44 45 createAccountReport( 45 46 did, 46 - `${time}: ${checkProfiles!.comment} - ${displayName} - ${description}`, 47 + `${time}: ${checkProfiles.comment} - ${displayName} - ${description}`, 47 48 ); 48 49 return; 49 50 } else { 50 51 createAccountLabel( 51 52 did, 52 - `${checkProfiles!.label}`, 53 - `${time}: ${checkProfiles!.comment}`, 53 + checkProfiles.label, 54 + `${time}: ${checkProfiles.comment}`, 54 55 ); 55 56 } 56 57 } ··· 80 81 // Check if DID is whitelisted 81 82 if (checkProfiles?.ignoredDIDs) { 82 83 if (checkProfiles.ignoredDIDs.includes(did)) { 83 - return logger.info(`Whitelisted DID: ${did}`); 84 + logger.info(`Whitelisted DID: ${did}`); return; 84 85 } 85 86 } 86 87 87 88 if (displayName) { 88 89 if (checkProfiles?.displayName === true) { 89 - if (checkProfiles!.check.test(displayName)) { 90 - if (checkProfiles!.whitelist) { 91 - if (checkProfiles!.whitelist.test(displayName)) { 92 - logger.info(`Whitelisted phrase found.`); 90 + if (checkProfiles.check.test(displayName)) { 91 + if (checkProfiles.whitelist) { 92 + if (checkProfiles.whitelist.test(displayName)) { 93 + logger.info("Whitelisted phrase found."); 93 94 return; 94 95 } 95 96 } else { 96 - logger.info(`${checkProfiles!.label} in displayName for ${did}`); 97 + logger.info(`${checkProfiles.label} in displayName for ${did}`); 97 98 } 98 99 99 - if (checkProfiles!.reportOnly === true) { 100 + if (checkProfiles.reportOnly === true) { 100 101 createAccountReport( 101 102 did, 102 - `${time}: ${checkProfiles!.comment} - ${displayName} - ${description}`, 103 + `${time}: ${checkProfiles.comment} - ${displayName} - ${description}`, 103 104 ); 104 105 return; 105 106 } else { 106 107 createAccountLabel( 107 108 did, 108 - `${checkProfiles!.label}`, 109 - `${time}: ${checkProfiles!.comment}`, 109 + checkProfiles.label, 110 + `${time}: ${checkProfiles.comment}`, 110 111 ); 111 112 } 112 113 }
+8 -12
src/utils.ts
··· 1 + import { homoglyphMap } from "./homoglyphs.js"; 1 2 import logger from "./logger.js"; 2 3 3 - import { homoglyphMap } from "./homoglyphs.js"; 4 4 5 5 /** 6 6 * Normalizes a string by converting it to lowercase, replacing homoglyphs, ··· 42 42 43 43 export async function getFinalUrl(url: string): Promise<string> { 44 44 const controller = new AbortController(); 45 - const timeoutId = setTimeout(() => controller.abort(), 10000); // 10-second timeout 45 + const timeoutId = setTimeout(() => { controller.abort(); }, 10000); // 10-second timeout 46 46 47 47 try { 48 48 const response = await fetch(url, { ··· 65 65 } 66 66 67 67 export async function getLanguage(profile: string): Promise<string> { 68 - if (typeof profile !== "string" || profile === null) { 68 + if (typeof profile !== "string") { 69 69 logger.warn( 70 70 "[GETLANGUAGE] getLanguage called with invalid profile data, defaulting to 'eng'.", 71 71 profile, ··· 79 79 return "eng"; 80 80 } 81 81 82 - const lande = (await import("lande")).default; 83 - let langsProbabilityMap = lande(profileText); 84 - 85 - // Sort by probability in descending order 86 - langsProbabilityMap.sort( 87 - (a: [string, number], b: [string, number]) => b[1] - a[1], 88 - ); 82 + const { franc } = await import("franc"); 83 + const detectedLang = franc(profileText); 89 84 90 - // Return the language code with the highest probability 91 - return langsProbabilityMap[0][0]; 85 + // franc returns "und" (undetermined) if it can't detect the language 86 + // Default to "eng" in such cases 87 + return detectedLang === "und" ? "eng" : detectedLang; 92 88 }