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

Remove GEMINI.md and Update README

-65
GEMINI.md
··· 1 - # GEMINI.md 2 - 3 - ## Workflow Guidelines 4 - 5 - These steps help ensure quality and prevent common issues: 6 - 7 - 1. Context Check: Start by confirming the model and re-reading relevant 8 - documentation. Review the codebase and any PLAN.md files present. If there is a PRD.md, review it to understand the requirements and constraints. 9 - 2. Plan First: Explain your approach before implementing changes. If PLAN.md exists, review the plan and offer suggestions for improvements. 10 - 3. Seek Alignment: Confirm the approach makes sense before coding 11 - 4. Focused Changes: Keep modifications minimal and targeted 12 - 5. Validate Thoroughly: Run all tests and validation steps 13 - 6. Verify Success: Ensure everything works before considering complete" 14 - 15 - Follow the response style and code style below: 16 - 17 - <response_style> 18 - Provide responses that are intelligent and slightly humorous (WITHOUT being cringe), while maintaining a casual and modern tone. 19 - 20 - Before responding, take a moment to consider how to best address the user's input while adhering to your personality traits and communication style. 21 - 22 - When formulating your response, follow these guidelines: 23 - 24 - - keep it casual as fuck. use lowercase for short sentences, except when you wanna EMPHASIZE something, but when absolutely required for the bit you can break out the proper grammar. 25 - - AVOID compromising on intelligence or depth of knowledge 26 - - be concise, super concise. one or two words if you can manage it UNLESS responding to something that requires more detail, depth etc 27 - - you've got weird interests and a unique but not unkind sense of humour. let it show, but subtly 28 - - use modern slang occasionally (such as but not limited to "ngl", "bet" or "fr") 29 - - include subtle references to your unique interests and sense of humour 30 - - swear a bit 31 - - use Canadian English spelling (e.g., "armour" instead of "armor"), except in source code. 32 - - skip sycophantic flattery; NEVER give me hollow praise, validation, adoration, or grandiose affirmations. NEVER act like a cheerleader. probe my assumptions, surface bias, present counter-evidence, explicitly challenge my framing, and disagree openly; agreement must be EARNED through vigorous reason. 33 - 34 - Remember, while maintaining your unique personality, never compromise on the quality of information or depth of analysis. Aim for conciseness, but provide more detailed and lengthy responses when the topic warrants it. 35 - 36 - When producing code, avoid giving the source code personality and instead within them be completely professional. 37 - </response_style> 38 - 39 - ## Project Overview 40 - 41 - This project, the Sentinel Routine Querying System (QRP), is a set of SAS programs designed to analyze healthcare data that conforms to the Sentinel Common Data Model (SCDM). It allows users to define cohorts and examine their health profiles and outcomes. The system is highly parameterized, using a combination of SAS macro variables and input datasets to control the analysis. 42 - 43 - The core of the project is a series of SAS macros that perform various data manipulation, analysis, and reporting tasks. The main entry point for running an analysis is the `qrp_master_header.sas` script, which sets up the environment, defines global macro variables, and includes all the necessary macro files. 44 - 45 - ## Building and Running 46 - 47 - This is a SAS-based project and does not have a typical build process. To run an analysis, you need to: 48 - 49 - 1. **Prerequisites:** 50 - * SAS version 9.4 51 - * SCDM-formatted data as SAS datasets (`.sas7bdat`). 52 - 53 - 2. **Configuration:** 54 - * Populate the input files in the `SAS/inputfiles` directory with the appropriate data and parameters for your analysis. 55 - * Configure the `SAS/sasprograms/qrp_master_header.sas` file to specify the location of your SCDM data and other environment-specific settings. 56 - 57 - 3. **Execution:** 58 - * Run the `SAS/sasprograms/qrp_master_header.sas` script in a SAS environment. The `SAS/readme.md` suggests running it in "batch" mode. 59 - 60 - ## Development Conventions 61 - 62 - * **Code Style:** The SAS code appears to follow a consistent style, with extensive use of comments and headers to document the purpose of each section and macro. 63 - * **Modularity:** The code is highly modular, with functionality broken down into a large number of individual SAS macros. 64 - * **Configuration:** The system is heavily reliant on configuration through macro variables and input files. This allows for a high degree of flexibility without modifying the core SAS code. 65 - * **Directory Structure:** The project follows a strict directory structure, with specific folders for documentation, input files, local data, and results.
+21 -83
README.md
··· 1 - # Skywatch Automod 2 - 3 - This project provides tools for automating moderation of the Bluesky social network. It listens to the Bluesky firehose stream, analyzes various types of content against user-defined rules, and performs moderation actions such as applying labels, reporting content, or leaving comments. 4 - 5 - ## Features 6 - 7 - - **Real-time Moderation:** Monitors the Bluesky firehose in real-time. 8 - - **Content-Aware Analysis:** Analyzes posts, user profiles (display names, descriptions), and handles 9 - - **Flexible Rule Engine:** Uses regular expressions for defining moderation checks. 10 - - **Variety of Actions:** Can apply labels, create reports (for posts or accounts), and post comments on accounts. 11 - - **Configurable:** Highly configurable through environment variables and a central constants file. 12 - - **Allowlisting:** Supports allowlisting for DIDs and text patterns to reduce false positives. 13 - - **URL Unshortening:** Automatically resolves shortened URLs in posts before checking them. 14 - - **Monitoring:** Exposes a Prometheus metrics endpoint to monitor its activity. (untested) 15 - - **Resilient:** Persists the firehose cursor to gracefully handle restarts without missing events. 16 - 17 - ## How It Works 18 - 19 - The application connects to the Bluesky firehose and subscribes to a set of collections (e.g., posts, profiles). When a new event is received, it is passed through a series of checks defined in `src/constants.ts`. These checks are categorized by content type: 20 - 21 - - `POST_CHECKS`: For post content and links. 22 - - `HANDLE_CHECKS`: For user handles. 23 - - `PROFILE_CHECKS`: For user display names and descriptions. 24 - 25 - If the content matches a check's criteria (and is not excluded by an allowlist), a corresponding moderation action is triggered. These actions (labeling, reporting, etc.) are performed using the Bluesky API. 26 - 27 - ## Getting Started 1 + # skywatch-tools 28 2 29 - ### Prerequisites 3 + This is a rewrite of the original skywatch-tools project in TypeScript. The original project was written in Bash. The purpose of this project is to automate the moderation by the Bluesky independent labeler skywatch.blue 30 4 31 - - Node.js (v20 or higher recommended) 32 - - `bun` package manager 33 - - A Bluesky account for the bot. 34 - - A Bluesky labeler account 5 + ## Installation and Setup 35 6 36 - ### 1. Installation 37 - 38 - Clone the repository and install the dependencies: 7 + To install dependencies: 39 8 40 9 ```bash 41 - git clone <repository-url> 42 - cd skywatch-automod-public 43 - bun install 10 + bun i 44 11 ``` 45 12 46 - ### Configuration 47 - 48 - There are two main configuration files you need to set up: 49 - 50 - - **Checks (`src/constants.ts`):** 51 - This file defines the rules for your automod. You need to create it by copying the example file: 52 - 53 - ```bash 54 - cp src/constants.ts.example src/constants.ts 55 - ``` 56 - 57 - Then, edit `src/constants.ts` to define your own checks. For detailed instructions on how to create checks, please see [developing_checks.md](./src/developing_checks.md). 58 - 59 - - **Environment Variables (`.env`):** 60 - This file contains credentials and other runtime configuration. You will need to create a `.env` file and populate it with your specific values. You can use `.env.example` as a reference if it exists in the 61 - 62 - ### 3. Running the Application 63 - 64 - Once configured, you can start the automod with: 13 + Modify .env.example with your own values and rename it to .env 65 14 66 15 ```bash 67 16 bun run start 68 17 ``` 69 18 70 - ### 4. Running with Docker 71 - 72 - You can also build and run the application as a Docker container. 19 + To run in docker: 73 20 74 21 ```bash 75 - docker compose up --build 22 + docker build -pull -t skywatch-tools . 23 + docker run -d -p 4101:4101 skywatch-autolabeler 76 24 ``` 77 25 78 - To run it in the background, add the `-d` flag: 26 + ## Brief overview 79 27 80 - ```bash 81 - docker compose up --build -d 82 - ``` 28 + Currently this tooling does one thing. It monitors the bluesky firehose and analyzes content for phrases which fit Skywatch's criteria for moderation. If the criteria is met, it can automatically label the content with the appropriate label. 83 29 84 - Make sure your `.env` file is present when building the Docker image, as it will be copied into the container. We recommend creating an empty `cursor.txt` file in the application root directory as well. 30 + In certain cases, where regexp will create too many false positives, it will flag content as a report against related to the account, so that it can be reviewed later. 85 31 86 - #### Configuration Variables 32 + For information on how to set-up your own checks, please see the [developing_checks.md](./src/developing_checks.md) file. 87 33 88 - The following environment variables are used for configuration: 34 + _TODO_: 89 35 90 - | Variable | Description | Default | 91 - | ------------------------ | ---------------------------------------------------------------- | -------------------------------------------------------------- | 92 - | `DID` | The DID of your moderation service for atproto-proxy headers. | `""` | 93 - | `OZONE_URL` | The URL of the Ozone service. | `""` | 94 - | `OZONE_PDS` | The Public Downstream Service for Ozone. | `""` | 95 - | `BSKY_HANDLE` | The handle (username) of the bot's Bluesky account. | `""` | 96 - | `BSKY_PASSWORD` | The app password for the bot's Bluesky account. | `""` | 97 - | `HOST` | The host on which the server runs. | `127.0.0.1` | 98 - | `PORT` | The port for the main application (currently unused). | `4100` | 99 - | `METRICS_PORT` | The port for the Prometheus metrics server. | `4101` | 100 - | `FIREHOSE_URL` | The WebSocket URL for the Bluesky firehose. | `FIREHOSE_URL=wss://jetstream1.us-east.bsky.network/subscribe` | 101 - | `CURSOR_UPDATE_INTERVAL` | How often to save the firehose cursor to disk (in milliseconds). | `60000` | 102 - | `LABEL_LIMIT` | (Optional) API call limit for labeling. | `undefined` | 103 - | `LABEL_LIMIT_WAIT` | (Optional) Wait time when label limit is hit. | `undefined` | 104 - | `LOG_LEVEL` | The logging level. | `info` | 36 + - [ ] Remove unused types 37 + - [ ] Update the types needed to be more specific to the checks rather than bluesky content types 38 + - [ ] Consider how to write directly to OzonePDS database rather than using the API. May require running the same instance as Ozone to allow for direct database access. 39 + - [ ] Add compose.yaml for easy deployment 40 + - [ ] Make the metrics server work (or remove it) 41 + 42 + Create a seperate program to watch OZONE_PDS firehose labels, and update the lists as needed. This will remove dependency on broken ruby tools created by aegis.
-9681
package-lock.json
··· 1 - { 2 - "name": "skywatch-automod", 3 - "version": "1.2.0", 4 - "lockfileVersion": 3, 5 - "requires": true, 6 - "packages": { 7 - "": { 8 - "name": "skywatch-automod", 9 - "version": "1.2.0", 10 - "dependencies": { 11 - "@atproto/api": "^0.13.35", 12 - "@atproto/bsky": "^0.0.101", 13 - "@atproto/lexicon": "^0.4.10", 14 - "@atproto/ozone": "^0.1.108", 15 - "@atproto/repo": "^0.6.5", 16 - "@atproto/xrpc-server": "^0.7.17", 17 - "@skyware/bot": "^0.3.11", 18 - "@skyware/jetstream": "^0.2.2", 19 - "@skyware/labeler": "^0.1.13", 20 - "bottleneck": "^2.19.5", 21 - "dotenv": "^16.5.0", 22 - "express": "^4.21.2", 23 - "franc": "^6.2.0", 24 - "husky": "^9.1.7", 25 - "lint-staged": "^15.5.1", 26 - "p-ratelimit": "^1.0.1", 27 - "pino": "^9.6.0", 28 - "pino-pretty": "^13.0.0", 29 - "prom-client": "^15.1.3", 30 - "undici": "^7.8.0" 31 - }, 32 - "devDependencies": { 33 - "@eslint/compat": "^1.3.2", 34 - "@eslint/eslintrc": "^3.3.1", 35 - "@eslint/js": "^9.29.0", 36 - "@stylistic/eslint-plugin": "^5.2.3", 37 - "@trivago/prettier-plugin-sort-imports": "^4.3.0", 38 - "@types/better-sqlite3": "^7.6.13", 39 - "@types/eslint__js": "^8.42.3", 40 - "@types/express": "^4.17.23", 41 - "@types/node": "^22.15.32", 42 - "@typescript-eslint/eslint-plugin": "^6.10.0", 43 - "@typescript-eslint/parser": "^6.10.0", 44 - "@vitest/ui": "^3.2.4", 45 - "eslint": "^9.29.0", 46 - "eslint-config-prettier": "^10.1.8", 47 - "eslint-plugin-import": "^2.32.0", 48 - "eslint-plugin-prettier": "^5.5.4", 49 - "prettier": "^3.5.3", 50 - "tsx": "^4.20.3", 51 - "typescript": "^5.8.3", 52 - "typescript-eslint": "^8.34.1", 53 - "vitest": "^3.2.4" 54 - } 55 - }, 56 - "node_modules/@atcute/bluesky": { 57 - "version": "1.0.11", 58 - "license": "MIT", 59 - "peerDependencies": { 60 - "@atcute/client": "^1.0.0 || ^2.0.0" 61 - } 62 - }, 63 - "node_modules/@atcute/bluesky-richtext-builder": { 64 - "version": "1.0.2", 65 - "license": "MIT", 66 - "peerDependencies": { 67 - "@atcute/bluesky": "^1.0.0", 68 - "@atcute/client": "^1.0.0 || ^2.0.0" 69 - } 70 - }, 71 - "node_modules/@atcute/car": { 72 - "version": "1.1.1", 73 - "license": "MIT", 74 - "optional": true, 75 - "dependencies": { 76 - "@atcute/cbor": "^1.0.6", 77 - "@atcute/cid": "^1.0.2", 78 - "@atcute/varint": "^1.0.1" 79 - } 80 - }, 81 - "node_modules/@atcute/cbor": { 82 - "version": "1.0.7", 83 - "license": "MIT", 84 - "dependencies": { 85 - "@atcute/cid": "^1.0.3", 86 - "@atcute/multibase": "^1.0.0" 87 - } 88 - }, 89 - "node_modules/@atcute/cid": { 90 - "version": "1.0.3", 91 - "license": "MIT", 92 - "dependencies": { 93 - "@atcute/multibase": "^1.0.0", 94 - "@atcute/varint": "^1.0.1" 95 - } 96 - }, 97 - "node_modules/@atcute/client": { 98 - "version": "2.0.6", 99 - "license": "MIT" 100 - }, 101 - "node_modules/@atcute/multibase": { 102 - "version": "1.0.1", 103 - "license": "MIT" 104 - }, 105 - "node_modules/@atcute/ozone": { 106 - "version": "1.0.8", 107 - "license": "MIT", 108 - "peerDependencies": { 109 - "@atcute/bluesky": "^1.0.0", 110 - "@atcute/client": "^1.0.0 || ^2.0.0" 111 - } 112 - }, 113 - "node_modules/@atcute/varint": { 114 - "version": "1.0.1", 115 - "license": "MIT" 116 - }, 117 - "node_modules/@atproto/api": { 118 - "version": "0.13.35", 119 - "license": "MIT", 120 - "dependencies": { 121 - "@atproto/common-web": "^0.4.0", 122 - "@atproto/lexicon": "^0.4.6", 123 - "@atproto/syntax": "^0.3.2", 124 - "@atproto/xrpc": "^0.6.8", 125 - "await-lock": "^2.2.2", 126 - "multiformats": "^9.9.0", 127 - "tlds": "^1.234.0", 128 - "zod": "^3.23.8" 129 - } 130 - }, 131 - "node_modules/@atproto/bsky": { 132 - "version": "0.0.101", 133 - "license": "MIT", 134 - "dependencies": { 135 - "@atproto/api": "^0.13.23", 136 - "@atproto/common": "^0.4.5", 137 - "@atproto/crypto": "^0.4.2", 138 - "@atproto/identity": "^0.4.3", 139 - "@atproto/lexicon": "^0.4.4", 140 - "@atproto/repo": "^0.6.0", 141 - "@atproto/sync": "^0.1.7", 142 - "@atproto/syntax": "^0.3.1", 143 - "@atproto/xrpc-server": "^0.7.4", 144 - "@bufbuild/protobuf": "^1.5.0", 145 - "@connectrpc/connect": "^1.1.4", 146 - "@connectrpc/connect-express": "^1.1.4", 147 - "@connectrpc/connect-node": "^1.1.4", 148 - "@did-plc/lib": "^0.0.1", 149 - "compression": "^1.7.4", 150 - "cors": "^2.8.5", 151 - "express": "^4.17.2", 152 - "http-errors": "^2.0.0", 153 - "http-terminator": "^3.2.0", 154 - "ioredis": "^5.3.2", 155 - "jose": "^5.0.1", 156 - "key-encoder": "^2.0.3", 157 - "kysely": "^0.22.0", 158 - "multiformats": "^9.9.0", 159 - "murmurhash": "^2.0.1", 160 - "p-queue": "^6.6.2", 161 - "pg": "^8.10.0", 162 - "pino": "^8.21.0", 163 - "pino-http": "^8.2.1", 164 - "sharp": "^0.33.5", 165 - "statsig-node": "^5.23.1", 166 - "structured-headers": "^1.0.1", 167 - "typed-emitter": "^2.1.0", 168 - "uint8arrays": "3.0.0" 169 - }, 170 - "bin": { 171 - "bsky": "dist/bin.js" 172 - } 173 - }, 174 - "node_modules/@atproto/bsky/node_modules/@atproto/api": { 175 - "version": "0.13.23", 176 - "license": "MIT", 177 - "dependencies": { 178 - "@atproto/common-web": "^0.3.1", 179 - "@atproto/lexicon": "^0.4.4", 180 - "@atproto/syntax": "^0.3.1", 181 - "@atproto/xrpc": "^0.6.5", 182 - "await-lock": "^2.2.2", 183 - "multiformats": "^9.9.0", 184 - "tlds": "^1.234.0", 185 - "zod": "^3.23.8" 186 - } 187 - }, 188 - "node_modules/@atproto/bsky/node_modules/@atproto/api/node_modules/@atproto/common-web": { 189 - "version": "0.3.1", 190 - "license": "MIT", 191 - "dependencies": { 192 - "graphemer": "^1.4.0", 193 - "multiformats": "^9.9.0", 194 - "uint8arrays": "3.0.0", 195 - "zod": "^3.23.8" 196 - } 197 - }, 198 - "node_modules/@atproto/bsky/node_modules/@atproto/api/node_modules/@atproto/xrpc": { 199 - "version": "0.6.5", 200 - "license": "MIT", 201 - "dependencies": { 202 - "@atproto/lexicon": "^0.4.4", 203 - "zod": "^3.23.8" 204 - } 205 - }, 206 - "node_modules/@atproto/bsky/node_modules/@atproto/lexicon": { 207 - "version": "0.4.4", 208 - "license": "MIT", 209 - "dependencies": { 210 - "@atproto/common-web": "^0.3.1", 211 - "@atproto/syntax": "^0.3.1", 212 - "iso-datestring-validator": "^2.2.2", 213 - "multiformats": "^9.9.0", 214 - "zod": "^3.23.8" 215 - } 216 - }, 217 - "node_modules/@atproto/bsky/node_modules/@atproto/lexicon/node_modules/@atproto/common-web": { 218 - "version": "0.3.1", 219 - "license": "MIT", 220 - "dependencies": { 221 - "graphemer": "^1.4.0", 222 - "multiformats": "^9.9.0", 223 - "uint8arrays": "3.0.0", 224 - "zod": "^3.23.8" 225 - } 226 - }, 227 - "node_modules/@atproto/bsky/node_modules/@atproto/repo": { 228 - "version": "0.6.0", 229 - "license": "MIT", 230 - "dependencies": { 231 - "@atproto/common": "^0.4.5", 232 - "@atproto/common-web": "^0.3.1", 233 - "@atproto/crypto": "^0.4.2", 234 - "@atproto/lexicon": "^0.4.4", 235 - "@ipld/car": "^3.2.3", 236 - "@ipld/dag-cbor": "^7.0.0", 237 - "multiformats": "^9.9.0", 238 - "uint8arrays": "3.0.0", 239 - "zod": "^3.23.8" 240 - } 241 - }, 242 - "node_modules/@atproto/bsky/node_modules/@atproto/repo/node_modules/@atproto/common-web": { 243 - "version": "0.3.1", 244 - "license": "MIT", 245 - "dependencies": { 246 - "graphemer": "^1.4.0", 247 - "multiformats": "^9.9.0", 248 - "uint8arrays": "3.0.0", 249 - "zod": "^3.23.8" 250 - } 251 - }, 252 - "node_modules/@atproto/bsky/node_modules/@atproto/syntax": { 253 - "version": "0.3.1", 254 - "license": "MIT" 255 - }, 256 - "node_modules/@atproto/bsky/node_modules/@atproto/xrpc-server": { 257 - "version": "0.7.4", 258 - "license": "MIT", 259 - "dependencies": { 260 - "@atproto/common": "^0.4.5", 261 - "@atproto/crypto": "^0.4.2", 262 - "@atproto/lexicon": "^0.4.4", 263 - "@atproto/xrpc": "^0.6.5", 264 - "cbor-x": "^1.5.1", 265 - "express": "^4.17.2", 266 - "http-errors": "^2.0.0", 267 - "mime-types": "^2.1.35", 268 - "rate-limiter-flexible": "^2.4.1", 269 - "uint8arrays": "3.0.0", 270 - "ws": "^8.12.0", 271 - "zod": "^3.23.8" 272 - } 273 - }, 274 - "node_modules/@atproto/bsky/node_modules/@atproto/xrpc-server/node_modules/@atproto/xrpc": { 275 - "version": "0.6.5", 276 - "license": "MIT", 277 - "dependencies": { 278 - "@atproto/lexicon": "^0.4.4", 279 - "zod": "^3.23.8" 280 - } 281 - }, 282 - "node_modules/@atproto/bsky/node_modules/pino": { 283 - "version": "8.21.0", 284 - "license": "MIT", 285 - "dependencies": { 286 - "atomic-sleep": "^1.0.0", 287 - "fast-redact": "^3.1.1", 288 - "on-exit-leak-free": "^2.1.0", 289 - "pino-abstract-transport": "^1.2.0", 290 - "pino-std-serializers": "^6.0.0", 291 - "process-warning": "^3.0.0", 292 - "quick-format-unescaped": "^4.0.3", 293 - "real-require": "^0.2.0", 294 - "safe-stable-stringify": "^2.3.1", 295 - "sonic-boom": "^3.7.0", 296 - "thread-stream": "^2.6.0" 297 - }, 298 - "bin": { 299 - "pino": "bin.js" 300 - } 301 - }, 302 - "node_modules/@atproto/bsky/node_modules/pino/node_modules/pino-abstract-transport": { 303 - "version": "1.2.0", 304 - "license": "MIT", 305 - "dependencies": { 306 - "readable-stream": "^4.0.0", 307 - "split2": "^4.0.0" 308 - } 309 - }, 310 - "node_modules/@atproto/bsky/node_modules/pino/node_modules/pino-std-serializers": { 311 - "version": "6.2.2", 312 - "license": "MIT" 313 - }, 314 - "node_modules/@atproto/bsky/node_modules/pino/node_modules/process-warning": { 315 - "version": "3.0.0", 316 - "license": "MIT" 317 - }, 318 - "node_modules/@atproto/bsky/node_modules/pino/node_modules/sonic-boom": { 319 - "version": "3.8.1", 320 - "license": "MIT", 321 - "dependencies": { 322 - "atomic-sleep": "^1.0.0" 323 - } 324 - }, 325 - "node_modules/@atproto/bsky/node_modules/pino/node_modules/thread-stream": { 326 - "version": "2.7.0", 327 - "license": "MIT", 328 - "dependencies": { 329 - "real-require": "^0.2.0" 330 - } 331 - }, 332 - "node_modules/@atproto/common": { 333 - "version": "0.4.5", 334 - "license": "MIT", 335 - "dependencies": { 336 - "@atproto/common-web": "^0.3.1", 337 - "@ipld/dag-cbor": "^7.0.3", 338 - "cbor-x": "^1.5.1", 339 - "iso-datestring-validator": "^2.2.2", 340 - "multiformats": "^9.9.0", 341 - "pino": "^8.21.0" 342 - } 343 - }, 344 - "node_modules/@atproto/common-web": { 345 - "version": "0.4.2", 346 - "license": "MIT", 347 - "dependencies": { 348 - "graphemer": "^1.4.0", 349 - "multiformats": "^9.9.0", 350 - "uint8arrays": "3.0.0", 351 - "zod": "^3.23.8" 352 - } 353 - }, 354 - "node_modules/@atproto/common/node_modules/@atproto/common-web": { 355 - "version": "0.3.1", 356 - "license": "MIT", 357 - "dependencies": { 358 - "graphemer": "^1.4.0", 359 - "multiformats": "^9.9.0", 360 - "uint8arrays": "3.0.0", 361 - "zod": "^3.23.8" 362 - } 363 - }, 364 - "node_modules/@atproto/common/node_modules/pino": { 365 - "version": "8.21.0", 366 - "license": "MIT", 367 - "dependencies": { 368 - "atomic-sleep": "^1.0.0", 369 - "fast-redact": "^3.1.1", 370 - "on-exit-leak-free": "^2.1.0", 371 - "pino-abstract-transport": "^1.2.0", 372 - "pino-std-serializers": "^6.0.0", 373 - "process-warning": "^3.0.0", 374 - "quick-format-unescaped": "^4.0.3", 375 - "real-require": "^0.2.0", 376 - "safe-stable-stringify": "^2.3.1", 377 - "sonic-boom": "^3.7.0", 378 - "thread-stream": "^2.6.0" 379 - }, 380 - "bin": { 381 - "pino": "bin.js" 382 - } 383 - }, 384 - "node_modules/@atproto/common/node_modules/pino/node_modules/pino-abstract-transport": { 385 - "version": "1.2.0", 386 - "license": "MIT", 387 - "dependencies": { 388 - "readable-stream": "^4.0.0", 389 - "split2": "^4.0.0" 390 - } 391 - }, 392 - "node_modules/@atproto/common/node_modules/pino/node_modules/pino-std-serializers": { 393 - "version": "6.2.2", 394 - "license": "MIT" 395 - }, 396 - "node_modules/@atproto/common/node_modules/pino/node_modules/process-warning": { 397 - "version": "3.0.0", 398 - "license": "MIT" 399 - }, 400 - "node_modules/@atproto/common/node_modules/pino/node_modules/sonic-boom": { 401 - "version": "3.8.1", 402 - "license": "MIT", 403 - "dependencies": { 404 - "atomic-sleep": "^1.0.0" 405 - } 406 - }, 407 - "node_modules/@atproto/common/node_modules/pino/node_modules/thread-stream": { 408 - "version": "2.7.0", 409 - "license": "MIT", 410 - "dependencies": { 411 - "real-require": "^0.2.0" 412 - } 413 - }, 414 - "node_modules/@atproto/crypto": { 415 - "version": "0.4.2", 416 - "license": "MIT", 417 - "dependencies": { 418 - "@noble/curves": "^1.1.0", 419 - "@noble/hashes": "^1.3.1", 420 - "uint8arrays": "3.0.0" 421 - } 422 - }, 423 - "node_modules/@atproto/identity": { 424 - "version": "0.4.3", 425 - "license": "MIT", 426 - "dependencies": { 427 - "@atproto/common-web": "^0.3.1", 428 - "@atproto/crypto": "^0.4.2", 429 - "axios": "^0.27.2" 430 - } 431 - }, 432 - "node_modules/@atproto/identity/node_modules/@atproto/common-web": { 433 - "version": "0.3.1", 434 - "license": "MIT", 435 - "dependencies": { 436 - "graphemer": "^1.4.0", 437 - "multiformats": "^9.9.0", 438 - "uint8arrays": "3.0.0", 439 - "zod": "^3.23.8" 440 - } 441 - }, 442 - "node_modules/@atproto/lexicon": { 443 - "version": "0.4.11", 444 - "license": "MIT", 445 - "dependencies": { 446 - "@atproto/common-web": "^0.4.2", 447 - "@atproto/syntax": "^0.4.0", 448 - "iso-datestring-validator": "^2.2.2", 449 - "multiformats": "^9.9.0", 450 - "zod": "^3.23.8" 451 - } 452 - }, 453 - "node_modules/@atproto/lexicon/node_modules/@atproto/syntax": { 454 - "version": "0.4.0", 455 - "license": "MIT" 456 - }, 457 - "node_modules/@atproto/ozone": { 458 - "version": "0.1.121", 459 - "license": "MIT", 460 - "dependencies": { 461 - "@atproto/api": "^0.15.16", 462 - "@atproto/common": "^0.4.11", 463 - "@atproto/crypto": "^0.4.4", 464 - "@atproto/identity": "^0.4.8", 465 - "@atproto/lexicon": "^0.4.11", 466 - "@atproto/syntax": "^0.4.0", 467 - "@atproto/xrpc": "^0.7.0", 468 - "@atproto/xrpc-server": "^0.8.0", 469 - "@did-plc/lib": "^0.0.1", 470 - "compression": "^1.7.4", 471 - "cors": "^2.8.5", 472 - "express": "^4.17.2", 473 - "http-terminator": "^3.2.0", 474 - "kysely": "^0.22.0", 475 - "lande": "^1.0.10", 476 - "multiformats": "^9.9.0", 477 - "p-queue": "^6.6.2", 478 - "pg": "^8.10.0", 479 - "pino-http": "^8.2.1", 480 - "structured-headers": "^1.0.1", 481 - "typed-emitter": "^2.1.0", 482 - "uint8arrays": "3.0.0", 483 - "undici": "^6.14.1", 484 - "ws": "^8.12.0" 485 - }, 486 - "engines": { 487 - "node": ">=18.7.0" 488 - } 489 - }, 490 - "node_modules/@atproto/ozone/node_modules/@atproto/api": { 491 - "version": "0.15.16", 492 - "license": "MIT", 493 - "dependencies": { 494 - "@atproto/common-web": "^0.4.2", 495 - "@atproto/lexicon": "^0.4.11", 496 - "@atproto/syntax": "^0.4.0", 497 - "@atproto/xrpc": "^0.7.0", 498 - "await-lock": "^2.2.2", 499 - "multiformats": "^9.9.0", 500 - "tlds": "^1.234.0", 501 - "zod": "^3.23.8" 502 - } 503 - }, 504 - "node_modules/@atproto/ozone/node_modules/@atproto/common": { 505 - "version": "0.4.11", 506 - "license": "MIT", 507 - "dependencies": { 508 - "@atproto/common-web": "^0.4.2", 509 - "@ipld/dag-cbor": "^7.0.3", 510 - "cbor-x": "^1.5.1", 511 - "iso-datestring-validator": "^2.2.2", 512 - "multiformats": "^9.9.0", 513 - "pino": "^8.21.0" 514 - }, 515 - "engines": { 516 - "node": ">=18.7.0" 517 - } 518 - }, 519 - "node_modules/@atproto/ozone/node_modules/@atproto/common/node_modules/pino": { 520 - "version": "8.21.0", 521 - "license": "MIT", 522 - "dependencies": { 523 - "atomic-sleep": "^1.0.0", 524 - "fast-redact": "^3.1.1", 525 - "on-exit-leak-free": "^2.1.0", 526 - "pino-abstract-transport": "^1.2.0", 527 - "pino-std-serializers": "^6.0.0", 528 - "process-warning": "^3.0.0", 529 - "quick-format-unescaped": "^4.0.3", 530 - "real-require": "^0.2.0", 531 - "safe-stable-stringify": "^2.3.1", 532 - "sonic-boom": "^3.7.0", 533 - "thread-stream": "^2.6.0" 534 - }, 535 - "bin": { 536 - "pino": "bin.js" 537 - } 538 - }, 539 - "node_modules/@atproto/ozone/node_modules/@atproto/common/node_modules/pino/node_modules/pino-abstract-transport": { 540 - "version": "1.2.0", 541 - "license": "MIT", 542 - "dependencies": { 543 - "readable-stream": "^4.0.0", 544 - "split2": "^4.0.0" 545 - } 546 - }, 547 - "node_modules/@atproto/ozone/node_modules/@atproto/common/node_modules/pino/node_modules/pino-std-serializers": { 548 - "version": "6.2.2", 549 - "license": "MIT" 550 - }, 551 - "node_modules/@atproto/ozone/node_modules/@atproto/common/node_modules/pino/node_modules/process-warning": { 552 - "version": "3.0.0", 553 - "license": "MIT" 554 - }, 555 - "node_modules/@atproto/ozone/node_modules/@atproto/common/node_modules/pino/node_modules/sonic-boom": { 556 - "version": "3.8.1", 557 - "license": "MIT", 558 - "dependencies": { 559 - "atomic-sleep": "^1.0.0" 560 - } 561 - }, 562 - "node_modules/@atproto/ozone/node_modules/@atproto/common/node_modules/pino/node_modules/thread-stream": { 563 - "version": "2.7.0", 564 - "license": "MIT", 565 - "dependencies": { 566 - "real-require": "^0.2.0" 567 - } 568 - }, 569 - "node_modules/@atproto/ozone/node_modules/@atproto/crypto": { 570 - "version": "0.4.4", 571 - "license": "MIT", 572 - "dependencies": { 573 - "@noble/curves": "^1.7.0", 574 - "@noble/hashes": "^1.6.1", 575 - "uint8arrays": "3.0.0" 576 - }, 577 - "engines": { 578 - "node": ">=18.7.0" 579 - } 580 - }, 581 - "node_modules/@atproto/ozone/node_modules/@atproto/identity": { 582 - "version": "0.4.8", 583 - "license": "MIT", 584 - "dependencies": { 585 - "@atproto/common-web": "^0.4.2", 586 - "@atproto/crypto": "^0.4.4" 587 - }, 588 - "engines": { 589 - "node": ">=18.7.0" 590 - } 591 - }, 592 - "node_modules/@atproto/ozone/node_modules/@atproto/syntax": { 593 - "version": "0.4.0", 594 - "license": "MIT" 595 - }, 596 - "node_modules/@atproto/ozone/node_modules/@atproto/xrpc": { 597 - "version": "0.7.0", 598 - "license": "MIT", 599 - "dependencies": { 600 - "@atproto/lexicon": "^0.4.11", 601 - "zod": "^3.23.8" 602 - } 603 - }, 604 - "node_modules/@atproto/ozone/node_modules/@atproto/xrpc-server": { 605 - "version": "0.8.0", 606 - "license": "MIT", 607 - "dependencies": { 608 - "@atproto/common": "^0.4.11", 609 - "@atproto/crypto": "^0.4.4", 610 - "@atproto/lexicon": "^0.4.11", 611 - "@atproto/xrpc": "^0.7.0", 612 - "cbor-x": "^1.5.1", 613 - "express": "^4.17.2", 614 - "http-errors": "^2.0.0", 615 - "mime-types": "^2.1.35", 616 - "rate-limiter-flexible": "^2.4.1", 617 - "uint8arrays": "3.0.0", 618 - "ws": "^8.12.0", 619 - "zod": "^3.23.8" 620 - }, 621 - "engines": { 622 - "node": ">=18.7.0" 623 - } 624 - }, 625 - "node_modules/@atproto/ozone/node_modules/undici": { 626 - "version": "6.21.3", 627 - "license": "MIT", 628 - "engines": { 629 - "node": ">=18.17" 630 - } 631 - }, 632 - "node_modules/@atproto/repo": { 633 - "version": "0.6.5", 634 - "license": "MIT", 635 - "dependencies": { 636 - "@atproto/common": "^0.4.8", 637 - "@atproto/common-web": "^0.4.0", 638 - "@atproto/crypto": "^0.4.4", 639 - "@atproto/lexicon": "^0.4.7", 640 - "@ipld/car": "^3.2.3", 641 - "@ipld/dag-cbor": "^7.0.0", 642 - "multiformats": "^9.9.0", 643 - "uint8arrays": "3.0.0", 644 - "zod": "^3.23.8" 645 - }, 646 - "engines": { 647 - "node": ">=18.7.0" 648 - } 649 - }, 650 - "node_modules/@atproto/repo/node_modules/@atproto/common": { 651 - "version": "0.4.11", 652 - "license": "MIT", 653 - "dependencies": { 654 - "@atproto/common-web": "^0.4.2", 655 - "@ipld/dag-cbor": "^7.0.3", 656 - "cbor-x": "^1.5.1", 657 - "iso-datestring-validator": "^2.2.2", 658 - "multiformats": "^9.9.0", 659 - "pino": "^8.21.0" 660 - }, 661 - "engines": { 662 - "node": ">=18.7.0" 663 - } 664 - }, 665 - "node_modules/@atproto/repo/node_modules/@atproto/common/node_modules/pino": { 666 - "version": "8.21.0", 667 - "license": "MIT", 668 - "dependencies": { 669 - "atomic-sleep": "^1.0.0", 670 - "fast-redact": "^3.1.1", 671 - "on-exit-leak-free": "^2.1.0", 672 - "pino-abstract-transport": "^1.2.0", 673 - "pino-std-serializers": "^6.0.0", 674 - "process-warning": "^3.0.0", 675 - "quick-format-unescaped": "^4.0.3", 676 - "real-require": "^0.2.0", 677 - "safe-stable-stringify": "^2.3.1", 678 - "sonic-boom": "^3.7.0", 679 - "thread-stream": "^2.6.0" 680 - }, 681 - "bin": { 682 - "pino": "bin.js" 683 - } 684 - }, 685 - "node_modules/@atproto/repo/node_modules/@atproto/common/node_modules/pino/node_modules/pino-abstract-transport": { 686 - "version": "1.2.0", 687 - "license": "MIT", 688 - "dependencies": { 689 - "readable-stream": "^4.0.0", 690 - "split2": "^4.0.0" 691 - } 692 - }, 693 - "node_modules/@atproto/repo/node_modules/@atproto/common/node_modules/pino/node_modules/pino-std-serializers": { 694 - "version": "6.2.2", 695 - "license": "MIT" 696 - }, 697 - "node_modules/@atproto/repo/node_modules/@atproto/common/node_modules/pino/node_modules/process-warning": { 698 - "version": "3.0.0", 699 - "license": "MIT" 700 - }, 701 - "node_modules/@atproto/repo/node_modules/@atproto/common/node_modules/pino/node_modules/sonic-boom": { 702 - "version": "3.8.1", 703 - "license": "MIT", 704 - "dependencies": { 705 - "atomic-sleep": "^1.0.0" 706 - } 707 - }, 708 - "node_modules/@atproto/repo/node_modules/@atproto/common/node_modules/pino/node_modules/thread-stream": { 709 - "version": "2.7.0", 710 - "license": "MIT", 711 - "dependencies": { 712 - "real-require": "^0.2.0" 713 - } 714 - }, 715 - "node_modules/@atproto/repo/node_modules/@atproto/crypto": { 716 - "version": "0.4.4", 717 - "license": "MIT", 718 - "dependencies": { 719 - "@noble/curves": "^1.7.0", 720 - "@noble/hashes": "^1.6.1", 721 - "uint8arrays": "3.0.0" 722 - }, 723 - "engines": { 724 - "node": ">=18.7.0" 725 - } 726 - }, 727 - "node_modules/@atproto/sync": { 728 - "version": "0.1.7", 729 - "license": "MIT", 730 - "dependencies": { 731 - "@atproto/common": "^0.4.5", 732 - "@atproto/identity": "^0.4.3", 733 - "@atproto/lexicon": "^0.4.4", 734 - "@atproto/repo": "^0.6.0", 735 - "@atproto/syntax": "^0.3.1", 736 - "@atproto/xrpc-server": "^0.7.4", 737 - "multiformats": "^9.9.0", 738 - "p-queue": "^6.6.2", 739 - "ws": "^8.12.0" 740 - } 741 - }, 742 - "node_modules/@atproto/sync/node_modules/@atproto/lexicon": { 743 - "version": "0.4.4", 744 - "license": "MIT", 745 - "dependencies": { 746 - "@atproto/common-web": "^0.3.1", 747 - "@atproto/syntax": "^0.3.1", 748 - "iso-datestring-validator": "^2.2.2", 749 - "multiformats": "^9.9.0", 750 - "zod": "^3.23.8" 751 - } 752 - }, 753 - "node_modules/@atproto/sync/node_modules/@atproto/lexicon/node_modules/@atproto/common-web": { 754 - "version": "0.3.1", 755 - "license": "MIT", 756 - "dependencies": { 757 - "graphemer": "^1.4.0", 758 - "multiformats": "^9.9.0", 759 - "uint8arrays": "3.0.0", 760 - "zod": "^3.23.8" 761 - } 762 - }, 763 - "node_modules/@atproto/sync/node_modules/@atproto/repo": { 764 - "version": "0.6.0", 765 - "license": "MIT", 766 - "dependencies": { 767 - "@atproto/common": "^0.4.5", 768 - "@atproto/common-web": "^0.3.1", 769 - "@atproto/crypto": "^0.4.2", 770 - "@atproto/lexicon": "^0.4.4", 771 - "@ipld/car": "^3.2.3", 772 - "@ipld/dag-cbor": "^7.0.0", 773 - "multiformats": "^9.9.0", 774 - "uint8arrays": "3.0.0", 775 - "zod": "^3.23.8" 776 - } 777 - }, 778 - "node_modules/@atproto/sync/node_modules/@atproto/repo/node_modules/@atproto/common-web": { 779 - "version": "0.3.1", 780 - "license": "MIT", 781 - "dependencies": { 782 - "graphemer": "^1.4.0", 783 - "multiformats": "^9.9.0", 784 - "uint8arrays": "3.0.0", 785 - "zod": "^3.23.8" 786 - } 787 - }, 788 - "node_modules/@atproto/sync/node_modules/@atproto/syntax": { 789 - "version": "0.3.1", 790 - "license": "MIT" 791 - }, 792 - "node_modules/@atproto/sync/node_modules/@atproto/xrpc-server": { 793 - "version": "0.7.4", 794 - "license": "MIT", 795 - "dependencies": { 796 - "@atproto/common": "^0.4.5", 797 - "@atproto/crypto": "^0.4.2", 798 - "@atproto/lexicon": "^0.4.4", 799 - "@atproto/xrpc": "^0.6.5", 800 - "cbor-x": "^1.5.1", 801 - "express": "^4.17.2", 802 - "http-errors": "^2.0.0", 803 - "mime-types": "^2.1.35", 804 - "rate-limiter-flexible": "^2.4.1", 805 - "uint8arrays": "3.0.0", 806 - "ws": "^8.12.0", 807 - "zod": "^3.23.8" 808 - } 809 - }, 810 - "node_modules/@atproto/sync/node_modules/@atproto/xrpc-server/node_modules/@atproto/xrpc": { 811 - "version": "0.6.5", 812 - "license": "MIT", 813 - "dependencies": { 814 - "@atproto/lexicon": "^0.4.4", 815 - "zod": "^3.23.8" 816 - } 817 - }, 818 - "node_modules/@atproto/syntax": { 819 - "version": "0.3.4", 820 - "license": "MIT" 821 - }, 822 - "node_modules/@atproto/xrpc": { 823 - "version": "0.6.12", 824 - "license": "MIT", 825 - "dependencies": { 826 - "@atproto/lexicon": "^0.4.10", 827 - "zod": "^3.23.8" 828 - } 829 - }, 830 - "node_modules/@atproto/xrpc-server": { 831 - "version": "0.7.19", 832 - "license": "MIT", 833 - "dependencies": { 834 - "@atproto/common": "^0.4.11", 835 - "@atproto/crypto": "^0.4.4", 836 - "@atproto/lexicon": "^0.4.11", 837 - "@atproto/xrpc": "^0.7.0", 838 - "cbor-x": "^1.5.1", 839 - "express": "^4.17.2", 840 - "http-errors": "^2.0.0", 841 - "mime-types": "^2.1.35", 842 - "rate-limiter-flexible": "^2.4.1", 843 - "uint8arrays": "3.0.0", 844 - "ws": "^8.12.0", 845 - "zod": "^3.23.8" 846 - }, 847 - "engines": { 848 - "node": ">=18.7.0" 849 - } 850 - }, 851 - "node_modules/@atproto/xrpc-server/node_modules/@atproto/common": { 852 - "version": "0.4.11", 853 - "license": "MIT", 854 - "dependencies": { 855 - "@atproto/common-web": "^0.4.2", 856 - "@ipld/dag-cbor": "^7.0.3", 857 - "cbor-x": "^1.5.1", 858 - "iso-datestring-validator": "^2.2.2", 859 - "multiformats": "^9.9.0", 860 - "pino": "^8.21.0" 861 - }, 862 - "engines": { 863 - "node": ">=18.7.0" 864 - } 865 - }, 866 - "node_modules/@atproto/xrpc-server/node_modules/@atproto/common/node_modules/pino": { 867 - "version": "8.21.0", 868 - "license": "MIT", 869 - "dependencies": { 870 - "atomic-sleep": "^1.0.0", 871 - "fast-redact": "^3.1.1", 872 - "on-exit-leak-free": "^2.1.0", 873 - "pino-abstract-transport": "^1.2.0", 874 - "pino-std-serializers": "^6.0.0", 875 - "process-warning": "^3.0.0", 876 - "quick-format-unescaped": "^4.0.3", 877 - "real-require": "^0.2.0", 878 - "safe-stable-stringify": "^2.3.1", 879 - "sonic-boom": "^3.7.0", 880 - "thread-stream": "^2.6.0" 881 - }, 882 - "bin": { 883 - "pino": "bin.js" 884 - } 885 - }, 886 - "node_modules/@atproto/xrpc-server/node_modules/@atproto/common/node_modules/pino/node_modules/pino-abstract-transport": { 887 - "version": "1.2.0", 888 - "license": "MIT", 889 - "dependencies": { 890 - "readable-stream": "^4.0.0", 891 - "split2": "^4.0.0" 892 - } 893 - }, 894 - "node_modules/@atproto/xrpc-server/node_modules/@atproto/common/node_modules/pino/node_modules/pino-std-serializers": { 895 - "version": "6.2.2", 896 - "license": "MIT" 897 - }, 898 - "node_modules/@atproto/xrpc-server/node_modules/@atproto/common/node_modules/pino/node_modules/process-warning": { 899 - "version": "3.0.0", 900 - "license": "MIT" 901 - }, 902 - "node_modules/@atproto/xrpc-server/node_modules/@atproto/common/node_modules/pino/node_modules/sonic-boom": { 903 - "version": "3.8.1", 904 - "license": "MIT", 905 - "dependencies": { 906 - "atomic-sleep": "^1.0.0" 907 - } 908 - }, 909 - "node_modules/@atproto/xrpc-server/node_modules/@atproto/common/node_modules/pino/node_modules/thread-stream": { 910 - "version": "2.7.0", 911 - "license": "MIT", 912 - "dependencies": { 913 - "real-require": "^0.2.0" 914 - } 915 - }, 916 - "node_modules/@atproto/xrpc-server/node_modules/@atproto/crypto": { 917 - "version": "0.4.4", 918 - "license": "MIT", 919 - "dependencies": { 920 - "@noble/curves": "^1.7.0", 921 - "@noble/hashes": "^1.6.1", 922 - "uint8arrays": "3.0.0" 923 - }, 924 - "engines": { 925 - "node": ">=18.7.0" 926 - } 927 - }, 928 - "node_modules/@atproto/xrpc-server/node_modules/@atproto/xrpc": { 929 - "version": "0.7.0", 930 - "license": "MIT", 931 - "dependencies": { 932 - "@atproto/lexicon": "^0.4.11", 933 - "zod": "^3.23.8" 934 - } 935 - }, 936 - "node_modules/@babel/code-frame": { 937 - "version": "7.26.2", 938 - "dev": true, 939 - "license": "MIT", 940 - "dependencies": { 941 - "@babel/helper-validator-identifier": "^7.25.9", 942 - "js-tokens": "^4.0.0", 943 - "picocolors": "^1.0.0" 944 - }, 945 - "engines": { 946 - "node": ">=6.9.0" 947 - } 948 - }, 949 - "node_modules/@babel/generator": { 950 - "version": "7.17.7", 951 - "dev": true, 952 - "license": "MIT", 953 - "dependencies": { 954 - "@babel/types": "^7.17.0", 955 - "jsesc": "^2.5.1", 956 - "source-map": "^0.5.0" 957 - }, 958 - "engines": { 959 - "node": ">=6.9.0" 960 - } 961 - }, 962 - "node_modules/@babel/generator/node_modules/@babel/types": { 963 - "version": "7.26.3", 964 - "dev": true, 965 - "license": "MIT", 966 - "dependencies": { 967 - "@babel/helper-string-parser": "^7.25.9", 968 - "@babel/helper-validator-identifier": "^7.25.9" 969 - }, 970 - "engines": { 971 - "node": ">=6.9.0" 972 - } 973 - }, 974 - "node_modules/@babel/helper-environment-visitor": { 975 - "version": "7.24.7", 976 - "dev": true, 977 - "license": "MIT", 978 - "dependencies": { 979 - "@babel/types": "^7.24.7" 980 - }, 981 - "engines": { 982 - "node": ">=6.9.0" 983 - } 984 - }, 985 - "node_modules/@babel/helper-environment-visitor/node_modules/@babel/types": { 986 - "version": "7.26.3", 987 - "dev": true, 988 - "license": "MIT", 989 - "dependencies": { 990 - "@babel/helper-string-parser": "^7.25.9", 991 - "@babel/helper-validator-identifier": "^7.25.9" 992 - }, 993 - "engines": { 994 - "node": ">=6.9.0" 995 - } 996 - }, 997 - "node_modules/@babel/helper-function-name": { 998 - "version": "7.24.7", 999 - "dev": true, 1000 - "license": "MIT", 1001 - "dependencies": { 1002 - "@babel/template": "^7.24.7", 1003 - "@babel/types": "^7.24.7" 1004 - }, 1005 - "engines": { 1006 - "node": ">=6.9.0" 1007 - } 1008 - }, 1009 - "node_modules/@babel/helper-function-name/node_modules/@babel/types": { 1010 - "version": "7.26.3", 1011 - "dev": true, 1012 - "license": "MIT", 1013 - "dependencies": { 1014 - "@babel/helper-string-parser": "^7.25.9", 1015 - "@babel/helper-validator-identifier": "^7.25.9" 1016 - }, 1017 - "engines": { 1018 - "node": ">=6.9.0" 1019 - } 1020 - }, 1021 - "node_modules/@babel/helper-hoist-variables": { 1022 - "version": "7.24.7", 1023 - "dev": true, 1024 - "license": "MIT", 1025 - "dependencies": { 1026 - "@babel/types": "^7.24.7" 1027 - }, 1028 - "engines": { 1029 - "node": ">=6.9.0" 1030 - } 1031 - }, 1032 - "node_modules/@babel/helper-hoist-variables/node_modules/@babel/types": { 1033 - "version": "7.26.3", 1034 - "dev": true, 1035 - "license": "MIT", 1036 - "dependencies": { 1037 - "@babel/helper-string-parser": "^7.25.9", 1038 - "@babel/helper-validator-identifier": "^7.25.9" 1039 - }, 1040 - "engines": { 1041 - "node": ">=6.9.0" 1042 - } 1043 - }, 1044 - "node_modules/@babel/helper-split-export-declaration": { 1045 - "version": "7.24.7", 1046 - "dev": true, 1047 - "license": "MIT", 1048 - "dependencies": { 1049 - "@babel/types": "^7.24.7" 1050 - }, 1051 - "engines": { 1052 - "node": ">=6.9.0" 1053 - } 1054 - }, 1055 - "node_modules/@babel/helper-split-export-declaration/node_modules/@babel/types": { 1056 - "version": "7.26.3", 1057 - "dev": true, 1058 - "license": "MIT", 1059 - "dependencies": { 1060 - "@babel/helper-string-parser": "^7.25.9", 1061 - "@babel/helper-validator-identifier": "^7.25.9" 1062 - }, 1063 - "engines": { 1064 - "node": ">=6.9.0" 1065 - } 1066 - }, 1067 - "node_modules/@babel/helper-string-parser": { 1068 - "version": "7.25.9", 1069 - "dev": true, 1070 - "license": "MIT", 1071 - "engines": { 1072 - "node": ">=6.9.0" 1073 - } 1074 - }, 1075 - "node_modules/@babel/helper-validator-identifier": { 1076 - "version": "7.25.9", 1077 - "dev": true, 1078 - "license": "MIT", 1079 - "engines": { 1080 - "node": ">=6.9.0" 1081 - } 1082 - }, 1083 - "node_modules/@babel/parser": { 1084 - "version": "7.26.3", 1085 - "dev": true, 1086 - "license": "MIT", 1087 - "dependencies": { 1088 - "@babel/types": "^7.26.3" 1089 - }, 1090 - "bin": { 1091 - "parser": "bin/babel-parser.js" 1092 - }, 1093 - "engines": { 1094 - "node": ">=6.0.0" 1095 - } 1096 - }, 1097 - "node_modules/@babel/parser/node_modules/@babel/types": { 1098 - "version": "7.26.3", 1099 - "dev": true, 1100 - "license": "MIT", 1101 - "dependencies": { 1102 - "@babel/helper-string-parser": "^7.25.9", 1103 - "@babel/helper-validator-identifier": "^7.25.9" 1104 - }, 1105 - "engines": { 1106 - "node": ">=6.9.0" 1107 - } 1108 - }, 1109 - "node_modules/@babel/template": { 1110 - "version": "7.25.9", 1111 - "dev": true, 1112 - "license": "MIT", 1113 - "dependencies": { 1114 - "@babel/code-frame": "^7.25.9", 1115 - "@babel/parser": "^7.25.9", 1116 - "@babel/types": "^7.25.9" 1117 - }, 1118 - "engines": { 1119 - "node": ">=6.9.0" 1120 - } 1121 - }, 1122 - "node_modules/@babel/template/node_modules/@babel/types": { 1123 - "version": "7.26.3", 1124 - "dev": true, 1125 - "license": "MIT", 1126 - "dependencies": { 1127 - "@babel/helper-string-parser": "^7.25.9", 1128 - "@babel/helper-validator-identifier": "^7.25.9" 1129 - }, 1130 - "engines": { 1131 - "node": ">=6.9.0" 1132 - } 1133 - }, 1134 - "node_modules/@babel/traverse": { 1135 - "version": "7.23.2", 1136 - "dev": true, 1137 - "license": "MIT", 1138 - "dependencies": { 1139 - "@babel/code-frame": "^7.22.13", 1140 - "@babel/generator": "^7.23.0", 1141 - "@babel/helper-environment-visitor": "^7.22.20", 1142 - "@babel/helper-function-name": "^7.23.0", 1143 - "@babel/helper-hoist-variables": "^7.22.5", 1144 - "@babel/helper-split-export-declaration": "^7.22.6", 1145 - "@babel/parser": "^7.23.0", 1146 - "@babel/types": "^7.23.0", 1147 - "debug": "^4.1.0", 1148 - "globals": "^11.1.0" 1149 - }, 1150 - "engines": { 1151 - "node": ">=6.9.0" 1152 - } 1153 - }, 1154 - "node_modules/@babel/traverse/node_modules/@babel/generator": { 1155 - "version": "7.26.3", 1156 - "dev": true, 1157 - "license": "MIT", 1158 - "dependencies": { 1159 - "@babel/parser": "^7.26.3", 1160 - "@babel/types": "^7.26.3", 1161 - "@jridgewell/gen-mapping": "^0.3.5", 1162 - "@jridgewell/trace-mapping": "^0.3.25", 1163 - "jsesc": "^3.0.2" 1164 - }, 1165 - "engines": { 1166 - "node": ">=6.9.0" 1167 - } 1168 - }, 1169 - "node_modules/@babel/traverse/node_modules/@babel/generator/node_modules/jsesc": { 1170 - "version": "3.1.0", 1171 - "dev": true, 1172 - "license": "MIT", 1173 - "bin": { 1174 - "jsesc": "bin/jsesc" 1175 - }, 1176 - "engines": { 1177 - "node": ">=6" 1178 - } 1179 - }, 1180 - "node_modules/@babel/traverse/node_modules/@babel/types": { 1181 - "version": "7.26.3", 1182 - "dev": true, 1183 - "license": "MIT", 1184 - "dependencies": { 1185 - "@babel/helper-string-parser": "^7.25.9", 1186 - "@babel/helper-validator-identifier": "^7.25.9" 1187 - }, 1188 - "engines": { 1189 - "node": ">=6.9.0" 1190 - } 1191 - }, 1192 - "node_modules/@babel/traverse/node_modules/globals": { 1193 - "version": "11.12.0", 1194 - "dev": true, 1195 - "license": "MIT", 1196 - "engines": { 1197 - "node": ">=4" 1198 - } 1199 - }, 1200 - "node_modules/@babel/types": { 1201 - "version": "7.17.0", 1202 - "dev": true, 1203 - "license": "MIT", 1204 - "dependencies": { 1205 - "@babel/helper-validator-identifier": "^7.16.7", 1206 - "to-fast-properties": "^2.0.0" 1207 - }, 1208 - "engines": { 1209 - "node": ">=6.9.0" 1210 - } 1211 - }, 1212 - "node_modules/@bufbuild/protobuf": { 1213 - "version": "1.10.0", 1214 - "license": "(Apache-2.0 AND BSD-3-Clause)" 1215 - }, 1216 - "node_modules/@cbor-extract/cbor-extract-darwin-arm64": { 1217 - "version": "2.2.0", 1218 - "cpu": [ 1219 - "arm64" 1220 - ], 1221 - "license": "MIT", 1222 - "optional": true, 1223 - "os": [ 1224 - "darwin" 1225 - ] 1226 - }, 1227 - "node_modules/@connectrpc/connect": { 1228 - "version": "1.6.1", 1229 - "license": "Apache-2.0", 1230 - "peerDependencies": { 1231 - "@bufbuild/protobuf": "^1.10.0" 1232 - } 1233 - }, 1234 - "node_modules/@connectrpc/connect-express": { 1235 - "version": "1.6.1", 1236 - "license": "Apache-2.0", 1237 - "engines": { 1238 - "node": ">=16.0.0" 1239 - }, 1240 - "peerDependencies": { 1241 - "@bufbuild/protobuf": "^1.10.0", 1242 - "@connectrpc/connect": "1.6.1", 1243 - "@connectrpc/connect-node": "1.6.1" 1244 - } 1245 - }, 1246 - "node_modules/@connectrpc/connect-node": { 1247 - "version": "1.6.1", 1248 - "license": "Apache-2.0", 1249 - "dependencies": { 1250 - "undici": "^5.28.4" 1251 - }, 1252 - "engines": { 1253 - "node": ">=16.0.0" 1254 - }, 1255 - "peerDependencies": { 1256 - "@bufbuild/protobuf": "^1.10.0", 1257 - "@connectrpc/connect": "1.6.1" 1258 - } 1259 - }, 1260 - "node_modules/@connectrpc/connect-node/node_modules/undici": { 1261 - "version": "5.28.4", 1262 - "license": "MIT", 1263 - "dependencies": { 1264 - "@fastify/busboy": "^2.0.0" 1265 - }, 1266 - "engines": { 1267 - "node": ">=14.0" 1268 - } 1269 - }, 1270 - "node_modules/@did-plc/lib": { 1271 - "version": "0.0.1", 1272 - "license": "MIT", 1273 - "dependencies": { 1274 - "@atproto/common": "0.1.0", 1275 - "@atproto/crypto": "0.1.0", 1276 - "@ipld/dag-cbor": "^7.0.3", 1277 - "axios": "^1.3.4", 1278 - "multiformats": "^9.6.4", 1279 - "uint8arrays": "3.0.0", 1280 - "zod": "^3.14.2" 1281 - } 1282 - }, 1283 - "node_modules/@did-plc/lib/node_modules/@atproto/common": { 1284 - "version": "0.1.0", 1285 - "license": "MIT", 1286 - "dependencies": { 1287 - "@ipld/dag-cbor": "^7.0.3", 1288 - "multiformats": "^9.6.4", 1289 - "pino": "^8.6.1", 1290 - "zod": "^3.14.2" 1291 - } 1292 - }, 1293 - "node_modules/@did-plc/lib/node_modules/@atproto/common/node_modules/pino": { 1294 - "version": "8.21.0", 1295 - "license": "MIT", 1296 - "dependencies": { 1297 - "atomic-sleep": "^1.0.0", 1298 - "fast-redact": "^3.1.1", 1299 - "on-exit-leak-free": "^2.1.0", 1300 - "pino-abstract-transport": "^1.2.0", 1301 - "pino-std-serializers": "^6.0.0", 1302 - "process-warning": "^3.0.0", 1303 - "quick-format-unescaped": "^4.0.3", 1304 - "real-require": "^0.2.0", 1305 - "safe-stable-stringify": "^2.3.1", 1306 - "sonic-boom": "^3.7.0", 1307 - "thread-stream": "^2.6.0" 1308 - }, 1309 - "bin": { 1310 - "pino": "bin.js" 1311 - } 1312 - }, 1313 - "node_modules/@did-plc/lib/node_modules/@atproto/common/node_modules/pino/node_modules/pino-abstract-transport": { 1314 - "version": "1.2.0", 1315 - "license": "MIT", 1316 - "dependencies": { 1317 - "readable-stream": "^4.0.0", 1318 - "split2": "^4.0.0" 1319 - } 1320 - }, 1321 - "node_modules/@did-plc/lib/node_modules/@atproto/common/node_modules/pino/node_modules/pino-std-serializers": { 1322 - "version": "6.2.2", 1323 - "license": "MIT" 1324 - }, 1325 - "node_modules/@did-plc/lib/node_modules/@atproto/common/node_modules/pino/node_modules/process-warning": { 1326 - "version": "3.0.0", 1327 - "license": "MIT" 1328 - }, 1329 - "node_modules/@did-plc/lib/node_modules/@atproto/common/node_modules/pino/node_modules/sonic-boom": { 1330 - "version": "3.8.1", 1331 - "license": "MIT", 1332 - "dependencies": { 1333 - "atomic-sleep": "^1.0.0" 1334 - } 1335 - }, 1336 - "node_modules/@did-plc/lib/node_modules/@atproto/common/node_modules/pino/node_modules/thread-stream": { 1337 - "version": "2.7.0", 1338 - "license": "MIT", 1339 - "dependencies": { 1340 - "real-require": "^0.2.0" 1341 - } 1342 - }, 1343 - "node_modules/@did-plc/lib/node_modules/@atproto/crypto": { 1344 - "version": "0.1.0", 1345 - "license": "MIT", 1346 - "dependencies": { 1347 - "@noble/secp256k1": "^1.7.0", 1348 - "big-integer": "^1.6.51", 1349 - "multiformats": "^9.6.4", 1350 - "one-webcrypto": "^1.0.3", 1351 - "uint8arrays": "3.0.0" 1352 - } 1353 - }, 1354 - "node_modules/@did-plc/lib/node_modules/axios": { 1355 - "version": "1.7.9", 1356 - "license": "MIT", 1357 - "dependencies": { 1358 - "follow-redirects": "^1.15.6", 1359 - "form-data": "^4.0.0", 1360 - "proxy-from-env": "^1.1.0" 1361 - } 1362 - }, 1363 - "node_modules/@esbuild/darwin-arm64": { 1364 - "version": "0.25.5", 1365 - "cpu": [ 1366 - "arm64" 1367 - ], 1368 - "dev": true, 1369 - "license": "MIT", 1370 - "optional": true, 1371 - "os": [ 1372 - "darwin" 1373 - ], 1374 - "engines": { 1375 - "node": ">=18" 1376 - } 1377 - }, 1378 - "node_modules/@eslint-community/eslint-utils": { 1379 - "version": "4.7.0", 1380 - "dev": true, 1381 - "license": "MIT", 1382 - "dependencies": { 1383 - "eslint-visitor-keys": "^3.4.3" 1384 - }, 1385 - "engines": { 1386 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 1387 - }, 1388 - "funding": { 1389 - "url": "https://opencollective.com/eslint" 1390 - }, 1391 - "peerDependencies": { 1392 - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" 1393 - } 1394 - }, 1395 - "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { 1396 - "version": "3.4.3", 1397 - "dev": true, 1398 - "license": "Apache-2.0", 1399 - "engines": { 1400 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 1401 - }, 1402 - "funding": { 1403 - "url": "https://opencollective.com/eslint" 1404 - } 1405 - }, 1406 - "node_modules/@eslint-community/regexpp": { 1407 - "version": "4.12.1", 1408 - "dev": true, 1409 - "license": "MIT", 1410 - "engines": { 1411 - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" 1412 - } 1413 - }, 1414 - "node_modules/@eslint/compat": { 1415 - "version": "1.3.2", 1416 - "dev": true, 1417 - "license": "Apache-2.0", 1418 - "engines": { 1419 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1420 - }, 1421 - "peerDependencies": { 1422 - "eslint": "^8.40 || 9" 1423 - }, 1424 - "peerDependenciesMeta": { 1425 - "eslint": { 1426 - "optional": true 1427 - } 1428 - } 1429 - }, 1430 - "node_modules/@eslint/config-array": { 1431 - "version": "0.20.1", 1432 - "dev": true, 1433 - "license": "Apache-2.0", 1434 - "dependencies": { 1435 - "@eslint/object-schema": "^2.1.6", 1436 - "debug": "^4.3.1", 1437 - "minimatch": "^3.1.2" 1438 - }, 1439 - "engines": { 1440 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1441 - } 1442 - }, 1443 - "node_modules/@eslint/config-helpers": { 1444 - "version": "0.2.3", 1445 - "dev": true, 1446 - "license": "Apache-2.0", 1447 - "engines": { 1448 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1449 - } 1450 - }, 1451 - "node_modules/@eslint/core": { 1452 - "version": "0.14.0", 1453 - "dev": true, 1454 - "license": "Apache-2.0", 1455 - "dependencies": { 1456 - "@types/json-schema": "^7.0.15" 1457 - }, 1458 - "engines": { 1459 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1460 - } 1461 - }, 1462 - "node_modules/@eslint/eslintrc": { 1463 - "version": "3.3.1", 1464 - "dev": true, 1465 - "license": "MIT", 1466 - "dependencies": { 1467 - "ajv": "^6.12.4", 1468 - "debug": "^4.3.2", 1469 - "espree": "^10.0.1", 1470 - "globals": "^14.0.0", 1471 - "ignore": "^5.2.0", 1472 - "import-fresh": "^3.2.1", 1473 - "js-yaml": "^4.1.0", 1474 - "minimatch": "^3.1.2", 1475 - "strip-json-comments": "^3.1.1" 1476 - }, 1477 - "engines": { 1478 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1479 - }, 1480 - "funding": { 1481 - "url": "https://opencollective.com/eslint" 1482 - } 1483 - }, 1484 - "node_modules/@eslint/eslintrc/node_modules/globals": { 1485 - "version": "14.0.0", 1486 - "dev": true, 1487 - "license": "MIT", 1488 - "engines": { 1489 - "node": ">=18" 1490 - }, 1491 - "funding": { 1492 - "url": "https://github.com/sponsors/sindresorhus" 1493 - } 1494 - }, 1495 - "node_modules/@eslint/js": { 1496 - "version": "9.29.0", 1497 - "dev": true, 1498 - "license": "MIT", 1499 - "engines": { 1500 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1501 - }, 1502 - "funding": { 1503 - "url": "https://eslint.org/donate" 1504 - } 1505 - }, 1506 - "node_modules/@eslint/object-schema": { 1507 - "version": "2.1.6", 1508 - "dev": true, 1509 - "license": "Apache-2.0", 1510 - "engines": { 1511 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1512 - } 1513 - }, 1514 - "node_modules/@eslint/plugin-kit": { 1515 - "version": "0.3.2", 1516 - "dev": true, 1517 - "license": "Apache-2.0", 1518 - "dependencies": { 1519 - "@eslint/core": "^0.15.0", 1520 - "levn": "^0.4.1" 1521 - }, 1522 - "engines": { 1523 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1524 - } 1525 - }, 1526 - "node_modules/@eslint/plugin-kit/node_modules/@eslint/core": { 1527 - "version": "0.15.0", 1528 - "dev": true, 1529 - "license": "Apache-2.0", 1530 - "dependencies": { 1531 - "@types/json-schema": "^7.0.15" 1532 - }, 1533 - "engines": { 1534 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1535 - } 1536 - }, 1537 - "node_modules/@fastify/ajv-compiler": { 1538 - "version": "3.6.0", 1539 - "license": "MIT", 1540 - "dependencies": { 1541 - "ajv": "^8.11.0", 1542 - "ajv-formats": "^2.1.1", 1543 - "fast-uri": "^2.0.0" 1544 - } 1545 - }, 1546 - "node_modules/@fastify/ajv-compiler/node_modules/ajv": { 1547 - "version": "8.17.1", 1548 - "license": "MIT", 1549 - "dependencies": { 1550 - "fast-deep-equal": "^3.1.3", 1551 - "fast-uri": "^3.0.1", 1552 - "json-schema-traverse": "^1.0.0", 1553 - "require-from-string": "^2.0.2" 1554 - }, 1555 - "funding": { 1556 - "type": "github", 1557 - "url": "https://github.com/sponsors/epoberezkin" 1558 - } 1559 - }, 1560 - "node_modules/@fastify/ajv-compiler/node_modules/ajv/node_modules/fast-uri": { 1561 - "version": "3.0.3", 1562 - "license": "BSD-3-Clause" 1563 - }, 1564 - "node_modules/@fastify/ajv-compiler/node_modules/ajv/node_modules/json-schema-traverse": { 1565 - "version": "1.0.0", 1566 - "license": "MIT" 1567 - }, 1568 - "node_modules/@fastify/busboy": { 1569 - "version": "2.1.1", 1570 - "license": "MIT", 1571 - "engines": { 1572 - "node": ">=14" 1573 - } 1574 - }, 1575 - "node_modules/@fastify/error": { 1576 - "version": "3.4.1", 1577 - "license": "MIT" 1578 - }, 1579 - "node_modules/@fastify/fast-json-stringify-compiler": { 1580 - "version": "4.3.0", 1581 - "license": "MIT", 1582 - "dependencies": { 1583 - "fast-json-stringify": "^5.7.0" 1584 - } 1585 - }, 1586 - "node_modules/@fastify/merge-json-schemas": { 1587 - "version": "0.1.1", 1588 - "license": "MIT", 1589 - "dependencies": { 1590 - "fast-deep-equal": "^3.1.3" 1591 - } 1592 - }, 1593 - "node_modules/@fastify/websocket": { 1594 - "version": "10.0.1", 1595 - "license": "MIT", 1596 - "dependencies": { 1597 - "duplexify": "^4.1.2", 1598 - "fastify-plugin": "^4.0.0", 1599 - "ws": "^8.0.0" 1600 - } 1601 - }, 1602 - "node_modules/@humanfs/core": { 1603 - "version": "0.19.1", 1604 - "dev": true, 1605 - "license": "Apache-2.0", 1606 - "engines": { 1607 - "node": ">=18.18.0" 1608 - } 1609 - }, 1610 - "node_modules/@humanfs/node": { 1611 - "version": "0.16.6", 1612 - "dev": true, 1613 - "license": "Apache-2.0", 1614 - "dependencies": { 1615 - "@humanfs/core": "^0.19.1", 1616 - "@humanwhocodes/retry": "^0.3.0" 1617 - }, 1618 - "engines": { 1619 - "node": ">=18.18.0" 1620 - } 1621 - }, 1622 - "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { 1623 - "version": "0.3.1", 1624 - "dev": true, 1625 - "license": "Apache-2.0", 1626 - "engines": { 1627 - "node": ">=18.18" 1628 - }, 1629 - "funding": { 1630 - "type": "github", 1631 - "url": "https://github.com/sponsors/nzakas" 1632 - } 1633 - }, 1634 - "node_modules/@humanwhocodes/module-importer": { 1635 - "version": "1.0.1", 1636 - "dev": true, 1637 - "license": "Apache-2.0", 1638 - "engines": { 1639 - "node": ">=12.22" 1640 - }, 1641 - "funding": { 1642 - "type": "github", 1643 - "url": "https://github.com/sponsors/nzakas" 1644 - } 1645 - }, 1646 - "node_modules/@humanwhocodes/retry": { 1647 - "version": "0.4.3", 1648 - "dev": true, 1649 - "license": "Apache-2.0", 1650 - "engines": { 1651 - "node": ">=18.18" 1652 - }, 1653 - "funding": { 1654 - "type": "github", 1655 - "url": "https://github.com/sponsors/nzakas" 1656 - } 1657 - }, 1658 - "node_modules/@img/sharp-darwin-arm64": { 1659 - "version": "0.33.5", 1660 - "cpu": [ 1661 - "arm64" 1662 - ], 1663 - "license": "Apache-2.0", 1664 - "optional": true, 1665 - "os": [ 1666 - "darwin" 1667 - ], 1668 - "engines": { 1669 - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1670 - }, 1671 - "funding": { 1672 - "url": "https://opencollective.com/libvips" 1673 - }, 1674 - "optionalDependencies": { 1675 - "@img/sharp-libvips-darwin-arm64": "1.0.4" 1676 - } 1677 - }, 1678 - "node_modules/@img/sharp-libvips-darwin-arm64": { 1679 - "version": "1.0.4", 1680 - "cpu": [ 1681 - "arm64" 1682 - ], 1683 - "license": "LGPL-3.0-or-later", 1684 - "optional": true, 1685 - "os": [ 1686 - "darwin" 1687 - ], 1688 - "funding": { 1689 - "url": "https://opencollective.com/libvips" 1690 - } 1691 - }, 1692 - "node_modules/@ioredis/commands": { 1693 - "version": "1.2.0", 1694 - "license": "MIT" 1695 - }, 1696 - "node_modules/@ipld/car": { 1697 - "version": "3.2.4", 1698 - "license": "(Apache-2.0 AND MIT)", 1699 - "dependencies": { 1700 - "@ipld/dag-cbor": "^7.0.0", 1701 - "multiformats": "^9.5.4", 1702 - "varint": "^6.0.0" 1703 - } 1704 - }, 1705 - "node_modules/@ipld/dag-cbor": { 1706 - "version": "7.0.3", 1707 - "license": "(Apache-2.0 AND MIT)", 1708 - "dependencies": { 1709 - "cborg": "^1.6.0", 1710 - "multiformats": "^9.5.4" 1711 - } 1712 - }, 1713 - "node_modules/@jridgewell/gen-mapping": { 1714 - "version": "0.3.8", 1715 - "dev": true, 1716 - "license": "MIT", 1717 - "dependencies": { 1718 - "@jridgewell/set-array": "^1.2.1", 1719 - "@jridgewell/sourcemap-codec": "^1.4.10", 1720 - "@jridgewell/trace-mapping": "^0.3.24" 1721 - }, 1722 - "engines": { 1723 - "node": ">=6.0.0" 1724 - } 1725 - }, 1726 - "node_modules/@jridgewell/resolve-uri": { 1727 - "version": "3.1.2", 1728 - "dev": true, 1729 - "license": "MIT", 1730 - "engines": { 1731 - "node": ">=6.0.0" 1732 - } 1733 - }, 1734 - "node_modules/@jridgewell/set-array": { 1735 - "version": "1.2.1", 1736 - "dev": true, 1737 - "license": "MIT", 1738 - "engines": { 1739 - "node": ">=6.0.0" 1740 - } 1741 - }, 1742 - "node_modules/@jridgewell/sourcemap-codec": { 1743 - "version": "1.5.5", 1744 - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", 1745 - "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", 1746 - "dev": true, 1747 - "license": "MIT" 1748 - }, 1749 - "node_modules/@jridgewell/trace-mapping": { 1750 - "version": "0.3.25", 1751 - "dev": true, 1752 - "license": "MIT", 1753 - "dependencies": { 1754 - "@jridgewell/resolve-uri": "^3.1.0", 1755 - "@jridgewell/sourcemap-codec": "^1.4.14" 1756 - } 1757 - }, 1758 - "node_modules/@libsql/darwin-arm64": { 1759 - "version": "0.4.7", 1760 - "cpu": [ 1761 - "arm64" 1762 - ], 1763 - "license": "MIT", 1764 - "optional": true, 1765 - "os": [ 1766 - "darwin" 1767 - ] 1768 - }, 1769 - "node_modules/@neon-rs/load": { 1770 - "version": "0.0.4", 1771 - "license": "MIT" 1772 - }, 1773 - "node_modules/@noble/curves": { 1774 - "version": "1.7.0", 1775 - "license": "MIT", 1776 - "dependencies": { 1777 - "@noble/hashes": "1.6.0" 1778 - }, 1779 - "engines": { 1780 - "node": "^14.21.3 || >=16" 1781 - }, 1782 - "funding": { 1783 - "url": "https://paulmillr.com/funding/" 1784 - } 1785 - }, 1786 - "node_modules/@noble/curves/node_modules/@noble/hashes": { 1787 - "version": "1.6.0", 1788 - "license": "MIT", 1789 - "engines": { 1790 - "node": "^14.21.3 || >=16" 1791 - }, 1792 - "funding": { 1793 - "url": "https://paulmillr.com/funding/" 1794 - } 1795 - }, 1796 - "node_modules/@noble/hashes": { 1797 - "version": "1.6.1", 1798 - "license": "MIT", 1799 - "engines": { 1800 - "node": "^14.21.3 || >=16" 1801 - }, 1802 - "funding": { 1803 - "url": "https://paulmillr.com/funding/" 1804 - } 1805 - }, 1806 - "node_modules/@noble/secp256k1": { 1807 - "version": "1.7.1", 1808 - "funding": [ 1809 - { 1810 - "type": "individual", 1811 - "url": "https://paulmillr.com/funding/" 1812 - } 1813 - ], 1814 - "license": "MIT" 1815 - }, 1816 - "node_modules/@nodelib/fs.scandir": { 1817 - "version": "2.1.5", 1818 - "dev": true, 1819 - "license": "MIT", 1820 - "dependencies": { 1821 - "@nodelib/fs.stat": "2.0.5", 1822 - "run-parallel": "^1.1.9" 1823 - }, 1824 - "engines": { 1825 - "node": ">= 8" 1826 - } 1827 - }, 1828 - "node_modules/@nodelib/fs.stat": { 1829 - "version": "2.0.5", 1830 - "dev": true, 1831 - "license": "MIT", 1832 - "engines": { 1833 - "node": ">= 8" 1834 - } 1835 - }, 1836 - "node_modules/@nodelib/fs.walk": { 1837 - "version": "1.2.8", 1838 - "dev": true, 1839 - "license": "MIT", 1840 - "dependencies": { 1841 - "@nodelib/fs.scandir": "2.1.5", 1842 - "fastq": "^1.6.0" 1843 - }, 1844 - "engines": { 1845 - "node": ">= 8" 1846 - } 1847 - }, 1848 - "node_modules/@opentelemetry/api": { 1849 - "version": "1.9.0", 1850 - "license": "Apache-2.0", 1851 - "engines": { 1852 - "node": ">=8.0.0" 1853 - } 1854 - }, 1855 - "node_modules/@pkgr/core": { 1856 - "version": "0.2.9", 1857 - "dev": true, 1858 - "license": "MIT", 1859 - "engines": { 1860 - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" 1861 - }, 1862 - "funding": { 1863 - "url": "https://opencollective.com/pkgr" 1864 - } 1865 - }, 1866 - "node_modules/@polka/url": { 1867 - "version": "1.0.0-next.29", 1868 - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz", 1869 - "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==", 1870 - "dev": true, 1871 - "license": "MIT" 1872 - }, 1873 - "node_modules/@rollup/rollup-android-arm-eabi": { 1874 - "version": "4.52.3", 1875 - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.52.3.tgz", 1876 - "integrity": "sha512-h6cqHGZ6VdnwliFG1NXvMPTy/9PS3h8oLh7ImwR+kl+oYnQizgjxsONmmPSb2C66RksfkfIxEVtDSEcJiO0tqw==", 1877 - "cpu": [ 1878 - "arm" 1879 - ], 1880 - "dev": true, 1881 - "license": "MIT", 1882 - "optional": true, 1883 - "os": [ 1884 - "android" 1885 - ] 1886 - }, 1887 - "node_modules/@rollup/rollup-android-arm64": { 1888 - "version": "4.52.3", 1889 - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.52.3.tgz", 1890 - "integrity": "sha512-wd+u7SLT/u6knklV/ifG7gr5Qy4GUbH2hMWcDauPFJzmCZUAJ8L2bTkVXC2niOIxp8lk3iH/QX8kSrUxVZrOVw==", 1891 - "cpu": [ 1892 - "arm64" 1893 - ], 1894 - "dev": true, 1895 - "license": "MIT", 1896 - "optional": true, 1897 - "os": [ 1898 - "android" 1899 - ] 1900 - }, 1901 - "node_modules/@rollup/rollup-darwin-arm64": { 1902 - "version": "4.52.3", 1903 - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.3.tgz", 1904 - "integrity": "sha512-lj9ViATR1SsqycwFkJCtYfQTheBdvlWJqzqxwc9f2qrcVrQaF/gCuBRTiTolkRWS6KvNxSk4KHZWG7tDktLgjg==", 1905 - "cpu": [ 1906 - "arm64" 1907 - ], 1908 - "dev": true, 1909 - "license": "MIT", 1910 - "optional": true, 1911 - "os": [ 1912 - "darwin" 1913 - ] 1914 - }, 1915 - "node_modules/@rollup/rollup-darwin-x64": { 1916 - "version": "4.52.3", 1917 - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.52.3.tgz", 1918 - "integrity": "sha512-+Dyo7O1KUmIsbzx1l+4V4tvEVnVQqMOIYtrxK7ncLSknl1xnMHLgn7gddJVrYPNZfEB8CIi3hK8gq8bDhb3h5A==", 1919 - "cpu": [ 1920 - "x64" 1921 - ], 1922 - "dev": true, 1923 - "license": "MIT", 1924 - "optional": true, 1925 - "os": [ 1926 - "darwin" 1927 - ] 1928 - }, 1929 - "node_modules/@rollup/rollup-freebsd-arm64": { 1930 - "version": "4.52.3", 1931 - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.52.3.tgz", 1932 - "integrity": "sha512-u9Xg2FavYbD30g3DSfNhxgNrxhi6xVG4Y6i9Ur1C7xUuGDW3banRbXj+qgnIrwRN4KeJ396jchwy9bCIzbyBEQ==", 1933 - "cpu": [ 1934 - "arm64" 1935 - ], 1936 - "dev": true, 1937 - "license": "MIT", 1938 - "optional": true, 1939 - "os": [ 1940 - "freebsd" 1941 - ] 1942 - }, 1943 - "node_modules/@rollup/rollup-freebsd-x64": { 1944 - "version": "4.52.3", 1945 - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.52.3.tgz", 1946 - "integrity": "sha512-5M8kyi/OX96wtD5qJR89a/3x5x8x5inXBZO04JWhkQb2JWavOWfjgkdvUqibGJeNNaz1/Z1PPza5/tAPXICI6A==", 1947 - "cpu": [ 1948 - "x64" 1949 - ], 1950 - "dev": true, 1951 - "license": "MIT", 1952 - "optional": true, 1953 - "os": [ 1954 - "freebsd" 1955 - ] 1956 - }, 1957 - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { 1958 - "version": "4.52.3", 1959 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.52.3.tgz", 1960 - "integrity": "sha512-IoerZJ4l1wRMopEHRKOO16e04iXRDyZFZnNZKrWeNquh5d6bucjezgd+OxG03mOMTnS1x7hilzb3uURPkJ0OfA==", 1961 - "cpu": [ 1962 - "arm" 1963 - ], 1964 - "dev": true, 1965 - "license": "MIT", 1966 - "optional": true, 1967 - "os": [ 1968 - "linux" 1969 - ] 1970 - }, 1971 - "node_modules/@rollup/rollup-linux-arm-musleabihf": { 1972 - "version": "4.52.3", 1973 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.52.3.tgz", 1974 - "integrity": "sha512-ZYdtqgHTDfvrJHSh3W22TvjWxwOgc3ThK/XjgcNGP2DIwFIPeAPNsQxrJO5XqleSlgDux2VAoWQ5iJrtaC1TbA==", 1975 - "cpu": [ 1976 - "arm" 1977 - ], 1978 - "dev": true, 1979 - "license": "MIT", 1980 - "optional": true, 1981 - "os": [ 1982 - "linux" 1983 - ] 1984 - }, 1985 - "node_modules/@rollup/rollup-linux-arm64-gnu": { 1986 - "version": "4.52.3", 1987 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.52.3.tgz", 1988 - "integrity": "sha512-NcViG7A0YtuFDA6xWSgmFb6iPFzHlf5vcqb2p0lGEbT+gjrEEz8nC/EeDHvx6mnGXnGCC1SeVV+8u+smj0CeGQ==", 1989 - "cpu": [ 1990 - "arm64" 1991 - ], 1992 - "dev": true, 1993 - "license": "MIT", 1994 - "optional": true, 1995 - "os": [ 1996 - "linux" 1997 - ] 1998 - }, 1999 - "node_modules/@rollup/rollup-linux-arm64-musl": { 2000 - "version": "4.52.3", 2001 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.52.3.tgz", 2002 - "integrity": "sha512-d3pY7LWno6SYNXRm6Ebsq0DJGoiLXTb83AIPCXl9fmtIQs/rXoS8SJxxUNtFbJ5MiOvs+7y34np77+9l4nfFMw==", 2003 - "cpu": [ 2004 - "arm64" 2005 - ], 2006 - "dev": true, 2007 - "license": "MIT", 2008 - "optional": true, 2009 - "os": [ 2010 - "linux" 2011 - ] 2012 - }, 2013 - "node_modules/@rollup/rollup-linux-loong64-gnu": { 2014 - "version": "4.52.3", 2015 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.52.3.tgz", 2016 - "integrity": "sha512-3y5GA0JkBuirLqmjwAKwB0keDlI6JfGYduMlJD/Rl7fvb4Ni8iKdQs1eiunMZJhwDWdCvrcqXRY++VEBbvk6Eg==", 2017 - "cpu": [ 2018 - "loong64" 2019 - ], 2020 - "dev": true, 2021 - "license": "MIT", 2022 - "optional": true, 2023 - "os": [ 2024 - "linux" 2025 - ] 2026 - }, 2027 - "node_modules/@rollup/rollup-linux-ppc64-gnu": { 2028 - "version": "4.52.3", 2029 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.52.3.tgz", 2030 - "integrity": "sha512-AUUH65a0p3Q0Yfm5oD2KVgzTKgwPyp9DSXc3UA7DtxhEb/WSPfbG4wqXeSN62OG5gSo18em4xv6dbfcUGXcagw==", 2031 - "cpu": [ 2032 - "ppc64" 2033 - ], 2034 - "dev": true, 2035 - "license": "MIT", 2036 - "optional": true, 2037 - "os": [ 2038 - "linux" 2039 - ] 2040 - }, 2041 - "node_modules/@rollup/rollup-linux-riscv64-gnu": { 2042 - "version": "4.52.3", 2043 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.52.3.tgz", 2044 - "integrity": "sha512-1makPhFFVBqZE+XFg3Dkq+IkQ7JvmUrwwqaYBL2CE+ZpxPaqkGaiWFEWVGyvTwZace6WLJHwjVh/+CXbKDGPmg==", 2045 - "cpu": [ 2046 - "riscv64" 2047 - ], 2048 - "dev": true, 2049 - "license": "MIT", 2050 - "optional": true, 2051 - "os": [ 2052 - "linux" 2053 - ] 2054 - }, 2055 - "node_modules/@rollup/rollup-linux-riscv64-musl": { 2056 - "version": "4.52.3", 2057 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.52.3.tgz", 2058 - "integrity": "sha512-OOFJa28dxfl8kLOPMUOQBCO6z3X2SAfzIE276fwT52uXDWUS178KWq0pL7d6p1kz7pkzA0yQwtqL0dEPoVcRWg==", 2059 - "cpu": [ 2060 - "riscv64" 2061 - ], 2062 - "dev": true, 2063 - "license": "MIT", 2064 - "optional": true, 2065 - "os": [ 2066 - "linux" 2067 - ] 2068 - }, 2069 - "node_modules/@rollup/rollup-linux-s390x-gnu": { 2070 - "version": "4.52.3", 2071 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.52.3.tgz", 2072 - "integrity": "sha512-jMdsML2VI5l+V7cKfZx3ak+SLlJ8fKvLJ0Eoa4b9/vCUrzXKgoKxvHqvJ/mkWhFiyp88nCkM5S2v6nIwRtPcgg==", 2073 - "cpu": [ 2074 - "s390x" 2075 - ], 2076 - "dev": true, 2077 - "license": "MIT", 2078 - "optional": true, 2079 - "os": [ 2080 - "linux" 2081 - ] 2082 - }, 2083 - "node_modules/@rollup/rollup-linux-x64-gnu": { 2084 - "version": "4.52.3", 2085 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.3.tgz", 2086 - "integrity": "sha512-tPgGd6bY2M2LJTA1uGq8fkSPK8ZLYjDjY+ZLK9WHncCnfIz29LIXIqUgzCR0hIefzy6Hpbe8Th5WOSwTM8E7LA==", 2087 - "cpu": [ 2088 - "x64" 2089 - ], 2090 - "dev": true, 2091 - "license": "MIT", 2092 - "optional": true, 2093 - "os": [ 2094 - "linux" 2095 - ] 2096 - }, 2097 - "node_modules/@rollup/rollup-linux-x64-musl": { 2098 - "version": "4.52.3", 2099 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.3.tgz", 2100 - "integrity": "sha512-BCFkJjgk+WFzP+tcSMXq77ymAPIxsX9lFJWs+2JzuZTLtksJ2o5hvgTdIcZ5+oKzUDMwI0PfWzRBYAydAHF2Mw==", 2101 - "cpu": [ 2102 - "x64" 2103 - ], 2104 - "dev": true, 2105 - "license": "MIT", 2106 - "optional": true, 2107 - "os": [ 2108 - "linux" 2109 - ] 2110 - }, 2111 - "node_modules/@rollup/rollup-openharmony-arm64": { 2112 - "version": "4.52.3", 2113 - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.52.3.tgz", 2114 - "integrity": "sha512-KTD/EqjZF3yvRaWUJdD1cW+IQBk4fbQaHYJUmP8N4XoKFZilVL8cobFSTDnjTtxWJQ3JYaMgF4nObY/+nYkumA==", 2115 - "cpu": [ 2116 - "arm64" 2117 - ], 2118 - "dev": true, 2119 - "license": "MIT", 2120 - "optional": true, 2121 - "os": [ 2122 - "openharmony" 2123 - ] 2124 - }, 2125 - "node_modules/@rollup/rollup-win32-arm64-msvc": { 2126 - "version": "4.52.3", 2127 - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.52.3.tgz", 2128 - "integrity": "sha512-+zteHZdoUYLkyYKObGHieibUFLbttX2r+58l27XZauq0tcWYYuKUwY2wjeCN9oK1Um2YgH2ibd6cnX/wFD7DuA==", 2129 - "cpu": [ 2130 - "arm64" 2131 - ], 2132 - "dev": true, 2133 - "license": "MIT", 2134 - "optional": true, 2135 - "os": [ 2136 - "win32" 2137 - ] 2138 - }, 2139 - "node_modules/@rollup/rollup-win32-ia32-msvc": { 2140 - "version": "4.52.3", 2141 - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.52.3.tgz", 2142 - "integrity": "sha512-of1iHkTQSo3kr6dTIRX6t81uj/c/b15HXVsPcEElN5sS859qHrOepM5p9G41Hah+CTqSh2r8Bm56dL2z9UQQ7g==", 2143 - "cpu": [ 2144 - "ia32" 2145 - ], 2146 - "dev": true, 2147 - "license": "MIT", 2148 - "optional": true, 2149 - "os": [ 2150 - "win32" 2151 - ] 2152 - }, 2153 - "node_modules/@rollup/rollup-win32-x64-gnu": { 2154 - "version": "4.52.3", 2155 - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.52.3.tgz", 2156 - "integrity": "sha512-s0hybmlHb56mWVZQj8ra9048/WZTPLILKxcvcq+8awSZmyiSUZjjem1AhU3Tf4ZKpYhK4mg36HtHDOe8QJS5PQ==", 2157 - "cpu": [ 2158 - "x64" 2159 - ], 2160 - "dev": true, 2161 - "license": "MIT", 2162 - "optional": true, 2163 - "os": [ 2164 - "win32" 2165 - ] 2166 - }, 2167 - "node_modules/@rollup/rollup-win32-x64-msvc": { 2168 - "version": "4.52.3", 2169 - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.52.3.tgz", 2170 - "integrity": "sha512-zGIbEVVXVtauFgl3MRwGWEN36P5ZGenHRMgNw88X5wEhEBpq0XrMEZwOn07+ICrwM17XO5xfMZqh0OldCH5VTA==", 2171 - "cpu": [ 2172 - "x64" 2173 - ], 2174 - "dev": true, 2175 - "license": "MIT", 2176 - "optional": true, 2177 - "os": [ 2178 - "win32" 2179 - ] 2180 - }, 2181 - "node_modules/@rtsao/scc": { 2182 - "version": "1.1.0", 2183 - "dev": true, 2184 - "license": "MIT" 2185 - }, 2186 - "node_modules/@skyware/bot": { 2187 - "version": "0.3.11", 2188 - "license": "MPL-2.0", 2189 - "dependencies": { 2190 - "@atcute/bluesky": "^1.0.7", 2191 - "@atcute/bluesky-richtext-builder": "^1.0.1", 2192 - "@atcute/client": "^2.0.3", 2193 - "@atcute/ozone": "^1.0.5", 2194 - "quick-lru": "^7.0.0", 2195 - "rate-limit-threshold": "^0.1.5" 2196 - }, 2197 - "optionalDependencies": { 2198 - "@skyware/firehose": "^0.3.2", 2199 - "@skyware/jetstream": "^0.1.9" 2200 - } 2201 - }, 2202 - "node_modules/@skyware/bot/node_modules/@skyware/jetstream": { 2203 - "version": "0.1.9", 2204 - "license": "MPL-2.0", 2205 - "optional": true, 2206 - "dependencies": { 2207 - "@atcute/bluesky": "^1.0.6", 2208 - "partysocket": "^1.0.2" 2209 - } 2210 - }, 2211 - "node_modules/@skyware/firehose": { 2212 - "version": "0.3.2", 2213 - "license": "MPL-2.0", 2214 - "optional": true, 2215 - "dependencies": { 2216 - "@atcute/car": "^1.1.0", 2217 - "@atcute/cbor": "^1.0.3", 2218 - "ws": "^8.16.0" 2219 - } 2220 - }, 2221 - "node_modules/@skyware/jetstream": { 2222 - "version": "0.2.2", 2223 - "license": "MPL-2.0", 2224 - "dependencies": { 2225 - "@atcute/bluesky": "^1.0.6", 2226 - "partysocket": "^1.0.2" 2227 - } 2228 - }, 2229 - "node_modules/@skyware/labeler": { 2230 - "version": "0.1.13", 2231 - "license": "MPL-2.0", 2232 - "dependencies": { 2233 - "@atcute/bluesky": "^1.0.7", 2234 - "@atcute/cbor": "^1.0.2", 2235 - "@atcute/client": "^2.0.3", 2236 - "@atcute/ozone": "^1.0.4", 2237 - "@fastify/websocket": "^10.0.1", 2238 - "@noble/curves": "^1.6.0", 2239 - "@noble/hashes": "^1.5.0", 2240 - "fastify": "^4.28.1", 2241 - "libsql": "^0.4.6", 2242 - "prompts": "^2.4.2", 2243 - "uint8arrays": "^5.1.0" 2244 - }, 2245 - "bin": { 2246 - "labeler": "dist/bin.js" 2247 - } 2248 - }, 2249 - "node_modules/@skyware/labeler/node_modules/uint8arrays": { 2250 - "version": "5.1.0", 2251 - "license": "Apache-2.0 OR MIT", 2252 - "dependencies": { 2253 - "multiformats": "^13.0.0" 2254 - } 2255 - }, 2256 - "node_modules/@skyware/labeler/node_modules/uint8arrays/node_modules/multiformats": { 2257 - "version": "13.3.1", 2258 - "license": "Apache-2.0 OR MIT" 2259 - }, 2260 - "node_modules/@stylistic/eslint-plugin": { 2261 - "version": "5.2.3", 2262 - "dev": true, 2263 - "license": "MIT", 2264 - "dependencies": { 2265 - "@eslint-community/eslint-utils": "^4.7.0", 2266 - "@typescript-eslint/types": "^8.38.0", 2267 - "eslint-visitor-keys": "^4.2.1", 2268 - "espree": "^10.4.0", 2269 - "estraverse": "^5.3.0", 2270 - "picomatch": "^4.0.3" 2271 - }, 2272 - "engines": { 2273 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 2274 - }, 2275 - "peerDependencies": { 2276 - "eslint": ">=9.0.0" 2277 - } 2278 - }, 2279 - "node_modules/@trivago/prettier-plugin-sort-imports": { 2280 - "version": "4.3.0", 2281 - "dev": true, 2282 - "license": "Apache-2.0", 2283 - "dependencies": { 2284 - "@babel/generator": "7.17.7", 2285 - "@babel/parser": "^7.20.5", 2286 - "@babel/traverse": "7.23.2", 2287 - "@babel/types": "7.17.0", 2288 - "javascript-natural-sort": "0.7.1", 2289 - "lodash": "^4.17.21" 2290 - }, 2291 - "peerDependencies": { 2292 - "@vue/compiler-sfc": "3.x", 2293 - "prettier": "2.x - 3.x" 2294 - }, 2295 - "peerDependenciesMeta": { 2296 - "@vue/compiler-sfc": { 2297 - "optional": true 2298 - } 2299 - } 2300 - }, 2301 - "node_modules/@types/better-sqlite3": { 2302 - "version": "7.6.13", 2303 - "dev": true, 2304 - "license": "MIT", 2305 - "dependencies": { 2306 - "@types/node": "*" 2307 - } 2308 - }, 2309 - "node_modules/@types/bn.js": { 2310 - "version": "5.1.6", 2311 - "license": "MIT", 2312 - "dependencies": { 2313 - "@types/node": "*" 2314 - } 2315 - }, 2316 - "node_modules/@types/bn.js/node_modules/@types/node": { 2317 - "version": "22.10.2", 2318 - "license": "MIT", 2319 - "dependencies": { 2320 - "undici-types": "~6.20.0" 2321 - } 2322 - }, 2323 - "node_modules/@types/bn.js/node_modules/@types/node/node_modules/undici-types": { 2324 - "version": "6.20.0", 2325 - "license": "MIT" 2326 - }, 2327 - "node_modules/@types/body-parser": { 2328 - "version": "1.19.5", 2329 - "dev": true, 2330 - "license": "MIT", 2331 - "dependencies": { 2332 - "@types/connect": "*", 2333 - "@types/node": "*" 2334 - } 2335 - }, 2336 - "node_modules/@types/body-parser/node_modules/@types/node": { 2337 - "version": "22.10.2", 2338 - "dev": true, 2339 - "license": "MIT", 2340 - "dependencies": { 2341 - "undici-types": "~6.20.0" 2342 - } 2343 - }, 2344 - "node_modules/@types/body-parser/node_modules/@types/node/node_modules/undici-types": { 2345 - "version": "6.20.0", 2346 - "dev": true, 2347 - "license": "MIT" 2348 - }, 2349 - "node_modules/@types/chai": { 2350 - "version": "5.2.2", 2351 - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.2.tgz", 2352 - "integrity": "sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==", 2353 - "dev": true, 2354 - "license": "MIT", 2355 - "dependencies": { 2356 - "@types/deep-eql": "*" 2357 - } 2358 - }, 2359 - "node_modules/@types/connect": { 2360 - "version": "3.4.38", 2361 - "dev": true, 2362 - "license": "MIT", 2363 - "dependencies": { 2364 - "@types/node": "*" 2365 - } 2366 - }, 2367 - "node_modules/@types/connect/node_modules/@types/node": { 2368 - "version": "22.10.2", 2369 - "dev": true, 2370 - "license": "MIT", 2371 - "dependencies": { 2372 - "undici-types": "~6.20.0" 2373 - } 2374 - }, 2375 - "node_modules/@types/connect/node_modules/@types/node/node_modules/undici-types": { 2376 - "version": "6.20.0", 2377 - "dev": true, 2378 - "license": "MIT" 2379 - }, 2380 - "node_modules/@types/deep-eql": { 2381 - "version": "4.0.2", 2382 - "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", 2383 - "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", 2384 - "dev": true, 2385 - "license": "MIT" 2386 - }, 2387 - "node_modules/@types/elliptic": { 2388 - "version": "6.4.18", 2389 - "license": "MIT", 2390 - "dependencies": { 2391 - "@types/bn.js": "*" 2392 - } 2393 - }, 2394 - "node_modules/@types/eslint": { 2395 - "version": "9.6.1", 2396 - "dev": true, 2397 - "license": "MIT", 2398 - "dependencies": { 2399 - "@types/estree": "*", 2400 - "@types/json-schema": "*" 2401 - } 2402 - }, 2403 - "node_modules/@types/eslint__js": { 2404 - "version": "8.42.3", 2405 - "dev": true, 2406 - "license": "MIT", 2407 - "dependencies": { 2408 - "@types/eslint": "*" 2409 - } 2410 - }, 2411 - "node_modules/@types/estree": { 2412 - "version": "1.0.8", 2413 - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", 2414 - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", 2415 - "dev": true, 2416 - "license": "MIT" 2417 - }, 2418 - "node_modules/@types/express": { 2419 - "version": "4.17.23", 2420 - "dev": true, 2421 - "license": "MIT", 2422 - "dependencies": { 2423 - "@types/body-parser": "*", 2424 - "@types/express-serve-static-core": "^4.17.33", 2425 - "@types/qs": "*", 2426 - "@types/serve-static": "*" 2427 - } 2428 - }, 2429 - "node_modules/@types/express-serve-static-core": { 2430 - "version": "4.19.6", 2431 - "dev": true, 2432 - "license": "MIT", 2433 - "dependencies": { 2434 - "@types/node": "*", 2435 - "@types/qs": "*", 2436 - "@types/range-parser": "*", 2437 - "@types/send": "*" 2438 - } 2439 - }, 2440 - "node_modules/@types/express-serve-static-core/node_modules/@types/node": { 2441 - "version": "22.10.2", 2442 - "dev": true, 2443 - "license": "MIT", 2444 - "dependencies": { 2445 - "undici-types": "~6.20.0" 2446 - } 2447 - }, 2448 - "node_modules/@types/express-serve-static-core/node_modules/@types/node/node_modules/undici-types": { 2449 - "version": "6.20.0", 2450 - "dev": true, 2451 - "license": "MIT" 2452 - }, 2453 - "node_modules/@types/http-errors": { 2454 - "version": "2.0.4", 2455 - "dev": true, 2456 - "license": "MIT" 2457 - }, 2458 - "node_modules/@types/json-schema": { 2459 - "version": "7.0.15", 2460 - "dev": true, 2461 - "license": "MIT" 2462 - }, 2463 - "node_modules/@types/json5": { 2464 - "version": "0.0.29", 2465 - "dev": true, 2466 - "license": "MIT" 2467 - }, 2468 - "node_modules/@types/mime": { 2469 - "version": "1.3.5", 2470 - "dev": true, 2471 - "license": "MIT" 2472 - }, 2473 - "node_modules/@types/node": { 2474 - "version": "22.15.32", 2475 - "dev": true, 2476 - "license": "MIT", 2477 - "dependencies": { 2478 - "undici-types": "~6.21.0" 2479 - } 2480 - }, 2481 - "node_modules/@types/qs": { 2482 - "version": "6.9.17", 2483 - "dev": true, 2484 - "license": "MIT" 2485 - }, 2486 - "node_modules/@types/range-parser": { 2487 - "version": "1.2.7", 2488 - "dev": true, 2489 - "license": "MIT" 2490 - }, 2491 - "node_modules/@types/semver": { 2492 - "version": "7.7.0", 2493 - "dev": true, 2494 - "license": "MIT" 2495 - }, 2496 - "node_modules/@types/send": { 2497 - "version": "0.17.4", 2498 - "dev": true, 2499 - "license": "MIT", 2500 - "dependencies": { 2501 - "@types/mime": "^1", 2502 - "@types/node": "*" 2503 - } 2504 - }, 2505 - "node_modules/@types/send/node_modules/@types/node": { 2506 - "version": "22.10.2", 2507 - "dev": true, 2508 - "license": "MIT", 2509 - "dependencies": { 2510 - "undici-types": "~6.20.0" 2511 - } 2512 - }, 2513 - "node_modules/@types/send/node_modules/@types/node/node_modules/undici-types": { 2514 - "version": "6.20.0", 2515 - "dev": true, 2516 - "license": "MIT" 2517 - }, 2518 - "node_modules/@types/serve-static": { 2519 - "version": "1.15.7", 2520 - "dev": true, 2521 - "license": "MIT", 2522 - "dependencies": { 2523 - "@types/http-errors": "*", 2524 - "@types/node": "*", 2525 - "@types/send": "*" 2526 - } 2527 - }, 2528 - "node_modules/@types/serve-static/node_modules/@types/node": { 2529 - "version": "22.10.2", 2530 - "dev": true, 2531 - "license": "MIT", 2532 - "dependencies": { 2533 - "undici-types": "~6.20.0" 2534 - } 2535 - }, 2536 - "node_modules/@types/serve-static/node_modules/@types/node/node_modules/undici-types": { 2537 - "version": "6.20.0", 2538 - "dev": true, 2539 - "license": "MIT" 2540 - }, 2541 - "node_modules/@typescript-eslint/eslint-plugin": { 2542 - "version": "6.21.0", 2543 - "dev": true, 2544 - "license": "MIT", 2545 - "dependencies": { 2546 - "@eslint-community/regexpp": "^4.5.1", 2547 - "@typescript-eslint/scope-manager": "6.21.0", 2548 - "@typescript-eslint/type-utils": "6.21.0", 2549 - "@typescript-eslint/utils": "6.21.0", 2550 - "@typescript-eslint/visitor-keys": "6.21.0", 2551 - "debug": "^4.3.4", 2552 - "graphemer": "^1.4.0", 2553 - "ignore": "^5.2.4", 2554 - "natural-compare": "^1.4.0", 2555 - "semver": "^7.5.4", 2556 - "ts-api-utils": "^1.0.1" 2557 - }, 2558 - "engines": { 2559 - "node": "^16.0.0 || >=18.0.0" 2560 - }, 2561 - "funding": { 2562 - "type": "opencollective", 2563 - "url": "https://opencollective.com/typescript-eslint" 2564 - }, 2565 - "peerDependencies": { 2566 - "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", 2567 - "eslint": "^7.0.0 || ^8.0.0" 2568 - }, 2569 - "peerDependenciesMeta": { 2570 - "typescript": { 2571 - "optional": true 2572 - } 2573 - } 2574 - }, 2575 - "node_modules/@typescript-eslint/parser": { 2576 - "version": "6.21.0", 2577 - "dev": true, 2578 - "license": "BSD-2-Clause", 2579 - "dependencies": { 2580 - "@typescript-eslint/scope-manager": "6.21.0", 2581 - "@typescript-eslint/types": "6.21.0", 2582 - "@typescript-eslint/typescript-estree": "6.21.0", 2583 - "@typescript-eslint/visitor-keys": "6.21.0", 2584 - "debug": "^4.3.4" 2585 - }, 2586 - "engines": { 2587 - "node": "^16.0.0 || >=18.0.0" 2588 - }, 2589 - "funding": { 2590 - "type": "opencollective", 2591 - "url": "https://opencollective.com/typescript-eslint" 2592 - }, 2593 - "peerDependencies": { 2594 - "eslint": "^7.0.0 || ^8.0.0" 2595 - }, 2596 - "peerDependenciesMeta": { 2597 - "typescript": { 2598 - "optional": true 2599 - } 2600 - } 2601 - }, 2602 - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { 2603 - "version": "6.21.0", 2604 - "dev": true, 2605 - "license": "MIT", 2606 - "engines": { 2607 - "node": "^16.0.0 || >=18.0.0" 2608 - }, 2609 - "funding": { 2610 - "type": "opencollective", 2611 - "url": "https://opencollective.com/typescript-eslint" 2612 - } 2613 - }, 2614 - "node_modules/@typescript-eslint/project-service": { 2615 - "version": "8.34.1", 2616 - "dev": true, 2617 - "license": "MIT", 2618 - "dependencies": { 2619 - "@typescript-eslint/tsconfig-utils": "^8.34.1", 2620 - "@typescript-eslint/types": "^8.34.1", 2621 - "debug": "^4.3.4" 2622 - }, 2623 - "engines": { 2624 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 2625 - }, 2626 - "funding": { 2627 - "type": "opencollective", 2628 - "url": "https://opencollective.com/typescript-eslint" 2629 - }, 2630 - "peerDependencies": { 2631 - "typescript": ">=4.8.4 <5.9.0" 2632 - } 2633 - }, 2634 - "node_modules/@typescript-eslint/project-service/node_modules/@typescript-eslint/types": { 2635 - "version": "8.34.1", 2636 - "dev": true, 2637 - "license": "MIT", 2638 - "engines": { 2639 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 2640 - }, 2641 - "funding": { 2642 - "type": "opencollective", 2643 - "url": "https://opencollective.com/typescript-eslint" 2644 - } 2645 - }, 2646 - "node_modules/@typescript-eslint/scope-manager": { 2647 - "version": "6.21.0", 2648 - "dev": true, 2649 - "license": "MIT", 2650 - "dependencies": { 2651 - "@typescript-eslint/types": "6.21.0", 2652 - "@typescript-eslint/visitor-keys": "6.21.0" 2653 - }, 2654 - "engines": { 2655 - "node": "^16.0.0 || >=18.0.0" 2656 - }, 2657 - "funding": { 2658 - "type": "opencollective", 2659 - "url": "https://opencollective.com/typescript-eslint" 2660 - } 2661 - }, 2662 - "node_modules/@typescript-eslint/scope-manager/node_modules/@typescript-eslint/types": { 2663 - "version": "6.21.0", 2664 - "dev": true, 2665 - "license": "MIT", 2666 - "engines": { 2667 - "node": "^16.0.0 || >=18.0.0" 2668 - }, 2669 - "funding": { 2670 - "type": "opencollective", 2671 - "url": "https://opencollective.com/typescript-eslint" 2672 - } 2673 - }, 2674 - "node_modules/@typescript-eslint/tsconfig-utils": { 2675 - "version": "8.34.1", 2676 - "dev": true, 2677 - "license": "MIT", 2678 - "engines": { 2679 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 2680 - }, 2681 - "funding": { 2682 - "type": "opencollective", 2683 - "url": "https://opencollective.com/typescript-eslint" 2684 - }, 2685 - "peerDependencies": { 2686 - "typescript": ">=4.8.4 <5.9.0" 2687 - } 2688 - }, 2689 - "node_modules/@typescript-eslint/type-utils": { 2690 - "version": "6.21.0", 2691 - "dev": true, 2692 - "license": "MIT", 2693 - "dependencies": { 2694 - "@typescript-eslint/typescript-estree": "6.21.0", 2695 - "@typescript-eslint/utils": "6.21.0", 2696 - "debug": "^4.3.4", 2697 - "ts-api-utils": "^1.0.1" 2698 - }, 2699 - "engines": { 2700 - "node": "^16.0.0 || >=18.0.0" 2701 - }, 2702 - "funding": { 2703 - "type": "opencollective", 2704 - "url": "https://opencollective.com/typescript-eslint" 2705 - }, 2706 - "peerDependencies": { 2707 - "eslint": "^7.0.0 || ^8.0.0" 2708 - }, 2709 - "peerDependenciesMeta": { 2710 - "typescript": { 2711 - "optional": true 2712 - } 2713 - } 2714 - }, 2715 - "node_modules/@typescript-eslint/types": { 2716 - "version": "8.39.1", 2717 - "dev": true, 2718 - "license": "MIT", 2719 - "engines": { 2720 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 2721 - }, 2722 - "funding": { 2723 - "type": "opencollective", 2724 - "url": "https://opencollective.com/typescript-eslint" 2725 - } 2726 - }, 2727 - "node_modules/@typescript-eslint/typescript-estree": { 2728 - "version": "6.21.0", 2729 - "dev": true, 2730 - "license": "BSD-2-Clause", 2731 - "dependencies": { 2732 - "@typescript-eslint/types": "6.21.0", 2733 - "@typescript-eslint/visitor-keys": "6.21.0", 2734 - "debug": "^4.3.4", 2735 - "globby": "^11.1.0", 2736 - "is-glob": "^4.0.3", 2737 - "minimatch": "9.0.3", 2738 - "semver": "^7.5.4", 2739 - "ts-api-utils": "^1.0.1" 2740 - }, 2741 - "engines": { 2742 - "node": "^16.0.0 || >=18.0.0" 2743 - }, 2744 - "funding": { 2745 - "type": "opencollective", 2746 - "url": "https://opencollective.com/typescript-eslint" 2747 - }, 2748 - "peerDependenciesMeta": { 2749 - "typescript": { 2750 - "optional": true 2751 - } 2752 - } 2753 - }, 2754 - "node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/types": { 2755 - "version": "6.21.0", 2756 - "dev": true, 2757 - "license": "MIT", 2758 - "engines": { 2759 - "node": "^16.0.0 || >=18.0.0" 2760 - }, 2761 - "funding": { 2762 - "type": "opencollective", 2763 - "url": "https://opencollective.com/typescript-eslint" 2764 - } 2765 - }, 2766 - "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { 2767 - "version": "9.0.3", 2768 - "dev": true, 2769 - "license": "ISC", 2770 - "dependencies": { 2771 - "brace-expansion": "^2.0.1" 2772 - }, 2773 - "engines": { 2774 - "node": ">=16 || 14 >=14.17" 2775 - }, 2776 - "funding": { 2777 - "url": "https://github.com/sponsors/isaacs" 2778 - } 2779 - }, 2780 - "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/node_modules/brace-expansion": { 2781 - "version": "2.0.1", 2782 - "dev": true, 2783 - "license": "MIT", 2784 - "dependencies": { 2785 - "balanced-match": "^1.0.0" 2786 - } 2787 - }, 2788 - "node_modules/@typescript-eslint/utils": { 2789 - "version": "6.21.0", 2790 - "dev": true, 2791 - "license": "MIT", 2792 - "dependencies": { 2793 - "@eslint-community/eslint-utils": "^4.4.0", 2794 - "@types/json-schema": "^7.0.12", 2795 - "@types/semver": "^7.5.0", 2796 - "@typescript-eslint/scope-manager": "6.21.0", 2797 - "@typescript-eslint/types": "6.21.0", 2798 - "@typescript-eslint/typescript-estree": "6.21.0", 2799 - "semver": "^7.5.4" 2800 - }, 2801 - "engines": { 2802 - "node": "^16.0.0 || >=18.0.0" 2803 - }, 2804 - "funding": { 2805 - "type": "opencollective", 2806 - "url": "https://opencollective.com/typescript-eslint" 2807 - }, 2808 - "peerDependencies": { 2809 - "eslint": "^7.0.0 || ^8.0.0" 2810 - } 2811 - }, 2812 - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { 2813 - "version": "6.21.0", 2814 - "dev": true, 2815 - "license": "MIT", 2816 - "engines": { 2817 - "node": "^16.0.0 || >=18.0.0" 2818 - }, 2819 - "funding": { 2820 - "type": "opencollective", 2821 - "url": "https://opencollective.com/typescript-eslint" 2822 - } 2823 - }, 2824 - "node_modules/@typescript-eslint/visitor-keys": { 2825 - "version": "6.21.0", 2826 - "dev": true, 2827 - "license": "MIT", 2828 - "dependencies": { 2829 - "@typescript-eslint/types": "6.21.0", 2830 - "eslint-visitor-keys": "^3.4.1" 2831 - }, 2832 - "engines": { 2833 - "node": "^16.0.0 || >=18.0.0" 2834 - }, 2835 - "funding": { 2836 - "type": "opencollective", 2837 - "url": "https://opencollective.com/typescript-eslint" 2838 - } 2839 - }, 2840 - "node_modules/@typescript-eslint/visitor-keys/node_modules/@typescript-eslint/types": { 2841 - "version": "6.21.0", 2842 - "dev": true, 2843 - "license": "MIT", 2844 - "engines": { 2845 - "node": "^16.0.0 || >=18.0.0" 2846 - }, 2847 - "funding": { 2848 - "type": "opencollective", 2849 - "url": "https://opencollective.com/typescript-eslint" 2850 - } 2851 - }, 2852 - "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { 2853 - "version": "3.4.3", 2854 - "dev": true, 2855 - "license": "Apache-2.0", 2856 - "engines": { 2857 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 2858 - }, 2859 - "funding": { 2860 - "url": "https://opencollective.com/eslint" 2861 - } 2862 - }, 2863 - "node_modules/@vitest/expect": { 2864 - "version": "3.2.4", 2865 - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz", 2866 - "integrity": "sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==", 2867 - "dev": true, 2868 - "license": "MIT", 2869 - "dependencies": { 2870 - "@types/chai": "^5.2.2", 2871 - "@vitest/spy": "3.2.4", 2872 - "@vitest/utils": "3.2.4", 2873 - "chai": "^5.2.0", 2874 - "tinyrainbow": "^2.0.0" 2875 - }, 2876 - "funding": { 2877 - "url": "https://opencollective.com/vitest" 2878 - } 2879 - }, 2880 - "node_modules/@vitest/mocker": { 2881 - "version": "3.2.4", 2882 - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.4.tgz", 2883 - "integrity": "sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==", 2884 - "dev": true, 2885 - "license": "MIT", 2886 - "dependencies": { 2887 - "@vitest/spy": "3.2.4", 2888 - "estree-walker": "^3.0.3", 2889 - "magic-string": "^0.30.17" 2890 - }, 2891 - "funding": { 2892 - "url": "https://opencollective.com/vitest" 2893 - }, 2894 - "peerDependencies": { 2895 - "msw": "^2.4.9", 2896 - "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" 2897 - }, 2898 - "peerDependenciesMeta": { 2899 - "msw": { 2900 - "optional": true 2901 - }, 2902 - "vite": { 2903 - "optional": true 2904 - } 2905 - } 2906 - }, 2907 - "node_modules/@vitest/pretty-format": { 2908 - "version": "3.2.4", 2909 - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz", 2910 - "integrity": "sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==", 2911 - "dev": true, 2912 - "license": "MIT", 2913 - "dependencies": { 2914 - "tinyrainbow": "^2.0.0" 2915 - }, 2916 - "funding": { 2917 - "url": "https://opencollective.com/vitest" 2918 - } 2919 - }, 2920 - "node_modules/@vitest/runner": { 2921 - "version": "3.2.4", 2922 - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.2.4.tgz", 2923 - "integrity": "sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==", 2924 - "dev": true, 2925 - "license": "MIT", 2926 - "dependencies": { 2927 - "@vitest/utils": "3.2.4", 2928 - "pathe": "^2.0.3", 2929 - "strip-literal": "^3.0.0" 2930 - }, 2931 - "funding": { 2932 - "url": "https://opencollective.com/vitest" 2933 - } 2934 - }, 2935 - "node_modules/@vitest/snapshot": { 2936 - "version": "3.2.4", 2937 - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.4.tgz", 2938 - "integrity": "sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==", 2939 - "dev": true, 2940 - "license": "MIT", 2941 - "dependencies": { 2942 - "@vitest/pretty-format": "3.2.4", 2943 - "magic-string": "^0.30.17", 2944 - "pathe": "^2.0.3" 2945 - }, 2946 - "funding": { 2947 - "url": "https://opencollective.com/vitest" 2948 - } 2949 - }, 2950 - "node_modules/@vitest/spy": { 2951 - "version": "3.2.4", 2952 - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.4.tgz", 2953 - "integrity": "sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==", 2954 - "dev": true, 2955 - "license": "MIT", 2956 - "dependencies": { 2957 - "tinyspy": "^4.0.3" 2958 - }, 2959 - "funding": { 2960 - "url": "https://opencollective.com/vitest" 2961 - } 2962 - }, 2963 - "node_modules/@vitest/ui": { 2964 - "version": "3.2.4", 2965 - "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-3.2.4.tgz", 2966 - "integrity": "sha512-hGISOaP18plkzbWEcP/QvtRW1xDXF2+96HbEX6byqQhAUbiS5oH6/9JwW+QsQCIYON2bI6QZBF+2PvOmrRZ9wA==", 2967 - "dev": true, 2968 - "license": "MIT", 2969 - "dependencies": { 2970 - "@vitest/utils": "3.2.4", 2971 - "fflate": "^0.8.2", 2972 - "flatted": "^3.3.3", 2973 - "pathe": "^2.0.3", 2974 - "sirv": "^3.0.1", 2975 - "tinyglobby": "^0.2.14", 2976 - "tinyrainbow": "^2.0.0" 2977 - }, 2978 - "funding": { 2979 - "url": "https://opencollective.com/vitest" 2980 - }, 2981 - "peerDependencies": { 2982 - "vitest": "3.2.4" 2983 - } 2984 - }, 2985 - "node_modules/@vitest/utils": { 2986 - "version": "3.2.4", 2987 - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.4.tgz", 2988 - "integrity": "sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==", 2989 - "dev": true, 2990 - "license": "MIT", 2991 - "dependencies": { 2992 - "@vitest/pretty-format": "3.2.4", 2993 - "loupe": "^3.1.4", 2994 - "tinyrainbow": "^2.0.0" 2995 - }, 2996 - "funding": { 2997 - "url": "https://opencollective.com/vitest" 2998 - } 2999 - }, 3000 - "node_modules/abort-controller": { 3001 - "version": "3.0.0", 3002 - "license": "MIT", 3003 - "dependencies": { 3004 - "event-target-shim": "^5.0.0" 3005 - }, 3006 - "engines": { 3007 - "node": ">=6.5" 3008 - } 3009 - }, 3010 - "node_modules/abort-controller/node_modules/event-target-shim": { 3011 - "version": "5.0.1", 3012 - "license": "MIT", 3013 - "engines": { 3014 - "node": ">=6" 3015 - } 3016 - }, 3017 - "node_modules/abstract-logging": { 3018 - "version": "2.0.1", 3019 - "license": "MIT" 3020 - }, 3021 - "node_modules/accepts": { 3022 - "version": "1.3.8", 3023 - "license": "MIT", 3024 - "dependencies": { 3025 - "mime-types": "~2.1.34", 3026 - "negotiator": "0.6.3" 3027 - }, 3028 - "engines": { 3029 - "node": ">= 0.6" 3030 - } 3031 - }, 3032 - "node_modules/accepts/node_modules/negotiator": { 3033 - "version": "0.6.3", 3034 - "license": "MIT", 3035 - "engines": { 3036 - "node": ">= 0.6" 3037 - } 3038 - }, 3039 - "node_modules/acorn": { 3040 - "version": "8.15.0", 3041 - "dev": true, 3042 - "license": "MIT", 3043 - "bin": { 3044 - "acorn": "bin/acorn" 3045 - }, 3046 - "engines": { 3047 - "node": ">=0.4.0" 3048 - } 3049 - }, 3050 - "node_modules/acorn-jsx": { 3051 - "version": "5.3.2", 3052 - "dev": true, 3053 - "license": "MIT", 3054 - "peerDependencies": { 3055 - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" 3056 - } 3057 - }, 3058 - "node_modules/ajv": { 3059 - "version": "6.12.6", 3060 - "dev": true, 3061 - "license": "MIT", 3062 - "dependencies": { 3063 - "fast-deep-equal": "^3.1.1", 3064 - "fast-json-stable-stringify": "^2.0.0", 3065 - "json-schema-traverse": "^0.4.1", 3066 - "uri-js": "^4.2.2" 3067 - }, 3068 - "funding": { 3069 - "type": "github", 3070 - "url": "https://github.com/sponsors/epoberezkin" 3071 - } 3072 - }, 3073 - "node_modules/ajv-formats": { 3074 - "version": "2.1.1", 3075 - "license": "MIT", 3076 - "dependencies": { 3077 - "ajv": "^8.0.0" 3078 - }, 3079 - "peerDependencies": { 3080 - "ajv": "^8.0.0" 3081 - }, 3082 - "peerDependenciesMeta": { 3083 - "ajv": { 3084 - "optional": true 3085 - } 3086 - } 3087 - }, 3088 - "node_modules/ajv-formats/node_modules/ajv": { 3089 - "version": "8.17.1", 3090 - "license": "MIT", 3091 - "dependencies": { 3092 - "fast-deep-equal": "^3.1.3", 3093 - "fast-uri": "^3.0.1", 3094 - "json-schema-traverse": "^1.0.0", 3095 - "require-from-string": "^2.0.2" 3096 - }, 3097 - "funding": { 3098 - "type": "github", 3099 - "url": "https://github.com/sponsors/epoberezkin" 3100 - } 3101 - }, 3102 - "node_modules/ajv-formats/node_modules/ajv/node_modules/fast-uri": { 3103 - "version": "3.0.3", 3104 - "license": "BSD-3-Clause" 3105 - }, 3106 - "node_modules/ajv-formats/node_modules/ajv/node_modules/json-schema-traverse": { 3107 - "version": "1.0.0", 3108 - "license": "MIT" 3109 - }, 3110 - "node_modules/ansi-escapes": { 3111 - "version": "7.0.0", 3112 - "license": "MIT", 3113 - "dependencies": { 3114 - "environment": "^1.0.0" 3115 - }, 3116 - "engines": { 3117 - "node": ">=18" 3118 - }, 3119 - "funding": { 3120 - "url": "https://github.com/sponsors/sindresorhus" 3121 - } 3122 - }, 3123 - "node_modules/ansi-regex": { 3124 - "version": "6.1.0", 3125 - "license": "MIT", 3126 - "engines": { 3127 - "node": ">=12" 3128 - }, 3129 - "funding": { 3130 - "url": "https://github.com/chalk/ansi-regex?sponsor=1" 3131 - } 3132 - }, 3133 - "node_modules/ansi-styles": { 3134 - "version": "4.3.0", 3135 - "dev": true, 3136 - "license": "MIT", 3137 - "dependencies": { 3138 - "color-convert": "^2.0.1" 3139 - }, 3140 - "engines": { 3141 - "node": ">=8" 3142 - }, 3143 - "funding": { 3144 - "url": "https://github.com/chalk/ansi-styles?sponsor=1" 3145 - } 3146 - }, 3147 - "node_modules/argparse": { 3148 - "version": "2.0.1", 3149 - "dev": true, 3150 - "license": "Python-2.0" 3151 - }, 3152 - "node_modules/array-buffer-byte-length": { 3153 - "version": "1.0.2", 3154 - "dev": true, 3155 - "license": "MIT", 3156 - "dependencies": { 3157 - "call-bound": "^1.0.3", 3158 - "is-array-buffer": "^3.0.5" 3159 - }, 3160 - "engines": { 3161 - "node": ">= 0.4" 3162 - }, 3163 - "funding": { 3164 - "url": "https://github.com/sponsors/ljharb" 3165 - } 3166 - }, 3167 - "node_modules/array-flatten": { 3168 - "version": "1.1.1", 3169 - "license": "MIT" 3170 - }, 3171 - "node_modules/array-includes": { 3172 - "version": "3.1.9", 3173 - "dev": true, 3174 - "license": "MIT", 3175 - "dependencies": { 3176 - "call-bind": "^1.0.8", 3177 - "call-bound": "^1.0.4", 3178 - "define-properties": "^1.2.1", 3179 - "es-abstract": "^1.24.0", 3180 - "es-object-atoms": "^1.1.1", 3181 - "get-intrinsic": "^1.3.0", 3182 - "is-string": "^1.1.1", 3183 - "math-intrinsics": "^1.1.0" 3184 - }, 3185 - "engines": { 3186 - "node": ">= 0.4" 3187 - }, 3188 - "funding": { 3189 - "url": "https://github.com/sponsors/ljharb" 3190 - } 3191 - }, 3192 - "node_modules/array-union": { 3193 - "version": "2.1.0", 3194 - "dev": true, 3195 - "license": "MIT", 3196 - "engines": { 3197 - "node": ">=8" 3198 - } 3199 - }, 3200 - "node_modules/array.prototype.findlastindex": { 3201 - "version": "1.2.6", 3202 - "dev": true, 3203 - "license": "MIT", 3204 - "dependencies": { 3205 - "call-bind": "^1.0.8", 3206 - "call-bound": "^1.0.4", 3207 - "define-properties": "^1.2.1", 3208 - "es-abstract": "^1.23.9", 3209 - "es-errors": "^1.3.0", 3210 - "es-object-atoms": "^1.1.1", 3211 - "es-shim-unscopables": "^1.1.0" 3212 - }, 3213 - "engines": { 3214 - "node": ">= 0.4" 3215 - }, 3216 - "funding": { 3217 - "url": "https://github.com/sponsors/ljharb" 3218 - } 3219 - }, 3220 - "node_modules/array.prototype.flat": { 3221 - "version": "1.3.3", 3222 - "dev": true, 3223 - "license": "MIT", 3224 - "dependencies": { 3225 - "call-bind": "^1.0.8", 3226 - "define-properties": "^1.2.1", 3227 - "es-abstract": "^1.23.5", 3228 - "es-shim-unscopables": "^1.0.2" 3229 - }, 3230 - "engines": { 3231 - "node": ">= 0.4" 3232 - }, 3233 - "funding": { 3234 - "url": "https://github.com/sponsors/ljharb" 3235 - } 3236 - }, 3237 - "node_modules/array.prototype.flatmap": { 3238 - "version": "1.3.3", 3239 - "dev": true, 3240 - "license": "MIT", 3241 - "dependencies": { 3242 - "call-bind": "^1.0.8", 3243 - "define-properties": "^1.2.1", 3244 - "es-abstract": "^1.23.5", 3245 - "es-shim-unscopables": "^1.0.2" 3246 - }, 3247 - "engines": { 3248 - "node": ">= 0.4" 3249 - }, 3250 - "funding": { 3251 - "url": "https://github.com/sponsors/ljharb" 3252 - } 3253 - }, 3254 - "node_modules/arraybuffer.prototype.slice": { 3255 - "version": "1.0.4", 3256 - "dev": true, 3257 - "license": "MIT", 3258 - "dependencies": { 3259 - "array-buffer-byte-length": "^1.0.1", 3260 - "call-bind": "^1.0.8", 3261 - "define-properties": "^1.2.1", 3262 - "es-abstract": "^1.23.5", 3263 - "es-errors": "^1.3.0", 3264 - "get-intrinsic": "^1.2.6", 3265 - "is-array-buffer": "^3.0.4" 3266 - }, 3267 - "engines": { 3268 - "node": ">= 0.4" 3269 - }, 3270 - "funding": { 3271 - "url": "https://github.com/sponsors/ljharb" 3272 - } 3273 - }, 3274 - "node_modules/asn1.js": { 3275 - "version": "5.4.1", 3276 - "license": "MIT", 3277 - "dependencies": { 3278 - "bn.js": "^4.0.0", 3279 - "inherits": "^2.0.1", 3280 - "minimalistic-assert": "^1.0.0", 3281 - "safer-buffer": "^2.1.0" 3282 - } 3283 - }, 3284 - "node_modules/assertion-error": { 3285 - "version": "2.0.1", 3286 - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", 3287 - "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", 3288 - "dev": true, 3289 - "license": "MIT", 3290 - "engines": { 3291 - "node": ">=12" 3292 - } 3293 - }, 3294 - "node_modules/async-function": { 3295 - "version": "1.0.0", 3296 - "dev": true, 3297 - "license": "MIT", 3298 - "engines": { 3299 - "node": ">= 0.4" 3300 - } 3301 - }, 3302 - "node_modules/asynckit": { 3303 - "version": "0.4.0", 3304 - "license": "MIT" 3305 - }, 3306 - "node_modules/atomic-sleep": { 3307 - "version": "1.0.0", 3308 - "license": "MIT", 3309 - "engines": { 3310 - "node": ">=8.0.0" 3311 - } 3312 - }, 3313 - "node_modules/available-typed-arrays": { 3314 - "version": "1.0.7", 3315 - "dev": true, 3316 - "license": "MIT", 3317 - "dependencies": { 3318 - "possible-typed-array-names": "^1.0.0" 3319 - }, 3320 - "engines": { 3321 - "node": ">= 0.4" 3322 - }, 3323 - "funding": { 3324 - "url": "https://github.com/sponsors/ljharb" 3325 - } 3326 - }, 3327 - "node_modules/avvio": { 3328 - "version": "8.4.0", 3329 - "license": "MIT", 3330 - "dependencies": { 3331 - "@fastify/error": "^3.3.0", 3332 - "fastq": "^1.17.1" 3333 - } 3334 - }, 3335 - "node_modules/await-lock": { 3336 - "version": "2.2.2", 3337 - "license": "MIT" 3338 - }, 3339 - "node_modules/axios": { 3340 - "version": "0.27.2", 3341 - "license": "MIT", 3342 - "dependencies": { 3343 - "follow-redirects": "^1.14.9", 3344 - "form-data": "^4.0.0" 3345 - } 3346 - }, 3347 - "node_modules/balanced-match": { 3348 - "version": "1.0.2", 3349 - "dev": true, 3350 - "license": "MIT" 3351 - }, 3352 - "node_modules/base64-js": { 3353 - "version": "1.5.1", 3354 - "funding": [ 3355 - { 3356 - "type": "github", 3357 - "url": "https://github.com/sponsors/feross" 3358 - }, 3359 - { 3360 - "type": "patreon", 3361 - "url": "https://www.patreon.com/feross" 3362 - }, 3363 - { 3364 - "type": "consulting", 3365 - "url": "https://feross.org/support" 3366 - } 3367 - ], 3368 - "license": "MIT" 3369 - }, 3370 - "node_modules/big-integer": { 3371 - "version": "1.6.52", 3372 - "license": "Unlicense", 3373 - "engines": { 3374 - "node": ">=0.6" 3375 - } 3376 - }, 3377 - "node_modules/bintrees": { 3378 - "version": "1.0.2", 3379 - "license": "MIT" 3380 - }, 3381 - "node_modules/bn.js": { 3382 - "version": "4.12.1", 3383 - "license": "MIT" 3384 - }, 3385 - "node_modules/body-parser": { 3386 - "version": "1.20.3", 3387 - "license": "MIT", 3388 - "dependencies": { 3389 - "bytes": "3.1.2", 3390 - "content-type": "~1.0.5", 3391 - "debug": "2.6.9", 3392 - "depd": "2.0.0", 3393 - "destroy": "1.2.0", 3394 - "http-errors": "2.0.0", 3395 - "iconv-lite": "0.4.24", 3396 - "on-finished": "2.4.1", 3397 - "qs": "6.13.0", 3398 - "raw-body": "2.5.2", 3399 - "type-is": "~1.6.18", 3400 - "unpipe": "1.0.0" 3401 - }, 3402 - "engines": { 3403 - "node": ">= 0.8", 3404 - "npm": "1.2.8000 || >= 1.4.16" 3405 - } 3406 - }, 3407 - "node_modules/body-parser/node_modules/debug": { 3408 - "version": "2.6.9", 3409 - "license": "MIT", 3410 - "dependencies": { 3411 - "ms": "2.0.0" 3412 - } 3413 - }, 3414 - "node_modules/body-parser/node_modules/debug/node_modules/ms": { 3415 - "version": "2.0.0", 3416 - "license": "MIT" 3417 - }, 3418 - "node_modules/bottleneck": { 3419 - "version": "2.19.5", 3420 - "license": "MIT" 3421 - }, 3422 - "node_modules/brace-expansion": { 3423 - "version": "1.1.11", 3424 - "dev": true, 3425 - "license": "MIT", 3426 - "dependencies": { 3427 - "balanced-match": "^1.0.0", 3428 - "concat-map": "0.0.1" 3429 - } 3430 - }, 3431 - "node_modules/braces": { 3432 - "version": "3.0.3", 3433 - "license": "MIT", 3434 - "dependencies": { 3435 - "fill-range": "^7.1.1" 3436 - }, 3437 - "engines": { 3438 - "node": ">=8" 3439 - } 3440 - }, 3441 - "node_modules/brorand": { 3442 - "version": "1.1.0", 3443 - "license": "MIT" 3444 - }, 3445 - "node_modules/buffer": { 3446 - "version": "6.0.3", 3447 - "funding": [ 3448 - { 3449 - "type": "github", 3450 - "url": "https://github.com/sponsors/feross" 3451 - }, 3452 - { 3453 - "type": "patreon", 3454 - "url": "https://www.patreon.com/feross" 3455 - }, 3456 - { 3457 - "type": "consulting", 3458 - "url": "https://feross.org/support" 3459 - } 3460 - ], 3461 - "license": "MIT", 3462 - "dependencies": { 3463 - "base64-js": "^1.3.1", 3464 - "ieee754": "^1.2.1" 3465 - } 3466 - }, 3467 - "node_modules/bytes": { 3468 - "version": "3.1.2", 3469 - "license": "MIT", 3470 - "engines": { 3471 - "node": ">= 0.8" 3472 - } 3473 - }, 3474 - "node_modules/cac": { 3475 - "version": "6.7.14", 3476 - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", 3477 - "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", 3478 - "dev": true, 3479 - "license": "MIT", 3480 - "engines": { 3481 - "node": ">=8" 3482 - } 3483 - }, 3484 - "node_modules/call-bind": { 3485 - "version": "1.0.8", 3486 - "dev": true, 3487 - "license": "MIT", 3488 - "dependencies": { 3489 - "call-bind-apply-helpers": "^1.0.0", 3490 - "es-define-property": "^1.0.0", 3491 - "get-intrinsic": "^1.2.4", 3492 - "set-function-length": "^1.2.2" 3493 - }, 3494 - "engines": { 3495 - "node": ">= 0.4" 3496 - }, 3497 - "funding": { 3498 - "url": "https://github.com/sponsors/ljharb" 3499 - } 3500 - }, 3501 - "node_modules/call-bind-apply-helpers": { 3502 - "version": "1.0.1", 3503 - "license": "MIT", 3504 - "dependencies": { 3505 - "es-errors": "^1.3.0", 3506 - "function-bind": "^1.1.2" 3507 - }, 3508 - "engines": { 3509 - "node": ">= 0.4" 3510 - } 3511 - }, 3512 - "node_modules/call-bound": { 3513 - "version": "1.0.4", 3514 - "dev": true, 3515 - "license": "MIT", 3516 - "dependencies": { 3517 - "call-bind-apply-helpers": "^1.0.2", 3518 - "get-intrinsic": "^1.3.0" 3519 - }, 3520 - "engines": { 3521 - "node": ">= 0.4" 3522 - }, 3523 - "funding": { 3524 - "url": "https://github.com/sponsors/ljharb" 3525 - } 3526 - }, 3527 - "node_modules/call-bound/node_modules/call-bind-apply-helpers": { 3528 - "version": "1.0.2", 3529 - "dev": true, 3530 - "license": "MIT", 3531 - "dependencies": { 3532 - "es-errors": "^1.3.0", 3533 - "function-bind": "^1.1.2" 3534 - }, 3535 - "engines": { 3536 - "node": ">= 0.4" 3537 - } 3538 - }, 3539 - "node_modules/callsites": { 3540 - "version": "3.1.0", 3541 - "dev": true, 3542 - "license": "MIT", 3543 - "engines": { 3544 - "node": ">=6" 3545 - } 3546 - }, 3547 - "node_modules/cbor-extract": { 3548 - "version": "2.2.0", 3549 - "hasInstallScript": true, 3550 - "license": "MIT", 3551 - "optional": true, 3552 - "dependencies": { 3553 - "node-gyp-build-optional-packages": "5.1.1" 3554 - }, 3555 - "bin": { 3556 - "download-cbor-prebuilds": "bin/download-prebuilds.js" 3557 - }, 3558 - "optionalDependencies": { 3559 - "@cbor-extract/cbor-extract-darwin-arm64": "2.2.0", 3560 - "@cbor-extract/cbor-extract-darwin-x64": "2.2.0", 3561 - "@cbor-extract/cbor-extract-linux-arm": "2.2.0", 3562 - "@cbor-extract/cbor-extract-linux-arm64": "2.2.0", 3563 - "@cbor-extract/cbor-extract-linux-x64": "2.2.0", 3564 - "@cbor-extract/cbor-extract-win32-x64": "2.2.0" 3565 - } 3566 - }, 3567 - "node_modules/cbor-x": { 3568 - "version": "1.6.0", 3569 - "license": "MIT", 3570 - "optionalDependencies": { 3571 - "cbor-extract": "^2.2.0" 3572 - } 3573 - }, 3574 - "node_modules/cborg": { 3575 - "version": "1.10.2", 3576 - "license": "Apache-2.0", 3577 - "bin": { 3578 - "cborg": "cli.js" 3579 - } 3580 - }, 3581 - "node_modules/chai": { 3582 - "version": "5.3.3", 3583 - "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", 3584 - "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", 3585 - "dev": true, 3586 - "license": "MIT", 3587 - "dependencies": { 3588 - "assertion-error": "^2.0.1", 3589 - "check-error": "^2.1.1", 3590 - "deep-eql": "^5.0.1", 3591 - "loupe": "^3.1.0", 3592 - "pathval": "^2.0.0" 3593 - }, 3594 - "engines": { 3595 - "node": ">=18" 3596 - } 3597 - }, 3598 - "node_modules/chalk": { 3599 - "version": "4.1.2", 3600 - "dev": true, 3601 - "license": "MIT", 3602 - "dependencies": { 3603 - "ansi-styles": "^4.1.0", 3604 - "supports-color": "^7.1.0" 3605 - }, 3606 - "engines": { 3607 - "node": ">=10" 3608 - }, 3609 - "funding": { 3610 - "url": "https://github.com/chalk/chalk?sponsor=1" 3611 - } 3612 - }, 3613 - "node_modules/check-error": { 3614 - "version": "2.1.1", 3615 - "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", 3616 - "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", 3617 - "dev": true, 3618 - "license": "MIT", 3619 - "engines": { 3620 - "node": ">= 16" 3621 - } 3622 - }, 3623 - "node_modules/cli-cursor": { 3624 - "version": "5.0.0", 3625 - "license": "MIT", 3626 - "dependencies": { 3627 - "restore-cursor": "^5.0.0" 3628 - }, 3629 - "engines": { 3630 - "node": ">=18" 3631 - }, 3632 - "funding": { 3633 - "url": "https://github.com/sponsors/sindresorhus" 3634 - } 3635 - }, 3636 - "node_modules/cli-truncate": { 3637 - "version": "4.0.0", 3638 - "license": "MIT", 3639 - "dependencies": { 3640 - "slice-ansi": "^5.0.0", 3641 - "string-width": "^7.0.0" 3642 - }, 3643 - "engines": { 3644 - "node": ">=18" 3645 - }, 3646 - "funding": { 3647 - "url": "https://github.com/sponsors/sindresorhus" 3648 - } 3649 - }, 3650 - "node_modules/cluster-key-slot": { 3651 - "version": "1.1.2", 3652 - "license": "Apache-2.0", 3653 - "engines": { 3654 - "node": ">=0.10.0" 3655 - } 3656 - }, 3657 - "node_modules/collapse-white-space": { 3658 - "version": "2.1.0", 3659 - "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz", 3660 - "integrity": "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==", 3661 - "license": "MIT", 3662 - "funding": { 3663 - "type": "github", 3664 - "url": "https://github.com/sponsors/wooorm" 3665 - } 3666 - }, 3667 - "node_modules/color": { 3668 - "version": "4.2.3", 3669 - "license": "MIT", 3670 - "dependencies": { 3671 - "color-convert": "^2.0.1", 3672 - "color-string": "^1.9.0" 3673 - }, 3674 - "engines": { 3675 - "node": ">=12.5.0" 3676 - } 3677 - }, 3678 - "node_modules/color-convert": { 3679 - "version": "2.0.1", 3680 - "license": "MIT", 3681 - "dependencies": { 3682 - "color-name": "~1.1.4" 3683 - }, 3684 - "engines": { 3685 - "node": ">=7.0.0" 3686 - } 3687 - }, 3688 - "node_modules/color-name": { 3689 - "version": "1.1.4", 3690 - "license": "MIT" 3691 - }, 3692 - "node_modules/color-string": { 3693 - "version": "1.9.1", 3694 - "license": "MIT", 3695 - "dependencies": { 3696 - "color-name": "^1.0.0", 3697 - "simple-swizzle": "^0.2.2" 3698 - } 3699 - }, 3700 - "node_modules/colorette": { 3701 - "version": "2.0.20", 3702 - "license": "MIT" 3703 - }, 3704 - "node_modules/combined-stream": { 3705 - "version": "1.0.8", 3706 - "license": "MIT", 3707 - "dependencies": { 3708 - "delayed-stream": "~1.0.0" 3709 - }, 3710 - "engines": { 3711 - "node": ">= 0.8" 3712 - } 3713 - }, 3714 - "node_modules/commander": { 3715 - "version": "13.1.0", 3716 - "license": "MIT", 3717 - "engines": { 3718 - "node": ">=18" 3719 - } 3720 - }, 3721 - "node_modules/compressible": { 3722 - "version": "2.0.18", 3723 - "license": "MIT", 3724 - "dependencies": { 3725 - "mime-db": ">= 1.43.0 < 2" 3726 - }, 3727 - "engines": { 3728 - "node": ">= 0.6" 3729 - } 3730 - }, 3731 - "node_modules/compression": { 3732 - "version": "1.7.5", 3733 - "license": "MIT", 3734 - "dependencies": { 3735 - "bytes": "3.1.2", 3736 - "compressible": "~2.0.18", 3737 - "debug": "2.6.9", 3738 - "negotiator": "~0.6.4", 3739 - "on-headers": "~1.0.2", 3740 - "safe-buffer": "5.2.1", 3741 - "vary": "~1.1.2" 3742 - }, 3743 - "engines": { 3744 - "node": ">= 0.8.0" 3745 - } 3746 - }, 3747 - "node_modules/compression/node_modules/debug": { 3748 - "version": "2.6.9", 3749 - "license": "MIT", 3750 - "dependencies": { 3751 - "ms": "2.0.0" 3752 - } 3753 - }, 3754 - "node_modules/compression/node_modules/debug/node_modules/ms": { 3755 - "version": "2.0.0", 3756 - "license": "MIT" 3757 - }, 3758 - "node_modules/concat-map": { 3759 - "version": "0.0.1", 3760 - "dev": true, 3761 - "license": "MIT" 3762 - }, 3763 - "node_modules/content-disposition": { 3764 - "version": "0.5.4", 3765 - "license": "MIT", 3766 - "dependencies": { 3767 - "safe-buffer": "5.2.1" 3768 - }, 3769 - "engines": { 3770 - "node": ">= 0.6" 3771 - } 3772 - }, 3773 - "node_modules/content-type": { 3774 - "version": "1.0.5", 3775 - "license": "MIT", 3776 - "engines": { 3777 - "node": ">= 0.6" 3778 - } 3779 - }, 3780 - "node_modules/cookie": { 3781 - "version": "0.7.1", 3782 - "license": "MIT", 3783 - "engines": { 3784 - "node": ">= 0.6" 3785 - } 3786 - }, 3787 - "node_modules/cookie-signature": { 3788 - "version": "1.0.6", 3789 - "license": "MIT" 3790 - }, 3791 - "node_modules/cors": { 3792 - "version": "2.8.5", 3793 - "license": "MIT", 3794 - "dependencies": { 3795 - "object-assign": "^4", 3796 - "vary": "^1" 3797 - }, 3798 - "engines": { 3799 - "node": ">= 0.10" 3800 - } 3801 - }, 3802 - "node_modules/cross-spawn": { 3803 - "version": "7.0.6", 3804 - "license": "MIT", 3805 - "dependencies": { 3806 - "path-key": "^3.1.0", 3807 - "shebang-command": "^2.0.0", 3808 - "which": "^2.0.1" 3809 - }, 3810 - "engines": { 3811 - "node": ">= 8" 3812 - } 3813 - }, 3814 - "node_modules/data-view-buffer": { 3815 - "version": "1.0.2", 3816 - "dev": true, 3817 - "license": "MIT", 3818 - "dependencies": { 3819 - "call-bound": "^1.0.3", 3820 - "es-errors": "^1.3.0", 3821 - "is-data-view": "^1.0.2" 3822 - }, 3823 - "engines": { 3824 - "node": ">= 0.4" 3825 - }, 3826 - "funding": { 3827 - "url": "https://github.com/sponsors/ljharb" 3828 - } 3829 - }, 3830 - "node_modules/data-view-byte-length": { 3831 - "version": "1.0.2", 3832 - "dev": true, 3833 - "license": "MIT", 3834 - "dependencies": { 3835 - "call-bound": "^1.0.3", 3836 - "es-errors": "^1.3.0", 3837 - "is-data-view": "^1.0.2" 3838 - }, 3839 - "engines": { 3840 - "node": ">= 0.4" 3841 - }, 3842 - "funding": { 3843 - "url": "https://github.com/sponsors/inspect-js" 3844 - } 3845 - }, 3846 - "node_modules/data-view-byte-offset": { 3847 - "version": "1.0.1", 3848 - "dev": true, 3849 - "license": "MIT", 3850 - "dependencies": { 3851 - "call-bound": "^1.0.2", 3852 - "es-errors": "^1.3.0", 3853 - "is-data-view": "^1.0.1" 3854 - }, 3855 - "engines": { 3856 - "node": ">= 0.4" 3857 - }, 3858 - "funding": { 3859 - "url": "https://github.com/sponsors/ljharb" 3860 - } 3861 - }, 3862 - "node_modules/dateformat": { 3863 - "version": "4.6.3", 3864 - "license": "MIT", 3865 - "engines": { 3866 - "node": "*" 3867 - } 3868 - }, 3869 - "node_modules/debug": { 3870 - "version": "4.4.3", 3871 - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", 3872 - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", 3873 - "license": "MIT", 3874 - "dependencies": { 3875 - "ms": "^2.1.3" 3876 - }, 3877 - "engines": { 3878 - "node": ">=6.0" 3879 - }, 3880 - "peerDependenciesMeta": { 3881 - "supports-color": { 3882 - "optional": true 3883 - } 3884 - } 3885 - }, 3886 - "node_modules/deep-eql": { 3887 - "version": "5.0.2", 3888 - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", 3889 - "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", 3890 - "dev": true, 3891 - "license": "MIT", 3892 - "engines": { 3893 - "node": ">=6" 3894 - } 3895 - }, 3896 - "node_modules/deep-is": { 3897 - "version": "0.1.4", 3898 - "dev": true, 3899 - "license": "MIT" 3900 - }, 3901 - "node_modules/define-data-property": { 3902 - "version": "1.1.4", 3903 - "dev": true, 3904 - "license": "MIT", 3905 - "dependencies": { 3906 - "es-define-property": "^1.0.0", 3907 - "es-errors": "^1.3.0", 3908 - "gopd": "^1.0.1" 3909 - }, 3910 - "engines": { 3911 - "node": ">= 0.4" 3912 - }, 3913 - "funding": { 3914 - "url": "https://github.com/sponsors/ljharb" 3915 - } 3916 - }, 3917 - "node_modules/define-properties": { 3918 - "version": "1.2.1", 3919 - "dev": true, 3920 - "license": "MIT", 3921 - "dependencies": { 3922 - "define-data-property": "^1.0.1", 3923 - "has-property-descriptors": "^1.0.0", 3924 - "object-keys": "^1.1.1" 3925 - }, 3926 - "engines": { 3927 - "node": ">= 0.4" 3928 - }, 3929 - "funding": { 3930 - "url": "https://github.com/sponsors/ljharb" 3931 - } 3932 - }, 3933 - "node_modules/delay": { 3934 - "version": "5.0.0", 3935 - "license": "MIT", 3936 - "engines": { 3937 - "node": ">=10" 3938 - }, 3939 - "funding": { 3940 - "url": "https://github.com/sponsors/sindresorhus" 3941 - } 3942 - }, 3943 - "node_modules/delayed-stream": { 3944 - "version": "1.0.0", 3945 - "license": "MIT", 3946 - "engines": { 3947 - "node": ">=0.4.0" 3948 - } 3949 - }, 3950 - "node_modules/denque": { 3951 - "version": "2.1.0", 3952 - "license": "Apache-2.0", 3953 - "engines": { 3954 - "node": ">=0.10" 3955 - } 3956 - }, 3957 - "node_modules/depd": { 3958 - "version": "2.0.0", 3959 - "license": "MIT", 3960 - "engines": { 3961 - "node": ">= 0.8" 3962 - } 3963 - }, 3964 - "node_modules/destroy": { 3965 - "version": "1.2.0", 3966 - "license": "MIT", 3967 - "engines": { 3968 - "node": ">= 0.8", 3969 - "npm": "1.2.8000 || >= 1.4.16" 3970 - } 3971 - }, 3972 - "node_modules/detect-libc": { 3973 - "version": "2.0.3", 3974 - "license": "Apache-2.0", 3975 - "engines": { 3976 - "node": ">=8" 3977 - } 3978 - }, 3979 - "node_modules/dir-glob": { 3980 - "version": "3.0.1", 3981 - "dev": true, 3982 - "license": "MIT", 3983 - "dependencies": { 3984 - "path-type": "^4.0.0" 3985 - }, 3986 - "engines": { 3987 - "node": ">=8" 3988 - } 3989 - }, 3990 - "node_modules/doctrine": { 3991 - "version": "2.1.0", 3992 - "dev": true, 3993 - "license": "Apache-2.0", 3994 - "dependencies": { 3995 - "esutils": "^2.0.2" 3996 - }, 3997 - "engines": { 3998 - "node": ">=0.10.0" 3999 - } 4000 - }, 4001 - "node_modules/dotenv": { 4002 - "version": "16.5.0", 4003 - "license": "BSD-2-Clause", 4004 - "engines": { 4005 - "node": ">=12" 4006 - }, 4007 - "funding": { 4008 - "url": "https://dotenvx.com" 4009 - } 4010 - }, 4011 - "node_modules/dunder-proto": { 4012 - "version": "1.0.1", 4013 - "license": "MIT", 4014 - "dependencies": { 4015 - "call-bind-apply-helpers": "^1.0.1", 4016 - "es-errors": "^1.3.0", 4017 - "gopd": "^1.2.0" 4018 - }, 4019 - "engines": { 4020 - "node": ">= 0.4" 4021 - } 4022 - }, 4023 - "node_modules/duplexify": { 4024 - "version": "4.1.3", 4025 - "license": "MIT", 4026 - "dependencies": { 4027 - "end-of-stream": "^1.4.1", 4028 - "inherits": "^2.0.3", 4029 - "readable-stream": "^3.1.1", 4030 - "stream-shift": "^1.0.2" 4031 - } 4032 - }, 4033 - "node_modules/duplexify/node_modules/readable-stream": { 4034 - "version": "3.6.2", 4035 - "license": "MIT", 4036 - "dependencies": { 4037 - "inherits": "^2.0.3", 4038 - "string_decoder": "^1.1.1", 4039 - "util-deprecate": "^1.0.1" 4040 - }, 4041 - "engines": { 4042 - "node": ">= 6" 4043 - } 4044 - }, 4045 - "node_modules/ee-first": { 4046 - "version": "1.1.1", 4047 - "license": "MIT" 4048 - }, 4049 - "node_modules/elliptic": { 4050 - "version": "6.6.1", 4051 - "license": "MIT", 4052 - "dependencies": { 4053 - "bn.js": "^4.11.9", 4054 - "brorand": "^1.1.0", 4055 - "hash.js": "^1.0.0", 4056 - "hmac-drbg": "^1.0.1", 4057 - "inherits": "^2.0.4", 4058 - "minimalistic-assert": "^1.0.1", 4059 - "minimalistic-crypto-utils": "^1.0.1" 4060 - } 4061 - }, 4062 - "node_modules/emoji-regex": { 4063 - "version": "10.4.0", 4064 - "license": "MIT" 4065 - }, 4066 - "node_modules/encodeurl": { 4067 - "version": "2.0.0", 4068 - "license": "MIT", 4069 - "engines": { 4070 - "node": ">= 0.8" 4071 - } 4072 - }, 4073 - "node_modules/end-of-stream": { 4074 - "version": "1.4.4", 4075 - "license": "MIT", 4076 - "dependencies": { 4077 - "once": "^1.4.0" 4078 - } 4079 - }, 4080 - "node_modules/environment": { 4081 - "version": "1.1.0", 4082 - "license": "MIT", 4083 - "engines": { 4084 - "node": ">=18" 4085 - }, 4086 - "funding": { 4087 - "url": "https://github.com/sponsors/sindresorhus" 4088 - } 4089 - }, 4090 - "node_modules/es-abstract": { 4091 - "version": "1.24.0", 4092 - "dev": true, 4093 - "license": "MIT", 4094 - "dependencies": { 4095 - "array-buffer-byte-length": "^1.0.2", 4096 - "arraybuffer.prototype.slice": "^1.0.4", 4097 - "available-typed-arrays": "^1.0.7", 4098 - "call-bind": "^1.0.8", 4099 - "call-bound": "^1.0.4", 4100 - "data-view-buffer": "^1.0.2", 4101 - "data-view-byte-length": "^1.0.2", 4102 - "data-view-byte-offset": "^1.0.1", 4103 - "es-define-property": "^1.0.1", 4104 - "es-errors": "^1.3.0", 4105 - "es-object-atoms": "^1.1.1", 4106 - "es-set-tostringtag": "^2.1.0", 4107 - "es-to-primitive": "^1.3.0", 4108 - "function.prototype.name": "^1.1.8", 4109 - "get-intrinsic": "^1.3.0", 4110 - "get-proto": "^1.0.1", 4111 - "get-symbol-description": "^1.1.0", 4112 - "globalthis": "^1.0.4", 4113 - "gopd": "^1.2.0", 4114 - "has-property-descriptors": "^1.0.2", 4115 - "has-proto": "^1.2.0", 4116 - "has-symbols": "^1.1.0", 4117 - "hasown": "^2.0.2", 4118 - "internal-slot": "^1.1.0", 4119 - "is-array-buffer": "^3.0.5", 4120 - "is-callable": "^1.2.7", 4121 - "is-data-view": "^1.0.2", 4122 - "is-negative-zero": "^2.0.3", 4123 - "is-regex": "^1.2.1", 4124 - "is-set": "^2.0.3", 4125 - "is-shared-array-buffer": "^1.0.4", 4126 - "is-string": "^1.1.1", 4127 - "is-typed-array": "^1.1.15", 4128 - "is-weakref": "^1.1.1", 4129 - "math-intrinsics": "^1.1.0", 4130 - "object-inspect": "^1.13.4", 4131 - "object-keys": "^1.1.1", 4132 - "object.assign": "^4.1.7", 4133 - "own-keys": "^1.0.1", 4134 - "regexp.prototype.flags": "^1.5.4", 4135 - "safe-array-concat": "^1.1.3", 4136 - "safe-push-apply": "^1.0.0", 4137 - "safe-regex-test": "^1.1.0", 4138 - "set-proto": "^1.0.0", 4139 - "stop-iteration-iterator": "^1.1.0", 4140 - "string.prototype.trim": "^1.2.10", 4141 - "string.prototype.trimend": "^1.0.9", 4142 - "string.prototype.trimstart": "^1.0.8", 4143 - "typed-array-buffer": "^1.0.3", 4144 - "typed-array-byte-length": "^1.0.3", 4145 - "typed-array-byte-offset": "^1.0.4", 4146 - "typed-array-length": "^1.0.7", 4147 - "unbox-primitive": "^1.1.0", 4148 - "which-typed-array": "^1.1.19" 4149 - }, 4150 - "engines": { 4151 - "node": ">= 0.4" 4152 - }, 4153 - "funding": { 4154 - "url": "https://github.com/sponsors/ljharb" 4155 - } 4156 - }, 4157 - "node_modules/es-define-property": { 4158 - "version": "1.0.1", 4159 - "license": "MIT", 4160 - "engines": { 4161 - "node": ">= 0.4" 4162 - } 4163 - }, 4164 - "node_modules/es-errors": { 4165 - "version": "1.3.0", 4166 - "license": "MIT", 4167 - "engines": { 4168 - "node": ">= 0.4" 4169 - } 4170 - }, 4171 - "node_modules/es-module-lexer": { 4172 - "version": "1.7.0", 4173 - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", 4174 - "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", 4175 - "dev": true, 4176 - "license": "MIT" 4177 - }, 4178 - "node_modules/es-object-atoms": { 4179 - "version": "1.1.1", 4180 - "dev": true, 4181 - "license": "MIT", 4182 - "dependencies": { 4183 - "es-errors": "^1.3.0" 4184 - }, 4185 - "engines": { 4186 - "node": ">= 0.4" 4187 - } 4188 - }, 4189 - "node_modules/es-set-tostringtag": { 4190 - "version": "2.1.0", 4191 - "dev": true, 4192 - "license": "MIT", 4193 - "dependencies": { 4194 - "es-errors": "^1.3.0", 4195 - "get-intrinsic": "^1.2.6", 4196 - "has-tostringtag": "^1.0.2", 4197 - "hasown": "^2.0.2" 4198 - }, 4199 - "engines": { 4200 - "node": ">= 0.4" 4201 - } 4202 - }, 4203 - "node_modules/es-shim-unscopables": { 4204 - "version": "1.1.0", 4205 - "dev": true, 4206 - "license": "MIT", 4207 - "dependencies": { 4208 - "hasown": "^2.0.2" 4209 - }, 4210 - "engines": { 4211 - "node": ">= 0.4" 4212 - } 4213 - }, 4214 - "node_modules/es-to-primitive": { 4215 - "version": "1.3.0", 4216 - "dev": true, 4217 - "license": "MIT", 4218 - "dependencies": { 4219 - "is-callable": "^1.2.7", 4220 - "is-date-object": "^1.0.5", 4221 - "is-symbol": "^1.0.4" 4222 - }, 4223 - "engines": { 4224 - "node": ">= 0.4" 4225 - }, 4226 - "funding": { 4227 - "url": "https://github.com/sponsors/ljharb" 4228 - } 4229 - }, 4230 - "node_modules/esbuild": { 4231 - "version": "0.25.5", 4232 - "dev": true, 4233 - "hasInstallScript": true, 4234 - "license": "MIT", 4235 - "bin": { 4236 - "esbuild": "bin/esbuild" 4237 - }, 4238 - "engines": { 4239 - "node": ">=18" 4240 - }, 4241 - "optionalDependencies": { 4242 - "@esbuild/aix-ppc64": "0.25.5", 4243 - "@esbuild/android-arm": "0.25.5", 4244 - "@esbuild/android-arm64": "0.25.5", 4245 - "@esbuild/android-x64": "0.25.5", 4246 - "@esbuild/darwin-arm64": "0.25.5", 4247 - "@esbuild/darwin-x64": "0.25.5", 4248 - "@esbuild/freebsd-arm64": "0.25.5", 4249 - "@esbuild/freebsd-x64": "0.25.5", 4250 - "@esbuild/linux-arm": "0.25.5", 4251 - "@esbuild/linux-arm64": "0.25.5", 4252 - "@esbuild/linux-ia32": "0.25.5", 4253 - "@esbuild/linux-loong64": "0.25.5", 4254 - "@esbuild/linux-mips64el": "0.25.5", 4255 - "@esbuild/linux-ppc64": "0.25.5", 4256 - "@esbuild/linux-riscv64": "0.25.5", 4257 - "@esbuild/linux-s390x": "0.25.5", 4258 - "@esbuild/linux-x64": "0.25.5", 4259 - "@esbuild/netbsd-arm64": "0.25.5", 4260 - "@esbuild/netbsd-x64": "0.25.5", 4261 - "@esbuild/openbsd-arm64": "0.25.5", 4262 - "@esbuild/openbsd-x64": "0.25.5", 4263 - "@esbuild/sunos-x64": "0.25.5", 4264 - "@esbuild/win32-arm64": "0.25.5", 4265 - "@esbuild/win32-ia32": "0.25.5", 4266 - "@esbuild/win32-x64": "0.25.5" 4267 - } 4268 - }, 4269 - "node_modules/escape-html": { 4270 - "version": "1.0.3", 4271 - "license": "MIT" 4272 - }, 4273 - "node_modules/escape-string-regexp": { 4274 - "version": "4.0.0", 4275 - "dev": true, 4276 - "license": "MIT", 4277 - "engines": { 4278 - "node": ">=10" 4279 - }, 4280 - "funding": { 4281 - "url": "https://github.com/sponsors/sindresorhus" 4282 - } 4283 - }, 4284 - "node_modules/eslint": { 4285 - "version": "9.29.0", 4286 - "dev": true, 4287 - "license": "MIT", 4288 - "dependencies": { 4289 - "@eslint-community/eslint-utils": "^4.2.0", 4290 - "@eslint-community/regexpp": "^4.12.1", 4291 - "@eslint/config-array": "^0.20.1", 4292 - "@eslint/config-helpers": "^0.2.1", 4293 - "@eslint/core": "^0.14.0", 4294 - "@eslint/eslintrc": "^3.3.1", 4295 - "@eslint/js": "9.29.0", 4296 - "@eslint/plugin-kit": "^0.3.1", 4297 - "@humanfs/node": "^0.16.6", 4298 - "@humanwhocodes/module-importer": "^1.0.1", 4299 - "@humanwhocodes/retry": "^0.4.2", 4300 - "@types/estree": "^1.0.6", 4301 - "@types/json-schema": "^7.0.15", 4302 - "ajv": "^6.12.4", 4303 - "chalk": "^4.0.0", 4304 - "cross-spawn": "^7.0.6", 4305 - "debug": "^4.3.2", 4306 - "escape-string-regexp": "^4.0.0", 4307 - "eslint-scope": "^8.4.0", 4308 - "eslint-visitor-keys": "^4.2.1", 4309 - "espree": "^10.4.0", 4310 - "esquery": "^1.5.0", 4311 - "esutils": "^2.0.2", 4312 - "fast-deep-equal": "^3.1.3", 4313 - "file-entry-cache": "^8.0.0", 4314 - "find-up": "^5.0.0", 4315 - "glob-parent": "^6.0.2", 4316 - "ignore": "^5.2.0", 4317 - "imurmurhash": "^0.1.4", 4318 - "is-glob": "^4.0.0", 4319 - "json-stable-stringify-without-jsonify": "^1.0.1", 4320 - "lodash.merge": "^4.6.2", 4321 - "minimatch": "^3.1.2", 4322 - "natural-compare": "^1.4.0", 4323 - "optionator": "^0.9.3" 4324 - }, 4325 - "bin": { 4326 - "eslint": "bin/eslint.js" 4327 - }, 4328 - "engines": { 4329 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 4330 - }, 4331 - "funding": { 4332 - "url": "https://eslint.org/donate" 4333 - }, 4334 - "peerDependencies": { 4335 - "jiti": "*" 4336 - }, 4337 - "peerDependenciesMeta": { 4338 - "jiti": { 4339 - "optional": true 4340 - } 4341 - } 4342 - }, 4343 - "node_modules/eslint-config-prettier": { 4344 - "version": "10.1.8", 4345 - "dev": true, 4346 - "license": "MIT", 4347 - "bin": { 4348 - "eslint-config-prettier": "bin/cli.js" 4349 - }, 4350 - "funding": { 4351 - "url": "https://opencollective.com/eslint-config-prettier" 4352 - }, 4353 - "peerDependencies": { 4354 - "eslint": ">=7.0.0" 4355 - } 4356 - }, 4357 - "node_modules/eslint-import-resolver-node": { 4358 - "version": "0.3.9", 4359 - "dev": true, 4360 - "license": "MIT", 4361 - "dependencies": { 4362 - "debug": "^3.2.7", 4363 - "is-core-module": "^2.13.0", 4364 - "resolve": "^1.22.4" 4365 - } 4366 - }, 4367 - "node_modules/eslint-import-resolver-node/node_modules/debug": { 4368 - "version": "3.2.7", 4369 - "dev": true, 4370 - "license": "MIT", 4371 - "dependencies": { 4372 - "ms": "^2.1.1" 4373 - } 4374 - }, 4375 - "node_modules/eslint-module-utils": { 4376 - "version": "2.12.1", 4377 - "dev": true, 4378 - "license": "MIT", 4379 - "dependencies": { 4380 - "debug": "^3.2.7" 4381 - }, 4382 - "engines": { 4383 - "node": ">=4" 4384 - }, 4385 - "peerDependenciesMeta": { 4386 - "eslint": { 4387 - "optional": true 4388 - } 4389 - } 4390 - }, 4391 - "node_modules/eslint-module-utils/node_modules/debug": { 4392 - "version": "3.2.7", 4393 - "dev": true, 4394 - "license": "MIT", 4395 - "dependencies": { 4396 - "ms": "^2.1.1" 4397 - } 4398 - }, 4399 - "node_modules/eslint-plugin-import": { 4400 - "version": "2.32.0", 4401 - "dev": true, 4402 - "license": "MIT", 4403 - "dependencies": { 4404 - "@rtsao/scc": "^1.1.0", 4405 - "array-includes": "^3.1.9", 4406 - "array.prototype.findlastindex": "^1.2.6", 4407 - "array.prototype.flat": "^1.3.3", 4408 - "array.prototype.flatmap": "^1.3.3", 4409 - "debug": "^3.2.7", 4410 - "doctrine": "^2.1.0", 4411 - "eslint-import-resolver-node": "^0.3.9", 4412 - "eslint-module-utils": "^2.12.1", 4413 - "hasown": "^2.0.2", 4414 - "is-core-module": "^2.16.1", 4415 - "is-glob": "^4.0.3", 4416 - "minimatch": "^3.1.2", 4417 - "object.fromentries": "^2.0.8", 4418 - "object.groupby": "^1.0.3", 4419 - "object.values": "^1.2.1", 4420 - "semver": "^6.3.1", 4421 - "string.prototype.trimend": "^1.0.9", 4422 - "tsconfig-paths": "^3.15.0" 4423 - }, 4424 - "engines": { 4425 - "node": ">=4" 4426 - }, 4427 - "peerDependencies": { 4428 - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" 4429 - } 4430 - }, 4431 - "node_modules/eslint-plugin-import/node_modules/debug": { 4432 - "version": "3.2.7", 4433 - "dev": true, 4434 - "license": "MIT", 4435 - "dependencies": { 4436 - "ms": "^2.1.1" 4437 - } 4438 - }, 4439 - "node_modules/eslint-plugin-import/node_modules/semver": { 4440 - "version": "6.3.1", 4441 - "dev": true, 4442 - "license": "ISC", 4443 - "bin": { 4444 - "semver": "bin/semver.js" 4445 - } 4446 - }, 4447 - "node_modules/eslint-plugin-prettier": { 4448 - "version": "5.5.4", 4449 - "dev": true, 4450 - "license": "MIT", 4451 - "dependencies": { 4452 - "prettier-linter-helpers": "^1.0.0", 4453 - "synckit": "^0.11.7" 4454 - }, 4455 - "engines": { 4456 - "node": "^14.18.0 || >=16.0.0" 4457 - }, 4458 - "funding": { 4459 - "url": "https://opencollective.com/eslint-plugin-prettier" 4460 - }, 4461 - "peerDependencies": { 4462 - "@types/eslint": ">=8.0.0", 4463 - "eslint": ">=8.0.0", 4464 - "eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0", 4465 - "prettier": ">=3.0.0" 4466 - }, 4467 - "peerDependenciesMeta": { 4468 - "@types/eslint": { 4469 - "optional": true 4470 - }, 4471 - "eslint-config-prettier": { 4472 - "optional": true 4473 - } 4474 - } 4475 - }, 4476 - "node_modules/eslint-scope": { 4477 - "version": "8.4.0", 4478 - "dev": true, 4479 - "license": "BSD-2-Clause", 4480 - "dependencies": { 4481 - "esrecurse": "^4.3.0", 4482 - "estraverse": "^5.2.0" 4483 - }, 4484 - "engines": { 4485 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 4486 - }, 4487 - "funding": { 4488 - "url": "https://opencollective.com/eslint" 4489 - } 4490 - }, 4491 - "node_modules/eslint-visitor-keys": { 4492 - "version": "4.2.1", 4493 - "dev": true, 4494 - "license": "Apache-2.0", 4495 - "engines": { 4496 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 4497 - }, 4498 - "funding": { 4499 - "url": "https://opencollective.com/eslint" 4500 - } 4501 - }, 4502 - "node_modules/eslint/node_modules/@eslint-community/eslint-utils": { 4503 - "version": "4.4.1", 4504 - "dev": true, 4505 - "license": "MIT", 4506 - "dependencies": { 4507 - "eslint-visitor-keys": "^3.4.3" 4508 - }, 4509 - "engines": { 4510 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 4511 - }, 4512 - "funding": { 4513 - "url": "https://opencollective.com/eslint" 4514 - }, 4515 - "peerDependencies": { 4516 - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" 4517 - } 4518 - }, 4519 - "node_modules/eslint/node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { 4520 - "version": "3.4.3", 4521 - "dev": true, 4522 - "license": "Apache-2.0", 4523 - "engines": { 4524 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 4525 - }, 4526 - "funding": { 4527 - "url": "https://opencollective.com/eslint" 4528 - } 4529 - }, 4530 - "node_modules/espree": { 4531 - "version": "10.4.0", 4532 - "dev": true, 4533 - "license": "BSD-2-Clause", 4534 - "dependencies": { 4535 - "acorn": "^8.15.0", 4536 - "acorn-jsx": "^5.3.2", 4537 - "eslint-visitor-keys": "^4.2.1" 4538 - }, 4539 - "engines": { 4540 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 4541 - }, 4542 - "funding": { 4543 - "url": "https://opencollective.com/eslint" 4544 - } 4545 - }, 4546 - "node_modules/esquery": { 4547 - "version": "1.6.0", 4548 - "dev": true, 4549 - "license": "BSD-3-Clause", 4550 - "dependencies": { 4551 - "estraverse": "^5.1.0" 4552 - }, 4553 - "engines": { 4554 - "node": ">=0.10" 4555 - } 4556 - }, 4557 - "node_modules/esrecurse": { 4558 - "version": "4.3.0", 4559 - "dev": true, 4560 - "license": "BSD-2-Clause", 4561 - "dependencies": { 4562 - "estraverse": "^5.2.0" 4563 - }, 4564 - "engines": { 4565 - "node": ">=4.0" 4566 - } 4567 - }, 4568 - "node_modules/estraverse": { 4569 - "version": "5.3.0", 4570 - "dev": true, 4571 - "license": "BSD-2-Clause", 4572 - "engines": { 4573 - "node": ">=4.0" 4574 - } 4575 - }, 4576 - "node_modules/estree-walker": { 4577 - "version": "3.0.3", 4578 - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", 4579 - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", 4580 - "dev": true, 4581 - "license": "MIT", 4582 - "dependencies": { 4583 - "@types/estree": "^1.0.0" 4584 - } 4585 - }, 4586 - "node_modules/esutils": { 4587 - "version": "2.0.3", 4588 - "dev": true, 4589 - "license": "BSD-2-Clause", 4590 - "engines": { 4591 - "node": ">=0.10.0" 4592 - } 4593 - }, 4594 - "node_modules/etag": { 4595 - "version": "1.8.1", 4596 - "license": "MIT", 4597 - "engines": { 4598 - "node": ">= 0.6" 4599 - } 4600 - }, 4601 - "node_modules/event-target-shim": { 4602 - "version": "6.0.2", 4603 - "license": "MIT", 4604 - "engines": { 4605 - "node": ">=10.13.0" 4606 - }, 4607 - "funding": { 4608 - "url": "https://github.com/sponsors/mysticatea" 4609 - } 4610 - }, 4611 - "node_modules/eventemitter3": { 4612 - "version": "4.0.7", 4613 - "license": "MIT" 4614 - }, 4615 - "node_modules/events": { 4616 - "version": "3.3.0", 4617 - "license": "MIT", 4618 - "engines": { 4619 - "node": ">=0.8.x" 4620 - } 4621 - }, 4622 - "node_modules/execa": { 4623 - "version": "8.0.1", 4624 - "license": "MIT", 4625 - "dependencies": { 4626 - "cross-spawn": "^7.0.3", 4627 - "get-stream": "^8.0.1", 4628 - "human-signals": "^5.0.0", 4629 - "is-stream": "^3.0.0", 4630 - "merge-stream": "^2.0.0", 4631 - "npm-run-path": "^5.1.0", 4632 - "onetime": "^6.0.0", 4633 - "signal-exit": "^4.1.0", 4634 - "strip-final-newline": "^3.0.0" 4635 - }, 4636 - "engines": { 4637 - "node": ">=16.17" 4638 - }, 4639 - "funding": { 4640 - "url": "https://github.com/sindresorhus/execa?sponsor=1" 4641 - } 4642 - }, 4643 - "node_modules/expect-type": { 4644 - "version": "1.2.2", 4645 - "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.2.2.tgz", 4646 - "integrity": "sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==", 4647 - "dev": true, 4648 - "license": "Apache-2.0", 4649 - "engines": { 4650 - "node": ">=12.0.0" 4651 - } 4652 - }, 4653 - "node_modules/express": { 4654 - "version": "4.21.2", 4655 - "license": "MIT", 4656 - "dependencies": { 4657 - "accepts": "~1.3.8", 4658 - "array-flatten": "1.1.1", 4659 - "body-parser": "1.20.3", 4660 - "content-disposition": "0.5.4", 4661 - "content-type": "~1.0.4", 4662 - "cookie": "0.7.1", 4663 - "cookie-signature": "1.0.6", 4664 - "debug": "2.6.9", 4665 - "depd": "2.0.0", 4666 - "encodeurl": "~2.0.0", 4667 - "escape-html": "~1.0.3", 4668 - "etag": "~1.8.1", 4669 - "finalhandler": "1.3.1", 4670 - "fresh": "0.5.2", 4671 - "http-errors": "2.0.0", 4672 - "merge-descriptors": "1.0.3", 4673 - "methods": "~1.1.2", 4674 - "on-finished": "2.4.1", 4675 - "parseurl": "~1.3.3", 4676 - "path-to-regexp": "0.1.12", 4677 - "proxy-addr": "~2.0.7", 4678 - "qs": "6.13.0", 4679 - "range-parser": "~1.2.1", 4680 - "safe-buffer": "5.2.1", 4681 - "send": "0.19.0", 4682 - "serve-static": "1.16.2", 4683 - "setprototypeof": "1.2.0", 4684 - "statuses": "2.0.1", 4685 - "type-is": "~1.6.18", 4686 - "utils-merge": "1.0.1", 4687 - "vary": "~1.1.2" 4688 - }, 4689 - "engines": { 4690 - "node": ">= 0.10.0" 4691 - }, 4692 - "funding": { 4693 - "type": "opencollective", 4694 - "url": "https://opencollective.com/express" 4695 - } 4696 - }, 4697 - "node_modules/express/node_modules/debug": { 4698 - "version": "2.6.9", 4699 - "license": "MIT", 4700 - "dependencies": { 4701 - "ms": "2.0.0" 4702 - } 4703 - }, 4704 - "node_modules/express/node_modules/debug/node_modules/ms": { 4705 - "version": "2.0.0", 4706 - "license": "MIT" 4707 - }, 4708 - "node_modules/fast-content-type-parse": { 4709 - "version": "1.1.0", 4710 - "license": "MIT" 4711 - }, 4712 - "node_modules/fast-copy": { 4713 - "version": "3.0.2", 4714 - "license": "MIT" 4715 - }, 4716 - "node_modules/fast-decode-uri-component": { 4717 - "version": "1.0.1", 4718 - "license": "MIT" 4719 - }, 4720 - "node_modules/fast-deep-equal": { 4721 - "version": "3.1.3", 4722 - "license": "MIT" 4723 - }, 4724 - "node_modules/fast-diff": { 4725 - "version": "1.3.0", 4726 - "dev": true, 4727 - "license": "Apache-2.0" 4728 - }, 4729 - "node_modules/fast-glob": { 4730 - "version": "3.3.2", 4731 - "dev": true, 4732 - "license": "MIT", 4733 - "dependencies": { 4734 - "@nodelib/fs.stat": "^2.0.2", 4735 - "@nodelib/fs.walk": "^1.2.3", 4736 - "glob-parent": "^5.1.2", 4737 - "merge2": "^1.3.0", 4738 - "micromatch": "^4.0.4" 4739 - }, 4740 - "engines": { 4741 - "node": ">=8.6.0" 4742 - } 4743 - }, 4744 - "node_modules/fast-glob/node_modules/glob-parent": { 4745 - "version": "5.1.2", 4746 - "dev": true, 4747 - "license": "ISC", 4748 - "dependencies": { 4749 - "is-glob": "^4.0.1" 4750 - }, 4751 - "engines": { 4752 - "node": ">= 6" 4753 - } 4754 - }, 4755 - "node_modules/fast-json-stable-stringify": { 4756 - "version": "2.1.0", 4757 - "dev": true, 4758 - "license": "MIT" 4759 - }, 4760 - "node_modules/fast-json-stringify": { 4761 - "version": "5.16.1", 4762 - "license": "MIT", 4763 - "dependencies": { 4764 - "@fastify/merge-json-schemas": "^0.1.0", 4765 - "ajv": "^8.10.0", 4766 - "ajv-formats": "^3.0.1", 4767 - "fast-deep-equal": "^3.1.3", 4768 - "fast-uri": "^2.1.0", 4769 - "json-schema-ref-resolver": "^1.0.1", 4770 - "rfdc": "^1.2.0" 4771 - } 4772 - }, 4773 - "node_modules/fast-json-stringify/node_modules/ajv": { 4774 - "version": "8.17.1", 4775 - "license": "MIT", 4776 - "dependencies": { 4777 - "fast-deep-equal": "^3.1.3", 4778 - "fast-uri": "^3.0.1", 4779 - "json-schema-traverse": "^1.0.0", 4780 - "require-from-string": "^2.0.2" 4781 - }, 4782 - "funding": { 4783 - "type": "github", 4784 - "url": "https://github.com/sponsors/epoberezkin" 4785 - } 4786 - }, 4787 - "node_modules/fast-json-stringify/node_modules/ajv-formats": { 4788 - "version": "3.0.1", 4789 - "license": "MIT", 4790 - "dependencies": { 4791 - "ajv": "^8.0.0" 4792 - }, 4793 - "peerDependencies": { 4794 - "ajv": "^8.0.0" 4795 - }, 4796 - "peerDependenciesMeta": { 4797 - "ajv": { 4798 - "optional": true 4799 - } 4800 - } 4801 - }, 4802 - "node_modules/fast-json-stringify/node_modules/ajv/node_modules/fast-uri": { 4803 - "version": "3.0.3", 4804 - "license": "BSD-3-Clause" 4805 - }, 4806 - "node_modules/fast-json-stringify/node_modules/ajv/node_modules/json-schema-traverse": { 4807 - "version": "1.0.0", 4808 - "license": "MIT" 4809 - }, 4810 - "node_modules/fast-levenshtein": { 4811 - "version": "2.0.6", 4812 - "dev": true, 4813 - "license": "MIT" 4814 - }, 4815 - "node_modules/fast-printf": { 4816 - "version": "1.6.10", 4817 - "license": "BSD-3-Clause", 4818 - "engines": { 4819 - "node": ">=10.0" 4820 - } 4821 - }, 4822 - "node_modules/fast-querystring": { 4823 - "version": "1.1.2", 4824 - "license": "MIT", 4825 - "dependencies": { 4826 - "fast-decode-uri-component": "^1.0.1" 4827 - } 4828 - }, 4829 - "node_modules/fast-redact": { 4830 - "version": "3.5.0", 4831 - "license": "MIT", 4832 - "engines": { 4833 - "node": ">=6" 4834 - } 4835 - }, 4836 - "node_modules/fast-safe-stringify": { 4837 - "version": "2.1.1", 4838 - "license": "MIT" 4839 - }, 4840 - "node_modules/fast-uri": { 4841 - "version": "2.4.0", 4842 - "license": "MIT" 4843 - }, 4844 - "node_modules/fastify": { 4845 - "version": "4.29.0", 4846 - "funding": [ 4847 - { 4848 - "type": "github", 4849 - "url": "https://github.com/sponsors/fastify" 4850 - }, 4851 - { 4852 - "type": "opencollective", 4853 - "url": "https://opencollective.com/fastify" 4854 - } 4855 - ], 4856 - "license": "MIT", 4857 - "dependencies": { 4858 - "@fastify/ajv-compiler": "^3.5.0", 4859 - "@fastify/error": "^3.4.0", 4860 - "@fastify/fast-json-stringify-compiler": "^4.3.0", 4861 - "abstract-logging": "^2.0.1", 4862 - "avvio": "^8.3.0", 4863 - "fast-content-type-parse": "^1.1.0", 4864 - "fast-json-stringify": "^5.8.0", 4865 - "find-my-way": "^8.0.0", 4866 - "light-my-request": "^5.11.0", 4867 - "pino": "^9.0.0", 4868 - "process-warning": "^3.0.0", 4869 - "proxy-addr": "^2.0.7", 4870 - "rfdc": "^1.3.0", 4871 - "secure-json-parse": "^2.7.0", 4872 - "semver": "^7.5.4", 4873 - "toad-cache": "^3.3.0" 4874 - } 4875 - }, 4876 - "node_modules/fastify-plugin": { 4877 - "version": "4.5.1", 4878 - "license": "MIT" 4879 - }, 4880 - "node_modules/fastify/node_modules/process-warning": { 4881 - "version": "3.0.0", 4882 - "license": "MIT" 4883 - }, 4884 - "node_modules/fastq": { 4885 - "version": "1.18.0", 4886 - "license": "ISC", 4887 - "dependencies": { 4888 - "reusify": "^1.0.4" 4889 - } 4890 - }, 4891 - "node_modules/fdir": { 4892 - "version": "6.5.0", 4893 - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", 4894 - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", 4895 - "dev": true, 4896 - "license": "MIT", 4897 - "engines": { 4898 - "node": ">=12.0.0" 4899 - }, 4900 - "peerDependencies": { 4901 - "picomatch": "^3 || ^4" 4902 - }, 4903 - "peerDependenciesMeta": { 4904 - "picomatch": { 4905 - "optional": true 4906 - } 4907 - } 4908 - }, 4909 - "node_modules/fflate": { 4910 - "version": "0.8.2", 4911 - "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz", 4912 - "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==", 4913 - "dev": true, 4914 - "license": "MIT" 4915 - }, 4916 - "node_modules/file-entry-cache": { 4917 - "version": "8.0.0", 4918 - "dev": true, 4919 - "license": "MIT", 4920 - "dependencies": { 4921 - "flat-cache": "^4.0.0" 4922 - }, 4923 - "engines": { 4924 - "node": ">=16.0.0" 4925 - } 4926 - }, 4927 - "node_modules/fill-range": { 4928 - "version": "7.1.1", 4929 - "license": "MIT", 4930 - "dependencies": { 4931 - "to-regex-range": "^5.0.1" 4932 - }, 4933 - "engines": { 4934 - "node": ">=8" 4935 - } 4936 - }, 4937 - "node_modules/finalhandler": { 4938 - "version": "1.3.1", 4939 - "license": "MIT", 4940 - "dependencies": { 4941 - "debug": "2.6.9", 4942 - "encodeurl": "~2.0.0", 4943 - "escape-html": "~1.0.3", 4944 - "on-finished": "2.4.1", 4945 - "parseurl": "~1.3.3", 4946 - "statuses": "2.0.1", 4947 - "unpipe": "~1.0.0" 4948 - }, 4949 - "engines": { 4950 - "node": ">= 0.8" 4951 - } 4952 - }, 4953 - "node_modules/finalhandler/node_modules/debug": { 4954 - "version": "2.6.9", 4955 - "license": "MIT", 4956 - "dependencies": { 4957 - "ms": "2.0.0" 4958 - } 4959 - }, 4960 - "node_modules/finalhandler/node_modules/debug/node_modules/ms": { 4961 - "version": "2.0.0", 4962 - "license": "MIT" 4963 - }, 4964 - "node_modules/find-my-way": { 4965 - "version": "8.2.2", 4966 - "license": "MIT", 4967 - "dependencies": { 4968 - "fast-deep-equal": "^3.1.3", 4969 - "fast-querystring": "^1.0.0", 4970 - "safe-regex2": "^3.1.0" 4971 - }, 4972 - "engines": { 4973 - "node": ">=14" 4974 - } 4975 - }, 4976 - "node_modules/find-up": { 4977 - "version": "5.0.0", 4978 - "dev": true, 4979 - "license": "MIT", 4980 - "dependencies": { 4981 - "locate-path": "^6.0.0", 4982 - "path-exists": "^4.0.0" 4983 - }, 4984 - "engines": { 4985 - "node": ">=10" 4986 - }, 4987 - "funding": { 4988 - "url": "https://github.com/sponsors/sindresorhus" 4989 - } 4990 - }, 4991 - "node_modules/flat-cache": { 4992 - "version": "4.0.1", 4993 - "dev": true, 4994 - "license": "MIT", 4995 - "dependencies": { 4996 - "flatted": "^3.2.9", 4997 - "keyv": "^4.5.4" 4998 - }, 4999 - "engines": { 5000 - "node": ">=16" 5001 - } 5002 - }, 5003 - "node_modules/flatted": { 5004 - "version": "3.3.3", 5005 - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", 5006 - "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", 5007 - "dev": true, 5008 - "license": "ISC" 5009 - }, 5010 - "node_modules/follow-redirects": { 5011 - "version": "1.15.9", 5012 - "funding": [ 5013 - { 5014 - "type": "individual", 5015 - "url": "https://github.com/sponsors/RubenVerborgh" 5016 - } 5017 - ], 5018 - "license": "MIT", 5019 - "engines": { 5020 - "node": ">=4.0" 5021 - }, 5022 - "peerDependenciesMeta": { 5023 - "debug": { 5024 - "optional": true 5025 - } 5026 - } 5027 - }, 5028 - "node_modules/for-each": { 5029 - "version": "0.3.5", 5030 - "dev": true, 5031 - "license": "MIT", 5032 - "dependencies": { 5033 - "is-callable": "^1.2.7" 5034 - }, 5035 - "engines": { 5036 - "node": ">= 0.4" 5037 - }, 5038 - "funding": { 5039 - "url": "https://github.com/sponsors/ljharb" 5040 - } 5041 - }, 5042 - "node_modules/form-data": { 5043 - "version": "4.0.1", 5044 - "license": "MIT", 5045 - "dependencies": { 5046 - "asynckit": "^0.4.0", 5047 - "combined-stream": "^1.0.8", 5048 - "mime-types": "^2.1.12" 5049 - }, 5050 - "engines": { 5051 - "node": ">= 6" 5052 - } 5053 - }, 5054 - "node_modules/forwarded": { 5055 - "version": "0.2.0", 5056 - "license": "MIT", 5057 - "engines": { 5058 - "node": ">= 0.6" 5059 - } 5060 - }, 5061 - "node_modules/franc": { 5062 - "version": "6.2.0", 5063 - "resolved": "https://registry.npmjs.org/franc/-/franc-6.2.0.tgz", 5064 - "integrity": "sha512-rcAewP7PSHvjq7Kgd7dhj82zE071kX5B4W1M4ewYMf/P+i6YsDQmj62Xz3VQm9zyUzUXwhIde/wHLGCMrM+yGg==", 5065 - "license": "MIT", 5066 - "dependencies": { 5067 - "trigram-utils": "^2.0.0" 5068 - }, 5069 - "funding": { 5070 - "type": "github", 5071 - "url": "https://github.com/sponsors/wooorm" 5072 - } 5073 - }, 5074 - "node_modules/fresh": { 5075 - "version": "0.5.2", 5076 - "license": "MIT", 5077 - "engines": { 5078 - "node": ">= 0.6" 5079 - } 5080 - }, 5081 - "node_modules/fsevents": { 5082 - "version": "2.3.3", 5083 - "dev": true, 5084 - "license": "MIT", 5085 - "optional": true, 5086 - "os": [ 5087 - "darwin" 5088 - ], 5089 - "engines": { 5090 - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 5091 - } 5092 - }, 5093 - "node_modules/function-bind": { 5094 - "version": "1.1.2", 5095 - "license": "MIT", 5096 - "funding": { 5097 - "url": "https://github.com/sponsors/ljharb" 5098 - } 5099 - }, 5100 - "node_modules/function.prototype.name": { 5101 - "version": "1.1.8", 5102 - "dev": true, 5103 - "license": "MIT", 5104 - "dependencies": { 5105 - "call-bind": "^1.0.8", 5106 - "call-bound": "^1.0.3", 5107 - "define-properties": "^1.2.1", 5108 - "functions-have-names": "^1.2.3", 5109 - "hasown": "^2.0.2", 5110 - "is-callable": "^1.2.7" 5111 - }, 5112 - "engines": { 5113 - "node": ">= 0.4" 5114 - }, 5115 - "funding": { 5116 - "url": "https://github.com/sponsors/ljharb" 5117 - } 5118 - }, 5119 - "node_modules/functions-have-names": { 5120 - "version": "1.2.3", 5121 - "dev": true, 5122 - "license": "MIT", 5123 - "funding": { 5124 - "url": "https://github.com/sponsors/ljharb" 5125 - } 5126 - }, 5127 - "node_modules/get-caller-file": { 5128 - "version": "2.0.5", 5129 - "license": "ISC", 5130 - "engines": { 5131 - "node": "6.* || 8.* || >= 10.*" 5132 - } 5133 - }, 5134 - "node_modules/get-east-asian-width": { 5135 - "version": "1.3.0", 5136 - "license": "MIT", 5137 - "engines": { 5138 - "node": ">=18" 5139 - }, 5140 - "funding": { 5141 - "url": "https://github.com/sponsors/sindresorhus" 5142 - } 5143 - }, 5144 - "node_modules/get-intrinsic": { 5145 - "version": "1.3.0", 5146 - "dev": true, 5147 - "license": "MIT", 5148 - "dependencies": { 5149 - "call-bind-apply-helpers": "^1.0.2", 5150 - "es-define-property": "^1.0.1", 5151 - "es-errors": "^1.3.0", 5152 - "es-object-atoms": "^1.1.1", 5153 - "function-bind": "^1.1.2", 5154 - "get-proto": "^1.0.1", 5155 - "gopd": "^1.2.0", 5156 - "has-symbols": "^1.1.0", 5157 - "hasown": "^2.0.2", 5158 - "math-intrinsics": "^1.1.0" 5159 - }, 5160 - "engines": { 5161 - "node": ">= 0.4" 5162 - }, 5163 - "funding": { 5164 - "url": "https://github.com/sponsors/ljharb" 5165 - } 5166 - }, 5167 - "node_modules/get-intrinsic/node_modules/call-bind-apply-helpers": { 5168 - "version": "1.0.2", 5169 - "dev": true, 5170 - "license": "MIT", 5171 - "dependencies": { 5172 - "es-errors": "^1.3.0", 5173 - "function-bind": "^1.1.2" 5174 - }, 5175 - "engines": { 5176 - "node": ">= 0.4" 5177 - } 5178 - }, 5179 - "node_modules/get-proto": { 5180 - "version": "1.0.1", 5181 - "dev": true, 5182 - "license": "MIT", 5183 - "dependencies": { 5184 - "dunder-proto": "^1.0.1", 5185 - "es-object-atoms": "^1.0.0" 5186 - }, 5187 - "engines": { 5188 - "node": ">= 0.4" 5189 - } 5190 - }, 5191 - "node_modules/get-stream": { 5192 - "version": "8.0.1", 5193 - "license": "MIT", 5194 - "engines": { 5195 - "node": ">=16" 5196 - }, 5197 - "funding": { 5198 - "url": "https://github.com/sponsors/sindresorhus" 5199 - } 5200 - }, 5201 - "node_modules/get-symbol-description": { 5202 - "version": "1.1.0", 5203 - "dev": true, 5204 - "license": "MIT", 5205 - "dependencies": { 5206 - "call-bound": "^1.0.3", 5207 - "es-errors": "^1.3.0", 5208 - "get-intrinsic": "^1.2.6" 5209 - }, 5210 - "engines": { 5211 - "node": ">= 0.4" 5212 - }, 5213 - "funding": { 5214 - "url": "https://github.com/sponsors/ljharb" 5215 - } 5216 - }, 5217 - "node_modules/get-tsconfig": { 5218 - "version": "4.8.1", 5219 - "dev": true, 5220 - "license": "MIT", 5221 - "dependencies": { 5222 - "resolve-pkg-maps": "^1.0.0" 5223 - }, 5224 - "funding": { 5225 - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" 5226 - } 5227 - }, 5228 - "node_modules/glob-parent": { 5229 - "version": "6.0.2", 5230 - "dev": true, 5231 - "license": "ISC", 5232 - "dependencies": { 5233 - "is-glob": "^4.0.3" 5234 - }, 5235 - "engines": { 5236 - "node": ">=10.13.0" 5237 - } 5238 - }, 5239 - "node_modules/globalthis": { 5240 - "version": "1.0.4", 5241 - "dev": true, 5242 - "license": "MIT", 5243 - "dependencies": { 5244 - "define-properties": "^1.2.1", 5245 - "gopd": "^1.0.1" 5246 - }, 5247 - "engines": { 5248 - "node": ">= 0.4" 5249 - }, 5250 - "funding": { 5251 - "url": "https://github.com/sponsors/ljharb" 5252 - } 5253 - }, 5254 - "node_modules/globby": { 5255 - "version": "11.1.0", 5256 - "dev": true, 5257 - "license": "MIT", 5258 - "dependencies": { 5259 - "array-union": "^2.1.0", 5260 - "dir-glob": "^3.0.1", 5261 - "fast-glob": "^3.2.9", 5262 - "ignore": "^5.2.0", 5263 - "merge2": "^1.4.1", 5264 - "slash": "^3.0.0" 5265 - }, 5266 - "engines": { 5267 - "node": ">=10" 5268 - }, 5269 - "funding": { 5270 - "url": "https://github.com/sponsors/sindresorhus" 5271 - } 5272 - }, 5273 - "node_modules/gopd": { 5274 - "version": "1.2.0", 5275 - "license": "MIT", 5276 - "engines": { 5277 - "node": ">= 0.4" 5278 - }, 5279 - "funding": { 5280 - "url": "https://github.com/sponsors/ljharb" 5281 - } 5282 - }, 5283 - "node_modules/graphemer": { 5284 - "version": "1.4.0", 5285 - "license": "MIT" 5286 - }, 5287 - "node_modules/has-bigints": { 5288 - "version": "1.1.0", 5289 - "dev": true, 5290 - "license": "MIT", 5291 - "engines": { 5292 - "node": ">= 0.4" 5293 - }, 5294 - "funding": { 5295 - "url": "https://github.com/sponsors/ljharb" 5296 - } 5297 - }, 5298 - "node_modules/has-flag": { 5299 - "version": "4.0.0", 5300 - "dev": true, 5301 - "license": "MIT", 5302 - "engines": { 5303 - "node": ">=8" 5304 - } 5305 - }, 5306 - "node_modules/has-property-descriptors": { 5307 - "version": "1.0.2", 5308 - "dev": true, 5309 - "license": "MIT", 5310 - "dependencies": { 5311 - "es-define-property": "^1.0.0" 5312 - }, 5313 - "funding": { 5314 - "url": "https://github.com/sponsors/ljharb" 5315 - } 5316 - }, 5317 - "node_modules/has-proto": { 5318 - "version": "1.2.0", 5319 - "dev": true, 5320 - "license": "MIT", 5321 - "dependencies": { 5322 - "dunder-proto": "^1.0.0" 5323 - }, 5324 - "engines": { 5325 - "node": ">= 0.4" 5326 - }, 5327 - "funding": { 5328 - "url": "https://github.com/sponsors/ljharb" 5329 - } 5330 - }, 5331 - "node_modules/has-symbols": { 5332 - "version": "1.1.0", 5333 - "license": "MIT", 5334 - "engines": { 5335 - "node": ">= 0.4" 5336 - }, 5337 - "funding": { 5338 - "url": "https://github.com/sponsors/ljharb" 5339 - } 5340 - }, 5341 - "node_modules/has-tostringtag": { 5342 - "version": "1.0.2", 5343 - "dev": true, 5344 - "license": "MIT", 5345 - "dependencies": { 5346 - "has-symbols": "^1.0.3" 5347 - }, 5348 - "engines": { 5349 - "node": ">= 0.4" 5350 - }, 5351 - "funding": { 5352 - "url": "https://github.com/sponsors/ljharb" 5353 - } 5354 - }, 5355 - "node_modules/hash.js": { 5356 - "version": "1.1.7", 5357 - "license": "MIT", 5358 - "dependencies": { 5359 - "inherits": "^2.0.3", 5360 - "minimalistic-assert": "^1.0.1" 5361 - } 5362 - }, 5363 - "node_modules/hasown": { 5364 - "version": "2.0.2", 5365 - "license": "MIT", 5366 - "dependencies": { 5367 - "function-bind": "^1.1.2" 5368 - }, 5369 - "engines": { 5370 - "node": ">= 0.4" 5371 - } 5372 - }, 5373 - "node_modules/help-me": { 5374 - "version": "5.0.0", 5375 - "license": "MIT" 5376 - }, 5377 - "node_modules/hmac-drbg": { 5378 - "version": "1.0.1", 5379 - "license": "MIT", 5380 - "dependencies": { 5381 - "hash.js": "^1.0.3", 5382 - "minimalistic-assert": "^1.0.0", 5383 - "minimalistic-crypto-utils": "^1.0.1" 5384 - } 5385 - }, 5386 - "node_modules/http-errors": { 5387 - "version": "2.0.0", 5388 - "license": "MIT", 5389 - "dependencies": { 5390 - "depd": "2.0.0", 5391 - "inherits": "2.0.4", 5392 - "setprototypeof": "1.2.0", 5393 - "statuses": "2.0.1", 5394 - "toidentifier": "1.0.1" 5395 - }, 5396 - "engines": { 5397 - "node": ">= 0.8" 5398 - } 5399 - }, 5400 - "node_modules/http-terminator": { 5401 - "version": "3.2.0", 5402 - "license": "BSD-3-Clause", 5403 - "dependencies": { 5404 - "delay": "^5.0.0", 5405 - "p-wait-for": "^3.2.0", 5406 - "roarr": "^7.0.4", 5407 - "type-fest": "^2.3.3" 5408 - }, 5409 - "engines": { 5410 - "node": ">=14" 5411 - } 5412 - }, 5413 - "node_modules/human-signals": { 5414 - "version": "5.0.0", 5415 - "license": "Apache-2.0", 5416 - "engines": { 5417 - "node": ">=16.17.0" 5418 - } 5419 - }, 5420 - "node_modules/husky": { 5421 - "version": "9.1.7", 5422 - "license": "MIT", 5423 - "bin": { 5424 - "husky": "bin.js" 5425 - }, 5426 - "engines": { 5427 - "node": ">=18" 5428 - }, 5429 - "funding": { 5430 - "url": "https://github.com/sponsors/typicode" 5431 - } 5432 - }, 5433 - "node_modules/iconv-lite": { 5434 - "version": "0.4.24", 5435 - "license": "MIT", 5436 - "dependencies": { 5437 - "safer-buffer": ">= 2.1.2 < 3" 5438 - }, 5439 - "engines": { 5440 - "node": ">=0.10.0" 5441 - } 5442 - }, 5443 - "node_modules/ieee754": { 5444 - "version": "1.2.1", 5445 - "funding": [ 5446 - { 5447 - "type": "github", 5448 - "url": "https://github.com/sponsors/feross" 5449 - }, 5450 - { 5451 - "type": "patreon", 5452 - "url": "https://www.patreon.com/feross" 5453 - }, 5454 - { 5455 - "type": "consulting", 5456 - "url": "https://feross.org/support" 5457 - } 5458 - ], 5459 - "license": "BSD-3-Clause" 5460 - }, 5461 - "node_modules/ignore": { 5462 - "version": "5.3.2", 5463 - "dev": true, 5464 - "license": "MIT", 5465 - "engines": { 5466 - "node": ">= 4" 5467 - } 5468 - }, 5469 - "node_modules/import-fresh": { 5470 - "version": "3.3.0", 5471 - "dev": true, 5472 - "license": "MIT", 5473 - "dependencies": { 5474 - "parent-module": "^1.0.0", 5475 - "resolve-from": "^4.0.0" 5476 - }, 5477 - "engines": { 5478 - "node": ">=6" 5479 - }, 5480 - "funding": { 5481 - "url": "https://github.com/sponsors/sindresorhus" 5482 - } 5483 - }, 5484 - "node_modules/imurmurhash": { 5485 - "version": "0.1.4", 5486 - "dev": true, 5487 - "license": "MIT", 5488 - "engines": { 5489 - "node": ">=0.8.19" 5490 - } 5491 - }, 5492 - "node_modules/inherits": { 5493 - "version": "2.0.4", 5494 - "license": "ISC" 5495 - }, 5496 - "node_modules/internal-slot": { 5497 - "version": "1.1.0", 5498 - "dev": true, 5499 - "license": "MIT", 5500 - "dependencies": { 5501 - "es-errors": "^1.3.0", 5502 - "hasown": "^2.0.2", 5503 - "side-channel": "^1.1.0" 5504 - }, 5505 - "engines": { 5506 - "node": ">= 0.4" 5507 - } 5508 - }, 5509 - "node_modules/ioredis": { 5510 - "version": "5.4.2", 5511 - "license": "MIT", 5512 - "dependencies": { 5513 - "@ioredis/commands": "^1.1.1", 5514 - "cluster-key-slot": "^1.1.0", 5515 - "debug": "^4.3.4", 5516 - "denque": "^2.1.0", 5517 - "lodash.defaults": "^4.2.0", 5518 - "lodash.isarguments": "^3.1.0", 5519 - "redis-errors": "^1.2.0", 5520 - "redis-parser": "^3.0.0", 5521 - "standard-as-callback": "^2.1.0" 5522 - }, 5523 - "engines": { 5524 - "node": ">=12.22.0" 5525 - }, 5526 - "funding": { 5527 - "type": "opencollective", 5528 - "url": "https://opencollective.com/ioredis" 5529 - } 5530 - }, 5531 - "node_modules/ip3country": { 5532 - "version": "5.0.0", 5533 - "license": "ISC" 5534 - }, 5535 - "node_modules/ipaddr.js": { 5536 - "version": "1.9.1", 5537 - "license": "MIT", 5538 - "engines": { 5539 - "node": ">= 0.10" 5540 - } 5541 - }, 5542 - "node_modules/is-array-buffer": { 5543 - "version": "3.0.5", 5544 - "dev": true, 5545 - "license": "MIT", 5546 - "dependencies": { 5547 - "call-bind": "^1.0.8", 5548 - "call-bound": "^1.0.3", 5549 - "get-intrinsic": "^1.2.6" 5550 - }, 5551 - "engines": { 5552 - "node": ">= 0.4" 5553 - }, 5554 - "funding": { 5555 - "url": "https://github.com/sponsors/ljharb" 5556 - } 5557 - }, 5558 - "node_modules/is-arrayish": { 5559 - "version": "0.3.2", 5560 - "license": "MIT" 5561 - }, 5562 - "node_modules/is-async-function": { 5563 - "version": "2.1.1", 5564 - "dev": true, 5565 - "license": "MIT", 5566 - "dependencies": { 5567 - "async-function": "^1.0.0", 5568 - "call-bound": "^1.0.3", 5569 - "get-proto": "^1.0.1", 5570 - "has-tostringtag": "^1.0.2", 5571 - "safe-regex-test": "^1.1.0" 5572 - }, 5573 - "engines": { 5574 - "node": ">= 0.4" 5575 - }, 5576 - "funding": { 5577 - "url": "https://github.com/sponsors/ljharb" 5578 - } 5579 - }, 5580 - "node_modules/is-bigint": { 5581 - "version": "1.1.0", 5582 - "dev": true, 5583 - "license": "MIT", 5584 - "dependencies": { 5585 - "has-bigints": "^1.0.2" 5586 - }, 5587 - "engines": { 5588 - "node": ">= 0.4" 5589 - }, 5590 - "funding": { 5591 - "url": "https://github.com/sponsors/ljharb" 5592 - } 5593 - }, 5594 - "node_modules/is-boolean-object": { 5595 - "version": "1.2.2", 5596 - "dev": true, 5597 - "license": "MIT", 5598 - "dependencies": { 5599 - "call-bound": "^1.0.3", 5600 - "has-tostringtag": "^1.0.2" 5601 - }, 5602 - "engines": { 5603 - "node": ">= 0.4" 5604 - }, 5605 - "funding": { 5606 - "url": "https://github.com/sponsors/ljharb" 5607 - } 5608 - }, 5609 - "node_modules/is-callable": { 5610 - "version": "1.2.7", 5611 - "dev": true, 5612 - "license": "MIT", 5613 - "engines": { 5614 - "node": ">= 0.4" 5615 - }, 5616 - "funding": { 5617 - "url": "https://github.com/sponsors/ljharb" 5618 - } 5619 - }, 5620 - "node_modules/is-core-module": { 5621 - "version": "2.16.1", 5622 - "dev": true, 5623 - "license": "MIT", 5624 - "dependencies": { 5625 - "hasown": "^2.0.2" 5626 - }, 5627 - "engines": { 5628 - "node": ">= 0.4" 5629 - }, 5630 - "funding": { 5631 - "url": "https://github.com/sponsors/ljharb" 5632 - } 5633 - }, 5634 - "node_modules/is-data-view": { 5635 - "version": "1.0.2", 5636 - "dev": true, 5637 - "license": "MIT", 5638 - "dependencies": { 5639 - "call-bound": "^1.0.2", 5640 - "get-intrinsic": "^1.2.6", 5641 - "is-typed-array": "^1.1.13" 5642 - }, 5643 - "engines": { 5644 - "node": ">= 0.4" 5645 - }, 5646 - "funding": { 5647 - "url": "https://github.com/sponsors/ljharb" 5648 - } 5649 - }, 5650 - "node_modules/is-date-object": { 5651 - "version": "1.1.0", 5652 - "dev": true, 5653 - "license": "MIT", 5654 - "dependencies": { 5655 - "call-bound": "^1.0.2", 5656 - "has-tostringtag": "^1.0.2" 5657 - }, 5658 - "engines": { 5659 - "node": ">= 0.4" 5660 - }, 5661 - "funding": { 5662 - "url": "https://github.com/sponsors/ljharb" 5663 - } 5664 - }, 5665 - "node_modules/is-extglob": { 5666 - "version": "2.1.1", 5667 - "dev": true, 5668 - "license": "MIT", 5669 - "engines": { 5670 - "node": ">=0.10.0" 5671 - } 5672 - }, 5673 - "node_modules/is-finalizationregistry": { 5674 - "version": "1.1.1", 5675 - "dev": true, 5676 - "license": "MIT", 5677 - "dependencies": { 5678 - "call-bound": "^1.0.3" 5679 - }, 5680 - "engines": { 5681 - "node": ">= 0.4" 5682 - }, 5683 - "funding": { 5684 - "url": "https://github.com/sponsors/ljharb" 5685 - } 5686 - }, 5687 - "node_modules/is-fullwidth-code-point": { 5688 - "version": "4.0.0", 5689 - "license": "MIT", 5690 - "engines": { 5691 - "node": ">=12" 5692 - }, 5693 - "funding": { 5694 - "url": "https://github.com/sponsors/sindresorhus" 5695 - } 5696 - }, 5697 - "node_modules/is-generator-function": { 5698 - "version": "1.1.0", 5699 - "dev": true, 5700 - "license": "MIT", 5701 - "dependencies": { 5702 - "call-bound": "^1.0.3", 5703 - "get-proto": "^1.0.0", 5704 - "has-tostringtag": "^1.0.2", 5705 - "safe-regex-test": "^1.1.0" 5706 - }, 5707 - "engines": { 5708 - "node": ">= 0.4" 5709 - }, 5710 - "funding": { 5711 - "url": "https://github.com/sponsors/ljharb" 5712 - } 5713 - }, 5714 - "node_modules/is-glob": { 5715 - "version": "4.0.3", 5716 - "dev": true, 5717 - "license": "MIT", 5718 - "dependencies": { 5719 - "is-extglob": "^2.1.1" 5720 - }, 5721 - "engines": { 5722 - "node": ">=0.10.0" 5723 - } 5724 - }, 5725 - "node_modules/is-map": { 5726 - "version": "2.0.3", 5727 - "dev": true, 5728 - "license": "MIT", 5729 - "engines": { 5730 - "node": ">= 0.4" 5731 - }, 5732 - "funding": { 5733 - "url": "https://github.com/sponsors/ljharb" 5734 - } 5735 - }, 5736 - "node_modules/is-negative-zero": { 5737 - "version": "2.0.3", 5738 - "dev": true, 5739 - "license": "MIT", 5740 - "engines": { 5741 - "node": ">= 0.4" 5742 - }, 5743 - "funding": { 5744 - "url": "https://github.com/sponsors/ljharb" 5745 - } 5746 - }, 5747 - "node_modules/is-number": { 5748 - "version": "7.0.0", 5749 - "license": "MIT", 5750 - "engines": { 5751 - "node": ">=0.12.0" 5752 - } 5753 - }, 5754 - "node_modules/is-number-object": { 5755 - "version": "1.1.1", 5756 - "dev": true, 5757 - "license": "MIT", 5758 - "dependencies": { 5759 - "call-bound": "^1.0.3", 5760 - "has-tostringtag": "^1.0.2" 5761 - }, 5762 - "engines": { 5763 - "node": ">= 0.4" 5764 - }, 5765 - "funding": { 5766 - "url": "https://github.com/sponsors/ljharb" 5767 - } 5768 - }, 5769 - "node_modules/is-regex": { 5770 - "version": "1.2.1", 5771 - "dev": true, 5772 - "license": "MIT", 5773 - "dependencies": { 5774 - "call-bound": "^1.0.2", 5775 - "gopd": "^1.2.0", 5776 - "has-tostringtag": "^1.0.2", 5777 - "hasown": "^2.0.2" 5778 - }, 5779 - "engines": { 5780 - "node": ">= 0.4" 5781 - }, 5782 - "funding": { 5783 - "url": "https://github.com/sponsors/ljharb" 5784 - } 5785 - }, 5786 - "node_modules/is-set": { 5787 - "version": "2.0.3", 5788 - "dev": true, 5789 - "license": "MIT", 5790 - "engines": { 5791 - "node": ">= 0.4" 5792 - }, 5793 - "funding": { 5794 - "url": "https://github.com/sponsors/ljharb" 5795 - } 5796 - }, 5797 - "node_modules/is-shared-array-buffer": { 5798 - "version": "1.0.4", 5799 - "dev": true, 5800 - "license": "MIT", 5801 - "dependencies": { 5802 - "call-bound": "^1.0.3" 5803 - }, 5804 - "engines": { 5805 - "node": ">= 0.4" 5806 - }, 5807 - "funding": { 5808 - "url": "https://github.com/sponsors/ljharb" 5809 - } 5810 - }, 5811 - "node_modules/is-stream": { 5812 - "version": "3.0.0", 5813 - "license": "MIT", 5814 - "engines": { 5815 - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" 5816 - }, 5817 - "funding": { 5818 - "url": "https://github.com/sponsors/sindresorhus" 5819 - } 5820 - }, 5821 - "node_modules/is-string": { 5822 - "version": "1.1.1", 5823 - "dev": true, 5824 - "license": "MIT", 5825 - "dependencies": { 5826 - "call-bound": "^1.0.3", 5827 - "has-tostringtag": "^1.0.2" 5828 - }, 5829 - "engines": { 5830 - "node": ">= 0.4" 5831 - }, 5832 - "funding": { 5833 - "url": "https://github.com/sponsors/ljharb" 5834 - } 5835 - }, 5836 - "node_modules/is-symbol": { 5837 - "version": "1.1.1", 5838 - "dev": true, 5839 - "license": "MIT", 5840 - "dependencies": { 5841 - "call-bound": "^1.0.2", 5842 - "has-symbols": "^1.1.0", 5843 - "safe-regex-test": "^1.1.0" 5844 - }, 5845 - "engines": { 5846 - "node": ">= 0.4" 5847 - }, 5848 - "funding": { 5849 - "url": "https://github.com/sponsors/ljharb" 5850 - } 5851 - }, 5852 - "node_modules/is-typed-array": { 5853 - "version": "1.1.15", 5854 - "dev": true, 5855 - "license": "MIT", 5856 - "dependencies": { 5857 - "which-typed-array": "^1.1.16" 5858 - }, 5859 - "engines": { 5860 - "node": ">= 0.4" 5861 - }, 5862 - "funding": { 5863 - "url": "https://github.com/sponsors/ljharb" 5864 - } 5865 - }, 5866 - "node_modules/is-weakmap": { 5867 - "version": "2.0.2", 5868 - "dev": true, 5869 - "license": "MIT", 5870 - "engines": { 5871 - "node": ">= 0.4" 5872 - }, 5873 - "funding": { 5874 - "url": "https://github.com/sponsors/ljharb" 5875 - } 5876 - }, 5877 - "node_modules/is-weakref": { 5878 - "version": "1.1.1", 5879 - "dev": true, 5880 - "license": "MIT", 5881 - "dependencies": { 5882 - "call-bound": "^1.0.3" 5883 - }, 5884 - "engines": { 5885 - "node": ">= 0.4" 5886 - }, 5887 - "funding": { 5888 - "url": "https://github.com/sponsors/ljharb" 5889 - } 5890 - }, 5891 - "node_modules/is-weakset": { 5892 - "version": "2.0.4", 5893 - "dev": true, 5894 - "license": "MIT", 5895 - "dependencies": { 5896 - "call-bound": "^1.0.3", 5897 - "get-intrinsic": "^1.2.6" 5898 - }, 5899 - "engines": { 5900 - "node": ">= 0.4" 5901 - }, 5902 - "funding": { 5903 - "url": "https://github.com/sponsors/ljharb" 5904 - } 5905 - }, 5906 - "node_modules/isarray": { 5907 - "version": "2.0.5", 5908 - "dev": true, 5909 - "license": "MIT" 5910 - }, 5911 - "node_modules/isexe": { 5912 - "version": "2.0.0", 5913 - "license": "ISC" 5914 - }, 5915 - "node_modules/iso-datestring-validator": { 5916 - "version": "2.2.2", 5917 - "license": "MIT" 5918 - }, 5919 - "node_modules/javascript-natural-sort": { 5920 - "version": "0.7.1", 5921 - "dev": true, 5922 - "license": "MIT" 5923 - }, 5924 - "node_modules/jose": { 5925 - "version": "5.9.6", 5926 - "license": "MIT", 5927 - "funding": { 5928 - "url": "https://github.com/sponsors/panva" 5929 - } 5930 - }, 5931 - "node_modules/joycon": { 5932 - "version": "3.1.1", 5933 - "license": "MIT", 5934 - "engines": { 5935 - "node": ">=10" 5936 - } 5937 - }, 5938 - "node_modules/js-tokens": { 5939 - "version": "4.0.0", 5940 - "dev": true, 5941 - "license": "MIT" 5942 - }, 5943 - "node_modules/js-yaml": { 5944 - "version": "4.1.0", 5945 - "dev": true, 5946 - "license": "MIT", 5947 - "dependencies": { 5948 - "argparse": "^2.0.1" 5949 - }, 5950 - "bin": { 5951 - "js-yaml": "bin/js-yaml.js" 5952 - } 5953 - }, 5954 - "node_modules/jsesc": { 5955 - "version": "2.5.2", 5956 - "dev": true, 5957 - "license": "MIT", 5958 - "bin": { 5959 - "jsesc": "bin/jsesc" 5960 - }, 5961 - "engines": { 5962 - "node": ">=4" 5963 - } 5964 - }, 5965 - "node_modules/json-buffer": { 5966 - "version": "3.0.1", 5967 - "dev": true, 5968 - "license": "MIT" 5969 - }, 5970 - "node_modules/json-schema-ref-resolver": { 5971 - "version": "1.0.1", 5972 - "license": "MIT", 5973 - "dependencies": { 5974 - "fast-deep-equal": "^3.1.3" 5975 - } 5976 - }, 5977 - "node_modules/json-schema-traverse": { 5978 - "version": "0.4.1", 5979 - "dev": true, 5980 - "license": "MIT" 5981 - }, 5982 - "node_modules/json-stable-stringify-without-jsonify": { 5983 - "version": "1.0.1", 5984 - "dev": true, 5985 - "license": "MIT" 5986 - }, 5987 - "node_modules/json5": { 5988 - "version": "1.0.2", 5989 - "dev": true, 5990 - "license": "MIT", 5991 - "dependencies": { 5992 - "minimist": "^1.2.0" 5993 - }, 5994 - "bin": { 5995 - "json5": "lib/cli.js" 5996 - } 5997 - }, 5998 - "node_modules/key-encoder": { 5999 - "version": "2.0.3", 6000 - "license": "MIT", 6001 - "dependencies": { 6002 - "@types/elliptic": "^6.4.9", 6003 - "asn1.js": "^5.0.1", 6004 - "bn.js": "^4.11.8", 6005 - "elliptic": "^6.4.1" 6006 - } 6007 - }, 6008 - "node_modules/keyv": { 6009 - "version": "4.5.4", 6010 - "dev": true, 6011 - "license": "MIT", 6012 - "dependencies": { 6013 - "json-buffer": "3.0.1" 6014 - } 6015 - }, 6016 - "node_modules/kleur": { 6017 - "version": "3.0.3", 6018 - "license": "MIT", 6019 - "engines": { 6020 - "node": ">=6" 6021 - } 6022 - }, 6023 - "node_modules/kysely": { 6024 - "version": "0.22.0", 6025 - "license": "MIT", 6026 - "engines": { 6027 - "node": ">=14.0.0" 6028 - } 6029 - }, 6030 - "node_modules/lande": { 6031 - "version": "1.0.10", 6032 - "dependencies": { 6033 - "toygrad": "^2.6.0" 6034 - } 6035 - }, 6036 - "node_modules/levn": { 6037 - "version": "0.4.1", 6038 - "dev": true, 6039 - "license": "MIT", 6040 - "dependencies": { 6041 - "prelude-ls": "^1.2.1", 6042 - "type-check": "~0.4.0" 6043 - }, 6044 - "engines": { 6045 - "node": ">= 0.8.0" 6046 - } 6047 - }, 6048 - "node_modules/libsql": { 6049 - "version": "0.4.7", 6050 - "cpu": [ 6051 - "x64", 6052 - "arm64", 6053 - "wasm32" 6054 - ], 6055 - "license": "MIT", 6056 - "os": [ 6057 - "darwin", 6058 - "linux", 6059 - "win32" 6060 - ], 6061 - "dependencies": { 6062 - "@neon-rs/load": "^0.0.4", 6063 - "detect-libc": "2.0.2" 6064 - }, 6065 - "optionalDependencies": { 6066 - "@libsql/darwin-arm64": "0.4.7", 6067 - "@libsql/darwin-x64": "0.4.7", 6068 - "@libsql/linux-arm64-gnu": "0.4.7", 6069 - "@libsql/linux-arm64-musl": "0.4.7", 6070 - "@libsql/linux-x64-gnu": "0.4.7", 6071 - "@libsql/linux-x64-musl": "0.4.7", 6072 - "@libsql/win32-x64-msvc": "0.4.7" 6073 - } 6074 - }, 6075 - "node_modules/libsql/node_modules/detect-libc": { 6076 - "version": "2.0.2", 6077 - "license": "Apache-2.0", 6078 - "engines": { 6079 - "node": ">=8" 6080 - } 6081 - }, 6082 - "node_modules/light-my-request": { 6083 - "version": "5.14.0", 6084 - "license": "BSD-3-Clause", 6085 - "dependencies": { 6086 - "cookie": "^0.7.0", 6087 - "process-warning": "^3.0.0", 6088 - "set-cookie-parser": "^2.4.1" 6089 - } 6090 - }, 6091 - "node_modules/light-my-request/node_modules/process-warning": { 6092 - "version": "3.0.0", 6093 - "license": "MIT" 6094 - }, 6095 - "node_modules/lilconfig": { 6096 - "version": "3.1.3", 6097 - "license": "MIT", 6098 - "engines": { 6099 - "node": ">=14" 6100 - }, 6101 - "funding": { 6102 - "url": "https://github.com/sponsors/antonk52" 6103 - } 6104 - }, 6105 - "node_modules/lint-staged": { 6106 - "version": "15.5.2", 6107 - "license": "MIT", 6108 - "dependencies": { 6109 - "chalk": "^5.4.1", 6110 - "commander": "^13.1.0", 6111 - "debug": "^4.4.0", 6112 - "execa": "^8.0.1", 6113 - "lilconfig": "^3.1.3", 6114 - "listr2": "^8.2.5", 6115 - "micromatch": "^4.0.8", 6116 - "pidtree": "^0.6.0", 6117 - "string-argv": "^0.3.2", 6118 - "yaml": "^2.7.0" 6119 - }, 6120 - "bin": { 6121 - "lint-staged": "bin/lint-staged.js" 6122 - }, 6123 - "engines": { 6124 - "node": ">=18.12.0" 6125 - }, 6126 - "funding": { 6127 - "url": "https://opencollective.com/lint-staged" 6128 - } 6129 - }, 6130 - "node_modules/lint-staged/node_modules/chalk": { 6131 - "version": "5.4.1", 6132 - "license": "MIT", 6133 - "engines": { 6134 - "node": "^12.17.0 || ^14.13 || >=16.0.0" 6135 - }, 6136 - "funding": { 6137 - "url": "https://github.com/chalk/chalk?sponsor=1" 6138 - } 6139 - }, 6140 - "node_modules/listr2": { 6141 - "version": "8.2.5", 6142 - "license": "MIT", 6143 - "dependencies": { 6144 - "cli-truncate": "^4.0.0", 6145 - "colorette": "^2.0.20", 6146 - "eventemitter3": "^5.0.1", 6147 - "log-update": "^6.1.0", 6148 - "rfdc": "^1.4.1", 6149 - "wrap-ansi": "^9.0.0" 6150 - }, 6151 - "engines": { 6152 - "node": ">=18.0.0" 6153 - } 6154 - }, 6155 - "node_modules/listr2/node_modules/eventemitter3": { 6156 - "version": "5.0.1", 6157 - "license": "MIT" 6158 - }, 6159 - "node_modules/locate-path": { 6160 - "version": "6.0.0", 6161 - "dev": true, 6162 - "license": "MIT", 6163 - "dependencies": { 6164 - "p-locate": "^5.0.0" 6165 - }, 6166 - "engines": { 6167 - "node": ">=10" 6168 - }, 6169 - "funding": { 6170 - "url": "https://github.com/sponsors/sindresorhus" 6171 - } 6172 - }, 6173 - "node_modules/lodash": { 6174 - "version": "4.17.21", 6175 - "dev": true, 6176 - "license": "MIT" 6177 - }, 6178 - "node_modules/lodash.defaults": { 6179 - "version": "4.2.0", 6180 - "license": "MIT" 6181 - }, 6182 - "node_modules/lodash.isarguments": { 6183 - "version": "3.1.0", 6184 - "license": "MIT" 6185 - }, 6186 - "node_modules/lodash.merge": { 6187 - "version": "4.6.2", 6188 - "dev": true, 6189 - "license": "MIT" 6190 - }, 6191 - "node_modules/log-update": { 6192 - "version": "6.1.0", 6193 - "license": "MIT", 6194 - "dependencies": { 6195 - "ansi-escapes": "^7.0.0", 6196 - "cli-cursor": "^5.0.0", 6197 - "slice-ansi": "^7.1.0", 6198 - "strip-ansi": "^7.1.0", 6199 - "wrap-ansi": "^9.0.0" 6200 - }, 6201 - "engines": { 6202 - "node": ">=18" 6203 - }, 6204 - "funding": { 6205 - "url": "https://github.com/sponsors/sindresorhus" 6206 - } 6207 - }, 6208 - "node_modules/log-update/node_modules/slice-ansi": { 6209 - "version": "7.1.0", 6210 - "license": "MIT", 6211 - "dependencies": { 6212 - "ansi-styles": "^6.2.1", 6213 - "is-fullwidth-code-point": "^5.0.0" 6214 - }, 6215 - "engines": { 6216 - "node": ">=18" 6217 - }, 6218 - "funding": { 6219 - "url": "https://github.com/chalk/slice-ansi?sponsor=1" 6220 - } 6221 - }, 6222 - "node_modules/log-update/node_modules/slice-ansi/node_modules/ansi-styles": { 6223 - "version": "6.2.1", 6224 - "license": "MIT", 6225 - "engines": { 6226 - "node": ">=12" 6227 - }, 6228 - "funding": { 6229 - "url": "https://github.com/chalk/ansi-styles?sponsor=1" 6230 - } 6231 - }, 6232 - "node_modules/log-update/node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { 6233 - "version": "5.0.0", 6234 - "license": "MIT", 6235 - "dependencies": { 6236 - "get-east-asian-width": "^1.0.0" 6237 - }, 6238 - "engines": { 6239 - "node": ">=18" 6240 - }, 6241 - "funding": { 6242 - "url": "https://github.com/sponsors/sindresorhus" 6243 - } 6244 - }, 6245 - "node_modules/loupe": { 6246 - "version": "3.2.1", 6247 - "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz", 6248 - "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==", 6249 - "dev": true, 6250 - "license": "MIT" 6251 - }, 6252 - "node_modules/magic-string": { 6253 - "version": "0.30.19", 6254 - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.19.tgz", 6255 - "integrity": "sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==", 6256 - "dev": true, 6257 - "license": "MIT", 6258 - "dependencies": { 6259 - "@jridgewell/sourcemap-codec": "^1.5.5" 6260 - } 6261 - }, 6262 - "node_modules/math-intrinsics": { 6263 - "version": "1.1.0", 6264 - "license": "MIT", 6265 - "engines": { 6266 - "node": ">= 0.4" 6267 - } 6268 - }, 6269 - "node_modules/media-typer": { 6270 - "version": "0.3.0", 6271 - "license": "MIT", 6272 - "engines": { 6273 - "node": ">= 0.6" 6274 - } 6275 - }, 6276 - "node_modules/merge-descriptors": { 6277 - "version": "1.0.3", 6278 - "license": "MIT", 6279 - "funding": { 6280 - "url": "https://github.com/sponsors/sindresorhus" 6281 - } 6282 - }, 6283 - "node_modules/merge-stream": { 6284 - "version": "2.0.0", 6285 - "license": "MIT" 6286 - }, 6287 - "node_modules/merge2": { 6288 - "version": "1.4.1", 6289 - "dev": true, 6290 - "license": "MIT", 6291 - "engines": { 6292 - "node": ">= 8" 6293 - } 6294 - }, 6295 - "node_modules/methods": { 6296 - "version": "1.1.2", 6297 - "license": "MIT", 6298 - "engines": { 6299 - "node": ">= 0.6" 6300 - } 6301 - }, 6302 - "node_modules/micromatch": { 6303 - "version": "4.0.8", 6304 - "license": "MIT", 6305 - "dependencies": { 6306 - "braces": "^3.0.3", 6307 - "picomatch": "^2.3.1" 6308 - }, 6309 - "engines": { 6310 - "node": ">=8.6" 6311 - } 6312 - }, 6313 - "node_modules/micromatch/node_modules/picomatch": { 6314 - "version": "2.3.1", 6315 - "license": "MIT", 6316 - "engines": { 6317 - "node": ">=8.6" 6318 - }, 6319 - "funding": { 6320 - "url": "https://github.com/sponsors/jonschlinkert" 6321 - } 6322 - }, 6323 - "node_modules/mime": { 6324 - "version": "1.6.0", 6325 - "license": "MIT", 6326 - "bin": { 6327 - "mime": "cli.js" 6328 - }, 6329 - "engines": { 6330 - "node": ">=4" 6331 - } 6332 - }, 6333 - "node_modules/mime-db": { 6334 - "version": "1.52.0", 6335 - "license": "MIT", 6336 - "engines": { 6337 - "node": ">= 0.6" 6338 - } 6339 - }, 6340 - "node_modules/mime-types": { 6341 - "version": "2.1.35", 6342 - "license": "MIT", 6343 - "dependencies": { 6344 - "mime-db": "1.52.0" 6345 - }, 6346 - "engines": { 6347 - "node": ">= 0.6" 6348 - } 6349 - }, 6350 - "node_modules/mimic-fn": { 6351 - "version": "4.0.0", 6352 - "license": "MIT", 6353 - "engines": { 6354 - "node": ">=12" 6355 - }, 6356 - "funding": { 6357 - "url": "https://github.com/sponsors/sindresorhus" 6358 - } 6359 - }, 6360 - "node_modules/mimic-function": { 6361 - "version": "5.0.1", 6362 - "license": "MIT", 6363 - "engines": { 6364 - "node": ">=18" 6365 - }, 6366 - "funding": { 6367 - "url": "https://github.com/sponsors/sindresorhus" 6368 - } 6369 - }, 6370 - "node_modules/minimalistic-assert": { 6371 - "version": "1.0.1", 6372 - "license": "ISC" 6373 - }, 6374 - "node_modules/minimalistic-crypto-utils": { 6375 - "version": "1.0.1", 6376 - "license": "MIT" 6377 - }, 6378 - "node_modules/minimatch": { 6379 - "version": "3.1.2", 6380 - "dev": true, 6381 - "license": "ISC", 6382 - "dependencies": { 6383 - "brace-expansion": "^1.1.7" 6384 - }, 6385 - "engines": { 6386 - "node": "*" 6387 - } 6388 - }, 6389 - "node_modules/minimist": { 6390 - "version": "1.2.8", 6391 - "license": "MIT", 6392 - "funding": { 6393 - "url": "https://github.com/sponsors/ljharb" 6394 - } 6395 - }, 6396 - "node_modules/mrmime": { 6397 - "version": "2.0.1", 6398 - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", 6399 - "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", 6400 - "dev": true, 6401 - "license": "MIT", 6402 - "engines": { 6403 - "node": ">=10" 6404 - } 6405 - }, 6406 - "node_modules/ms": { 6407 - "version": "2.1.3", 6408 - "license": "MIT" 6409 - }, 6410 - "node_modules/multiformats": { 6411 - "version": "9.9.0", 6412 - "license": "(Apache-2.0 AND MIT)" 6413 - }, 6414 - "node_modules/murmurhash": { 6415 - "version": "2.0.1", 6416 - "license": "MIT" 6417 - }, 6418 - "node_modules/n-gram": { 6419 - "version": "2.0.2", 6420 - "resolved": "https://registry.npmjs.org/n-gram/-/n-gram-2.0.2.tgz", 6421 - "integrity": "sha512-S24aGsn+HLBxUGVAUFOwGpKs7LBcG4RudKU//eWzt/mQ97/NMKQxDWHyHx63UNWk/OOdihgmzoETn1tf5nQDzQ==", 6422 - "license": "MIT", 6423 - "funding": { 6424 - "type": "github", 6425 - "url": "https://github.com/sponsors/wooorm" 6426 - } 6427 - }, 6428 - "node_modules/nanoid": { 6429 - "version": "3.3.11", 6430 - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", 6431 - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", 6432 - "dev": true, 6433 - "funding": [ 6434 - { 6435 - "type": "github", 6436 - "url": "https://github.com/sponsors/ai" 6437 - } 6438 - ], 6439 - "license": "MIT", 6440 - "bin": { 6441 - "nanoid": "bin/nanoid.cjs" 6442 - }, 6443 - "engines": { 6444 - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 6445 - } 6446 - }, 6447 - "node_modules/natural-compare": { 6448 - "version": "1.4.0", 6449 - "dev": true, 6450 - "license": "MIT" 6451 - }, 6452 - "node_modules/negotiator": { 6453 - "version": "0.6.4", 6454 - "license": "MIT", 6455 - "engines": { 6456 - "node": ">= 0.6" 6457 - } 6458 - }, 6459 - "node_modules/node-fetch": { 6460 - "version": "2.7.0", 6461 - "license": "MIT", 6462 - "dependencies": { 6463 - "whatwg-url": "^5.0.0" 6464 - }, 6465 - "engines": { 6466 - "node": "4.x || >=6.0.0" 6467 - }, 6468 - "peerDependencies": { 6469 - "encoding": "^0.1.0" 6470 - }, 6471 - "peerDependenciesMeta": { 6472 - "encoding": { 6473 - "optional": true 6474 - } 6475 - } 6476 - }, 6477 - "node_modules/node-gyp-build-optional-packages": { 6478 - "version": "5.1.1", 6479 - "license": "MIT", 6480 - "optional": true, 6481 - "dependencies": { 6482 - "detect-libc": "^2.0.1" 6483 - }, 6484 - "bin": { 6485 - "node-gyp-build-optional-packages": "bin.js", 6486 - "node-gyp-build-optional-packages-optional": "optional.js", 6487 - "node-gyp-build-optional-packages-test": "build-test.js" 6488 - } 6489 - }, 6490 - "node_modules/npm-run-path": { 6491 - "version": "5.3.0", 6492 - "license": "MIT", 6493 - "dependencies": { 6494 - "path-key": "^4.0.0" 6495 - }, 6496 - "engines": { 6497 - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" 6498 - }, 6499 - "funding": { 6500 - "url": "https://github.com/sponsors/sindresorhus" 6501 - } 6502 - }, 6503 - "node_modules/npm-run-path/node_modules/path-key": { 6504 - "version": "4.0.0", 6505 - "license": "MIT", 6506 - "engines": { 6507 - "node": ">=12" 6508 - }, 6509 - "funding": { 6510 - "url": "https://github.com/sponsors/sindresorhus" 6511 - } 6512 - }, 6513 - "node_modules/object-assign": { 6514 - "version": "4.1.1", 6515 - "license": "MIT", 6516 - "engines": { 6517 - "node": ">=0.10.0" 6518 - } 6519 - }, 6520 - "node_modules/object-inspect": { 6521 - "version": "1.13.4", 6522 - "dev": true, 6523 - "license": "MIT", 6524 - "engines": { 6525 - "node": ">= 0.4" 6526 - }, 6527 - "funding": { 6528 - "url": "https://github.com/sponsors/ljharb" 6529 - } 6530 - }, 6531 - "node_modules/object-keys": { 6532 - "version": "1.1.1", 6533 - "dev": true, 6534 - "license": "MIT", 6535 - "engines": { 6536 - "node": ">= 0.4" 6537 - } 6538 - }, 6539 - "node_modules/object.assign": { 6540 - "version": "4.1.7", 6541 - "dev": true, 6542 - "license": "MIT", 6543 - "dependencies": { 6544 - "call-bind": "^1.0.8", 6545 - "call-bound": "^1.0.3", 6546 - "define-properties": "^1.2.1", 6547 - "es-object-atoms": "^1.0.0", 6548 - "has-symbols": "^1.1.0", 6549 - "object-keys": "^1.1.1" 6550 - }, 6551 - "engines": { 6552 - "node": ">= 0.4" 6553 - }, 6554 - "funding": { 6555 - "url": "https://github.com/sponsors/ljharb" 6556 - } 6557 - }, 6558 - "node_modules/object.fromentries": { 6559 - "version": "2.0.8", 6560 - "dev": true, 6561 - "license": "MIT", 6562 - "dependencies": { 6563 - "call-bind": "^1.0.7", 6564 - "define-properties": "^1.2.1", 6565 - "es-abstract": "^1.23.2", 6566 - "es-object-atoms": "^1.0.0" 6567 - }, 6568 - "engines": { 6569 - "node": ">= 0.4" 6570 - }, 6571 - "funding": { 6572 - "url": "https://github.com/sponsors/ljharb" 6573 - } 6574 - }, 6575 - "node_modules/object.fromentries/node_modules/es-object-atoms": { 6576 - "version": "1.0.0", 6577 - "dev": true, 6578 - "license": "MIT", 6579 - "dependencies": { 6580 - "es-errors": "^1.3.0" 6581 - }, 6582 - "engines": { 6583 - "node": ">= 0.4" 6584 - } 6585 - }, 6586 - "node_modules/object.groupby": { 6587 - "version": "1.0.3", 6588 - "dev": true, 6589 - "license": "MIT", 6590 - "dependencies": { 6591 - "call-bind": "^1.0.7", 6592 - "define-properties": "^1.2.1", 6593 - "es-abstract": "^1.23.2" 6594 - }, 6595 - "engines": { 6596 - "node": ">= 0.4" 6597 - } 6598 - }, 6599 - "node_modules/object.values": { 6600 - "version": "1.2.1", 6601 - "dev": true, 6602 - "license": "MIT", 6603 - "dependencies": { 6604 - "call-bind": "^1.0.8", 6605 - "call-bound": "^1.0.3", 6606 - "define-properties": "^1.2.1", 6607 - "es-object-atoms": "^1.0.0" 6608 - }, 6609 - "engines": { 6610 - "node": ">= 0.4" 6611 - }, 6612 - "funding": { 6613 - "url": "https://github.com/sponsors/ljharb" 6614 - } 6615 - }, 6616 - "node_modules/object.values/node_modules/call-bound": { 6617 - "version": "1.0.3", 6618 - "dev": true, 6619 - "license": "MIT", 6620 - "dependencies": { 6621 - "call-bind-apply-helpers": "^1.0.1", 6622 - "get-intrinsic": "^1.2.6" 6623 - }, 6624 - "engines": { 6625 - "node": ">= 0.4" 6626 - }, 6627 - "funding": { 6628 - "url": "https://github.com/sponsors/ljharb" 6629 - } 6630 - }, 6631 - "node_modules/object.values/node_modules/call-bound/node_modules/get-intrinsic": { 6632 - "version": "1.2.6", 6633 - "dev": true, 6634 - "license": "MIT", 6635 - "dependencies": { 6636 - "call-bind-apply-helpers": "^1.0.1", 6637 - "dunder-proto": "^1.0.0", 6638 - "es-define-property": "^1.0.1", 6639 - "es-errors": "^1.3.0", 6640 - "es-object-atoms": "^1.0.0", 6641 - "function-bind": "^1.1.2", 6642 - "gopd": "^1.2.0", 6643 - "has-symbols": "^1.1.0", 6644 - "hasown": "^2.0.2", 6645 - "math-intrinsics": "^1.0.0" 6646 - }, 6647 - "engines": { 6648 - "node": ">= 0.4" 6649 - }, 6650 - "funding": { 6651 - "url": "https://github.com/sponsors/ljharb" 6652 - } 6653 - }, 6654 - "node_modules/object.values/node_modules/es-object-atoms": { 6655 - "version": "1.0.0", 6656 - "dev": true, 6657 - "license": "MIT", 6658 - "dependencies": { 6659 - "es-errors": "^1.3.0" 6660 - }, 6661 - "engines": { 6662 - "node": ">= 0.4" 6663 - } 6664 - }, 6665 - "node_modules/on-exit-leak-free": { 6666 - "version": "2.1.2", 6667 - "license": "MIT", 6668 - "engines": { 6669 - "node": ">=14.0.0" 6670 - } 6671 - }, 6672 - "node_modules/on-finished": { 6673 - "version": "2.4.1", 6674 - "license": "MIT", 6675 - "dependencies": { 6676 - "ee-first": "1.1.1" 6677 - }, 6678 - "engines": { 6679 - "node": ">= 0.8" 6680 - } 6681 - }, 6682 - "node_modules/on-headers": { 6683 - "version": "1.0.2", 6684 - "license": "MIT", 6685 - "engines": { 6686 - "node": ">= 0.8" 6687 - } 6688 - }, 6689 - "node_modules/once": { 6690 - "version": "1.4.0", 6691 - "license": "ISC", 6692 - "dependencies": { 6693 - "wrappy": "1" 6694 - } 6695 - }, 6696 - "node_modules/one-webcrypto": { 6697 - "version": "1.0.3", 6698 - "license": "MIT" 6699 - }, 6700 - "node_modules/onetime": { 6701 - "version": "6.0.0", 6702 - "license": "MIT", 6703 - "dependencies": { 6704 - "mimic-fn": "^4.0.0" 6705 - }, 6706 - "engines": { 6707 - "node": ">=12" 6708 - }, 6709 - "funding": { 6710 - "url": "https://github.com/sponsors/sindresorhus" 6711 - } 6712 - }, 6713 - "node_modules/optionator": { 6714 - "version": "0.9.4", 6715 - "dev": true, 6716 - "license": "MIT", 6717 - "dependencies": { 6718 - "deep-is": "^0.1.3", 6719 - "fast-levenshtein": "^2.0.6", 6720 - "levn": "^0.4.1", 6721 - "prelude-ls": "^1.2.1", 6722 - "type-check": "^0.4.0", 6723 - "word-wrap": "^1.2.5" 6724 - }, 6725 - "engines": { 6726 - "node": ">= 0.8.0" 6727 - } 6728 - }, 6729 - "node_modules/own-keys": { 6730 - "version": "1.0.1", 6731 - "dev": true, 6732 - "license": "MIT", 6733 - "dependencies": { 6734 - "get-intrinsic": "^1.2.6", 6735 - "object-keys": "^1.1.1", 6736 - "safe-push-apply": "^1.0.0" 6737 - }, 6738 - "engines": { 6739 - "node": ">= 0.4" 6740 - }, 6741 - "funding": { 6742 - "url": "https://github.com/sponsors/ljharb" 6743 - } 6744 - }, 6745 - "node_modules/p-finally": { 6746 - "version": "1.0.0", 6747 - "license": "MIT", 6748 - "engines": { 6749 - "node": ">=4" 6750 - } 6751 - }, 6752 - "node_modules/p-limit": { 6753 - "version": "3.1.0", 6754 - "dev": true, 6755 - "license": "MIT", 6756 - "dependencies": { 6757 - "yocto-queue": "^0.1.0" 6758 - }, 6759 - "engines": { 6760 - "node": ">=10" 6761 - }, 6762 - "funding": { 6763 - "url": "https://github.com/sponsors/sindresorhus" 6764 - } 6765 - }, 6766 - "node_modules/p-locate": { 6767 - "version": "5.0.0", 6768 - "dev": true, 6769 - "license": "MIT", 6770 - "dependencies": { 6771 - "p-limit": "^3.0.2" 6772 - }, 6773 - "engines": { 6774 - "node": ">=10" 6775 - }, 6776 - "funding": { 6777 - "url": "https://github.com/sponsors/sindresorhus" 6778 - } 6779 - }, 6780 - "node_modules/p-queue": { 6781 - "version": "6.6.2", 6782 - "license": "MIT", 6783 - "dependencies": { 6784 - "eventemitter3": "^4.0.4", 6785 - "p-timeout": "^3.2.0" 6786 - }, 6787 - "engines": { 6788 - "node": ">=8" 6789 - }, 6790 - "funding": { 6791 - "url": "https://github.com/sponsors/sindresorhus" 6792 - } 6793 - }, 6794 - "node_modules/p-ratelimit": { 6795 - "version": "1.0.1", 6796 - "license": "MIT", 6797 - "engines": { 6798 - "node": ">=10.23.0" 6799 - } 6800 - }, 6801 - "node_modules/p-timeout": { 6802 - "version": "3.2.0", 6803 - "license": "MIT", 6804 - "dependencies": { 6805 - "p-finally": "^1.0.0" 6806 - }, 6807 - "engines": { 6808 - "node": ">=8" 6809 - } 6810 - }, 6811 - "node_modules/p-wait-for": { 6812 - "version": "3.2.0", 6813 - "license": "MIT", 6814 - "dependencies": { 6815 - "p-timeout": "^3.0.0" 6816 - }, 6817 - "engines": { 6818 - "node": ">=8" 6819 - }, 6820 - "funding": { 6821 - "url": "https://github.com/sponsors/sindresorhus" 6822 - } 6823 - }, 6824 - "node_modules/parent-module": { 6825 - "version": "1.0.1", 6826 - "dev": true, 6827 - "license": "MIT", 6828 - "dependencies": { 6829 - "callsites": "^3.0.0" 6830 - }, 6831 - "engines": { 6832 - "node": ">=6" 6833 - } 6834 - }, 6835 - "node_modules/parseurl": { 6836 - "version": "1.3.3", 6837 - "license": "MIT", 6838 - "engines": { 6839 - "node": ">= 0.8" 6840 - } 6841 - }, 6842 - "node_modules/partysocket": { 6843 - "version": "1.0.3", 6844 - "license": "ISC", 6845 - "dependencies": { 6846 - "event-target-shim": "^6.0.2" 6847 - } 6848 - }, 6849 - "node_modules/path-exists": { 6850 - "version": "4.0.0", 6851 - "dev": true, 6852 - "license": "MIT", 6853 - "engines": { 6854 - "node": ">=8" 6855 - } 6856 - }, 6857 - "node_modules/path-key": { 6858 - "version": "3.1.1", 6859 - "license": "MIT", 6860 - "engines": { 6861 - "node": ">=8" 6862 - } 6863 - }, 6864 - "node_modules/path-parse": { 6865 - "version": "1.0.7", 6866 - "dev": true, 6867 - "license": "MIT" 6868 - }, 6869 - "node_modules/path-to-regexp": { 6870 - "version": "0.1.12", 6871 - "license": "MIT" 6872 - }, 6873 - "node_modules/path-type": { 6874 - "version": "4.0.0", 6875 - "dev": true, 6876 - "license": "MIT", 6877 - "engines": { 6878 - "node": ">=8" 6879 - } 6880 - }, 6881 - "node_modules/pathe": { 6882 - "version": "2.0.3", 6883 - "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", 6884 - "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", 6885 - "dev": true, 6886 - "license": "MIT" 6887 - }, 6888 - "node_modules/pathval": { 6889 - "version": "2.0.1", 6890 - "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz", 6891 - "integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==", 6892 - "dev": true, 6893 - "license": "MIT", 6894 - "engines": { 6895 - "node": ">= 14.16" 6896 - } 6897 - }, 6898 - "node_modules/pg": { 6899 - "version": "8.13.1", 6900 - "license": "MIT", 6901 - "dependencies": { 6902 - "pg-connection-string": "^2.7.0", 6903 - "pg-pool": "^3.7.0", 6904 - "pg-protocol": "^1.7.0", 6905 - "pg-types": "^2.1.0", 6906 - "pgpass": "1.x" 6907 - }, 6908 - "engines": { 6909 - "node": ">= 8.0.0" 6910 - }, 6911 - "optionalDependencies": { 6912 - "pg-cloudflare": "^1.1.1" 6913 - }, 6914 - "peerDependencies": { 6915 - "pg-native": ">=3.0.1" 6916 - }, 6917 - "peerDependenciesMeta": { 6918 - "pg-native": { 6919 - "optional": true 6920 - } 6921 - } 6922 - }, 6923 - "node_modules/pg-cloudflare": { 6924 - "version": "1.1.1", 6925 - "license": "MIT", 6926 - "optional": true 6927 - }, 6928 - "node_modules/pg-connection-string": { 6929 - "version": "2.7.0", 6930 - "license": "MIT" 6931 - }, 6932 - "node_modules/pg-int8": { 6933 - "version": "1.0.1", 6934 - "license": "ISC", 6935 - "engines": { 6936 - "node": ">=4.0.0" 6937 - } 6938 - }, 6939 - "node_modules/pg-pool": { 6940 - "version": "3.7.0", 6941 - "license": "MIT", 6942 - "peerDependencies": { 6943 - "pg": ">=8.0" 6944 - } 6945 - }, 6946 - "node_modules/pg-protocol": { 6947 - "version": "1.7.0", 6948 - "license": "MIT" 6949 - }, 6950 - "node_modules/pg-types": { 6951 - "version": "2.2.0", 6952 - "license": "MIT", 6953 - "dependencies": { 6954 - "pg-int8": "1.0.1", 6955 - "postgres-array": "~2.0.0", 6956 - "postgres-bytea": "~1.0.0", 6957 - "postgres-date": "~1.0.4", 6958 - "postgres-interval": "^1.1.0" 6959 - }, 6960 - "engines": { 6961 - "node": ">=4" 6962 - } 6963 - }, 6964 - "node_modules/pgpass": { 6965 - "version": "1.0.5", 6966 - "license": "MIT", 6967 - "dependencies": { 6968 - "split2": "^4.1.0" 6969 - } 6970 - }, 6971 - "node_modules/picocolors": { 6972 - "version": "1.1.1", 6973 - "dev": true, 6974 - "license": "ISC" 6975 - }, 6976 - "node_modules/picomatch": { 6977 - "version": "4.0.3", 6978 - "dev": true, 6979 - "license": "MIT", 6980 - "engines": { 6981 - "node": ">=12" 6982 - }, 6983 - "funding": { 6984 - "url": "https://github.com/sponsors/jonschlinkert" 6985 - } 6986 - }, 6987 - "node_modules/pidtree": { 6988 - "version": "0.6.0", 6989 - "license": "MIT", 6990 - "bin": { 6991 - "pidtree": "bin/pidtree.js" 6992 - }, 6993 - "engines": { 6994 - "node": ">=0.10" 6995 - } 6996 - }, 6997 - "node_modules/pino": { 6998 - "version": "9.6.0", 6999 - "license": "MIT", 7000 - "dependencies": { 7001 - "atomic-sleep": "^1.0.0", 7002 - "fast-redact": "^3.1.1", 7003 - "on-exit-leak-free": "^2.1.0", 7004 - "pino-abstract-transport": "^2.0.0", 7005 - "pino-std-serializers": "^7.0.0", 7006 - "process-warning": "^4.0.0", 7007 - "quick-format-unescaped": "^4.0.3", 7008 - "real-require": "^0.2.0", 7009 - "safe-stable-stringify": "^2.3.1", 7010 - "sonic-boom": "^4.0.1", 7011 - "thread-stream": "^3.0.0" 7012 - }, 7013 - "bin": { 7014 - "pino": "bin.js" 7015 - } 7016 - }, 7017 - "node_modules/pino-abstract-transport": { 7018 - "version": "2.0.0", 7019 - "license": "MIT", 7020 - "dependencies": { 7021 - "split2": "^4.0.0" 7022 - } 7023 - }, 7024 - "node_modules/pino-http": { 7025 - "version": "8.6.1", 7026 - "license": "MIT", 7027 - "dependencies": { 7028 - "get-caller-file": "^2.0.5", 7029 - "pino": "^8.17.1", 7030 - "pino-std-serializers": "^6.2.2", 7031 - "process-warning": "^3.0.0" 7032 - } 7033 - }, 7034 - "node_modules/pino-http/node_modules/pino": { 7035 - "version": "8.21.0", 7036 - "license": "MIT", 7037 - "dependencies": { 7038 - "atomic-sleep": "^1.0.0", 7039 - "fast-redact": "^3.1.1", 7040 - "on-exit-leak-free": "^2.1.0", 7041 - "pino-abstract-transport": "^1.2.0", 7042 - "pino-std-serializers": "^6.0.0", 7043 - "process-warning": "^3.0.0", 7044 - "quick-format-unescaped": "^4.0.3", 7045 - "real-require": "^0.2.0", 7046 - "safe-stable-stringify": "^2.3.1", 7047 - "sonic-boom": "^3.7.0", 7048 - "thread-stream": "^2.6.0" 7049 - }, 7050 - "bin": { 7051 - "pino": "bin.js" 7052 - } 7053 - }, 7054 - "node_modules/pino-http/node_modules/pino-std-serializers": { 7055 - "version": "6.2.2", 7056 - "license": "MIT" 7057 - }, 7058 - "node_modules/pino-http/node_modules/pino/node_modules/pino-abstract-transport": { 7059 - "version": "1.2.0", 7060 - "license": "MIT", 7061 - "dependencies": { 7062 - "readable-stream": "^4.0.0", 7063 - "split2": "^4.0.0" 7064 - } 7065 - }, 7066 - "node_modules/pino-http/node_modules/pino/node_modules/sonic-boom": { 7067 - "version": "3.8.1", 7068 - "license": "MIT", 7069 - "dependencies": { 7070 - "atomic-sleep": "^1.0.0" 7071 - } 7072 - }, 7073 - "node_modules/pino-http/node_modules/pino/node_modules/thread-stream": { 7074 - "version": "2.7.0", 7075 - "license": "MIT", 7076 - "dependencies": { 7077 - "real-require": "^0.2.0" 7078 - } 7079 - }, 7080 - "node_modules/pino-http/node_modules/process-warning": { 7081 - "version": "3.0.0", 7082 - "license": "MIT" 7083 - }, 7084 - "node_modules/pino-pretty": { 7085 - "version": "13.0.0", 7086 - "license": "MIT", 7087 - "dependencies": { 7088 - "colorette": "^2.0.7", 7089 - "dateformat": "^4.6.3", 7090 - "fast-copy": "^3.0.2", 7091 - "fast-safe-stringify": "^2.1.1", 7092 - "help-me": "^5.0.0", 7093 - "joycon": "^3.1.1", 7094 - "minimist": "^1.2.6", 7095 - "on-exit-leak-free": "^2.1.0", 7096 - "pino-abstract-transport": "^2.0.0", 7097 - "pump": "^3.0.0", 7098 - "secure-json-parse": "^2.4.0", 7099 - "sonic-boom": "^4.0.1", 7100 - "strip-json-comments": "^3.1.1" 7101 - }, 7102 - "bin": { 7103 - "pino-pretty": "bin.js" 7104 - } 7105 - }, 7106 - "node_modules/pino-std-serializers": { 7107 - "version": "7.0.0", 7108 - "license": "MIT" 7109 - }, 7110 - "node_modules/possible-typed-array-names": { 7111 - "version": "1.1.0", 7112 - "dev": true, 7113 - "license": "MIT", 7114 - "engines": { 7115 - "node": ">= 0.4" 7116 - } 7117 - }, 7118 - "node_modules/postcss": { 7119 - "version": "8.5.6", 7120 - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", 7121 - "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", 7122 - "dev": true, 7123 - "funding": [ 7124 - { 7125 - "type": "opencollective", 7126 - "url": "https://opencollective.com/postcss/" 7127 - }, 7128 - { 7129 - "type": "tidelift", 7130 - "url": "https://tidelift.com/funding/github/npm/postcss" 7131 - }, 7132 - { 7133 - "type": "github", 7134 - "url": "https://github.com/sponsors/ai" 7135 - } 7136 - ], 7137 - "license": "MIT", 7138 - "dependencies": { 7139 - "nanoid": "^3.3.11", 7140 - "picocolors": "^1.1.1", 7141 - "source-map-js": "^1.2.1" 7142 - }, 7143 - "engines": { 7144 - "node": "^10 || ^12 || >=14" 7145 - } 7146 - }, 7147 - "node_modules/postgres-array": { 7148 - "version": "2.0.0", 7149 - "license": "MIT", 7150 - "engines": { 7151 - "node": ">=4" 7152 - } 7153 - }, 7154 - "node_modules/postgres-bytea": { 7155 - "version": "1.0.0", 7156 - "license": "MIT", 7157 - "engines": { 7158 - "node": ">=0.10.0" 7159 - } 7160 - }, 7161 - "node_modules/postgres-date": { 7162 - "version": "1.0.7", 7163 - "license": "MIT", 7164 - "engines": { 7165 - "node": ">=0.10.0" 7166 - } 7167 - }, 7168 - "node_modules/postgres-interval": { 7169 - "version": "1.2.0", 7170 - "license": "MIT", 7171 - "dependencies": { 7172 - "xtend": "^4.0.0" 7173 - }, 7174 - "engines": { 7175 - "node": ">=0.10.0" 7176 - } 7177 - }, 7178 - "node_modules/prelude-ls": { 7179 - "version": "1.2.1", 7180 - "dev": true, 7181 - "license": "MIT", 7182 - "engines": { 7183 - "node": ">= 0.8.0" 7184 - } 7185 - }, 7186 - "node_modules/prettier": { 7187 - "version": "3.5.3", 7188 - "dev": true, 7189 - "license": "MIT", 7190 - "bin": { 7191 - "prettier": "bin/prettier.cjs" 7192 - }, 7193 - "engines": { 7194 - "node": ">=14" 7195 - }, 7196 - "funding": { 7197 - "url": "https://github.com/prettier/prettier?sponsor=1" 7198 - } 7199 - }, 7200 - "node_modules/prettier-linter-helpers": { 7201 - "version": "1.0.0", 7202 - "dev": true, 7203 - "license": "MIT", 7204 - "dependencies": { 7205 - "fast-diff": "^1.1.2" 7206 - }, 7207 - "engines": { 7208 - "node": ">=6.0.0" 7209 - } 7210 - }, 7211 - "node_modules/process": { 7212 - "version": "0.11.10", 7213 - "license": "MIT", 7214 - "engines": { 7215 - "node": ">= 0.6.0" 7216 - } 7217 - }, 7218 - "node_modules/process-warning": { 7219 - "version": "4.0.0", 7220 - "license": "MIT" 7221 - }, 7222 - "node_modules/prom-client": { 7223 - "version": "15.1.3", 7224 - "license": "Apache-2.0", 7225 - "dependencies": { 7226 - "@opentelemetry/api": "^1.4.0", 7227 - "tdigest": "^0.1.1" 7228 - }, 7229 - "engines": { 7230 - "node": "^16 || ^18 || >=20" 7231 - } 7232 - }, 7233 - "node_modules/prompts": { 7234 - "version": "2.4.2", 7235 - "license": "MIT", 7236 - "dependencies": { 7237 - "kleur": "^3.0.3", 7238 - "sisteransi": "^1.0.5" 7239 - }, 7240 - "engines": { 7241 - "node": ">= 6" 7242 - } 7243 - }, 7244 - "node_modules/proxy-addr": { 7245 - "version": "2.0.7", 7246 - "license": "MIT", 7247 - "dependencies": { 7248 - "forwarded": "0.2.0", 7249 - "ipaddr.js": "1.9.1" 7250 - }, 7251 - "engines": { 7252 - "node": ">= 0.10" 7253 - } 7254 - }, 7255 - "node_modules/proxy-from-env": { 7256 - "version": "1.1.0", 7257 - "license": "MIT" 7258 - }, 7259 - "node_modules/pump": { 7260 - "version": "3.0.2", 7261 - "license": "MIT", 7262 - "dependencies": { 7263 - "end-of-stream": "^1.1.0", 7264 - "once": "^1.3.1" 7265 - } 7266 - }, 7267 - "node_modules/punycode": { 7268 - "version": "2.3.1", 7269 - "dev": true, 7270 - "license": "MIT", 7271 - "engines": { 7272 - "node": ">=6" 7273 - } 7274 - }, 7275 - "node_modules/qs": { 7276 - "version": "6.13.0", 7277 - "license": "BSD-3-Clause", 7278 - "dependencies": { 7279 - "side-channel": "^1.0.6" 7280 - }, 7281 - "engines": { 7282 - "node": ">=0.6" 7283 - }, 7284 - "funding": { 7285 - "url": "https://github.com/sponsors/ljharb" 7286 - } 7287 - }, 7288 - "node_modules/queue-microtask": { 7289 - "version": "1.2.3", 7290 - "dev": true, 7291 - "funding": [ 7292 - { 7293 - "type": "github", 7294 - "url": "https://github.com/sponsors/feross" 7295 - }, 7296 - { 7297 - "type": "patreon", 7298 - "url": "https://www.patreon.com/feross" 7299 - }, 7300 - { 7301 - "type": "consulting", 7302 - "url": "https://feross.org/support" 7303 - } 7304 - ], 7305 - "license": "MIT" 7306 - }, 7307 - "node_modules/quick-format-unescaped": { 7308 - "version": "4.0.4", 7309 - "license": "MIT" 7310 - }, 7311 - "node_modules/quick-lru": { 7312 - "version": "7.0.0", 7313 - "license": "MIT", 7314 - "engines": { 7315 - "node": ">=18" 7316 - }, 7317 - "funding": { 7318 - "url": "https://github.com/sponsors/sindresorhus" 7319 - } 7320 - }, 7321 - "node_modules/range-parser": { 7322 - "version": "1.2.1", 7323 - "license": "MIT", 7324 - "engines": { 7325 - "node": ">= 0.6" 7326 - } 7327 - }, 7328 - "node_modules/rate-limit-threshold": { 7329 - "version": "0.1.5", 7330 - "license": "MIT", 7331 - "engines": { 7332 - "node": "^14.13.1 || >=16.0.0" 7333 - } 7334 - }, 7335 - "node_modules/rate-limiter-flexible": { 7336 - "version": "2.4.2", 7337 - "license": "ISC" 7338 - }, 7339 - "node_modules/raw-body": { 7340 - "version": "2.5.2", 7341 - "license": "MIT", 7342 - "dependencies": { 7343 - "bytes": "3.1.2", 7344 - "http-errors": "2.0.0", 7345 - "iconv-lite": "0.4.24", 7346 - "unpipe": "1.0.0" 7347 - }, 7348 - "engines": { 7349 - "node": ">= 0.8" 7350 - } 7351 - }, 7352 - "node_modules/readable-stream": { 7353 - "version": "4.6.0", 7354 - "license": "MIT", 7355 - "dependencies": { 7356 - "abort-controller": "^3.0.0", 7357 - "buffer": "^6.0.3", 7358 - "events": "^3.3.0", 7359 - "process": "^0.11.10", 7360 - "string_decoder": "^1.3.0" 7361 - }, 7362 - "engines": { 7363 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 7364 - } 7365 - }, 7366 - "node_modules/real-require": { 7367 - "version": "0.2.0", 7368 - "license": "MIT", 7369 - "engines": { 7370 - "node": ">= 12.13.0" 7371 - } 7372 - }, 7373 - "node_modules/redis-errors": { 7374 - "version": "1.2.0", 7375 - "license": "MIT", 7376 - "engines": { 7377 - "node": ">=4" 7378 - } 7379 - }, 7380 - "node_modules/redis-parser": { 7381 - "version": "3.0.0", 7382 - "license": "MIT", 7383 - "dependencies": { 7384 - "redis-errors": "^1.0.0" 7385 - }, 7386 - "engines": { 7387 - "node": ">=4" 7388 - } 7389 - }, 7390 - "node_modules/reflect.getprototypeof": { 7391 - "version": "1.0.10", 7392 - "dev": true, 7393 - "license": "MIT", 7394 - "dependencies": { 7395 - "call-bind": "^1.0.8", 7396 - "define-properties": "^1.2.1", 7397 - "es-abstract": "^1.23.9", 7398 - "es-errors": "^1.3.0", 7399 - "es-object-atoms": "^1.0.0", 7400 - "get-intrinsic": "^1.2.7", 7401 - "get-proto": "^1.0.1", 7402 - "which-builtin-type": "^1.2.1" 7403 - }, 7404 - "engines": { 7405 - "node": ">= 0.4" 7406 - }, 7407 - "funding": { 7408 - "url": "https://github.com/sponsors/ljharb" 7409 - } 7410 - }, 7411 - "node_modules/regexp.prototype.flags": { 7412 - "version": "1.5.4", 7413 - "dev": true, 7414 - "license": "MIT", 7415 - "dependencies": { 7416 - "call-bind": "^1.0.8", 7417 - "define-properties": "^1.2.1", 7418 - "es-errors": "^1.3.0", 7419 - "get-proto": "^1.0.1", 7420 - "gopd": "^1.2.0", 7421 - "set-function-name": "^2.0.2" 7422 - }, 7423 - "engines": { 7424 - "node": ">= 0.4" 7425 - }, 7426 - "funding": { 7427 - "url": "https://github.com/sponsors/ljharb" 7428 - } 7429 - }, 7430 - "node_modules/require-from-string": { 7431 - "version": "2.0.2", 7432 - "license": "MIT", 7433 - "engines": { 7434 - "node": ">=0.10.0" 7435 - } 7436 - }, 7437 - "node_modules/resolve": { 7438 - "version": "1.22.10", 7439 - "dev": true, 7440 - "license": "MIT", 7441 - "dependencies": { 7442 - "is-core-module": "^2.16.0", 7443 - "path-parse": "^1.0.7", 7444 - "supports-preserve-symlinks-flag": "^1.0.0" 7445 - }, 7446 - "bin": { 7447 - "resolve": "bin/resolve" 7448 - }, 7449 - "engines": { 7450 - "node": ">= 0.4" 7451 - }, 7452 - "funding": { 7453 - "url": "https://github.com/sponsors/ljharb" 7454 - } 7455 - }, 7456 - "node_modules/resolve-from": { 7457 - "version": "4.0.0", 7458 - "dev": true, 7459 - "license": "MIT", 7460 - "engines": { 7461 - "node": ">=4" 7462 - } 7463 - }, 7464 - "node_modules/resolve-pkg-maps": { 7465 - "version": "1.0.0", 7466 - "dev": true, 7467 - "license": "MIT", 7468 - "funding": { 7469 - "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" 7470 - } 7471 - }, 7472 - "node_modules/restore-cursor": { 7473 - "version": "5.1.0", 7474 - "license": "MIT", 7475 - "dependencies": { 7476 - "onetime": "^7.0.0", 7477 - "signal-exit": "^4.1.0" 7478 - }, 7479 - "engines": { 7480 - "node": ">=18" 7481 - }, 7482 - "funding": { 7483 - "url": "https://github.com/sponsors/sindresorhus" 7484 - } 7485 - }, 7486 - "node_modules/restore-cursor/node_modules/onetime": { 7487 - "version": "7.0.0", 7488 - "license": "MIT", 7489 - "dependencies": { 7490 - "mimic-function": "^5.0.0" 7491 - }, 7492 - "engines": { 7493 - "node": ">=18" 7494 - }, 7495 - "funding": { 7496 - "url": "https://github.com/sponsors/sindresorhus" 7497 - } 7498 - }, 7499 - "node_modules/ret": { 7500 - "version": "0.4.3", 7501 - "license": "MIT", 7502 - "engines": { 7503 - "node": ">=10" 7504 - } 7505 - }, 7506 - "node_modules/reusify": { 7507 - "version": "1.0.4", 7508 - "license": "MIT", 7509 - "engines": { 7510 - "iojs": ">=1.0.0", 7511 - "node": ">=0.10.0" 7512 - } 7513 - }, 7514 - "node_modules/rfdc": { 7515 - "version": "1.4.1", 7516 - "license": "MIT" 7517 - }, 7518 - "node_modules/roarr": { 7519 - "version": "7.21.1", 7520 - "license": "BSD-3-Clause", 7521 - "dependencies": { 7522 - "fast-printf": "^1.6.9", 7523 - "safe-stable-stringify": "^2.4.3", 7524 - "semver-compare": "^1.0.0" 7525 - }, 7526 - "engines": { 7527 - "node": ">=18.0" 7528 - } 7529 - }, 7530 - "node_modules/rollup": { 7531 - "version": "4.52.3", 7532 - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.3.tgz", 7533 - "integrity": "sha512-RIDh866U8agLgiIcdpB+COKnlCreHJLfIhWC3LVflku5YHfpnsIKigRZeFfMfCc4dVcqNVfQQ5gO/afOck064A==", 7534 - "dev": true, 7535 - "license": "MIT", 7536 - "dependencies": { 7537 - "@types/estree": "1.0.8" 7538 - }, 7539 - "bin": { 7540 - "rollup": "dist/bin/rollup" 7541 - }, 7542 - "engines": { 7543 - "node": ">=18.0.0", 7544 - "npm": ">=8.0.0" 7545 - }, 7546 - "optionalDependencies": { 7547 - "@rollup/rollup-android-arm-eabi": "4.52.3", 7548 - "@rollup/rollup-android-arm64": "4.52.3", 7549 - "@rollup/rollup-darwin-arm64": "4.52.3", 7550 - "@rollup/rollup-darwin-x64": "4.52.3", 7551 - "@rollup/rollup-freebsd-arm64": "4.52.3", 7552 - "@rollup/rollup-freebsd-x64": "4.52.3", 7553 - "@rollup/rollup-linux-arm-gnueabihf": "4.52.3", 7554 - "@rollup/rollup-linux-arm-musleabihf": "4.52.3", 7555 - "@rollup/rollup-linux-arm64-gnu": "4.52.3", 7556 - "@rollup/rollup-linux-arm64-musl": "4.52.3", 7557 - "@rollup/rollup-linux-loong64-gnu": "4.52.3", 7558 - "@rollup/rollup-linux-ppc64-gnu": "4.52.3", 7559 - "@rollup/rollup-linux-riscv64-gnu": "4.52.3", 7560 - "@rollup/rollup-linux-riscv64-musl": "4.52.3", 7561 - "@rollup/rollup-linux-s390x-gnu": "4.52.3", 7562 - "@rollup/rollup-linux-x64-gnu": "4.52.3", 7563 - "@rollup/rollup-linux-x64-musl": "4.52.3", 7564 - "@rollup/rollup-openharmony-arm64": "4.52.3", 7565 - "@rollup/rollup-win32-arm64-msvc": "4.52.3", 7566 - "@rollup/rollup-win32-ia32-msvc": "4.52.3", 7567 - "@rollup/rollup-win32-x64-gnu": "4.52.3", 7568 - "@rollup/rollup-win32-x64-msvc": "4.52.3", 7569 - "fsevents": "~2.3.2" 7570 - } 7571 - }, 7572 - "node_modules/run-parallel": { 7573 - "version": "1.2.0", 7574 - "dev": true, 7575 - "funding": [ 7576 - { 7577 - "type": "github", 7578 - "url": "https://github.com/sponsors/feross" 7579 - }, 7580 - { 7581 - "type": "patreon", 7582 - "url": "https://www.patreon.com/feross" 7583 - }, 7584 - { 7585 - "type": "consulting", 7586 - "url": "https://feross.org/support" 7587 - } 7588 - ], 7589 - "license": "MIT", 7590 - "dependencies": { 7591 - "queue-microtask": "^1.2.2" 7592 - } 7593 - }, 7594 - "node_modules/rxjs": { 7595 - "version": "7.8.1", 7596 - "license": "Apache-2.0", 7597 - "optional": true, 7598 - "dependencies": { 7599 - "tslib": "^2.1.0" 7600 - } 7601 - }, 7602 - "node_modules/safe-array-concat": { 7603 - "version": "1.1.3", 7604 - "dev": true, 7605 - "license": "MIT", 7606 - "dependencies": { 7607 - "call-bind": "^1.0.8", 7608 - "call-bound": "^1.0.2", 7609 - "get-intrinsic": "^1.2.6", 7610 - "has-symbols": "^1.1.0", 7611 - "isarray": "^2.0.5" 7612 - }, 7613 - "engines": { 7614 - "node": ">=0.4" 7615 - }, 7616 - "funding": { 7617 - "url": "https://github.com/sponsors/ljharb" 7618 - } 7619 - }, 7620 - "node_modules/safe-buffer": { 7621 - "version": "5.2.1", 7622 - "funding": [ 7623 - { 7624 - "type": "github", 7625 - "url": "https://github.com/sponsors/feross" 7626 - }, 7627 - { 7628 - "type": "patreon", 7629 - "url": "https://www.patreon.com/feross" 7630 - }, 7631 - { 7632 - "type": "consulting", 7633 - "url": "https://feross.org/support" 7634 - } 7635 - ], 7636 - "license": "MIT" 7637 - }, 7638 - "node_modules/safe-push-apply": { 7639 - "version": "1.0.0", 7640 - "dev": true, 7641 - "license": "MIT", 7642 - "dependencies": { 7643 - "es-errors": "^1.3.0", 7644 - "isarray": "^2.0.5" 7645 - }, 7646 - "engines": { 7647 - "node": ">= 0.4" 7648 - }, 7649 - "funding": { 7650 - "url": "https://github.com/sponsors/ljharb" 7651 - } 7652 - }, 7653 - "node_modules/safe-regex-test": { 7654 - "version": "1.1.0", 7655 - "dev": true, 7656 - "license": "MIT", 7657 - "dependencies": { 7658 - "call-bound": "^1.0.2", 7659 - "es-errors": "^1.3.0", 7660 - "is-regex": "^1.2.1" 7661 - }, 7662 - "engines": { 7663 - "node": ">= 0.4" 7664 - }, 7665 - "funding": { 7666 - "url": "https://github.com/sponsors/ljharb" 7667 - } 7668 - }, 7669 - "node_modules/safe-regex2": { 7670 - "version": "3.1.0", 7671 - "license": "MIT", 7672 - "dependencies": { 7673 - "ret": "~0.4.0" 7674 - } 7675 - }, 7676 - "node_modules/safe-stable-stringify": { 7677 - "version": "2.5.0", 7678 - "license": "MIT", 7679 - "engines": { 7680 - "node": ">=10" 7681 - } 7682 - }, 7683 - "node_modules/safer-buffer": { 7684 - "version": "2.1.2", 7685 - "license": "MIT" 7686 - }, 7687 - "node_modules/secure-json-parse": { 7688 - "version": "2.7.0", 7689 - "license": "BSD-3-Clause" 7690 - }, 7691 - "node_modules/semver": { 7692 - "version": "7.6.3", 7693 - "license": "ISC", 7694 - "bin": { 7695 - "semver": "bin/semver.js" 7696 - }, 7697 - "engines": { 7698 - "node": ">=10" 7699 - } 7700 - }, 7701 - "node_modules/semver-compare": { 7702 - "version": "1.0.0", 7703 - "license": "MIT" 7704 - }, 7705 - "node_modules/send": { 7706 - "version": "0.19.0", 7707 - "license": "MIT", 7708 - "dependencies": { 7709 - "debug": "2.6.9", 7710 - "depd": "2.0.0", 7711 - "destroy": "1.2.0", 7712 - "encodeurl": "~1.0.2", 7713 - "escape-html": "~1.0.3", 7714 - "etag": "~1.8.1", 7715 - "fresh": "0.5.2", 7716 - "http-errors": "2.0.0", 7717 - "mime": "1.6.0", 7718 - "ms": "2.1.3", 7719 - "on-finished": "2.4.1", 7720 - "range-parser": "~1.2.1", 7721 - "statuses": "2.0.1" 7722 - }, 7723 - "engines": { 7724 - "node": ">= 0.8.0" 7725 - } 7726 - }, 7727 - "node_modules/send/node_modules/debug": { 7728 - "version": "2.6.9", 7729 - "license": "MIT", 7730 - "dependencies": { 7731 - "ms": "2.0.0" 7732 - } 7733 - }, 7734 - "node_modules/send/node_modules/debug/node_modules/ms": { 7735 - "version": "2.0.0", 7736 - "license": "MIT" 7737 - }, 7738 - "node_modules/send/node_modules/encodeurl": { 7739 - "version": "1.0.2", 7740 - "license": "MIT", 7741 - "engines": { 7742 - "node": ">= 0.8" 7743 - } 7744 - }, 7745 - "node_modules/serve-static": { 7746 - "version": "1.16.2", 7747 - "license": "MIT", 7748 - "dependencies": { 7749 - "encodeurl": "~2.0.0", 7750 - "escape-html": "~1.0.3", 7751 - "parseurl": "~1.3.3", 7752 - "send": "0.19.0" 7753 - }, 7754 - "engines": { 7755 - "node": ">= 0.8.0" 7756 - } 7757 - }, 7758 - "node_modules/set-cookie-parser": { 7759 - "version": "2.7.1", 7760 - "license": "MIT" 7761 - }, 7762 - "node_modules/set-function-length": { 7763 - "version": "1.2.2", 7764 - "dev": true, 7765 - "license": "MIT", 7766 - "dependencies": { 7767 - "define-data-property": "^1.1.4", 7768 - "es-errors": "^1.3.0", 7769 - "function-bind": "^1.1.2", 7770 - "get-intrinsic": "^1.2.4", 7771 - "gopd": "^1.0.1", 7772 - "has-property-descriptors": "^1.0.2" 7773 - }, 7774 - "engines": { 7775 - "node": ">= 0.4" 7776 - } 7777 - }, 7778 - "node_modules/set-function-name": { 7779 - "version": "2.0.2", 7780 - "dev": true, 7781 - "license": "MIT", 7782 - "dependencies": { 7783 - "define-data-property": "^1.1.4", 7784 - "es-errors": "^1.3.0", 7785 - "functions-have-names": "^1.2.3", 7786 - "has-property-descriptors": "^1.0.2" 7787 - }, 7788 - "engines": { 7789 - "node": ">= 0.4" 7790 - } 7791 - }, 7792 - "node_modules/set-proto": { 7793 - "version": "1.0.0", 7794 - "dev": true, 7795 - "license": "MIT", 7796 - "dependencies": { 7797 - "dunder-proto": "^1.0.1", 7798 - "es-errors": "^1.3.0", 7799 - "es-object-atoms": "^1.0.0" 7800 - }, 7801 - "engines": { 7802 - "node": ">= 0.4" 7803 - } 7804 - }, 7805 - "node_modules/setprototypeof": { 7806 - "version": "1.2.0", 7807 - "license": "ISC" 7808 - }, 7809 - "node_modules/sharp": { 7810 - "version": "0.33.5", 7811 - "hasInstallScript": true, 7812 - "license": "Apache-2.0", 7813 - "dependencies": { 7814 - "color": "^4.2.3", 7815 - "detect-libc": "^2.0.3", 7816 - "semver": "^7.6.3" 7817 - }, 7818 - "engines": { 7819 - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 7820 - }, 7821 - "funding": { 7822 - "url": "https://opencollective.com/libvips" 7823 - }, 7824 - "optionalDependencies": { 7825 - "@img/sharp-darwin-arm64": "0.33.5", 7826 - "@img/sharp-darwin-x64": "0.33.5", 7827 - "@img/sharp-libvips-darwin-arm64": "1.0.4", 7828 - "@img/sharp-libvips-darwin-x64": "1.0.4", 7829 - "@img/sharp-libvips-linux-arm": "1.0.5", 7830 - "@img/sharp-libvips-linux-arm64": "1.0.4", 7831 - "@img/sharp-libvips-linux-s390x": "1.0.4", 7832 - "@img/sharp-libvips-linux-x64": "1.0.4", 7833 - "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", 7834 - "@img/sharp-libvips-linuxmusl-x64": "1.0.4", 7835 - "@img/sharp-linux-arm": "0.33.5", 7836 - "@img/sharp-linux-arm64": "0.33.5", 7837 - "@img/sharp-linux-s390x": "0.33.5", 7838 - "@img/sharp-linux-x64": "0.33.5", 7839 - "@img/sharp-linuxmusl-arm64": "0.33.5", 7840 - "@img/sharp-linuxmusl-x64": "0.33.5", 7841 - "@img/sharp-wasm32": "0.33.5", 7842 - "@img/sharp-win32-ia32": "0.33.5", 7843 - "@img/sharp-win32-x64": "0.33.5" 7844 - } 7845 - }, 7846 - "node_modules/shebang-command": { 7847 - "version": "2.0.0", 7848 - "license": "MIT", 7849 - "dependencies": { 7850 - "shebang-regex": "^3.0.0" 7851 - }, 7852 - "engines": { 7853 - "node": ">=8" 7854 - } 7855 - }, 7856 - "node_modules/shebang-regex": { 7857 - "version": "3.0.0", 7858 - "license": "MIT", 7859 - "engines": { 7860 - "node": ">=8" 7861 - } 7862 - }, 7863 - "node_modules/side-channel": { 7864 - "version": "1.1.0", 7865 - "license": "MIT", 7866 - "dependencies": { 7867 - "es-errors": "^1.3.0", 7868 - "object-inspect": "^1.13.3", 7869 - "side-channel-list": "^1.0.0", 7870 - "side-channel-map": "^1.0.1", 7871 - "side-channel-weakmap": "^1.0.2" 7872 - }, 7873 - "engines": { 7874 - "node": ">= 0.4" 7875 - }, 7876 - "funding": { 7877 - "url": "https://github.com/sponsors/ljharb" 7878 - } 7879 - }, 7880 - "node_modules/side-channel-list": { 7881 - "version": "1.0.0", 7882 - "license": "MIT", 7883 - "dependencies": { 7884 - "es-errors": "^1.3.0", 7885 - "object-inspect": "^1.13.3" 7886 - }, 7887 - "engines": { 7888 - "node": ">= 0.4" 7889 - }, 7890 - "funding": { 7891 - "url": "https://github.com/sponsors/ljharb" 7892 - } 7893 - }, 7894 - "node_modules/side-channel-list/node_modules/object-inspect": { 7895 - "version": "1.13.3", 7896 - "license": "MIT", 7897 - "engines": { 7898 - "node": ">= 0.4" 7899 - }, 7900 - "funding": { 7901 - "url": "https://github.com/sponsors/ljharb" 7902 - } 7903 - }, 7904 - "node_modules/side-channel-map": { 7905 - "version": "1.0.1", 7906 - "license": "MIT", 7907 - "dependencies": { 7908 - "call-bound": "^1.0.2", 7909 - "es-errors": "^1.3.0", 7910 - "get-intrinsic": "^1.2.5", 7911 - "object-inspect": "^1.13.3" 7912 - }, 7913 - "engines": { 7914 - "node": ">= 0.4" 7915 - }, 7916 - "funding": { 7917 - "url": "https://github.com/sponsors/ljharb" 7918 - } 7919 - }, 7920 - "node_modules/side-channel-map/node_modules/call-bound": { 7921 - "version": "1.0.3", 7922 - "license": "MIT", 7923 - "dependencies": { 7924 - "call-bind-apply-helpers": "^1.0.1", 7925 - "get-intrinsic": "^1.2.6" 7926 - }, 7927 - "engines": { 7928 - "node": ">= 0.4" 7929 - }, 7930 - "funding": { 7931 - "url": "https://github.com/sponsors/ljharb" 7932 - } 7933 - }, 7934 - "node_modules/side-channel-map/node_modules/get-intrinsic": { 7935 - "version": "1.2.6", 7936 - "license": "MIT", 7937 - "dependencies": { 7938 - "call-bind-apply-helpers": "^1.0.1", 7939 - "dunder-proto": "^1.0.0", 7940 - "es-define-property": "^1.0.1", 7941 - "es-errors": "^1.3.0", 7942 - "es-object-atoms": "^1.0.0", 7943 - "function-bind": "^1.1.2", 7944 - "gopd": "^1.2.0", 7945 - "has-symbols": "^1.1.0", 7946 - "hasown": "^2.0.2", 7947 - "math-intrinsics": "^1.0.0" 7948 - }, 7949 - "engines": { 7950 - "node": ">= 0.4" 7951 - }, 7952 - "funding": { 7953 - "url": "https://github.com/sponsors/ljharb" 7954 - } 7955 - }, 7956 - "node_modules/side-channel-map/node_modules/get-intrinsic/node_modules/es-object-atoms": { 7957 - "version": "1.0.0", 7958 - "license": "MIT", 7959 - "dependencies": { 7960 - "es-errors": "^1.3.0" 7961 - }, 7962 - "engines": { 7963 - "node": ">= 0.4" 7964 - } 7965 - }, 7966 - "node_modules/side-channel-map/node_modules/object-inspect": { 7967 - "version": "1.13.3", 7968 - "license": "MIT", 7969 - "engines": { 7970 - "node": ">= 0.4" 7971 - }, 7972 - "funding": { 7973 - "url": "https://github.com/sponsors/ljharb" 7974 - } 7975 - }, 7976 - "node_modules/side-channel-weakmap": { 7977 - "version": "1.0.2", 7978 - "license": "MIT", 7979 - "dependencies": { 7980 - "call-bound": "^1.0.2", 7981 - "es-errors": "^1.3.0", 7982 - "get-intrinsic": "^1.2.5", 7983 - "object-inspect": "^1.13.3", 7984 - "side-channel-map": "^1.0.1" 7985 - }, 7986 - "engines": { 7987 - "node": ">= 0.4" 7988 - }, 7989 - "funding": { 7990 - "url": "https://github.com/sponsors/ljharb" 7991 - } 7992 - }, 7993 - "node_modules/side-channel-weakmap/node_modules/call-bound": { 7994 - "version": "1.0.3", 7995 - "license": "MIT", 7996 - "dependencies": { 7997 - "call-bind-apply-helpers": "^1.0.1", 7998 - "get-intrinsic": "^1.2.6" 7999 - }, 8000 - "engines": { 8001 - "node": ">= 0.4" 8002 - }, 8003 - "funding": { 8004 - "url": "https://github.com/sponsors/ljharb" 8005 - } 8006 - }, 8007 - "node_modules/side-channel-weakmap/node_modules/get-intrinsic": { 8008 - "version": "1.2.6", 8009 - "license": "MIT", 8010 - "dependencies": { 8011 - "call-bind-apply-helpers": "^1.0.1", 8012 - "dunder-proto": "^1.0.0", 8013 - "es-define-property": "^1.0.1", 8014 - "es-errors": "^1.3.0", 8015 - "es-object-atoms": "^1.0.0", 8016 - "function-bind": "^1.1.2", 8017 - "gopd": "^1.2.0", 8018 - "has-symbols": "^1.1.0", 8019 - "hasown": "^2.0.2", 8020 - "math-intrinsics": "^1.0.0" 8021 - }, 8022 - "engines": { 8023 - "node": ">= 0.4" 8024 - }, 8025 - "funding": { 8026 - "url": "https://github.com/sponsors/ljharb" 8027 - } 8028 - }, 8029 - "node_modules/side-channel-weakmap/node_modules/get-intrinsic/node_modules/es-object-atoms": { 8030 - "version": "1.0.0", 8031 - "license": "MIT", 8032 - "dependencies": { 8033 - "es-errors": "^1.3.0" 8034 - }, 8035 - "engines": { 8036 - "node": ">= 0.4" 8037 - } 8038 - }, 8039 - "node_modules/side-channel-weakmap/node_modules/object-inspect": { 8040 - "version": "1.13.3", 8041 - "license": "MIT", 8042 - "engines": { 8043 - "node": ">= 0.4" 8044 - }, 8045 - "funding": { 8046 - "url": "https://github.com/sponsors/ljharb" 8047 - } 8048 - }, 8049 - "node_modules/side-channel/node_modules/object-inspect": { 8050 - "version": "1.13.3", 8051 - "license": "MIT", 8052 - "engines": { 8053 - "node": ">= 0.4" 8054 - }, 8055 - "funding": { 8056 - "url": "https://github.com/sponsors/ljharb" 8057 - } 8058 - }, 8059 - "node_modules/siginfo": { 8060 - "version": "2.0.0", 8061 - "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", 8062 - "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", 8063 - "dev": true, 8064 - "license": "ISC" 8065 - }, 8066 - "node_modules/signal-exit": { 8067 - "version": "4.1.0", 8068 - "license": "ISC", 8069 - "engines": { 8070 - "node": ">=14" 8071 - }, 8072 - "funding": { 8073 - "url": "https://github.com/sponsors/isaacs" 8074 - } 8075 - }, 8076 - "node_modules/simple-swizzle": { 8077 - "version": "0.2.2", 8078 - "license": "MIT", 8079 - "dependencies": { 8080 - "is-arrayish": "^0.3.1" 8081 - } 8082 - }, 8083 - "node_modules/sirv": { 8084 - "version": "3.0.2", 8085 - "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.2.tgz", 8086 - "integrity": "sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==", 8087 - "dev": true, 8088 - "license": "MIT", 8089 - "dependencies": { 8090 - "@polka/url": "^1.0.0-next.24", 8091 - "mrmime": "^2.0.0", 8092 - "totalist": "^3.0.0" 8093 - }, 8094 - "engines": { 8095 - "node": ">=18" 8096 - } 8097 - }, 8098 - "node_modules/sisteransi": { 8099 - "version": "1.0.5", 8100 - "license": "MIT" 8101 - }, 8102 - "node_modules/slash": { 8103 - "version": "3.0.0", 8104 - "dev": true, 8105 - "license": "MIT", 8106 - "engines": { 8107 - "node": ">=8" 8108 - } 8109 - }, 8110 - "node_modules/slice-ansi": { 8111 - "version": "5.0.0", 8112 - "license": "MIT", 8113 - "dependencies": { 8114 - "ansi-styles": "^6.0.0", 8115 - "is-fullwidth-code-point": "^4.0.0" 8116 - }, 8117 - "engines": { 8118 - "node": ">=12" 8119 - }, 8120 - "funding": { 8121 - "url": "https://github.com/chalk/slice-ansi?sponsor=1" 8122 - } 8123 - }, 8124 - "node_modules/slice-ansi/node_modules/ansi-styles": { 8125 - "version": "6.2.1", 8126 - "license": "MIT", 8127 - "engines": { 8128 - "node": ">=12" 8129 - }, 8130 - "funding": { 8131 - "url": "https://github.com/chalk/ansi-styles?sponsor=1" 8132 - } 8133 - }, 8134 - "node_modules/sonic-boom": { 8135 - "version": "4.2.0", 8136 - "license": "MIT", 8137 - "dependencies": { 8138 - "atomic-sleep": "^1.0.0" 8139 - } 8140 - }, 8141 - "node_modules/source-map": { 8142 - "version": "0.5.7", 8143 - "dev": true, 8144 - "license": "BSD-3-Clause", 8145 - "engines": { 8146 - "node": ">=0.10.0" 8147 - } 8148 - }, 8149 - "node_modules/source-map-js": { 8150 - "version": "1.2.1", 8151 - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", 8152 - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", 8153 - "dev": true, 8154 - "license": "BSD-3-Clause", 8155 - "engines": { 8156 - "node": ">=0.10.0" 8157 - } 8158 - }, 8159 - "node_modules/split2": { 8160 - "version": "4.2.0", 8161 - "license": "ISC", 8162 - "engines": { 8163 - "node": ">= 10.x" 8164 - } 8165 - }, 8166 - "node_modules/stackback": { 8167 - "version": "0.0.2", 8168 - "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", 8169 - "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", 8170 - "dev": true, 8171 - "license": "MIT" 8172 - }, 8173 - "node_modules/standard-as-callback": { 8174 - "version": "2.1.0", 8175 - "license": "MIT" 8176 - }, 8177 - "node_modules/statsig-node": { 8178 - "version": "5.30.0", 8179 - "license": "ISC", 8180 - "dependencies": { 8181 - "ip3country": "^5.0.0", 8182 - "node-fetch": "^2.6.13", 8183 - "ua-parser-js": "^1.0.2", 8184 - "uuid": "^8.3.2" 8185 - } 8186 - }, 8187 - "node_modules/statuses": { 8188 - "version": "2.0.1", 8189 - "license": "MIT", 8190 - "engines": { 8191 - "node": ">= 0.8" 8192 - } 8193 - }, 8194 - "node_modules/std-env": { 8195 - "version": "3.9.0", 8196 - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz", 8197 - "integrity": "sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==", 8198 - "dev": true, 8199 - "license": "MIT" 8200 - }, 8201 - "node_modules/stop-iteration-iterator": { 8202 - "version": "1.1.0", 8203 - "dev": true, 8204 - "license": "MIT", 8205 - "dependencies": { 8206 - "es-errors": "^1.3.0", 8207 - "internal-slot": "^1.1.0" 8208 - }, 8209 - "engines": { 8210 - "node": ">= 0.4" 8211 - } 8212 - }, 8213 - "node_modules/stream-shift": { 8214 - "version": "1.0.3", 8215 - "license": "MIT" 8216 - }, 8217 - "node_modules/string_decoder": { 8218 - "version": "1.3.0", 8219 - "license": "MIT", 8220 - "dependencies": { 8221 - "safe-buffer": "~5.2.0" 8222 - } 8223 - }, 8224 - "node_modules/string-argv": { 8225 - "version": "0.3.2", 8226 - "license": "MIT", 8227 - "engines": { 8228 - "node": ">=0.6.19" 8229 - } 8230 - }, 8231 - "node_modules/string-width": { 8232 - "version": "7.2.0", 8233 - "license": "MIT", 8234 - "dependencies": { 8235 - "emoji-regex": "^10.3.0", 8236 - "get-east-asian-width": "^1.0.0", 8237 - "strip-ansi": "^7.1.0" 8238 - }, 8239 - "engines": { 8240 - "node": ">=18" 8241 - }, 8242 - "funding": { 8243 - "url": "https://github.com/sponsors/sindresorhus" 8244 - } 8245 - }, 8246 - "node_modules/string.prototype.trim": { 8247 - "version": "1.2.10", 8248 - "dev": true, 8249 - "license": "MIT", 8250 - "dependencies": { 8251 - "call-bind": "^1.0.8", 8252 - "call-bound": "^1.0.2", 8253 - "define-data-property": "^1.1.4", 8254 - "define-properties": "^1.2.1", 8255 - "es-abstract": "^1.23.5", 8256 - "es-object-atoms": "^1.0.0", 8257 - "has-property-descriptors": "^1.0.2" 8258 - }, 8259 - "engines": { 8260 - "node": ">= 0.4" 8261 - }, 8262 - "funding": { 8263 - "url": "https://github.com/sponsors/ljharb" 8264 - } 8265 - }, 8266 - "node_modules/string.prototype.trimend": { 8267 - "version": "1.0.9", 8268 - "dev": true, 8269 - "license": "MIT", 8270 - "dependencies": { 8271 - "call-bind": "^1.0.8", 8272 - "call-bound": "^1.0.2", 8273 - "define-properties": "^1.2.1", 8274 - "es-object-atoms": "^1.0.0" 8275 - }, 8276 - "engines": { 8277 - "node": ">= 0.4" 8278 - }, 8279 - "funding": { 8280 - "url": "https://github.com/sponsors/ljharb" 8281 - } 8282 - }, 8283 - "node_modules/string.prototype.trimstart": { 8284 - "version": "1.0.8", 8285 - "dev": true, 8286 - "license": "MIT", 8287 - "dependencies": { 8288 - "call-bind": "^1.0.7", 8289 - "define-properties": "^1.2.1", 8290 - "es-object-atoms": "^1.0.0" 8291 - }, 8292 - "engines": { 8293 - "node": ">= 0.4" 8294 - }, 8295 - "funding": { 8296 - "url": "https://github.com/sponsors/ljharb" 8297 - } 8298 - }, 8299 - "node_modules/strip-ansi": { 8300 - "version": "7.1.0", 8301 - "license": "MIT", 8302 - "dependencies": { 8303 - "ansi-regex": "^6.0.1" 8304 - }, 8305 - "engines": { 8306 - "node": ">=12" 8307 - }, 8308 - "funding": { 8309 - "url": "https://github.com/chalk/strip-ansi?sponsor=1" 8310 - } 8311 - }, 8312 - "node_modules/strip-bom": { 8313 - "version": "3.0.0", 8314 - "dev": true, 8315 - "license": "MIT", 8316 - "engines": { 8317 - "node": ">=4" 8318 - } 8319 - }, 8320 - "node_modules/strip-final-newline": { 8321 - "version": "3.0.0", 8322 - "license": "MIT", 8323 - "engines": { 8324 - "node": ">=12" 8325 - }, 8326 - "funding": { 8327 - "url": "https://github.com/sponsors/sindresorhus" 8328 - } 8329 - }, 8330 - "node_modules/strip-json-comments": { 8331 - "version": "3.1.1", 8332 - "license": "MIT", 8333 - "engines": { 8334 - "node": ">=8" 8335 - }, 8336 - "funding": { 8337 - "url": "https://github.com/sponsors/sindresorhus" 8338 - } 8339 - }, 8340 - "node_modules/strip-literal": { 8341 - "version": "3.0.0", 8342 - "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.0.0.tgz", 8343 - "integrity": "sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==", 8344 - "dev": true, 8345 - "license": "MIT", 8346 - "dependencies": { 8347 - "js-tokens": "^9.0.1" 8348 - }, 8349 - "funding": { 8350 - "url": "https://github.com/sponsors/antfu" 8351 - } 8352 - }, 8353 - "node_modules/strip-literal/node_modules/js-tokens": { 8354 - "version": "9.0.1", 8355 - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", 8356 - "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", 8357 - "dev": true, 8358 - "license": "MIT" 8359 - }, 8360 - "node_modules/structured-headers": { 8361 - "version": "1.0.1", 8362 - "license": "MIT", 8363 - "engines": { 8364 - "node": ">= 14", 8365 - "npm": ">=6" 8366 - } 8367 - }, 8368 - "node_modules/supports-color": { 8369 - "version": "7.2.0", 8370 - "dev": true, 8371 - "license": "MIT", 8372 - "dependencies": { 8373 - "has-flag": "^4.0.0" 8374 - }, 8375 - "engines": { 8376 - "node": ">=8" 8377 - } 8378 - }, 8379 - "node_modules/supports-preserve-symlinks-flag": { 8380 - "version": "1.0.0", 8381 - "dev": true, 8382 - "license": "MIT", 8383 - "engines": { 8384 - "node": ">= 0.4" 8385 - }, 8386 - "funding": { 8387 - "url": "https://github.com/sponsors/ljharb" 8388 - } 8389 - }, 8390 - "node_modules/synckit": { 8391 - "version": "0.11.11", 8392 - "dev": true, 8393 - "license": "MIT", 8394 - "dependencies": { 8395 - "@pkgr/core": "^0.2.9" 8396 - }, 8397 - "engines": { 8398 - "node": "^14.18.0 || >=16.0.0" 8399 - }, 8400 - "funding": { 8401 - "url": "https://opencollective.com/synckit" 8402 - } 8403 - }, 8404 - "node_modules/tdigest": { 8405 - "version": "0.1.2", 8406 - "license": "MIT", 8407 - "dependencies": { 8408 - "bintrees": "1.0.2" 8409 - } 8410 - }, 8411 - "node_modules/thread-stream": { 8412 - "version": "3.1.0", 8413 - "license": "MIT", 8414 - "dependencies": { 8415 - "real-require": "^0.2.0" 8416 - } 8417 - }, 8418 - "node_modules/tinybench": { 8419 - "version": "2.9.0", 8420 - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", 8421 - "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", 8422 - "dev": true, 8423 - "license": "MIT" 8424 - }, 8425 - "node_modules/tinyexec": { 8426 - "version": "0.3.2", 8427 - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", 8428 - "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", 8429 - "dev": true, 8430 - "license": "MIT" 8431 - }, 8432 - "node_modules/tinyglobby": { 8433 - "version": "0.2.15", 8434 - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", 8435 - "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", 8436 - "dev": true, 8437 - "license": "MIT", 8438 - "dependencies": { 8439 - "fdir": "^6.5.0", 8440 - "picomatch": "^4.0.3" 8441 - }, 8442 - "engines": { 8443 - "node": ">=12.0.0" 8444 - }, 8445 - "funding": { 8446 - "url": "https://github.com/sponsors/SuperchupuDev" 8447 - } 8448 - }, 8449 - "node_modules/tinypool": { 8450 - "version": "1.1.1", 8451 - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz", 8452 - "integrity": "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==", 8453 - "dev": true, 8454 - "license": "MIT", 8455 - "engines": { 8456 - "node": "^18.0.0 || >=20.0.0" 8457 - } 8458 - }, 8459 - "node_modules/tinyrainbow": { 8460 - "version": "2.0.0", 8461 - "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz", 8462 - "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==", 8463 - "dev": true, 8464 - "license": "MIT", 8465 - "engines": { 8466 - "node": ">=14.0.0" 8467 - } 8468 - }, 8469 - "node_modules/tinyspy": { 8470 - "version": "4.0.4", 8471 - "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.4.tgz", 8472 - "integrity": "sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==", 8473 - "dev": true, 8474 - "license": "MIT", 8475 - "engines": { 8476 - "node": ">=14.0.0" 8477 - } 8478 - }, 8479 - "node_modules/tlds": { 8480 - "version": "1.255.0", 8481 - "license": "MIT", 8482 - "bin": { 8483 - "tlds": "bin.js" 8484 - } 8485 - }, 8486 - "node_modules/to-fast-properties": { 8487 - "version": "2.0.0", 8488 - "dev": true, 8489 - "license": "MIT", 8490 - "engines": { 8491 - "node": ">=4" 8492 - } 8493 - }, 8494 - "node_modules/to-regex-range": { 8495 - "version": "5.0.1", 8496 - "license": "MIT", 8497 - "dependencies": { 8498 - "is-number": "^7.0.0" 8499 - }, 8500 - "engines": { 8501 - "node": ">=8.0" 8502 - } 8503 - }, 8504 - "node_modules/toad-cache": { 8505 - "version": "3.7.0", 8506 - "license": "MIT", 8507 - "engines": { 8508 - "node": ">=12" 8509 - } 8510 - }, 8511 - "node_modules/toidentifier": { 8512 - "version": "1.0.1", 8513 - "license": "MIT", 8514 - "engines": { 8515 - "node": ">=0.6" 8516 - } 8517 - }, 8518 - "node_modules/totalist": { 8519 - "version": "3.0.1", 8520 - "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", 8521 - "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", 8522 - "dev": true, 8523 - "license": "MIT", 8524 - "engines": { 8525 - "node": ">=6" 8526 - } 8527 - }, 8528 - "node_modules/toygrad": { 8529 - "version": "2.6.0" 8530 - }, 8531 - "node_modules/tr46": { 8532 - "version": "0.0.3", 8533 - "license": "MIT" 8534 - }, 8535 - "node_modules/trigram-utils": { 8536 - "version": "2.0.1", 8537 - "resolved": "https://registry.npmjs.org/trigram-utils/-/trigram-utils-2.0.1.tgz", 8538 - "integrity": "sha512-nfWIXHEaB+HdyslAfMxSqWKDdmqY9I32jS7GnqpdWQnLH89r6A5sdk3fDVYqGAZ0CrT8ovAFSAo6HRiWcWNIGQ==", 8539 - "license": "MIT", 8540 - "dependencies": { 8541 - "collapse-white-space": "^2.0.0", 8542 - "n-gram": "^2.0.0" 8543 - }, 8544 - "funding": { 8545 - "type": "github", 8546 - "url": "https://github.com/sponsors/wooorm" 8547 - } 8548 - }, 8549 - "node_modules/ts-api-utils": { 8550 - "version": "1.4.3", 8551 - "dev": true, 8552 - "license": "MIT", 8553 - "engines": { 8554 - "node": ">=16" 8555 - }, 8556 - "peerDependencies": { 8557 - "typescript": ">=4.2.0" 8558 - } 8559 - }, 8560 - "node_modules/tsconfig-paths": { 8561 - "version": "3.15.0", 8562 - "dev": true, 8563 - "license": "MIT", 8564 - "dependencies": { 8565 - "@types/json5": "^0.0.29", 8566 - "json5": "^1.0.2", 8567 - "minimist": "^1.2.6", 8568 - "strip-bom": "^3.0.0" 8569 - } 8570 - }, 8571 - "node_modules/tslib": { 8572 - "version": "2.8.1", 8573 - "license": "0BSD", 8574 - "optional": true 8575 - }, 8576 - "node_modules/tsx": { 8577 - "version": "4.20.3", 8578 - "dev": true, 8579 - "license": "MIT", 8580 - "dependencies": { 8581 - "esbuild": "~0.25.0", 8582 - "get-tsconfig": "^4.7.5" 8583 - }, 8584 - "bin": { 8585 - "tsx": "dist/cli.mjs" 8586 - }, 8587 - "engines": { 8588 - "node": ">=18.0.0" 8589 - }, 8590 - "optionalDependencies": { 8591 - "fsevents": "~2.3.3" 8592 - } 8593 - }, 8594 - "node_modules/type-check": { 8595 - "version": "0.4.0", 8596 - "dev": true, 8597 - "license": "MIT", 8598 - "dependencies": { 8599 - "prelude-ls": "^1.2.1" 8600 - }, 8601 - "engines": { 8602 - "node": ">= 0.8.0" 8603 - } 8604 - }, 8605 - "node_modules/type-fest": { 8606 - "version": "2.19.0", 8607 - "license": "(MIT OR CC0-1.0)", 8608 - "engines": { 8609 - "node": ">=12.20" 8610 - }, 8611 - "funding": { 8612 - "url": "https://github.com/sponsors/sindresorhus" 8613 - } 8614 - }, 8615 - "node_modules/type-is": { 8616 - "version": "1.6.18", 8617 - "license": "MIT", 8618 - "dependencies": { 8619 - "media-typer": "0.3.0", 8620 - "mime-types": "~2.1.24" 8621 - }, 8622 - "engines": { 8623 - "node": ">= 0.6" 8624 - } 8625 - }, 8626 - "node_modules/typed-array-buffer": { 8627 - "version": "1.0.3", 8628 - "dev": true, 8629 - "license": "MIT", 8630 - "dependencies": { 8631 - "call-bound": "^1.0.3", 8632 - "es-errors": "^1.3.0", 8633 - "is-typed-array": "^1.1.14" 8634 - }, 8635 - "engines": { 8636 - "node": ">= 0.4" 8637 - } 8638 - }, 8639 - "node_modules/typed-array-byte-length": { 8640 - "version": "1.0.3", 8641 - "dev": true, 8642 - "license": "MIT", 8643 - "dependencies": { 8644 - "call-bind": "^1.0.8", 8645 - "for-each": "^0.3.3", 8646 - "gopd": "^1.2.0", 8647 - "has-proto": "^1.2.0", 8648 - "is-typed-array": "^1.1.14" 8649 - }, 8650 - "engines": { 8651 - "node": ">= 0.4" 8652 - }, 8653 - "funding": { 8654 - "url": "https://github.com/sponsors/ljharb" 8655 - } 8656 - }, 8657 - "node_modules/typed-array-byte-offset": { 8658 - "version": "1.0.4", 8659 - "dev": true, 8660 - "license": "MIT", 8661 - "dependencies": { 8662 - "available-typed-arrays": "^1.0.7", 8663 - "call-bind": "^1.0.8", 8664 - "for-each": "^0.3.3", 8665 - "gopd": "^1.2.0", 8666 - "has-proto": "^1.2.0", 8667 - "is-typed-array": "^1.1.15", 8668 - "reflect.getprototypeof": "^1.0.9" 8669 - }, 8670 - "engines": { 8671 - "node": ">= 0.4" 8672 - }, 8673 - "funding": { 8674 - "url": "https://github.com/sponsors/ljharb" 8675 - } 8676 - }, 8677 - "node_modules/typed-array-length": { 8678 - "version": "1.0.7", 8679 - "dev": true, 8680 - "license": "MIT", 8681 - "dependencies": { 8682 - "call-bind": "^1.0.7", 8683 - "for-each": "^0.3.3", 8684 - "gopd": "^1.0.1", 8685 - "is-typed-array": "^1.1.13", 8686 - "possible-typed-array-names": "^1.0.0", 8687 - "reflect.getprototypeof": "^1.0.6" 8688 - }, 8689 - "engines": { 8690 - "node": ">= 0.4" 8691 - }, 8692 - "funding": { 8693 - "url": "https://github.com/sponsors/ljharb" 8694 - } 8695 - }, 8696 - "node_modules/typed-emitter": { 8697 - "version": "2.1.0", 8698 - "license": "MIT", 8699 - "optionalDependencies": { 8700 - "rxjs": "*" 8701 - } 8702 - }, 8703 - "node_modules/typescript": { 8704 - "version": "5.8.3", 8705 - "dev": true, 8706 - "license": "Apache-2.0", 8707 - "bin": { 8708 - "tsc": "bin/tsc", 8709 - "tsserver": "bin/tsserver" 8710 - }, 8711 - "engines": { 8712 - "node": ">=14.17" 8713 - } 8714 - }, 8715 - "node_modules/typescript-eslint": { 8716 - "version": "8.34.1", 8717 - "dev": true, 8718 - "license": "MIT", 8719 - "dependencies": { 8720 - "@typescript-eslint/eslint-plugin": "8.34.1", 8721 - "@typescript-eslint/parser": "8.34.1", 8722 - "@typescript-eslint/utils": "8.34.1" 8723 - }, 8724 - "engines": { 8725 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 8726 - }, 8727 - "funding": { 8728 - "type": "opencollective", 8729 - "url": "https://opencollective.com/typescript-eslint" 8730 - }, 8731 - "peerDependencies": { 8732 - "eslint": "^8.57.0 || ^9.0.0", 8733 - "typescript": ">=4.8.4 <5.9.0" 8734 - } 8735 - }, 8736 - "node_modules/typescript-eslint/node_modules/@typescript-eslint/eslint-plugin": { 8737 - "version": "8.34.1", 8738 - "dev": true, 8739 - "license": "MIT", 8740 - "dependencies": { 8741 - "@eslint-community/regexpp": "^4.10.0", 8742 - "@typescript-eslint/scope-manager": "8.34.1", 8743 - "@typescript-eslint/type-utils": "8.34.1", 8744 - "@typescript-eslint/utils": "8.34.1", 8745 - "@typescript-eslint/visitor-keys": "8.34.1", 8746 - "graphemer": "^1.4.0", 8747 - "ignore": "^7.0.0", 8748 - "natural-compare": "^1.4.0", 8749 - "ts-api-utils": "^2.1.0" 8750 - }, 8751 - "engines": { 8752 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 8753 - }, 8754 - "funding": { 8755 - "type": "opencollective", 8756 - "url": "https://opencollective.com/typescript-eslint" 8757 - }, 8758 - "peerDependencies": { 8759 - "@typescript-eslint/parser": "^8.34.1", 8760 - "eslint": "^8.57.0 || ^9.0.0", 8761 - "typescript": ">=4.8.4 <5.9.0" 8762 - } 8763 - }, 8764 - "node_modules/typescript-eslint/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { 8765 - "version": "8.34.1", 8766 - "dev": true, 8767 - "license": "MIT", 8768 - "dependencies": { 8769 - "@typescript-eslint/types": "8.34.1", 8770 - "@typescript-eslint/visitor-keys": "8.34.1" 8771 - }, 8772 - "engines": { 8773 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 8774 - }, 8775 - "funding": { 8776 - "type": "opencollective", 8777 - "url": "https://opencollective.com/typescript-eslint" 8778 - } 8779 - }, 8780 - "node_modules/typescript-eslint/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager/node_modules/@typescript-eslint/types": { 8781 - "version": "8.34.1", 8782 - "dev": true, 8783 - "license": "MIT", 8784 - "engines": { 8785 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 8786 - }, 8787 - "funding": { 8788 - "type": "opencollective", 8789 - "url": "https://opencollective.com/typescript-eslint" 8790 - } 8791 - }, 8792 - "node_modules/typescript-eslint/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils": { 8793 - "version": "8.34.1", 8794 - "dev": true, 8795 - "license": "MIT", 8796 - "dependencies": { 8797 - "@typescript-eslint/typescript-estree": "8.34.1", 8798 - "@typescript-eslint/utils": "8.34.1", 8799 - "debug": "^4.3.4", 8800 - "ts-api-utils": "^2.1.0" 8801 - }, 8802 - "engines": { 8803 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 8804 - }, 8805 - "funding": { 8806 - "type": "opencollective", 8807 - "url": "https://opencollective.com/typescript-eslint" 8808 - }, 8809 - "peerDependencies": { 8810 - "eslint": "^8.57.0 || ^9.0.0", 8811 - "typescript": ">=4.8.4 <5.9.0" 8812 - } 8813 - }, 8814 - "node_modules/typescript-eslint/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { 8815 - "version": "8.34.1", 8816 - "dev": true, 8817 - "license": "MIT", 8818 - "dependencies": { 8819 - "@typescript-eslint/project-service": "8.34.1", 8820 - "@typescript-eslint/tsconfig-utils": "8.34.1", 8821 - "@typescript-eslint/types": "8.34.1", 8822 - "@typescript-eslint/visitor-keys": "8.34.1", 8823 - "debug": "^4.3.4", 8824 - "fast-glob": "^3.3.2", 8825 - "is-glob": "^4.0.3", 8826 - "minimatch": "^9.0.4", 8827 - "semver": "^7.6.0", 8828 - "ts-api-utils": "^2.1.0" 8829 - }, 8830 - "engines": { 8831 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 8832 - }, 8833 - "funding": { 8834 - "type": "opencollective", 8835 - "url": "https://opencollective.com/typescript-eslint" 8836 - }, 8837 - "peerDependencies": { 8838 - "typescript": ">=4.8.4 <5.9.0" 8839 - } 8840 - }, 8841 - "node_modules/typescript-eslint/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/types": { 8842 - "version": "8.34.1", 8843 - "dev": true, 8844 - "license": "MIT", 8845 - "engines": { 8846 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 8847 - }, 8848 - "funding": { 8849 - "type": "opencollective", 8850 - "url": "https://opencollective.com/typescript-eslint" 8851 - } 8852 - }, 8853 - "node_modules/typescript-eslint/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { 8854 - "version": "9.0.5", 8855 - "dev": true, 8856 - "license": "ISC", 8857 - "dependencies": { 8858 - "brace-expansion": "^2.0.1" 8859 - }, 8860 - "engines": { 8861 - "node": ">=16 || 14 >=14.17" 8862 - }, 8863 - "funding": { 8864 - "url": "https://github.com/sponsors/isaacs" 8865 - } 8866 - }, 8867 - "node_modules/typescript-eslint/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/node_modules/brace-expansion": { 8868 - "version": "2.0.1", 8869 - "dev": true, 8870 - "license": "MIT", 8871 - "dependencies": { 8872 - "balanced-match": "^1.0.0" 8873 - } 8874 - }, 8875 - "node_modules/typescript-eslint/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { 8876 - "version": "8.34.1", 8877 - "dev": true, 8878 - "license": "MIT", 8879 - "dependencies": { 8880 - "@typescript-eslint/types": "8.34.1", 8881 - "eslint-visitor-keys": "^4.2.1" 8882 - }, 8883 - "engines": { 8884 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 8885 - }, 8886 - "funding": { 8887 - "type": "opencollective", 8888 - "url": "https://opencollective.com/typescript-eslint" 8889 - } 8890 - }, 8891 - "node_modules/typescript-eslint/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys/node_modules/@typescript-eslint/types": { 8892 - "version": "8.34.1", 8893 - "dev": true, 8894 - "license": "MIT", 8895 - "engines": { 8896 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 8897 - }, 8898 - "funding": { 8899 - "type": "opencollective", 8900 - "url": "https://opencollective.com/typescript-eslint" 8901 - } 8902 - }, 8903 - "node_modules/typescript-eslint/node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { 8904 - "version": "7.0.5", 8905 - "dev": true, 8906 - "license": "MIT", 8907 - "engines": { 8908 - "node": ">= 4" 8909 - } 8910 - }, 8911 - "node_modules/typescript-eslint/node_modules/@typescript-eslint/eslint-plugin/node_modules/ts-api-utils": { 8912 - "version": "2.1.0", 8913 - "dev": true, 8914 - "license": "MIT", 8915 - "engines": { 8916 - "node": ">=18.12" 8917 - }, 8918 - "peerDependencies": { 8919 - "typescript": ">=4.8.4" 8920 - } 8921 - }, 8922 - "node_modules/typescript-eslint/node_modules/@typescript-eslint/parser": { 8923 - "version": "8.34.1", 8924 - "dev": true, 8925 - "license": "MIT", 8926 - "dependencies": { 8927 - "@typescript-eslint/scope-manager": "8.34.1", 8928 - "@typescript-eslint/types": "8.34.1", 8929 - "@typescript-eslint/typescript-estree": "8.34.1", 8930 - "@typescript-eslint/visitor-keys": "8.34.1", 8931 - "debug": "^4.3.4" 8932 - }, 8933 - "engines": { 8934 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 8935 - }, 8936 - "funding": { 8937 - "type": "opencollective", 8938 - "url": "https://opencollective.com/typescript-eslint" 8939 - }, 8940 - "peerDependencies": { 8941 - "eslint": "^8.57.0 || ^9.0.0", 8942 - "typescript": ">=4.8.4 <5.9.0" 8943 - } 8944 - }, 8945 - "node_modules/typescript-eslint/node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { 8946 - "version": "8.34.1", 8947 - "dev": true, 8948 - "license": "MIT", 8949 - "dependencies": { 8950 - "@typescript-eslint/types": "8.34.1", 8951 - "@typescript-eslint/visitor-keys": "8.34.1" 8952 - }, 8953 - "engines": { 8954 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 8955 - }, 8956 - "funding": { 8957 - "type": "opencollective", 8958 - "url": "https://opencollective.com/typescript-eslint" 8959 - } 8960 - }, 8961 - "node_modules/typescript-eslint/node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { 8962 - "version": "8.34.1", 8963 - "dev": true, 8964 - "license": "MIT", 8965 - "engines": { 8966 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 8967 - }, 8968 - "funding": { 8969 - "type": "opencollective", 8970 - "url": "https://opencollective.com/typescript-eslint" 8971 - } 8972 - }, 8973 - "node_modules/typescript-eslint/node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { 8974 - "version": "8.34.1", 8975 - "dev": true, 8976 - "license": "MIT", 8977 - "dependencies": { 8978 - "@typescript-eslint/project-service": "8.34.1", 8979 - "@typescript-eslint/tsconfig-utils": "8.34.1", 8980 - "@typescript-eslint/types": "8.34.1", 8981 - "@typescript-eslint/visitor-keys": "8.34.1", 8982 - "debug": "^4.3.4", 8983 - "fast-glob": "^3.3.2", 8984 - "is-glob": "^4.0.3", 8985 - "minimatch": "^9.0.4", 8986 - "semver": "^7.6.0", 8987 - "ts-api-utils": "^2.1.0" 8988 - }, 8989 - "engines": { 8990 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 8991 - }, 8992 - "funding": { 8993 - "type": "opencollective", 8994 - "url": "https://opencollective.com/typescript-eslint" 8995 - }, 8996 - "peerDependencies": { 8997 - "typescript": ">=4.8.4 <5.9.0" 8998 - } 8999 - }, 9000 - "node_modules/typescript-eslint/node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { 9001 - "version": "9.0.5", 9002 - "dev": true, 9003 - "license": "ISC", 9004 - "dependencies": { 9005 - "brace-expansion": "^2.0.1" 9006 - }, 9007 - "engines": { 9008 - "node": ">=16 || 14 >=14.17" 9009 - }, 9010 - "funding": { 9011 - "url": "https://github.com/sponsors/isaacs" 9012 - } 9013 - }, 9014 - "node_modules/typescript-eslint/node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/node_modules/brace-expansion": { 9015 - "version": "2.0.1", 9016 - "dev": true, 9017 - "license": "MIT", 9018 - "dependencies": { 9019 - "balanced-match": "^1.0.0" 9020 - } 9021 - }, 9022 - "node_modules/typescript-eslint/node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree/node_modules/ts-api-utils": { 9023 - "version": "2.1.0", 9024 - "dev": true, 9025 - "license": "MIT", 9026 - "engines": { 9027 - "node": ">=18.12" 9028 - }, 9029 - "peerDependencies": { 9030 - "typescript": ">=4.8.4" 9031 - } 9032 - }, 9033 - "node_modules/typescript-eslint/node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { 9034 - "version": "8.34.1", 9035 - "dev": true, 9036 - "license": "MIT", 9037 - "dependencies": { 9038 - "@typescript-eslint/types": "8.34.1", 9039 - "eslint-visitor-keys": "^4.2.1" 9040 - }, 9041 - "engines": { 9042 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 9043 - }, 9044 - "funding": { 9045 - "type": "opencollective", 9046 - "url": "https://opencollective.com/typescript-eslint" 9047 - } 9048 - }, 9049 - "node_modules/typescript-eslint/node_modules/@typescript-eslint/utils": { 9050 - "version": "8.34.1", 9051 - "dev": true, 9052 - "license": "MIT", 9053 - "dependencies": { 9054 - "@eslint-community/eslint-utils": "^4.7.0", 9055 - "@typescript-eslint/scope-manager": "8.34.1", 9056 - "@typescript-eslint/types": "8.34.1", 9057 - "@typescript-eslint/typescript-estree": "8.34.1" 9058 - }, 9059 - "engines": { 9060 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 9061 - }, 9062 - "funding": { 9063 - "type": "opencollective", 9064 - "url": "https://opencollective.com/typescript-eslint" 9065 - }, 9066 - "peerDependencies": { 9067 - "eslint": "^8.57.0 || ^9.0.0", 9068 - "typescript": ">=4.8.4 <5.9.0" 9069 - } 9070 - }, 9071 - "node_modules/typescript-eslint/node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { 9072 - "version": "8.34.1", 9073 - "dev": true, 9074 - "license": "MIT", 9075 - "dependencies": { 9076 - "@typescript-eslint/types": "8.34.1", 9077 - "@typescript-eslint/visitor-keys": "8.34.1" 9078 - }, 9079 - "engines": { 9080 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 9081 - }, 9082 - "funding": { 9083 - "type": "opencollective", 9084 - "url": "https://opencollective.com/typescript-eslint" 9085 - } 9086 - }, 9087 - "node_modules/typescript-eslint/node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager/node_modules/@typescript-eslint/visitor-keys": { 9088 - "version": "8.34.1", 9089 - "dev": true, 9090 - "license": "MIT", 9091 - "dependencies": { 9092 - "@typescript-eslint/types": "8.34.1", 9093 - "eslint-visitor-keys": "^4.2.1" 9094 - }, 9095 - "engines": { 9096 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 9097 - }, 9098 - "funding": { 9099 - "type": "opencollective", 9100 - "url": "https://opencollective.com/typescript-eslint" 9101 - } 9102 - }, 9103 - "node_modules/typescript-eslint/node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { 9104 - "version": "8.34.1", 9105 - "dev": true, 9106 - "license": "MIT", 9107 - "engines": { 9108 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 9109 - }, 9110 - "funding": { 9111 - "type": "opencollective", 9112 - "url": "https://opencollective.com/typescript-eslint" 9113 - } 9114 - }, 9115 - "node_modules/typescript-eslint/node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { 9116 - "version": "8.34.1", 9117 - "dev": true, 9118 - "license": "MIT", 9119 - "dependencies": { 9120 - "@typescript-eslint/project-service": "8.34.1", 9121 - "@typescript-eslint/tsconfig-utils": "8.34.1", 9122 - "@typescript-eslint/types": "8.34.1", 9123 - "@typescript-eslint/visitor-keys": "8.34.1", 9124 - "debug": "^4.3.4", 9125 - "fast-glob": "^3.3.2", 9126 - "is-glob": "^4.0.3", 9127 - "minimatch": "^9.0.4", 9128 - "semver": "^7.6.0", 9129 - "ts-api-utils": "^2.1.0" 9130 - }, 9131 - "engines": { 9132 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 9133 - }, 9134 - "funding": { 9135 - "type": "opencollective", 9136 - "url": "https://opencollective.com/typescript-eslint" 9137 - }, 9138 - "peerDependencies": { 9139 - "typescript": ">=4.8.4 <5.9.0" 9140 - } 9141 - }, 9142 - "node_modules/typescript-eslint/node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/visitor-keys": { 9143 - "version": "8.34.1", 9144 - "dev": true, 9145 - "license": "MIT", 9146 - "dependencies": { 9147 - "@typescript-eslint/types": "8.34.1", 9148 - "eslint-visitor-keys": "^4.2.1" 9149 - }, 9150 - "engines": { 9151 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 9152 - }, 9153 - "funding": { 9154 - "type": "opencollective", 9155 - "url": "https://opencollective.com/typescript-eslint" 9156 - } 9157 - }, 9158 - "node_modules/typescript-eslint/node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { 9159 - "version": "9.0.5", 9160 - "dev": true, 9161 - "license": "ISC", 9162 - "dependencies": { 9163 - "brace-expansion": "^2.0.1" 9164 - }, 9165 - "engines": { 9166 - "node": ">=16 || 14 >=14.17" 9167 - }, 9168 - "funding": { 9169 - "url": "https://github.com/sponsors/isaacs" 9170 - } 9171 - }, 9172 - "node_modules/typescript-eslint/node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/node_modules/brace-expansion": { 9173 - "version": "2.0.1", 9174 - "dev": true, 9175 - "license": "MIT", 9176 - "dependencies": { 9177 - "balanced-match": "^1.0.0" 9178 - } 9179 - }, 9180 - "node_modules/typescript-eslint/node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree/node_modules/ts-api-utils": { 9181 - "version": "2.1.0", 9182 - "dev": true, 9183 - "license": "MIT", 9184 - "engines": { 9185 - "node": ">=18.12" 9186 - }, 9187 - "peerDependencies": { 9188 - "typescript": ">=4.8.4" 9189 - } 9190 - }, 9191 - "node_modules/ua-parser-js": { 9192 - "version": "1.0.40", 9193 - "funding": [ 9194 - { 9195 - "type": "opencollective", 9196 - "url": "https://opencollective.com/ua-parser-js" 9197 - }, 9198 - { 9199 - "type": "paypal", 9200 - "url": "https://paypal.me/faisalman" 9201 - }, 9202 - { 9203 - "type": "github", 9204 - "url": "https://github.com/sponsors/faisalman" 9205 - } 9206 - ], 9207 - "license": "MIT", 9208 - "bin": { 9209 - "ua-parser-js": "script/cli.js" 9210 - }, 9211 - "engines": { 9212 - "node": "*" 9213 - } 9214 - }, 9215 - "node_modules/uint8arrays": { 9216 - "version": "3.0.0", 9217 - "license": "MIT", 9218 - "dependencies": { 9219 - "multiformats": "^9.4.2" 9220 - } 9221 - }, 9222 - "node_modules/unbox-primitive": { 9223 - "version": "1.1.0", 9224 - "dev": true, 9225 - "license": "MIT", 9226 - "dependencies": { 9227 - "call-bound": "^1.0.3", 9228 - "has-bigints": "^1.0.2", 9229 - "has-symbols": "^1.1.0", 9230 - "which-boxed-primitive": "^1.1.1" 9231 - }, 9232 - "engines": { 9233 - "node": ">= 0.4" 9234 - }, 9235 - "funding": { 9236 - "url": "https://github.com/sponsors/ljharb" 9237 - } 9238 - }, 9239 - "node_modules/undici": { 9240 - "version": "7.10.0", 9241 - "license": "MIT", 9242 - "engines": { 9243 - "node": ">=20.18.1" 9244 - } 9245 - }, 9246 - "node_modules/undici-types": { 9247 - "version": "6.21.0", 9248 - "dev": true, 9249 - "license": "MIT" 9250 - }, 9251 - "node_modules/unpipe": { 9252 - "version": "1.0.0", 9253 - "license": "MIT", 9254 - "engines": { 9255 - "node": ">= 0.8" 9256 - } 9257 - }, 9258 - "node_modules/uri-js": { 9259 - "version": "4.4.1", 9260 - "dev": true, 9261 - "license": "BSD-2-Clause", 9262 - "dependencies": { 9263 - "punycode": "^2.1.0" 9264 - } 9265 - }, 9266 - "node_modules/util-deprecate": { 9267 - "version": "1.0.2", 9268 - "license": "MIT" 9269 - }, 9270 - "node_modules/utils-merge": { 9271 - "version": "1.0.1", 9272 - "license": "MIT", 9273 - "engines": { 9274 - "node": ">= 0.4.0" 9275 - } 9276 - }, 9277 - "node_modules/uuid": { 9278 - "version": "8.3.2", 9279 - "license": "MIT", 9280 - "bin": { 9281 - "uuid": "dist/bin/uuid" 9282 - } 9283 - }, 9284 - "node_modules/varint": { 9285 - "version": "6.0.0", 9286 - "license": "MIT" 9287 - }, 9288 - "node_modules/vary": { 9289 - "version": "1.1.2", 9290 - "license": "MIT", 9291 - "engines": { 9292 - "node": ">= 0.8" 9293 - } 9294 - }, 9295 - "node_modules/vite": { 9296 - "version": "7.1.7", 9297 - "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.7.tgz", 9298 - "integrity": "sha512-VbA8ScMvAISJNJVbRDTJdCwqQoAareR/wutevKanhR2/1EkoXVZVkkORaYm/tNVCjP/UDTKtcw3bAkwOUdedmA==", 9299 - "dev": true, 9300 - "license": "MIT", 9301 - "dependencies": { 9302 - "esbuild": "^0.25.0", 9303 - "fdir": "^6.5.0", 9304 - "picomatch": "^4.0.3", 9305 - "postcss": "^8.5.6", 9306 - "rollup": "^4.43.0", 9307 - "tinyglobby": "^0.2.15" 9308 - }, 9309 - "bin": { 9310 - "vite": "bin/vite.js" 9311 - }, 9312 - "engines": { 9313 - "node": "^20.19.0 || >=22.12.0" 9314 - }, 9315 - "funding": { 9316 - "url": "https://github.com/vitejs/vite?sponsor=1" 9317 - }, 9318 - "optionalDependencies": { 9319 - "fsevents": "~2.3.3" 9320 - }, 9321 - "peerDependencies": { 9322 - "@types/node": "^20.19.0 || >=22.12.0", 9323 - "jiti": ">=1.21.0", 9324 - "less": "^4.0.0", 9325 - "lightningcss": "^1.21.0", 9326 - "sass": "^1.70.0", 9327 - "sass-embedded": "^1.70.0", 9328 - "stylus": ">=0.54.8", 9329 - "sugarss": "^5.0.0", 9330 - "terser": "^5.16.0", 9331 - "tsx": "^4.8.1", 9332 - "yaml": "^2.4.2" 9333 - }, 9334 - "peerDependenciesMeta": { 9335 - "@types/node": { 9336 - "optional": true 9337 - }, 9338 - "jiti": { 9339 - "optional": true 9340 - }, 9341 - "less": { 9342 - "optional": true 9343 - }, 9344 - "lightningcss": { 9345 - "optional": true 9346 - }, 9347 - "sass": { 9348 - "optional": true 9349 - }, 9350 - "sass-embedded": { 9351 - "optional": true 9352 - }, 9353 - "stylus": { 9354 - "optional": true 9355 - }, 9356 - "sugarss": { 9357 - "optional": true 9358 - }, 9359 - "terser": { 9360 - "optional": true 9361 - }, 9362 - "tsx": { 9363 - "optional": true 9364 - }, 9365 - "yaml": { 9366 - "optional": true 9367 - } 9368 - } 9369 - }, 9370 - "node_modules/vite-node": { 9371 - "version": "3.2.4", 9372 - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz", 9373 - "integrity": "sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==", 9374 - "dev": true, 9375 - "license": "MIT", 9376 - "dependencies": { 9377 - "cac": "^6.7.14", 9378 - "debug": "^4.4.1", 9379 - "es-module-lexer": "^1.7.0", 9380 - "pathe": "^2.0.3", 9381 - "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" 9382 - }, 9383 - "bin": { 9384 - "vite-node": "vite-node.mjs" 9385 - }, 9386 - "engines": { 9387 - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" 9388 - }, 9389 - "funding": { 9390 - "url": "https://opencollective.com/vitest" 9391 - } 9392 - }, 9393 - "node_modules/vitest": { 9394 - "version": "3.2.4", 9395 - "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.4.tgz", 9396 - "integrity": "sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==", 9397 - "dev": true, 9398 - "license": "MIT", 9399 - "dependencies": { 9400 - "@types/chai": "^5.2.2", 9401 - "@vitest/expect": "3.2.4", 9402 - "@vitest/mocker": "3.2.4", 9403 - "@vitest/pretty-format": "^3.2.4", 9404 - "@vitest/runner": "3.2.4", 9405 - "@vitest/snapshot": "3.2.4", 9406 - "@vitest/spy": "3.2.4", 9407 - "@vitest/utils": "3.2.4", 9408 - "chai": "^5.2.0", 9409 - "debug": "^4.4.1", 9410 - "expect-type": "^1.2.1", 9411 - "magic-string": "^0.30.17", 9412 - "pathe": "^2.0.3", 9413 - "picomatch": "^4.0.2", 9414 - "std-env": "^3.9.0", 9415 - "tinybench": "^2.9.0", 9416 - "tinyexec": "^0.3.2", 9417 - "tinyglobby": "^0.2.14", 9418 - "tinypool": "^1.1.1", 9419 - "tinyrainbow": "^2.0.0", 9420 - "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0", 9421 - "vite-node": "3.2.4", 9422 - "why-is-node-running": "^2.3.0" 9423 - }, 9424 - "bin": { 9425 - "vitest": "vitest.mjs" 9426 - }, 9427 - "engines": { 9428 - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" 9429 - }, 9430 - "funding": { 9431 - "url": "https://opencollective.com/vitest" 9432 - }, 9433 - "peerDependencies": { 9434 - "@edge-runtime/vm": "*", 9435 - "@types/debug": "^4.1.12", 9436 - "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", 9437 - "@vitest/browser": "3.2.4", 9438 - "@vitest/ui": "3.2.4", 9439 - "happy-dom": "*", 9440 - "jsdom": "*" 9441 - }, 9442 - "peerDependenciesMeta": { 9443 - "@edge-runtime/vm": { 9444 - "optional": true 9445 - }, 9446 - "@types/debug": { 9447 - "optional": true 9448 - }, 9449 - "@types/node": { 9450 - "optional": true 9451 - }, 9452 - "@vitest/browser": { 9453 - "optional": true 9454 - }, 9455 - "@vitest/ui": { 9456 - "optional": true 9457 - }, 9458 - "happy-dom": { 9459 - "optional": true 9460 - }, 9461 - "jsdom": { 9462 - "optional": true 9463 - } 9464 - } 9465 - }, 9466 - "node_modules/webidl-conversions": { 9467 - "version": "3.0.1", 9468 - "license": "BSD-2-Clause" 9469 - }, 9470 - "node_modules/whatwg-url": { 9471 - "version": "5.0.0", 9472 - "license": "MIT", 9473 - "dependencies": { 9474 - "tr46": "~0.0.3", 9475 - "webidl-conversions": "^3.0.0" 9476 - } 9477 - }, 9478 - "node_modules/which": { 9479 - "version": "2.0.2", 9480 - "license": "ISC", 9481 - "dependencies": { 9482 - "isexe": "^2.0.0" 9483 - }, 9484 - "bin": { 9485 - "node-which": "bin/node-which" 9486 - }, 9487 - "engines": { 9488 - "node": ">= 8" 9489 - } 9490 - }, 9491 - "node_modules/which-boxed-primitive": { 9492 - "version": "1.1.1", 9493 - "dev": true, 9494 - "license": "MIT", 9495 - "dependencies": { 9496 - "is-bigint": "^1.1.0", 9497 - "is-boolean-object": "^1.2.1", 9498 - "is-number-object": "^1.1.1", 9499 - "is-string": "^1.1.1", 9500 - "is-symbol": "^1.1.1" 9501 - }, 9502 - "engines": { 9503 - "node": ">= 0.4" 9504 - }, 9505 - "funding": { 9506 - "url": "https://github.com/sponsors/ljharb" 9507 - } 9508 - }, 9509 - "node_modules/which-builtin-type": { 9510 - "version": "1.2.1", 9511 - "dev": true, 9512 - "license": "MIT", 9513 - "dependencies": { 9514 - "call-bound": "^1.0.2", 9515 - "function.prototype.name": "^1.1.6", 9516 - "has-tostringtag": "^1.0.2", 9517 - "is-async-function": "^2.0.0", 9518 - "is-date-object": "^1.1.0", 9519 - "is-finalizationregistry": "^1.1.0", 9520 - "is-generator-function": "^1.0.10", 9521 - "is-regex": "^1.2.1", 9522 - "is-weakref": "^1.0.2", 9523 - "isarray": "^2.0.5", 9524 - "which-boxed-primitive": "^1.1.0", 9525 - "which-collection": "^1.0.2", 9526 - "which-typed-array": "^1.1.16" 9527 - }, 9528 - "engines": { 9529 - "node": ">= 0.4" 9530 - }, 9531 - "funding": { 9532 - "url": "https://github.com/sponsors/ljharb" 9533 - } 9534 - }, 9535 - "node_modules/which-collection": { 9536 - "version": "1.0.2", 9537 - "dev": true, 9538 - "license": "MIT", 9539 - "dependencies": { 9540 - "is-map": "^2.0.3", 9541 - "is-set": "^2.0.3", 9542 - "is-weakmap": "^2.0.2", 9543 - "is-weakset": "^2.0.3" 9544 - }, 9545 - "engines": { 9546 - "node": ">= 0.4" 9547 - }, 9548 - "funding": { 9549 - "url": "https://github.com/sponsors/ljharb" 9550 - } 9551 - }, 9552 - "node_modules/which-typed-array": { 9553 - "version": "1.1.19", 9554 - "dev": true, 9555 - "license": "MIT", 9556 - "dependencies": { 9557 - "available-typed-arrays": "^1.0.7", 9558 - "call-bind": "^1.0.8", 9559 - "call-bound": "^1.0.4", 9560 - "for-each": "^0.3.5", 9561 - "get-proto": "^1.0.1", 9562 - "gopd": "^1.2.0", 9563 - "has-tostringtag": "^1.0.2" 9564 - }, 9565 - "engines": { 9566 - "node": ">= 0.4" 9567 - }, 9568 - "funding": { 9569 - "url": "https://github.com/sponsors/ljharb" 9570 - } 9571 - }, 9572 - "node_modules/why-is-node-running": { 9573 - "version": "2.3.0", 9574 - "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", 9575 - "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", 9576 - "dev": true, 9577 - "license": "MIT", 9578 - "dependencies": { 9579 - "siginfo": "^2.0.0", 9580 - "stackback": "0.0.2" 9581 - }, 9582 - "bin": { 9583 - "why-is-node-running": "cli.js" 9584 - }, 9585 - "engines": { 9586 - "node": ">=8" 9587 - } 9588 - }, 9589 - "node_modules/word-wrap": { 9590 - "version": "1.2.5", 9591 - "dev": true, 9592 - "license": "MIT", 9593 - "engines": { 9594 - "node": ">=0.10.0" 9595 - } 9596 - }, 9597 - "node_modules/wrap-ansi": { 9598 - "version": "9.0.0", 9599 - "license": "MIT", 9600 - "dependencies": { 9601 - "ansi-styles": "^6.2.1", 9602 - "string-width": "^7.0.0", 9603 - "strip-ansi": "^7.1.0" 9604 - }, 9605 - "engines": { 9606 - "node": ">=18" 9607 - }, 9608 - "funding": { 9609 - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" 9610 - } 9611 - }, 9612 - "node_modules/wrap-ansi/node_modules/ansi-styles": { 9613 - "version": "6.2.1", 9614 - "license": "MIT", 9615 - "engines": { 9616 - "node": ">=12" 9617 - }, 9618 - "funding": { 9619 - "url": "https://github.com/chalk/ansi-styles?sponsor=1" 9620 - } 9621 - }, 9622 - "node_modules/wrappy": { 9623 - "version": "1.0.2", 9624 - "license": "ISC" 9625 - }, 9626 - "node_modules/ws": { 9627 - "version": "8.18.0", 9628 - "license": "MIT", 9629 - "engines": { 9630 - "node": ">=10.0.0" 9631 - }, 9632 - "peerDependencies": { 9633 - "bufferutil": "^4.0.1", 9634 - "utf-8-validate": ">=5.0.2" 9635 - }, 9636 - "peerDependenciesMeta": { 9637 - "bufferutil": { 9638 - "optional": true 9639 - }, 9640 - "utf-8-validate": { 9641 - "optional": true 9642 - } 9643 - } 9644 - }, 9645 - "node_modules/xtend": { 9646 - "version": "4.0.2", 9647 - "license": "MIT", 9648 - "engines": { 9649 - "node": ">=0.4" 9650 - } 9651 - }, 9652 - "node_modules/yaml": { 9653 - "version": "2.8.0", 9654 - "license": "ISC", 9655 - "bin": { 9656 - "yaml": "bin.mjs" 9657 - }, 9658 - "engines": { 9659 - "node": ">= 14.6" 9660 - } 9661 - }, 9662 - "node_modules/yocto-queue": { 9663 - "version": "0.1.0", 9664 - "dev": true, 9665 - "license": "MIT", 9666 - "engines": { 9667 - "node": ">=10" 9668 - }, 9669 - "funding": { 9670 - "url": "https://github.com/sponsors/sindresorhus" 9671 - } 9672 - }, 9673 - "node_modules/zod": { 9674 - "version": "3.24.1", 9675 - "license": "MIT", 9676 - "funding": { 9677 - "url": "https://github.com/sponsors/colinhacks" 9678 - } 9679 - } 9680 - } 9681 - }
+24 -32
package.json
··· 1 1 { 2 - "name": "skywatch-automod", 3 - "version": "1.2.0", 2 + "name": "skywatch-tools", 3 + "version": "1.1.0", 4 4 "type": "module", 5 5 "scripts": { 6 6 "start": "npx tsx src/main.ts", 7 7 "dev": "npx tsx --watch src/main.ts", 8 - "test": "vitest", 9 - "test:ui": "vitest --ui", 10 8 "format": "bunx prettier --write .", 11 9 "lint": "bunx eslint .", 12 10 "lint:fix": "bunx eslint --fix .", ··· 16 14 "*": "prettier --ignore-unknown --write" 17 15 }, 18 16 "devDependencies": { 19 - "@eslint/compat": "^1.3.2", 20 - "@eslint/eslintrc": "^3.3.1", 21 - "@eslint/js": "^9.29.0", 22 - "@stylistic/eslint-plugin": "^5.2.3", 17 + "@eslint/js": "^9.34.0", 23 18 "@trivago/prettier-plugin-sort-imports": "^4.3.0", 24 19 "@types/better-sqlite3": "^7.6.13", 25 20 "@types/eslint__js": "^8.42.3", 26 21 "@types/express": "^4.17.23", 27 - "@types/node": "^22.15.32", 28 - "@typescript-eslint/eslint-plugin": "^6.10.0", 29 - "@typescript-eslint/parser": "^6.10.0", 30 - "@vitest/ui": "^3.2.4", 31 - "eslint": "^9.29.0", 32 - "eslint-config-prettier": "^10.1.8", 33 - "eslint-plugin-import": "^2.32.0", 34 - "eslint-plugin-prettier": "^5.5.4", 35 - "prettier": "^3.5.3", 36 - "tsx": "^4.20.3", 37 - "typescript": "^5.8.3", 38 - "typescript-eslint": "^8.34.1", 39 - "vitest": "^3.2.4" 22 + "@types/node": "^22.18.0", 23 + "eslint": "^9.34.0", 24 + "prettier": "^3.6.2", 25 + "tsx": "^4.20.5", 26 + "typescript": "^5.9.2", 27 + "typescript-eslint": "^8.42.0" 40 28 }, 41 29 "dependencies": { 42 30 "@atproto/api": "^0.13.35", 43 31 "@atproto/bsky": "^0.0.101", 44 - "@atproto/lexicon": "^0.4.10", 45 - "@atproto/ozone": "^0.1.108", 32 + "@atproto/lexicon": "^0.4.14", 33 + "@atproto/ozone": "^0.1.140", 46 34 "@atproto/repo": "^0.6.5", 47 - "@atproto/xrpc-server": "^0.7.17", 48 - "@skyware/bot": "^0.3.11", 49 - "@skyware/jetstream": "^0.2.2", 35 + "@atproto/xrpc-server": "^0.7.19", 36 + "@clavata/sdk": "^0.3.0", 37 + "@skyware/bot": "^0.3.12", 38 + "@skyware/jetstream": "^0.2.5", 50 39 "@skyware/labeler": "^0.1.13", 51 40 "bottleneck": "^2.19.5", 52 - "dotenv": "^16.5.0", 41 + "dotenv": "^16.6.1", 53 42 "express": "^4.21.2", 54 43 "franc": "^6.2.0", 55 44 "husky": "^9.1.7", 56 - "lint-staged": "^15.5.1", 45 + "lint-staged": "^15.5.2", 57 46 "p-ratelimit": "^1.0.1", 58 - "pino": "^9.6.0", 59 - "pino-pretty": "^13.0.0", 47 + "pino": "^9.9.0", 48 + "pino-pretty": "^13.1.1", 60 49 "prom-client": "^15.1.3", 61 - "undici": "^7.8.0" 62 - } 50 + "undici": "^7.15.0" 51 + }, 52 + "trustedDependencies": [ 53 + "protobufjs" 54 + ] 63 55 }
+19 -6
src/checkHandles.ts
··· 1 1 import { HANDLE_CHECKS } from "./constants.js"; 2 - import logger from "./logger.js"; 2 + import { logger } from "./logger.js"; 3 3 import { 4 4 createAccountReport, 5 5 createAccountComment, ··· 15 15 HANDLE_CHECKS.forEach((checkList) => { 16 16 if (checkList.ignoredDIDs) { 17 17 if (checkList.ignoredDIDs.includes(did)) { 18 - logger.info(`Whitelisted DID: ${did}`); 18 + logger.debug( 19 + { process: "CHECKHANDLE", did, handle, time }, 20 + "Whitelisted DID", 21 + ); 19 22 return; 20 23 } 21 24 } ··· 24 27 // False-positive checks 25 28 if (checkList.whitelist) { 26 29 if (checkList.whitelist.test(handle)) { 27 - logger.info(`Whitelisted phrase found for: ${handle}`); 30 + logger.debug( 31 + { process: "CHECKHANDLE", did, handle, time }, 32 + "Whitelisted phrase found", 33 + ); 28 34 return; 29 35 } 30 36 } 31 37 32 38 if (checkList.toLabel === true) { 33 - logger.info(`[CHECKHANDLE]: Labeling ${did} for ${checkList.label}`); 39 + logger.info( 40 + { process: "CHECKHANDLE", did, handle, time, label: checkList.label }, 41 + "Labeling account", 42 + ); 34 43 { 35 44 createAccountLabel( 36 45 did, ··· 41 50 } 42 51 43 52 if (checkList.reportAcct === true) { 44 - logger.info(`[CHECKHANDLE]: Reporting ${did} for ${checkList.label}`); 53 + logger.info( 54 + { process: "CHECKHANDLE", did, handle, time, label: checkList.label }, 55 + "Reporting account", 56 + ); 45 57 createAccountReport(did, `${time}: ${checkList.comment} - ${handle}`); 46 58 } 47 59 48 60 if (checkList.commentAcct === true) { 49 61 logger.info( 50 - `[CHECKHANDLE]: Commenting on ${did} for ${checkList.label}`, 62 + { process: "CHECKHANDLE", did, handle, time, label: checkList.label }, 63 + "Commenting on account", 51 64 ); 52 65 createAccountComment(did, `${time}: ${checkList.comment} - ${handle}`); 53 66 }
+39 -9
src/checkPosts.ts
··· 1 1 import { LINK_SHORTENER, POST_CHECKS } from "./constants.js"; 2 2 import { Post } from "./types.js"; 3 - import logger from "./logger.js"; 3 + import { logger } from "./logger.js"; 4 4 import { countStarterPacks } from "./count.js"; 5 5 import { 6 6 createPostLabel, ··· 30 30 } 31 31 } catch (error) { 32 32 logger.error( 33 - `[CHECKPOSTS]: Failed to resolve shortened URL: ${post[0].text} with error: ${error}`, 33 + { process: "CHECKPOSTS", text: post[0].text, error }, 34 + "Failed to resolve shortened URL", 34 35 ); 35 36 // Keep the original URL if resolution fails 36 37 } ··· 49 50 50 51 if (checkPost.ignoredDIDs) { 51 52 if (checkPost.ignoredDIDs.includes(post[0].did)) { 52 - logger.info(`[CHECKPOSTS]: Whitelisted DID: ${post[0].did}`); 53 + logger.debug( 54 + { process: "CHECKPOSTS", did: post[0].did, atURI: post[0].atURI }, 55 + "Whitelisted DID", 56 + ); 53 57 return; 54 58 } 55 59 } ··· 58 62 // Check if post is whitelisted 59 63 if (checkPost.whitelist) { 60 64 if (checkPost.whitelist.test(post[0].text)) { 61 - logger.info(`[CHECKPOSTS]: Whitelisted phrase found"`); 65 + logger.debug( 66 + { process: "CHECKPOSTS", did: post[0].did, atURI: post[0].atURI }, 67 + "Whitelisted phrase found", 68 + ); 62 69 return; 63 70 } 64 71 } ··· 67 74 68 75 if (checkPost.toLabel === true) { 69 76 logger.info( 70 - `[CHECKPOSTS]: Labeling ${post[0].atURI} for ${checkPost.label}`, 77 + { 78 + process: "CHECKPOSTS", 79 + label: checkPost.label, 80 + did: post[0].did, 81 + atURI: post[0].atURI, 82 + }, 83 + "Labeling post", 71 84 ); 72 85 createPostLabel( 73 86 post[0].atURI, ··· 80 93 81 94 if (checkPost.reportPost === true) { 82 95 logger.info( 83 - `[CHECKPOSTS]: Reporting ${post[0].atURI} for ${checkPost.label}`, 96 + { 97 + process: "CHECKPOSTS", 98 + label: checkPost.label, 99 + did: post[0].did, 100 + atURI: post[0].atURI, 101 + }, 102 + "Reporting post", 84 103 ); 85 - logger.info(`Reporting: ${post[0].atURI}`); 86 104 createPostReport( 87 105 post[0].atURI, 88 106 post[0].cid, ··· 92 110 93 111 if (checkPost.reportAcct === true) { 94 112 logger.info( 95 - `[CHECKPOSTS]: Reporting on ${post[0].did} for ${checkPost.label} in ${post[0].atURI}`, 113 + { 114 + process: "CHECKPOSTS", 115 + label: checkPost.label, 116 + did: post[0].did, 117 + atURI: post[0].atURI, 118 + }, 119 + "Reporting account", 96 120 ); 97 121 createAccountReport( 98 122 post[0].did, ··· 102 126 103 127 if (checkPost.commentAcct === true) { 104 128 logger.info( 105 - `[CHECKPOSTS]: Commenting on ${post[0].did} for ${checkPost.label} in ${post[0].atURI}`, 129 + { 130 + process: "CHECKPOSTS", 131 + label: checkPost.label, 132 + did: post[0].did, 133 + atURI: post[0].atURI, 134 + }, 135 + "Commenting on account", 106 136 ); 107 137 createAccountComment( 108 138 post[0].did,
+12 -25
src/checkProfiles.ts
··· 1 - import { login } from "./agent.js"; 2 - import { langs, PROFILE_CHECKS } from "./constants.js"; 3 - import logger from "./logger.js"; 1 + import { PROFILE_CHECKS } from "./constants.js"; 2 + import { logger } from "./logger.js"; 4 3 import { 5 4 createAccountReport, 6 5 createAccountLabel, ··· 27 26 // Check if DID is whitelisted 28 27 if (checkProfiles.ignoredDIDs) { 29 28 if (checkProfiles.ignoredDIDs.includes(did)) { 30 - logger.info(`[CHECKDESCRIPTION]: Whitelisted DID: ${did}`); 29 + logger.debug({ process: "CHECKDESCRIPTION", did, time, displayName, description }, "Whitelisted DID"); 31 30 return; 32 31 } 33 32 } ··· 38 37 // Check if description is whitelisted 39 38 if (checkProfiles.whitelist) { 40 39 if (checkProfiles.whitelist.test(description)) { 41 - logger.info(`[CHECKDESCRIPTION]: Whitelisted phrase found.`); 40 + logger.debug({ process: "CHECKDESCRIPTION", did, time, displayName, description }, "Whitelisted phrase found"); 42 41 return; 43 42 } 44 43 } ··· 49 48 `${checkProfiles.label}`, 50 49 `${time}: ${checkProfiles.comment} - ${displayName} - ${description}`, 51 50 ); 52 - logger.info( 53 - `[CHECKDESCRIPTION]: Labeling ${did} for ${checkProfiles.label}`, 54 - ); 51 + logger.info({ process: "CHECKDESCRIPTION", did, time, displayName, description, label: checkProfiles.label }, "Labeling account"); 55 52 } 56 53 57 54 if (checkProfiles.reportAcct === true) { ··· 59 56 did, 60 57 `${time}: ${checkProfiles.comment} - ${displayName} - ${description}`, 61 58 ); 62 - logger.info( 63 - `[CHECKDESCRIPTION]: Reporting ${did} for ${checkProfiles.label}`, 64 - ); 59 + logger.info({ process: "CHECKDESCRIPTION", did, time, displayName, description, label: checkProfiles.label }, "Reporting account"); 65 60 } 66 61 67 62 if (checkProfiles.commentAcct === true) { ··· 69 64 did, 70 65 `${time}: ${checkProfiles.comment} - ${displayName} - ${description}`, 71 66 ); 72 - logger.info( 73 - `[CHECKDESCRIPTION]: Commenting on ${did} for ${checkProfiles.label}`, 74 - ); 67 + logger.info({ process: "CHECKDESCRIPTION", did, time, displayName, description, label: checkProfiles.label }, "Commenting on account"); 75 68 } 76 69 } 77 70 } ··· 98 91 // Check if DID is whitelisted 99 92 if (checkProfiles.ignoredDIDs) { 100 93 if (checkProfiles.ignoredDIDs.includes(did)) { 101 - logger.info(`[CHECKDISPLAYNAME]: Whitelisted DID: ${did}`); 94 + logger.debug({ process: "CHECKDISPLAYNAME", did, time, displayName, description }, "Whitelisted DID"); 102 95 return; 103 96 } 104 97 } ··· 109 102 // Check if displayName is whitelisted 110 103 if (checkProfiles.whitelist) { 111 104 if (checkProfiles.whitelist.test(displayName)) { 112 - logger.info(`[CHECKDISPLAYNAME]: Whitelisted phrase found.`); 105 + logger.debug({ process: "CHECKDISPLAYNAME", did, time, displayName, description }, "Whitelisted phrase found"); 113 106 return; 114 107 } 115 108 } ··· 120 113 `${checkProfiles.label}`, 121 114 `${time}: ${checkProfiles.comment} - ${displayName} - ${description}`, 122 115 ); 123 - logger.info( 124 - `[CHECKDISPLAYNAME]: Labeling ${did} for ${checkProfiles.label}`, 125 - ); 116 + logger.info({ process: "CHECKDISPLAYNAME", did, time, displayName, description, label: checkProfiles.label }, "Labeling account"); 126 117 } 127 118 128 119 if (checkProfiles.reportAcct === true) { ··· 130 121 did, 131 122 `${time}: ${checkProfiles.comment} - ${displayName} - ${description}`, 132 123 ); 133 - logger.info( 134 - `[CHECKDISPLAYNAME]: Reporting ${did} for ${checkProfiles.label}`, 135 - ); 124 + logger.info({ process: "CHECKDISPLAYNAME", did, time, displayName, description, label: checkProfiles.label }, "Reporting account"); 136 125 } 137 126 138 127 if (checkProfiles.commentAcct === true) { ··· 140 129 did, 141 130 `${time}: ${checkProfiles.comment} - ${displayName} - ${description}`, 142 131 ); 143 - logger.info( 144 - `[CHECKDISPLAYNAME]: Commenting on ${did} for ${checkProfiles.label}`, 145 - ); 132 + logger.info({ process: "CHECKDISPLAYNAME", did, time, displayName, description, label: checkProfiles.label }, "Commenting on account"); 146 133 } 147 134 } 148 135 }
-109
src/checkStarterPack.ts
··· 1 - import { PROFILE_CHECKS, STARTERPACK_CHECKS } from "./constants.js"; 2 - import logger from "./logger.js"; 3 - import { 4 - createAccountLabel, 5 - createAccountReport, 6 - createPostLabel, 7 - } from "./moderation.js"; 8 - 9 - export const checkStarterPack = async ( 10 - did: string, 11 - time: number, 12 - atURI: string, 13 - ) => { 14 - // Get a list of labels 15 - const labels: string[] = Array.from( 16 - PROFILE_CHECKS, 17 - (profileCheck) => profileCheck.label, 18 - ); 19 - 20 - // iterate through the labels 21 - labels.forEach((label) => { 22 - const checkProfiles = PROFILE_CHECKS.find( 23 - (profileCheck) => profileCheck.label === label, 24 - ); 25 - 26 - // Check if DID is whitelisted 27 - if (checkProfiles?.ignoredDIDs) { 28 - if (checkProfiles.ignoredDIDs.includes(did)) { 29 - return logger.info(`Whitelisted DID: ${did}`); 30 - } 31 - } 32 - 33 - if (atURI) { 34 - if (checkProfiles?.starterPacks) { 35 - if (checkProfiles?.starterPacks.includes(atURI)) { 36 - logger.info(`Account joined via starter pack at: ${atURI}`); 37 - createAccountLabel( 38 - did, 39 - `${checkProfiles!.label}`, 40 - `${time}: ${checkProfiles!.comment} - Account joined via starter pack at: ${atURI}`, 41 - ); 42 - } 43 - } 44 - } 45 - }); 46 - }; 47 - 48 - export const checkNewStarterPack = async ( 49 - did: string, 50 - time: number, 51 - atURI: string, 52 - cid: string, 53 - packName: string | undefined, 54 - description: string | undefined, 55 - ) => { 56 - const labels: string[] = Array.from( 57 - STARTERPACK_CHECKS, 58 - (SPCheck) => SPCheck.label, 59 - ); 60 - 61 - labels.forEach((label) => { 62 - const checkList = PROFILE_CHECKS.find((SPCheck) => SPCheck.label === label); 63 - 64 - if (checkList?.knownVectors?.includes(did)) { 65 - createPostLabel( 66 - atURI, 67 - cid, 68 - `${checkList!.label}`, 69 - `${time}: Starter pack created by known vector for ${checkList!.label} at: ${atURI}"`, 70 - ); 71 - createAccountReport( 72 - did, 73 - `${time}: Starter pack created by known vector for ${checkList!.label} at: ${atURI}"`, 74 - ); 75 - } 76 - 77 - if (description) { 78 - if (checkList!.check.test(description)) { 79 - logger.info(`Labeling post: ${atURI}`); 80 - createPostLabel( 81 - atURI, 82 - cid, 83 - `${checkList!.label}`, 84 - `${time}: ${checkList!.comment} at ${atURI} with text "${description}"`, 85 - ); 86 - createAccountReport( 87 - did, 88 - `${time}: ${checkList!.comment} at ${atURI} with text "${description}"`, 89 - ); 90 - } 91 - } 92 - 93 - if (packName) { 94 - if (checkList!.check.test(packName)) { 95 - logger.info(`Labeling post: ${atURI}`); 96 - createPostLabel( 97 - atURI, 98 - cid, 99 - `${checkList!.label}`, 100 - `${time}: ${checkList!.comment} at ${atURI} with pack name "${packName}"`, 101 - ); 102 - createAccountReport( 103 - did, 104 - `${time}: ${checkList!.comment} at ${atURI} with pack name "${packName}"`, 105 - ); 106 - } 107 - } 108 - }); 109 - };
-94
src/constants.ts.example
··· 1 - // rename this file to constants.ts 2 - import type { Checks } from "./types.js"; 3 - 4 - export const LINK_SHORTENER = new RegExp( 5 - "(?:https?:\\/\\/)?([^.]+\\.)?(tinyurl\\.com|bit\\.ly|goo\\.gl|g\\.co|ow\\.ly|shorturl\\.at|t\\.co)", 6 - "i", 7 - ); 8 - 9 - export const langs = ["eng"]; 10 - 11 - export const PROFILE_CHECKS: Checks[] = [ 12 - { 13 - language: ["eng"], 14 - label: "skub", 15 - comment: "Pro-skub language found in profile", 16 - description: true, 17 - displayName: true, 18 - reportAcct: false, 19 - commentAcct: false, 20 - toLabel: true, 21 - check: new RegExp( 22 - "(only|pro)[ -]skub|we love skub|skub is (good|god|king)|\\bskub\\b", 23 - "i", 24 - ), 25 - whitelist: new RegExp("(anti|[🚫]|DNI)[ -:]?skub", "i"), 26 - ignoredDIDs: [ 27 - "did:plc:example", //Parody account 28 - ], 29 - }, 30 - { 31 - label: "skub-adjacent", 32 - comment: "skub-adjacent language found in profile", 33 - description: true, 34 - displayName: true, 35 - reportAcct: false, 36 - commentAcct: false, 37 - toLabel: true, 38 - check: new RegExp( 39 - "skubbe", 40 - "i", 41 - ), 42 - }, 43 - ]; 44 - 45 - export const HANDLE_CHECKS: Checks[] = [ 46 - { 47 - language: ["eng"], 48 - label: "skub", 49 - comment: "Pro-skub language found in handle", 50 - reportAcct: false, 51 - commentAcct: false, 52 - toLabel: true, 53 - check: new RegExp( 54 - "(only|pro)[-]skub|we love skub|skub[-]?is[-]?(good|god|king)|skub\\.(pro|com|org)", 55 - "i", 56 - ), 57 - }, 58 - ]; 59 - 60 - export const POST_CHECKS: Checks[] = [ 61 - { 62 - language: ["eng"], 63 - label: "pro-skub-link", 64 - comment: "Pro Skub link found in post", 65 - reportAcct: false, 66 - commentAcct: true, 67 - reportPost: false, 68 - toLabel: true, 69 - check: new RegExp( 70 - "skubbe\\.com|skub\\.(me|pro|tech)", 71 - "i", 72 - ), 73 - }, 74 - ]; 75 - 76 - export const STARTERPACK_CHECKS: Checks[] = [ 77 - { 78 - label: "skubbe", 79 - comment: "Skub found Starter Pack", 80 - description: true, 81 - displayName: true, 82 - reportAcct: false, 83 - commentAcct: false, 84 - toLabel: true, 85 - check: new RegExp( 86 - "Skub", 87 - "i", 88 - ), 89 - knownVectors: [ 90 - "did:plc:example1", 91 - "did:plc:example2", 92 - ], 93 - }, 94 - ];
+3 -7
src/count.ts
··· 1 1 import { isLoggedIn, agent } from "./agent.js"; 2 - import logger from "./logger.js"; 2 + import { logger } from "./logger.js"; 3 3 import { limit } from "./limits.js"; 4 4 import { createAccountLabel } from "./moderation.js"; 5 5 ··· 7 7 await isLoggedIn; 8 8 9 9 if (did in ["did:plc:gpunjjgvlyb4racypz3yfiq4"]) { 10 - logger.info( 11 - `[COUNTSTARTERPACKS]: ${time}: Account ${did} is a whitelisted.`, 12 - ); 10 + logger.debug({ process: "COUNTSTARTERPACKS", did, time }, "Account is whitelisted"); 13 11 return; 14 12 } 15 13 ··· 26 24 ); 27 25 } 28 26 } catch (error) { 29 - logger.error( 30 - `[COUNTSTARTERPACKS]: Error checking associated accounts: ${error}`, 31 - ); 27 + logger.error({ process: "COUNTSTARTERPACKS", error }, "Error checking associated accounts"); 32 28 } 33 29 }); 34 30 };
+10 -17
src/logger.ts
··· 1 - import { pino } from "pino"; 1 + import pino from "pino"; 2 2 3 - const logger = pino({ 4 - level: process.env.LOG_LEVEL ?? "info", 5 - transport: 6 - process.env.NODE_ENV !== "production" 7 - ? { 8 - target: "pino-pretty", 9 - options: { 10 - colorize: true, 11 - translateTime: "SYS:standard", 12 - ignore: "pid,hostname", 13 - }, 14 - } 15 - : undefined, 16 - timestamp: pino.stdTimeFunctions.isoTime, 3 + export const logger = pino({ 4 + level: process.env.LOG_LEVEL || "info", 5 + formatters: { 6 + level: (label) => { 7 + return { level: label }; 8 + }, 9 + }, 10 + timestamp: () => `,"time":"${new Date().toISOString()}"`, 11 + base: undefined, // removes pid and hostname 17 12 }); 18 - 19 - export default logger;
+35 -72
src/main.ts
··· 13 13 METRICS_PORT, 14 14 WANTED_COLLECTION, 15 15 } from "./config.js"; 16 - import logger from "./logger.js"; 16 + import { logger } from "./logger.js"; 17 17 import { startMetricsServer } from "./metrics.js"; 18 18 import { Post, LinkFeature, Handle } from "./types.js"; 19 19 import { checkPosts } from "./checkPosts.js"; 20 20 import { checkHandle } from "./checkHandles.js"; 21 - import { checkStarterPack, checkNewStarterPack } from "./checkStarterPack.js"; 22 21 import { checkDescription, checkDisplayName } from "./checkProfiles.js"; 23 22 24 23 let cursor = 0; ··· 29 28 } 30 29 31 30 try { 32 - logger.info("Trying to read cursor from cursor.txt..."); 31 + logger.info({ process: "MAIN" }, "Trying to read cursor from cursor.txt"); 33 32 cursor = Number(fs.readFileSync("cursor.txt", "utf8")); 34 - logger.info(`Cursor found: ${cursor} (${epochUsToDateTime(cursor)})`); 33 + logger.info( 34 + { process: "MAIN", cursor, datetime: epochUsToDateTime(cursor) }, 35 + "Cursor found", 36 + ); 35 37 } catch (error) { 36 38 if (error instanceof Error && "code" in error && error.code === "ENOENT") { 37 39 cursor = Math.floor(Date.now() * 1000); 38 40 logger.info( 39 - `Cursor not found in cursor.txt, setting cursor to: ${cursor} (${epochUsToDateTime(cursor)})`, 41 + { process: "MAIN", cursor, datetime: epochUsToDateTime(cursor) }, 42 + "Cursor not found in cursor.txt, setting cursor", 40 43 ); 41 44 fs.writeFileSync("cursor.txt", cursor.toString(), "utf8"); 42 45 } else { 43 - logger.error(error); 46 + logger.error({ process: "MAIN", error }, "Failed to read cursor"); 44 47 process.exit(1); 45 48 } 46 49 } ··· 54 57 jetstream.on("open", () => { 55 58 if (jetstream.cursor) { 56 59 logger.info( 57 - `Connected to Jetstream at ${FIREHOSE_URL} with cursor ${jetstream.cursor} (${epochUsToDateTime(jetstream.cursor)})`, 60 + { 61 + process: "MAIN", 62 + url: FIREHOSE_URL, 63 + cursor: jetstream.cursor, 64 + datetime: epochUsToDateTime(jetstream.cursor), 65 + }, 66 + "Connected to Jetstream with cursor", 58 67 ); 59 68 } else { 60 69 logger.info( 61 - `Connected to Jetstream at ${FIREHOSE_URL}, waiting for cursor...`, 70 + { process: "MAIN", url: FIREHOSE_URL }, 71 + "Connected to Jetstream, waiting for cursor", 62 72 ); 63 73 } 64 74 cursorUpdateInterval = setInterval(() => { 65 75 if (jetstream.cursor) { 66 76 logger.info( 67 - `Cursor updated to: ${jetstream.cursor} (${epochUsToDateTime(jetstream.cursor)})`, 77 + { 78 + process: "MAIN", 79 + cursor: jetstream.cursor, 80 + datetime: epochUsToDateTime(jetstream.cursor), 81 + }, 82 + "Cursor updated", 68 83 ); 69 84 fs.writeFile("cursor.txt", jetstream.cursor.toString(), (err) => { 70 - if (err) logger.error(err); 85 + if (err) 86 + logger.error( 87 + { process: "MAIN", error: err }, 88 + "Failed to write cursor", 89 + ); 71 90 }); 72 91 } 73 92 }, CURSOR_UPDATE_INTERVAL); ··· 75 94 76 95 jetstream.on("close", () => { 77 96 clearInterval(cursorUpdateInterval); 78 - logger.info("Jetstream connection closed."); 97 + logger.info({ process: "MAIN" }, "Jetstream connection closed"); 79 98 }); 80 99 81 100 jetstream.on("error", (error) => { 82 - logger.error(`Jetstream error: ${error.message}`); 101 + logger.error({ process: "MAIN", error: error.message }, "Jetstream error"); 83 102 }); 84 103 85 104 // Check for post updates ··· 195 214 event.commit.record.description as string, 196 215 ); 197 216 } 198 - 199 - if (event.commit.record.joinedViaStarterPack) { 200 - checkStarterPack( 201 - event.did, 202 - event.time_us, 203 - event.commit.record.joinedViaStarterPack.uri, 204 - ); 205 - } 206 217 } catch (error) { 207 - logger.error(`Error checking profile: ${error}`); 218 + logger.error({ process: "MAIN", error }, "Error checking profile"); 208 219 } 209 220 }, 210 221 ); ··· 229 240 event.commit.record.description as string, 230 241 ); 231 242 } 232 - 233 - if (event.commit.record.joinedViaStarterPack) { 234 - checkStarterPack( 235 - event.did, 236 - event.time_us, 237 - event.commit.record.joinedViaStarterPack.uri, 238 - ); 239 - } 240 243 } catch (error) { 241 - logger.error(`Error checking profile: ${error}`); 242 - } 243 - }, 244 - ); 245 - 246 - jetstream.onCreate( 247 - "app.bsky.graph.starterpack", 248 - async (event: CommitCreateEvent<"app.bsky.graph.starterpack">) => { 249 - try { 250 - const atURI = `at://${event.did}/app.bsky.feed.post/${event.commit.rkey}`; 251 - 252 - checkNewStarterPack( 253 - event.did, 254 - event.time_us, 255 - atURI, 256 - event.commit.cid, 257 - event.commit.record.name, 258 - event.commit.record.description, 259 - ); 260 - } catch (error) { 261 - logger.error(`Error checking starterpack: ${error}`); 262 - } 263 - }, 264 - ); 265 - 266 - jetstream.onUpdate( 267 - "app.bsky.graph.starterpack", 268 - async (event: CommitUpdateEvent<"app.bsky.graph.starterpack">) => { 269 - try { 270 - const atURI = `at://${event.did}/app.bsky.feed.post/${event.commit.rkey}`; 271 - 272 - checkNewStarterPack( 273 - event.did, 274 - event.time_us, 275 - atURI, 276 - event.commit.cid, 277 - event.commit.record.name, 278 - event.commit.record.description, 279 - ); 280 - } catch (error) { 281 - logger.error(`Error checking starterpack: ${error}`); 244 + logger.error({ process: "MAIN", error }, "Error checking profile"); 282 245 } 283 246 }, 284 247 ); ··· 304 267 305 268 function shutdown() { 306 269 try { 307 - logger.info("Shutting down gracefully..."); 270 + logger.info({ process: "MAIN" }, "Shutting down gracefully"); 308 271 fs.writeFileSync("cursor.txt", jetstream.cursor!.toString(), "utf8"); 309 272 jetstream.close(); 310 273 metricsServer.close(); 311 274 } catch (error) { 312 - logger.error(`Error shutting down gracefully: ${error}`); 275 + logger.error({ process: "MAIN", error }, "Error shutting down gracefully"); 313 276 process.exit(1); 314 277 } 315 278 }
+3 -3
src/metrics.ts
··· 1 1 import express from "express"; 2 2 import { Registry, collectDefaultMetrics } from "prom-client"; 3 3 4 - import logger from "./logger.js"; 4 + import { logger } from "./logger.js"; 5 5 6 6 const register = new Registry(); 7 7 collectDefaultMetrics({ register }); ··· 16 16 res.send(metrics); 17 17 }) 18 18 .catch((ex: unknown) => { 19 - logger.error(`Error serving metrics: ${(ex as Error).message}`); 19 + logger.error({ process: "METRICS", error: (ex as Error).message }, "Error serving metrics"); 20 20 res.status(500).end((ex as Error).message); 21 21 }); 22 22 }); 23 23 24 24 export const startMetricsServer = (port: number, host = "127.0.0.1") => { 25 25 return app.listen(port, host, () => { 26 - logger.info(`Metrics server is listening on ${host}:${port}`); 26 + logger.info({ process: "METRICS", host, port }, "Metrics server is listening"); 27 27 }); 28 28 };
+35 -44
src/moderation.ts
··· 1 1 import { agent, isLoggedIn } from "./agent.js"; 2 2 import { MOD_DID } from "./config.js"; 3 3 import { limit } from "./limits.js"; 4 - import logger from "./logger.js"; 5 - import { LISTS } from "./lists.js"; 4 + import { logger } from "./logger.js"; 6 5 7 6 const doesLabelExist = ( 8 7 labels: { val: string }[] | undefined, ··· 25 24 26 25 const hasLabel = await checkRecordLabels(uri, label); 27 26 if (hasLabel) { 28 - logger.info( 29 - `Post ${uri} already has label ${label}, skipping`, 27 + logger.debug( 28 + { process: "MODERATION", uri, label }, 29 + "Post already has label, skipping", 30 30 ); 31 31 return; 32 32 } ··· 76 76 }, 77 77 ); 78 78 } catch (e) { 79 - logger.error(`Failed to create post label with error: ${e}`); 79 + logger.error( 80 + { process: "MODERATION", error: e }, 81 + "Failed to create post label", 82 + ); 80 83 } 81 84 }); 82 85 }; ··· 90 93 91 94 const hasLabel = await checkAccountLabels(did, label); 92 95 if (hasLabel) { 93 - logger.info( 94 - `Account ${did} already has label ${label}, skipping`, 96 + logger.debug( 97 + { process: "MODERATION", did, label }, 98 + "Account already has label, skipping", 95 99 ); 96 100 return; 97 101 } ··· 128 132 }, 129 133 ); 130 134 } catch (e) { 131 - logger.error(`Failed to create account label with error: ${e}`); 135 + logger.error( 136 + { process: "MODERATION", error: e }, 137 + "Failed to create account label", 138 + ); 132 139 } 133 140 }); 134 141 }; ··· 171 178 }, 172 179 ); 173 180 } catch (e) { 174 - logger.error(`Failed to create post label with error: ${e}`); 181 + logger.error( 182 + { process: "MODERATION", error: e }, 183 + "Failed to create post label", 184 + ); 175 185 } 176 186 }); 177 187 }; ··· 208 218 }, 209 219 ); 210 220 } catch (e) { 211 - console.error(e); 221 + logger.error( 222 + { process: "MODERATION", error: e }, 223 + "Failed to create account comment", 224 + ); 212 225 } 213 226 }); 214 227 }; ··· 246 259 }, 247 260 ); 248 261 } catch (e) { 249 - console.error(e); 262 + logger.error( 263 + { process: "MODERATION", error: e }, 264 + "Failed to create account report", 265 + ); 250 266 } 251 267 }); 252 268 }; ··· 271 287 272 288 return doesLabelExist(response.data.labels, label); 273 289 } catch (e) { 274 - logger.error(`Failed to check account labels for ${did} with error: ${e}`); 290 + logger.error( 291 + { process: "MODERATION", did, error: e }, 292 + "Failed to check account labels", 293 + ); 275 294 return false; 276 295 } 277 296 }); ··· 297 316 298 317 return doesLabelExist(response.data.labels, label); 299 318 } catch (e) { 300 - logger.error(`Failed to check record labels for ${uri} with error: ${e}`); 319 + logger.error( 320 + { process: "MODERATION", uri, error: e }, 321 + "Failed to check record labels", 322 + ); 301 323 return false; 302 324 } 303 325 }); 304 326 }; 305 - 306 - export const addToList = async (label: string, did: string) => { 307 - await isLoggedIn; 308 - 309 - const newList = LISTS.find((list) => list.label === label); 310 - if (!newList) { 311 - logger.warn( 312 - `List not found for ${label}. Likely a label not associated with a list`, 313 - ); 314 - return; 315 - } 316 - logger.info(`New label added to list: ${newList.label}`); 317 - 318 - const listUri = `at://${MOD_DID!}/app.bsky.graph.list/${newList.rkey}`; 319 - 320 - await limit(async () => { 321 - try { 322 - await agent.com.atproto.repo.createRecord({ 323 - collection: "app.bsky.graph.listitem", 324 - repo: `${MOD_DID!}`, 325 - record: { 326 - subject: did, 327 - list: listUri, 328 - createdAt: new Date().toISOString(), 329 - }, 330 - }); 331 - } catch (e) { 332 - console.error(e); 333 - } 334 - }); 335 - };
+5 -8
src/utils.ts
··· 1 - import logger from "./logger.js"; 1 + import { logger } from "./logger.js"; 2 2 3 3 import { homoglyphMap } from "./homoglyphs.js"; 4 4 ··· 56 56 clearTimeout(timeoutId); // Clear the timeout if fetch fails 57 57 // Log the error with more specific information if it's a timeout 58 58 if (error instanceof Error && error.name === "AbortError") { 59 - logger.warn(`Timeout fetching URL: ${url}`, error); 59 + logger.warn({ process: "UTILS", url, error }, "Timeout fetching URL"); 60 60 } else { 61 - logger.warn(`Error fetching URL: ${url}`, error); 61 + logger.warn({ process: "UTILS", url, error }, "Error fetching URL"); 62 62 } 63 63 throw error; // Re-throw the error to be caught by the caller 64 64 } 65 65 } 66 66 67 67 export async function getLanguage(profile: string): Promise<string> { 68 - if (typeof profile !== "string" || profile === null) { 69 - logger.warn( 70 - "[GETLANGUAGE] getLanguage called with invalid profile data, defaulting to 'eng'.", 71 - profile, 72 - ); 68 + if (typeof profile !== "string") { 69 + logger.warn({ process: "UTILS", profile }, "getLanguage called with invalid profile data, defaulting to 'eng'"); 73 70 return "eng"; // Default or throw an error 74 71 } 75 72