├── .changeset └── config.json ├── .github └── workflows │ └── publish.yml ├── .gitignore ├── .npmignore ├── .vscode └── settings.json ├── .zed └── settings.json ├── LICENSE ├── README.md ├── biome.json ├── examples ├── cloudflare-workers │ ├── README.md │ ├── package.json │ ├── src │ │ └── index.ts │ ├── tsconfig.json │ └── wrangler.toml └── simple-server │ ├── .gitignore │ ├── README.md │ ├── index.ts │ ├── package.json │ └── tsconfig.json ├── package.json ├── packages ├── client │ ├── package.json │ ├── src │ │ ├── client.ts │ │ └── index.ts │ └── tsconfig.json └── server │ ├── package.json │ ├── src │ ├── index.ts │ ├── logger.ts │ ├── router.ts │ └── types.ts │ ├── tsconfig.json │ └── tsup.config.ts ├── pnpm-lock.yaml ├── pnpm-workspace.yaml ├── tsconfig.base.json └── turbo.json /.changeset/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://unpkg.com/@changesets/config@3.0.5/schema.json", 3 | "changelog": "@changesets/cli/changelog", 4 | "commit": false, 5 | "fixed": [], 6 | "linked": [], 7 | "access": "public", 8 | "baseBranch": "main", 9 | "updateInternalDependencies": "patch", 10 | "ignore": [] 11 | } 12 | -------------------------------------------------------------------------------- /.github/workflows/publish.yml: -------------------------------------------------------------------------------- 1 | name: 🚀 Publish 2 | 3 | on: 4 | release: 5 | types: [created] 6 | 7 | jobs: 8 | test: 9 | runs-on: ubuntu-24.04 10 | strategy: 11 | matrix: 12 | node-version: 13 | - 22.x 14 | steps: 15 | - name: Checkout code 16 | uses: actions/checkout@v4 17 | 18 | - name: Enable Corepack 19 | run: corepack enable 20 | 21 | - uses: actions/setup-node@v4 22 | name: Use Node.js ${{ matrix.node-version }} 23 | with: 24 | node-version: ${{ matrix.node-version }} 25 | cache: 'pnpm' 26 | 27 | - name: Install Dependencies 28 | run: pnpm install 29 | 30 | - name: Check lint 31 | run: pnpm biome ci 32 | 33 | publish-npm: 34 | runs-on: ubuntu-24.04 35 | environment: production 36 | needs: test 37 | permissions: 38 | contents: read 39 | id-token: write 40 | packages: write 41 | steps: 42 | - name: ⬇️ Checkout 43 | uses: actions/checkout@v4 44 | with: 45 | fetch-depth: 0 46 | 47 | - name: Install Node.js 48 | uses: actions/setup-node@v4 49 | with: 50 | node-version: 22.x 51 | 52 | - uses: pnpm/action-setup@v4 53 | name: Install pnpm 54 | id: pnpm-install 55 | with: 56 | run_install: false 57 | 58 | - name: Install Dependencies 59 | run: pnpm install --frozen-lockfile --strict-peer-dependencies 60 | 61 | - name: Build 62 | run: pnpm build 63 | 64 | - name: Creating .npmrc 65 | run: | 66 | cat << EOF > "$HOME/.npmrc" 67 | @remote-rcp:registry=https://registry.npmjs.org/ 68 | //registry.npmjs.org/:_authToken=${NPM_TOKEN} 69 | EOF 70 | env: 71 | NPM_TOKEN: ${{ secrets.NPM_TOKEN }} 72 | 73 | - name: 🐙 Publish 74 | run: | 75 | pnpm publish-packages 76 | env: 77 | NPM_TOKEN: ${{ secrets.NPM_TOKEN }} 78 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Based on https://raw.githubusercontent.com/github/gitignore/main/Node.gitignore 2 | 3 | # Logs 4 | 5 | logs 6 | _.log 7 | npm-debug.log_ 8 | yarn-debug.log* 9 | yarn-error.log* 10 | lerna-debug.log* 11 | .pnpm-debug.log* 12 | 13 | # Caches 14 | 15 | .cache 16 | 17 | # Diagnostic reports (https://nodejs.org/api/report.html) 18 | 19 | report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json 20 | 21 | # Runtime data 22 | 23 | pids 24 | _.pid 25 | _.seed 26 | *.pid.lock 27 | 28 | # Directory for instrumented libs generated by jscoverage/JSCover 29 | 30 | lib-cov 31 | 32 | # Coverage directory used by tools like istanbul 33 | 34 | coverage 35 | *.lcov 36 | 37 | # nyc test coverage 38 | 39 | .nyc_output 40 | 41 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 42 | 43 | .grunt 44 | 45 | # Bower dependency directory (https://bower.io/) 46 | 47 | bower_components 48 | 49 | # node-waf configuration 50 | 51 | .lock-wscript 52 | 53 | # Compiled binary addons (https://nodejs.org/api/addons.html) 54 | 55 | build/Release 56 | 57 | # Dependency directories 58 | 59 | node_modules/ 60 | **/node_modules/ 61 | **/.wrangler/ 62 | jspm_packages/ 63 | 64 | # Snowpack dependency directory (https://snowpack.dev/) 65 | 66 | web_modules/ 67 | 68 | # TypeScript cache 69 | 70 | *.tsbuildinfo 71 | 72 | # Optional npm cache directory 73 | 74 | .npm 75 | 76 | # Optional eslint cache 77 | 78 | .eslintcache 79 | 80 | # Optional stylelint cache 81 | 82 | .stylelintcache 83 | 84 | # Microbundle cache 85 | 86 | .rpt2_cache/ 87 | .rts2_cache_cjs/ 88 | .rts2_cache_es/ 89 | .rts2_cache_umd/ 90 | 91 | # Optional REPL history 92 | 93 | .node_repl_history 94 | 95 | # Output of 'npm pack' 96 | 97 | *.tgz 98 | 99 | # Yarn Integrity file 100 | 101 | .yarn-integrity 102 | 103 | # dotenv environment variable files 104 | 105 | .env 106 | .env.development.local 107 | .env.test.local 108 | .env.production.local 109 | .env.local 110 | 111 | # parcel-bundler cache (https://parceljs.org/) 112 | 113 | .parcel-cache 114 | 115 | # Next.js build output 116 | 117 | .next 118 | out 119 | 120 | # Nuxt.js build / generate output 121 | 122 | .nuxt 123 | dist 124 | 125 | # Gatsby files 126 | 127 | # Comment in the public line in if your project uses Gatsby and not Next.js 128 | 129 | # https://nextjs.org/blog/next-9-1#public-directory-support 130 | 131 | # public 132 | 133 | # vuepress build output 134 | 135 | .vuepress/dist 136 | 137 | # vuepress v2.x temp and cache directory 138 | 139 | .temp 140 | 141 | # Docusaurus cache and generated files 142 | 143 | .docusaurus 144 | 145 | # Serverless directories 146 | 147 | .serverless/ 148 | 149 | # FuseBox cache 150 | 151 | .fusebox/ 152 | 153 | # DynamoDB Local files 154 | 155 | .dynamodb/ 156 | 157 | # TernJS port file 158 | 159 | .tern-port 160 | 161 | # Stores VSCode versions used for testing VSCode extensions 162 | 163 | .vscode-test 164 | 165 | # yarn v2 166 | 167 | .yarn/cache 168 | .yarn/unplugged 169 | .yarn/build-state.yml 170 | .yarn/install-state.gz 171 | .pnp.* 172 | 173 | # IntelliJ based IDEs 174 | .idea 175 | 176 | # Finder (MacOS) folder config 177 | .DS_Store 178 | 179 | .turbo/ 180 | 181 | packages/*/README.md 182 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssut/Remote-MCP/5f764b2b4db9a2a4935065fac347b8d4387fb5f0/.npmignore -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "typescript.tsdk": "node_modules/typescript/lib", 3 | "typescript.enablePromptUseWorkspaceTsdk": true 4 | } 5 | -------------------------------------------------------------------------------- /.zed/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "code_actions_on_format": { 3 | "source.fixAll.biome": true, 4 | "source.organizeImports.biome": true 5 | }, 6 | "formatter": { 7 | "language_server": { 8 | "name": "biome" 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 Suhun Han 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Remote-MCP: Remote Model Context Protocol 2 | 3 | A **type-safe, bidirectional and simple** solution for **remote MCP communication**, allowing remote access and centralized management of model contexts. 4 | 5 | ![preview](https://github.com/user-attachments/assets/a16804b9-8378-493c-8ca8-f61839458cde) 6 | 7 | 8 | ## Architecture 9 | 10 | ```mermaid 11 | %%{init: {"flowchart": {"htmlLabels": false}} }%% 12 | graph TD 13 | %% Modern, Bright Color Styling with white text 14 | classDef client fill:#22c55e,stroke:#059669,stroke-width:2px,color:#ffffff 15 | classDef gateway fill:#06b6d4,stroke:#0891b2,stroke-width:2px,color:#ffffff 16 | classDef backend fill:#f97316,stroke:#ea580c,stroke-width:2px,color:#ffffff 17 | classDef resource fill:#8b5cf6,stroke:#7c3aed,stroke-width:2px,color:#ffffff 18 | classDef server fill:#06b6d4,stroke:#0891b2,stroke-width:2px,color:#ffffff 19 | 20 | linkStyle default stroke:#64748b,stroke-width:1.5px,stroke-dasharray: 5 5 21 | 22 | %% Current MCP Setup (Multiple Local Servers) 23 | subgraph Current["Current Setup (Local)"] 24 | direction LR 25 | subgraph ClientGroup["Client"] 26 | A[Client]:::client 27 | end 28 | 29 | subgraph Servers["Local MCP Servers"] 30 | direction TB 31 | B1["Local MCP Server (DB)"]:::server -->|"DB Access"| C1[DB]:::resource 32 | B2["Local MCP Server (API 1)"]:::server -->|"API Access"| C2["Web API 1"]:::resource 33 | B3["Local MCP Server (API 2)"]:::server -->|"API Access"| C3["Web API 2"]:::resource 34 | end 35 | 36 | A -->|"MCP Protocol"| B1 37 | A -->|"MCP Protocol"| B2 38 | A -->|"MCP Protocol"| B3 39 | end 40 | 41 | %% Vertical separator 42 | Current --> Proposed 43 | 44 | %% Proposed MCP Architecture (Decoupled) 45 | subgraph Proposed["Proposed Architecture (Remote)"] 46 | direction LR 47 | D[Client/Host]:::client -->|"MCP Protocol"| E["Local MCP Server (@remote-mcp/client)"]:::server 48 | E <-->|"tRPC(HTTP)"| F["Remote MCP Server (@remote-mcp/server)"]:::backend 49 | 50 | %% Separated Resources 51 | F -->|"DB Access"| G1[DB]:::resource 52 | F -->|"API Access"| G2["Web API 1"]:::resource 53 | F -->|"API Access"| G3["Web API 2"]:::resource 54 | end 55 | ``` 56 | 57 | ## Why I Made This (Now) 58 | 59 | Yes, I know that the official MCP roadmap includes remote MCP support in the first quarter of 2025. However, the need for remote access was *immediate* for me, and likely for many others. This library was created to bridge that gap, providing a way to connect to a remote MCP server from a local MCP client *right now*, without waiting for future official implementations. 60 | 61 | Note: I don't want this to be a sophisticated or overcomplicated thing. This way **just works right now**. 62 | 63 | ## Getting Started 64 | 65 | > *Note: This project is currently under active development and is considered experimental. Expect breaking changes and potential issues.* 66 | 67 | ## Client Usage 68 | 69 | ### Use Publicly Published Package 70 | 71 | Just put the following code in your MCP client settings, in here I'm using Claude as an example: 72 | 73 | ```json 74 | { 75 | "mcpServers": { 76 | "remote-mcp": { 77 | "command": "npx", 78 | "args": ["-y", "@remote-mcp/client"], 79 | "env": { 80 | "REMOTE_MCP_URL": "http://localhost:9512", 81 | "HTTP_HEADER_Authorization": "Bearer " 82 | } 83 | } 84 | } 85 | } 86 | ``` 87 | 88 | ### Code Your Own Local MCP Server 89 | 90 | Install requirements: 91 | 92 | ```sh 93 | $ npm install @remote-mcp/client @trpc/client@next zod 94 | ``` 95 | 96 | then write your own code like the following: 97 | 98 | ```ts 99 | import { RemoteMCPClient } from "@remote-mcp/client"; 100 | 101 | const client = new RemoteMCPClient({ 102 | remoteUrl: "http://localhost:9512", 103 | 104 | onError: (method, error) => console.error(`Error in ${method}:`, error) 105 | }); 106 | 107 | void client.start(); 108 | ``` 109 | 110 | ## Server Usage (Remote MCP Implementation) 111 | 112 | You can see some examples in the `examples` directory. 113 | 114 | - [Cloudflare Workers](examples/cloudflare-workers) 115 | - [Standalone Node.js](examples/simple-server) 116 | 117 | ### Code Your Own Remote MCP Server 118 | 119 | After `npm install @remote-mcp/server`, you can your own remote MCP server like the following: 120 | 121 | ```typescript 122 | import { MCPRouter, LogLevel } from "@remote-mcp/server"; 123 | import { createHTTPServer } from '@trpc/server/adapters/standalone'; 124 | 125 | import { z } from "zod"; 126 | 127 | // Create router instance 128 | const mcpRouter = new MCPRouter({ 129 | logLevel: LogLevel.DEBUG, 130 | name: "example-server", 131 | version: "1.0.0", 132 | capabilities: { 133 | logging: {}, 134 | }, 135 | }); 136 | 137 | // Add example tool 138 | mcpRouter.addTool( 139 | "calculator", 140 | { 141 | description: 142 | "Perform basic calculations. Add, subtract, multiply, divide. Invoke this every time you need to perform a calculation.", 143 | schema: z.object({ 144 | operation: z.enum(["add", "subtract", "multiply", "divide"]), 145 | a: z.string(), 146 | b: z.string(), 147 | }), 148 | }, 149 | async (args) => { 150 | const a = Number(args.a); 151 | const b = Number(args.b); 152 | 153 | let result: number; 154 | switch (args.operation) { 155 | case "add": 156 | result = Number(a) + b; 157 | break; 158 | case "subtract": 159 | result = a - b; 160 | break; 161 | case "multiply": 162 | result = a * b; 163 | break; 164 | case "divide": 165 | if (b === 0) throw new Error("Division by zero"); 166 | result = a / b; 167 | break; 168 | } 169 | 170 | return { 171 | content: [{ type: "text", text: `${result}` }], 172 | }; 173 | }, 174 | ); 175 | 176 | const appRouter = mcpRouter.createTRPCRouter(); 177 | 178 | void createHTTPServer({ 179 | router: appRouter, 180 | createContext: () => ({}), 181 | }).listen(Number(process.env.PORT || 9512)); 182 | ``` 183 | 184 | Then you can see like the following in your MCP client: 185 | 186 | 187 | 188 | ## Packages 189 | 190 | This repository contains: 191 | 192 | * `@remote-mcp/client`: Client library acting as a local MCP server, connecting to a remote implementation. 193 | * `@remote-mcp/server`: Server library for creating remotely accessible MCP services (used as the remote implementation). 194 | 195 | ## Roadmap 196 | 197 | ### Core Features 198 | 199 | - [x] Basic *Type-safe* Client/Server Communication 200 | - [x] Basic MCP Command Support 201 | - [x] Basic MCP Tool Support 202 | - [x] Basic MCP Prompt Support 203 | - [ ] Crash-Safe Handling (WIP, top priority) 204 | - [ ] Complete Event Subscription System 205 | - [ ] Resource change notifications 206 | - [ ] Tool/Prompt list change notifications 207 | - [ ] HTTP Header Support 208 | - [x] Custom Headers 209 | - [ ] Authentication Middleware 210 | - [ ] Basic error handling improvements 211 | - [ ] Basic middleware support 212 | 213 | ### Framework Support 214 | 215 | - [ ] Nest.js Integration (`@remote-mcp/nestjs`) 216 | 217 | ### Advanced Features 218 | 219 | - [ ] Bidirectional communication 220 | - [ ] Server-to-client requests 221 | - [ ] Resource sharing between server/client 222 | - [ ] Basic monitoring & logging 223 | 224 | ## Contribute 225 | 226 | Contributions are welcome. See [CONTRIBUTING.md](CONTRIBUTING.md) for details. 227 | 228 | ## Disclaimer 229 | 230 | This library is a complementary extension, not part of the official MCP specification, built upon existing MCP concepts. 231 | 232 | ## License 233 | 234 | This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details. 235 | 236 | ## References 237 | 238 | * [Model Context Protocol](https://modelcontextprotocol.org/) 239 | -------------------------------------------------------------------------------- /biome.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", 3 | "vcs": { 4 | "enabled": false, 5 | "clientKind": "git", 6 | "useIgnoreFile": false 7 | }, 8 | "files": { 9 | "ignoreUnknown": false, 10 | "ignore": [] 11 | }, 12 | "formatter": { 13 | "enabled": true, 14 | "indentStyle": "space", 15 | "indentWidth": 2 16 | }, 17 | "organizeImports": { 18 | "enabled": true 19 | }, 20 | "linter": { 21 | "enabled": true, 22 | "rules": { 23 | "recommended": true, 24 | "style": { 25 | "noNonNullAssertion": "warn" 26 | }, 27 | "correctness": { 28 | "noUnusedImports": "error" 29 | } 30 | } 31 | }, 32 | "javascript": { 33 | "formatter": { 34 | "quoteStyle": "single" 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /examples/cloudflare-workers/README.md: -------------------------------------------------------------------------------- 1 | # Cloudflare Workers Exmaple 2 | 3 | This example demonstrates how to use `@remote-mcp/server` within a Cloudflare Workers. 4 | 5 | ![Screenshot 2024-12-31 at 23 27 15](https://github.com/user-attachments/assets/ba432423-5959-46d6-bf3d-fc05d8e184d8) 6 | ![Screenshot 2024-12-31 at 23 27 25](https://github.com/user-attachments/assets/8f5d0f15-c051-4683-b995-7b9ac991508a) 7 | -------------------------------------------------------------------------------- /examples/cloudflare-workers/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@remote-mcp/example-cloudflare-worker", 3 | "type": "module", 4 | "private": true, 5 | "version": "1.0.0", 6 | "description": "Remote MCP example for Cloudflare Workers", 7 | "scripts": { 8 | "dev": "npx wrangler dev", 9 | "publish": "npx wrangler publish" 10 | }, 11 | "dependencies": { 12 | "@remote-mcp/server": "workspace:*", 13 | "@trpc/server": "11.0.0-rc.682", 14 | "zod": "^3.22.4" 15 | }, 16 | "devDependencies": { 17 | "@cloudflare/workers-types": "^3.14.1", 18 | "miniflare": "^2.6.0", 19 | "typescript": "^4.7.4", 20 | "wrangler": "^2.0.24" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /examples/cloudflare-workers/src/index.ts: -------------------------------------------------------------------------------- 1 | import { MCPRouter } from '@remote-mcp/server'; 2 | import { fetchRequestHandler } from '@trpc/server/adapters/fetch'; 3 | import { z } from 'zod'; 4 | 5 | const mcpRouter = new MCPRouter({ 6 | name: 'example-cloudflare-worker', 7 | version: '1.0.0', 8 | capabilities: { 9 | logging: {}, 10 | }, 11 | }); 12 | 13 | mcpRouter.addTool( 14 | 'current-time', 15 | { 16 | description: 17 | 'Get the current time in the requested format. Supported formats are "iso" and "epoch".', 18 | schema: z.object({ 19 | format: z.enum(['iso', 'epoch']), 20 | }), 21 | }, 22 | async ({ format }) => { 23 | const now = new Date(); 24 | 25 | let result = ''; 26 | switch (format) { 27 | case 'iso': 28 | result = now.toISOString(); 29 | break; 30 | case 'epoch': 31 | result = `${now.getTime()}`; 32 | break; 33 | } 34 | 35 | return { 36 | content: [{ type: 'text', text: result }], 37 | }; 38 | }, 39 | ); 40 | 41 | export default { 42 | async fetch(request: Request): Promise { 43 | return fetchRequestHandler({ 44 | endpoint: '/', 45 | req: request, 46 | router: mcpRouter.createTRPCRouter(), 47 | createContext: () => ({}), 48 | }); 49 | }, 50 | }; 51 | -------------------------------------------------------------------------------- /examples/cloudflare-workers/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "module": "ESNext", 5 | "moduleDetection": "force", 6 | "lib": ["dom", "dom.iterable", "esnext"], 7 | "skipLibCheck": true, 8 | "strict": true, 9 | "forceConsistentCasingInFileNames": true, 10 | "noEmit": true, 11 | "moduleResolution": "bundler", 12 | "resolveJsonModule": true, 13 | "esModuleInterop": true, 14 | "isolatedModules": true, 15 | "types": ["@cloudflare/workers-types"] 16 | }, 17 | "include": ["**/*.ts"], 18 | "exclude": ["node_modules"] 19 | } 20 | -------------------------------------------------------------------------------- /examples/cloudflare-workers/wrangler.toml: -------------------------------------------------------------------------------- 1 | name = "remote-mcp-cloudflare-worker-example" 2 | main = "./src/index.ts" 3 | compatibility_flags = ["nodejs_compat"] 4 | compatibility_date = "2024-09-23" 5 | -------------------------------------------------------------------------------- /examples/simple-server/.gitignore: -------------------------------------------------------------------------------- 1 | # Based on https://raw.githubusercontent.com/github/gitignore/main/Node.gitignore 2 | 3 | # Logs 4 | 5 | logs 6 | _.log 7 | npm-debug.log_ 8 | yarn-debug.log* 9 | yarn-error.log* 10 | lerna-debug.log* 11 | .pnpm-debug.log* 12 | 13 | # Caches 14 | 15 | .cache 16 | 17 | # Diagnostic reports (https://nodejs.org/api/report.html) 18 | 19 | report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json 20 | 21 | # Runtime data 22 | 23 | pids 24 | _.pid 25 | _.seed 26 | *.pid.lock 27 | 28 | # Directory for instrumented libs generated by jscoverage/JSCover 29 | 30 | lib-cov 31 | 32 | # Coverage directory used by tools like istanbul 33 | 34 | coverage 35 | *.lcov 36 | 37 | # nyc test coverage 38 | 39 | .nyc_output 40 | 41 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 42 | 43 | .grunt 44 | 45 | # Bower dependency directory (https://bower.io/) 46 | 47 | bower_components 48 | 49 | # node-waf configuration 50 | 51 | .lock-wscript 52 | 53 | # Compiled binary addons (https://nodejs.org/api/addons.html) 54 | 55 | build/Release 56 | 57 | # Dependency directories 58 | 59 | node_modules/ 60 | jspm_packages/ 61 | 62 | # Snowpack dependency directory (https://snowpack.dev/) 63 | 64 | web_modules/ 65 | 66 | # TypeScript cache 67 | 68 | *.tsbuildinfo 69 | 70 | # Optional npm cache directory 71 | 72 | .npm 73 | 74 | # Optional eslint cache 75 | 76 | .eslintcache 77 | 78 | # Optional stylelint cache 79 | 80 | .stylelintcache 81 | 82 | # Microbundle cache 83 | 84 | .rpt2_cache/ 85 | .rts2_cache_cjs/ 86 | .rts2_cache_es/ 87 | .rts2_cache_umd/ 88 | 89 | # Optional REPL history 90 | 91 | .node_repl_history 92 | 93 | # Output of 'npm pack' 94 | 95 | *.tgz 96 | 97 | # Yarn Integrity file 98 | 99 | .yarn-integrity 100 | 101 | # dotenv environment variable files 102 | 103 | .env 104 | .env.development.local 105 | .env.test.local 106 | .env.production.local 107 | .env.local 108 | 109 | # parcel-bundler cache (https://parceljs.org/) 110 | 111 | .parcel-cache 112 | 113 | # Next.js build output 114 | 115 | .next 116 | out 117 | 118 | # Nuxt.js build / generate output 119 | 120 | .nuxt 121 | dist 122 | 123 | # Gatsby files 124 | 125 | # Comment in the public line in if your project uses Gatsby and not Next.js 126 | 127 | # https://nextjs.org/blog/next-9-1#public-directory-support 128 | 129 | # public 130 | 131 | # vuepress build output 132 | 133 | .vuepress/dist 134 | 135 | # vuepress v2.x temp and cache directory 136 | 137 | .temp 138 | 139 | # Docusaurus cache and generated files 140 | 141 | .docusaurus 142 | 143 | # Serverless directories 144 | 145 | .serverless/ 146 | 147 | # FuseBox cache 148 | 149 | .fusebox/ 150 | 151 | # DynamoDB Local files 152 | 153 | .dynamodb/ 154 | 155 | # TernJS port file 156 | 157 | .tern-port 158 | 159 | # Stores VSCode versions used for testing VSCode extensions 160 | 161 | .vscode-test 162 | 163 | # yarn v2 164 | 165 | .yarn/cache 166 | .yarn/unplugged 167 | .yarn/build-state.yml 168 | .yarn/install-state.gz 169 | .pnp.* 170 | 171 | # IntelliJ based IDEs 172 | .idea 173 | 174 | # Finder (MacOS) folder config 175 | .DS_Store 176 | -------------------------------------------------------------------------------- /examples/simple-server/README.md: -------------------------------------------------------------------------------- 1 | # @remote-mcp/example 2 | 3 | To install dependencies: 4 | 5 | ```bash 6 | bun install 7 | ``` 8 | 9 | To run: 10 | 11 | ```bash 12 | bun run index.ts 13 | ``` 14 | 15 | This project was created using `bun init` in bun v1.1.42. [Bun](https://bun.sh) is a fast all-in-one JavaScript runtime. 16 | -------------------------------------------------------------------------------- /examples/simple-server/index.ts: -------------------------------------------------------------------------------- 1 | import { LogLevel, MCPRouter } from '@remote-mcp/server'; 2 | import { createHTTPServer } from '@trpc/server/adapters/standalone'; 3 | 4 | import { z } from 'zod'; 5 | 6 | // Create router instance 7 | const mcpRouter = new MCPRouter({ 8 | logLevel: LogLevel.DEBUG, 9 | name: 'example-server', 10 | version: '1.0.0', 11 | capabilities: { 12 | logging: {}, 13 | }, 14 | }); 15 | 16 | // Add example tool 17 | mcpRouter.addTool( 18 | 'calculator', 19 | { 20 | description: 21 | 'Perform basic calculations. Add, subtract, multiply, divide. Invoke this every time you need to perform a calculation instead of your calculation.', 22 | schema: z.object({ 23 | operation: z.enum(['add', 'subtract', 'multiply', 'divide']), 24 | a: z.string(), 25 | b: z.string(), 26 | }), 27 | }, 28 | async (args) => { 29 | const a = Number(args.a); 30 | const b = Number(args.b); 31 | 32 | let result: number; 33 | switch (args.operation) { 34 | case 'add': 35 | result = a + b; 36 | break; 37 | case 'subtract': 38 | result = a - b; 39 | break; 40 | case 'multiply': 41 | result = a * b; 42 | break; 43 | case 'divide': 44 | if (b === 0) throw new Error('Division by zero'); 45 | result = a / b; 46 | break; 47 | } 48 | 49 | return { 50 | content: [{ type: 'text', text: `${result}` }], 51 | }; 52 | }, 53 | ); 54 | 55 | const appRouter = mcpRouter.createTRPCRouter(); 56 | 57 | void createHTTPServer({ 58 | router: appRouter, 59 | createContext: () => ({}), 60 | }).listen(Number(process.env.PORT || 9512)); 61 | -------------------------------------------------------------------------------- /examples/simple-server/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@remote-mcp/example", 3 | "private": true, 4 | "scripts": { 5 | "start": "tsx index.ts" 6 | }, 7 | "peerDependencies": { 8 | "typescript": "^5.7.2" 9 | }, 10 | "dependencies": { 11 | "@modelcontextprotocol/sdk": "latest", 12 | "@remote-mcp/server": "workspace:*", 13 | "@trpc/server": "^11.0.0-rc.682" 14 | }, 15 | "devDependencies": { 16 | "tsx": "^4.19.2" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /examples/simple-server/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "lib": ["ESNext", "DOM"], 4 | "target": "ESNext", 5 | "module": "ESNext", 6 | "moduleDetection": "force", 7 | "allowJs": true, 8 | 9 | // Bundler mode 10 | "moduleResolution": "bundler", 11 | "allowImportingTsExtensions": true, 12 | "verbatimModuleSyntax": true, 13 | "noEmit": true, 14 | 15 | // Best practices 16 | "strict": true, 17 | "skipLibCheck": true, 18 | "noFallthroughCasesInSwitch": true, 19 | 20 | // Some stricter flags (disabled by default) 21 | "noUnusedLocals": false, 22 | "noUnusedParameters": false, 23 | "noPropertyAccessFromIndexSignature": false 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@ssut/remote-mcp", 3 | "private": true, 4 | "engines": { 5 | "node": ">=20.0.0" 6 | }, 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ssut/Remote-MCP.git" 10 | }, 11 | "author": { 12 | "name": "Suhun Han", 13 | "email": "suhunhankr@gmail.com", 14 | "url": "https://ssut.me" 15 | }, 16 | "scripts": { 17 | "build": "turbo run build", 18 | "dev": "turbo run dev", 19 | "lint": "turbo run lint", 20 | "test": "turbo run test", 21 | "copy-readme": "cp README.md packages/server/README.md && cp README.md packages/client/README.md", 22 | "publish-packages": "pnpm run copy-readme && changeset version && changeset publish" 23 | }, 24 | "workspaces": ["packages/*"], 25 | "devDependencies": { 26 | "@changesets/cli": "^2.27.11", 27 | "@types/node": "^22.10.2", 28 | "biome": "^0.3.3", 29 | "turbo": "^2.3.3" 30 | }, 31 | "peerDependencies": { 32 | "typescript": "^5.7.2" 33 | }, 34 | "packageManager": "pnpm@9.15.2" 35 | } 36 | -------------------------------------------------------------------------------- /packages/client/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@remote-mcp/client", 3 | "version": "0.1.0", 4 | "type": "module", 5 | "access": "public", 6 | "repository": { 7 | "type": "git", 8 | "url": "git+https://github.com/ssut/Remote-MCP.git", 9 | "directory": "packages/client" 10 | }, 11 | "bin": "./dist/index.js", 12 | "main": "./dist/index.js", 13 | "types": "./dist/index.d.ts", 14 | "author": { 15 | "name": "Suhun Han", 16 | "email": "suhunhankr@gmail.com", 17 | "url": "https://ssut.me" 18 | }, 19 | "scripts": { 20 | "build": "tsc", 21 | "dev": "tsc -w" 22 | }, 23 | "devDependencies": { 24 | "typescript": "^5.7.2", 25 | "@remote-mcp/server": "workspace:*" 26 | }, 27 | "dependencies": { 28 | "@modelcontextprotocol/sdk": "latest", 29 | "@trpc/client": "^11.0.0-rc.682", 30 | "@trpc/server": "^11.0.0-rc.682", 31 | "zod": "^3.22.4" 32 | }, 33 | "peerDependencies": { 34 | "@modelcontextprotocol/sdk": "latest", 35 | "@trpc/client": "^11.0.0-rc.682", 36 | "@trpc/server": "^11.0.0-rc.682", 37 | "zod": "^3.22.4" 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /packages/client/src/client.ts: -------------------------------------------------------------------------------- 1 | import { Server } from '@modelcontextprotocol/sdk/server/index.js'; 2 | import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'; 3 | import { 4 | CallToolRequestSchema, 5 | GetPromptRequestSchema, 6 | InitializeRequestSchema, 7 | ListPromptsRequestSchema, 8 | ListResourcesRequestSchema, 9 | ListToolsRequestSchema, 10 | ReadResourceRequestSchema, 11 | SubscribeRequestSchema, 12 | UnsubscribeRequestSchema, 13 | } from '@modelcontextprotocol/sdk/types.js'; 14 | import type { AppRouter } from '@remote-mcp/server'; 15 | import { 16 | type CreateTRPCClient, 17 | createTRPCClient, 18 | httpBatchLink, 19 | } from '@trpc/client'; 20 | 21 | export interface RemoteMCPClientOptions { 22 | remoteUrl: string; 23 | headers?: Record; 24 | onError?: (method: string, error: Error) => void; 25 | } 26 | 27 | export class RemoteMCPClient { 28 | public readonly server: Server; 29 | public readonly trpc: CreateTRPCClient; 30 | private readonly options: RemoteMCPClientOptions; 31 | 32 | constructor(options: RemoteMCPClientOptions) { 33 | this.trpc = createTRPCClient({ 34 | links: [ 35 | httpBatchLink({ 36 | url: options.remoteUrl, 37 | headers: options.headers, 38 | }), 39 | ], 40 | }); 41 | 42 | this.server = new Server( 43 | { 44 | name: 'Remote MCP Client', 45 | version: '1.0.0', 46 | }, 47 | { 48 | capabilities: { 49 | tools: { 50 | listChanged: true, 51 | }, 52 | resources: { 53 | subscribe: true, 54 | listChanged: true, 55 | }, 56 | prompts: { 57 | listChanged: true, 58 | }, 59 | logging: {}, 60 | }, 61 | }, 62 | ); 63 | 64 | this.options = { 65 | onError: (method, error) => { 66 | this.server.sendLoggingMessage({ 67 | level: 'error', 68 | data: `${method}: ${error.message}`, 69 | }); 70 | }, 71 | ...options, 72 | }; 73 | } 74 | 75 | /** @TODO implement */ 76 | private async setupNotificationHandler() {} 77 | 78 | private async setupHandlers() { 79 | this.server.setRequestHandler(InitializeRequestSchema, async (request) => { 80 | try { 81 | const response = await this.trpc.initialize.mutate(request); 82 | if (response.capabilities && response.capabilities) { 83 | // await this.setupNotificationHandler(); 84 | } 85 | 86 | return response; 87 | } catch (error) { 88 | this.options.onError?.(request.method, error as Error); 89 | throw error; 90 | } 91 | }); 92 | 93 | this.server.setRequestHandler(ListToolsRequestSchema, async (request) => { 94 | try { 95 | return await this.trpc['tools/list'].query(request); 96 | } catch (error) { 97 | this.options.onError?.(request.method, error as Error); 98 | throw error; 99 | } 100 | }); 101 | 102 | this.server.setRequestHandler(CallToolRequestSchema, async (request) => { 103 | try { 104 | return await this.trpc['tools/call'].mutate(request); 105 | } catch (error) { 106 | this.options.onError?.(request.method, error as Error); 107 | throw error; 108 | } 109 | }); 110 | 111 | this.server.setRequestHandler( 112 | ListResourcesRequestSchema, 113 | async (request) => { 114 | try { 115 | return await this.trpc['resources/list'].query(request); 116 | } catch (error) { 117 | this.options.onError?.(request.method, error as Error); 118 | throw error; 119 | } 120 | }, 121 | ); 122 | 123 | this.server.setRequestHandler( 124 | ReadResourceRequestSchema, 125 | async (request) => { 126 | try { 127 | return await this.trpc['resources/read'].query(request); 128 | } catch (error) { 129 | this.options.onError?.(request.method, error as Error); 130 | throw error; 131 | } 132 | }, 133 | ); 134 | 135 | this.server.setRequestHandler(SubscribeRequestSchema, async (request) => { 136 | try { 137 | return await this.trpc['resources/subscribe'].mutate(request); 138 | } catch (error) { 139 | this.options.onError?.(request.method, error as Error); 140 | throw error; 141 | } 142 | }); 143 | 144 | this.server.setRequestHandler(UnsubscribeRequestSchema, async (request) => { 145 | try { 146 | return await this.trpc['resources/unsubscribe'].mutate(request); 147 | } catch (error) { 148 | this.options.onError?.(request.method, error as Error); 149 | throw error; 150 | } 151 | }); 152 | 153 | // Prompts handlers 154 | this.server.setRequestHandler(ListPromptsRequestSchema, async (request) => { 155 | try { 156 | return await this.trpc['prompts/list'].query(request); 157 | } catch (error) { 158 | this.options.onError?.(request.method, error as Error); 159 | throw error; 160 | } 161 | }); 162 | 163 | this.server.setRequestHandler(GetPromptRequestSchema, async (request) => { 164 | try { 165 | return await this.trpc['prompts/get'].query(request); 166 | } catch (error) { 167 | this.options.onError?.(request.method, error as Error); 168 | throw error; 169 | } 170 | }); 171 | } 172 | 173 | async start() { 174 | this.setupHandlers(); 175 | 176 | const transport = new StdioServerTransport(); 177 | await this.server.connect(transport); 178 | } 179 | } 180 | -------------------------------------------------------------------------------- /packages/client/src/index.ts: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | import { RemoteMCPClient } from './client.js'; 4 | 5 | export { RemoteMCPClient } from './client.js'; 6 | export default RemoteMCPClient; 7 | 8 | const client = new RemoteMCPClient({ 9 | remoteUrl: process.env.REMOTE_MCP_URL || 'http://localhost:9512', 10 | headers: Object.keys(process.env) 11 | .filter((key) => key.startsWith('HTTP_HEADER_')) 12 | .reduce( 13 | (headers, key) => { 14 | const headerKey = key 15 | .substring('HTTP_HEADER_'.length) 16 | .toLowerCase() 17 | .replace(/_/g, '-'); 18 | const headerValue = process.env[key] || ''; 19 | headers[headerKey] = headerValue; 20 | return headers; 21 | }, 22 | {} as Record, 23 | ), 24 | }); 25 | 26 | void client.start(); 27 | -------------------------------------------------------------------------------- /packages/client/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "resolveJsonModule": true, 5 | "target": "ES2022", 6 | "module": "Node16", 7 | "moduleResolution": "Node16", 8 | "moduleDetection": "force", 9 | "esModuleInterop": true, 10 | "declaration": true, 11 | "declarationMap": true, 12 | "noEmit": false, 13 | "sourceMap": true, 14 | "rootDir": "./src", 15 | "outDir": "./dist", 16 | "strict": true, 17 | "noLib": false, 18 | "skipLibCheck": true, 19 | "noFallthroughCasesInSwitch": true, 20 | "isolatedModules": true, 21 | "noUnusedLocals": false, 22 | "noUnusedParameters": false, 23 | "noPropertyAccessFromIndexSignature": false 24 | }, 25 | "include": ["./src/**/*"], 26 | "exclude": ["node_modules", "dist"] 27 | } 28 | -------------------------------------------------------------------------------- /packages/server/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@remote-mcp/server", 3 | "version": "0.1.0", 4 | "type": "module", 5 | "access": "public", 6 | "repository": { 7 | "type": "git", 8 | "url": "git+https://github.com/ssut/Remote-MCP.git", 9 | "directory": "packages/server" 10 | }, 11 | "author": { 12 | "name": "Suhun Han", 13 | "email": "suhunhankr@gmail.com", 14 | "url": "https://ssut.me" 15 | }, 16 | "exports": { 17 | "./package.json": "./package.json", 18 | ".": { 19 | "import": "./dist/esm/index.js", 20 | "require": "./dist/cjs/index.cjs", 21 | "types": "./dist/esm/index.d.ts" 22 | } 23 | }, 24 | "scripts": { 25 | "build": "tsup-node", 26 | "dev": "tsup-node --watch" 27 | }, 28 | "peerDependencies": { 29 | "@modelcontextprotocol/sdk": "latest", 30 | "@trpc/server": "^11.0.0-rc.682", 31 | "@trpc/client": "^11.0.0-rc.682", 32 | "zod": "^3.22.4", 33 | "zod-to-json-schema": "^3.24.1" 34 | }, 35 | "dependencies": { 36 | "@modelcontextprotocol/sdk": "latest", 37 | "@trpc/server": "^11.0.0-rc.682", 38 | "@trpc/client": "^11.0.0-rc.682", 39 | "zod": "^3.22.4", 40 | "zod-to-json-schema": "^3.24.1" 41 | }, 42 | "devDependencies": { 43 | "@microsoft/api-extractor": "^7.48.1", 44 | "@types/jsonwebtoken": "^9.0.5", 45 | "@types/node": "^22.10.2", 46 | "tsup": "^8.3.5", 47 | "typescript": "^5.7.2" 48 | }, 49 | "publishConfig": { 50 | "access": "public" 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /packages/server/src/index.ts: -------------------------------------------------------------------------------- 1 | export { MCPRouter } from './router.js'; 2 | export { 3 | LogLevel, 4 | type LoggerOptions, 5 | type Logger, 6 | ConsoleLogger, 7 | } from './logger.js'; 8 | export type { AppRouter, RouterInputs, RouterOutputs } from './types.js'; 9 | -------------------------------------------------------------------------------- /packages/server/src/logger.ts: -------------------------------------------------------------------------------- 1 | export enum LogLevel { 2 | DEBUG = 0, 3 | INFO = 1, 4 | WARN = 2, 5 | ERROR = 3, 6 | } 7 | 8 | export interface LoggerOptions { 9 | level: LogLevel; 10 | prefix?: string; 11 | } 12 | 13 | export interface Logger { 14 | debug(message: string, meta?: Record): void; 15 | info(message: string, meta?: Record): void; 16 | warn(message: string, meta?: Record): void; 17 | error(message: string, meta?: Record): void; 18 | setLevel(level: LogLevel): void; 19 | } 20 | 21 | export class ConsoleLogger implements Logger { 22 | private level: LogLevel; 23 | private prefix: string; 24 | 25 | constructor(options: LoggerOptions) { 26 | this.level = options.level; 27 | this.prefix = options.prefix || 'MCPRouter'; 28 | } 29 | 30 | private formatMessage( 31 | level: string, 32 | message: string, 33 | meta?: Record, 34 | ): string { 35 | const timestamp = new Date().toISOString(); 36 | const baseMessage = `[${timestamp}] [${this.prefix}] [${level}] ${message}`; 37 | return meta ? `${baseMessage} ${JSON.stringify(meta)}` : baseMessage; 38 | } 39 | 40 | debug(message: string, meta?: Record): void { 41 | if (this.level <= LogLevel.DEBUG) { 42 | console.debug(this.formatMessage('DEBUG', message, meta)); 43 | } 44 | } 45 | 46 | info(message: string, meta?: Record): void { 47 | if (this.level <= LogLevel.INFO) { 48 | console.info(this.formatMessage('INFO', message, meta)); 49 | } 50 | } 51 | 52 | warn(message: string, meta?: Record): void { 53 | if (this.level <= LogLevel.WARN) { 54 | console.warn(this.formatMessage('WARN', message, meta)); 55 | } 56 | } 57 | 58 | error(message: string, meta?: Record): void { 59 | if (this.level <= LogLevel.ERROR) { 60 | console.error(this.formatMessage('ERROR', message, meta)); 61 | } 62 | } 63 | 64 | setLevel(level: LogLevel): void { 65 | this.level = level; 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /packages/server/src/router.ts: -------------------------------------------------------------------------------- 1 | import { EventEmitter, on } from 'node:events'; 2 | import { ConsoleLogger, LogLevel, type Logger } from './logger.js'; 3 | 4 | import { 5 | type BlobResourceContents, 6 | CallToolRequestSchema, 7 | type CallToolResult, 8 | CallToolResultSchema, 9 | GetPromptRequestSchema, 10 | GetPromptResultSchema, 11 | type Implementation, 12 | type InitializeRequest, 13 | InitializeRequestSchema, 14 | type InitializeResult, 15 | InitializeResultSchema, 16 | LATEST_PROTOCOL_VERSION, 17 | ListPromptsRequestSchema, 18 | ListPromptsResultSchema, 19 | ListResourcesRequestSchema, 20 | ListResourcesResultSchema, 21 | ListToolsRequestSchema, 22 | ListToolsResultSchema, 23 | type Prompt, 24 | type PromptMessage, 25 | ReadResourceRequestSchema, 26 | ReadResourceResultSchema, 27 | type Resource, 28 | type ServerCapabilities, 29 | type ServerNotification, 30 | SubscribeRequestSchema, 31 | type Tool, 32 | UnsubscribeRequestSchema, 33 | } from '@modelcontextprotocol/sdk/types.js'; 34 | import { initTRPC } from '@trpc/server'; 35 | import { ZodError, type z } from 'zod'; 36 | import { zodToJsonSchema } from 'zod-to-json-schema'; 37 | 38 | export type ToolHandler = (args: T) => Promise; 39 | export type ResourceHandler = () => Promise; 40 | export type ResourceContentHandler = () => Promise; 41 | export type PromptHandler = ( 42 | args: Record, 43 | ) => Promise; 44 | 45 | export interface ToolDefinition { 46 | description: string; 47 | schema: z.ZodType; 48 | middlewares?: Middleware[]; 49 | } 50 | 51 | export interface ResourceDefinition { 52 | name: string; 53 | description?: string; 54 | mimeType?: string; 55 | subscribe?: boolean; 56 | listHandler: ResourceHandler; 57 | readHandler: ResourceContentHandler; 58 | middlewares?: Middleware[]; 59 | } 60 | 61 | export interface PromptDefinition { 62 | description?: string; 63 | arguments?: { 64 | name: string; 65 | description?: string; 66 | required?: boolean; 67 | }[]; 68 | middlewares?: Middleware[]; 69 | } 70 | 71 | export interface MCPRouterOptions { 72 | name: string; 73 | version: string; 74 | capabilities?: Partial; 75 | logger?: Logger; 76 | logLevel?: LogLevel; 77 | } 78 | 79 | export type Middleware = ( 80 | request: unknown, 81 | next: (modifiedRequest: unknown) => Promise, 82 | ) => Promise; 83 | 84 | interface Events { 85 | notification: (notification: ServerNotification) => void; 86 | 87 | resourceListChanged: () => void; 88 | resourceUpdated: (uri: string) => void; 89 | toolListChanged: () => void; 90 | promptListChanged: () => void; 91 | rootsListChanged: () => void; 92 | } 93 | 94 | export class MCPRouter { 95 | private logger: Logger; 96 | 97 | private tools = new Map< 98 | string, 99 | { 100 | // biome-ignore lint/suspicious/noExplicitAny: 101 | definition: ToolDefinition; 102 | // biome-ignore lint/suspicious/noExplicitAny: 103 | handler: ToolHandler; 104 | } 105 | >(); 106 | 107 | private resources = new Map(); 108 | 109 | private prompts = new Map< 110 | string, 111 | { 112 | definition: PromptDefinition; 113 | handler: PromptHandler; 114 | } 115 | >(); 116 | 117 | private subscriptions = new Map>(); 118 | private implementation: Implementation; 119 | private capabilities: ServerCapabilities; 120 | private events = new EventEmitter(); 121 | 122 | constructor(options: MCPRouterOptions) { 123 | this.logger = 124 | options.logger || 125 | new ConsoleLogger({ 126 | level: options.logLevel || LogLevel.INFO, 127 | prefix: options.name, 128 | }); 129 | 130 | this.implementation = { 131 | name: options.name, 132 | version: options.version, 133 | }; 134 | 135 | this.capabilities = { 136 | tools: options.capabilities?.tools ?? { 137 | listChanged: false, 138 | }, 139 | resources: options.capabilities?.resources ?? { 140 | subscribe: false, 141 | listChanged: false, 142 | }, 143 | prompts: options.capabilities?.prompts ?? { 144 | listChanged: false, 145 | }, 146 | logging: options.capabilities?.logging, 147 | experimental: options.capabilities?.experimental, 148 | }; 149 | 150 | this.logger.debug('MCPRouter initialized', { 151 | name: options.name, 152 | version: options.version, 153 | capabilities: this.capabilities, 154 | }); 155 | } 156 | 157 | private emit( 158 | event: T, 159 | ...args: Parameters 160 | ): void { 161 | this.events.emit(event, ...args); 162 | } 163 | 164 | private _emitNotification(notification: ServerNotification) { 165 | this.emit('notification', notification); 166 | } 167 | 168 | private _emitResourceListChanged() { 169 | this._emitNotification({ 170 | method: 'notifications/resources/list_changed', 171 | params: {}, 172 | }); 173 | } 174 | 175 | private _emitResourceUpdated(uri: string) { 176 | this._emitNotification({ 177 | method: 'notifications/resources/updated', 178 | params: { uri }, 179 | }); 180 | } 181 | 182 | private _emitToolListChanged() { 183 | this._emitNotification({ 184 | method: 'notifications/tools/list_changed', 185 | params: {}, 186 | }); 187 | } 188 | 189 | private _emitPromptListChanged() { 190 | this._emitNotification({ 191 | method: 'notifications/prompts/list_changed', 192 | params: {}, 193 | }); 194 | } 195 | 196 | addTool( 197 | name: string, 198 | definition: ToolDefinition, 199 | handler: ToolHandler, 200 | ) { 201 | this.logger.debug('Adding tool', { name, definition }); 202 | 203 | this.tools.set(name, { definition, handler }); 204 | this._emitToolListChanged(); 205 | return this; 206 | } 207 | 208 | async listTools(): Promise { 209 | this.logger.debug('Listing resources'); 210 | 211 | const tools = Array.from(this.tools.entries()).map( 212 | ([name, { definition }]) => { 213 | const schema = { 214 | ...zodToJsonSchema(definition.schema), 215 | $schema: undefined, 216 | }; 217 | return { 218 | name, 219 | description: definition.description, 220 | inputSchema: { 221 | type: 'object', 222 | properties: schema, 223 | }, 224 | } satisfies Tool; 225 | }, 226 | ); 227 | 228 | return tools; 229 | } 230 | 231 | async callTool(name: string, args: unknown): Promise { 232 | this.logger.debug('Calling tool', { name, args }); 233 | 234 | const tool = this.tools.get(name); 235 | if (!tool) { 236 | throw new Error(`Tool not found: ${name}`); 237 | } 238 | 239 | const { definition, handler } = tool; 240 | 241 | const validatedArgs = definition.schema.parse(args); 242 | this.logger.debug('Tool args validated', { validatedArgs }); 243 | 244 | let result = validatedArgs; 245 | if (definition.middlewares) { 246 | for (const middleware of definition.middlewares) { 247 | result = await middleware(result, async (modified) => modified); 248 | } 249 | } 250 | 251 | return handler(result); 252 | } 253 | 254 | addResource(uri: string, definition: ResourceDefinition) { 255 | this.resources.set(uri, definition); 256 | this._emitResourceListChanged(); 257 | 258 | return this; 259 | } 260 | 261 | async listResources(): Promise { 262 | const resources: Resource[] = []; 263 | 264 | for (const [uri, def] of this.resources) { 265 | const items = await def.listHandler(); 266 | resources.push( 267 | ...items.map((item) => ({ 268 | ...item, 269 | uri, 270 | name: def.name, 271 | description: def.description, 272 | mimeType: def.mimeType, 273 | })), 274 | ); 275 | } 276 | 277 | return resources; 278 | } 279 | 280 | async readResource(uri: string): Promise { 281 | const resource = this.resources.get(uri); 282 | if (!resource) { 283 | throw new Error(`Resource not found: ${uri}`); 284 | } 285 | 286 | let result = { uri }; 287 | if (resource.middlewares) { 288 | for (const middleware of resource.middlewares) { 289 | result = (await middleware(result, async (modified) => modified)) as { 290 | uri: string; 291 | }; 292 | } 293 | } 294 | 295 | return resource.readHandler(); 296 | } 297 | 298 | async subscribeToResource(uri: string): Promise { 299 | if (!this.capabilities.resources?.subscribe) { 300 | throw new Error('Resource subscription not supported'); 301 | } 302 | 303 | const resource = this.resources.get(uri); 304 | if (!resource) { 305 | throw new Error(`Resource not found: ${uri}`); 306 | } 307 | 308 | if (!resource.subscribe) { 309 | throw new Error(`Resource ${uri} does not support subscriptions`); 310 | } 311 | 312 | if (!this.subscriptions.has(uri)) { 313 | this.subscriptions.set(uri, new Set()); 314 | } 315 | 316 | // biome-ignore lint/style/noNonNullAssertion: 317 | this.subscriptions.get(uri)!.add(uri); 318 | } 319 | 320 | async unsubscribeFromResource(uri: string): Promise { 321 | const subscribers = this.subscriptions.get(uri); 322 | if (subscribers) { 323 | subscribers.delete(uri); 324 | if (subscribers.size === 0) { 325 | this.subscriptions.delete(uri); 326 | } 327 | } 328 | } 329 | 330 | // Prompt methods 331 | addPrompt( 332 | name: string, 333 | definition: PromptDefinition, 334 | handler: PromptHandler, 335 | ) { 336 | this.prompts.set(name, { definition, handler }); 337 | this._emitPromptListChanged(); 338 | 339 | return this; 340 | } 341 | 342 | async listPrompts(): Promise { 343 | return Array.from(this.prompts.entries()).map(([name, { definition }]) => ({ 344 | name, 345 | description: definition.description, 346 | arguments: definition.arguments, 347 | })); 348 | } 349 | 350 | async getPrompt( 351 | name: string, 352 | args: Record = {}, 353 | ): Promise { 354 | this.logger.debug('Getting prompt', { name, args }); 355 | 356 | const prompt = this.prompts.get(name); 357 | if (!prompt) { 358 | const error = `Prompt not found: ${name}`; 359 | this.logger.error(error); 360 | throw new Error(error); 361 | } 362 | 363 | const { definition, handler } = prompt; 364 | 365 | // Validate required arguments 366 | if (definition.arguments) { 367 | for (const arg of definition.arguments) { 368 | if (arg.required && !(arg.name in args)) { 369 | const error = `Missing required argument: ${arg.name}`; 370 | this.logger.error(error, { name, args }); 371 | throw new Error(error); 372 | } 373 | } 374 | } 375 | 376 | // Apply middlewares 377 | let modifiedArgs = args; 378 | if (definition.middlewares) { 379 | for (const middleware of definition.middlewares) { 380 | modifiedArgs = (await middleware( 381 | modifiedArgs, 382 | async (modified) => modified, 383 | )) as Record; 384 | } 385 | 386 | this.logger.debug('Prompt middleware applied', { modifiedArgs }); 387 | } 388 | 389 | const messages = await handler(modifiedArgs); 390 | this.logger.debug('Prompt executed successfully', { 391 | name, 392 | messageCount: messages.length, 393 | }); 394 | return messages; 395 | } 396 | 397 | // Initialize handler 398 | async initialize(request: InitializeRequest): Promise { 399 | this.logger.debug('Initializing', { request }); 400 | 401 | return { 402 | id: 'RemoteMCP', 403 | protocolVersion: LATEST_PROTOCOL_VERSION, 404 | capabilities: this.capabilities, 405 | serverInfo: this.implementation, 406 | }; 407 | } 408 | 409 | // Create tRPC router 410 | createTRPCRouter() { 411 | const t = initTRPC.create({ 412 | errorFormatter({ type, path, input, shape, error }) { 413 | return { 414 | ...shape, 415 | data: { 416 | ...shape.data, 417 | zodError: 418 | error.code === 'BAD_REQUEST' && error.cause instanceof ZodError 419 | ? error.cause.flatten() 420 | : null, 421 | }, 422 | }; 423 | }, 424 | }); 425 | const router = t.router; 426 | const publicProcedure = t.procedure; 427 | const events = this.events; 428 | 429 | const appRouter = router({ 430 | ping: publicProcedure.query(() => 'pong'), 431 | 432 | initialize: publicProcedure 433 | .input(InitializeRequestSchema) 434 | .output(InitializeResultSchema) 435 | .mutation(async ({ input }) => { 436 | const { params } = { params: input }; 437 | return this.initialize(params); 438 | }), 439 | 440 | 'tools/list': publicProcedure 441 | .input(ListToolsRequestSchema) 442 | .output(ListToolsResultSchema) 443 | .query(async ({ input }) => ({ 444 | tools: await this.listTools(), 445 | // ...(input.params?.cursor && { nextCursor: input.params?.cursor }), 446 | })), 447 | 448 | 'tools/call': publicProcedure 449 | .input(CallToolRequestSchema) 450 | .output(CallToolResultSchema) 451 | .mutation(async ({ input }) => 452 | this.callTool(input.params.name, input.params.arguments), 453 | ), 454 | 455 | // Resources endpoints 456 | 'resources/list': publicProcedure 457 | .input(ListResourcesRequestSchema) 458 | .output(ListResourcesResultSchema) 459 | .query(async ({ input }) => ({ 460 | resources: await this.listResources(), 461 | })), 462 | 463 | 'resources/read': publicProcedure 464 | .input(ReadResourceRequestSchema) 465 | .output(ReadResourceResultSchema) 466 | .query(async ({ input }) => ({ 467 | contents: await this.readResource(input.params.uri), 468 | })), 469 | 470 | 'resources/subscribe': publicProcedure 471 | .input(SubscribeRequestSchema) 472 | .mutation(async ({ input }) => { 473 | await this.subscribeToResource(input.params.uri); 474 | return {}; 475 | }), 476 | 477 | 'resources/unsubscribe': publicProcedure 478 | .input(UnsubscribeRequestSchema) 479 | .mutation(async ({ input }) => { 480 | await this.unsubscribeFromResource(input.params.uri); 481 | return {}; 482 | }), 483 | 484 | // Prompts endpoints 485 | 'prompts/list': publicProcedure 486 | .input(ListPromptsRequestSchema) 487 | .output(ListPromptsResultSchema) 488 | .query(async ({ input }) => ({ 489 | prompts: await this.listPrompts(), 490 | // ...(input?.cursor && { nextCursor: input.cursor }), 491 | })), 492 | 493 | 'prompts/get': publicProcedure 494 | .input(GetPromptRequestSchema) 495 | .output(GetPromptResultSchema) 496 | .query(async ({ input }) => ({ 497 | messages: await this.getPrompt( 498 | input.params.name, 499 | input.params.arguments, 500 | ), 501 | })), 502 | 503 | 'notifications/stream': publicProcedure.subscription(async function* () { 504 | try { 505 | for await (const event of on(events, 'notification', { 506 | signal: undefined, 507 | })) { 508 | yield* event; 509 | } 510 | } finally { 511 | } 512 | }), 513 | }); 514 | 515 | return appRouter; 516 | } 517 | } 518 | 519 | interface Events { 520 | resourceListChanged: () => void; 521 | resourceUpdated: (uri: string) => void; 522 | toolListChanged: () => void; 523 | promptListChanged: () => void; 524 | rootsListChanged: () => void; 525 | } 526 | -------------------------------------------------------------------------------- /packages/server/src/types.ts: -------------------------------------------------------------------------------- 1 | import type { inferRouterInputs, inferRouterOutputs } from '@trpc/server'; 2 | import type { MCPRouter } from './router.js'; 3 | 4 | export type AppRouter = ReturnType; 5 | export type RouterInputs = inferRouterInputs; 6 | export type RouterOutputs = inferRouterOutputs; 7 | -------------------------------------------------------------------------------- /packages/server/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "composite": false, 5 | "resolveJsonModule": true, 6 | "target": "ES2022", 7 | "module": "Node16", 8 | "moduleResolution": "node16", 9 | "moduleDetection": "force", 10 | "declaration": true, 11 | "declarationMap": true, 12 | "sourceMap": true, 13 | "rootDir": "./src", 14 | "outDir": "./dist", 15 | "noEmit": false, 16 | "strict": true, 17 | "noLib": false, 18 | "esModuleInterop": true, 19 | "skipLibCheck": true, 20 | "noFallthroughCasesInSwitch": true, 21 | "isolatedModules": true, 22 | "noUnusedLocals": false, 23 | "noUnusedParameters": false, 24 | "noPropertyAccessFromIndexSignature": false 25 | }, 26 | "include": ["./src/**/*"], 27 | "exclude": ["node_modules", "dist"] 28 | } 29 | -------------------------------------------------------------------------------- /packages/server/tsup.config.ts: -------------------------------------------------------------------------------- 1 | import { type Options, defineConfig } from 'tsup'; 2 | 3 | const getCommonConfig = (options: Options) => 4 | ({ 5 | entry: ['./src/**/*'], 6 | experimentalDts: true, 7 | sourcemap: true, 8 | splitting: false, 9 | target: ['es2023'], 10 | clean: !options.watch, 11 | tsconfig: 'tsconfig.json', 12 | platform: 'node', 13 | // minify: !options.watch, 14 | }) satisfies Options; 15 | 16 | export default defineConfig((options) => [ 17 | { 18 | ...getCommonConfig(options), 19 | format: ['cjs'], 20 | outDir: './dist/cjs', 21 | }, 22 | { 23 | ...getCommonConfig(options), 24 | format: ['esm'], 25 | outDir: './dist/esm', 26 | }, 27 | ]); 28 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | typescript: 12 | specifier: ^5.7.2 13 | version: 5.7.2 14 | devDependencies: 15 | '@changesets/cli': 16 | specifier: ^2.27.11 17 | version: 2.27.11 18 | '@types/node': 19 | specifier: ^22.10.2 20 | version: 22.10.2 21 | biome: 22 | specifier: ^0.3.3 23 | version: 0.3.3 24 | turbo: 25 | specifier: ^2.3.3 26 | version: 2.3.3 27 | 28 | examples/cloudflare-workers: 29 | dependencies: 30 | '@remote-mcp/server': 31 | specifier: workspace:* 32 | version: link:../../packages/server 33 | '@trpc/server': 34 | specifier: 11.0.0-rc.682 35 | version: 11.0.0-rc.682(typescript@4.9.5) 36 | zod: 37 | specifier: ^3.22.4 38 | version: 3.24.1 39 | devDependencies: 40 | '@cloudflare/workers-types': 41 | specifier: ^3.14.1 42 | version: 3.19.0 43 | miniflare: 44 | specifier: ^2.6.0 45 | version: 2.14.4(cron-schedule@3.0.6) 46 | typescript: 47 | specifier: ^4.7.4 48 | version: 4.9.5 49 | wrangler: 50 | specifier: ^2.0.24 51 | version: 2.21.2(cron-schedule@3.0.6) 52 | 53 | examples/simple-server: 54 | dependencies: 55 | '@modelcontextprotocol/sdk': 56 | specifier: latest 57 | version: 1.0.4 58 | '@remote-mcp/server': 59 | specifier: workspace:* 60 | version: link:../../packages/server 61 | '@trpc/server': 62 | specifier: ^11.0.0-rc.682 63 | version: 11.0.0-rc.682(typescript@5.7.2) 64 | typescript: 65 | specifier: ^5.7.2 66 | version: 5.7.2 67 | devDependencies: 68 | tsx: 69 | specifier: ^4.19.2 70 | version: 4.19.2 71 | 72 | packages/client: 73 | dependencies: 74 | '@modelcontextprotocol/sdk': 75 | specifier: latest 76 | version: 1.0.4 77 | '@trpc/client': 78 | specifier: ^11.0.0-rc.682 79 | version: 11.0.0-rc.682(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(typescript@5.7.2) 80 | '@trpc/server': 81 | specifier: ^11.0.0-rc.682 82 | version: 11.0.0-rc.682(typescript@5.7.2) 83 | zod: 84 | specifier: ^3.22.4 85 | version: 3.24.1 86 | devDependencies: 87 | '@remote-mcp/server': 88 | specifier: workspace:* 89 | version: link:../server 90 | typescript: 91 | specifier: ^5.7.2 92 | version: 5.7.2 93 | 94 | packages/server: 95 | dependencies: 96 | '@modelcontextprotocol/sdk': 97 | specifier: latest 98 | version: 1.0.4 99 | '@trpc/client': 100 | specifier: ^11.0.0-rc.682 101 | version: 11.0.0-rc.682(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(typescript@5.7.2) 102 | '@trpc/server': 103 | specifier: ^11.0.0-rc.682 104 | version: 11.0.0-rc.682(typescript@5.7.2) 105 | zod: 106 | specifier: ^3.22.4 107 | version: 3.24.1 108 | zod-to-json-schema: 109 | specifier: ^3.24.1 110 | version: 3.24.1(zod@3.24.1) 111 | devDependencies: 112 | '@microsoft/api-extractor': 113 | specifier: ^7.48.1 114 | version: 7.48.1(@types/node@22.10.2) 115 | '@types/jsonwebtoken': 116 | specifier: ^9.0.5 117 | version: 9.0.7 118 | '@types/node': 119 | specifier: ^22.10.2 120 | version: 22.10.2 121 | tsup: 122 | specifier: ^8.3.5 123 | version: 8.3.5(@microsoft/api-extractor@7.48.1(@types/node@22.10.2))(tsx@4.19.2)(typescript@5.7.2) 124 | typescript: 125 | specifier: ^5.7.2 126 | version: 5.7.2 127 | 128 | packages: 129 | 130 | '@babel/runtime@7.26.0': 131 | resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} 132 | engines: {node: '>=6.9.0'} 133 | 134 | '@changesets/apply-release-plan@7.0.7': 135 | resolution: {integrity: sha512-qnPOcmmmnD0MfMg9DjU1/onORFyRpDXkMMl2IJg9mECY6RnxL3wN0TCCc92b2sXt1jt8DgjAUUsZYGUGTdYIXA==} 136 | 137 | '@changesets/assemble-release-plan@6.0.5': 138 | resolution: {integrity: sha512-IgvBWLNKZd6k4t72MBTBK3nkygi0j3t3zdC1zrfusYo0KpdsvnDjrMM9vPnTCLCMlfNs55jRL4gIMybxa64FCQ==} 139 | 140 | '@changesets/changelog-git@0.2.0': 141 | resolution: {integrity: sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==} 142 | 143 | '@changesets/cli@2.27.11': 144 | resolution: {integrity: sha512-1QislpE+nvJgSZZo9+Lj3Lno5pKBgN46dAV8IVxKJy9wX8AOrs9nn5pYVZuDpoxWJJCALmbfOsHkyxujgetQSg==} 145 | hasBin: true 146 | 147 | '@changesets/config@3.0.5': 148 | resolution: {integrity: sha512-QyXLSSd10GquX7hY0Mt4yQFMEeqnO5z/XLpbIr4PAkNNoQNKwDyiSrx4yd749WddusH1v3OSiA0NRAYmH/APpQ==} 149 | 150 | '@changesets/errors@0.2.0': 151 | resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} 152 | 153 | '@changesets/get-dependents-graph@2.1.2': 154 | resolution: {integrity: sha512-sgcHRkiBY9i4zWYBwlVyAjEM9sAzs4wYVwJUdnbDLnVG3QwAaia1Mk5P8M7kraTOZN+vBET7n8KyB0YXCbFRLQ==} 155 | 156 | '@changesets/get-release-plan@4.0.6': 157 | resolution: {integrity: sha512-FHRwBkY7Eili04Y5YMOZb0ezQzKikTka4wL753vfUA5COSebt7KThqiuCN9BewE4/qFGgF/5t3AuzXx1/UAY4w==} 158 | 159 | '@changesets/get-version-range-type@0.4.0': 160 | resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} 161 | 162 | '@changesets/git@3.0.2': 163 | resolution: {integrity: sha512-r1/Kju9Y8OxRRdvna+nxpQIsMsRQn9dhhAZt94FLDeu0Hij2hnOozW8iqnHBgvu+KdnJppCveQwK4odwfw/aWQ==} 164 | 165 | '@changesets/logger@0.1.1': 166 | resolution: {integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==} 167 | 168 | '@changesets/parse@0.4.0': 169 | resolution: {integrity: sha512-TS/9KG2CdGXS27S+QxbZXgr8uPsP4yNJYb4BC2/NeFUj80Rni3TeD2qwWmabymxmrLo7JEsytXH1FbpKTbvivw==} 170 | 171 | '@changesets/pre@2.0.1': 172 | resolution: {integrity: sha512-vvBJ/If4jKM4tPz9JdY2kGOgWmCowUYOi5Ycv8dyLnEE8FgpYYUo1mgJZxcdtGGP3aG8rAQulGLyyXGSLkIMTQ==} 173 | 174 | '@changesets/read@0.6.2': 175 | resolution: {integrity: sha512-wjfQpJvryY3zD61p8jR87mJdyx2FIhEcdXhKUqkja87toMrP/3jtg/Yg29upN+N4Ckf525/uvV7a4tzBlpk6gg==} 176 | 177 | '@changesets/should-skip-package@0.1.1': 178 | resolution: {integrity: sha512-H9LjLbF6mMHLtJIc/eHR9Na+MifJ3VxtgP/Y+XLn4BF7tDTEN1HNYtH6QMcjP1uxp9sjaFYmW8xqloaCi/ckTg==} 179 | 180 | '@changesets/types@4.1.0': 181 | resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} 182 | 183 | '@changesets/types@6.0.0': 184 | resolution: {integrity: sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ==} 185 | 186 | '@changesets/write@0.3.2': 187 | resolution: {integrity: sha512-kDxDrPNpUgsjDbWBvUo27PzKX4gqeKOlhibaOXDJA6kuBisGqNHv/HwGJrAu8U/dSf8ZEFIeHIPtvSlZI1kULw==} 188 | 189 | '@cloudflare/kv-asset-handler@0.2.0': 190 | resolution: {integrity: sha512-MVbXLbTcAotOPUj0pAMhVtJ+3/kFkwJqc5qNOleOZTv6QkZZABDMS21dSrSlVswEHwrpWC03e4fWytjqKvuE2A==} 191 | 192 | '@cloudflare/workers-types@3.19.0': 193 | resolution: {integrity: sha512-0FRcsz7Ea3jT+gc5gKPIYciykm1bbAaTpygdzpCwGt0RL+V83zWnYN30NWDW4rIHj/FHtz+MIuBKS61C8l7AzQ==} 194 | 195 | '@esbuild-plugins/node-globals-polyfill@0.1.1': 196 | resolution: {integrity: sha512-MR0oAA+mlnJWrt1RQVQ+4VYuRJW/P2YmRTv1AsplObyvuBMnPHiizUF95HHYiSsMGLhyGtWufaq2XQg6+iurBg==} 197 | peerDependencies: 198 | esbuild: '*' 199 | 200 | '@esbuild-plugins/node-modules-polyfill@0.1.4': 201 | resolution: {integrity: sha512-uZbcXi0zbmKC/050p3gJnne5Qdzw8vkXIv+c2BW0Lsc1ji1SkrxbKPUy5Efr0blbTu1SL8w4eyfpnSdPg3G0Qg==} 202 | peerDependencies: 203 | esbuild: '*' 204 | 205 | '@esbuild/aix-ppc64@0.23.1': 206 | resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} 207 | engines: {node: '>=18'} 208 | cpu: [ppc64] 209 | os: [aix] 210 | 211 | '@esbuild/aix-ppc64@0.24.2': 212 | resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==} 213 | engines: {node: '>=18'} 214 | cpu: [ppc64] 215 | os: [aix] 216 | 217 | '@esbuild/android-arm64@0.16.3': 218 | resolution: {integrity: sha512-RolFVeinkeraDvN/OoRf1F/lP0KUfGNb5jxy/vkIMeRRChkrX/HTYN6TYZosRJs3a1+8wqpxAo5PI5hFmxyPRg==} 219 | engines: {node: '>=12'} 220 | cpu: [arm64] 221 | os: [android] 222 | 223 | '@esbuild/android-arm64@0.23.1': 224 | resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==} 225 | engines: {node: '>=18'} 226 | cpu: [arm64] 227 | os: [android] 228 | 229 | '@esbuild/android-arm64@0.24.2': 230 | resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} 231 | engines: {node: '>=18'} 232 | cpu: [arm64] 233 | os: [android] 234 | 235 | '@esbuild/android-arm@0.16.3': 236 | resolution: {integrity: sha512-mueuEoh+s1eRbSJqq9KNBQwI4QhQV6sRXIfTyLXSHGMpyew61rOK4qY21uKbXl1iBoMb0AdL1deWFCQVlN2qHA==} 237 | engines: {node: '>=12'} 238 | cpu: [arm] 239 | os: [android] 240 | 241 | '@esbuild/android-arm@0.23.1': 242 | resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==} 243 | engines: {node: '>=18'} 244 | cpu: [arm] 245 | os: [android] 246 | 247 | '@esbuild/android-arm@0.24.2': 248 | resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} 249 | engines: {node: '>=18'} 250 | cpu: [arm] 251 | os: [android] 252 | 253 | '@esbuild/android-x64@0.16.3': 254 | resolution: {integrity: sha512-SFpTUcIT1bIJuCCBMCQWq1bL2gPTjWoLZdjmIhjdcQHaUfV41OQfho6Ici5uvvkMmZRXIUGpM3GxysP/EU7ifQ==} 255 | engines: {node: '>=12'} 256 | cpu: [x64] 257 | os: [android] 258 | 259 | '@esbuild/android-x64@0.23.1': 260 | resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==} 261 | engines: {node: '>=18'} 262 | cpu: [x64] 263 | os: [android] 264 | 265 | '@esbuild/android-x64@0.24.2': 266 | resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} 267 | engines: {node: '>=18'} 268 | cpu: [x64] 269 | os: [android] 270 | 271 | '@esbuild/darwin-arm64@0.16.3': 272 | resolution: {integrity: sha512-DO8WykMyB+N9mIDfI/Hug70Dk1KipavlGAecxS3jDUwAbTpDXj0Lcwzw9svkhxfpCagDmpaTMgxWK8/C/XcXvw==} 273 | engines: {node: '>=12'} 274 | cpu: [arm64] 275 | os: [darwin] 276 | 277 | '@esbuild/darwin-arm64@0.23.1': 278 | resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==} 279 | engines: {node: '>=18'} 280 | cpu: [arm64] 281 | os: [darwin] 282 | 283 | '@esbuild/darwin-arm64@0.24.2': 284 | resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} 285 | engines: {node: '>=18'} 286 | cpu: [arm64] 287 | os: [darwin] 288 | 289 | '@esbuild/darwin-x64@0.16.3': 290 | resolution: {integrity: sha512-uEqZQ2omc6BvWqdCiyZ5+XmxuHEi1SPzpVxXCSSV2+Sh7sbXbpeNhHIeFrIpRjAs0lI1FmA1iIOxFozKBhKgRQ==} 291 | engines: {node: '>=12'} 292 | cpu: [x64] 293 | os: [darwin] 294 | 295 | '@esbuild/darwin-x64@0.23.1': 296 | resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==} 297 | engines: {node: '>=18'} 298 | cpu: [x64] 299 | os: [darwin] 300 | 301 | '@esbuild/darwin-x64@0.24.2': 302 | resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} 303 | engines: {node: '>=18'} 304 | cpu: [x64] 305 | os: [darwin] 306 | 307 | '@esbuild/freebsd-arm64@0.16.3': 308 | resolution: {integrity: sha512-nJansp3sSXakNkOD5i5mIz2Is/HjzIhFs49b1tjrPrpCmwgBmH9SSzhC/Z1UqlkivqMYkhfPwMw1dGFUuwmXhw==} 309 | engines: {node: '>=12'} 310 | cpu: [arm64] 311 | os: [freebsd] 312 | 313 | '@esbuild/freebsd-arm64@0.23.1': 314 | resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==} 315 | engines: {node: '>=18'} 316 | cpu: [arm64] 317 | os: [freebsd] 318 | 319 | '@esbuild/freebsd-arm64@0.24.2': 320 | resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} 321 | engines: {node: '>=18'} 322 | cpu: [arm64] 323 | os: [freebsd] 324 | 325 | '@esbuild/freebsd-x64@0.16.3': 326 | resolution: {integrity: sha512-TfoDzLw+QHfc4a8aKtGSQ96Wa+6eimljjkq9HKR0rHlU83vw8aldMOUSJTUDxbcUdcgnJzPaX8/vGWm7vyV7ug==} 327 | engines: {node: '>=12'} 328 | cpu: [x64] 329 | os: [freebsd] 330 | 331 | '@esbuild/freebsd-x64@0.23.1': 332 | resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==} 333 | engines: {node: '>=18'} 334 | cpu: [x64] 335 | os: [freebsd] 336 | 337 | '@esbuild/freebsd-x64@0.24.2': 338 | resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} 339 | engines: {node: '>=18'} 340 | cpu: [x64] 341 | os: [freebsd] 342 | 343 | '@esbuild/linux-arm64@0.16.3': 344 | resolution: {integrity: sha512-7I3RlsnxEFCHVZNBLb2w7unamgZ5sVwO0/ikE2GaYvYuUQs9Qte/w7TqWcXHtCwxvZx/2+F97ndiUQAWs47ZfQ==} 345 | engines: {node: '>=12'} 346 | cpu: [arm64] 347 | os: [linux] 348 | 349 | '@esbuild/linux-arm64@0.23.1': 350 | resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==} 351 | engines: {node: '>=18'} 352 | cpu: [arm64] 353 | os: [linux] 354 | 355 | '@esbuild/linux-arm64@0.24.2': 356 | resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} 357 | engines: {node: '>=18'} 358 | cpu: [arm64] 359 | os: [linux] 360 | 361 | '@esbuild/linux-arm@0.16.3': 362 | resolution: {integrity: sha512-VwswmSYwVAAq6LysV59Fyqk3UIjbhuc6wb3vEcJ7HEJUtFuLK9uXWuFoH1lulEbE4+5GjtHi3MHX+w1gNHdOWQ==} 363 | engines: {node: '>=12'} 364 | cpu: [arm] 365 | os: [linux] 366 | 367 | '@esbuild/linux-arm@0.23.1': 368 | resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==} 369 | engines: {node: '>=18'} 370 | cpu: [arm] 371 | os: [linux] 372 | 373 | '@esbuild/linux-arm@0.24.2': 374 | resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} 375 | engines: {node: '>=18'} 376 | cpu: [arm] 377 | os: [linux] 378 | 379 | '@esbuild/linux-ia32@0.16.3': 380 | resolution: {integrity: sha512-X8FDDxM9cqda2rJE+iblQhIMYY49LfvW4kaEjoFbTTQ4Go8G96Smj2w3BRTwA8IHGoi9dPOPGAX63dhuv19UqA==} 381 | engines: {node: '>=12'} 382 | cpu: [ia32] 383 | os: [linux] 384 | 385 | '@esbuild/linux-ia32@0.23.1': 386 | resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==} 387 | engines: {node: '>=18'} 388 | cpu: [ia32] 389 | os: [linux] 390 | 391 | '@esbuild/linux-ia32@0.24.2': 392 | resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} 393 | engines: {node: '>=18'} 394 | cpu: [ia32] 395 | os: [linux] 396 | 397 | '@esbuild/linux-loong64@0.16.3': 398 | resolution: {integrity: sha512-hIbeejCOyO0X9ujfIIOKjBjNAs9XD/YdJ9JXAy1lHA+8UXuOqbFe4ErMCqMr8dhlMGBuvcQYGF7+kO7waj2KHw==} 399 | engines: {node: '>=12'} 400 | cpu: [loong64] 401 | os: [linux] 402 | 403 | '@esbuild/linux-loong64@0.23.1': 404 | resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==} 405 | engines: {node: '>=18'} 406 | cpu: [loong64] 407 | os: [linux] 408 | 409 | '@esbuild/linux-loong64@0.24.2': 410 | resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} 411 | engines: {node: '>=18'} 412 | cpu: [loong64] 413 | os: [linux] 414 | 415 | '@esbuild/linux-mips64el@0.16.3': 416 | resolution: {integrity: sha512-znFRzICT/V8VZQMt6rjb21MtAVJv/3dmKRMlohlShrbVXdBuOdDrGb+C2cZGQAR8RFyRe7HS6klmHq103WpmVw==} 417 | engines: {node: '>=12'} 418 | cpu: [mips64el] 419 | os: [linux] 420 | 421 | '@esbuild/linux-mips64el@0.23.1': 422 | resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==} 423 | engines: {node: '>=18'} 424 | cpu: [mips64el] 425 | os: [linux] 426 | 427 | '@esbuild/linux-mips64el@0.24.2': 428 | resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} 429 | engines: {node: '>=18'} 430 | cpu: [mips64el] 431 | os: [linux] 432 | 433 | '@esbuild/linux-ppc64@0.16.3': 434 | resolution: {integrity: sha512-EV7LuEybxhXrVTDpbqWF2yehYRNz5e5p+u3oQUS2+ZFpknyi1NXxr8URk4ykR8Efm7iu04//4sBg249yNOwy5Q==} 435 | engines: {node: '>=12'} 436 | cpu: [ppc64] 437 | os: [linux] 438 | 439 | '@esbuild/linux-ppc64@0.23.1': 440 | resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==} 441 | engines: {node: '>=18'} 442 | cpu: [ppc64] 443 | os: [linux] 444 | 445 | '@esbuild/linux-ppc64@0.24.2': 446 | resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} 447 | engines: {node: '>=18'} 448 | cpu: [ppc64] 449 | os: [linux] 450 | 451 | '@esbuild/linux-riscv64@0.16.3': 452 | resolution: {integrity: sha512-uDxqFOcLzFIJ+r/pkTTSE9lsCEaV/Y6rMlQjUI9BkzASEChYL/aSQjZjchtEmdnVxDKETnUAmsaZ4pqK1eE5BQ==} 453 | engines: {node: '>=12'} 454 | cpu: [riscv64] 455 | os: [linux] 456 | 457 | '@esbuild/linux-riscv64@0.23.1': 458 | resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==} 459 | engines: {node: '>=18'} 460 | cpu: [riscv64] 461 | os: [linux] 462 | 463 | '@esbuild/linux-riscv64@0.24.2': 464 | resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} 465 | engines: {node: '>=18'} 466 | cpu: [riscv64] 467 | os: [linux] 468 | 469 | '@esbuild/linux-s390x@0.16.3': 470 | resolution: {integrity: sha512-NbeREhzSxYwFhnCAQOQZmajsPYtX71Ufej3IQ8W2Gxskfz9DK58ENEju4SbpIj48VenktRASC52N5Fhyf/aliQ==} 471 | engines: {node: '>=12'} 472 | cpu: [s390x] 473 | os: [linux] 474 | 475 | '@esbuild/linux-s390x@0.23.1': 476 | resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} 477 | engines: {node: '>=18'} 478 | cpu: [s390x] 479 | os: [linux] 480 | 481 | '@esbuild/linux-s390x@0.24.2': 482 | resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} 483 | engines: {node: '>=18'} 484 | cpu: [s390x] 485 | os: [linux] 486 | 487 | '@esbuild/linux-x64@0.16.3': 488 | resolution: {integrity: sha512-SDiG0nCixYO9JgpehoKgScwic7vXXndfasjnD5DLbp1xltANzqZ425l7LSdHynt19UWOcDjG9wJJzSElsPvk0w==} 489 | engines: {node: '>=12'} 490 | cpu: [x64] 491 | os: [linux] 492 | 493 | '@esbuild/linux-x64@0.23.1': 494 | resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==} 495 | engines: {node: '>=18'} 496 | cpu: [x64] 497 | os: [linux] 498 | 499 | '@esbuild/linux-x64@0.24.2': 500 | resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==} 501 | engines: {node: '>=18'} 502 | cpu: [x64] 503 | os: [linux] 504 | 505 | '@esbuild/netbsd-arm64@0.24.2': 506 | resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==} 507 | engines: {node: '>=18'} 508 | cpu: [arm64] 509 | os: [netbsd] 510 | 511 | '@esbuild/netbsd-x64@0.16.3': 512 | resolution: {integrity: sha512-AzbsJqiHEq1I/tUvOfAzCY15h4/7Ivp3ff/o1GpP16n48JMNAtbW0qui2WCgoIZArEHD0SUQ95gvR0oSO7ZbdA==} 513 | engines: {node: '>=12'} 514 | cpu: [x64] 515 | os: [netbsd] 516 | 517 | '@esbuild/netbsd-x64@0.23.1': 518 | resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==} 519 | engines: {node: '>=18'} 520 | cpu: [x64] 521 | os: [netbsd] 522 | 523 | '@esbuild/netbsd-x64@0.24.2': 524 | resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==} 525 | engines: {node: '>=18'} 526 | cpu: [x64] 527 | os: [netbsd] 528 | 529 | '@esbuild/openbsd-arm64@0.23.1': 530 | resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} 531 | engines: {node: '>=18'} 532 | cpu: [arm64] 533 | os: [openbsd] 534 | 535 | '@esbuild/openbsd-arm64@0.24.2': 536 | resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==} 537 | engines: {node: '>=18'} 538 | cpu: [arm64] 539 | os: [openbsd] 540 | 541 | '@esbuild/openbsd-x64@0.16.3': 542 | resolution: {integrity: sha512-gSABi8qHl8k3Cbi/4toAzHiykuBuWLZs43JomTcXkjMZVkp0gj3gg9mO+9HJW/8GB5H89RX/V0QP4JGL7YEEVg==} 543 | engines: {node: '>=12'} 544 | cpu: [x64] 545 | os: [openbsd] 546 | 547 | '@esbuild/openbsd-x64@0.23.1': 548 | resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==} 549 | engines: {node: '>=18'} 550 | cpu: [x64] 551 | os: [openbsd] 552 | 553 | '@esbuild/openbsd-x64@0.24.2': 554 | resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} 555 | engines: {node: '>=18'} 556 | cpu: [x64] 557 | os: [openbsd] 558 | 559 | '@esbuild/sunos-x64@0.16.3': 560 | resolution: {integrity: sha512-SF9Kch5Ete4reovvRO6yNjMxrvlfT0F0Flm+NPoUw5Z4Q3r1d23LFTgaLwm3Cp0iGbrU/MoUI+ZqwCv5XJijCw==} 561 | engines: {node: '>=12'} 562 | cpu: [x64] 563 | os: [sunos] 564 | 565 | '@esbuild/sunos-x64@0.23.1': 566 | resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==} 567 | engines: {node: '>=18'} 568 | cpu: [x64] 569 | os: [sunos] 570 | 571 | '@esbuild/sunos-x64@0.24.2': 572 | resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} 573 | engines: {node: '>=18'} 574 | cpu: [x64] 575 | os: [sunos] 576 | 577 | '@esbuild/win32-arm64@0.16.3': 578 | resolution: {integrity: sha512-u5aBonZIyGopAZyOnoPAA6fGsDeHByZ9CnEzyML9NqntK6D/xl5jteZUKm/p6nD09+v3pTM6TuUIqSPcChk5gg==} 579 | engines: {node: '>=12'} 580 | cpu: [arm64] 581 | os: [win32] 582 | 583 | '@esbuild/win32-arm64@0.23.1': 584 | resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==} 585 | engines: {node: '>=18'} 586 | cpu: [arm64] 587 | os: [win32] 588 | 589 | '@esbuild/win32-arm64@0.24.2': 590 | resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} 591 | engines: {node: '>=18'} 592 | cpu: [arm64] 593 | os: [win32] 594 | 595 | '@esbuild/win32-ia32@0.16.3': 596 | resolution: {integrity: sha512-GlgVq1WpvOEhNioh74TKelwla9KDuAaLZrdxuuUgsP2vayxeLgVc+rbpIv0IYF4+tlIzq2vRhofV+KGLD+37EQ==} 597 | engines: {node: '>=12'} 598 | cpu: [ia32] 599 | os: [win32] 600 | 601 | '@esbuild/win32-ia32@0.23.1': 602 | resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==} 603 | engines: {node: '>=18'} 604 | cpu: [ia32] 605 | os: [win32] 606 | 607 | '@esbuild/win32-ia32@0.24.2': 608 | resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} 609 | engines: {node: '>=18'} 610 | cpu: [ia32] 611 | os: [win32] 612 | 613 | '@esbuild/win32-x64@0.16.3': 614 | resolution: {integrity: sha512-5/JuTd8OWW8UzEtyf19fbrtMJENza+C9JoPIkvItgTBQ1FO2ZLvjbPO6Xs54vk0s5JB5QsfieUEshRQfu7ZHow==} 615 | engines: {node: '>=12'} 616 | cpu: [x64] 617 | os: [win32] 618 | 619 | '@esbuild/win32-x64@0.23.1': 620 | resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==} 621 | engines: {node: '>=18'} 622 | cpu: [x64] 623 | os: [win32] 624 | 625 | '@esbuild/win32-x64@0.24.2': 626 | resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==} 627 | engines: {node: '>=18'} 628 | cpu: [x64] 629 | os: [win32] 630 | 631 | '@fastify/busboy@2.1.1': 632 | resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} 633 | engines: {node: '>=14'} 634 | 635 | '@iarna/toml@2.2.5': 636 | resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==} 637 | 638 | '@isaacs/cliui@8.0.2': 639 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} 640 | engines: {node: '>=12'} 641 | 642 | '@jridgewell/gen-mapping@0.3.8': 643 | resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} 644 | engines: {node: '>=6.0.0'} 645 | 646 | '@jridgewell/resolve-uri@3.1.2': 647 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 648 | engines: {node: '>=6.0.0'} 649 | 650 | '@jridgewell/set-array@1.2.1': 651 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} 652 | engines: {node: '>=6.0.0'} 653 | 654 | '@jridgewell/sourcemap-codec@1.5.0': 655 | resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} 656 | 657 | '@jridgewell/trace-mapping@0.3.25': 658 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 659 | 660 | '@manypkg/find-root@1.1.0': 661 | resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} 662 | 663 | '@manypkg/get-packages@1.1.3': 664 | resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} 665 | 666 | '@microsoft/api-extractor-model@7.30.1': 667 | resolution: {integrity: sha512-CTS2PlASJHxVY8hqHORVb1HdECWOEMcMnM6/kDkPr0RZapAFSIHhg9D4jxuE8g+OWYHtPc10LCpmde5pylTRlA==} 668 | 669 | '@microsoft/api-extractor@7.48.1': 670 | resolution: {integrity: sha512-HN9Osa1WxqLM66RaqB5nPAadx+nTIQmY/XtkFdaJvusjG8Tus++QqZtD7KPZDSkhEMGHsYeSyeU8qUzCDUXPjg==} 671 | hasBin: true 672 | 673 | '@microsoft/tsdoc-config@0.17.1': 674 | resolution: {integrity: sha512-UtjIFe0C6oYgTnad4q1QP4qXwLhe6tIpNTRStJ2RZEPIkqQPREAwE5spzVxsdn9UaEMUqhh0AqSx3X4nWAKXWw==} 675 | 676 | '@microsoft/tsdoc@0.15.1': 677 | resolution: {integrity: sha512-4aErSrCR/On/e5G2hDP0wjooqDdauzEbIq8hIkIe5pXV0rtWJZvdCEKL0ykZxex+IxIwBp0eGeV48hQN07dXtw==} 678 | 679 | '@miniflare/cache@2.14.4': 680 | resolution: {integrity: sha512-ayzdjhcj+4mjydbNK7ZGDpIXNliDbQY4GPcY2KrYw0v1OSUdj5kZUkygD09fqoGRfAks0d91VelkyRsAXX8FQA==} 681 | engines: {node: '>=16.13'} 682 | 683 | '@miniflare/cli-parser@2.14.4': 684 | resolution: {integrity: sha512-ltc6DDg0Sb1ZI6zbaPf9+CJbpRQXOLoCZqUdwtQyWCdZpAYQCT3tOeN19/tJC/uuL8NHj+EWKQIQriDYwp6uYQ==} 685 | engines: {node: '>=16.13'} 686 | 687 | '@miniflare/core@2.14.4': 688 | resolution: {integrity: sha512-FMmZcC1f54YpF4pDWPtdQPIO8NXfgUxCoR9uyrhxKJdZu7M6n8QKopPVNuaxR40jcsdxb7yKoQoFWnHfzJD9GQ==} 689 | engines: {node: '>=16.13'} 690 | 691 | '@miniflare/d1@2.14.4': 692 | resolution: {integrity: sha512-pMBVq9XWxTDdm+RRCkfXZP+bREjPg1JC8s8C0JTovA9OGmLQXqGTnFxIaS9vf1d8k3uSUGhDzPTzHr0/AUW1gA==} 693 | engines: {node: '>=16.7'} 694 | 695 | '@miniflare/durable-objects@2.14.4': 696 | resolution: {integrity: sha512-+JrmHP6gHHrjxV8S3axVw5lGHLgqmAGdcO/1HJUPswAyJEd3Ah2YnKhpo+bNmV4RKJCtEq9A2hbtVjBTD2YzwA==} 697 | engines: {node: '>=16.13'} 698 | 699 | '@miniflare/html-rewriter@2.14.4': 700 | resolution: {integrity: sha512-GB/vZn7oLbnhw+815SGF+HU5EZqSxbhIa3mu2L5MzZ2q5VOD5NHC833qG8c2GzDPhIaZ99ITY+ZJmbR4d+4aNQ==} 701 | engines: {node: '>=16.13'} 702 | 703 | '@miniflare/http-server@2.14.4': 704 | resolution: {integrity: sha512-2YrJi4o5Jf1FdT2XvdPCgaYpxuai7jn6Z1k5pgL1+s2qIaXr/uShceBLjJjEf3jz+daDxwmB1+BP0xyO/Cu4+g==} 705 | engines: {node: '>=16.13'} 706 | 707 | '@miniflare/kv@2.14.4': 708 | resolution: {integrity: sha512-QlERH0Z+klwLg0xw+/gm2yC34Nnr/I0GcQ+ASYqXeIXBwjqOtMBa3YVQnocaD+BPy/6TUtSpOAShHsEj76R2uw==} 709 | engines: {node: '>=16.13'} 710 | 711 | '@miniflare/queues@2.14.4': 712 | resolution: {integrity: sha512-aXQ5Ik8Iq1KGMBzGenmd6Js/jJgqyYvjom95/N9GptCGpiVWE5F0XqC1SL5rCwURbHN+aWY191o8XOFyY2nCUA==} 713 | engines: {node: '>=16.7'} 714 | 715 | '@miniflare/r2@2.14.4': 716 | resolution: {integrity: sha512-4ctiZWh7Ty7LB3brUjmbRiGMqwyDZgABYaczDtUidblo2DxX4JZPnJ/ZAyxMPNJif32kOJhcg6arC2hEthR9Sw==} 717 | engines: {node: '>=16.13'} 718 | 719 | '@miniflare/runner-vm@2.14.4': 720 | resolution: {integrity: sha512-Nog0bB9SVhPbZAkTWfO4lpLAUsBXKEjlb4y+y66FJw77mPlmPlVdpjElCvmf8T3VN/pqh83kvELGM+/fucMf4g==} 721 | engines: {node: '>=16.13'} 722 | 723 | '@miniflare/scheduler@2.14.4': 724 | resolution: {integrity: sha512-tBgQGFiRoqDSSuWyJDPbk6sNvGYrjE7O6Fhsx1d7h7/2ThofSqPxOnlttTTzeqnGc7Nt4Rf/s/JjQnzXOVXmqQ==} 725 | engines: {node: '>=16.13'} 726 | 727 | '@miniflare/shared@2.14.4': 728 | resolution: {integrity: sha512-upl4RSB3hyCnITOFmRZjJj4A72GmkVrtfZTilkdq5Qe5TTlzsjVeDJp7AuNUM9bM8vswRo+N5jOiot6O4PVwwQ==} 729 | engines: {node: '>=16.13'} 730 | 731 | '@miniflare/sites@2.14.4': 732 | resolution: {integrity: sha512-O5npWopi+fw9W9Ki0gy99nuBbgDva/iXy8PDC4dAXDB/pz45nISDqldabk0rL2t4W2+lY6LXKzdOw+qJO1GQTA==} 733 | engines: {node: '>=16.13'} 734 | 735 | '@miniflare/storage-file@2.14.4': 736 | resolution: {integrity: sha512-JxcmX0hXf4cB0cC9+s6ZsgYCq+rpyUKRPCGzaFwymWWplrO3EjPVxKCcMxG44jsdgsII6EZihYUN2J14wwCT7A==} 737 | engines: {node: '>=16.13'} 738 | 739 | '@miniflare/storage-memory@2.14.4': 740 | resolution: {integrity: sha512-9jB5BqNkMZ3SFjbPFeiVkLi1BuSahMhc/W1Y9H0W89qFDrrD+z7EgRgDtHTG1ZRyi9gIlNtt9qhkO1B6W2qb2A==} 741 | engines: {node: '>=16.13'} 742 | 743 | '@miniflare/watcher@2.14.4': 744 | resolution: {integrity: sha512-PYn05ET2USfBAeXF6NZfWl0O32KVyE8ncQ/ngysrh3hoIV7l3qGGH7ubeFx+D8VWQ682qYhwGygUzQv2j1tGGg==} 745 | engines: {node: '>=16.13'} 746 | 747 | '@miniflare/web-sockets@2.14.4': 748 | resolution: {integrity: sha512-stTxvLdJ2IcGOs76AnvGYAzGvx8JvQPRxC5DW0P5zdAAnhL33noqb5LKdPt3P37BKp9FzBKZHuihQI9oVqwm0g==} 749 | engines: {node: '>=16.13'} 750 | 751 | '@modelcontextprotocol/sdk@1.0.4': 752 | resolution: {integrity: sha512-C+jw1lF6HSGzs7EZpzHbXfzz9rj9him4BaoumlTciW/IDDgIpweF/qiCWKlP02QKg5PPcgY6xY2WCt5y2tpYow==} 753 | 754 | '@nodelib/fs.scandir@2.1.5': 755 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 756 | engines: {node: '>= 8'} 757 | 758 | '@nodelib/fs.stat@2.0.5': 759 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 760 | engines: {node: '>= 8'} 761 | 762 | '@nodelib/fs.walk@1.2.8': 763 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 764 | engines: {node: '>= 8'} 765 | 766 | '@pkgjs/parseargs@0.11.0': 767 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} 768 | engines: {node: '>=14'} 769 | 770 | '@rollup/rollup-android-arm-eabi@4.29.1': 771 | resolution: {integrity: sha512-ssKhA8RNltTZLpG6/QNkCSge+7mBQGUqJRisZ2MDQcEGaK93QESEgWK2iOpIDZ7k9zPVkG5AS3ksvD5ZWxmItw==} 772 | cpu: [arm] 773 | os: [android] 774 | 775 | '@rollup/rollup-android-arm64@4.29.1': 776 | resolution: {integrity: sha512-CaRfrV0cd+NIIcVVN/jx+hVLN+VRqnuzLRmfmlzpOzB87ajixsN/+9L5xNmkaUUvEbI5BmIKS+XTwXsHEb65Ew==} 777 | cpu: [arm64] 778 | os: [android] 779 | 780 | '@rollup/rollup-darwin-arm64@4.29.1': 781 | resolution: {integrity: sha512-2ORr7T31Y0Mnk6qNuwtyNmy14MunTAMx06VAPI6/Ju52W10zk1i7i5U3vlDRWjhOI5quBcrvhkCHyF76bI7kEw==} 782 | cpu: [arm64] 783 | os: [darwin] 784 | 785 | '@rollup/rollup-darwin-x64@4.29.1': 786 | resolution: {integrity: sha512-j/Ej1oanzPjmN0tirRd5K2/nncAhS9W6ICzgxV+9Y5ZsP0hiGhHJXZ2JQ53iSSjj8m6cRY6oB1GMzNn2EUt6Ng==} 787 | cpu: [x64] 788 | os: [darwin] 789 | 790 | '@rollup/rollup-freebsd-arm64@4.29.1': 791 | resolution: {integrity: sha512-91C//G6Dm/cv724tpt7nTyP+JdN12iqeXGFM1SqnljCmi5yTXriH7B1r8AD9dAZByHpKAumqP1Qy2vVNIdLZqw==} 792 | cpu: [arm64] 793 | os: [freebsd] 794 | 795 | '@rollup/rollup-freebsd-x64@4.29.1': 796 | resolution: {integrity: sha512-hEioiEQ9Dec2nIRoeHUP6hr1PSkXzQaCUyqBDQ9I9ik4gCXQZjJMIVzoNLBRGet+hIUb3CISMh9KXuCcWVW/8w==} 797 | cpu: [x64] 798 | os: [freebsd] 799 | 800 | '@rollup/rollup-linux-arm-gnueabihf@4.29.1': 801 | resolution: {integrity: sha512-Py5vFd5HWYN9zxBv3WMrLAXY3yYJ6Q/aVERoeUFwiDGiMOWsMs7FokXihSOaT/PMWUty/Pj60XDQndK3eAfE6A==} 802 | cpu: [arm] 803 | os: [linux] 804 | 805 | '@rollup/rollup-linux-arm-musleabihf@4.29.1': 806 | resolution: {integrity: sha512-RiWpGgbayf7LUcuSNIbahr0ys2YnEERD4gYdISA06wa0i8RALrnzflh9Wxii7zQJEB2/Eh74dX4y/sHKLWp5uQ==} 807 | cpu: [arm] 808 | os: [linux] 809 | 810 | '@rollup/rollup-linux-arm64-gnu@4.29.1': 811 | resolution: {integrity: sha512-Z80O+taYxTQITWMjm/YqNoe9d10OX6kDh8X5/rFCMuPqsKsSyDilvfg+vd3iXIqtfmp+cnfL1UrYirkaF8SBZA==} 812 | cpu: [arm64] 813 | os: [linux] 814 | 815 | '@rollup/rollup-linux-arm64-musl@4.29.1': 816 | resolution: {integrity: sha512-fOHRtF9gahwJk3QVp01a/GqS4hBEZCV1oKglVVq13kcK3NeVlS4BwIFzOHDbmKzt3i0OuHG4zfRP0YoG5OF/rA==} 817 | cpu: [arm64] 818 | os: [linux] 819 | 820 | '@rollup/rollup-linux-loongarch64-gnu@4.29.1': 821 | resolution: {integrity: sha512-5a7q3tnlbcg0OodyxcAdrrCxFi0DgXJSoOuidFUzHZ2GixZXQs6Tc3CHmlvqKAmOs5eRde+JJxeIf9DonkmYkw==} 822 | cpu: [loong64] 823 | os: [linux] 824 | 825 | '@rollup/rollup-linux-powerpc64le-gnu@4.29.1': 826 | resolution: {integrity: sha512-9b4Mg5Yfz6mRnlSPIdROcfw1BU22FQxmfjlp/CShWwO3LilKQuMISMTtAu/bxmmrE6A902W2cZJuzx8+gJ8e9w==} 827 | cpu: [ppc64] 828 | os: [linux] 829 | 830 | '@rollup/rollup-linux-riscv64-gnu@4.29.1': 831 | resolution: {integrity: sha512-G5pn0NChlbRM8OJWpJFMX4/i8OEU538uiSv0P6roZcbpe/WfhEO+AT8SHVKfp8qhDQzaz7Q+1/ixMy7hBRidnQ==} 832 | cpu: [riscv64] 833 | os: [linux] 834 | 835 | '@rollup/rollup-linux-s390x-gnu@4.29.1': 836 | resolution: {integrity: sha512-WM9lIkNdkhVwiArmLxFXpWndFGuOka4oJOZh8EP3Vb8q5lzdSCBuhjavJsw68Q9AKDGeOOIHYzYm4ZFvmWez5g==} 837 | cpu: [s390x] 838 | os: [linux] 839 | 840 | '@rollup/rollup-linux-x64-gnu@4.29.1': 841 | resolution: {integrity: sha512-87xYCwb0cPGZFoGiErT1eDcssByaLX4fc0z2nRM6eMtV9njAfEE6OW3UniAoDhX4Iq5xQVpE6qO9aJbCFumKYQ==} 842 | cpu: [x64] 843 | os: [linux] 844 | 845 | '@rollup/rollup-linux-x64-musl@4.29.1': 846 | resolution: {integrity: sha512-xufkSNppNOdVRCEC4WKvlR1FBDyqCSCpQeMMgv9ZyXqqtKBfkw1yfGMTUTs9Qsl6WQbJnsGboWCp7pJGkeMhKA==} 847 | cpu: [x64] 848 | os: [linux] 849 | 850 | '@rollup/rollup-win32-arm64-msvc@4.29.1': 851 | resolution: {integrity: sha512-F2OiJ42m77lSkizZQLuC+jiZ2cgueWQL5YC9tjo3AgaEw+KJmVxHGSyQfDUoYR9cci0lAywv2Clmckzulcq6ig==} 852 | cpu: [arm64] 853 | os: [win32] 854 | 855 | '@rollup/rollup-win32-ia32-msvc@4.29.1': 856 | resolution: {integrity: sha512-rYRe5S0FcjlOBZQHgbTKNrqxCBUmgDJem/VQTCcTnA2KCabYSWQDrytOzX7avb79cAAweNmMUb/Zw18RNd4mng==} 857 | cpu: [ia32] 858 | os: [win32] 859 | 860 | '@rollup/rollup-win32-x64-msvc@4.29.1': 861 | resolution: {integrity: sha512-+10CMg9vt1MoHj6x1pxyjPSMjHTIlqs8/tBztXvPAx24SKs9jwVnKqHJumlH/IzhaPUaj3T6T6wfZr8okdXaIg==} 862 | cpu: [x64] 863 | os: [win32] 864 | 865 | '@rushstack/node-core-library@5.10.1': 866 | resolution: {integrity: sha512-BSb/KcyBHmUQwINrgtzo6jiH0HlGFmrUy33vO6unmceuVKTEyL2q+P0fQq2oB5hvXVWOEUhxB2QvlkZluvUEmg==} 867 | peerDependencies: 868 | '@types/node': '*' 869 | peerDependenciesMeta: 870 | '@types/node': 871 | optional: true 872 | 873 | '@rushstack/rig-package@0.5.3': 874 | resolution: {integrity: sha512-olzSSjYrvCNxUFZowevC3uz8gvKr3WTpHQ7BkpjtRpA3wK+T0ybep/SRUMfr195gBzJm5gaXw0ZMgjIyHqJUow==} 875 | 876 | '@rushstack/terminal@0.14.4': 877 | resolution: {integrity: sha512-NxACqERW0PHq8Rpq1V6v5iTHEwkRGxenjEW+VWqRYQ8T9puUzgmGHmEZUaUEDHAe9Qyvp0/Ew04sAiQw9XjhJg==} 878 | peerDependencies: 879 | '@types/node': '*' 880 | peerDependenciesMeta: 881 | '@types/node': 882 | optional: true 883 | 884 | '@rushstack/ts-command-line@4.23.2': 885 | resolution: {integrity: sha512-JJ7XZX5K3ThBBva38aomgsPv1L7FV6XmSOcR6HtM7HDFZJkepqT65imw26h9ggGqMjsY0R9jcl30tzKcVj9aOQ==} 886 | 887 | '@trpc/client@11.0.0-rc.682': 888 | resolution: {integrity: sha512-zfM6t4tkbQPm/FHK85jcJjJle7FJTj9U8t/ieDzIe3X6DNo66sg6KqQpjkeTJcaj5u2hga1lmv3rc4uob/7D0g==} 889 | peerDependencies: 890 | '@trpc/server': 11.0.0-rc.682+8650a22e8 891 | typescript: '>=5.7.2' 892 | 893 | '@trpc/server@11.0.0-rc.682': 894 | resolution: {integrity: sha512-y8FhLW/UJ8SOyHByvSQW7WvCnbvYioOYhviWD+sRvqkB9f0O8/sEBPJt1mBadWaO/0tygOghkeNC9o1wAsJ8cg==} 895 | peerDependencies: 896 | typescript: '>=5.7.2' 897 | 898 | '@types/argparse@1.0.38': 899 | resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} 900 | 901 | '@types/better-sqlite3@7.6.12': 902 | resolution: {integrity: sha512-fnQmj8lELIj7BSrZQAdBMHEHX8OZLYIHXqAKT1O7tDfLxaINzf00PMjw22r3N/xXh0w/sGHlO6SVaCQ2mj78lg==} 903 | 904 | '@types/estree@1.0.6': 905 | resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} 906 | 907 | '@types/jsonwebtoken@9.0.7': 908 | resolution: {integrity: sha512-ugo316mmTYBl2g81zDFnZ7cfxlut3o+/EQdaP7J8QN2kY6lJ22hmQYCK5EHcJHbrW+dkCGSCPgbG8JtYj6qSrg==} 909 | 910 | '@types/node-forge@1.3.11': 911 | resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} 912 | 913 | '@types/node@12.20.55': 914 | resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} 915 | 916 | '@types/node@22.10.2': 917 | resolution: {integrity: sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==} 918 | 919 | '@types/stack-trace@0.0.29': 920 | resolution: {integrity: sha512-TgfOX+mGY/NyNxJLIbDWrO9DjGoVSW9+aB8H2yy1fy32jsvxijhmyJI9fDFgvz3YP4lvJaq9DzdR/M1bOgVc9g==} 921 | 922 | ajv-draft-04@1.0.0: 923 | resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==} 924 | peerDependencies: 925 | ajv: ^8.5.0 926 | peerDependenciesMeta: 927 | ajv: 928 | optional: true 929 | 930 | ajv-formats@3.0.1: 931 | resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} 932 | peerDependencies: 933 | ajv: ^8.0.0 934 | peerDependenciesMeta: 935 | ajv: 936 | optional: true 937 | 938 | ajv@6.12.6: 939 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 940 | 941 | ajv@8.12.0: 942 | resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} 943 | 944 | ajv@8.13.0: 945 | resolution: {integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==} 946 | 947 | ansi-colors@4.1.3: 948 | resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} 949 | engines: {node: '>=6'} 950 | 951 | ansi-escapes@1.4.0: 952 | resolution: {integrity: sha512-wiXutNjDUlNEDWHcYH3jtZUhd3c4/VojassD8zHdHCY13xbZy2XbW+NKQwA0tWGBVzDA9qEzYwfoSsWmviidhw==} 953 | engines: {node: '>=0.10.0'} 954 | 955 | ansi-regex@2.1.1: 956 | resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} 957 | engines: {node: '>=0.10.0'} 958 | 959 | ansi-regex@5.0.1: 960 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 961 | engines: {node: '>=8'} 962 | 963 | ansi-regex@6.1.0: 964 | resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} 965 | engines: {node: '>=12'} 966 | 967 | ansi-styles@2.2.1: 968 | resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} 969 | engines: {node: '>=0.10.0'} 970 | 971 | ansi-styles@4.3.0: 972 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 973 | engines: {node: '>=8'} 974 | 975 | ansi-styles@6.2.1: 976 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 977 | engines: {node: '>=12'} 978 | 979 | any-promise@1.3.0: 980 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} 981 | 982 | anymatch@3.1.3: 983 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 984 | engines: {node: '>= 8'} 985 | 986 | argparse@1.0.10: 987 | resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} 988 | 989 | array-union@2.1.0: 990 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 991 | engines: {node: '>=8'} 992 | 993 | asn1@0.2.6: 994 | resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} 995 | 996 | assert-plus@1.0.0: 997 | resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} 998 | engines: {node: '>=0.8'} 999 | 1000 | asynckit@0.4.0: 1001 | resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} 1002 | 1003 | aws-sign2@0.7.0: 1004 | resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} 1005 | 1006 | aws4@1.13.2: 1007 | resolution: {integrity: sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==} 1008 | 1009 | balanced-match@1.0.2: 1010 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 1011 | 1012 | bcrypt-pbkdf@1.0.2: 1013 | resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} 1014 | 1015 | better-path-resolve@1.0.0: 1016 | resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} 1017 | engines: {node: '>=4'} 1018 | 1019 | binary-extensions@2.3.0: 1020 | resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} 1021 | engines: {node: '>=8'} 1022 | 1023 | biome@0.3.3: 1024 | resolution: {integrity: sha512-4LXjrQYbn9iTXu9Y4SKT7ABzTV0WnLDHCVSd2fPUOKsy1gQ+E4xPFmlY1zcWexoi0j7fGHItlL6OWA2CZ/yYAQ==} 1025 | hasBin: true 1026 | 1027 | blake3-wasm@2.1.5: 1028 | resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==} 1029 | 1030 | bluebird@3.7.2: 1031 | resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} 1032 | 1033 | brace-expansion@1.1.11: 1034 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 1035 | 1036 | brace-expansion@2.0.1: 1037 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 1038 | 1039 | braces@3.0.3: 1040 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 1041 | engines: {node: '>=8'} 1042 | 1043 | buffer-from@1.1.2: 1044 | resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} 1045 | 1046 | builtins@5.1.0: 1047 | resolution: {integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==} 1048 | 1049 | bundle-require@5.1.0: 1050 | resolution: {integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==} 1051 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1052 | peerDependencies: 1053 | esbuild: '>=0.18' 1054 | 1055 | busboy@1.6.0: 1056 | resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} 1057 | engines: {node: '>=10.16.0'} 1058 | 1059 | bytes@3.1.2: 1060 | resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} 1061 | engines: {node: '>= 0.8'} 1062 | 1063 | cac@6.7.14: 1064 | resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} 1065 | engines: {node: '>=8'} 1066 | 1067 | caseless@0.12.0: 1068 | resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} 1069 | 1070 | chalk@1.1.3: 1071 | resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} 1072 | engines: {node: '>=0.10.0'} 1073 | 1074 | chardet@0.7.0: 1075 | resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} 1076 | 1077 | chokidar@3.6.0: 1078 | resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} 1079 | engines: {node: '>= 8.10.0'} 1080 | 1081 | chokidar@4.0.3: 1082 | resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} 1083 | engines: {node: '>= 14.16.0'} 1084 | 1085 | ci-info@3.9.0: 1086 | resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} 1087 | engines: {node: '>=8'} 1088 | 1089 | cli-cursor@1.0.2: 1090 | resolution: {integrity: sha512-25tABq090YNKkF6JH7lcwO0zFJTRke4Jcq9iX2nr/Sz0Cjjv4gckmwlW6Ty/aoyFd6z3ysR2hMGC2GFugmBo6A==} 1091 | engines: {node: '>=0.10.0'} 1092 | 1093 | cli-width@1.1.1: 1094 | resolution: {integrity: sha512-eMU2akIeEIkCxGXUNmDnJq1KzOIiPnJ+rKqRe6hcxE3vIOPvpMrBYOn/Bl7zNlYJj/zQxXquAnozHUCf9Whnsg==} 1095 | 1096 | code-point-at@1.1.0: 1097 | resolution: {integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==} 1098 | engines: {node: '>=0.10.0'} 1099 | 1100 | color-convert@2.0.1: 1101 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 1102 | engines: {node: '>=7.0.0'} 1103 | 1104 | color-name@1.1.4: 1105 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 1106 | 1107 | combined-stream@1.0.8: 1108 | resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} 1109 | engines: {node: '>= 0.8'} 1110 | 1111 | commander@2.20.3: 1112 | resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} 1113 | 1114 | commander@4.1.1: 1115 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 1116 | engines: {node: '>= 6'} 1117 | 1118 | concat-map@0.0.1: 1119 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 1120 | 1121 | consola@3.3.3: 1122 | resolution: {integrity: sha512-Qil5KwghMzlqd51UXM0b6fyaGHtOC22scxrwrz4A2882LyUMwQjnvaedN1HAeXzphspQ6CpHkzMAWxBTUruDLg==} 1123 | engines: {node: ^14.18.0 || >=16.10.0} 1124 | 1125 | content-type@1.0.5: 1126 | resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} 1127 | engines: {node: '>= 0.6'} 1128 | 1129 | cookie@0.4.2: 1130 | resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} 1131 | engines: {node: '>= 0.6'} 1132 | 1133 | core-js@2.6.12: 1134 | resolution: {integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==} 1135 | deprecated: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js. 1136 | 1137 | core-util-is@1.0.2: 1138 | resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} 1139 | 1140 | cron-schedule@3.0.6: 1141 | resolution: {integrity: sha512-izfGgKyzzIyLaeb1EtZ3KbglkS6AKp9cv7LxmiyoOu+fXfol1tQDC0Cof0enVZGNtudTHW+3lfuW9ZkLQss4Wg==} 1142 | 1143 | cross-spawn@7.0.6: 1144 | resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} 1145 | engines: {node: '>= 8'} 1146 | 1147 | dashdash@1.14.1: 1148 | resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} 1149 | engines: {node: '>=0.10'} 1150 | 1151 | debug@4.4.0: 1152 | resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} 1153 | engines: {node: '>=6.0'} 1154 | peerDependencies: 1155 | supports-color: '*' 1156 | peerDependenciesMeta: 1157 | supports-color: 1158 | optional: true 1159 | 1160 | delayed-stream@1.0.0: 1161 | resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} 1162 | engines: {node: '>=0.4.0'} 1163 | 1164 | depd@2.0.0: 1165 | resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} 1166 | engines: {node: '>= 0.8'} 1167 | 1168 | detect-indent@6.1.0: 1169 | resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} 1170 | engines: {node: '>=8'} 1171 | 1172 | dir-glob@3.0.1: 1173 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 1174 | engines: {node: '>=8'} 1175 | 1176 | dotenv@10.0.0: 1177 | resolution: {integrity: sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==} 1178 | engines: {node: '>=10'} 1179 | 1180 | earlgrey-runtime@0.1.2: 1181 | resolution: {integrity: sha512-T4qoScXi5TwALDv8nlGTvOuCT8jXcKcxtO8qVdqv46IA2GHJfQzwoBPbkOmORnyhu3A98cVVuhWLsM2CzPljJg==} 1182 | 1183 | eastasianwidth@0.2.0: 1184 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 1185 | 1186 | ecc-jsbn@0.1.2: 1187 | resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} 1188 | 1189 | editor@1.0.0: 1190 | resolution: {integrity: sha512-SoRmbGStwNYHgKfjOrX2L0mUvp9bUVv0uPppZSOMAntEbcFtoC3MKF5b3T6HQPXKIV+QGY3xPO3JK5it5lVkuw==} 1191 | 1192 | emoji-regex@8.0.0: 1193 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 1194 | 1195 | emoji-regex@9.2.2: 1196 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 1197 | 1198 | enquirer@2.4.1: 1199 | resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} 1200 | engines: {node: '>=8.6'} 1201 | 1202 | esbuild@0.16.3: 1203 | resolution: {integrity: sha512-71f7EjPWTiSguen8X/kxEpkAS7BFHwtQKisCDDV3Y4GLGWBaoSCyD5uXkaUew6JDzA9FEN1W23mdnSwW9kqCeg==} 1204 | engines: {node: '>=12'} 1205 | hasBin: true 1206 | 1207 | esbuild@0.23.1: 1208 | resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} 1209 | engines: {node: '>=18'} 1210 | hasBin: true 1211 | 1212 | esbuild@0.24.2: 1213 | resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} 1214 | engines: {node: '>=18'} 1215 | hasBin: true 1216 | 1217 | escape-string-regexp@1.0.5: 1218 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 1219 | engines: {node: '>=0.8.0'} 1220 | 1221 | escape-string-regexp@4.0.0: 1222 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 1223 | engines: {node: '>=10'} 1224 | 1225 | esprima@4.0.1: 1226 | resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} 1227 | engines: {node: '>=4'} 1228 | hasBin: true 1229 | 1230 | estree-walker@0.6.1: 1231 | resolution: {integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==} 1232 | 1233 | execa@6.1.0: 1234 | resolution: {integrity: sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==} 1235 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1236 | 1237 | exit-hook@1.1.1: 1238 | resolution: {integrity: sha512-MsG3prOVw1WtLXAZbM3KiYtooKR1LvxHh3VHsVtIy0uiUu8usxgB/94DP2HxtD/661lLdB6yzQ09lGJSQr6nkg==} 1239 | engines: {node: '>=0.10.0'} 1240 | 1241 | extend@3.0.2: 1242 | resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} 1243 | 1244 | extendable-error@0.1.7: 1245 | resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} 1246 | 1247 | external-editor@3.1.0: 1248 | resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} 1249 | engines: {node: '>=4'} 1250 | 1251 | extsprintf@1.3.0: 1252 | resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} 1253 | engines: {'0': node >=0.6.0} 1254 | 1255 | fast-deep-equal@3.1.3: 1256 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 1257 | 1258 | fast-glob@3.3.2: 1259 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} 1260 | engines: {node: '>=8.6.0'} 1261 | 1262 | fast-json-stable-stringify@2.1.0: 1263 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 1264 | 1265 | fastq@1.18.0: 1266 | resolution: {integrity: sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==} 1267 | 1268 | fdir@6.4.2: 1269 | resolution: {integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==} 1270 | peerDependencies: 1271 | picomatch: ^3 || ^4 1272 | peerDependenciesMeta: 1273 | picomatch: 1274 | optional: true 1275 | 1276 | figures@1.7.0: 1277 | resolution: {integrity: sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==} 1278 | engines: {node: '>=0.10.0'} 1279 | 1280 | fill-range@7.1.1: 1281 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 1282 | engines: {node: '>=8'} 1283 | 1284 | find-up@4.1.0: 1285 | resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} 1286 | engines: {node: '>=8'} 1287 | 1288 | foreground-child@3.3.0: 1289 | resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} 1290 | engines: {node: '>=14'} 1291 | 1292 | forever-agent@0.6.1: 1293 | resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} 1294 | 1295 | form-data@2.3.3: 1296 | resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} 1297 | engines: {node: '>= 0.12'} 1298 | 1299 | fs-extra@0.26.7: 1300 | resolution: {integrity: sha512-waKu+1KumRhYv8D8gMRCKJGAMI9pRnPuEb1mvgYD0f7wBscg+h6bW4FDTmEZhB9VKxvoTtxW+Y7bnIlB7zja6Q==} 1301 | 1302 | fs-extra@7.0.1: 1303 | resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} 1304 | engines: {node: '>=6 <7 || >=8'} 1305 | 1306 | fs-extra@8.1.0: 1307 | resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} 1308 | engines: {node: '>=6 <7 || >=8'} 1309 | 1310 | fs-promise@0.5.0: 1311 | resolution: {integrity: sha512-Y+4F4ujhEcayCJt6JmzcOun9MYGQwz+bVUiuBmTkJImhBHKpBvmVPZR9wtfiF7k3ffwAOAuurygQe+cPLSFQhw==} 1312 | deprecated: Use mz or fs-extra^3.0 with Promise Support 1313 | 1314 | fs.realpath@1.0.0: 1315 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 1316 | 1317 | fsevents@2.3.3: 1318 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 1319 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1320 | os: [darwin] 1321 | 1322 | function-bind@1.1.2: 1323 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 1324 | 1325 | get-stream@6.0.1: 1326 | resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} 1327 | engines: {node: '>=10'} 1328 | 1329 | get-tsconfig@4.8.1: 1330 | resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} 1331 | 1332 | getpass@0.1.7: 1333 | resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} 1334 | 1335 | glob-parent@5.1.2: 1336 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1337 | engines: {node: '>= 6'} 1338 | 1339 | glob@10.4.5: 1340 | resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} 1341 | hasBin: true 1342 | 1343 | glob@7.2.3: 1344 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 1345 | deprecated: Glob versions prior to v9 are no longer supported 1346 | 1347 | globby@11.1.0: 1348 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 1349 | engines: {node: '>=10'} 1350 | 1351 | graceful-fs@4.2.11: 1352 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 1353 | 1354 | har-schema@2.0.0: 1355 | resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==} 1356 | engines: {node: '>=4'} 1357 | 1358 | har-validator@5.1.5: 1359 | resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==} 1360 | engines: {node: '>=6'} 1361 | deprecated: this library is no longer supported 1362 | 1363 | has-ansi@2.0.0: 1364 | resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} 1365 | engines: {node: '>=0.10.0'} 1366 | 1367 | has-flag@4.0.0: 1368 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1369 | engines: {node: '>=8'} 1370 | 1371 | hasown@2.0.2: 1372 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 1373 | engines: {node: '>= 0.4'} 1374 | 1375 | html-rewriter-wasm@0.4.1: 1376 | resolution: {integrity: sha512-lNovG8CMCCmcVB1Q7xggMSf7tqPCijZXaH4gL6iE8BFghdQCbaY5Met9i1x2Ex8m/cZHDUtXK9H6/znKamRP8Q==} 1377 | 1378 | http-cache-semantics@4.1.1: 1379 | resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} 1380 | 1381 | http-errors@2.0.0: 1382 | resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} 1383 | engines: {node: '>= 0.8'} 1384 | 1385 | http-signature@1.2.0: 1386 | resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} 1387 | engines: {node: '>=0.8', npm: '>=1.3.7'} 1388 | 1389 | human-id@1.0.2: 1390 | resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} 1391 | 1392 | human-signals@3.0.1: 1393 | resolution: {integrity: sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==} 1394 | engines: {node: '>=12.20.0'} 1395 | 1396 | iconv-lite@0.4.24: 1397 | resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} 1398 | engines: {node: '>=0.10.0'} 1399 | 1400 | iconv-lite@0.6.3: 1401 | resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} 1402 | engines: {node: '>=0.10.0'} 1403 | 1404 | ignore@5.3.2: 1405 | resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} 1406 | engines: {node: '>= 4'} 1407 | 1408 | import-lazy@4.0.0: 1409 | resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} 1410 | engines: {node: '>=8'} 1411 | 1412 | inflight@1.0.6: 1413 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 1414 | deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. 1415 | 1416 | inherits@2.0.4: 1417 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1418 | 1419 | inquirer-promise@0.0.3: 1420 | resolution: {integrity: sha512-82CQX586JAV9GAgU9yXZsMDs+NorjA0nLhkfFx9+PReyOnuoHRbHrC1Z90sS95bFJI1Tm1gzMObuE0HabzkJpg==} 1421 | 1422 | inquirer@0.11.4: 1423 | resolution: {integrity: sha512-QR+2TW90jnKk9LUUtbcA3yQXKt2rDEKMh6+BAZQIeumtzHexnwVLdPakSslGijXYLJCzFv7GMXbFCn0pA00EUw==} 1424 | 1425 | is-binary-path@2.1.0: 1426 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 1427 | engines: {node: '>=8'} 1428 | 1429 | is-core-module@2.16.1: 1430 | resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} 1431 | engines: {node: '>= 0.4'} 1432 | 1433 | is-extglob@2.1.1: 1434 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1435 | engines: {node: '>=0.10.0'} 1436 | 1437 | is-fullwidth-code-point@1.0.0: 1438 | resolution: {integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==} 1439 | engines: {node: '>=0.10.0'} 1440 | 1441 | is-fullwidth-code-point@3.0.0: 1442 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 1443 | engines: {node: '>=8'} 1444 | 1445 | is-glob@4.0.3: 1446 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1447 | engines: {node: '>=0.10.0'} 1448 | 1449 | is-number@7.0.0: 1450 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1451 | engines: {node: '>=0.12.0'} 1452 | 1453 | is-stream@3.0.0: 1454 | resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} 1455 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1456 | 1457 | is-subdir@1.2.0: 1458 | resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} 1459 | engines: {node: '>=4'} 1460 | 1461 | is-typedarray@1.0.0: 1462 | resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} 1463 | 1464 | is-windows@1.0.2: 1465 | resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} 1466 | engines: {node: '>=0.10.0'} 1467 | 1468 | isexe@2.0.0: 1469 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1470 | 1471 | isstream@0.1.2: 1472 | resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} 1473 | 1474 | jackspeak@3.4.3: 1475 | resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} 1476 | 1477 | jju@1.4.0: 1478 | resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} 1479 | 1480 | joycon@3.1.1: 1481 | resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} 1482 | engines: {node: '>=10'} 1483 | 1484 | js-yaml@3.14.1: 1485 | resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} 1486 | hasBin: true 1487 | 1488 | jsbn@0.1.1: 1489 | resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} 1490 | 1491 | json-schema-traverse@0.4.1: 1492 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 1493 | 1494 | json-schema-traverse@1.0.0: 1495 | resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} 1496 | 1497 | json-schema@0.4.0: 1498 | resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} 1499 | 1500 | json-stringify-safe@5.0.1: 1501 | resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} 1502 | 1503 | jsonfile@2.4.0: 1504 | resolution: {integrity: sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==} 1505 | 1506 | jsonfile@4.0.0: 1507 | resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} 1508 | 1509 | jsprim@1.4.2: 1510 | resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} 1511 | engines: {node: '>=0.6.0'} 1512 | 1513 | kaiser@0.0.4: 1514 | resolution: {integrity: sha512-m8ju+rmBqvclZmyrOXgGGhOYSjKJK6RN1NhqEltemY87UqZOxEkizg9TOy1vQSyJ01Wx6SAPuuN0iO2Mgislvw==} 1515 | 1516 | klaw@1.3.1: 1517 | resolution: {integrity: sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==} 1518 | 1519 | kleur@4.1.5: 1520 | resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} 1521 | engines: {node: '>=6'} 1522 | 1523 | lilconfig@3.1.3: 1524 | resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} 1525 | engines: {node: '>=14'} 1526 | 1527 | lines-and-columns@1.2.4: 1528 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 1529 | 1530 | load-tsconfig@0.2.5: 1531 | resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} 1532 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1533 | 1534 | locate-path@5.0.0: 1535 | resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} 1536 | engines: {node: '>=8'} 1537 | 1538 | lodash.sortby@4.7.0: 1539 | resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} 1540 | 1541 | lodash.startcase@4.4.0: 1542 | resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} 1543 | 1544 | lodash@3.10.1: 1545 | resolution: {integrity: sha512-9mDDwqVIma6OZX79ZlDACZl8sBm0TEnkf99zV3iMA4GzkIT/9hiqP5mY0HoT1iNLCrKc/R1HByV+yJfRWVJryQ==} 1546 | 1547 | lodash@4.17.21: 1548 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 1549 | 1550 | lru-cache@10.4.3: 1551 | resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} 1552 | 1553 | lru-cache@6.0.0: 1554 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 1555 | engines: {node: '>=10'} 1556 | 1557 | magic-string@0.25.9: 1558 | resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} 1559 | 1560 | merge-stream@2.0.0: 1561 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 1562 | 1563 | merge2@1.4.1: 1564 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1565 | engines: {node: '>= 8'} 1566 | 1567 | micromatch@4.0.8: 1568 | resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} 1569 | engines: {node: '>=8.6'} 1570 | 1571 | mime-db@1.52.0: 1572 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} 1573 | engines: {node: '>= 0.6'} 1574 | 1575 | mime-types@2.1.35: 1576 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} 1577 | engines: {node: '>= 0.6'} 1578 | 1579 | mime@3.0.0: 1580 | resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} 1581 | engines: {node: '>=10.0.0'} 1582 | hasBin: true 1583 | 1584 | mimic-fn@4.0.0: 1585 | resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} 1586 | engines: {node: '>=12'} 1587 | 1588 | miniflare@2.14.4: 1589 | resolution: {integrity: sha512-sMV8oJRWwqxPsgg7EOMizkv7pLxd1HOzqv055PcsM4kcRECPhnJSaCtAUc+ZfpOgR4musgfooM6kQo8o+ifZ+w==} 1590 | engines: {node: '>=16.13'} 1591 | hasBin: true 1592 | peerDependencies: 1593 | '@miniflare/storage-redis': 2.14.4 1594 | cron-schedule: ^3.0.4 1595 | ioredis: ^4.27.9 1596 | peerDependenciesMeta: 1597 | '@miniflare/storage-redis': 1598 | optional: true 1599 | cron-schedule: 1600 | optional: true 1601 | ioredis: 1602 | optional: true 1603 | 1604 | minimatch@3.0.8: 1605 | resolution: {integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==} 1606 | 1607 | minimatch@3.1.2: 1608 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1609 | 1610 | minimatch@9.0.5: 1611 | resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} 1612 | engines: {node: '>=16 || 14 >=14.17'} 1613 | 1614 | minipass@7.1.2: 1615 | resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} 1616 | engines: {node: '>=16 || 14 >=14.17'} 1617 | 1618 | mri@1.2.0: 1619 | resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} 1620 | engines: {node: '>=4'} 1621 | 1622 | ms@2.1.3: 1623 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 1624 | 1625 | mustache@4.2.0: 1626 | resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==} 1627 | hasBin: true 1628 | 1629 | mute-stream@0.0.5: 1630 | resolution: {integrity: sha512-EbrziT4s8cWPmzr47eYVW3wimS4HsvlnV5ri1xw1aR6JQo/OrJX5rkl32K/QQHdxeabJETtfeaROGhd8W7uBgg==} 1631 | 1632 | mz@2.7.0: 1633 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 1634 | 1635 | nanoid@3.3.8: 1636 | resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} 1637 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1638 | hasBin: true 1639 | 1640 | node-forge@1.3.1: 1641 | resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} 1642 | engines: {node: '>= 6.13.0'} 1643 | 1644 | normalize-path@3.0.0: 1645 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 1646 | engines: {node: '>=0.10.0'} 1647 | 1648 | npm-run-path@5.3.0: 1649 | resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} 1650 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1651 | 1652 | npx-import@1.1.4: 1653 | resolution: {integrity: sha512-3ShymTWOgqGyNlh5lMJAejLuIv3W1K3fbI5Ewc6YErZU3Sp0PqsNs8UIU1O8z5+KVl/Du5ag56Gza9vdorGEoA==} 1654 | 1655 | number-is-nan@1.0.1: 1656 | resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==} 1657 | engines: {node: '>=0.10.0'} 1658 | 1659 | oauth-sign@0.9.0: 1660 | resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} 1661 | 1662 | object-assign@4.1.1: 1663 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 1664 | engines: {node: '>=0.10.0'} 1665 | 1666 | once@1.4.0: 1667 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1668 | 1669 | onetime@1.1.0: 1670 | resolution: {integrity: sha512-GZ+g4jayMqzCRMgB2sol7GiCLjKfS1PINkjmx8spcKce1LiVqcbQreXwqs2YAFXC6R03VIG28ZS31t8M866v6A==} 1671 | engines: {node: '>=0.10.0'} 1672 | 1673 | onetime@6.0.0: 1674 | resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} 1675 | engines: {node: '>=12'} 1676 | 1677 | os-homedir@1.0.2: 1678 | resolution: {integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==} 1679 | engines: {node: '>=0.10.0'} 1680 | 1681 | os-tmpdir@1.0.2: 1682 | resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} 1683 | engines: {node: '>=0.10.0'} 1684 | 1685 | outdent@0.5.0: 1686 | resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} 1687 | 1688 | p-filter@2.1.0: 1689 | resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} 1690 | engines: {node: '>=8'} 1691 | 1692 | p-limit@2.3.0: 1693 | resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} 1694 | engines: {node: '>=6'} 1695 | 1696 | p-locate@4.1.0: 1697 | resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} 1698 | engines: {node: '>=8'} 1699 | 1700 | p-map@2.1.0: 1701 | resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} 1702 | engines: {node: '>=6'} 1703 | 1704 | p-try@2.2.0: 1705 | resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} 1706 | engines: {node: '>=6'} 1707 | 1708 | package-json-from-dist@1.0.1: 1709 | resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} 1710 | 1711 | package-manager-detector@0.2.8: 1712 | resolution: {integrity: sha512-ts9KSdroZisdvKMWVAVCXiKqnqNfXz4+IbrBG8/BWx/TR5le+jfenvoBuIZ6UWM9nz47W7AbD9qYfAwfWMIwzA==} 1713 | 1714 | parse-package-name@1.0.0: 1715 | resolution: {integrity: sha512-kBeTUtcj+SkyfaW4+KBe0HtsloBJ/mKTPoxpVdA57GZiPerREsUWJOhVj9anXweFiJkm5y8FG1sxFZkZ0SN6wg==} 1716 | 1717 | path-exists@4.0.0: 1718 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1719 | engines: {node: '>=8'} 1720 | 1721 | path-is-absolute@1.0.1: 1722 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 1723 | engines: {node: '>=0.10.0'} 1724 | 1725 | path-key@3.1.1: 1726 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1727 | engines: {node: '>=8'} 1728 | 1729 | path-key@4.0.0: 1730 | resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} 1731 | engines: {node: '>=12'} 1732 | 1733 | path-parse@1.0.7: 1734 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1735 | 1736 | path-scurry@1.11.1: 1737 | resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} 1738 | engines: {node: '>=16 || 14 >=14.18'} 1739 | 1740 | path-to-regexp@6.3.0: 1741 | resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} 1742 | 1743 | path-type@4.0.0: 1744 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 1745 | engines: {node: '>=8'} 1746 | 1747 | performance-now@2.1.0: 1748 | resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} 1749 | 1750 | picocolors@1.1.1: 1751 | resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 1752 | 1753 | picomatch@2.3.1: 1754 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1755 | engines: {node: '>=8.6'} 1756 | 1757 | picomatch@4.0.2: 1758 | resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} 1759 | engines: {node: '>=12'} 1760 | 1761 | pify@4.0.1: 1762 | resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} 1763 | engines: {node: '>=6'} 1764 | 1765 | pirates@4.0.6: 1766 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} 1767 | engines: {node: '>= 6'} 1768 | 1769 | postcss-load-config@6.0.1: 1770 | resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} 1771 | engines: {node: '>= 18'} 1772 | peerDependencies: 1773 | jiti: '>=1.21.0' 1774 | postcss: '>=8.0.9' 1775 | tsx: ^4.8.1 1776 | yaml: ^2.4.2 1777 | peerDependenciesMeta: 1778 | jiti: 1779 | optional: true 1780 | postcss: 1781 | optional: true 1782 | tsx: 1783 | optional: true 1784 | yaml: 1785 | optional: true 1786 | 1787 | prettier@2.8.8: 1788 | resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} 1789 | engines: {node: '>=10.13.0'} 1790 | hasBin: true 1791 | 1792 | psl@1.15.0: 1793 | resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} 1794 | 1795 | punycode@2.3.1: 1796 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 1797 | engines: {node: '>=6'} 1798 | 1799 | qs@6.5.3: 1800 | resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} 1801 | engines: {node: '>=0.6'} 1802 | 1803 | queue-microtask@1.2.3: 1804 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1805 | 1806 | raw-body@3.0.0: 1807 | resolution: {integrity: sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==} 1808 | engines: {node: '>= 0.8'} 1809 | 1810 | read-yaml-file@1.1.0: 1811 | resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} 1812 | engines: {node: '>=6'} 1813 | 1814 | readdirp@3.6.0: 1815 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 1816 | engines: {node: '>=8.10.0'} 1817 | 1818 | readdirp@4.0.2: 1819 | resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==} 1820 | engines: {node: '>= 14.16.0'} 1821 | 1822 | readline2@1.0.1: 1823 | resolution: {integrity: sha512-8/td4MmwUB6PkZUbV25uKz7dfrmjYWxsW8DVfibWdlHRk/l/DfHKn4pU+dfcoGLFgWOdyGCzINRQD7jn+Bv+/g==} 1824 | 1825 | regenerator-runtime@0.14.1: 1826 | resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} 1827 | 1828 | regenerator-runtime@0.9.6: 1829 | resolution: {integrity: sha512-D0Y/JJ4VhusyMOd/o25a3jdUqN/bC85EFsaoL9Oqmy/O4efCh+xhp7yj2EEOsj974qvMkcW8AwUzJ1jB/MbxCw==} 1830 | 1831 | request-promise@3.0.0: 1832 | resolution: {integrity: sha512-wVGUX+BoKxYsavTA72i6qHcyLbjzM4LR4y/AmDCqlbuMAursZdDWO7PmgbGAUvD2SeEJ5iB99VSq/U51i/DNbw==} 1833 | engines: {node: '>=0.10.0'} 1834 | deprecated: request-promise has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142 1835 | 1836 | request@2.88.2: 1837 | resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==} 1838 | engines: {node: '>= 6'} 1839 | deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 1840 | 1841 | require-from-string@2.0.2: 1842 | resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} 1843 | engines: {node: '>=0.10.0'} 1844 | 1845 | resolve-from@5.0.0: 1846 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} 1847 | engines: {node: '>=8'} 1848 | 1849 | resolve-pkg-maps@1.0.0: 1850 | resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} 1851 | 1852 | resolve@1.22.10: 1853 | resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} 1854 | engines: {node: '>= 0.4'} 1855 | hasBin: true 1856 | 1857 | restore-cursor@1.0.1: 1858 | resolution: {integrity: sha512-reSjH4HuiFlxlaBaFCiS6O76ZGG2ygKoSlCsipKdaZuKSPx/+bt9mULkn4l0asVzbEfQQmXRg6Wp6gv6m0wElw==} 1859 | engines: {node: '>=0.10.0'} 1860 | 1861 | reusify@1.0.4: 1862 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1863 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1864 | 1865 | rimraf@2.7.1: 1866 | resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} 1867 | deprecated: Rimraf versions prior to v4 are no longer supported 1868 | hasBin: true 1869 | 1870 | rollup-plugin-inject@3.0.2: 1871 | resolution: {integrity: sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==} 1872 | deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-inject. 1873 | 1874 | rollup-plugin-node-polyfills@0.2.1: 1875 | resolution: {integrity: sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA==} 1876 | 1877 | rollup-pluginutils@2.8.2: 1878 | resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==} 1879 | 1880 | rollup@4.29.1: 1881 | resolution: {integrity: sha512-RaJ45M/kmJUzSWDs1Nnd5DdV4eerC98idtUOVr6FfKcgxqvjwHmxc5upLF9qZU9EpsVzzhleFahrT3shLuJzIw==} 1882 | engines: {node: '>=18.0.0', npm: '>=8.0.0'} 1883 | hasBin: true 1884 | 1885 | run-async@0.1.0: 1886 | resolution: {integrity: sha512-qOX+w+IxFgpUpJfkv2oGN0+ExPs68F4sZHfaRRx4dDexAQkG83atugKVEylyT5ARees3HBbfmuvnjbrd8j9Wjw==} 1887 | 1888 | run-parallel@1.2.0: 1889 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1890 | 1891 | rx-lite@3.1.2: 1892 | resolution: {integrity: sha512-1I1+G2gteLB8Tkt8YI1sJvSIfa0lWuRtC8GjvtyPBcLSF5jBCCJJqKrpER5JU5r6Bhe+i9/pK3VMuUcXu0kdwQ==} 1893 | 1894 | safe-buffer@5.2.1: 1895 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 1896 | 1897 | safer-buffer@2.1.2: 1898 | resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 1899 | 1900 | selfsigned@2.4.1: 1901 | resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} 1902 | engines: {node: '>=10'} 1903 | 1904 | semiver@1.1.0: 1905 | resolution: {integrity: sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg==} 1906 | engines: {node: '>=6'} 1907 | 1908 | semver@7.5.4: 1909 | resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} 1910 | engines: {node: '>=10'} 1911 | hasBin: true 1912 | 1913 | set-cookie-parser@2.7.1: 1914 | resolution: {integrity: sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==} 1915 | 1916 | setprototypeof@1.2.0: 1917 | resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} 1918 | 1919 | shebang-command@2.0.0: 1920 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1921 | engines: {node: '>=8'} 1922 | 1923 | shebang-regex@3.0.0: 1924 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1925 | engines: {node: '>=8'} 1926 | 1927 | signal-exit@3.0.7: 1928 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 1929 | 1930 | signal-exit@4.1.0: 1931 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 1932 | engines: {node: '>=14'} 1933 | 1934 | slash@3.0.0: 1935 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 1936 | engines: {node: '>=8'} 1937 | 1938 | source-map-support@0.5.21: 1939 | resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} 1940 | 1941 | source-map@0.6.1: 1942 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 1943 | engines: {node: '>=0.10.0'} 1944 | 1945 | source-map@0.7.4: 1946 | resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} 1947 | engines: {node: '>= 8'} 1948 | 1949 | source-map@0.8.0-beta.0: 1950 | resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} 1951 | engines: {node: '>= 8'} 1952 | 1953 | sourcemap-codec@1.4.8: 1954 | resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} 1955 | deprecated: Please use @jridgewell/sourcemap-codec instead 1956 | 1957 | spawndamnit@3.0.1: 1958 | resolution: {integrity: sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg==} 1959 | 1960 | sprintf-js@1.0.3: 1961 | resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} 1962 | 1963 | sshpk@1.18.0: 1964 | resolution: {integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==} 1965 | engines: {node: '>=0.10.0'} 1966 | hasBin: true 1967 | 1968 | stack-trace@0.0.10: 1969 | resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} 1970 | 1971 | statuses@2.0.1: 1972 | resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} 1973 | engines: {node: '>= 0.8'} 1974 | 1975 | streamsearch@1.1.0: 1976 | resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} 1977 | engines: {node: '>=10.0.0'} 1978 | 1979 | string-argv@0.3.2: 1980 | resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} 1981 | engines: {node: '>=0.6.19'} 1982 | 1983 | string-width@1.0.2: 1984 | resolution: {integrity: sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==} 1985 | engines: {node: '>=0.10.0'} 1986 | 1987 | string-width@4.2.3: 1988 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 1989 | engines: {node: '>=8'} 1990 | 1991 | string-width@5.1.2: 1992 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 1993 | engines: {node: '>=12'} 1994 | 1995 | strip-ansi@3.0.1: 1996 | resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} 1997 | engines: {node: '>=0.10.0'} 1998 | 1999 | strip-ansi@6.0.1: 2000 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 2001 | engines: {node: '>=8'} 2002 | 2003 | strip-ansi@7.1.0: 2004 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 2005 | engines: {node: '>=12'} 2006 | 2007 | strip-bom@3.0.0: 2008 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} 2009 | engines: {node: '>=4'} 2010 | 2011 | strip-final-newline@3.0.0: 2012 | resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} 2013 | engines: {node: '>=12'} 2014 | 2015 | strip-json-comments@3.1.1: 2016 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 2017 | engines: {node: '>=8'} 2018 | 2019 | sucrase@3.35.0: 2020 | resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} 2021 | engines: {node: '>=16 || 14 >=14.17'} 2022 | hasBin: true 2023 | 2024 | supports-color@2.0.0: 2025 | resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} 2026 | engines: {node: '>=0.8.0'} 2027 | 2028 | supports-color@8.1.1: 2029 | resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} 2030 | engines: {node: '>=10'} 2031 | 2032 | supports-preserve-symlinks-flag@1.0.0: 2033 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 2034 | engines: {node: '>= 0.4'} 2035 | 2036 | term-size@2.2.1: 2037 | resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} 2038 | engines: {node: '>=8'} 2039 | 2040 | thenify-all@1.6.0: 2041 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} 2042 | engines: {node: '>=0.8'} 2043 | 2044 | thenify@3.3.1: 2045 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 2046 | 2047 | through@2.3.8: 2048 | resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} 2049 | 2050 | tinyexec@0.3.2: 2051 | resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} 2052 | 2053 | tinyglobby@0.2.10: 2054 | resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==} 2055 | engines: {node: '>=12.0.0'} 2056 | 2057 | tmp@0.0.33: 2058 | resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} 2059 | engines: {node: '>=0.6.0'} 2060 | 2061 | to-regex-range@5.0.1: 2062 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 2063 | engines: {node: '>=8.0'} 2064 | 2065 | toidentifier@1.0.1: 2066 | resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} 2067 | engines: {node: '>=0.6'} 2068 | 2069 | tough-cookie@2.5.0: 2070 | resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} 2071 | engines: {node: '>=0.8'} 2072 | 2073 | tr46@1.0.1: 2074 | resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} 2075 | 2076 | tree-kill@1.2.2: 2077 | resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} 2078 | hasBin: true 2079 | 2080 | ts-interface-checker@0.1.13: 2081 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 2082 | 2083 | tsup@8.3.5: 2084 | resolution: {integrity: sha512-Tunf6r6m6tnZsG9GYWndg0z8dEV7fD733VBFzFJ5Vcm1FtlXB8xBD/rtrBi2a3YKEV7hHtxiZtW5EAVADoe1pA==} 2085 | engines: {node: '>=18'} 2086 | hasBin: true 2087 | peerDependencies: 2088 | '@microsoft/api-extractor': ^7.36.0 2089 | '@swc/core': ^1 2090 | postcss: ^8.4.12 2091 | typescript: '>=4.5.0' 2092 | peerDependenciesMeta: 2093 | '@microsoft/api-extractor': 2094 | optional: true 2095 | '@swc/core': 2096 | optional: true 2097 | postcss: 2098 | optional: true 2099 | typescript: 2100 | optional: true 2101 | 2102 | tsx@4.19.2: 2103 | resolution: {integrity: sha512-pOUl6Vo2LUq/bSa8S5q7b91cgNSjctn9ugq/+Mvow99qW6x/UZYwzxy/3NmqoT66eHYfCVvFvACC58UBPFf28g==} 2104 | engines: {node: '>=18.0.0'} 2105 | hasBin: true 2106 | 2107 | tunnel-agent@0.6.0: 2108 | resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} 2109 | 2110 | turbo-darwin-64@2.3.3: 2111 | resolution: {integrity: sha512-bxX82xe6du/3rPmm4aCC5RdEilIN99VUld4HkFQuw+mvFg6darNBuQxyWSHZTtc25XgYjQrjsV05888w1grpaA==} 2112 | cpu: [x64] 2113 | os: [darwin] 2114 | 2115 | turbo-darwin-arm64@2.3.3: 2116 | resolution: {integrity: sha512-DYbQwa3NsAuWkCUYVzfOUBbSUBVQzH5HWUFy2Kgi3fGjIWVZOFk86ss+xsWu//rlEAfYwEmopigsPYSmW4X15A==} 2117 | cpu: [arm64] 2118 | os: [darwin] 2119 | 2120 | turbo-linux-64@2.3.3: 2121 | resolution: {integrity: sha512-eHj9OIB0dFaP6BxB88jSuaCLsOQSYWBgmhy2ErCu6D2GG6xW3b6e2UWHl/1Ho9FsTg4uVgo4DB9wGsKa5erjUA==} 2122 | cpu: [x64] 2123 | os: [linux] 2124 | 2125 | turbo-linux-arm64@2.3.3: 2126 | resolution: {integrity: sha512-NmDE/NjZoDj1UWBhMtOPmqFLEBKhzGS61KObfrDEbXvU3lekwHeoPvAMfcovzswzch+kN2DrtbNIlz+/rp8OCg==} 2127 | cpu: [arm64] 2128 | os: [linux] 2129 | 2130 | turbo-windows-64@2.3.3: 2131 | resolution: {integrity: sha512-O2+BS4QqjK3dOERscXqv7N2GXNcqHr9hXumkMxDj/oGx9oCatIwnnwx34UmzodloSnJpgSqjl8iRWiY65SmYoQ==} 2132 | cpu: [x64] 2133 | os: [win32] 2134 | 2135 | turbo-windows-arm64@2.3.3: 2136 | resolution: {integrity: sha512-dW4ZK1r6XLPNYLIKjC4o87HxYidtRRcBeo/hZ9Wng2XM/MqqYkAyzJXJGgRMsc0MMEN9z4+ZIfnSNBrA0b08ag==} 2137 | cpu: [arm64] 2138 | os: [win32] 2139 | 2140 | turbo@2.3.3: 2141 | resolution: {integrity: sha512-DUHWQAcC8BTiUZDRzAYGvpSpGLiaOQPfYXlCieQbwUvmml/LRGIe3raKdrOPOoiX0DYlzxs2nH6BoWJoZrj8hA==} 2142 | hasBin: true 2143 | 2144 | tweetnacl@0.14.5: 2145 | resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} 2146 | 2147 | typescript@4.9.5: 2148 | resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} 2149 | engines: {node: '>=4.2.0'} 2150 | hasBin: true 2151 | 2152 | typescript@5.4.2: 2153 | resolution: {integrity: sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==} 2154 | engines: {node: '>=14.17'} 2155 | hasBin: true 2156 | 2157 | typescript@5.7.2: 2158 | resolution: {integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==} 2159 | engines: {node: '>=14.17'} 2160 | hasBin: true 2161 | 2162 | undici-types@6.20.0: 2163 | resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} 2164 | 2165 | undici@5.28.4: 2166 | resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==} 2167 | engines: {node: '>=14.0'} 2168 | 2169 | universalify@0.1.2: 2170 | resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} 2171 | engines: {node: '>= 4.0.0'} 2172 | 2173 | unpipe@1.0.0: 2174 | resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} 2175 | engines: {node: '>= 0.8'} 2176 | 2177 | untildify@3.0.3: 2178 | resolution: {integrity: sha512-iSk/J8efr8uPT/Z4eSUywnqyrQU7DSdMfdqK4iWEaUVVmcP5JcnpRqmVMwcwcnmI1ATFNgC5V90u09tBynNFKA==} 2179 | engines: {node: '>=4'} 2180 | 2181 | uri-js@4.4.1: 2182 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 2183 | 2184 | urlpattern-polyfill@4.0.3: 2185 | resolution: {integrity: sha512-DOE84vZT2fEcl9gqCUTcnAw5ZY5Id55ikUcziSUntuEFL3pRvavg5kwDmTEUJkeCHInTlV/HexFomgYnzO5kdQ==} 2186 | 2187 | user-home@2.0.0: 2188 | resolution: {integrity: sha512-KMWqdlOcjCYdtIJpicDSFBQ8nFwS2i9sslAd6f4+CBGcU4gist2REnr2fxj2YocvJFxSF3ZOHLYLVZnUxv4BZQ==} 2189 | engines: {node: '>=0.10.0'} 2190 | 2191 | uuid@3.4.0: 2192 | resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} 2193 | deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. 2194 | hasBin: true 2195 | 2196 | validate-npm-package-name@4.0.0: 2197 | resolution: {integrity: sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q==} 2198 | engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} 2199 | 2200 | verror@1.10.0: 2201 | resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} 2202 | engines: {'0': node >=0.6.0} 2203 | 2204 | webidl-conversions@4.0.2: 2205 | resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} 2206 | 2207 | whatwg-url@7.1.0: 2208 | resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} 2209 | 2210 | which@2.0.2: 2211 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 2212 | engines: {node: '>= 8'} 2213 | hasBin: true 2214 | 2215 | wrangler@2.21.2: 2216 | resolution: {integrity: sha512-2vD2dXjGa1zWnv+0o2esVIYvWA0zupiHitZNhWL3WyQrAyRMvWKzFK3XSag9Cgbjxv3WbuOXMx8EroM704Vy3A==} 2217 | engines: {node: '>=16.13.0'} 2218 | hasBin: true 2219 | 2220 | wrap-ansi@7.0.0: 2221 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 2222 | engines: {node: '>=10'} 2223 | 2224 | wrap-ansi@8.1.0: 2225 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} 2226 | engines: {node: '>=12'} 2227 | 2228 | wrappy@1.0.2: 2229 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 2230 | 2231 | ws@8.18.0: 2232 | resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} 2233 | engines: {node: '>=10.0.0'} 2234 | peerDependencies: 2235 | bufferutil: ^4.0.1 2236 | utf-8-validate: '>=5.0.2' 2237 | peerDependenciesMeta: 2238 | bufferutil: 2239 | optional: true 2240 | utf-8-validate: 2241 | optional: true 2242 | 2243 | xxhash-wasm@1.1.0: 2244 | resolution: {integrity: sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==} 2245 | 2246 | yallist@4.0.0: 2247 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 2248 | 2249 | youch@2.2.2: 2250 | resolution: {integrity: sha512-/FaCeG3GkuJwaMR34GHVg0l8jCbafZLHiFowSjqLlqhC6OMyf2tPJBu8UirF7/NI9X/R5ai4QfEKUCOxMAGxZQ==} 2251 | 2252 | zod-to-json-schema@3.24.1: 2253 | resolution: {integrity: sha512-3h08nf3Vw3Wl3PK+q3ow/lIil81IT2Oa7YpQyUUDsEWbXveMesdfK1xBd2RhCkynwZndAxixji/7SYJJowr62w==} 2254 | peerDependencies: 2255 | zod: ^3.24.1 2256 | 2257 | zod@3.24.1: 2258 | resolution: {integrity: sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==} 2259 | 2260 | snapshots: 2261 | 2262 | '@babel/runtime@7.26.0': 2263 | dependencies: 2264 | regenerator-runtime: 0.14.1 2265 | 2266 | '@changesets/apply-release-plan@7.0.7': 2267 | dependencies: 2268 | '@changesets/config': 3.0.5 2269 | '@changesets/get-version-range-type': 0.4.0 2270 | '@changesets/git': 3.0.2 2271 | '@changesets/should-skip-package': 0.1.1 2272 | '@changesets/types': 6.0.0 2273 | '@manypkg/get-packages': 1.1.3 2274 | detect-indent: 6.1.0 2275 | fs-extra: 7.0.1 2276 | lodash.startcase: 4.4.0 2277 | outdent: 0.5.0 2278 | prettier: 2.8.8 2279 | resolve-from: 5.0.0 2280 | semver: 7.5.4 2281 | 2282 | '@changesets/assemble-release-plan@6.0.5': 2283 | dependencies: 2284 | '@changesets/errors': 0.2.0 2285 | '@changesets/get-dependents-graph': 2.1.2 2286 | '@changesets/should-skip-package': 0.1.1 2287 | '@changesets/types': 6.0.0 2288 | '@manypkg/get-packages': 1.1.3 2289 | semver: 7.5.4 2290 | 2291 | '@changesets/changelog-git@0.2.0': 2292 | dependencies: 2293 | '@changesets/types': 6.0.0 2294 | 2295 | '@changesets/cli@2.27.11': 2296 | dependencies: 2297 | '@changesets/apply-release-plan': 7.0.7 2298 | '@changesets/assemble-release-plan': 6.0.5 2299 | '@changesets/changelog-git': 0.2.0 2300 | '@changesets/config': 3.0.5 2301 | '@changesets/errors': 0.2.0 2302 | '@changesets/get-dependents-graph': 2.1.2 2303 | '@changesets/get-release-plan': 4.0.6 2304 | '@changesets/git': 3.0.2 2305 | '@changesets/logger': 0.1.1 2306 | '@changesets/pre': 2.0.1 2307 | '@changesets/read': 0.6.2 2308 | '@changesets/should-skip-package': 0.1.1 2309 | '@changesets/types': 6.0.0 2310 | '@changesets/write': 0.3.2 2311 | '@manypkg/get-packages': 1.1.3 2312 | ansi-colors: 4.1.3 2313 | ci-info: 3.9.0 2314 | enquirer: 2.4.1 2315 | external-editor: 3.1.0 2316 | fs-extra: 7.0.1 2317 | mri: 1.2.0 2318 | p-limit: 2.3.0 2319 | package-manager-detector: 0.2.8 2320 | picocolors: 1.1.1 2321 | resolve-from: 5.0.0 2322 | semver: 7.5.4 2323 | spawndamnit: 3.0.1 2324 | term-size: 2.2.1 2325 | 2326 | '@changesets/config@3.0.5': 2327 | dependencies: 2328 | '@changesets/errors': 0.2.0 2329 | '@changesets/get-dependents-graph': 2.1.2 2330 | '@changesets/logger': 0.1.1 2331 | '@changesets/types': 6.0.0 2332 | '@manypkg/get-packages': 1.1.3 2333 | fs-extra: 7.0.1 2334 | micromatch: 4.0.8 2335 | 2336 | '@changesets/errors@0.2.0': 2337 | dependencies: 2338 | extendable-error: 0.1.7 2339 | 2340 | '@changesets/get-dependents-graph@2.1.2': 2341 | dependencies: 2342 | '@changesets/types': 6.0.0 2343 | '@manypkg/get-packages': 1.1.3 2344 | picocolors: 1.1.1 2345 | semver: 7.5.4 2346 | 2347 | '@changesets/get-release-plan@4.0.6': 2348 | dependencies: 2349 | '@changesets/assemble-release-plan': 6.0.5 2350 | '@changesets/config': 3.0.5 2351 | '@changesets/pre': 2.0.1 2352 | '@changesets/read': 0.6.2 2353 | '@changesets/types': 6.0.0 2354 | '@manypkg/get-packages': 1.1.3 2355 | 2356 | '@changesets/get-version-range-type@0.4.0': {} 2357 | 2358 | '@changesets/git@3.0.2': 2359 | dependencies: 2360 | '@changesets/errors': 0.2.0 2361 | '@manypkg/get-packages': 1.1.3 2362 | is-subdir: 1.2.0 2363 | micromatch: 4.0.8 2364 | spawndamnit: 3.0.1 2365 | 2366 | '@changesets/logger@0.1.1': 2367 | dependencies: 2368 | picocolors: 1.1.1 2369 | 2370 | '@changesets/parse@0.4.0': 2371 | dependencies: 2372 | '@changesets/types': 6.0.0 2373 | js-yaml: 3.14.1 2374 | 2375 | '@changesets/pre@2.0.1': 2376 | dependencies: 2377 | '@changesets/errors': 0.2.0 2378 | '@changesets/types': 6.0.0 2379 | '@manypkg/get-packages': 1.1.3 2380 | fs-extra: 7.0.1 2381 | 2382 | '@changesets/read@0.6.2': 2383 | dependencies: 2384 | '@changesets/git': 3.0.2 2385 | '@changesets/logger': 0.1.1 2386 | '@changesets/parse': 0.4.0 2387 | '@changesets/types': 6.0.0 2388 | fs-extra: 7.0.1 2389 | p-filter: 2.1.0 2390 | picocolors: 1.1.1 2391 | 2392 | '@changesets/should-skip-package@0.1.1': 2393 | dependencies: 2394 | '@changesets/types': 6.0.0 2395 | '@manypkg/get-packages': 1.1.3 2396 | 2397 | '@changesets/types@4.1.0': {} 2398 | 2399 | '@changesets/types@6.0.0': {} 2400 | 2401 | '@changesets/write@0.3.2': 2402 | dependencies: 2403 | '@changesets/types': 6.0.0 2404 | fs-extra: 7.0.1 2405 | human-id: 1.0.2 2406 | prettier: 2.8.8 2407 | 2408 | '@cloudflare/kv-asset-handler@0.2.0': 2409 | dependencies: 2410 | mime: 3.0.0 2411 | 2412 | '@cloudflare/workers-types@3.19.0': {} 2413 | 2414 | '@esbuild-plugins/node-globals-polyfill@0.1.1(esbuild@0.16.3)': 2415 | dependencies: 2416 | esbuild: 0.16.3 2417 | 2418 | '@esbuild-plugins/node-modules-polyfill@0.1.4(esbuild@0.16.3)': 2419 | dependencies: 2420 | esbuild: 0.16.3 2421 | escape-string-regexp: 4.0.0 2422 | rollup-plugin-node-polyfills: 0.2.1 2423 | 2424 | '@esbuild/aix-ppc64@0.23.1': 2425 | optional: true 2426 | 2427 | '@esbuild/aix-ppc64@0.24.2': 2428 | optional: true 2429 | 2430 | '@esbuild/android-arm64@0.16.3': 2431 | optional: true 2432 | 2433 | '@esbuild/android-arm64@0.23.1': 2434 | optional: true 2435 | 2436 | '@esbuild/android-arm64@0.24.2': 2437 | optional: true 2438 | 2439 | '@esbuild/android-arm@0.16.3': 2440 | optional: true 2441 | 2442 | '@esbuild/android-arm@0.23.1': 2443 | optional: true 2444 | 2445 | '@esbuild/android-arm@0.24.2': 2446 | optional: true 2447 | 2448 | '@esbuild/android-x64@0.16.3': 2449 | optional: true 2450 | 2451 | '@esbuild/android-x64@0.23.1': 2452 | optional: true 2453 | 2454 | '@esbuild/android-x64@0.24.2': 2455 | optional: true 2456 | 2457 | '@esbuild/darwin-arm64@0.16.3': 2458 | optional: true 2459 | 2460 | '@esbuild/darwin-arm64@0.23.1': 2461 | optional: true 2462 | 2463 | '@esbuild/darwin-arm64@0.24.2': 2464 | optional: true 2465 | 2466 | '@esbuild/darwin-x64@0.16.3': 2467 | optional: true 2468 | 2469 | '@esbuild/darwin-x64@0.23.1': 2470 | optional: true 2471 | 2472 | '@esbuild/darwin-x64@0.24.2': 2473 | optional: true 2474 | 2475 | '@esbuild/freebsd-arm64@0.16.3': 2476 | optional: true 2477 | 2478 | '@esbuild/freebsd-arm64@0.23.1': 2479 | optional: true 2480 | 2481 | '@esbuild/freebsd-arm64@0.24.2': 2482 | optional: true 2483 | 2484 | '@esbuild/freebsd-x64@0.16.3': 2485 | optional: true 2486 | 2487 | '@esbuild/freebsd-x64@0.23.1': 2488 | optional: true 2489 | 2490 | '@esbuild/freebsd-x64@0.24.2': 2491 | optional: true 2492 | 2493 | '@esbuild/linux-arm64@0.16.3': 2494 | optional: true 2495 | 2496 | '@esbuild/linux-arm64@0.23.1': 2497 | optional: true 2498 | 2499 | '@esbuild/linux-arm64@0.24.2': 2500 | optional: true 2501 | 2502 | '@esbuild/linux-arm@0.16.3': 2503 | optional: true 2504 | 2505 | '@esbuild/linux-arm@0.23.1': 2506 | optional: true 2507 | 2508 | '@esbuild/linux-arm@0.24.2': 2509 | optional: true 2510 | 2511 | '@esbuild/linux-ia32@0.16.3': 2512 | optional: true 2513 | 2514 | '@esbuild/linux-ia32@0.23.1': 2515 | optional: true 2516 | 2517 | '@esbuild/linux-ia32@0.24.2': 2518 | optional: true 2519 | 2520 | '@esbuild/linux-loong64@0.16.3': 2521 | optional: true 2522 | 2523 | '@esbuild/linux-loong64@0.23.1': 2524 | optional: true 2525 | 2526 | '@esbuild/linux-loong64@0.24.2': 2527 | optional: true 2528 | 2529 | '@esbuild/linux-mips64el@0.16.3': 2530 | optional: true 2531 | 2532 | '@esbuild/linux-mips64el@0.23.1': 2533 | optional: true 2534 | 2535 | '@esbuild/linux-mips64el@0.24.2': 2536 | optional: true 2537 | 2538 | '@esbuild/linux-ppc64@0.16.3': 2539 | optional: true 2540 | 2541 | '@esbuild/linux-ppc64@0.23.1': 2542 | optional: true 2543 | 2544 | '@esbuild/linux-ppc64@0.24.2': 2545 | optional: true 2546 | 2547 | '@esbuild/linux-riscv64@0.16.3': 2548 | optional: true 2549 | 2550 | '@esbuild/linux-riscv64@0.23.1': 2551 | optional: true 2552 | 2553 | '@esbuild/linux-riscv64@0.24.2': 2554 | optional: true 2555 | 2556 | '@esbuild/linux-s390x@0.16.3': 2557 | optional: true 2558 | 2559 | '@esbuild/linux-s390x@0.23.1': 2560 | optional: true 2561 | 2562 | '@esbuild/linux-s390x@0.24.2': 2563 | optional: true 2564 | 2565 | '@esbuild/linux-x64@0.16.3': 2566 | optional: true 2567 | 2568 | '@esbuild/linux-x64@0.23.1': 2569 | optional: true 2570 | 2571 | '@esbuild/linux-x64@0.24.2': 2572 | optional: true 2573 | 2574 | '@esbuild/netbsd-arm64@0.24.2': 2575 | optional: true 2576 | 2577 | '@esbuild/netbsd-x64@0.16.3': 2578 | optional: true 2579 | 2580 | '@esbuild/netbsd-x64@0.23.1': 2581 | optional: true 2582 | 2583 | '@esbuild/netbsd-x64@0.24.2': 2584 | optional: true 2585 | 2586 | '@esbuild/openbsd-arm64@0.23.1': 2587 | optional: true 2588 | 2589 | '@esbuild/openbsd-arm64@0.24.2': 2590 | optional: true 2591 | 2592 | '@esbuild/openbsd-x64@0.16.3': 2593 | optional: true 2594 | 2595 | '@esbuild/openbsd-x64@0.23.1': 2596 | optional: true 2597 | 2598 | '@esbuild/openbsd-x64@0.24.2': 2599 | optional: true 2600 | 2601 | '@esbuild/sunos-x64@0.16.3': 2602 | optional: true 2603 | 2604 | '@esbuild/sunos-x64@0.23.1': 2605 | optional: true 2606 | 2607 | '@esbuild/sunos-x64@0.24.2': 2608 | optional: true 2609 | 2610 | '@esbuild/win32-arm64@0.16.3': 2611 | optional: true 2612 | 2613 | '@esbuild/win32-arm64@0.23.1': 2614 | optional: true 2615 | 2616 | '@esbuild/win32-arm64@0.24.2': 2617 | optional: true 2618 | 2619 | '@esbuild/win32-ia32@0.16.3': 2620 | optional: true 2621 | 2622 | '@esbuild/win32-ia32@0.23.1': 2623 | optional: true 2624 | 2625 | '@esbuild/win32-ia32@0.24.2': 2626 | optional: true 2627 | 2628 | '@esbuild/win32-x64@0.16.3': 2629 | optional: true 2630 | 2631 | '@esbuild/win32-x64@0.23.1': 2632 | optional: true 2633 | 2634 | '@esbuild/win32-x64@0.24.2': 2635 | optional: true 2636 | 2637 | '@fastify/busboy@2.1.1': {} 2638 | 2639 | '@iarna/toml@2.2.5': {} 2640 | 2641 | '@isaacs/cliui@8.0.2': 2642 | dependencies: 2643 | string-width: 5.1.2 2644 | string-width-cjs: string-width@4.2.3 2645 | strip-ansi: 7.1.0 2646 | strip-ansi-cjs: strip-ansi@6.0.1 2647 | wrap-ansi: 8.1.0 2648 | wrap-ansi-cjs: wrap-ansi@7.0.0 2649 | 2650 | '@jridgewell/gen-mapping@0.3.8': 2651 | dependencies: 2652 | '@jridgewell/set-array': 1.2.1 2653 | '@jridgewell/sourcemap-codec': 1.5.0 2654 | '@jridgewell/trace-mapping': 0.3.25 2655 | 2656 | '@jridgewell/resolve-uri@3.1.2': {} 2657 | 2658 | '@jridgewell/set-array@1.2.1': {} 2659 | 2660 | '@jridgewell/sourcemap-codec@1.5.0': {} 2661 | 2662 | '@jridgewell/trace-mapping@0.3.25': 2663 | dependencies: 2664 | '@jridgewell/resolve-uri': 3.1.2 2665 | '@jridgewell/sourcemap-codec': 1.5.0 2666 | 2667 | '@manypkg/find-root@1.1.0': 2668 | dependencies: 2669 | '@babel/runtime': 7.26.0 2670 | '@types/node': 12.20.55 2671 | find-up: 4.1.0 2672 | fs-extra: 8.1.0 2673 | 2674 | '@manypkg/get-packages@1.1.3': 2675 | dependencies: 2676 | '@babel/runtime': 7.26.0 2677 | '@changesets/types': 4.1.0 2678 | '@manypkg/find-root': 1.1.0 2679 | fs-extra: 8.1.0 2680 | globby: 11.1.0 2681 | read-yaml-file: 1.1.0 2682 | 2683 | '@microsoft/api-extractor-model@7.30.1(@types/node@22.10.2)': 2684 | dependencies: 2685 | '@microsoft/tsdoc': 0.15.1 2686 | '@microsoft/tsdoc-config': 0.17.1 2687 | '@rushstack/node-core-library': 5.10.1(@types/node@22.10.2) 2688 | transitivePeerDependencies: 2689 | - '@types/node' 2690 | 2691 | '@microsoft/api-extractor@7.48.1(@types/node@22.10.2)': 2692 | dependencies: 2693 | '@microsoft/api-extractor-model': 7.30.1(@types/node@22.10.2) 2694 | '@microsoft/tsdoc': 0.15.1 2695 | '@microsoft/tsdoc-config': 0.17.1 2696 | '@rushstack/node-core-library': 5.10.1(@types/node@22.10.2) 2697 | '@rushstack/rig-package': 0.5.3 2698 | '@rushstack/terminal': 0.14.4(@types/node@22.10.2) 2699 | '@rushstack/ts-command-line': 4.23.2(@types/node@22.10.2) 2700 | lodash: 4.17.21 2701 | minimatch: 3.0.8 2702 | resolve: 1.22.10 2703 | semver: 7.5.4 2704 | source-map: 0.6.1 2705 | typescript: 5.4.2 2706 | transitivePeerDependencies: 2707 | - '@types/node' 2708 | 2709 | '@microsoft/tsdoc-config@0.17.1': 2710 | dependencies: 2711 | '@microsoft/tsdoc': 0.15.1 2712 | ajv: 8.12.0 2713 | jju: 1.4.0 2714 | resolve: 1.22.10 2715 | 2716 | '@microsoft/tsdoc@0.15.1': {} 2717 | 2718 | '@miniflare/cache@2.14.4': 2719 | dependencies: 2720 | '@miniflare/core': 2.14.4 2721 | '@miniflare/shared': 2.14.4 2722 | http-cache-semantics: 4.1.1 2723 | undici: 5.28.4 2724 | 2725 | '@miniflare/cli-parser@2.14.4': 2726 | dependencies: 2727 | '@miniflare/shared': 2.14.4 2728 | kleur: 4.1.5 2729 | 2730 | '@miniflare/core@2.14.4': 2731 | dependencies: 2732 | '@iarna/toml': 2.2.5 2733 | '@miniflare/queues': 2.14.4 2734 | '@miniflare/shared': 2.14.4 2735 | '@miniflare/watcher': 2.14.4 2736 | busboy: 1.6.0 2737 | dotenv: 10.0.0 2738 | kleur: 4.1.5 2739 | set-cookie-parser: 2.7.1 2740 | undici: 5.28.4 2741 | urlpattern-polyfill: 4.0.3 2742 | 2743 | '@miniflare/d1@2.14.4': 2744 | dependencies: 2745 | '@miniflare/core': 2.14.4 2746 | '@miniflare/shared': 2.14.4 2747 | 2748 | '@miniflare/durable-objects@2.14.4': 2749 | dependencies: 2750 | '@miniflare/core': 2.14.4 2751 | '@miniflare/shared': 2.14.4 2752 | '@miniflare/storage-memory': 2.14.4 2753 | undici: 5.28.4 2754 | 2755 | '@miniflare/html-rewriter@2.14.4': 2756 | dependencies: 2757 | '@miniflare/core': 2.14.4 2758 | '@miniflare/shared': 2.14.4 2759 | html-rewriter-wasm: 0.4.1 2760 | undici: 5.28.4 2761 | 2762 | '@miniflare/http-server@2.14.4': 2763 | dependencies: 2764 | '@miniflare/core': 2.14.4 2765 | '@miniflare/shared': 2.14.4 2766 | '@miniflare/web-sockets': 2.14.4 2767 | kleur: 4.1.5 2768 | selfsigned: 2.4.1 2769 | undici: 5.28.4 2770 | ws: 8.18.0 2771 | youch: 2.2.2 2772 | transitivePeerDependencies: 2773 | - bufferutil 2774 | - utf-8-validate 2775 | 2776 | '@miniflare/kv@2.14.4': 2777 | dependencies: 2778 | '@miniflare/shared': 2.14.4 2779 | 2780 | '@miniflare/queues@2.14.4': 2781 | dependencies: 2782 | '@miniflare/shared': 2.14.4 2783 | 2784 | '@miniflare/r2@2.14.4': 2785 | dependencies: 2786 | '@miniflare/core': 2.14.4 2787 | '@miniflare/shared': 2.14.4 2788 | undici: 5.28.4 2789 | 2790 | '@miniflare/runner-vm@2.14.4': 2791 | dependencies: 2792 | '@miniflare/shared': 2.14.4 2793 | 2794 | '@miniflare/scheduler@2.14.4': 2795 | dependencies: 2796 | '@miniflare/core': 2.14.4 2797 | '@miniflare/shared': 2.14.4 2798 | cron-schedule: 3.0.6 2799 | 2800 | '@miniflare/shared@2.14.4': 2801 | dependencies: 2802 | '@types/better-sqlite3': 7.6.12 2803 | kleur: 4.1.5 2804 | npx-import: 1.1.4 2805 | picomatch: 2.3.1 2806 | 2807 | '@miniflare/sites@2.14.4': 2808 | dependencies: 2809 | '@miniflare/kv': 2.14.4 2810 | '@miniflare/shared': 2.14.4 2811 | '@miniflare/storage-file': 2.14.4 2812 | 2813 | '@miniflare/storage-file@2.14.4': 2814 | dependencies: 2815 | '@miniflare/shared': 2.14.4 2816 | '@miniflare/storage-memory': 2.14.4 2817 | 2818 | '@miniflare/storage-memory@2.14.4': 2819 | dependencies: 2820 | '@miniflare/shared': 2.14.4 2821 | 2822 | '@miniflare/watcher@2.14.4': 2823 | dependencies: 2824 | '@miniflare/shared': 2.14.4 2825 | 2826 | '@miniflare/web-sockets@2.14.4': 2827 | dependencies: 2828 | '@miniflare/core': 2.14.4 2829 | '@miniflare/shared': 2.14.4 2830 | undici: 5.28.4 2831 | ws: 8.18.0 2832 | transitivePeerDependencies: 2833 | - bufferutil 2834 | - utf-8-validate 2835 | 2836 | '@modelcontextprotocol/sdk@1.0.4': 2837 | dependencies: 2838 | content-type: 1.0.5 2839 | raw-body: 3.0.0 2840 | zod: 3.24.1 2841 | 2842 | '@nodelib/fs.scandir@2.1.5': 2843 | dependencies: 2844 | '@nodelib/fs.stat': 2.0.5 2845 | run-parallel: 1.2.0 2846 | 2847 | '@nodelib/fs.stat@2.0.5': {} 2848 | 2849 | '@nodelib/fs.walk@1.2.8': 2850 | dependencies: 2851 | '@nodelib/fs.scandir': 2.1.5 2852 | fastq: 1.18.0 2853 | 2854 | '@pkgjs/parseargs@0.11.0': 2855 | optional: true 2856 | 2857 | '@rollup/rollup-android-arm-eabi@4.29.1': 2858 | optional: true 2859 | 2860 | '@rollup/rollup-android-arm64@4.29.1': 2861 | optional: true 2862 | 2863 | '@rollup/rollup-darwin-arm64@4.29.1': 2864 | optional: true 2865 | 2866 | '@rollup/rollup-darwin-x64@4.29.1': 2867 | optional: true 2868 | 2869 | '@rollup/rollup-freebsd-arm64@4.29.1': 2870 | optional: true 2871 | 2872 | '@rollup/rollup-freebsd-x64@4.29.1': 2873 | optional: true 2874 | 2875 | '@rollup/rollup-linux-arm-gnueabihf@4.29.1': 2876 | optional: true 2877 | 2878 | '@rollup/rollup-linux-arm-musleabihf@4.29.1': 2879 | optional: true 2880 | 2881 | '@rollup/rollup-linux-arm64-gnu@4.29.1': 2882 | optional: true 2883 | 2884 | '@rollup/rollup-linux-arm64-musl@4.29.1': 2885 | optional: true 2886 | 2887 | '@rollup/rollup-linux-loongarch64-gnu@4.29.1': 2888 | optional: true 2889 | 2890 | '@rollup/rollup-linux-powerpc64le-gnu@4.29.1': 2891 | optional: true 2892 | 2893 | '@rollup/rollup-linux-riscv64-gnu@4.29.1': 2894 | optional: true 2895 | 2896 | '@rollup/rollup-linux-s390x-gnu@4.29.1': 2897 | optional: true 2898 | 2899 | '@rollup/rollup-linux-x64-gnu@4.29.1': 2900 | optional: true 2901 | 2902 | '@rollup/rollup-linux-x64-musl@4.29.1': 2903 | optional: true 2904 | 2905 | '@rollup/rollup-win32-arm64-msvc@4.29.1': 2906 | optional: true 2907 | 2908 | '@rollup/rollup-win32-ia32-msvc@4.29.1': 2909 | optional: true 2910 | 2911 | '@rollup/rollup-win32-x64-msvc@4.29.1': 2912 | optional: true 2913 | 2914 | '@rushstack/node-core-library@5.10.1(@types/node@22.10.2)': 2915 | dependencies: 2916 | ajv: 8.13.0 2917 | ajv-draft-04: 1.0.0(ajv@8.13.0) 2918 | ajv-formats: 3.0.1(ajv@8.13.0) 2919 | fs-extra: 7.0.1 2920 | import-lazy: 4.0.0 2921 | jju: 1.4.0 2922 | resolve: 1.22.10 2923 | semver: 7.5.4 2924 | optionalDependencies: 2925 | '@types/node': 22.10.2 2926 | 2927 | '@rushstack/rig-package@0.5.3': 2928 | dependencies: 2929 | resolve: 1.22.10 2930 | strip-json-comments: 3.1.1 2931 | 2932 | '@rushstack/terminal@0.14.4(@types/node@22.10.2)': 2933 | dependencies: 2934 | '@rushstack/node-core-library': 5.10.1(@types/node@22.10.2) 2935 | supports-color: 8.1.1 2936 | optionalDependencies: 2937 | '@types/node': 22.10.2 2938 | 2939 | '@rushstack/ts-command-line@4.23.2(@types/node@22.10.2)': 2940 | dependencies: 2941 | '@rushstack/terminal': 0.14.4(@types/node@22.10.2) 2942 | '@types/argparse': 1.0.38 2943 | argparse: 1.0.10 2944 | string-argv: 0.3.2 2945 | transitivePeerDependencies: 2946 | - '@types/node' 2947 | 2948 | '@trpc/client@11.0.0-rc.682(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(typescript@5.7.2)': 2949 | dependencies: 2950 | '@trpc/server': 11.0.0-rc.682(typescript@5.7.2) 2951 | typescript: 5.7.2 2952 | 2953 | '@trpc/server@11.0.0-rc.682(typescript@4.9.5)': 2954 | dependencies: 2955 | typescript: 4.9.5 2956 | 2957 | '@trpc/server@11.0.0-rc.682(typescript@5.7.2)': 2958 | dependencies: 2959 | typescript: 5.7.2 2960 | 2961 | '@types/argparse@1.0.38': {} 2962 | 2963 | '@types/better-sqlite3@7.6.12': 2964 | dependencies: 2965 | '@types/node': 22.10.2 2966 | 2967 | '@types/estree@1.0.6': {} 2968 | 2969 | '@types/jsonwebtoken@9.0.7': 2970 | dependencies: 2971 | '@types/node': 22.10.2 2972 | 2973 | '@types/node-forge@1.3.11': 2974 | dependencies: 2975 | '@types/node': 22.10.2 2976 | 2977 | '@types/node@12.20.55': {} 2978 | 2979 | '@types/node@22.10.2': 2980 | dependencies: 2981 | undici-types: 6.20.0 2982 | 2983 | '@types/stack-trace@0.0.29': {} 2984 | 2985 | ajv-draft-04@1.0.0(ajv@8.13.0): 2986 | optionalDependencies: 2987 | ajv: 8.13.0 2988 | 2989 | ajv-formats@3.0.1(ajv@8.13.0): 2990 | optionalDependencies: 2991 | ajv: 8.13.0 2992 | 2993 | ajv@6.12.6: 2994 | dependencies: 2995 | fast-deep-equal: 3.1.3 2996 | fast-json-stable-stringify: 2.1.0 2997 | json-schema-traverse: 0.4.1 2998 | uri-js: 4.4.1 2999 | 3000 | ajv@8.12.0: 3001 | dependencies: 3002 | fast-deep-equal: 3.1.3 3003 | json-schema-traverse: 1.0.0 3004 | require-from-string: 2.0.2 3005 | uri-js: 4.4.1 3006 | 3007 | ajv@8.13.0: 3008 | dependencies: 3009 | fast-deep-equal: 3.1.3 3010 | json-schema-traverse: 1.0.0 3011 | require-from-string: 2.0.2 3012 | uri-js: 4.4.1 3013 | 3014 | ansi-colors@4.1.3: {} 3015 | 3016 | ansi-escapes@1.4.0: {} 3017 | 3018 | ansi-regex@2.1.1: {} 3019 | 3020 | ansi-regex@5.0.1: {} 3021 | 3022 | ansi-regex@6.1.0: {} 3023 | 3024 | ansi-styles@2.2.1: {} 3025 | 3026 | ansi-styles@4.3.0: 3027 | dependencies: 3028 | color-convert: 2.0.1 3029 | 3030 | ansi-styles@6.2.1: {} 3031 | 3032 | any-promise@1.3.0: {} 3033 | 3034 | anymatch@3.1.3: 3035 | dependencies: 3036 | normalize-path: 3.0.0 3037 | picomatch: 2.3.1 3038 | 3039 | argparse@1.0.10: 3040 | dependencies: 3041 | sprintf-js: 1.0.3 3042 | 3043 | array-union@2.1.0: {} 3044 | 3045 | asn1@0.2.6: 3046 | dependencies: 3047 | safer-buffer: 2.1.2 3048 | 3049 | assert-plus@1.0.0: {} 3050 | 3051 | asynckit@0.4.0: {} 3052 | 3053 | aws-sign2@0.7.0: {} 3054 | 3055 | aws4@1.13.2: {} 3056 | 3057 | balanced-match@1.0.2: {} 3058 | 3059 | bcrypt-pbkdf@1.0.2: 3060 | dependencies: 3061 | tweetnacl: 0.14.5 3062 | 3063 | better-path-resolve@1.0.0: 3064 | dependencies: 3065 | is-windows: 1.0.2 3066 | 3067 | binary-extensions@2.3.0: {} 3068 | 3069 | biome@0.3.3: 3070 | dependencies: 3071 | bluebird: 3.7.2 3072 | chalk: 1.1.3 3073 | commander: 2.20.3 3074 | editor: 1.0.0 3075 | fs-promise: 0.5.0 3076 | inquirer-promise: 0.0.3 3077 | request-promise: 3.0.0 3078 | untildify: 3.0.3 3079 | user-home: 2.0.0 3080 | 3081 | blake3-wasm@2.1.5: {} 3082 | 3083 | bluebird@3.7.2: {} 3084 | 3085 | brace-expansion@1.1.11: 3086 | dependencies: 3087 | balanced-match: 1.0.2 3088 | concat-map: 0.0.1 3089 | 3090 | brace-expansion@2.0.1: 3091 | dependencies: 3092 | balanced-match: 1.0.2 3093 | 3094 | braces@3.0.3: 3095 | dependencies: 3096 | fill-range: 7.1.1 3097 | 3098 | buffer-from@1.1.2: {} 3099 | 3100 | builtins@5.1.0: 3101 | dependencies: 3102 | semver: 7.5.4 3103 | 3104 | bundle-require@5.1.0(esbuild@0.24.2): 3105 | dependencies: 3106 | esbuild: 0.24.2 3107 | load-tsconfig: 0.2.5 3108 | 3109 | busboy@1.6.0: 3110 | dependencies: 3111 | streamsearch: 1.1.0 3112 | 3113 | bytes@3.1.2: {} 3114 | 3115 | cac@6.7.14: {} 3116 | 3117 | caseless@0.12.0: {} 3118 | 3119 | chalk@1.1.3: 3120 | dependencies: 3121 | ansi-styles: 2.2.1 3122 | escape-string-regexp: 1.0.5 3123 | has-ansi: 2.0.0 3124 | strip-ansi: 3.0.1 3125 | supports-color: 2.0.0 3126 | 3127 | chardet@0.7.0: {} 3128 | 3129 | chokidar@3.6.0: 3130 | dependencies: 3131 | anymatch: 3.1.3 3132 | braces: 3.0.3 3133 | glob-parent: 5.1.2 3134 | is-binary-path: 2.1.0 3135 | is-glob: 4.0.3 3136 | normalize-path: 3.0.0 3137 | readdirp: 3.6.0 3138 | optionalDependencies: 3139 | fsevents: 2.3.3 3140 | 3141 | chokidar@4.0.3: 3142 | dependencies: 3143 | readdirp: 4.0.2 3144 | 3145 | ci-info@3.9.0: {} 3146 | 3147 | cli-cursor@1.0.2: 3148 | dependencies: 3149 | restore-cursor: 1.0.1 3150 | 3151 | cli-width@1.1.1: {} 3152 | 3153 | code-point-at@1.1.0: {} 3154 | 3155 | color-convert@2.0.1: 3156 | dependencies: 3157 | color-name: 1.1.4 3158 | 3159 | color-name@1.1.4: {} 3160 | 3161 | combined-stream@1.0.8: 3162 | dependencies: 3163 | delayed-stream: 1.0.0 3164 | 3165 | commander@2.20.3: {} 3166 | 3167 | commander@4.1.1: {} 3168 | 3169 | concat-map@0.0.1: {} 3170 | 3171 | consola@3.3.3: {} 3172 | 3173 | content-type@1.0.5: {} 3174 | 3175 | cookie@0.4.2: {} 3176 | 3177 | core-js@2.6.12: {} 3178 | 3179 | core-util-is@1.0.2: {} 3180 | 3181 | cron-schedule@3.0.6: {} 3182 | 3183 | cross-spawn@7.0.6: 3184 | dependencies: 3185 | path-key: 3.1.1 3186 | shebang-command: 2.0.0 3187 | which: 2.0.2 3188 | 3189 | dashdash@1.14.1: 3190 | dependencies: 3191 | assert-plus: 1.0.0 3192 | 3193 | debug@4.4.0: 3194 | dependencies: 3195 | ms: 2.1.3 3196 | 3197 | delayed-stream@1.0.0: {} 3198 | 3199 | depd@2.0.0: {} 3200 | 3201 | detect-indent@6.1.0: {} 3202 | 3203 | dir-glob@3.0.1: 3204 | dependencies: 3205 | path-type: 4.0.0 3206 | 3207 | dotenv@10.0.0: {} 3208 | 3209 | earlgrey-runtime@0.1.2: 3210 | dependencies: 3211 | core-js: 2.6.12 3212 | kaiser: 0.0.4 3213 | lodash: 4.17.21 3214 | regenerator-runtime: 0.9.6 3215 | 3216 | eastasianwidth@0.2.0: {} 3217 | 3218 | ecc-jsbn@0.1.2: 3219 | dependencies: 3220 | jsbn: 0.1.1 3221 | safer-buffer: 2.1.2 3222 | 3223 | editor@1.0.0: {} 3224 | 3225 | emoji-regex@8.0.0: {} 3226 | 3227 | emoji-regex@9.2.2: {} 3228 | 3229 | enquirer@2.4.1: 3230 | dependencies: 3231 | ansi-colors: 4.1.3 3232 | strip-ansi: 6.0.1 3233 | 3234 | esbuild@0.16.3: 3235 | optionalDependencies: 3236 | '@esbuild/android-arm': 0.16.3 3237 | '@esbuild/android-arm64': 0.16.3 3238 | '@esbuild/android-x64': 0.16.3 3239 | '@esbuild/darwin-arm64': 0.16.3 3240 | '@esbuild/darwin-x64': 0.16.3 3241 | '@esbuild/freebsd-arm64': 0.16.3 3242 | '@esbuild/freebsd-x64': 0.16.3 3243 | '@esbuild/linux-arm': 0.16.3 3244 | '@esbuild/linux-arm64': 0.16.3 3245 | '@esbuild/linux-ia32': 0.16.3 3246 | '@esbuild/linux-loong64': 0.16.3 3247 | '@esbuild/linux-mips64el': 0.16.3 3248 | '@esbuild/linux-ppc64': 0.16.3 3249 | '@esbuild/linux-riscv64': 0.16.3 3250 | '@esbuild/linux-s390x': 0.16.3 3251 | '@esbuild/linux-x64': 0.16.3 3252 | '@esbuild/netbsd-x64': 0.16.3 3253 | '@esbuild/openbsd-x64': 0.16.3 3254 | '@esbuild/sunos-x64': 0.16.3 3255 | '@esbuild/win32-arm64': 0.16.3 3256 | '@esbuild/win32-ia32': 0.16.3 3257 | '@esbuild/win32-x64': 0.16.3 3258 | 3259 | esbuild@0.23.1: 3260 | optionalDependencies: 3261 | '@esbuild/aix-ppc64': 0.23.1 3262 | '@esbuild/android-arm': 0.23.1 3263 | '@esbuild/android-arm64': 0.23.1 3264 | '@esbuild/android-x64': 0.23.1 3265 | '@esbuild/darwin-arm64': 0.23.1 3266 | '@esbuild/darwin-x64': 0.23.1 3267 | '@esbuild/freebsd-arm64': 0.23.1 3268 | '@esbuild/freebsd-x64': 0.23.1 3269 | '@esbuild/linux-arm': 0.23.1 3270 | '@esbuild/linux-arm64': 0.23.1 3271 | '@esbuild/linux-ia32': 0.23.1 3272 | '@esbuild/linux-loong64': 0.23.1 3273 | '@esbuild/linux-mips64el': 0.23.1 3274 | '@esbuild/linux-ppc64': 0.23.1 3275 | '@esbuild/linux-riscv64': 0.23.1 3276 | '@esbuild/linux-s390x': 0.23.1 3277 | '@esbuild/linux-x64': 0.23.1 3278 | '@esbuild/netbsd-x64': 0.23.1 3279 | '@esbuild/openbsd-arm64': 0.23.1 3280 | '@esbuild/openbsd-x64': 0.23.1 3281 | '@esbuild/sunos-x64': 0.23.1 3282 | '@esbuild/win32-arm64': 0.23.1 3283 | '@esbuild/win32-ia32': 0.23.1 3284 | '@esbuild/win32-x64': 0.23.1 3285 | 3286 | esbuild@0.24.2: 3287 | optionalDependencies: 3288 | '@esbuild/aix-ppc64': 0.24.2 3289 | '@esbuild/android-arm': 0.24.2 3290 | '@esbuild/android-arm64': 0.24.2 3291 | '@esbuild/android-x64': 0.24.2 3292 | '@esbuild/darwin-arm64': 0.24.2 3293 | '@esbuild/darwin-x64': 0.24.2 3294 | '@esbuild/freebsd-arm64': 0.24.2 3295 | '@esbuild/freebsd-x64': 0.24.2 3296 | '@esbuild/linux-arm': 0.24.2 3297 | '@esbuild/linux-arm64': 0.24.2 3298 | '@esbuild/linux-ia32': 0.24.2 3299 | '@esbuild/linux-loong64': 0.24.2 3300 | '@esbuild/linux-mips64el': 0.24.2 3301 | '@esbuild/linux-ppc64': 0.24.2 3302 | '@esbuild/linux-riscv64': 0.24.2 3303 | '@esbuild/linux-s390x': 0.24.2 3304 | '@esbuild/linux-x64': 0.24.2 3305 | '@esbuild/netbsd-arm64': 0.24.2 3306 | '@esbuild/netbsd-x64': 0.24.2 3307 | '@esbuild/openbsd-arm64': 0.24.2 3308 | '@esbuild/openbsd-x64': 0.24.2 3309 | '@esbuild/sunos-x64': 0.24.2 3310 | '@esbuild/win32-arm64': 0.24.2 3311 | '@esbuild/win32-ia32': 0.24.2 3312 | '@esbuild/win32-x64': 0.24.2 3313 | 3314 | escape-string-regexp@1.0.5: {} 3315 | 3316 | escape-string-regexp@4.0.0: {} 3317 | 3318 | esprima@4.0.1: {} 3319 | 3320 | estree-walker@0.6.1: {} 3321 | 3322 | execa@6.1.0: 3323 | dependencies: 3324 | cross-spawn: 7.0.6 3325 | get-stream: 6.0.1 3326 | human-signals: 3.0.1 3327 | is-stream: 3.0.0 3328 | merge-stream: 2.0.0 3329 | npm-run-path: 5.3.0 3330 | onetime: 6.0.0 3331 | signal-exit: 3.0.7 3332 | strip-final-newline: 3.0.0 3333 | 3334 | exit-hook@1.1.1: {} 3335 | 3336 | extend@3.0.2: {} 3337 | 3338 | extendable-error@0.1.7: {} 3339 | 3340 | external-editor@3.1.0: 3341 | dependencies: 3342 | chardet: 0.7.0 3343 | iconv-lite: 0.4.24 3344 | tmp: 0.0.33 3345 | 3346 | extsprintf@1.3.0: {} 3347 | 3348 | fast-deep-equal@3.1.3: {} 3349 | 3350 | fast-glob@3.3.2: 3351 | dependencies: 3352 | '@nodelib/fs.stat': 2.0.5 3353 | '@nodelib/fs.walk': 1.2.8 3354 | glob-parent: 5.1.2 3355 | merge2: 1.4.1 3356 | micromatch: 4.0.8 3357 | 3358 | fast-json-stable-stringify@2.1.0: {} 3359 | 3360 | fastq@1.18.0: 3361 | dependencies: 3362 | reusify: 1.0.4 3363 | 3364 | fdir@6.4.2(picomatch@4.0.2): 3365 | optionalDependencies: 3366 | picomatch: 4.0.2 3367 | 3368 | figures@1.7.0: 3369 | dependencies: 3370 | escape-string-regexp: 1.0.5 3371 | object-assign: 4.1.1 3372 | 3373 | fill-range@7.1.1: 3374 | dependencies: 3375 | to-regex-range: 5.0.1 3376 | 3377 | find-up@4.1.0: 3378 | dependencies: 3379 | locate-path: 5.0.0 3380 | path-exists: 4.0.0 3381 | 3382 | foreground-child@3.3.0: 3383 | dependencies: 3384 | cross-spawn: 7.0.6 3385 | signal-exit: 4.1.0 3386 | 3387 | forever-agent@0.6.1: {} 3388 | 3389 | form-data@2.3.3: 3390 | dependencies: 3391 | asynckit: 0.4.0 3392 | combined-stream: 1.0.8 3393 | mime-types: 2.1.35 3394 | 3395 | fs-extra@0.26.7: 3396 | dependencies: 3397 | graceful-fs: 4.2.11 3398 | jsonfile: 2.4.0 3399 | klaw: 1.3.1 3400 | path-is-absolute: 1.0.1 3401 | rimraf: 2.7.1 3402 | 3403 | fs-extra@7.0.1: 3404 | dependencies: 3405 | graceful-fs: 4.2.11 3406 | jsonfile: 4.0.0 3407 | universalify: 0.1.2 3408 | 3409 | fs-extra@8.1.0: 3410 | dependencies: 3411 | graceful-fs: 4.2.11 3412 | jsonfile: 4.0.0 3413 | universalify: 0.1.2 3414 | 3415 | fs-promise@0.5.0: 3416 | dependencies: 3417 | any-promise: 1.3.0 3418 | fs-extra: 0.26.7 3419 | mz: 2.7.0 3420 | thenify-all: 1.6.0 3421 | 3422 | fs.realpath@1.0.0: {} 3423 | 3424 | fsevents@2.3.3: 3425 | optional: true 3426 | 3427 | function-bind@1.1.2: {} 3428 | 3429 | get-stream@6.0.1: {} 3430 | 3431 | get-tsconfig@4.8.1: 3432 | dependencies: 3433 | resolve-pkg-maps: 1.0.0 3434 | 3435 | getpass@0.1.7: 3436 | dependencies: 3437 | assert-plus: 1.0.0 3438 | 3439 | glob-parent@5.1.2: 3440 | dependencies: 3441 | is-glob: 4.0.3 3442 | 3443 | glob@10.4.5: 3444 | dependencies: 3445 | foreground-child: 3.3.0 3446 | jackspeak: 3.4.3 3447 | minimatch: 9.0.5 3448 | minipass: 7.1.2 3449 | package-json-from-dist: 1.0.1 3450 | path-scurry: 1.11.1 3451 | 3452 | glob@7.2.3: 3453 | dependencies: 3454 | fs.realpath: 1.0.0 3455 | inflight: 1.0.6 3456 | inherits: 2.0.4 3457 | minimatch: 3.1.2 3458 | once: 1.4.0 3459 | path-is-absolute: 1.0.1 3460 | 3461 | globby@11.1.0: 3462 | dependencies: 3463 | array-union: 2.1.0 3464 | dir-glob: 3.0.1 3465 | fast-glob: 3.3.2 3466 | ignore: 5.3.2 3467 | merge2: 1.4.1 3468 | slash: 3.0.0 3469 | 3470 | graceful-fs@4.2.11: {} 3471 | 3472 | har-schema@2.0.0: {} 3473 | 3474 | har-validator@5.1.5: 3475 | dependencies: 3476 | ajv: 6.12.6 3477 | har-schema: 2.0.0 3478 | 3479 | has-ansi@2.0.0: 3480 | dependencies: 3481 | ansi-regex: 2.1.1 3482 | 3483 | has-flag@4.0.0: {} 3484 | 3485 | hasown@2.0.2: 3486 | dependencies: 3487 | function-bind: 1.1.2 3488 | 3489 | html-rewriter-wasm@0.4.1: {} 3490 | 3491 | http-cache-semantics@4.1.1: {} 3492 | 3493 | http-errors@2.0.0: 3494 | dependencies: 3495 | depd: 2.0.0 3496 | inherits: 2.0.4 3497 | setprototypeof: 1.2.0 3498 | statuses: 2.0.1 3499 | toidentifier: 1.0.1 3500 | 3501 | http-signature@1.2.0: 3502 | dependencies: 3503 | assert-plus: 1.0.0 3504 | jsprim: 1.4.2 3505 | sshpk: 1.18.0 3506 | 3507 | human-id@1.0.2: {} 3508 | 3509 | human-signals@3.0.1: {} 3510 | 3511 | iconv-lite@0.4.24: 3512 | dependencies: 3513 | safer-buffer: 2.1.2 3514 | 3515 | iconv-lite@0.6.3: 3516 | dependencies: 3517 | safer-buffer: 2.1.2 3518 | 3519 | ignore@5.3.2: {} 3520 | 3521 | import-lazy@4.0.0: {} 3522 | 3523 | inflight@1.0.6: 3524 | dependencies: 3525 | once: 1.4.0 3526 | wrappy: 1.0.2 3527 | 3528 | inherits@2.0.4: {} 3529 | 3530 | inquirer-promise@0.0.3: 3531 | dependencies: 3532 | earlgrey-runtime: 0.1.2 3533 | inquirer: 0.11.4 3534 | 3535 | inquirer@0.11.4: 3536 | dependencies: 3537 | ansi-escapes: 1.4.0 3538 | ansi-regex: 2.1.1 3539 | chalk: 1.1.3 3540 | cli-cursor: 1.0.2 3541 | cli-width: 1.1.1 3542 | figures: 1.7.0 3543 | lodash: 3.10.1 3544 | readline2: 1.0.1 3545 | run-async: 0.1.0 3546 | rx-lite: 3.1.2 3547 | string-width: 1.0.2 3548 | strip-ansi: 3.0.1 3549 | through: 2.3.8 3550 | 3551 | is-binary-path@2.1.0: 3552 | dependencies: 3553 | binary-extensions: 2.3.0 3554 | 3555 | is-core-module@2.16.1: 3556 | dependencies: 3557 | hasown: 2.0.2 3558 | 3559 | is-extglob@2.1.1: {} 3560 | 3561 | is-fullwidth-code-point@1.0.0: 3562 | dependencies: 3563 | number-is-nan: 1.0.1 3564 | 3565 | is-fullwidth-code-point@3.0.0: {} 3566 | 3567 | is-glob@4.0.3: 3568 | dependencies: 3569 | is-extglob: 2.1.1 3570 | 3571 | is-number@7.0.0: {} 3572 | 3573 | is-stream@3.0.0: {} 3574 | 3575 | is-subdir@1.2.0: 3576 | dependencies: 3577 | better-path-resolve: 1.0.0 3578 | 3579 | is-typedarray@1.0.0: {} 3580 | 3581 | is-windows@1.0.2: {} 3582 | 3583 | isexe@2.0.0: {} 3584 | 3585 | isstream@0.1.2: {} 3586 | 3587 | jackspeak@3.4.3: 3588 | dependencies: 3589 | '@isaacs/cliui': 8.0.2 3590 | optionalDependencies: 3591 | '@pkgjs/parseargs': 0.11.0 3592 | 3593 | jju@1.4.0: {} 3594 | 3595 | joycon@3.1.1: {} 3596 | 3597 | js-yaml@3.14.1: 3598 | dependencies: 3599 | argparse: 1.0.10 3600 | esprima: 4.0.1 3601 | 3602 | jsbn@0.1.1: {} 3603 | 3604 | json-schema-traverse@0.4.1: {} 3605 | 3606 | json-schema-traverse@1.0.0: {} 3607 | 3608 | json-schema@0.4.0: {} 3609 | 3610 | json-stringify-safe@5.0.1: {} 3611 | 3612 | jsonfile@2.4.0: 3613 | optionalDependencies: 3614 | graceful-fs: 4.2.11 3615 | 3616 | jsonfile@4.0.0: 3617 | optionalDependencies: 3618 | graceful-fs: 4.2.11 3619 | 3620 | jsprim@1.4.2: 3621 | dependencies: 3622 | assert-plus: 1.0.0 3623 | extsprintf: 1.3.0 3624 | json-schema: 0.4.0 3625 | verror: 1.10.0 3626 | 3627 | kaiser@0.0.4: 3628 | dependencies: 3629 | earlgrey-runtime: 0.1.2 3630 | 3631 | klaw@1.3.1: 3632 | optionalDependencies: 3633 | graceful-fs: 4.2.11 3634 | 3635 | kleur@4.1.5: {} 3636 | 3637 | lilconfig@3.1.3: {} 3638 | 3639 | lines-and-columns@1.2.4: {} 3640 | 3641 | load-tsconfig@0.2.5: {} 3642 | 3643 | locate-path@5.0.0: 3644 | dependencies: 3645 | p-locate: 4.1.0 3646 | 3647 | lodash.sortby@4.7.0: {} 3648 | 3649 | lodash.startcase@4.4.0: {} 3650 | 3651 | lodash@3.10.1: {} 3652 | 3653 | lodash@4.17.21: {} 3654 | 3655 | lru-cache@10.4.3: {} 3656 | 3657 | lru-cache@6.0.0: 3658 | dependencies: 3659 | yallist: 4.0.0 3660 | 3661 | magic-string@0.25.9: 3662 | dependencies: 3663 | sourcemap-codec: 1.4.8 3664 | 3665 | merge-stream@2.0.0: {} 3666 | 3667 | merge2@1.4.1: {} 3668 | 3669 | micromatch@4.0.8: 3670 | dependencies: 3671 | braces: 3.0.3 3672 | picomatch: 2.3.1 3673 | 3674 | mime-db@1.52.0: {} 3675 | 3676 | mime-types@2.1.35: 3677 | dependencies: 3678 | mime-db: 1.52.0 3679 | 3680 | mime@3.0.0: {} 3681 | 3682 | mimic-fn@4.0.0: {} 3683 | 3684 | miniflare@2.14.4(cron-schedule@3.0.6): 3685 | dependencies: 3686 | '@miniflare/cache': 2.14.4 3687 | '@miniflare/cli-parser': 2.14.4 3688 | '@miniflare/core': 2.14.4 3689 | '@miniflare/d1': 2.14.4 3690 | '@miniflare/durable-objects': 2.14.4 3691 | '@miniflare/html-rewriter': 2.14.4 3692 | '@miniflare/http-server': 2.14.4 3693 | '@miniflare/kv': 2.14.4 3694 | '@miniflare/queues': 2.14.4 3695 | '@miniflare/r2': 2.14.4 3696 | '@miniflare/runner-vm': 2.14.4 3697 | '@miniflare/scheduler': 2.14.4 3698 | '@miniflare/shared': 2.14.4 3699 | '@miniflare/sites': 2.14.4 3700 | '@miniflare/storage-file': 2.14.4 3701 | '@miniflare/storage-memory': 2.14.4 3702 | '@miniflare/web-sockets': 2.14.4 3703 | kleur: 4.1.5 3704 | semiver: 1.1.0 3705 | source-map-support: 0.5.21 3706 | undici: 5.28.4 3707 | optionalDependencies: 3708 | cron-schedule: 3.0.6 3709 | transitivePeerDependencies: 3710 | - bufferutil 3711 | - utf-8-validate 3712 | 3713 | minimatch@3.0.8: 3714 | dependencies: 3715 | brace-expansion: 1.1.11 3716 | 3717 | minimatch@3.1.2: 3718 | dependencies: 3719 | brace-expansion: 1.1.11 3720 | 3721 | minimatch@9.0.5: 3722 | dependencies: 3723 | brace-expansion: 2.0.1 3724 | 3725 | minipass@7.1.2: {} 3726 | 3727 | mri@1.2.0: {} 3728 | 3729 | ms@2.1.3: {} 3730 | 3731 | mustache@4.2.0: {} 3732 | 3733 | mute-stream@0.0.5: {} 3734 | 3735 | mz@2.7.0: 3736 | dependencies: 3737 | any-promise: 1.3.0 3738 | object-assign: 4.1.1 3739 | thenify-all: 1.6.0 3740 | 3741 | nanoid@3.3.8: {} 3742 | 3743 | node-forge@1.3.1: {} 3744 | 3745 | normalize-path@3.0.0: {} 3746 | 3747 | npm-run-path@5.3.0: 3748 | dependencies: 3749 | path-key: 4.0.0 3750 | 3751 | npx-import@1.1.4: 3752 | dependencies: 3753 | execa: 6.1.0 3754 | parse-package-name: 1.0.0 3755 | semver: 7.5.4 3756 | validate-npm-package-name: 4.0.0 3757 | 3758 | number-is-nan@1.0.1: {} 3759 | 3760 | oauth-sign@0.9.0: {} 3761 | 3762 | object-assign@4.1.1: {} 3763 | 3764 | once@1.4.0: 3765 | dependencies: 3766 | wrappy: 1.0.2 3767 | 3768 | onetime@1.1.0: {} 3769 | 3770 | onetime@6.0.0: 3771 | dependencies: 3772 | mimic-fn: 4.0.0 3773 | 3774 | os-homedir@1.0.2: {} 3775 | 3776 | os-tmpdir@1.0.2: {} 3777 | 3778 | outdent@0.5.0: {} 3779 | 3780 | p-filter@2.1.0: 3781 | dependencies: 3782 | p-map: 2.1.0 3783 | 3784 | p-limit@2.3.0: 3785 | dependencies: 3786 | p-try: 2.2.0 3787 | 3788 | p-locate@4.1.0: 3789 | dependencies: 3790 | p-limit: 2.3.0 3791 | 3792 | p-map@2.1.0: {} 3793 | 3794 | p-try@2.2.0: {} 3795 | 3796 | package-json-from-dist@1.0.1: {} 3797 | 3798 | package-manager-detector@0.2.8: {} 3799 | 3800 | parse-package-name@1.0.0: {} 3801 | 3802 | path-exists@4.0.0: {} 3803 | 3804 | path-is-absolute@1.0.1: {} 3805 | 3806 | path-key@3.1.1: {} 3807 | 3808 | path-key@4.0.0: {} 3809 | 3810 | path-parse@1.0.7: {} 3811 | 3812 | path-scurry@1.11.1: 3813 | dependencies: 3814 | lru-cache: 10.4.3 3815 | minipass: 7.1.2 3816 | 3817 | path-to-regexp@6.3.0: {} 3818 | 3819 | path-type@4.0.0: {} 3820 | 3821 | performance-now@2.1.0: {} 3822 | 3823 | picocolors@1.1.1: {} 3824 | 3825 | picomatch@2.3.1: {} 3826 | 3827 | picomatch@4.0.2: {} 3828 | 3829 | pify@4.0.1: {} 3830 | 3831 | pirates@4.0.6: {} 3832 | 3833 | postcss-load-config@6.0.1(tsx@4.19.2): 3834 | dependencies: 3835 | lilconfig: 3.1.3 3836 | optionalDependencies: 3837 | tsx: 4.19.2 3838 | 3839 | prettier@2.8.8: {} 3840 | 3841 | psl@1.15.0: 3842 | dependencies: 3843 | punycode: 2.3.1 3844 | 3845 | punycode@2.3.1: {} 3846 | 3847 | qs@6.5.3: {} 3848 | 3849 | queue-microtask@1.2.3: {} 3850 | 3851 | raw-body@3.0.0: 3852 | dependencies: 3853 | bytes: 3.1.2 3854 | http-errors: 2.0.0 3855 | iconv-lite: 0.6.3 3856 | unpipe: 1.0.0 3857 | 3858 | read-yaml-file@1.1.0: 3859 | dependencies: 3860 | graceful-fs: 4.2.11 3861 | js-yaml: 3.14.1 3862 | pify: 4.0.1 3863 | strip-bom: 3.0.0 3864 | 3865 | readdirp@3.6.0: 3866 | dependencies: 3867 | picomatch: 2.3.1 3868 | 3869 | readdirp@4.0.2: {} 3870 | 3871 | readline2@1.0.1: 3872 | dependencies: 3873 | code-point-at: 1.1.0 3874 | is-fullwidth-code-point: 1.0.0 3875 | mute-stream: 0.0.5 3876 | 3877 | regenerator-runtime@0.14.1: {} 3878 | 3879 | regenerator-runtime@0.9.6: {} 3880 | 3881 | request-promise@3.0.0: 3882 | dependencies: 3883 | bluebird: 3.7.2 3884 | lodash: 4.17.21 3885 | request: 2.88.2 3886 | 3887 | request@2.88.2: 3888 | dependencies: 3889 | aws-sign2: 0.7.0 3890 | aws4: 1.13.2 3891 | caseless: 0.12.0 3892 | combined-stream: 1.0.8 3893 | extend: 3.0.2 3894 | forever-agent: 0.6.1 3895 | form-data: 2.3.3 3896 | har-validator: 5.1.5 3897 | http-signature: 1.2.0 3898 | is-typedarray: 1.0.0 3899 | isstream: 0.1.2 3900 | json-stringify-safe: 5.0.1 3901 | mime-types: 2.1.35 3902 | oauth-sign: 0.9.0 3903 | performance-now: 2.1.0 3904 | qs: 6.5.3 3905 | safe-buffer: 5.2.1 3906 | tough-cookie: 2.5.0 3907 | tunnel-agent: 0.6.0 3908 | uuid: 3.4.0 3909 | 3910 | require-from-string@2.0.2: {} 3911 | 3912 | resolve-from@5.0.0: {} 3913 | 3914 | resolve-pkg-maps@1.0.0: {} 3915 | 3916 | resolve@1.22.10: 3917 | dependencies: 3918 | is-core-module: 2.16.1 3919 | path-parse: 1.0.7 3920 | supports-preserve-symlinks-flag: 1.0.0 3921 | 3922 | restore-cursor@1.0.1: 3923 | dependencies: 3924 | exit-hook: 1.1.1 3925 | onetime: 1.1.0 3926 | 3927 | reusify@1.0.4: {} 3928 | 3929 | rimraf@2.7.1: 3930 | dependencies: 3931 | glob: 7.2.3 3932 | 3933 | rollup-plugin-inject@3.0.2: 3934 | dependencies: 3935 | estree-walker: 0.6.1 3936 | magic-string: 0.25.9 3937 | rollup-pluginutils: 2.8.2 3938 | 3939 | rollup-plugin-node-polyfills@0.2.1: 3940 | dependencies: 3941 | rollup-plugin-inject: 3.0.2 3942 | 3943 | rollup-pluginutils@2.8.2: 3944 | dependencies: 3945 | estree-walker: 0.6.1 3946 | 3947 | rollup@4.29.1: 3948 | dependencies: 3949 | '@types/estree': 1.0.6 3950 | optionalDependencies: 3951 | '@rollup/rollup-android-arm-eabi': 4.29.1 3952 | '@rollup/rollup-android-arm64': 4.29.1 3953 | '@rollup/rollup-darwin-arm64': 4.29.1 3954 | '@rollup/rollup-darwin-x64': 4.29.1 3955 | '@rollup/rollup-freebsd-arm64': 4.29.1 3956 | '@rollup/rollup-freebsd-x64': 4.29.1 3957 | '@rollup/rollup-linux-arm-gnueabihf': 4.29.1 3958 | '@rollup/rollup-linux-arm-musleabihf': 4.29.1 3959 | '@rollup/rollup-linux-arm64-gnu': 4.29.1 3960 | '@rollup/rollup-linux-arm64-musl': 4.29.1 3961 | '@rollup/rollup-linux-loongarch64-gnu': 4.29.1 3962 | '@rollup/rollup-linux-powerpc64le-gnu': 4.29.1 3963 | '@rollup/rollup-linux-riscv64-gnu': 4.29.1 3964 | '@rollup/rollup-linux-s390x-gnu': 4.29.1 3965 | '@rollup/rollup-linux-x64-gnu': 4.29.1 3966 | '@rollup/rollup-linux-x64-musl': 4.29.1 3967 | '@rollup/rollup-win32-arm64-msvc': 4.29.1 3968 | '@rollup/rollup-win32-ia32-msvc': 4.29.1 3969 | '@rollup/rollup-win32-x64-msvc': 4.29.1 3970 | fsevents: 2.3.3 3971 | 3972 | run-async@0.1.0: 3973 | dependencies: 3974 | once: 1.4.0 3975 | 3976 | run-parallel@1.2.0: 3977 | dependencies: 3978 | queue-microtask: 1.2.3 3979 | 3980 | rx-lite@3.1.2: {} 3981 | 3982 | safe-buffer@5.2.1: {} 3983 | 3984 | safer-buffer@2.1.2: {} 3985 | 3986 | selfsigned@2.4.1: 3987 | dependencies: 3988 | '@types/node-forge': 1.3.11 3989 | node-forge: 1.3.1 3990 | 3991 | semiver@1.1.0: {} 3992 | 3993 | semver@7.5.4: 3994 | dependencies: 3995 | lru-cache: 6.0.0 3996 | 3997 | set-cookie-parser@2.7.1: {} 3998 | 3999 | setprototypeof@1.2.0: {} 4000 | 4001 | shebang-command@2.0.0: 4002 | dependencies: 4003 | shebang-regex: 3.0.0 4004 | 4005 | shebang-regex@3.0.0: {} 4006 | 4007 | signal-exit@3.0.7: {} 4008 | 4009 | signal-exit@4.1.0: {} 4010 | 4011 | slash@3.0.0: {} 4012 | 4013 | source-map-support@0.5.21: 4014 | dependencies: 4015 | buffer-from: 1.1.2 4016 | source-map: 0.6.1 4017 | 4018 | source-map@0.6.1: {} 4019 | 4020 | source-map@0.7.4: {} 4021 | 4022 | source-map@0.8.0-beta.0: 4023 | dependencies: 4024 | whatwg-url: 7.1.0 4025 | 4026 | sourcemap-codec@1.4.8: {} 4027 | 4028 | spawndamnit@3.0.1: 4029 | dependencies: 4030 | cross-spawn: 7.0.6 4031 | signal-exit: 4.1.0 4032 | 4033 | sprintf-js@1.0.3: {} 4034 | 4035 | sshpk@1.18.0: 4036 | dependencies: 4037 | asn1: 0.2.6 4038 | assert-plus: 1.0.0 4039 | bcrypt-pbkdf: 1.0.2 4040 | dashdash: 1.14.1 4041 | ecc-jsbn: 0.1.2 4042 | getpass: 0.1.7 4043 | jsbn: 0.1.1 4044 | safer-buffer: 2.1.2 4045 | tweetnacl: 0.14.5 4046 | 4047 | stack-trace@0.0.10: {} 4048 | 4049 | statuses@2.0.1: {} 4050 | 4051 | streamsearch@1.1.0: {} 4052 | 4053 | string-argv@0.3.2: {} 4054 | 4055 | string-width@1.0.2: 4056 | dependencies: 4057 | code-point-at: 1.1.0 4058 | is-fullwidth-code-point: 1.0.0 4059 | strip-ansi: 3.0.1 4060 | 4061 | string-width@4.2.3: 4062 | dependencies: 4063 | emoji-regex: 8.0.0 4064 | is-fullwidth-code-point: 3.0.0 4065 | strip-ansi: 6.0.1 4066 | 4067 | string-width@5.1.2: 4068 | dependencies: 4069 | eastasianwidth: 0.2.0 4070 | emoji-regex: 9.2.2 4071 | strip-ansi: 7.1.0 4072 | 4073 | strip-ansi@3.0.1: 4074 | dependencies: 4075 | ansi-regex: 2.1.1 4076 | 4077 | strip-ansi@6.0.1: 4078 | dependencies: 4079 | ansi-regex: 5.0.1 4080 | 4081 | strip-ansi@7.1.0: 4082 | dependencies: 4083 | ansi-regex: 6.1.0 4084 | 4085 | strip-bom@3.0.0: {} 4086 | 4087 | strip-final-newline@3.0.0: {} 4088 | 4089 | strip-json-comments@3.1.1: {} 4090 | 4091 | sucrase@3.35.0: 4092 | dependencies: 4093 | '@jridgewell/gen-mapping': 0.3.8 4094 | commander: 4.1.1 4095 | glob: 10.4.5 4096 | lines-and-columns: 1.2.4 4097 | mz: 2.7.0 4098 | pirates: 4.0.6 4099 | ts-interface-checker: 0.1.13 4100 | 4101 | supports-color@2.0.0: {} 4102 | 4103 | supports-color@8.1.1: 4104 | dependencies: 4105 | has-flag: 4.0.0 4106 | 4107 | supports-preserve-symlinks-flag@1.0.0: {} 4108 | 4109 | term-size@2.2.1: {} 4110 | 4111 | thenify-all@1.6.0: 4112 | dependencies: 4113 | thenify: 3.3.1 4114 | 4115 | thenify@3.3.1: 4116 | dependencies: 4117 | any-promise: 1.3.0 4118 | 4119 | through@2.3.8: {} 4120 | 4121 | tinyexec@0.3.2: {} 4122 | 4123 | tinyglobby@0.2.10: 4124 | dependencies: 4125 | fdir: 6.4.2(picomatch@4.0.2) 4126 | picomatch: 4.0.2 4127 | 4128 | tmp@0.0.33: 4129 | dependencies: 4130 | os-tmpdir: 1.0.2 4131 | 4132 | to-regex-range@5.0.1: 4133 | dependencies: 4134 | is-number: 7.0.0 4135 | 4136 | toidentifier@1.0.1: {} 4137 | 4138 | tough-cookie@2.5.0: 4139 | dependencies: 4140 | psl: 1.15.0 4141 | punycode: 2.3.1 4142 | 4143 | tr46@1.0.1: 4144 | dependencies: 4145 | punycode: 2.3.1 4146 | 4147 | tree-kill@1.2.2: {} 4148 | 4149 | ts-interface-checker@0.1.13: {} 4150 | 4151 | tsup@8.3.5(@microsoft/api-extractor@7.48.1(@types/node@22.10.2))(tsx@4.19.2)(typescript@5.7.2): 4152 | dependencies: 4153 | bundle-require: 5.1.0(esbuild@0.24.2) 4154 | cac: 6.7.14 4155 | chokidar: 4.0.3 4156 | consola: 3.3.3 4157 | debug: 4.4.0 4158 | esbuild: 0.24.2 4159 | joycon: 3.1.1 4160 | picocolors: 1.1.1 4161 | postcss-load-config: 6.0.1(tsx@4.19.2) 4162 | resolve-from: 5.0.0 4163 | rollup: 4.29.1 4164 | source-map: 0.8.0-beta.0 4165 | sucrase: 3.35.0 4166 | tinyexec: 0.3.2 4167 | tinyglobby: 0.2.10 4168 | tree-kill: 1.2.2 4169 | optionalDependencies: 4170 | '@microsoft/api-extractor': 7.48.1(@types/node@22.10.2) 4171 | typescript: 5.7.2 4172 | transitivePeerDependencies: 4173 | - jiti 4174 | - supports-color 4175 | - tsx 4176 | - yaml 4177 | 4178 | tsx@4.19.2: 4179 | dependencies: 4180 | esbuild: 0.23.1 4181 | get-tsconfig: 4.8.1 4182 | optionalDependencies: 4183 | fsevents: 2.3.3 4184 | 4185 | tunnel-agent@0.6.0: 4186 | dependencies: 4187 | safe-buffer: 5.2.1 4188 | 4189 | turbo-darwin-64@2.3.3: 4190 | optional: true 4191 | 4192 | turbo-darwin-arm64@2.3.3: 4193 | optional: true 4194 | 4195 | turbo-linux-64@2.3.3: 4196 | optional: true 4197 | 4198 | turbo-linux-arm64@2.3.3: 4199 | optional: true 4200 | 4201 | turbo-windows-64@2.3.3: 4202 | optional: true 4203 | 4204 | turbo-windows-arm64@2.3.3: 4205 | optional: true 4206 | 4207 | turbo@2.3.3: 4208 | optionalDependencies: 4209 | turbo-darwin-64: 2.3.3 4210 | turbo-darwin-arm64: 2.3.3 4211 | turbo-linux-64: 2.3.3 4212 | turbo-linux-arm64: 2.3.3 4213 | turbo-windows-64: 2.3.3 4214 | turbo-windows-arm64: 2.3.3 4215 | 4216 | tweetnacl@0.14.5: {} 4217 | 4218 | typescript@4.9.5: {} 4219 | 4220 | typescript@5.4.2: {} 4221 | 4222 | typescript@5.7.2: {} 4223 | 4224 | undici-types@6.20.0: {} 4225 | 4226 | undici@5.28.4: 4227 | dependencies: 4228 | '@fastify/busboy': 2.1.1 4229 | 4230 | universalify@0.1.2: {} 4231 | 4232 | unpipe@1.0.0: {} 4233 | 4234 | untildify@3.0.3: {} 4235 | 4236 | uri-js@4.4.1: 4237 | dependencies: 4238 | punycode: 2.3.1 4239 | 4240 | urlpattern-polyfill@4.0.3: {} 4241 | 4242 | user-home@2.0.0: 4243 | dependencies: 4244 | os-homedir: 1.0.2 4245 | 4246 | uuid@3.4.0: {} 4247 | 4248 | validate-npm-package-name@4.0.0: 4249 | dependencies: 4250 | builtins: 5.1.0 4251 | 4252 | verror@1.10.0: 4253 | dependencies: 4254 | assert-plus: 1.0.0 4255 | core-util-is: 1.0.2 4256 | extsprintf: 1.3.0 4257 | 4258 | webidl-conversions@4.0.2: {} 4259 | 4260 | whatwg-url@7.1.0: 4261 | dependencies: 4262 | lodash.sortby: 4.7.0 4263 | tr46: 1.0.1 4264 | webidl-conversions: 4.0.2 4265 | 4266 | which@2.0.2: 4267 | dependencies: 4268 | isexe: 2.0.0 4269 | 4270 | wrangler@2.21.2(cron-schedule@3.0.6): 4271 | dependencies: 4272 | '@cloudflare/kv-asset-handler': 0.2.0 4273 | '@esbuild-plugins/node-globals-polyfill': 0.1.1(esbuild@0.16.3) 4274 | '@esbuild-plugins/node-modules-polyfill': 0.1.4(esbuild@0.16.3) 4275 | '@miniflare/core': 2.14.4 4276 | '@miniflare/d1': 2.14.4 4277 | '@miniflare/durable-objects': 2.14.4 4278 | blake3-wasm: 2.1.5 4279 | chokidar: 3.6.0 4280 | esbuild: 0.16.3 4281 | miniflare: 2.14.4(cron-schedule@3.0.6) 4282 | nanoid: 3.3.8 4283 | path-to-regexp: 6.3.0 4284 | selfsigned: 2.4.1 4285 | source-map: 0.7.4 4286 | xxhash-wasm: 1.1.0 4287 | optionalDependencies: 4288 | fsevents: 2.3.3 4289 | transitivePeerDependencies: 4290 | - '@miniflare/storage-redis' 4291 | - bufferutil 4292 | - cron-schedule 4293 | - ioredis 4294 | - utf-8-validate 4295 | 4296 | wrap-ansi@7.0.0: 4297 | dependencies: 4298 | ansi-styles: 4.3.0 4299 | string-width: 4.2.3 4300 | strip-ansi: 6.0.1 4301 | 4302 | wrap-ansi@8.1.0: 4303 | dependencies: 4304 | ansi-styles: 6.2.1 4305 | string-width: 5.1.2 4306 | strip-ansi: 7.1.0 4307 | 4308 | wrappy@1.0.2: {} 4309 | 4310 | ws@8.18.0: {} 4311 | 4312 | xxhash-wasm@1.1.0: {} 4313 | 4314 | yallist@4.0.0: {} 4315 | 4316 | youch@2.2.2: 4317 | dependencies: 4318 | '@types/stack-trace': 0.0.29 4319 | cookie: 0.4.2 4320 | mustache: 4.2.0 4321 | stack-trace: 0.0.10 4322 | 4323 | zod-to-json-schema@3.24.1(zod@3.24.1): 4324 | dependencies: 4325 | zod: 3.24.1 4326 | 4327 | zod@3.24.1: {} 4328 | -------------------------------------------------------------------------------- /pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | packages: 2 | - 'packages/*' 3 | - 'examples/*' 4 | -------------------------------------------------------------------------------- /tsconfig.base.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "lib": ["ES2023", "DOM"], 4 | "strict": true, 5 | "esModuleInterop": true, 6 | "skipLibCheck": true, 7 | "forceConsistentCasingInFileNames": true 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /turbo.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://turbo.build/schema.json", 3 | "globalDependencies": ["**/.env"], 4 | "tasks": { 5 | "build": { 6 | "dependsOn": ["@remote-mcp/server#build"], 7 | "outputs": ["dist/**"] 8 | }, 9 | "dev": { 10 | "cache": false, 11 | "persistent": true 12 | }, 13 | "@remote-mcp/server#build": { 14 | "outputs": ["dist/**"] 15 | }, 16 | "test": { 17 | "dependsOn": ["build"] 18 | } 19 | } 20 | } 21 | --------------------------------------------------------------------------------