this repo has no description
0
fork

Configure Feed

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

Complete refactor for @skyware/jetstream

alice d6ffbb82 b01d5fcd

+206 -1554
-3
.env.example
··· 1 1 FIREHOSE_URL=ws://localhost:6008/subscribe 2 2 PORT=9201 3 - WANTED_COLLECTIONS=app.bsky.feed.post 4 - PURGE_DAYS=7 5 - LOG_RAW_EVENTS=true 6 3 LOG_LEVEL=error
+1
.nvmrc
··· 1 + v22.9.0
+9 -13
package.json
··· 1 1 { 2 - "name": "bluesky-firehose-consumer", 2 + "name": "languagestats-bsky", 3 3 "version": "1.0.0", 4 - "description": "Consumes Bluesky firehose, processes posts, and exposes metrics for Prometheus.", 5 - "main": "dist/index.js", 4 + "description": "Consumes posts from Jetstream and and exposes language metrics for Prometheus.", 5 + "main": "src/index.ts", 6 + "type": "module", 6 7 "scripts": { 7 8 "start": "npx tsx src/index.ts", 8 9 "dev": "npx tsx --watch src/index.ts", ··· 11 12 "lint:fix": "npx eslint --fix ." 12 13 }, 13 14 "dependencies": { 14 - "@atproto/bsky": "^0.0.83", 15 - "@atproto/lexicon": "^0.4.1", 16 - "@atproto/xrpc-server": "^0.6.4", 15 + "@skyware/jetstream": "^0.1.3", 17 16 "better-sqlite3": "^11.3.0", 18 17 "dotenv": "^16.4.5", 19 18 "express": "^4.21.0", 20 - "node-schedule": "^2.1.1", 21 19 "pino": "^9.4.0", 22 20 "pino-pretty": "^11.2.2", 23 - "prom-client": "^15.1.3", 24 - "ws": "^8.18.0" 21 + "prom-client": "^15.1.3" 25 22 }, 26 23 "devDependencies": { 27 - "@eslint/js": "^9.10.0", 24 + "@eslint/js": "^9.11.0", 28 25 "@trivago/prettier-plugin-sort-imports": "^4.3.0", 29 26 "@types/better-sqlite3": "^7.6.11", 30 27 "@types/eslint__js": "^8.42.3", 31 28 "@types/express": "^4.17.21", 32 29 "@types/node": "^20.16.5", 33 30 "@types/node-schedule": "^2.1.7", 34 - "@types/ws": "^8.5.12", 35 - "eslint": "^9.10.0", 31 + "eslint": "^9.11.0", 36 32 "prettier": "^3.3.3", 37 33 "tsx": "^4.19.1", 38 34 "typescript": "^5.6.2", 39 35 "typescript-eslint": "^8.6.0" 40 36 }, 41 - "author": "Your Name", 37 + "author": "alice", 42 38 "license": "MIT", 43 39 "packageManager": "pnpm@9.10.0+sha512.73a29afa36a0d092ece5271de5177ecbf8318d454ecd701343131b8ebc0c1a91c487da46ab77c8e596d6acf1461e3594ced4becedf8921b074fbd8653ed7051c" 44 40 }
+68 -1312
pnpm-lock.yaml
··· 8 8 9 9 .: 10 10 dependencies: 11 - '@atproto/bsky': 12 - specifier: ^0.0.83 13 - version: 0.0.83 14 - '@atproto/lexicon': 15 - specifier: ^0.4.1 16 - version: 0.4.1 17 - '@atproto/xrpc-server': 18 - specifier: ^0.6.4 19 - version: 0.6.4 11 + '@skyware/jetstream': 12 + specifier: ^0.1.3 13 + version: 0.1.3(@atcute/client@2.0.1) 20 14 better-sqlite3: 21 15 specifier: ^11.3.0 22 16 version: 11.3.0 ··· 26 20 express: 27 21 specifier: ^4.21.0 28 22 version: 4.21.0 29 - node-schedule: 30 - specifier: ^2.1.1 31 - version: 2.1.1 32 23 pino: 33 24 specifier: ^9.4.0 34 25 version: 9.4.0 ··· 38 29 prom-client: 39 30 specifier: ^15.1.3 40 31 version: 15.1.3 41 - ws: 42 - specifier: ^8.18.0 43 - version: 8.18.0 44 32 devDependencies: 45 33 '@eslint/js': 46 - specifier: ^9.10.0 47 - version: 9.10.0 34 + specifier: ^9.11.0 35 + version: 9.11.0 48 36 '@trivago/prettier-plugin-sort-imports': 49 37 specifier: ^4.3.0 50 38 version: 4.3.0(prettier@3.3.3) ··· 63 51 '@types/node-schedule': 64 52 specifier: ^2.1.7 65 53 version: 2.1.7 66 - '@types/ws': 67 - specifier: ^8.5.12 68 - version: 8.5.12 69 54 eslint: 70 - specifier: ^9.10.0 71 - version: 9.10.0 55 + specifier: ^9.11.0 56 + version: 9.11.0 72 57 prettier: 73 58 specifier: ^3.3.3 74 59 version: 3.3.3 ··· 80 65 version: 5.6.2 81 66 typescript-eslint: 82 67 specifier: ^8.6.0 83 - version: 8.6.0(eslint@9.10.0)(typescript@5.6.2) 68 + version: 8.6.0(eslint@9.11.0)(typescript@5.6.2) 84 69 85 70 packages: 86 71 87 - '@atproto/api@0.13.7': 88 - resolution: {integrity: sha512-41kSLmFWDbuPOenb52WRq1lnBkSZrL+X29tWcvEt6SZXK4xBoKAalw1MjF+oabhzff12iMtNaNvmmt2fu1L+cw==} 72 + '@atcute/bluesky@1.0.6': 73 + resolution: {integrity: sha512-RVhFwleInQYj5znVFRRL7Buun3PTTWuC1T0dWlEamkuDrMlmnXZ4LpzERMRyBnvMpFWDJGE2wJfKYrHNAWmY+g==} 74 + peerDependencies: 75 + '@atcute/client': ^1.0.0 || ^2.0.0 89 76 90 - '@atproto/bsky@0.0.83': 91 - resolution: {integrity: sha512-cXGGRQA5ppmlAgjFCmzl76GP7gDBqgaRdgdkNvDwRmI826MXBx6k2AscDLmyr9+ANPtrVA+S3Q2FbBtAd5uf1w==} 92 - hasBin: true 93 - 94 - '@atproto/common-web@0.3.0': 95 - resolution: {integrity: sha512-67VnV6JJyX+ZWyjV7xFQMypAgDmjVaR9ZCuU/QW+mqlqI7fex2uL4Fv+7/jHadgzhuJHVd6OHOvNn0wR5WZYtA==} 96 - 97 - '@atproto/common@0.1.0': 98 - resolution: {integrity: sha512-OB5tWE2R19jwiMIs2IjQieH5KTUuMb98XGCn9h3xuu6NanwjlmbCYMv08fMYwIp3UQ6jcq//84cDT3Bu6fJD+A==} 99 - 100 - '@atproto/common@0.4.2': 101 - resolution: {integrity: sha512-tv9lHjaoXW7CQrXUiu81RJZJ/bgcPSMaXrrgN4DxS08Z97hor0jgxThlwmGny1p6ksTZ5/bCX9GeJqi/b4LDCg==} 102 - 103 - '@atproto/crypto@0.1.0': 104 - resolution: {integrity: sha512-9xgFEPtsCiJEPt9o3HtJT30IdFTGw5cQRSJVIy5CFhqBA4vDLcdXiRDLCjkzHEVbtNCsHUW6CrlfOgbeLPcmcg==} 105 - 106 - '@atproto/crypto@0.4.1': 107 - resolution: {integrity: sha512-7pQNHWYyx8jGhYdPbmcuPD9W73nd/5v3mfBlncO0sBzxnPbmA6aXAWOz+fNVZwHwBJPeb/Gzf/FT/uDx7/eYFg==} 108 - 109 - '@atproto/identity@0.4.1': 110 - resolution: {integrity: sha512-5AoPJDSD0rAay/6Sib+n/FjfwGulM/+xCNxwwDLR9QI4EoeUlvIH8g5BNdix812v312/Qd42kJrLpCNTZ5rvew==} 111 - 112 - '@atproto/lexicon@0.4.1': 113 - resolution: {integrity: sha512-bzyr+/VHXLQWbumViX5L7h1NKQObfs8Z+XZJl43OUK8nYFUI4e/sW1IZKRNfw7Wvi5YVNK+J+yP3DWIBZhkCYA==} 114 - 115 - '@atproto/repo@0.5.1': 116 - resolution: {integrity: sha512-/asnjlqoDiJrKnBGsv9Xg4sUMKK0YsaLBMt6AepWfwrXTTfHPLY7QxyyFMxxuzQQtLyYaj4lIn5zhmNz7TXf0w==} 117 - 118 - '@atproto/sync@0.1.1': 119 - resolution: {integrity: sha512-3DZH8wmWKLbYGx7Y+LtATso2PLYW+pqy3M3c1l5E4c6dJB7WVdlAYDl3qgp2QGgmfwJVngPazJlq4ljT57S0Xg==} 120 - 121 - '@atproto/syntax@0.3.0': 122 - resolution: {integrity: sha512-Weq0ZBxffGHDXHl9U7BQc2BFJi/e23AL+k+i5+D9hUq/bzT4yjGsrCejkjq0xt82xXDjmhhvQSZ0LqxyZ5woxA==} 123 - 124 - '@atproto/xrpc-server@0.6.4': 125 - resolution: {integrity: sha512-AL9okOTpJpxh3wJjT27RiPkp2IWIxDPCyyvuO1SJu0E9URGfWZL26SlT7/IR/tadZTJezr5+ZNuxhV0uhI+s1A==} 126 - 127 - '@atproto/xrpc@0.6.2': 128 - resolution: {integrity: sha512-as/gb08xJb02HAGNrSQSumCe10WnOAcnM6bR6KMatQyQJuEu7OY6ZDSTM/4HfjjoxsNqdvPmbYuoUab1bKTNlA==} 77 + '@atcute/client@2.0.1': 78 + resolution: {integrity: sha512-M4q0QchcjcPTypgXTKc4MO06eJMno5op14qHAMWhKbxROOnxnhLfjG9rbcNr7nOycQb5THmUIEAwvvabrv1AjA==} 129 79 130 80 '@babel/code-frame@7.24.7': 131 81 resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} ··· 188 138 resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==} 189 139 engines: {node: '>=6.9.0'} 190 140 191 - '@bufbuild/protobuf@1.10.0': 192 - resolution: {integrity: sha512-QDdVFLoN93Zjg36NoQPZfsVH9tZew7wKDKyV5qRdj8ntT4wQCOradQjRaTdwMhWUYsgKsvCINKKm87FdEk96Ag==} 193 - 194 - '@cbor-extract/cbor-extract-darwin-arm64@2.2.0': 195 - resolution: {integrity: sha512-P7swiOAdF7aSi0H+tHtHtr6zrpF3aAq/W9FXx5HektRvLTM2O89xCyXF3pk7pLc7QpaY7AoaE8UowVf9QBdh3w==} 196 - cpu: [arm64] 197 - os: [darwin] 198 - 199 - '@cbor-extract/cbor-extract-darwin-x64@2.2.0': 200 - resolution: {integrity: sha512-1liF6fgowph0JxBbYnAS7ZlqNYLf000Qnj4KjqPNW4GViKrEql2MgZnAsExhY9LSy8dnvA4C0qHEBgPrll0z0w==} 201 - cpu: [x64] 202 - os: [darwin] 203 - 204 - '@cbor-extract/cbor-extract-linux-arm64@2.2.0': 205 - resolution: {integrity: sha512-rQvhNmDuhjTVXSPFLolmQ47/ydGOFXtbR7+wgkSY0bdOxCFept1hvg59uiLPT2fVDuJFuEy16EImo5tE2x3RsQ==} 206 - cpu: [arm64] 207 - os: [linux] 208 - 209 - '@cbor-extract/cbor-extract-linux-arm@2.2.0': 210 - resolution: {integrity: sha512-QeBcBXk964zOytiedMPQNZr7sg0TNavZeuUCD6ON4vEOU/25+pLhNN6EDIKJ9VLTKaZ7K7EaAriyYQ1NQ05s/Q==} 211 - cpu: [arm] 212 - os: [linux] 213 - 214 - '@cbor-extract/cbor-extract-linux-x64@2.2.0': 215 - resolution: {integrity: sha512-cWLAWtT3kNLHSvP4RKDzSTX9o0wvQEEAj4SKvhWuOVZxiDAeQazr9A+PSiRILK1VYMLeDml89ohxCnUNQNQNCw==} 216 - cpu: [x64] 217 - os: [linux] 218 - 219 - '@cbor-extract/cbor-extract-win32-x64@2.2.0': 220 - resolution: {integrity: sha512-l2M+Z8DO2vbvADOBNLbbh9y5ST1RY5sqkWOg/58GkUPBYou/cuNZ68SGQ644f1CvZ8kcOxyZtw06+dxWHIoN/w==} 221 - cpu: [x64] 222 - os: [win32] 223 - 224 - '@connectrpc/connect-express@1.5.0': 225 - resolution: {integrity: sha512-frqOuHzAEAyIzP15S2GF5F9nq/T2t4yJ3A5F2w1vML7LUz+gL+meZPrHaI6nXfb3im/fk1SD3vQTcRadp9HZ0A==} 226 - engines: {node: '>=16.0.0'} 227 - peerDependencies: 228 - '@bufbuild/protobuf': ^1.10.0 229 - '@connectrpc/connect': 1.5.0 230 - '@connectrpc/connect-node': 1.5.0 231 - 232 - '@connectrpc/connect-node@1.5.0': 233 - resolution: {integrity: sha512-go27+V6c6/YOGMXUs7d1NbXnGpMJl5fKYfMtbBKDs9azZTg/tW9q5S0iw9upZs43bOPV8YnJAWmTW9n1Te9NAw==} 234 - engines: {node: '>=16.0.0'} 235 - peerDependencies: 236 - '@bufbuild/protobuf': ^1.10.0 237 - '@connectrpc/connect': 1.5.0 238 - 239 - '@connectrpc/connect@1.5.0': 240 - resolution: {integrity: sha512-1gGg0M6c2Y3lnr5itis9dNj9r8hbOIuBMqoGSbUy7L7Vjw4MAttjJzJfj9HCDgytGCJkGanYEYI6MQVDijdVQw==} 241 - peerDependencies: 242 - '@bufbuild/protobuf': ^1.10.0 243 - 244 - '@did-plc/lib@0.0.1': 245 - resolution: {integrity: sha512-RkY5w9DbYMco3SjeepqIiMveqz35exjlVDipCs2gz9AXF4/cp9hvmrp9zUWEw2vny+FjV8vGEN7QpaXWaO6nhg==} 246 - 247 141 '@esbuild/aix-ppc64@0.23.1': 248 142 resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} 249 143 engines: {node: '>=18'} ··· 406 300 resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} 407 301 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 408 302 409 - '@eslint/js@9.10.0': 410 - resolution: {integrity: sha512-fuXtbiP5GWIn8Fz+LWoOMVf/Jxm+aajZYkhi6CuEm4SxymFM+eUWzbO9qXT+L0iCkL5+KGYMCSGxo686H19S1g==} 303 + '@eslint/js@9.11.0': 304 + resolution: {integrity: sha512-LPkkenkDqyzTFauZLLAPhIb48fj6drrfMvRGSL9tS3AcZBSVTllemLSNyCvHNNL2t797S/6DJNSIwRwXgMO/eQ==} 411 305 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 412 306 413 307 '@eslint/object-schema@2.1.4': 414 308 resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} 415 309 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 416 310 417 - '@eslint/plugin-kit@0.1.0': 418 - resolution: {integrity: sha512-autAXT203ixhqei9xt+qkYOvY8l6LAFIdT2UXc/RPNeUVfqRF1BV94GTJyVPFKT8nFM6MyVJhjLj9E8JWvf5zQ==} 311 + '@eslint/plugin-kit@0.2.0': 312 + resolution: {integrity: sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig==} 419 313 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 420 314 421 - '@fastify/busboy@2.1.1': 422 - resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} 423 - engines: {node: '>=14'} 424 - 425 315 '@humanwhocodes/module-importer@1.0.1': 426 316 resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 427 317 engines: {node: '>=12.22'} ··· 430 320 resolution: {integrity: sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==} 431 321 engines: {node: '>=18.18'} 432 322 433 - '@ioredis/commands@1.2.0': 434 - resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==} 435 - 436 - '@ipld/car@3.2.4': 437 - resolution: {integrity: sha512-rezKd+jk8AsTGOoJKqzfjLJ3WVft7NZNH95f0pfPbicROvzTyvHCNy567HzSUd6gRXZ9im29z5ZEv9Hw49jSYw==} 438 - 439 - '@ipld/dag-cbor@7.0.3': 440 - resolution: {integrity: sha512-1VVh2huHsuohdXC1bGJNE8WR72slZ9XE2T3wbBBq31dm7ZBatmKLLxrB+XAqafxfRFjv08RZmj/W/ZqaM13AuA==} 441 - 442 323 '@jridgewell/gen-mapping@0.3.5': 443 324 resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} 444 325 engines: {node: '>=6.0.0'} ··· 457 338 '@jridgewell/trace-mapping@0.3.25': 458 339 resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 459 340 460 - '@noble/curves@1.6.0': 461 - resolution: {integrity: sha512-TlaHRXDehJuRNR9TfZDNQ45mMEd5dwUwmicsafcIX4SsNiqnCHKjE/1alYPd/lDRVhxdhUAlv8uEhMCI5zjIJQ==} 462 - engines: {node: ^14.21.3 || >=16} 463 - 464 - '@noble/hashes@1.5.0': 465 - resolution: {integrity: sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==} 466 - engines: {node: ^14.21.3 || >=16} 467 - 468 - '@noble/secp256k1@1.7.1': 469 - resolution: {integrity: sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==} 470 - 471 341 '@nodelib/fs.scandir@2.1.5': 472 342 resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 473 343 engines: {node: '>= 8'} ··· 483 353 '@opentelemetry/api@1.9.0': 484 354 resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} 485 355 engines: {node: '>=8.0.0'} 356 + 357 + '@skyware/jetstream@0.1.3': 358 + resolution: {integrity: sha512-KuCUTaoJ9HqanRwEyAimXFjOPJ8DbA+S4tL1DS7Bd4YyF/6hHjUttkG7hGCKOXyJ67RNFIfTca0PxzVrzoIWBw==} 486 359 487 360 '@trivago/prettier-plugin-sort-imports@4.3.0': 488 361 resolution: {integrity: sha512-r3n0onD3BTOVUNPhR4lhVK4/pABGpbA7bW3eumZnYdKaHkf1qEC+Mag6DPbGNuuh0eG8AaYj+YqmVHSiGslaTQ==} ··· 496 369 '@types/better-sqlite3@7.6.11': 497 370 resolution: {integrity: sha512-i8KcD3PgGtGBLl3+mMYA8PdKkButvPyARxA7IQAd6qeslht13qxb1zzO8dRCtE7U3IoJS782zDBAeoKiM695kg==} 498 371 499 - '@types/bn.js@5.1.6': 500 - resolution: {integrity: sha512-Xh8vSwUeMKeYYrj3cX4lGQgFSF/N03r+tv4AiLl1SucqV+uTQpxRcnM8AkXKHwYP9ZPXOYXRr2KPXpVlIvqh9w==} 501 - 502 372 '@types/body-parser@1.19.5': 503 373 resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} 504 374 505 375 '@types/connect@3.4.38': 506 376 resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} 507 377 508 - '@types/elliptic@6.4.18': 509 - resolution: {integrity: sha512-UseG6H5vjRiNpQvrhy4VF/JXdA3V/Fp5amvveaL+fs28BZ6xIKJBPnUPRlEaZpysD9MbpfaLi8lbl7PGUAkpWw==} 510 - 511 378 '@types/eslint@9.6.1': 512 379 resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} 513 380 ··· 549 416 550 417 '@types/serve-static@1.15.7': 551 418 resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} 552 - 553 - '@types/ws@8.5.12': 554 - resolution: {integrity: sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==} 555 419 556 420 '@typescript-eslint/eslint-plugin@8.6.0': 557 421 resolution: {integrity: sha512-UOaz/wFowmoh2G6Mr9gw60B1mm0MzUtm6Ic8G2yM1Le6gyj5Loi/N+O5mocugRGY+8OeeKmkMmbxNqUCq3B4Sg==} ··· 649 513 array-flatten@1.1.1: 650 514 resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} 651 515 652 - asn1.js@5.4.1: 653 - resolution: {integrity: sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==} 654 - 655 - asynckit@0.4.0: 656 - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} 657 - 658 516 atomic-sleep@1.0.0: 659 517 resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} 660 518 engines: {node: '>=8.0.0'} 661 519 662 - await-lock@2.2.2: 663 - resolution: {integrity: sha512-aDczADvlvTGajTDjcjpJMqRkOF6Qdz3YbPZm/PyW6tKPkx2hlYBzxMhEywM/tU72HrVZjgl5VCdRuMlA7pZ8Gw==} 664 - 665 - axios@0.27.2: 666 - resolution: {integrity: sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==} 667 - 668 - axios@1.7.7: 669 - resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} 670 - 671 - b4a@1.6.6: 672 - resolution: {integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==} 673 - 674 520 balanced-match@1.0.2: 675 521 resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 676 522 677 - bare-events@2.4.2: 678 - resolution: {integrity: sha512-qMKFd2qG/36aA4GwvKq8MxnPgCQAmBWmSyLWsJcbn8v03wvIPQ/hG1Ms8bPzndZxMDoHpxez5VOS+gC9Yi24/Q==} 679 - 680 - bare-fs@2.3.5: 681 - resolution: {integrity: sha512-SlE9eTxifPDJrT6YgemQ1WGFleevzwY+XAP1Xqgl56HtcrisC2CHCZ2tq6dBpcH2TnNxwUEUGhweo+lrQtYuiw==} 682 - 683 - bare-os@2.4.4: 684 - resolution: {integrity: sha512-z3UiI2yi1mK0sXeRdc4O1Kk8aOa/e+FNWZcTiPB/dfTWyLypuE99LibgRaQki914Jq//yAWylcAt+mknKdixRQ==} 685 - 686 - bare-path@2.1.3: 687 - resolution: {integrity: sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==} 688 - 689 - bare-stream@2.3.0: 690 - resolution: {integrity: sha512-pVRWciewGUeCyKEuRxwv06M079r+fRjAQjBEK2P6OYGrO43O+Z0LrPZZEjlc4mB6C2RpZ9AxJ1s7NLEtOHO6eA==} 691 - 692 523 base64-js@1.5.1: 693 524 resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} 694 525 695 526 better-sqlite3@11.3.0: 696 527 resolution: {integrity: sha512-iHt9j8NPYF3oKCNOO5ZI4JwThjt3Z6J6XrcwG85VNMVzv1ByqrHWv5VILEbCMFWDsoHhXvQ7oC8vgRXFAKgl9w==} 697 528 698 - big-integer@1.6.52: 699 - resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} 700 - engines: {node: '>=0.6'} 701 - 702 529 bindings@1.5.0: 703 530 resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} 704 531 ··· 708 535 bl@4.1.0: 709 536 resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} 710 537 711 - bn.js@4.12.0: 712 - resolution: {integrity: sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==} 713 - 714 538 body-parser@1.20.3: 715 539 resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} 716 540 engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} 717 - 718 - boolean@3.2.0: 719 - resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} 720 541 721 542 brace-expansion@1.1.11: 722 543 resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} ··· 728 549 resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 729 550 engines: {node: '>=8'} 730 551 731 - brorand@1.1.0: 732 - resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} 733 - 734 552 buffer@5.7.1: 735 553 resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} 736 554 737 555 buffer@6.0.3: 738 556 resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} 739 557 740 - bytes@3.0.0: 741 - resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} 742 - engines: {node: '>= 0.8'} 743 - 744 558 bytes@3.1.2: 745 559 resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} 746 560 engines: {node: '>= 0.8'} ··· 753 567 resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 754 568 engines: {node: '>=6'} 755 569 756 - cbor-extract@2.2.0: 757 - resolution: {integrity: sha512-Ig1zM66BjLfTXpNgKpvBePq271BPOvu8MR0Jl080yG7Jsl+wAZunfrwiwA+9ruzm/WEdIV5QF/bjDZTqyAIVHA==} 758 - hasBin: true 759 - 760 - cbor-x@1.6.0: 761 - resolution: {integrity: sha512-0kareyRwHSkL6ws5VXHEf8uY1liitysCVJjlmhaLG+IXLqhSaOO+t63coaso7yjwEzWZzLy8fJo06gZDVQM9Qg==} 762 - 763 - cborg@1.10.2: 764 - resolution: {integrity: sha512-b3tFPA9pUr2zCUiCfRd2+wok2/LBSNUMKOuRRok+WlvvAgEt/PlbgPTsZUcwCOs53IJvLgTp0eotwtosE6njug==} 765 - hasBin: true 766 - 767 570 chalk@2.4.2: 768 571 resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 769 572 engines: {node: '>=4'} ··· 775 578 chownr@1.1.4: 776 579 resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} 777 580 778 - cluster-key-slot@1.1.2: 779 - resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==} 780 - engines: {node: '>=0.10.0'} 781 - 782 581 color-convert@1.9.3: 783 582 resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 784 583 ··· 792 591 color-name@1.1.4: 793 592 resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 794 593 795 - color-string@1.9.1: 796 - resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} 797 - 798 - color@4.2.3: 799 - resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} 800 - engines: {node: '>=12.5.0'} 801 - 802 594 colorette@2.0.20: 803 595 resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} 804 596 805 - combined-stream@1.0.8: 806 - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} 807 - engines: {node: '>= 0.8'} 808 - 809 - compressible@2.0.18: 810 - resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} 811 - engines: {node: '>= 0.6'} 812 - 813 - compression@1.7.4: 814 - resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} 815 - engines: {node: '>= 0.8.0'} 816 - 817 597 concat-map@0.0.1: 818 598 resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 819 599 ··· 831 611 cookie@0.6.0: 832 612 resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} 833 613 engines: {node: '>= 0.6'} 834 - 835 - cors@2.8.5: 836 - resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} 837 - engines: {node: '>= 0.10'} 838 - 839 - cron-parser@4.9.0: 840 - resolution: {integrity: sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q==} 841 - engines: {node: '>=12.0.0'} 842 614 843 615 cross-spawn@7.0.3: 844 616 resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} ··· 879 651 resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} 880 652 engines: {node: '>= 0.4'} 881 653 882 - delay@5.0.0: 883 - resolution: {integrity: sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==} 884 - engines: {node: '>=10'} 885 - 886 - delayed-stream@1.0.0: 887 - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} 888 - engines: {node: '>=0.4.0'} 889 - 890 - denque@2.1.0: 891 - resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} 892 - engines: {node: '>=0.10'} 893 - 894 654 depd@2.0.0: 895 655 resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} 896 656 engines: {node: '>= 0.8'} ··· 909 669 910 670 ee-first@1.1.1: 911 671 resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} 912 - 913 - elliptic@6.5.7: 914 - resolution: {integrity: sha512-ESVCtTwiA+XhY3wyh24QqRGBoP3rEdDUl3EDUUo9tft074fi19IrdpH7hLCMMP3CIj7jb3W96rn8lt/BqIlt5Q==} 915 672 916 673 encodeurl@1.0.2: 917 674 resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} ··· 960 717 resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} 961 718 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 962 719 963 - eslint@9.10.0: 964 - resolution: {integrity: sha512-Y4D0IgtBZfOcOUAIQTSXBKoNGfY0REGqHJG6+Q81vNippW5YlKjHFj4soMxamKK1NXHUWuBZTLdU3Km+L/pcHw==} 720 + eslint@9.11.0: 721 + resolution: {integrity: sha512-yVS6XODx+tMFMDFcG4+Hlh+qG7RM6cCJXtQhCKLSsr3XkLvWggHjCqjfh0XsPPnt1c56oaT6PMgW9XWQQjdHXA==} 965 722 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 966 723 hasBin: true 967 724 peerDependencies: ··· 998 755 resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} 999 756 engines: {node: '>=6'} 1000 757 1001 - eventemitter3@4.0.7: 1002 - resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} 758 + event-target-shim@6.0.2: 759 + resolution: {integrity: sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==} 760 + engines: {node: '>=10.13.0'} 1003 761 1004 762 events@3.3.0: 1005 763 resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} ··· 1018 776 1019 777 fast-deep-equal@3.1.3: 1020 778 resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 1021 - 1022 - fast-fifo@1.3.2: 1023 - resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} 1024 779 1025 780 fast-glob@3.3.2: 1026 781 resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} ··· 1032 787 fast-levenshtein@2.0.6: 1033 788 resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 1034 789 1035 - fast-printf@1.6.9: 1036 - resolution: {integrity: sha512-FChq8hbz65WMj4rstcQsFB0O7Cy++nmbNfLYnD9cYv2cRn8EG6k/MGn9kO/tjO66t09DLDugj3yL+V2o6Qftrg==} 1037 - engines: {node: '>=10.0'} 1038 - 1039 790 fast-redact@3.5.0: 1040 791 resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==} 1041 792 engines: {node: '>=6'} ··· 1072 823 flatted@3.3.1: 1073 824 resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} 1074 825 1075 - follow-redirects@1.15.9: 1076 - resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} 1077 - engines: {node: '>=4.0'} 1078 - peerDependencies: 1079 - debug: '*' 1080 - peerDependenciesMeta: 1081 - debug: 1082 - optional: true 1083 - 1084 - form-data@4.0.0: 1085 - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} 1086 - engines: {node: '>= 6'} 1087 - 1088 826 forwarded@0.2.0: 1089 827 resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} 1090 828 engines: {node: '>= 0.6'} ··· 1103 841 1104 842 function-bind@1.1.2: 1105 843 resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 1106 - 1107 - get-caller-file@2.0.5: 1108 - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} 1109 - engines: {node: 6.* || 8.* || >= 10.*} 1110 844 1111 845 get-intrinsic@1.2.4: 1112 846 resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} ··· 1159 893 resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} 1160 894 engines: {node: '>= 0.4'} 1161 895 1162 - hash.js@1.1.7: 1163 - resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} 1164 - 1165 896 hasown@2.0.2: 1166 897 resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 1167 898 engines: {node: '>= 0.4'} 1168 899 1169 900 help-me@5.0.0: 1170 901 resolution: {integrity: sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==} 1171 - 1172 - hmac-drbg@1.0.1: 1173 - resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} 1174 902 1175 903 http-errors@2.0.0: 1176 904 resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} 1177 905 engines: {node: '>= 0.8'} 1178 906 1179 - http-terminator@3.2.0: 1180 - resolution: {integrity: sha512-JLjck1EzPaWjsmIf8bziM3p9fgR1Y3JoUKAkyYEbZmFrIvJM6I8vVJfBGWlEtV9IWOvzNnaTtjuwZeBY2kwB4g==} 1181 - engines: {node: '>=14'} 1182 - 1183 907 iconv-lite@0.4.24: 1184 908 resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} 1185 909 engines: {node: '>=0.10.0'} ··· 1204 928 1205 929 ini@1.3.8: 1206 930 resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} 1207 - 1208 - ioredis@5.4.1: 1209 - resolution: {integrity: sha512-2YZsvl7jopIa1gaePkeMtd9rAcSjOOjPtpcLlOeusyO+XH2SK5ZcT+UCrElPP+WVIInh2TzeI4XW9ENaSLVVHA==} 1210 - engines: {node: '>=12.22.0'} 1211 - 1212 - ip3country@5.0.0: 1213 - resolution: {integrity: sha512-lcFLMFU4eO1Z7tIpbVFZkaZ5ltqpeaRx7L9NsAbA9uA7/O/rj3RF8+evE5gDitooaTTIqjdzZrenFO/OOxQ2ew==} 1214 931 1215 932 ipaddr.js@1.9.1: 1216 933 resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} 1217 934 engines: {node: '>= 0.10'} 1218 935 1219 - is-arrayish@0.3.2: 1220 - resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} 1221 - 1222 936 is-extglob@2.1.1: 1223 937 resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1224 938 engines: {node: '>=0.10.0'} ··· 1238 952 isexe@2.0.0: 1239 953 resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1240 954 1241 - iso-datestring-validator@2.2.2: 1242 - resolution: {integrity: sha512-yLEMkBbLZTlVQqOnQ4FiMujR6T4DEcCb1xizmvXS+OxuhwcbtynoosRzdMA69zZCShCNAbi+gJ71FxZBBXx1SA==} 1243 - 1244 955 javascript-natural-sort@0.7.1: 1245 956 resolution: {integrity: sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==} 1246 - 1247 - jose@5.9.2: 1248 - resolution: {integrity: sha512-ILI2xx/I57b20sd7rHZvgiiQrmp2mcotwsAH+5ajbpFQbrYVQdNHYlQhoA5cFb78CgtBOxtC05TeA+mcgkuCqQ==} 1249 957 1250 958 joycon@3.1.1: 1251 959 resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} ··· 1272 980 json-stable-stringify-without-jsonify@1.0.1: 1273 981 resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 1274 982 1275 - key-encoder@2.0.3: 1276 - resolution: {integrity: sha512-fgBtpAGIr/Fy5/+ZLQZIPPhsZEcbSlYu/Wu96tNDFNSjSACw5lEIOFeaVdQ/iwrb8oxjlWi6wmWdH76hV6GZjg==} 1277 - 1278 983 keyv@4.5.4: 1279 984 resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} 1280 - 1281 - kysely@0.22.0: 1282 - resolution: {integrity: sha512-ZE3qWtnqLOalodzfK5QUEcm7AEulhxsPNuKaGFsC3XiqO92vMLm+mAHk/NnbSIOtC4RmGm0nsv700i8KDp1gfQ==} 1283 - engines: {node: '>=14.0.0'} 1284 985 1285 986 levn@0.4.1: 1286 987 resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} ··· 1290 991 resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 1291 992 engines: {node: '>=10'} 1292 993 1293 - lodash.defaults@4.2.0: 1294 - resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} 1295 - 1296 - lodash.isarguments@3.1.0: 1297 - resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==} 1298 - 1299 994 lodash.merge@4.6.2: 1300 995 resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 1301 996 1302 997 lodash@4.17.21: 1303 998 resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 1304 - 1305 - long-timeout@0.1.1: 1306 - resolution: {integrity: sha512-BFRuQUqc7x2NWxfJBCyUrN8iYUYznzL9JROmRz1gZ6KlOIgmoD+njPVbb+VNn2nGMKggMsK79iUNErillsrx7w==} 1307 - 1308 - luxon@3.5.0: 1309 - resolution: {integrity: sha512-rh+Zjr6DNfUYR3bPwJEnuwDdqMbxZW7LOQfUN4B54+Cl+0o5zaU9RJ6bcidfDtC1cWCZXQ+nvX8bf6bAji37QQ==} 1310 - engines: {node: '>=12'} 1311 999 1312 1000 media-typer@0.3.0: 1313 1001 resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} ··· 1332 1020 resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} 1333 1021 engines: {node: '>= 0.6'} 1334 1022 1335 - mime-db@1.53.0: 1336 - resolution: {integrity: sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==} 1337 - engines: {node: '>= 0.6'} 1338 - 1339 1023 mime-types@2.1.35: 1340 1024 resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} 1341 1025 engines: {node: '>= 0.6'} ··· 1349 1033 resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} 1350 1034 engines: {node: '>=10'} 1351 1035 1352 - minimalistic-assert@1.0.1: 1353 - resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} 1354 - 1355 - minimalistic-crypto-utils@1.0.1: 1356 - resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} 1357 - 1358 1036 minimatch@3.1.2: 1359 1037 resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1360 1038 ··· 1374 1052 ms@2.1.3: 1375 1053 resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 1376 1054 1377 - multiformats@9.9.0: 1378 - resolution: {integrity: sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==} 1379 - 1380 1055 napi-build-utils@1.0.2: 1381 1056 resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} 1382 1057 ··· 1391 1066 resolution: {integrity: sha512-7vbj10trelExNjFSBm5kTvZXXa7pZyKWx9RCKIyqe6I9Ev3IzGpQoqBP3a+cOdxY+pWj6VkP28n/2wWysBHD/A==} 1392 1067 engines: {node: '>=10'} 1393 1068 1394 - node-addon-api@6.1.0: 1395 - resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==} 1396 - 1397 - node-fetch@2.7.0: 1398 - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} 1399 - engines: {node: 4.x || >=6.0.0} 1400 - peerDependencies: 1401 - encoding: ^0.1.0 1402 - peerDependenciesMeta: 1403 - encoding: 1404 - optional: true 1405 - 1406 - node-gyp-build-optional-packages@5.1.1: 1407 - resolution: {integrity: sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==} 1408 - hasBin: true 1409 - 1410 - node-schedule@2.1.1: 1411 - resolution: {integrity: sha512-OXdegQq03OmXEjt2hZP33W2YPs/E5BcFQks46+G2gAxs4gHOIVD1u7EqlYLYSKsaIpyKCK9Gbk0ta1/gjRSMRQ==} 1412 - engines: {node: '>=6'} 1413 - 1414 - object-assign@4.1.1: 1415 - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 1416 - engines: {node: '>=0.10.0'} 1417 - 1418 1069 object-inspect@1.13.2: 1419 1070 resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} 1420 1071 engines: {node: '>= 0.4'} ··· 1427 1078 resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} 1428 1079 engines: {node: '>= 0.8'} 1429 1080 1430 - on-headers@1.0.2: 1431 - resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} 1432 - engines: {node: '>= 0.8'} 1433 - 1434 1081 once@1.4.0: 1435 1082 resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1436 1083 1437 - one-webcrypto@1.0.3: 1438 - resolution: {integrity: sha512-fu9ywBVBPx0gS9K0etIROTiCkvI5S1TDjFsYFb3rC1ewFxeOqsbzq7aIMBHsYfrTHBcGXJaONXXjTl8B01cW1Q==} 1439 - 1440 1084 optionator@0.9.4: 1441 1085 resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} 1442 1086 engines: {node: '>= 0.8.0'} 1443 1087 1444 - p-finally@1.0.0: 1445 - resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} 1446 - engines: {node: '>=4'} 1447 - 1448 1088 p-limit@3.1.0: 1449 1089 resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 1450 1090 engines: {node: '>=10'} ··· 1453 1093 resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 1454 1094 engines: {node: '>=10'} 1455 1095 1456 - p-queue@6.6.2: 1457 - resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} 1458 - engines: {node: '>=8'} 1459 - 1460 - p-timeout@3.2.0: 1461 - resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} 1462 - engines: {node: '>=8'} 1463 - 1464 - p-wait-for@3.2.0: 1465 - resolution: {integrity: sha512-wpgERjNkLrBiFmkMEjuZJEWKKDrNfHCKA1OhyN1wg1FrLkULbviEy6py1AyJUgZ72YWFbZ38FIpnqvVqAlDUwA==} 1466 - engines: {node: '>=8'} 1467 - 1468 1096 parent-module@1.0.1: 1469 1097 resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1470 1098 engines: {node: '>=6'} ··· 1472 1100 parseurl@1.3.3: 1473 1101 resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} 1474 1102 engines: {node: '>= 0.8'} 1103 + 1104 + partysocket@1.0.2: 1105 + resolution: {integrity: sha512-rAFOUKImaq+VBk2B+2RTBsWEvlnarEP53nchoUHzpVs8V6fG2/estihOTslTQUWHVuHEKDL5k8htG8K3TngyFA==} 1475 1106 1476 1107 path-exists@4.0.0: 1477 1108 resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} ··· 1484 1115 path-to-regexp@0.1.10: 1485 1116 resolution: {integrity: sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==} 1486 1117 1487 - pg-cloudflare@1.1.1: 1488 - resolution: {integrity: sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==} 1489 - 1490 - pg-connection-string@2.7.0: 1491 - resolution: {integrity: sha512-PI2W9mv53rXJQEOb8xNR8lH7Hr+EKa6oJa38zsK0S/ky2er16ios1wLKhZyxzD7jUReiWokc9WK5nxSnC7W1TA==} 1492 - 1493 - pg-int8@1.0.1: 1494 - resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} 1495 - engines: {node: '>=4.0.0'} 1496 - 1497 - pg-pool@3.7.0: 1498 - resolution: {integrity: sha512-ZOBQForurqh4zZWjrgSwwAtzJ7QiRX0ovFkZr2klsen3Nm0aoh33Ls0fzfv3imeH/nw/O27cjdz5kzYJfeGp/g==} 1499 - peerDependencies: 1500 - pg: '>=8.0' 1501 - 1502 - pg-protocol@1.7.0: 1503 - resolution: {integrity: sha512-hTK/mE36i8fDDhgDFjy6xNOG+LCorxLG3WO17tku+ij6sVHXh1jQUJ8hYAnRhNla4QVD2H8er/FOjc/+EgC6yQ==} 1504 - 1505 - pg-types@2.2.0: 1506 - resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} 1507 - engines: {node: '>=4'} 1508 - 1509 - pg@8.13.0: 1510 - resolution: {integrity: sha512-34wkUTh3SxTClfoHB3pQ7bIMvw9dpFU1audQQeZG837fmHfHpr14n/AELVDoOYVDW2h5RDWU78tFjkD+erSBsw==} 1511 - engines: {node: '>= 8.0.0'} 1512 - peerDependencies: 1513 - pg-native: '>=3.0.1' 1514 - peerDependenciesMeta: 1515 - pg-native: 1516 - optional: true 1517 - 1518 - pgpass@1.0.5: 1519 - resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==} 1520 - 1521 1118 picocolors@1.1.0: 1522 1119 resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} 1523 1120 ··· 1528 1125 pino-abstract-transport@1.2.0: 1529 1126 resolution: {integrity: sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==} 1530 1127 1531 - pino-http@8.6.1: 1532 - resolution: {integrity: sha512-J0hiJgUExtBXP2BjrK4VB305tHXS31sCmWJ9XJo2wPkLHa1NFPuW4V9wjG27PAc2fmBCigiNhQKpvrx+kntBPA==} 1533 - 1534 1128 pino-pretty@11.2.2: 1535 1129 resolution: {integrity: sha512-2FnyGir8nAJAqD3srROdrF1J5BIcMT4nwj7hHSc60El6Uxlym00UbCCd8pYIterstVBFlMyF1yFV8XdGIPbj4A==} 1536 1130 hasBin: true 1537 1131 1538 - pino-std-serializers@6.2.2: 1539 - resolution: {integrity: sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==} 1540 - 1541 1132 pino-std-serializers@7.0.0: 1542 1133 resolution: {integrity: sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==} 1543 1134 1544 - pino@8.21.0: 1545 - resolution: {integrity: sha512-ip4qdzjkAyDDZklUaZkcRFb2iA118H9SgRh8yzTkSQK8HilsOJF7rSY8HoW5+I0M46AZgX/pxbprf2vvzQCE0Q==} 1546 - hasBin: true 1547 - 1548 1135 pino@9.4.0: 1549 1136 resolution: {integrity: sha512-nbkQb5+9YPhQRz/BeQmrWpEknAaqjpAqRK8NwJpmrX/JHu7JuZC5G1CeAwJDJfGes4h+YihC6in3Q2nGb+Y09w==} 1550 1137 hasBin: true 1551 1138 1552 - postgres-array@2.0.0: 1553 - resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} 1554 - engines: {node: '>=4'} 1555 - 1556 - postgres-bytea@1.0.0: 1557 - resolution: {integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==} 1558 - engines: {node: '>=0.10.0'} 1559 - 1560 - postgres-date@1.0.7: 1561 - resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==} 1562 - engines: {node: '>=0.10.0'} 1563 - 1564 - postgres-interval@1.2.0: 1565 - resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} 1566 - engines: {node: '>=0.10.0'} 1567 - 1568 1139 prebuild-install@7.1.2: 1569 1140 resolution: {integrity: sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==} 1570 1141 engines: {node: '>=10'} ··· 1579 1150 engines: {node: '>=14'} 1580 1151 hasBin: true 1581 1152 1582 - process-warning@3.0.0: 1583 - resolution: {integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==} 1584 - 1585 1153 process-warning@4.0.0: 1586 1154 resolution: {integrity: sha512-/MyYDxttz7DfGMMHiysAsFE4qF+pQYAA8ziO/3NcRVrQ5fSk+Mns4QZA/oRPFzvcqNoVJXQNWNAsdwBXLUkQKw==} 1587 1155 ··· 1597 1165 resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} 1598 1166 engines: {node: '>= 0.10'} 1599 1167 1600 - proxy-from-env@1.1.0: 1601 - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} 1602 - 1603 1168 pump@3.0.2: 1604 1169 resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} 1605 1170 ··· 1614 1179 queue-microtask@1.2.3: 1615 1180 resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1616 1181 1617 - queue-tick@1.0.1: 1618 - resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} 1619 - 1620 1182 quick-format-unescaped@4.0.4: 1621 1183 resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} 1622 1184 ··· 1624 1186 resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} 1625 1187 engines: {node: '>= 0.6'} 1626 1188 1627 - rate-limiter-flexible@2.4.2: 1628 - resolution: {integrity: sha512-rMATGGOdO1suFyf/mI5LYhts71g1sbdhmd6YvdiXO2gJnd42Tt6QS4JUKJKSWVVkMtBacm6l40FR7Trjo6Iruw==} 1629 - 1630 1189 raw-body@2.5.2: 1631 1190 resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} 1632 1191 engines: {node: '>= 0.8'} ··· 1647 1206 resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} 1648 1207 engines: {node: '>= 12.13.0'} 1649 1208 1650 - redis-errors@1.2.0: 1651 - resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==} 1652 - engines: {node: '>=4'} 1653 - 1654 - redis-parser@3.0.0: 1655 - resolution: {integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==} 1656 - engines: {node: '>=4'} 1657 - 1658 1209 resolve-from@4.0.0: 1659 1210 resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 1660 1211 engines: {node: '>=4'} ··· 1666 1217 resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1667 1218 engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1668 1219 1669 - roarr@7.21.1: 1670 - resolution: {integrity: sha512-3niqt5bXFY1InKU8HKWqqYTYjtrBaxBMnXELXCXUYgtNYGUtZM5rB46HIC430AyacL95iEniGf7RgqsesykLmQ==} 1671 - engines: {node: '>=18.0'} 1672 - 1673 1220 run-parallel@1.2.0: 1674 1221 resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1675 - 1676 - rxjs@7.8.1: 1677 - resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} 1678 - 1679 - safe-buffer@5.1.2: 1680 - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} 1681 1222 1682 1223 safe-buffer@5.2.1: 1683 1224 resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} ··· 1692 1233 secure-json-parse@2.7.0: 1693 1234 resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} 1694 1235 1695 - semver-compare@1.0.0: 1696 - resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} 1697 - 1698 1236 semver@7.6.3: 1699 1237 resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} 1700 1238 engines: {node: '>=10'} ··· 1714 1252 1715 1253 setprototypeof@1.2.0: 1716 1254 resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} 1717 - 1718 - sharp@0.32.6: 1719 - resolution: {integrity: sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==} 1720 - engines: {node: '>=14.15.0'} 1721 1255 1722 1256 shebang-command@2.0.0: 1723 1257 resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} ··· 1737 1271 simple-get@4.0.1: 1738 1272 resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} 1739 1273 1740 - simple-swizzle@0.2.2: 1741 - resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} 1742 - 1743 - sonic-boom@3.8.1: 1744 - resolution: {integrity: sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg==} 1745 - 1746 1274 sonic-boom@4.1.0: 1747 1275 resolution: {integrity: sha512-NGipjjRicyJJ03rPiZCJYjwlsuP2d1/5QUviozRXC7S3WdVWNK5e3Ojieb9CCyfhq2UC+3+SRd9nG3I2lPRvUw==} 1748 - 1749 - sorted-array-functions@1.3.0: 1750 - resolution: {integrity: sha512-2sqgzeFlid6N4Z2fUQ1cvFmTOLRi/sEDzSQ0OKYchqgoPmQBVyM3959qYx3fpS6Esef80KjmpgPeEr028dP3OA==} 1751 1276 1752 1277 source-map@0.5.7: 1753 1278 resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} ··· 1757 1282 resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} 1758 1283 engines: {node: '>= 10.x'} 1759 1284 1760 - standard-as-callback@2.1.0: 1761 - resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} 1762 - 1763 - statsig-node@5.27.1: 1764 - resolution: {integrity: sha512-Y8Afvp+pLcj8xayRdPwqMjdKx8Qa45uoaSHj+1SrpG+wPtgmRQkZtnCS0B/zAkiv64V3djCKVJfjrh22s2DKrg==} 1765 - 1766 1285 statuses@2.0.1: 1767 1286 resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} 1768 1287 engines: {node: '>= 0.8'} 1769 1288 1770 - streamx@2.20.1: 1771 - resolution: {integrity: sha512-uTa0mU6WUC65iUvzKH4X9hEdvSW7rbPxPtwfWiLMSj3qTdQbAiUboZTxauKfpFuGIGa1C2BYijZ7wgdUXICJhA==} 1772 - 1773 1289 string_decoder@1.3.0: 1774 1290 resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} 1775 1291 ··· 1784 1300 strip-json-comments@3.1.1: 1785 1301 resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 1786 1302 engines: {node: '>=8'} 1787 - 1788 - structured-headers@1.0.1: 1789 - resolution: {integrity: sha512-QYBxdBtA4Tl5rFPuqmbmdrS9kbtren74RTJTcs0VSQNVV5iRhJD4QlYTLD0+81SBwUQctjEQzjTRI3WG4DzICA==} 1790 - engines: {node: '>= 14', npm: '>=6'} 1791 1303 1792 1304 supports-color@5.5.0: 1793 1305 resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} ··· 1800 1312 tar-fs@2.1.1: 1801 1313 resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} 1802 1314 1803 - tar-fs@3.0.6: 1804 - resolution: {integrity: sha512-iokBDQQkUyeXhgPYaZxmczGPhnhXZ0CmrqI+MOb/WFGS9DW5wnfrLgtjUJBvz50vQ3qfRwJ62QVoCFu8mPVu5w==} 1805 - 1806 1315 tar-stream@2.2.0: 1807 1316 resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} 1808 1317 engines: {node: '>=6'} 1809 1318 1810 - tar-stream@3.1.7: 1811 - resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} 1812 - 1813 1319 tdigest@0.1.2: 1814 1320 resolution: {integrity: sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA==} 1815 1321 1816 - text-decoder@1.2.0: 1817 - resolution: {integrity: sha512-n1yg1mOj9DNpk3NeZOx7T6jchTbyJS3i3cucbNN6FcdPriMZx7NsgrGpWWdWZZGxD7ES1XB+3uoqHMgOKaN+fg==} 1818 - 1819 1322 text-table@0.2.0: 1820 1323 resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 1821 1324 1822 - thread-stream@2.7.0: 1823 - resolution: {integrity: sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==} 1824 - 1825 1325 thread-stream@3.1.0: 1826 1326 resolution: {integrity: sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==} 1827 1327 1828 - tlds@1.254.0: 1829 - resolution: {integrity: sha512-YY4ei7K7gPGifqNSrfMaPdqTqiHcwYKUJ7zhLqQOK2ildlGgti5TSwJiXXN1YqG17I2GYZh5cZqv2r5fwBUM+w==} 1830 - hasBin: true 1831 - 1832 1328 to-fast-properties@2.0.0: 1833 1329 resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} 1834 1330 engines: {node: '>=4'} ··· 1841 1337 resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} 1842 1338 engines: {node: '>=0.6'} 1843 1339 1844 - tr46@0.0.3: 1845 - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} 1846 - 1847 1340 ts-api-utils@1.3.0: 1848 1341 resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} 1849 1342 engines: {node: '>=16'} 1850 1343 peerDependencies: 1851 1344 typescript: '>=4.2.0' 1852 1345 1853 - tslib@2.7.0: 1854 - resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} 1855 - 1856 1346 tsx@4.19.1: 1857 1347 resolution: {integrity: sha512-0flMz1lh74BR4wOvBjuh9olbnwqCPc35OOlfyzHba0Dc+QNUeWX/Gq2YTbnwcWPO3BMd8fkzRVrHcsR+a7z7rA==} 1858 1348 engines: {node: '>=18.0.0'} ··· 1864 1354 type-check@0.4.0: 1865 1355 resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 1866 1356 engines: {node: '>= 0.8.0'} 1867 - 1868 - type-fest@2.19.0: 1869 - resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} 1870 - engines: {node: '>=12.20'} 1871 1357 1872 1358 type-is@1.6.18: 1873 1359 resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} 1874 1360 engines: {node: '>= 0.6'} 1875 1361 1876 - typed-emitter@2.1.0: 1877 - resolution: {integrity: sha512-g/KzbYKbH5C2vPkaXGu8DJlHrGKHLsM25Zg9WuC9pMGfuvT+X25tZQWo5fK1BjBm8+UrVE9LDCvaY0CQk+fXDA==} 1878 - 1879 1362 typescript-eslint@8.6.0: 1880 1363 resolution: {integrity: sha512-eEhhlxCEpCd4helh3AO1hk0UP2MvbRi9CtIAJTVPQjuSXOOO2jsEacNi4UdcJzZJbeuVg1gMhtZ8UYb+NFYPrA==} 1881 1364 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} ··· 1890 1373 engines: {node: '>=14.17'} 1891 1374 hasBin: true 1892 1375 1893 - ua-parser-js@1.0.39: 1894 - resolution: {integrity: sha512-k24RCVWlEcjkdOxYmVJgeD/0a1TiSpqLg+ZalVGV9lsnr4yqu0w7tX/x2xX6G4zpkgQnRf89lxuZ1wsbjXM8lw==} 1895 - hasBin: true 1896 - 1897 - uint8arrays@3.0.0: 1898 - resolution: {integrity: sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==} 1899 - 1900 1376 undici-types@6.19.8: 1901 1377 resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} 1902 1378 1903 - undici@5.28.4: 1904 - resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==} 1905 - engines: {node: '>=14.0'} 1906 - 1907 1379 unpipe@1.0.0: 1908 1380 resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} 1909 1381 engines: {node: '>= 0.8'} ··· 1918 1390 resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} 1919 1391 engines: {node: '>= 0.4.0'} 1920 1392 1921 - uuid@8.3.2: 1922 - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} 1923 - hasBin: true 1924 - 1925 - varint@6.0.0: 1926 - resolution: {integrity: sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==} 1927 - 1928 1393 vary@1.1.2: 1929 1394 resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} 1930 1395 engines: {node: '>= 0.8'} 1931 1396 1932 - webidl-conversions@3.0.1: 1933 - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} 1934 - 1935 - whatwg-url@5.0.0: 1936 - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} 1937 - 1938 1397 which@2.0.2: 1939 1398 resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1940 1399 engines: {node: '>= 8'} ··· 1947 1406 wrappy@1.0.2: 1948 1407 resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 1949 1408 1950 - ws@8.18.0: 1951 - resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} 1952 - engines: {node: '>=10.0.0'} 1953 - peerDependencies: 1954 - bufferutil: ^4.0.1 1955 - utf-8-validate: '>=5.0.2' 1956 - peerDependenciesMeta: 1957 - bufferutil: 1958 - optional: true 1959 - utf-8-validate: 1960 - optional: true 1961 - 1962 - xtend@4.0.2: 1963 - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} 1964 - engines: {node: '>=0.4'} 1965 - 1966 1409 yocto-queue@0.1.0: 1967 1410 resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 1968 1411 engines: {node: '>=10'} 1969 1412 1970 - zod@3.23.8: 1971 - resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} 1972 - 1973 1413 snapshots: 1974 1414 1975 - '@atproto/api@0.13.7': 1976 - dependencies: 1977 - '@atproto/common-web': 0.3.0 1978 - '@atproto/lexicon': 0.4.1 1979 - '@atproto/syntax': 0.3.0 1980 - '@atproto/xrpc': 0.6.2 1981 - await-lock: 2.2.2 1982 - multiformats: 9.9.0 1983 - tlds: 1.254.0 1984 - zod: 3.23.8 1985 - 1986 - '@atproto/bsky@0.0.83': 1987 - dependencies: 1988 - '@atproto/api': 0.13.7 1989 - '@atproto/common': 0.4.2 1990 - '@atproto/crypto': 0.4.1 1991 - '@atproto/identity': 0.4.1 1992 - '@atproto/lexicon': 0.4.1 1993 - '@atproto/repo': 0.5.1 1994 - '@atproto/sync': 0.1.1 1995 - '@atproto/syntax': 0.3.0 1996 - '@atproto/xrpc-server': 0.6.4 1997 - '@bufbuild/protobuf': 1.10.0 1998 - '@connectrpc/connect': 1.5.0(@bufbuild/protobuf@1.10.0) 1999 - '@connectrpc/connect-express': 1.5.0(@bufbuild/protobuf@1.10.0)(@connectrpc/connect-node@1.5.0(@bufbuild/protobuf@1.10.0)(@connectrpc/connect@1.5.0(@bufbuild/protobuf@1.10.0)))(@connectrpc/connect@1.5.0(@bufbuild/protobuf@1.10.0)) 2000 - '@connectrpc/connect-node': 1.5.0(@bufbuild/protobuf@1.10.0)(@connectrpc/connect@1.5.0(@bufbuild/protobuf@1.10.0)) 2001 - '@did-plc/lib': 0.0.1 2002 - compression: 1.7.4 2003 - cors: 2.8.5 2004 - express: 4.21.0 2005 - http-errors: 2.0.0 2006 - http-terminator: 3.2.0 2007 - ioredis: 5.4.1 2008 - jose: 5.9.2 2009 - key-encoder: 2.0.3 2010 - kysely: 0.22.0 2011 - multiformats: 9.9.0 2012 - p-queue: 6.6.2 2013 - pg: 8.13.0 2014 - pino: 8.21.0 2015 - pino-http: 8.6.1 2016 - sharp: 0.32.6 2017 - statsig-node: 5.27.1 2018 - structured-headers: 1.0.1 2019 - typed-emitter: 2.1.0 2020 - uint8arrays: 3.0.0 2021 - transitivePeerDependencies: 2022 - - bufferutil 2023 - - debug 2024 - - encoding 2025 - - pg-native 2026 - - supports-color 2027 - - utf-8-validate 2028 - 2029 - '@atproto/common-web@0.3.0': 2030 - dependencies: 2031 - graphemer: 1.4.0 2032 - multiformats: 9.9.0 2033 - uint8arrays: 3.0.0 2034 - zod: 3.23.8 2035 - 2036 - '@atproto/common@0.1.0': 2037 - dependencies: 2038 - '@ipld/dag-cbor': 7.0.3 2039 - multiformats: 9.9.0 2040 - pino: 8.21.0 2041 - zod: 3.23.8 2042 - 2043 - '@atproto/common@0.4.2': 2044 - dependencies: 2045 - '@atproto/common-web': 0.3.0 2046 - '@ipld/dag-cbor': 7.0.3 2047 - cbor-x: 1.6.0 2048 - iso-datestring-validator: 2.2.2 2049 - multiformats: 9.9.0 2050 - pino: 8.21.0 2051 - 2052 - '@atproto/crypto@0.1.0': 2053 - dependencies: 2054 - '@noble/secp256k1': 1.7.1 2055 - big-integer: 1.6.52 2056 - multiformats: 9.9.0 2057 - one-webcrypto: 1.0.3 2058 - uint8arrays: 3.0.0 2059 - 2060 - '@atproto/crypto@0.4.1': 1415 + '@atcute/bluesky@1.0.6(@atcute/client@2.0.1)': 2061 1416 dependencies: 2062 - '@noble/curves': 1.6.0 2063 - '@noble/hashes': 1.5.0 2064 - uint8arrays: 3.0.0 2065 - 2066 - '@atproto/identity@0.4.1': 2067 - dependencies: 2068 - '@atproto/common-web': 0.3.0 2069 - '@atproto/crypto': 0.4.1 2070 - axios: 0.27.2 2071 - transitivePeerDependencies: 2072 - - debug 1417 + '@atcute/client': 2.0.1 2073 1418 2074 - '@atproto/lexicon@0.4.1': 2075 - dependencies: 2076 - '@atproto/common-web': 0.3.0 2077 - '@atproto/syntax': 0.3.0 2078 - iso-datestring-validator: 2.2.2 2079 - multiformats: 9.9.0 2080 - zod: 3.23.8 2081 - 2082 - '@atproto/repo@0.5.1': 2083 - dependencies: 2084 - '@atproto/common': 0.4.2 2085 - '@atproto/common-web': 0.3.0 2086 - '@atproto/crypto': 0.4.1 2087 - '@atproto/lexicon': 0.4.1 2088 - '@ipld/car': 3.2.4 2089 - '@ipld/dag-cbor': 7.0.3 2090 - multiformats: 9.9.0 2091 - uint8arrays: 3.0.0 2092 - zod: 3.23.8 2093 - 2094 - '@atproto/sync@0.1.1': 2095 - dependencies: 2096 - '@atproto/common': 0.4.2 2097 - '@atproto/identity': 0.4.1 2098 - '@atproto/lexicon': 0.4.1 2099 - '@atproto/repo': 0.5.1 2100 - '@atproto/syntax': 0.3.0 2101 - '@atproto/xrpc-server': 0.6.4 2102 - multiformats: 9.9.0 2103 - p-queue: 6.6.2 2104 - transitivePeerDependencies: 2105 - - bufferutil 2106 - - debug 2107 - - supports-color 2108 - - utf-8-validate 2109 - 2110 - '@atproto/syntax@0.3.0': {} 2111 - 2112 - '@atproto/xrpc-server@0.6.4': 2113 - dependencies: 2114 - '@atproto/common': 0.4.2 2115 - '@atproto/crypto': 0.4.1 2116 - '@atproto/lexicon': 0.4.1 2117 - '@atproto/xrpc': 0.6.2 2118 - cbor-x: 1.6.0 2119 - express: 4.21.0 2120 - http-errors: 2.0.0 2121 - mime-types: 2.1.35 2122 - rate-limiter-flexible: 2.4.2 2123 - uint8arrays: 3.0.0 2124 - ws: 8.18.0 2125 - zod: 3.23.8 2126 - transitivePeerDependencies: 2127 - - bufferutil 2128 - - supports-color 2129 - - utf-8-validate 2130 - 2131 - '@atproto/xrpc@0.6.2': 2132 - dependencies: 2133 - '@atproto/lexicon': 0.4.1 2134 - zod: 3.23.8 1419 + '@atcute/client@2.0.1': {} 2135 1420 2136 1421 '@babel/code-frame@7.24.7': 2137 1422 dependencies: ··· 2215 1500 '@babel/helper-validator-identifier': 7.24.7 2216 1501 to-fast-properties: 2.0.0 2217 1502 2218 - '@bufbuild/protobuf@1.10.0': {} 2219 - 2220 - '@cbor-extract/cbor-extract-darwin-arm64@2.2.0': 2221 - optional: true 2222 - 2223 - '@cbor-extract/cbor-extract-darwin-x64@2.2.0': 2224 - optional: true 2225 - 2226 - '@cbor-extract/cbor-extract-linux-arm64@2.2.0': 2227 - optional: true 2228 - 2229 - '@cbor-extract/cbor-extract-linux-arm@2.2.0': 2230 - optional: true 2231 - 2232 - '@cbor-extract/cbor-extract-linux-x64@2.2.0': 2233 - optional: true 2234 - 2235 - '@cbor-extract/cbor-extract-win32-x64@2.2.0': 2236 - optional: true 2237 - 2238 - '@connectrpc/connect-express@1.5.0(@bufbuild/protobuf@1.10.0)(@connectrpc/connect-node@1.5.0(@bufbuild/protobuf@1.10.0)(@connectrpc/connect@1.5.0(@bufbuild/protobuf@1.10.0)))(@connectrpc/connect@1.5.0(@bufbuild/protobuf@1.10.0))': 2239 - dependencies: 2240 - '@bufbuild/protobuf': 1.10.0 2241 - '@connectrpc/connect': 1.5.0(@bufbuild/protobuf@1.10.0) 2242 - '@connectrpc/connect-node': 1.5.0(@bufbuild/protobuf@1.10.0)(@connectrpc/connect@1.5.0(@bufbuild/protobuf@1.10.0)) 2243 - 2244 - '@connectrpc/connect-node@1.5.0(@bufbuild/protobuf@1.10.0)(@connectrpc/connect@1.5.0(@bufbuild/protobuf@1.10.0))': 2245 - dependencies: 2246 - '@bufbuild/protobuf': 1.10.0 2247 - '@connectrpc/connect': 1.5.0(@bufbuild/protobuf@1.10.0) 2248 - undici: 5.28.4 2249 - 2250 - '@connectrpc/connect@1.5.0(@bufbuild/protobuf@1.10.0)': 2251 - dependencies: 2252 - '@bufbuild/protobuf': 1.10.0 2253 - 2254 - '@did-plc/lib@0.0.1': 2255 - dependencies: 2256 - '@atproto/common': 0.1.0 2257 - '@atproto/crypto': 0.1.0 2258 - '@ipld/dag-cbor': 7.0.3 2259 - axios: 1.7.7 2260 - multiformats: 9.9.0 2261 - uint8arrays: 3.0.0 2262 - zod: 3.23.8 2263 - transitivePeerDependencies: 2264 - - debug 2265 - 2266 1503 '@esbuild/aix-ppc64@0.23.1': 2267 1504 optional: true 2268 1505 ··· 2335 1572 '@esbuild/win32-x64@0.23.1': 2336 1573 optional: true 2337 1574 2338 - '@eslint-community/eslint-utils@4.4.0(eslint@9.10.0)': 1575 + '@eslint-community/eslint-utils@4.4.0(eslint@9.11.0)': 2339 1576 dependencies: 2340 - eslint: 9.10.0 1577 + eslint: 9.11.0 2341 1578 eslint-visitor-keys: 3.4.3 2342 1579 2343 1580 '@eslint-community/regexpp@4.11.1': {} ··· 2364 1601 transitivePeerDependencies: 2365 1602 - supports-color 2366 1603 2367 - '@eslint/js@9.10.0': {} 1604 + '@eslint/js@9.11.0': {} 2368 1605 2369 1606 '@eslint/object-schema@2.1.4': {} 2370 1607 2371 - '@eslint/plugin-kit@0.1.0': 1608 + '@eslint/plugin-kit@0.2.0': 2372 1609 dependencies: 2373 1610 levn: 0.4.1 2374 - 2375 - '@fastify/busboy@2.1.1': {} 2376 1611 2377 1612 '@humanwhocodes/module-importer@1.0.1': {} 2378 1613 2379 1614 '@humanwhocodes/retry@0.3.0': {} 2380 1615 2381 - '@ioredis/commands@1.2.0': {} 2382 - 2383 - '@ipld/car@3.2.4': 2384 - dependencies: 2385 - '@ipld/dag-cbor': 7.0.3 2386 - multiformats: 9.9.0 2387 - varint: 6.0.0 2388 - 2389 - '@ipld/dag-cbor@7.0.3': 2390 - dependencies: 2391 - cborg: 1.10.2 2392 - multiformats: 9.9.0 2393 - 2394 1616 '@jridgewell/gen-mapping@0.3.5': 2395 1617 dependencies: 2396 1618 '@jridgewell/set-array': 1.2.1 ··· 2408 1630 '@jridgewell/resolve-uri': 3.1.2 2409 1631 '@jridgewell/sourcemap-codec': 1.5.0 2410 1632 2411 - '@noble/curves@1.6.0': 2412 - dependencies: 2413 - '@noble/hashes': 1.5.0 2414 - 2415 - '@noble/hashes@1.5.0': {} 2416 - 2417 - '@noble/secp256k1@1.7.1': {} 2418 - 2419 1633 '@nodelib/fs.scandir@2.1.5': 2420 1634 dependencies: 2421 1635 '@nodelib/fs.stat': 2.0.5 ··· 2430 1644 2431 1645 '@opentelemetry/api@1.9.0': {} 2432 1646 1647 + '@skyware/jetstream@0.1.3(@atcute/client@2.0.1)': 1648 + dependencies: 1649 + '@atcute/bluesky': 1.0.6(@atcute/client@2.0.1) 1650 + partysocket: 1.0.2 1651 + transitivePeerDependencies: 1652 + - '@atcute/client' 1653 + 2433 1654 '@trivago/prettier-plugin-sort-imports@4.3.0(prettier@3.3.3)': 2434 1655 dependencies: 2435 1656 '@babel/generator': 7.17.7 ··· 2446 1667 dependencies: 2447 1668 '@types/node': 20.16.5 2448 1669 2449 - '@types/bn.js@5.1.6': 2450 - dependencies: 2451 - '@types/node': 20.16.5 2452 - 2453 1670 '@types/body-parser@1.19.5': 2454 1671 dependencies: 2455 1672 '@types/connect': 3.4.38 ··· 2458 1675 '@types/connect@3.4.38': 2459 1676 dependencies: 2460 1677 '@types/node': 20.16.5 2461 - 2462 - '@types/elliptic@6.4.18': 2463 - dependencies: 2464 - '@types/bn.js': 5.1.6 2465 1678 2466 1679 '@types/eslint@9.6.1': 2467 1680 dependencies: ··· 2517 1730 '@types/node': 20.16.5 2518 1731 '@types/send': 0.17.4 2519 1732 2520 - '@types/ws@8.5.12': 2521 - dependencies: 2522 - '@types/node': 20.16.5 2523 - 2524 - '@typescript-eslint/eslint-plugin@8.6.0(@typescript-eslint/parser@8.6.0(eslint@9.10.0)(typescript@5.6.2))(eslint@9.10.0)(typescript@5.6.2)': 1733 + '@typescript-eslint/eslint-plugin@8.6.0(@typescript-eslint/parser@8.6.0(eslint@9.11.0)(typescript@5.6.2))(eslint@9.11.0)(typescript@5.6.2)': 2525 1734 dependencies: 2526 1735 '@eslint-community/regexpp': 4.11.1 2527 - '@typescript-eslint/parser': 8.6.0(eslint@9.10.0)(typescript@5.6.2) 1736 + '@typescript-eslint/parser': 8.6.0(eslint@9.11.0)(typescript@5.6.2) 2528 1737 '@typescript-eslint/scope-manager': 8.6.0 2529 - '@typescript-eslint/type-utils': 8.6.0(eslint@9.10.0)(typescript@5.6.2) 2530 - '@typescript-eslint/utils': 8.6.0(eslint@9.10.0)(typescript@5.6.2) 1738 + '@typescript-eslint/type-utils': 8.6.0(eslint@9.11.0)(typescript@5.6.2) 1739 + '@typescript-eslint/utils': 8.6.0(eslint@9.11.0)(typescript@5.6.2) 2531 1740 '@typescript-eslint/visitor-keys': 8.6.0 2532 - eslint: 9.10.0 1741 + eslint: 9.11.0 2533 1742 graphemer: 1.4.0 2534 1743 ignore: 5.3.2 2535 1744 natural-compare: 1.4.0 ··· 2539 1748 transitivePeerDependencies: 2540 1749 - supports-color 2541 1750 2542 - '@typescript-eslint/parser@8.6.0(eslint@9.10.0)(typescript@5.6.2)': 1751 + '@typescript-eslint/parser@8.6.0(eslint@9.11.0)(typescript@5.6.2)': 2543 1752 dependencies: 2544 1753 '@typescript-eslint/scope-manager': 8.6.0 2545 1754 '@typescript-eslint/types': 8.6.0 2546 1755 '@typescript-eslint/typescript-estree': 8.6.0(typescript@5.6.2) 2547 1756 '@typescript-eslint/visitor-keys': 8.6.0 2548 1757 debug: 4.3.7 2549 - eslint: 9.10.0 1758 + eslint: 9.11.0 2550 1759 optionalDependencies: 2551 1760 typescript: 5.6.2 2552 1761 transitivePeerDependencies: ··· 2557 1766 '@typescript-eslint/types': 8.6.0 2558 1767 '@typescript-eslint/visitor-keys': 8.6.0 2559 1768 2560 - '@typescript-eslint/type-utils@8.6.0(eslint@9.10.0)(typescript@5.6.2)': 1769 + '@typescript-eslint/type-utils@8.6.0(eslint@9.11.0)(typescript@5.6.2)': 2561 1770 dependencies: 2562 1771 '@typescript-eslint/typescript-estree': 8.6.0(typescript@5.6.2) 2563 - '@typescript-eslint/utils': 8.6.0(eslint@9.10.0)(typescript@5.6.2) 1772 + '@typescript-eslint/utils': 8.6.0(eslint@9.11.0)(typescript@5.6.2) 2564 1773 debug: 4.3.7 2565 1774 ts-api-utils: 1.3.0(typescript@5.6.2) 2566 1775 optionalDependencies: ··· 2586 1795 transitivePeerDependencies: 2587 1796 - supports-color 2588 1797 2589 - '@typescript-eslint/utils@8.6.0(eslint@9.10.0)(typescript@5.6.2)': 1798 + '@typescript-eslint/utils@8.6.0(eslint@9.11.0)(typescript@5.6.2)': 2590 1799 dependencies: 2591 - '@eslint-community/eslint-utils': 4.4.0(eslint@9.10.0) 1800 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.11.0) 2592 1801 '@typescript-eslint/scope-manager': 8.6.0 2593 1802 '@typescript-eslint/types': 8.6.0 2594 1803 '@typescript-eslint/typescript-estree': 8.6.0(typescript@5.6.2) 2595 - eslint: 9.10.0 1804 + eslint: 9.11.0 2596 1805 transitivePeerDependencies: 2597 1806 - supports-color 2598 1807 - typescript ··· 2638 1847 2639 1848 array-flatten@1.1.1: {} 2640 1849 2641 - asn1.js@5.4.1: 2642 - dependencies: 2643 - bn.js: 4.12.0 2644 - inherits: 2.0.4 2645 - minimalistic-assert: 1.0.1 2646 - safer-buffer: 2.1.2 2647 - 2648 - asynckit@0.4.0: {} 2649 - 2650 1850 atomic-sleep@1.0.0: {} 2651 1851 2652 - await-lock@2.2.2: {} 2653 - 2654 - axios@0.27.2: 2655 - dependencies: 2656 - follow-redirects: 1.15.9 2657 - form-data: 4.0.0 2658 - transitivePeerDependencies: 2659 - - debug 2660 - 2661 - axios@1.7.7: 2662 - dependencies: 2663 - follow-redirects: 1.15.9 2664 - form-data: 4.0.0 2665 - proxy-from-env: 1.1.0 2666 - transitivePeerDependencies: 2667 - - debug 2668 - 2669 - b4a@1.6.6: {} 2670 - 2671 1852 balanced-match@1.0.2: {} 2672 1853 2673 - bare-events@2.4.2: 2674 - optional: true 2675 - 2676 - bare-fs@2.3.5: 2677 - dependencies: 2678 - bare-events: 2.4.2 2679 - bare-path: 2.1.3 2680 - bare-stream: 2.3.0 2681 - optional: true 2682 - 2683 - bare-os@2.4.4: 2684 - optional: true 2685 - 2686 - bare-path@2.1.3: 2687 - dependencies: 2688 - bare-os: 2.4.4 2689 - optional: true 2690 - 2691 - bare-stream@2.3.0: 2692 - dependencies: 2693 - b4a: 1.6.6 2694 - streamx: 2.20.1 2695 - optional: true 2696 - 2697 1854 base64-js@1.5.1: {} 2698 1855 2699 1856 better-sqlite3@11.3.0: 2700 1857 dependencies: 2701 1858 bindings: 1.5.0 2702 1859 prebuild-install: 7.1.2 2703 - 2704 - big-integer@1.6.52: {} 2705 1860 2706 1861 bindings@1.5.0: 2707 1862 dependencies: ··· 2715 1870 inherits: 2.0.4 2716 1871 readable-stream: 3.6.2 2717 1872 2718 - bn.js@4.12.0: {} 2719 - 2720 1873 body-parser@1.20.3: 2721 1874 dependencies: 2722 1875 bytes: 3.1.2 ··· 2734 1887 transitivePeerDependencies: 2735 1888 - supports-color 2736 1889 2737 - boolean@3.2.0: {} 2738 - 2739 1890 brace-expansion@1.1.11: 2740 1891 dependencies: 2741 1892 balanced-match: 1.0.2 ··· 2749 1900 dependencies: 2750 1901 fill-range: 7.1.1 2751 1902 2752 - brorand@1.1.0: {} 2753 - 2754 1903 buffer@5.7.1: 2755 1904 dependencies: 2756 1905 base64-js: 1.5.1 ··· 2760 1909 dependencies: 2761 1910 base64-js: 1.5.1 2762 1911 ieee754: 1.2.1 2763 - 2764 - bytes@3.0.0: {} 2765 1912 2766 1913 bytes@3.1.2: {} 2767 1914 ··· 2775 1922 2776 1923 callsites@3.1.0: {} 2777 1924 2778 - cbor-extract@2.2.0: 2779 - dependencies: 2780 - node-gyp-build-optional-packages: 5.1.1 2781 - optionalDependencies: 2782 - '@cbor-extract/cbor-extract-darwin-arm64': 2.2.0 2783 - '@cbor-extract/cbor-extract-darwin-x64': 2.2.0 2784 - '@cbor-extract/cbor-extract-linux-arm': 2.2.0 2785 - '@cbor-extract/cbor-extract-linux-arm64': 2.2.0 2786 - '@cbor-extract/cbor-extract-linux-x64': 2.2.0 2787 - '@cbor-extract/cbor-extract-win32-x64': 2.2.0 2788 - optional: true 2789 - 2790 - cbor-x@1.6.0: 2791 - optionalDependencies: 2792 - cbor-extract: 2.2.0 2793 - 2794 - cborg@1.10.2: {} 2795 - 2796 1925 chalk@2.4.2: 2797 1926 dependencies: 2798 1927 ansi-styles: 3.2.1 ··· 2806 1935 2807 1936 chownr@1.1.4: {} 2808 1937 2809 - cluster-key-slot@1.1.2: {} 2810 - 2811 1938 color-convert@1.9.3: 2812 1939 dependencies: 2813 1940 color-name: 1.1.3 ··· 2820 1947 2821 1948 color-name@1.1.4: {} 2822 1949 2823 - color-string@1.9.1: 2824 - dependencies: 2825 - color-name: 1.1.4 2826 - simple-swizzle: 0.2.2 2827 - 2828 - color@4.2.3: 2829 - dependencies: 2830 - color-convert: 2.0.1 2831 - color-string: 1.9.1 2832 - 2833 1950 colorette@2.0.20: {} 2834 1951 2835 - combined-stream@1.0.8: 2836 - dependencies: 2837 - delayed-stream: 1.0.0 2838 - 2839 - compressible@2.0.18: 2840 - dependencies: 2841 - mime-db: 1.53.0 2842 - 2843 - compression@1.7.4: 2844 - dependencies: 2845 - accepts: 1.3.8 2846 - bytes: 3.0.0 2847 - compressible: 2.0.18 2848 - debug: 2.6.9 2849 - on-headers: 1.0.2 2850 - safe-buffer: 5.1.2 2851 - vary: 1.1.2 2852 - transitivePeerDependencies: 2853 - - supports-color 2854 - 2855 1952 concat-map@0.0.1: {} 2856 1953 2857 1954 content-disposition@0.5.4: ··· 2864 1961 2865 1962 cookie@0.6.0: {} 2866 1963 2867 - cors@2.8.5: 2868 - dependencies: 2869 - object-assign: 4.1.1 2870 - vary: 1.1.2 2871 - 2872 - cron-parser@4.9.0: 2873 - dependencies: 2874 - luxon: 3.5.0 2875 - 2876 1964 cross-spawn@7.0.3: 2877 1965 dependencies: 2878 1966 path-key: 3.1.1 ··· 2903 1991 es-errors: 1.3.0 2904 1992 gopd: 1.0.1 2905 1993 2906 - delay@5.0.0: {} 2907 - 2908 - delayed-stream@1.0.0: {} 2909 - 2910 - denque@2.1.0: {} 2911 - 2912 1994 depd@2.0.0: {} 2913 1995 2914 1996 destroy@1.2.0: {} ··· 2919 2001 2920 2002 ee-first@1.1.1: {} 2921 2003 2922 - elliptic@6.5.7: 2923 - dependencies: 2924 - bn.js: 4.12.0 2925 - brorand: 1.1.0 2926 - hash.js: 1.1.7 2927 - hmac-drbg: 1.0.1 2928 - inherits: 2.0.4 2929 - minimalistic-assert: 1.0.1 2930 - minimalistic-crypto-utils: 1.0.1 2931 - 2932 2004 encodeurl@1.0.2: {} 2933 2005 2934 2006 encodeurl@2.0.0: {} ··· 2985 2057 2986 2058 eslint-visitor-keys@4.0.0: {} 2987 2059 2988 - eslint@9.10.0: 2060 + eslint@9.11.0: 2989 2061 dependencies: 2990 - '@eslint-community/eslint-utils': 4.4.0(eslint@9.10.0) 2062 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.11.0) 2991 2063 '@eslint-community/regexpp': 4.11.1 2992 2064 '@eslint/config-array': 0.18.0 2993 2065 '@eslint/eslintrc': 3.1.0 2994 - '@eslint/js': 9.10.0 2995 - '@eslint/plugin-kit': 0.1.0 2066 + '@eslint/js': 9.11.0 2067 + '@eslint/plugin-kit': 0.2.0 2996 2068 '@humanwhocodes/module-importer': 1.0.1 2997 2069 '@humanwhocodes/retry': 0.3.0 2998 2070 '@nodelib/fs.walk': 1.2.8 ··· 3046 2118 3047 2119 event-target-shim@5.0.1: {} 3048 2120 3049 - eventemitter3@4.0.7: {} 2121 + event-target-shim@6.0.2: {} 3050 2122 3051 2123 events@3.3.0: {} 3052 2124 ··· 3092 2164 3093 2165 fast-deep-equal@3.1.3: {} 3094 2166 3095 - fast-fifo@1.3.2: {} 3096 - 3097 2167 fast-glob@3.3.2: 3098 2168 dependencies: 3099 2169 '@nodelib/fs.stat': 2.0.5 ··· 3106 2176 3107 2177 fast-levenshtein@2.0.6: {} 3108 2178 3109 - fast-printf@1.6.9: 3110 - dependencies: 3111 - boolean: 3.2.0 3112 - 3113 2179 fast-redact@3.5.0: {} 3114 2180 3115 2181 fast-safe-stringify@2.1.1: {} ··· 3152 2218 3153 2219 flatted@3.3.1: {} 3154 2220 3155 - follow-redirects@1.15.9: {} 3156 - 3157 - form-data@4.0.0: 3158 - dependencies: 3159 - asynckit: 0.4.0 3160 - combined-stream: 1.0.8 3161 - mime-types: 2.1.35 3162 - 3163 2221 forwarded@0.2.0: {} 3164 2222 3165 2223 fresh@0.5.2: {} ··· 3170 2228 optional: true 3171 2229 3172 2230 function-bind@1.1.2: {} 3173 - 3174 - get-caller-file@2.0.5: {} 3175 2231 3176 2232 get-intrinsic@1.2.4: 3177 2233 dependencies: ··· 3217 2273 3218 2274 has-symbols@1.0.3: {} 3219 2275 3220 - hash.js@1.1.7: 3221 - dependencies: 3222 - inherits: 2.0.4 3223 - minimalistic-assert: 1.0.1 3224 - 3225 2276 hasown@2.0.2: 3226 2277 dependencies: 3227 2278 function-bind: 1.1.2 3228 2279 3229 2280 help-me@5.0.0: {} 3230 2281 3231 - hmac-drbg@1.0.1: 3232 - dependencies: 3233 - hash.js: 1.1.7 3234 - minimalistic-assert: 1.0.1 3235 - minimalistic-crypto-utils: 1.0.1 3236 - 3237 2282 http-errors@2.0.0: 3238 2283 dependencies: 3239 2284 depd: 2.0.0 ··· 3242 2287 statuses: 2.0.1 3243 2288 toidentifier: 1.0.1 3244 2289 3245 - http-terminator@3.2.0: 3246 - dependencies: 3247 - delay: 5.0.0 3248 - p-wait-for: 3.2.0 3249 - roarr: 7.21.1 3250 - type-fest: 2.19.0 3251 - 3252 2290 iconv-lite@0.4.24: 3253 2291 dependencies: 3254 2292 safer-buffer: 2.1.2 ··· 3268 2306 3269 2307 ini@1.3.8: {} 3270 2308 3271 - ioredis@5.4.1: 3272 - dependencies: 3273 - '@ioredis/commands': 1.2.0 3274 - cluster-key-slot: 1.1.2 3275 - debug: 4.3.7 3276 - denque: 2.1.0 3277 - lodash.defaults: 4.2.0 3278 - lodash.isarguments: 3.1.0 3279 - redis-errors: 1.2.0 3280 - redis-parser: 3.0.0 3281 - standard-as-callback: 2.1.0 3282 - transitivePeerDependencies: 3283 - - supports-color 3284 - 3285 - ip3country@5.0.0: {} 3286 - 3287 2309 ipaddr.js@1.9.1: {} 3288 - 3289 - is-arrayish@0.3.2: {} 3290 2310 3291 2311 is-extglob@2.1.1: {} 3292 2312 ··· 3300 2320 3301 2321 isexe@2.0.0: {} 3302 2322 3303 - iso-datestring-validator@2.2.2: {} 3304 - 3305 2323 javascript-natural-sort@0.7.1: {} 3306 - 3307 - jose@5.9.2: {} 3308 2324 3309 2325 joycon@3.1.1: {} 3310 2326 ··· 3322 2338 3323 2339 json-stable-stringify-without-jsonify@1.0.1: {} 3324 2340 3325 - key-encoder@2.0.3: 3326 - dependencies: 3327 - '@types/elliptic': 6.4.18 3328 - asn1.js: 5.4.1 3329 - bn.js: 4.12.0 3330 - elliptic: 6.5.7 3331 - 3332 2341 keyv@4.5.4: 3333 2342 dependencies: 3334 2343 json-buffer: 3.0.1 3335 2344 3336 - kysely@0.22.0: {} 3337 - 3338 2345 levn@0.4.1: 3339 2346 dependencies: 3340 2347 prelude-ls: 1.2.1 ··· 3343 2350 locate-path@6.0.0: 3344 2351 dependencies: 3345 2352 p-locate: 5.0.0 3346 - 3347 - lodash.defaults@4.2.0: {} 3348 - 3349 - lodash.isarguments@3.1.0: {} 3350 2353 3351 2354 lodash.merge@4.6.2: {} 3352 2355 3353 2356 lodash@4.17.21: {} 3354 2357 3355 - long-timeout@0.1.1: {} 3356 - 3357 - luxon@3.5.0: {} 3358 - 3359 2358 media-typer@0.3.0: {} 3360 2359 3361 2360 merge-descriptors@1.0.3: {} ··· 3371 2370 3372 2371 mime-db@1.52.0: {} 3373 2372 3374 - mime-db@1.53.0: {} 3375 - 3376 2373 mime-types@2.1.35: 3377 2374 dependencies: 3378 2375 mime-db: 1.52.0 ··· 3380 2377 mime@1.6.0: {} 3381 2378 3382 2379 mimic-response@3.1.0: {} 3383 - 3384 - minimalistic-assert@1.0.1: {} 3385 - 3386 - minimalistic-crypto-utils@1.0.1: {} 3387 2380 3388 2381 minimatch@3.1.2: 3389 2382 dependencies: ··· 3401 2394 3402 2395 ms@2.1.3: {} 3403 2396 3404 - multiformats@9.9.0: {} 3405 - 3406 2397 napi-build-utils@1.0.2: {} 3407 2398 3408 2399 natural-compare@1.4.0: {} ··· 3413 2404 dependencies: 3414 2405 semver: 7.6.3 3415 2406 3416 - node-addon-api@6.1.0: {} 3417 - 3418 - node-fetch@2.7.0: 3419 - dependencies: 3420 - whatwg-url: 5.0.0 3421 - 3422 - node-gyp-build-optional-packages@5.1.1: 3423 - dependencies: 3424 - detect-libc: 2.0.3 3425 - optional: true 3426 - 3427 - node-schedule@2.1.1: 3428 - dependencies: 3429 - cron-parser: 4.9.0 3430 - long-timeout: 0.1.1 3431 - sorted-array-functions: 1.3.0 3432 - 3433 - object-assign@4.1.1: {} 3434 - 3435 2407 object-inspect@1.13.2: {} 3436 2408 3437 2409 on-exit-leak-free@2.1.2: {} ··· 3439 2411 on-finished@2.4.1: 3440 2412 dependencies: 3441 2413 ee-first: 1.1.1 3442 - 3443 - on-headers@1.0.2: {} 3444 2414 3445 2415 once@1.4.0: 3446 2416 dependencies: 3447 2417 wrappy: 1.0.2 3448 2418 3449 - one-webcrypto@1.0.3: {} 3450 - 3451 2419 optionator@0.9.4: 3452 2420 dependencies: 3453 2421 deep-is: 0.1.4 ··· 3457 2425 type-check: 0.4.0 3458 2426 word-wrap: 1.2.5 3459 2427 3460 - p-finally@1.0.0: {} 3461 - 3462 2428 p-limit@3.1.0: 3463 2429 dependencies: 3464 2430 yocto-queue: 0.1.0 ··· 3467 2433 dependencies: 3468 2434 p-limit: 3.1.0 3469 2435 3470 - p-queue@6.6.2: 3471 - dependencies: 3472 - eventemitter3: 4.0.7 3473 - p-timeout: 3.2.0 3474 - 3475 - p-timeout@3.2.0: 3476 - dependencies: 3477 - p-finally: 1.0.0 3478 - 3479 - p-wait-for@3.2.0: 3480 - dependencies: 3481 - p-timeout: 3.2.0 3482 - 3483 2436 parent-module@1.0.1: 3484 2437 dependencies: 3485 2438 callsites: 3.1.0 3486 2439 3487 2440 parseurl@1.3.3: {} 2441 + 2442 + partysocket@1.0.2: 2443 + dependencies: 2444 + event-target-shim: 6.0.2 3488 2445 3489 2446 path-exists@4.0.0: {} 3490 2447 ··· 3492 2449 3493 2450 path-to-regexp@0.1.10: {} 3494 2451 3495 - pg-cloudflare@1.1.1: 3496 - optional: true 3497 - 3498 - pg-connection-string@2.7.0: {} 3499 - 3500 - pg-int8@1.0.1: {} 3501 - 3502 - pg-pool@3.7.0(pg@8.13.0): 3503 - dependencies: 3504 - pg: 8.13.0 3505 - 3506 - pg-protocol@1.7.0: {} 3507 - 3508 - pg-types@2.2.0: 3509 - dependencies: 3510 - pg-int8: 1.0.1 3511 - postgres-array: 2.0.0 3512 - postgres-bytea: 1.0.0 3513 - postgres-date: 1.0.7 3514 - postgres-interval: 1.2.0 3515 - 3516 - pg@8.13.0: 3517 - dependencies: 3518 - pg-connection-string: 2.7.0 3519 - pg-pool: 3.7.0(pg@8.13.0) 3520 - pg-protocol: 1.7.0 3521 - pg-types: 2.2.0 3522 - pgpass: 1.0.5 3523 - optionalDependencies: 3524 - pg-cloudflare: 1.1.1 3525 - 3526 - pgpass@1.0.5: 3527 - dependencies: 3528 - split2: 4.2.0 3529 - 3530 2452 picocolors@1.1.0: {} 3531 2453 3532 2454 picomatch@2.3.1: {} ··· 3536 2458 readable-stream: 4.5.2 3537 2459 split2: 4.2.0 3538 2460 3539 - pino-http@8.6.1: 3540 - dependencies: 3541 - get-caller-file: 2.0.5 3542 - pino: 8.21.0 3543 - pino-std-serializers: 6.2.2 3544 - process-warning: 3.0.0 3545 - 3546 2461 pino-pretty@11.2.2: 3547 2462 dependencies: 3548 2463 colorette: 2.0.20 ··· 3560 2475 sonic-boom: 4.1.0 3561 2476 strip-json-comments: 3.1.1 3562 2477 3563 - pino-std-serializers@6.2.2: {} 3564 - 3565 2478 pino-std-serializers@7.0.0: {} 3566 2479 3567 - pino@8.21.0: 3568 - dependencies: 3569 - atomic-sleep: 1.0.0 3570 - fast-redact: 3.5.0 3571 - on-exit-leak-free: 2.1.2 3572 - pino-abstract-transport: 1.2.0 3573 - pino-std-serializers: 6.2.2 3574 - process-warning: 3.0.0 3575 - quick-format-unescaped: 4.0.4 3576 - real-require: 0.2.0 3577 - safe-stable-stringify: 2.5.0 3578 - sonic-boom: 3.8.1 3579 - thread-stream: 2.7.0 3580 - 3581 2480 pino@9.4.0: 3582 2481 dependencies: 3583 2482 atomic-sleep: 1.0.0 ··· 3592 2491 sonic-boom: 4.1.0 3593 2492 thread-stream: 3.1.0 3594 2493 3595 - postgres-array@2.0.0: {} 3596 - 3597 - postgres-bytea@1.0.0: {} 3598 - 3599 - postgres-date@1.0.7: {} 3600 - 3601 - postgres-interval@1.2.0: 3602 - dependencies: 3603 - xtend: 4.0.2 3604 - 3605 2494 prebuild-install@7.1.2: 3606 2495 dependencies: 3607 2496 detect-libc: 2.0.3 ··· 3620 2509 prelude-ls@1.2.1: {} 3621 2510 3622 2511 prettier@3.3.3: {} 3623 - 3624 - process-warning@3.0.0: {} 3625 2512 3626 2513 process-warning@4.0.0: {} 3627 2514 ··· 3637 2524 forwarded: 0.2.0 3638 2525 ipaddr.js: 1.9.1 3639 2526 3640 - proxy-from-env@1.1.0: {} 3641 - 3642 2527 pump@3.0.2: 3643 2528 dependencies: 3644 2529 end-of-stream: 1.4.4 ··· 3652 2537 3653 2538 queue-microtask@1.2.3: {} 3654 2539 3655 - queue-tick@1.0.1: {} 3656 - 3657 2540 quick-format-unescaped@4.0.4: {} 3658 2541 3659 2542 range-parser@1.2.1: {} 3660 - 3661 - rate-limiter-flexible@2.4.2: {} 3662 2543 3663 2544 raw-body@2.5.2: 3664 2545 dependencies: ··· 3690 2571 3691 2572 real-require@0.2.0: {} 3692 2573 3693 - redis-errors@1.2.0: {} 3694 - 3695 - redis-parser@3.0.0: 3696 - dependencies: 3697 - redis-errors: 1.2.0 3698 - 3699 2574 resolve-from@4.0.0: {} 3700 2575 3701 2576 resolve-pkg-maps@1.0.0: {} 3702 2577 3703 2578 reusify@1.0.4: {} 3704 2579 3705 - roarr@7.21.1: 3706 - dependencies: 3707 - fast-printf: 1.6.9 3708 - safe-stable-stringify: 2.5.0 3709 - semver-compare: 1.0.0 3710 - 3711 2580 run-parallel@1.2.0: 3712 2581 dependencies: 3713 2582 queue-microtask: 1.2.3 3714 2583 3715 - rxjs@7.8.1: 3716 - dependencies: 3717 - tslib: 2.7.0 3718 - optional: true 3719 - 3720 - safe-buffer@5.1.2: {} 3721 - 3722 2584 safe-buffer@5.2.1: {} 3723 2585 3724 2586 safe-stable-stringify@2.5.0: {} ··· 3726 2588 safer-buffer@2.1.2: {} 3727 2589 3728 2590 secure-json-parse@2.7.0: {} 3729 - 3730 - semver-compare@1.0.0: {} 3731 2591 3732 2592 semver@7.6.3: {} 3733 2593 ··· 3769 2629 3770 2630 setprototypeof@1.2.0: {} 3771 2631 3772 - sharp@0.32.6: 3773 - dependencies: 3774 - color: 4.2.3 3775 - detect-libc: 2.0.3 3776 - node-addon-api: 6.1.0 3777 - prebuild-install: 7.1.2 3778 - semver: 7.6.3 3779 - simple-get: 4.0.1 3780 - tar-fs: 3.0.6 3781 - tunnel-agent: 0.6.0 3782 - 3783 2632 shebang-command@2.0.0: 3784 2633 dependencies: 3785 2634 shebang-regex: 3.0.0 ··· 3801 2650 once: 1.4.0 3802 2651 simple-concat: 1.0.1 3803 2652 3804 - simple-swizzle@0.2.2: 3805 - dependencies: 3806 - is-arrayish: 0.3.2 3807 - 3808 - sonic-boom@3.8.1: 3809 - dependencies: 3810 - atomic-sleep: 1.0.0 3811 - 3812 2653 sonic-boom@4.1.0: 3813 2654 dependencies: 3814 2655 atomic-sleep: 1.0.0 3815 - 3816 - sorted-array-functions@1.3.0: {} 3817 2656 3818 2657 source-map@0.5.7: {} 3819 2658 3820 2659 split2@4.2.0: {} 3821 2660 3822 - standard-as-callback@2.1.0: {} 3823 - 3824 - statsig-node@5.27.1: 3825 - dependencies: 3826 - ip3country: 5.0.0 3827 - node-fetch: 2.7.0 3828 - ua-parser-js: 1.0.39 3829 - uuid: 8.3.2 3830 - transitivePeerDependencies: 3831 - - encoding 3832 - 3833 2661 statuses@2.0.1: {} 3834 2662 3835 - streamx@2.20.1: 3836 - dependencies: 3837 - fast-fifo: 1.3.2 3838 - queue-tick: 1.0.1 3839 - text-decoder: 1.2.0 3840 - optionalDependencies: 3841 - bare-events: 2.4.2 3842 - 3843 2663 string_decoder@1.3.0: 3844 2664 dependencies: 3845 2665 safe-buffer: 5.2.1 ··· 3852 2672 3853 2673 strip-json-comments@3.1.1: {} 3854 2674 3855 - structured-headers@1.0.1: {} 3856 - 3857 2675 supports-color@5.5.0: 3858 2676 dependencies: 3859 2677 has-flag: 3.0.0 ··· 3869 2687 pump: 3.0.2 3870 2688 tar-stream: 2.2.0 3871 2689 3872 - tar-fs@3.0.6: 3873 - dependencies: 3874 - pump: 3.0.2 3875 - tar-stream: 3.1.7 3876 - optionalDependencies: 3877 - bare-fs: 2.3.5 3878 - bare-path: 2.1.3 3879 - 3880 2690 tar-stream@2.2.0: 3881 2691 dependencies: 3882 2692 bl: 4.1.0 ··· 3885 2695 inherits: 2.0.4 3886 2696 readable-stream: 3.6.2 3887 2697 3888 - tar-stream@3.1.7: 3889 - dependencies: 3890 - b4a: 1.6.6 3891 - fast-fifo: 1.3.2 3892 - streamx: 2.20.1 3893 - 3894 2698 tdigest@0.1.2: 3895 2699 dependencies: 3896 2700 bintrees: 1.0.2 3897 2701 3898 - text-decoder@1.2.0: 3899 - dependencies: 3900 - b4a: 1.6.6 3901 - 3902 2702 text-table@0.2.0: {} 3903 - 3904 - thread-stream@2.7.0: 3905 - dependencies: 3906 - real-require: 0.2.0 3907 2703 3908 2704 thread-stream@3.1.0: 3909 2705 dependencies: 3910 2706 real-require: 0.2.0 3911 2707 3912 - tlds@1.254.0: {} 3913 - 3914 2708 to-fast-properties@2.0.0: {} 3915 2709 3916 2710 to-regex-range@5.0.1: ··· 3919 2713 3920 2714 toidentifier@1.0.1: {} 3921 2715 3922 - tr46@0.0.3: {} 3923 - 3924 2716 ts-api-utils@1.3.0(typescript@5.6.2): 3925 2717 dependencies: 3926 2718 typescript: 5.6.2 3927 2719 3928 - tslib@2.7.0: 3929 - optional: true 3930 - 3931 2720 tsx@4.19.1: 3932 2721 dependencies: 3933 2722 esbuild: 0.23.1 ··· 3943 2732 dependencies: 3944 2733 prelude-ls: 1.2.1 3945 2734 3946 - type-fest@2.19.0: {} 3947 - 3948 2735 type-is@1.6.18: 3949 2736 dependencies: 3950 2737 media-typer: 0.3.0 3951 2738 mime-types: 2.1.35 3952 2739 3953 - typed-emitter@2.1.0: 3954 - optionalDependencies: 3955 - rxjs: 7.8.1 3956 - 3957 - typescript-eslint@8.6.0(eslint@9.10.0)(typescript@5.6.2): 2740 + typescript-eslint@8.6.0(eslint@9.11.0)(typescript@5.6.2): 3958 2741 dependencies: 3959 - '@typescript-eslint/eslint-plugin': 8.6.0(@typescript-eslint/parser@8.6.0(eslint@9.10.0)(typescript@5.6.2))(eslint@9.10.0)(typescript@5.6.2) 3960 - '@typescript-eslint/parser': 8.6.0(eslint@9.10.0)(typescript@5.6.2) 3961 - '@typescript-eslint/utils': 8.6.0(eslint@9.10.0)(typescript@5.6.2) 2742 + '@typescript-eslint/eslint-plugin': 8.6.0(@typescript-eslint/parser@8.6.0(eslint@9.11.0)(typescript@5.6.2))(eslint@9.11.0)(typescript@5.6.2) 2743 + '@typescript-eslint/parser': 8.6.0(eslint@9.11.0)(typescript@5.6.2) 2744 + '@typescript-eslint/utils': 8.6.0(eslint@9.11.0)(typescript@5.6.2) 3962 2745 optionalDependencies: 3963 2746 typescript: 5.6.2 3964 2747 transitivePeerDependencies: ··· 3966 2749 - supports-color 3967 2750 3968 2751 typescript@5.6.2: {} 3969 - 3970 - ua-parser-js@1.0.39: {} 3971 - 3972 - uint8arrays@3.0.0: 3973 - dependencies: 3974 - multiformats: 9.9.0 3975 2752 3976 2753 undici-types@6.19.8: {} 3977 2754 3978 - undici@5.28.4: 3979 - dependencies: 3980 - '@fastify/busboy': 2.1.1 3981 - 3982 2755 unpipe@1.0.0: {} 3983 2756 3984 2757 uri-js@4.4.1: ··· 3989 2762 3990 2763 utils-merge@1.0.1: {} 3991 2764 3992 - uuid@8.3.2: {} 3993 - 3994 - varint@6.0.0: {} 3995 - 3996 2765 vary@1.1.2: {} 3997 2766 3998 - webidl-conversions@3.0.1: {} 3999 - 4000 - whatwg-url@5.0.0: 4001 - dependencies: 4002 - tr46: 0.0.3 4003 - webidl-conversions: 3.0.1 4004 - 4005 2767 which@2.0.2: 4006 2768 dependencies: 4007 2769 isexe: 2.0.0 ··· 4010 2772 4011 2773 wrappy@1.0.2: {} 4012 2774 4013 - ws@8.18.0: {} 4014 - 4015 - xtend@4.0.2: {} 4016 - 4017 2775 yocto-queue@0.1.0: {} 4018 - 4019 - zod@3.23.8: {}
+26 -39
src/db.ts
··· 1 1 import Database from 'better-sqlite3'; 2 2 import path from 'path'; 3 + import { fileURLToPath } from 'url'; 3 4 4 - import logger from './logger'; 5 + import logger from './logger.js'; 6 + 7 + const __filename = fileURLToPath(import.meta.url); 8 + const __dirname = path.dirname(__filename); 5 9 6 10 const dbPath = path.resolve(__dirname, '../data/posts.db'); 7 11 const db = new Database(dbPath); ··· 15 19 id TEXT PRIMARY KEY, 16 20 created_at TEXT, 17 21 did TEXT, 18 - time_us INTEGER, 19 - type TEXT, 20 - collection TEXT, 21 22 rkey TEXT, 22 23 cursor INTEGER, 23 - is_deleted BOOLEAN DEFAULT FALSE, 24 - embed TEXT, -- Serialized embed data 25 - reply TEXT -- Serialized reply data 24 + text TEXT 26 25 ); 27 26 28 27 CREATE TABLE IF NOT EXISTS languages ( ··· 37 36 id INTEGER PRIMARY KEY CHECK (id = 1), 38 37 last_cursor INTEGER 39 38 ); 40 - 41 - INSERT OR IGNORE INTO cursor (id, last_cursor) VALUES (1, 0); 42 39 `); 43 40 44 - logger.info(`Creating index on posts(created_at, is_deleted)...`); 41 + const currentEpochMicroseconds = BigInt(Date.now()) * 1000n; 45 42 46 - db.exec(` 47 - CREATE INDEX IF NOT EXISTS idx_posts_created_at_is_deleted 48 - ON posts(created_at, is_deleted); 49 - `); 43 + db.exec(`INSERT OR IGNORE INTO cursor (id, last_cursor) VALUES (1, ${currentEpochMicroseconds});`); 50 44 51 45 logger.info(`Setting database pragmas...`); 52 46 ··· 59 53 logger.info(`Database schema initialized.`); 60 54 61 55 const insertPost = db.prepare(` 62 - INSERT OR IGNORE INTO posts (id, created_at, did, time_us, type, collection, rkey, cursor, embed, reply) 63 - VALUES (@id, @created_at, @did, @time_us, @type, @collection, @rkey, @cursor, @embed, @reply) 56 + INSERT OR IGNORE INTO posts (id, created_at, did, rkey, cursor, text) 57 + VALUES (@id, @created_at, @did, @rkey, @cursor, @text) 64 58 `); 65 59 66 60 const insertLanguage = db.prepare(` ··· 69 63 `); 70 64 71 65 export function getLastCursor(): number { 66 + logger.info('Getting last cursor...'); 72 67 const row = db.prepare(`SELECT last_cursor FROM cursor WHERE id = 1`).get(); 73 - return row ? row.last_cursor : 0; 68 + logger.info(`Returning cursor from database: ${row.last_cursor}`); 69 + return row.last_cursor; 74 70 } 75 71 76 72 export function updateLastCursor(newCursor: number): void { 77 - db.prepare(`UPDATE cursor SET last_cursor = @last_cursor WHERE id = 1`).run({ last_cursor: newCursor }); 78 - logger.debug(`Updated last cursor to ${newCursor}`); 73 + const result = db.prepare(`UPDATE cursor SET last_cursor = @last_cursor WHERE id = 1`).run({ last_cursor: newCursor }); 74 + if (result.changes > 0) { 75 + logger.info(`Updated last cursor to ${newCursor}`); 76 + } else { 77 + logger.warn(`Failed to update cursor to ${newCursor}`); 78 + } 79 79 } 80 - 81 80 export function savePost(post: { 82 81 id: string; 83 82 created_at: string; 84 83 langs: string[]; 85 84 did: string; 86 - time_us: number; 87 - type: string; 88 - collection: string; 89 85 rkey: string; 90 86 cursor: number; 91 - embed?: any; // Optional field 92 - reply?: any; // Optional field 87 + text: string; 93 88 }) { 94 89 const insertOrUpdate = db.transaction((postData: typeof post) => { 95 90 insertPost.run({ 96 91 id: postData.id, 97 92 created_at: postData.created_at, 98 93 did: postData.did, 99 - time_us: postData.time_us, 100 - type: postData.type, 101 - collection: postData.collection, 102 94 rkey: postData.rkey, 103 95 cursor: postData.cursor, 104 - embed: postData.embed ? JSON.stringify(postData.embed) : null, // Serialize embed 105 - reply: postData.reply ? JSON.stringify(postData.reply) : null, // Serialize reply 96 + text: postData.text, 106 97 }); 107 98 108 99 postData.langs.forEach((lang) => { 109 - if (typeof lang === 'string') { 110 - insertLanguage.run({ 111 - post_id: postData.id, 112 - language: lang, 113 - }); 114 - } else { 115 - logger.warn(`Invalid language type: ${typeof lang} for lang: ${lang}`, { lang }); 116 - } 100 + insertLanguage.run({ 101 + post_id: postData.id, 102 + language: lang, 103 + }); 117 104 }); 118 105 119 106 logger.debug(`Saved/Updated post ${postData.id}`); ··· 136 123 const info = db.prepare(`DELETE FROM posts WHERE id = @id`).run({ id: postId }); 137 124 138 125 if (info.changes > 0) { 139 - logger.debug(`Hard deleted post ${postId}`); 126 + logger.info(`Deleted post ${postId}`); 140 127 return postLangs; 141 128 } else { 142 129 logger.warn(`Attempted to delete non-existent post ${postId}`);
+80 -155
src/index.ts
··· 1 + import { CommitCreateEvent, CommitEvent, Jetstream } from '@skyware/jetstream'; 1 2 import dotenv from 'dotenv'; 2 - import express from 'express'; 3 3 import process from 'process'; 4 - import WebSocket from 'ws'; 5 4 6 - import { closeDatabase, deletePost, getLastCursor, savePost, updateLastCursor } from './db'; 7 - import logger from './logger'; 8 - import { decrementMetrics, decrementPosts, incrementErrors, incrementPosts, register, updateMetrics } from './metrics'; 9 - import { JetstreamEvent } from './types'; 5 + import { closeDatabase, deletePost, getLastCursor, savePost, updateLastCursor } from './db.js'; 6 + import logger from './logger.js'; 7 + import { decrementMetrics, decrementPosts, incrementErrors, incrementPosts, updateMetrics } from './metrics.js'; 8 + import { app } from './web.js'; 10 9 11 10 dotenv.config(); 12 11 13 12 const FIREHOSE_URL = process.env.FIREHOSE_URL ?? 'wss://jetstream.atproto.tools/subscribe'; // default to Jaz's Jetstream instance 14 13 const PORT = parseInt(process.env.PORT ?? '9201', 10); 15 - const WANTED_COLLECTIONS = process.env.WANTED_COLLECTIONS?.split(',') ?? ['app.bsky.feed.post']; 16 - const RECONNECT_DELAY_MS = 1000; 17 14 const CURSOR_UPDATE_INTERVAL_MS = 10 * 1000; 18 15 19 - if (!FIREHOSE_URL) { 20 - logger.error('FIREHOSE_URL is not defined in the environment variables.'); 21 - process.exit(1); 22 - } 23 - 24 - function constructFirehoseURL(cursor = 0): string { 25 - const url = new URL(FIREHOSE_URL); 26 - WANTED_COLLECTIONS.forEach((collection) => { 27 - url.searchParams.append('wantedCollections', collection); 28 - }); 29 - if (cursor > 0) { 30 - url.searchParams.append('cursor', cursor.toString()); 31 - } 32 - return url.toString(); 33 - } 34 - 35 - let ws: WebSocket | null = null; 36 - let reconnectAttempts = 0; 37 16 let latestCursor = getLastCursor(); 17 + logger.info(`Initial cursor set to: ${latestCursor}`); 38 18 let cursorUpdateInterval: NodeJS.Timeout | null = null; 39 19 40 20 function initializeCursorUpdate() { ··· 46 26 }, CURSOR_UPDATE_INTERVAL_MS); 47 27 } 48 28 49 - function handleCommitEvent(event: JetstreamEvent) { 29 + function handleCreate(event: CommitCreateEvent<'app.bsky.feed.post'>) { 50 30 const { commit } = event; 51 31 52 - if (!commit) return; 32 + if (!commit.rkey) return; 53 33 54 - if (!commit.collection || !commit.rkey || !commit.record) { 55 - return; 56 - } 34 + const { rkey, record } = commit; 57 35 58 - const { type, collection, rkey, record } = commit; 36 + try { 37 + let langs: string[] = []; 38 + if (record.langs) { 39 + langs = record.langs; 40 + } else { 41 + logger.debug(`"langs" field is missing in record ${JSON.stringify(record)}`); 42 + langs = ['UNKNOWN']; 43 + } 59 44 60 - switch (type) { 61 - case 'c': // Create 62 - try { 63 - let langs: string[] = []; 64 - if (record.langs) { 65 - langs = record.langs; 66 - } else { 67 - logger.debug(`"langs" field is missing in record ${JSON.stringify(record)}`); 68 - langs = ['UNKNOWN']; 69 - } 45 + const post = { 46 + id: `${event.did}:${rkey}`, 47 + created_at: record.createdAt, 48 + langs: langs, 49 + did: event.did, 50 + rkey: rkey, 51 + cursor: event.time_us, 52 + text: record.text, 53 + }; 54 + savePost(post); 55 + updateMetrics(post.langs); 56 + incrementPosts(); 57 + if (event.time_us > latestCursor) { 58 + latestCursor = event.time_us; 59 + } 60 + } catch (error) { 61 + logger.error(`Error parsing record in "create" commit: ${(error as Error).message}`, { commit, record }); 62 + logger.error(`Malformed record data: ${JSON.stringify(record)}`); 63 + incrementErrors(); 64 + } 65 + } 70 66 71 - const post = { 72 - id: `${event.did}:${rkey}`, 73 - created_at: record.createdAt, 74 - langs: langs, 75 - did: event.did, 76 - time_us: typeof event.time_us === 'number' ? event.time_us : Date.now() * 1000, 77 - type: type, // this was previously wrong and stored the collection name. also we don't need it and may drop it 78 - collection: collection, 79 - rkey: rkey, 80 - cursor: event.time_us, 81 - embed: record.embed ?? null, 82 - reply: record.reply ?? null, 83 - }; 84 - savePost(post); 85 - updateMetrics(post.langs); 86 - incrementPosts(); 87 - if (event.time_us > latestCursor) { 88 - latestCursor = event.time_us; 89 - } 90 - } catch (error) { 91 - logger.error(`Error parsing record in "create" commit: ${(error as Error).message}`, { commit, record }); 92 - logger.error(`Malformed record data: ${JSON.stringify(record)}`); 93 - incrementErrors(); 94 - } 95 - break; 67 + function handleDelete(event: CommitEvent<'app.bsky.feed.post'>) { 68 + const { commit } = event; 96 69 97 - case 'd': // Delete 98 - try { 99 - const postId = `${event.did}:${rkey}`; 100 - const langsToDecrement = deletePost(postId); 101 - decrementMetrics(langsToDecrement); 102 - decrementPosts(); 103 - if (event.time_us > latestCursor) { 104 - latestCursor = event.time_us; 105 - } 106 - } catch (error) { 107 - logger.error(`Error deleting post: ${(error as Error).message}`, { rkey }); 108 - incrementErrors(); 109 - } 110 - break; 70 + if (!commit.rkey) return; 111 71 112 - default: 113 - // there are 'u' update events, but posts don't get updated 114 - break; 72 + try { 73 + const postId = `${event.did}:${commit.rkey}`; 74 + const langsToDecrement = deletePost(postId); 75 + decrementMetrics(langsToDecrement); 76 + decrementPosts(); 77 + if (event.time_us > latestCursor) { 78 + latestCursor = event.time_us; 79 + } 80 + } catch (error) { 81 + logger.error(`Error deleting post: ${(error as Error).message}`, { rkey: commit.rkey }); 82 + incrementErrors(); 115 83 } 116 84 } 117 85 118 - function connect() { 119 - const url = constructFirehoseURL(latestCursor); 120 - logger.info(`Connecting to Jetstream at ${url}`); 121 - ws = new WebSocket(url); 86 + const server = app.listen(PORT, '127.0.0.1', () => { 87 + logger.info(`Metrics server listening on port ${PORT}`); 88 + }); 122 89 123 - ws.on('open', () => { 124 - logger.info('Connected to Jetstream firehose.'); 125 - reconnectAttempts = 0; 126 - if (!cursorUpdateInterval) { 127 - initializeCursorUpdate(); 128 - } 129 - }); 90 + const jetstream = new Jetstream({ 91 + wantedCollections: ['app.bsky.feed.post'], 92 + endpoint: FIREHOSE_URL, 93 + cursor: latestCursor.toString(), 94 + }); 130 95 131 - ws.on('message', (data: WebSocket.RawData) => { 132 - try { 133 - if (data instanceof Buffer) { 134 - const event: JetstreamEvent = JSON.parse(data.toString()) as JetstreamEvent; 135 - if (event.type === 'com') { 136 - handleCommitEvent(event); 137 - } 138 - } else { 139 - logger.error('Received non-buffer data, this should not happen'); 140 - } 141 - } catch (error) { 142 - logger.error(`Error processing message: ${(error as Error).message}`); 143 - incrementErrors(); 144 - } 145 - }); 96 + jetstream.start(); 146 97 147 - ws.on('close', (code, reason) => { 148 - logger.warn(`WebSocket closed: Code=${code}, Reason=${reason.toString()}`); 149 - attemptReconnect() 150 - .then(() => { 151 - logger.info('Reconnected to Jetstream firehose.'); 152 - }) 153 - .catch((error: unknown) => { 154 - logger.error(`Error reconnecting to Jetstream firehose: ${(error as Error).message}`); 155 - incrementErrors(); 156 - }); 157 - }); 98 + jetstream.on('open', () => { 99 + logger.info('Connected to Jetstream firehose.'); 100 + if (!cursorUpdateInterval) { 101 + initializeCursorUpdate(); 102 + } 103 + }); 158 104 159 - ws.on('error', (error) => { 160 - logger.error(`WebSocket error: ${error.message}`); 161 - incrementErrors(); 162 - ws?.close(); 163 - }); 164 - } 165 - 166 - async function attemptReconnect() { 167 - reconnectAttempts += 1; 168 - const delay = Math.min(RECONNECT_DELAY_MS * 2 ** reconnectAttempts, 30000); // Up to 30 seconds 169 - logger.info(`Reconnecting in ${delay / 1000} seconds...`); 170 - await new Promise((resolve) => setTimeout(resolve, delay)); 171 - connect(); 172 - } 173 - 174 - connect(); 105 + jetstream.on('close', () => { 106 + logger.info('Jetstream firehose connection closed.'); 107 + shutdown(); 108 + }); 175 109 176 - const app = express(); 110 + jetstream.on('error', (error) => { 111 + logger.error(`Jetstream firehose error: ${error.message}`); 112 + incrementErrors(); 113 + }); 177 114 178 - app.get('/metrics', (req, res) => { 179 - register 180 - .metrics() 181 - .then((metrics) => { 182 - res.set('Content-Type', register.contentType); 183 - res.send(metrics); 184 - }) 185 - .catch((ex: unknown) => { 186 - logger.error(`Error serving metrics: ${(ex as Error).message}`); 187 - res.status(500).end((ex as Error).message); 188 - }); 115 + jetstream.onCreate('app.bsky.feed.post', (event) => { 116 + handleCreate(event); 189 117 }); 190 118 191 - const server = app.listen(PORT, '127.0.0.1', () => { 192 - logger.info(`Metrics server listening on port ${PORT}`); 119 + jetstream.onDelete('app.bsky.feed.post', (event) => { 120 + handleDelete(event); 193 121 }); 194 122 195 123 function shutdown() { 196 124 logger.info('Shutting down gracefully...'); 197 - 198 - if (ws) { 199 - ws.close(); 200 - } 201 125 202 126 if (cursorUpdateInterval) { 203 127 clearInterval(cursorUpdateInterval); ··· 206 130 server.close(() => { 207 131 logger.info('HTTP server closed.'); 208 132 133 + jetstream.close(); 209 134 closeDatabase(); 210 135 process.exit(0); 211 136 });
+1 -1
src/logger.ts
··· 1 - import pino from 'pino'; 1 + import { pino } from 'pino'; 2 2 3 3 const logger = pino({ 4 4 level: process.env.LOG_LEVEL ?? 'info',
+1 -1
src/metrics.ts
··· 1 1 import { Counter, Gauge, Registry } from 'prom-client'; 2 2 3 - import logger from './logger'; 3 + import logger from './logger.js'; 4 4 5 5 const register = new Registry(); 6 6
-29
src/types.ts
··· 1 - import { Record as BskyFeedPostRecord } from '@atproto/bsky/src/lexicon/types/app/bsky/feed/post'; 2 - 3 - export type EventType = 'com' | 'acc' | 'id'; 4 - export type CommitOpType = 'c' | 'u' | 'd'; 5 - 6 - export interface JetstreamSubject { 7 - cid: string; 8 - uri: string; 9 - } 10 - 11 - export interface JetstreamCommit { 12 - rev?: string; 13 - type: CommitOpType; 14 - collection?: string; 15 - rkey?: string; 16 - cid?: string; 17 - record?: BskyFeedPostRecord; 18 - } 19 - 20 - export interface JetstreamEvent { 21 - did: string; 22 - time_us: number; 23 - type: EventType; 24 - commit?: JetstreamCommit; 25 - } 26 - 27 - export interface OperationsByType { 28 - posts: JetstreamEvent[]; 29 - }
+19
src/web.ts
··· 1 + import express from 'express'; 2 + 3 + import logger from './logger.js'; 4 + import { register } from './metrics.js'; 5 + 6 + export const app = express(); 7 + 8 + app.get('/metrics', (req, res) => { 9 + register 10 + .metrics() 11 + .then((metrics) => { 12 + res.set('Content-Type', register.contentType); 13 + res.send(metrics); 14 + }) 15 + .catch((ex: unknown) => { 16 + logger.error(`Error serving metrics: ${(ex as Error).message}`); 17 + res.status(500).end((ex as Error).message); 18 + }); 19 + });
+1 -1
tsconfig.json
··· 6 6 "moduleResolution": "NodeNext", 7 7 "allowSyntheticDefaultImports": true, 8 8 "esModuleInterop": true, 9 - "types": ["node", "ws"] 9 + "types": ["node"] 10 10 } 11 11 }