├── .changeset
├── README.md
└── config.json
├── .gitignore
├── .prettierignore
├── .prettierrc
├── CHANGELOG.md
├── LICENSE
├── README.md
├── package.json
├── pnpm-lock.yaml
├── src
└── index.ts
└── tsconfig.json
/.changeset/README.md:
--------------------------------------------------------------------------------
1 | # Changesets
2 |
3 | Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
4 | with multi-package repos, or single-package repos to help you version and publish your code. You can
5 | find the full documentation for it [in our repository](https://github.com/changesets/changesets)
6 |
7 | We have a quick list of common questions to get you started engaging with this project in
8 | [our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md)
9 |
--------------------------------------------------------------------------------
/.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 | }
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Dependencies
2 | node_modules/
3 | .pnpm-store/
4 |
5 | # Build output
6 | dist/
7 | build/
8 |
9 | # Environment variables
10 | .env
11 | .env.local
12 | .env.*.local
13 |
14 | # IDE
15 | .vscode/
16 | .idea/
17 | *.swp
18 | *.swo
19 |
20 | # Logs
21 | *.log
22 | npm-debug.log*
23 | pnpm-debug.log*
24 |
25 | # Testing
26 | coverage/
27 |
28 | # Database files
29 | *.db
30 | *.db-journal
31 |
32 | # OS
33 | .DS_Store
34 | Thumbs.db
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | # Package Managers
2 | package-lock.json
3 | pnpm-lock.yaml
4 | yarn.lock
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "useTabs": true,
3 | "singleQuote": true,
4 | "trailingComma": "all",
5 | "printWidth": 70,
6 | "proseWrap": "always"
7 | }
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # mcp-jinaai-reader
2 |
3 | ## 0.0.4
4 |
5 | ### Patch Changes
6 |
7 | - fix: update README.md for mcp-jinaai-reader configuration
8 |
9 | ## 0.0.3
10 |
11 | ### Patch Changes
12 |
13 | - add glama banner
14 |
15 | ## 0.0.2
16 |
17 | ### Patch Changes
18 |
19 | - update for publish to npm
20 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2025 Scott Spence
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining
6 | a copy of this software and associated documentation files (the
7 | "Software"), to deal in the Software without restriction, including
8 | without limitation the rights to use, copy, modify, merge, publish,
9 | distribute, sublicense, and/or sell copies of the Software, and to
10 | permit persons to whom the Software is furnished to do so, subject to
11 | the following conditions:
12 |
13 | The above copyright notice and this permission notice shall be
14 | included in all copies or substantial portions of the Software.
15 |
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # mcp-jinaai-reader
2 | ---
3 |
4 | ## ⚠️ Notice
5 |
6 | **This repository is no longer maintained.**
7 |
8 | The functionality of this tool is now available in [mcp-omnisearch](https://github.com/spences10/mcp-omnisearch), which combines multiple MCP tools in one unified package.
9 |
10 | Please use [mcp-omnisearch](https://github.com/spences10/mcp-omnisearch) instead.
11 |
12 | ---
13 |
14 | A Model Context Protocol (MCP) server for integrating Jina.ai's Reader
15 | API with LLMs. This server provides efficient and comprehensive web
16 | content extraction capabilities, optimized for documentation and web
17 | content analysis.
18 |
19 |
20 |
21 |
22 |
23 | ## Features
24 |
25 | - 📚 Advanced web content extraction through Jina.ai Reader API
26 | - 🚀 Fast and efficient content retrieval
27 | - 📄 Complete text extraction with preserved structure
28 | - 🔄 Clean format optimized for LLMs
29 | - 🌐 Support for various content types including documentation
30 | - 🏗️ Built on the Model Context Protocol
31 |
32 | ## Configuration
33 |
34 | This server requires configuration through your MCP client. Here are
35 | examples for different environments:
36 |
37 | ### Cline Configuration
38 |
39 | Add this to your Cline MCP settings:
40 |
41 | ```json
42 | {
43 | "mcpServers": {
44 | "jinaai-reader": {
45 | "command": "node",
46 | "args": ["-y", "mcp-jinaai-reader"],
47 | "env": {
48 | "JINAAI_API_KEY": "your-jinaai-api-key"
49 | }
50 | }
51 | }
52 | }
53 | ```
54 |
55 | ### Claude Desktop with WSL Configuration
56 |
57 | For WSL environments, add this to your Claude Desktop configuration:
58 |
59 | ```json
60 | {
61 | "mcpServers": {
62 | "jinaai-reader": {
63 | "command": "wsl.exe",
64 | "args": [
65 | "bash",
66 | "-c",
67 | "JINAAI_API_KEY=your-jinaai-api-key npx mcp-jinaai-reader"
68 | ]
69 | }
70 | }
71 | }
72 | ```
73 |
74 | ### Environment Variables
75 |
76 | The server requires the following environment variable:
77 |
78 | - `JINAAI_API_KEY`: Your Jina.ai API key (required)
79 |
80 | ## API
81 |
82 | The server implements a single MCP tool with configurable parameters:
83 |
84 | ### read_url
85 |
86 | Convert any URL to LLM-friendly text using Jina.ai Reader.
87 |
88 | Parameters:
89 |
90 | - `url` (string, required): URL to process
91 | - `no_cache` (boolean, optional): Bypass cache for fresh results.
92 | Defaults to false
93 | - `format` (string, optional): Response format ("json" or "stream").
94 | Defaults to "json"
95 | - `timeout` (number, optional): Maximum time in seconds to wait for
96 | webpage load
97 | - `target_selector` (string, optional): CSS selector to focus on
98 | specific elements
99 | - `wait_for_selector` (string, optional): CSS selector to wait for
100 | specific elements
101 | - `remove_selector` (string, optional): CSS selector to exclude
102 | specific elements
103 | - `with_links_summary` (boolean, optional): Gather all links at the
104 | end of response
105 | - `with_images_summary` (boolean, optional): Gather all images at the
106 | end of response
107 | - `with_generated_alt` (boolean, optional): Add alt text to images
108 | lacking captions
109 | - `with_iframe` (boolean, optional): Include iframe content in
110 | response
111 |
112 | ## Development
113 |
114 | ### Setup
115 |
116 | 1. Clone the repository
117 | 2. Install dependencies:
118 |
119 | ```bash
120 | npm install
121 | ```
122 |
123 | 3. Build the project:
124 |
125 | ```bash
126 | npm run build
127 | ```
128 |
129 | 4. Run in development mode:
130 |
131 | ```bash
132 | npm run dev
133 | ```
134 |
135 | ### Publishing
136 |
137 | 1. Update version in package.json
138 | 2. Build the project:
139 |
140 | ```bash
141 | npm run build
142 | ```
143 |
144 | 3. Publish to npm:
145 |
146 | ```bash
147 | npm publish
148 | ```
149 |
150 | ## Contributing
151 |
152 | Contributions are welcome! Please feel free to submit a Pull Request.
153 |
154 | ## License
155 |
156 | MIT License - see the [LICENSE](LICENSE) file for details.
157 |
158 | ## Acknowledgments
159 |
160 | - Built on the
161 | [Model Context Protocol](https://github.com/modelcontextprotocol)
162 | - Powered by [Jina.ai Reader API](https://jina.ai)
163 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "mcp-jinaai-reader",
3 | "version": "0.0.4",
4 | "description": "MCP server for JinaAI reader",
5 | "type": "module",
6 | "main": "dist/index.js",
7 | "types": "dist/index.d.ts",
8 | "bin": {
9 | "mcp-jinaai-reader": "./dist/index.js"
10 | },
11 | "files": [
12 | "dist",
13 | "README.md",
14 | "LICENSE"
15 | ],
16 | "scripts": {
17 | "build": "tsc && chmod +x dist/index.js",
18 | "start": "node dist/index.js",
19 | "dev": "npx @modelcontextprotocol/inspector dist/index.js",
20 | "changeset": "changeset",
21 | "version": "changeset version",
22 | "release": "pnpm run build && changeset publish"
23 | },
24 | "keywords": [
25 | "mcp",
26 | "model-context-protocol",
27 | "jinaai",
28 | "reader",
29 | "web-content",
30 | "documentation",
31 | "content-extraction",
32 | "text-extraction",
33 | "llm",
34 | "ai",
35 | "web-scraping",
36 | "content-parser"
37 | ],
38 | "author": "Scott Spence",
39 | "license": "MIT",
40 | "repository": {
41 | "type": "git",
42 | "url": "https://github.com/spences10/mcp-jinaai-reader.git"
43 | },
44 | "bugs": {
45 | "url": "https://github.com/spences10/mcp-jinaai-reader/issues"
46 | },
47 | "homepage": "https://github.com/spences10/mcp-jinaai-reader#readme",
48 | "dependencies": {
49 | "@modelcontextprotocol/sdk": "1.8.0"
50 | },
51 | "devDependencies": {
52 | "@changesets/cli": "^2.28.1",
53 | "@types/node": "^22.13.14",
54 | "typescript": "^5.8.2"
55 | }
56 | }
--------------------------------------------------------------------------------
/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: '9.0'
2 |
3 | settings:
4 | autoInstallPeers: true
5 | excludeLinksFromLockfile: false
6 |
7 | importers:
8 |
9 | .:
10 | dependencies:
11 | '@modelcontextprotocol/sdk':
12 | specifier: 1.8.0
13 | version: 1.8.0
14 | devDependencies:
15 | '@changesets/cli':
16 | specifier: ^2.28.1
17 | version: 2.28.1
18 | '@types/node':
19 | specifier: ^22.13.14
20 | version: 22.14.0
21 | typescript:
22 | specifier: ^5.8.2
23 | version: 5.8.3
24 |
25 | packages:
26 |
27 | '@babel/runtime@7.26.9':
28 | resolution: {integrity: sha512-aA63XwOkcl4xxQa3HjPMqOP6LiK0ZDv3mUPYEFXkpHbaFjtGggE1A61FjFzJnB+p7/oy2gA8E+rcBNl/zC1tMg==}
29 | engines: {node: '>=6.9.0'}
30 |
31 | '@changesets/apply-release-plan@7.0.10':
32 | resolution: {integrity: sha512-wNyeIJ3yDsVspYvHnEz1xQDq18D9ifed3lI+wxRQRK4pArUcuHgCTrHv0QRnnwjhVCQACxZ+CBih3wgOct6UXw==}
33 |
34 | '@changesets/assemble-release-plan@6.0.6':
35 | resolution: {integrity: sha512-Frkj8hWJ1FRZiY3kzVCKzS0N5mMwWKwmv9vpam7vt8rZjLL1JMthdh6pSDVSPumHPshTTkKZ0VtNbE0cJHZZUg==}
36 |
37 | '@changesets/changelog-git@0.2.1':
38 | resolution: {integrity: sha512-x/xEleCFLH28c3bQeQIyeZf8lFXyDFVn1SgcBiR2Tw/r4IAWlk1fzxCEZ6NxQAjF2Nwtczoen3OA2qR+UawQ8Q==}
39 |
40 | '@changesets/cli@2.28.1':
41 | resolution: {integrity: sha512-PiIyGRmSc6JddQJe/W1hRPjiN4VrMvb2VfQ6Uydy2punBioQrsxppyG5WafinKcW1mT0jOe/wU4k9Zy5ff21AA==}
42 | hasBin: true
43 |
44 | '@changesets/config@3.1.1':
45 | resolution: {integrity: sha512-bd+3Ap2TKXxljCggI0mKPfzCQKeV/TU4yO2h2C6vAihIo8tzseAn2e7klSuiyYYXvgu53zMN1OeYMIQkaQoWnA==}
46 |
47 | '@changesets/errors@0.2.0':
48 | resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==}
49 |
50 | '@changesets/get-dependents-graph@2.1.3':
51 | resolution: {integrity: sha512-gphr+v0mv2I3Oxt19VdWRRUxq3sseyUpX9DaHpTUmLj92Y10AGy+XOtV+kbM6L/fDcpx7/ISDFK6T8A/P3lOdQ==}
52 |
53 | '@changesets/get-release-plan@4.0.8':
54 | resolution: {integrity: sha512-MM4mq2+DQU1ZT7nqxnpveDMTkMBLnwNX44cX7NSxlXmr7f8hO6/S2MXNiXG54uf/0nYnefv0cfy4Czf/ZL/EKQ==}
55 |
56 | '@changesets/get-version-range-type@0.4.0':
57 | resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==}
58 |
59 | '@changesets/git@3.0.2':
60 | resolution: {integrity: sha512-r1/Kju9Y8OxRRdvna+nxpQIsMsRQn9dhhAZt94FLDeu0Hij2hnOozW8iqnHBgvu+KdnJppCveQwK4odwfw/aWQ==}
61 |
62 | '@changesets/logger@0.1.1':
63 | resolution: {integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==}
64 |
65 | '@changesets/parse@0.4.1':
66 | resolution: {integrity: sha512-iwksMs5Bf/wUItfcg+OXrEpravm5rEd9Bf4oyIPL4kVTmJQ7PNDSd6MDYkpSJR1pn7tz/k8Zf2DhTCqX08Ou+Q==}
67 |
68 | '@changesets/pre@2.0.2':
69 | resolution: {integrity: sha512-HaL/gEyFVvkf9KFg6484wR9s0qjAXlZ8qWPDkTyKF6+zqjBe/I2mygg3MbpZ++hdi0ToqNUF8cjj7fBy0dg8Ug==}
70 |
71 | '@changesets/read@0.6.3':
72 | resolution: {integrity: sha512-9H4p/OuJ3jXEUTjaVGdQEhBdqoT2cO5Ts95JTFsQyawmKzpL8FnIeJSyhTDPW1MBRDnwZlHFEM9SpPwJDY5wIg==}
73 |
74 | '@changesets/should-skip-package@0.1.2':
75 | resolution: {integrity: sha512-qAK/WrqWLNCP22UDdBTMPH5f41elVDlsNyat180A33dWxuUDyNpg6fPi/FyTZwRriVjg0L8gnjJn2F9XAoF0qw==}
76 |
77 | '@changesets/types@4.1.0':
78 | resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==}
79 |
80 | '@changesets/types@6.1.0':
81 | resolution: {integrity: sha512-rKQcJ+o1nKNgeoYRHKOS07tAMNd3YSN0uHaJOZYjBAgxfV7TUE7JE+z4BzZdQwb5hKaYbayKN5KrYV7ODb2rAA==}
82 |
83 | '@changesets/write@0.4.0':
84 | resolution: {integrity: sha512-CdTLvIOPiCNuH71pyDu3rA+Q0n65cmAbXnwWH84rKGiFumFzkmHNT8KHTMEchcxN+Kl8I54xGUhJ7l3E7X396Q==}
85 |
86 | '@manypkg/find-root@1.1.0':
87 | resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==}
88 |
89 | '@manypkg/get-packages@1.1.3':
90 | resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==}
91 |
92 | '@modelcontextprotocol/sdk@1.8.0':
93 | resolution: {integrity: sha512-e06W7SwrontJDHwCawNO5SGxG+nU9AAx+jpHHZqGl/WrDBdWOpvirC+s58VpJTB5QemI4jTRcjWT4Pt3Q1NPQQ==}
94 | engines: {node: '>=18'}
95 |
96 | '@nodelib/fs.scandir@2.1.5':
97 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
98 | engines: {node: '>= 8'}
99 |
100 | '@nodelib/fs.stat@2.0.5':
101 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
102 | engines: {node: '>= 8'}
103 |
104 | '@nodelib/fs.walk@1.2.8':
105 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
106 | engines: {node: '>= 8'}
107 |
108 | '@types/node@12.20.55':
109 | resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==}
110 |
111 | '@types/node@22.14.0':
112 | resolution: {integrity: sha512-Kmpl+z84ILoG+3T/zQFyAJsU6EPTmOCj8/2+83fSN6djd6I4o7uOuGIH6vq3PrjY5BGitSbFuMN18j3iknubbA==}
113 |
114 | accepts@2.0.0:
115 | resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==}
116 | engines: {node: '>= 0.6'}
117 |
118 | ansi-colors@4.1.3:
119 | resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==}
120 | engines: {node: '>=6'}
121 |
122 | ansi-regex@5.0.1:
123 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
124 | engines: {node: '>=8'}
125 |
126 | argparse@1.0.10:
127 | resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
128 |
129 | array-union@2.1.0:
130 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
131 | engines: {node: '>=8'}
132 |
133 | better-path-resolve@1.0.0:
134 | resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==}
135 | engines: {node: '>=4'}
136 |
137 | body-parser@2.1.0:
138 | resolution: {integrity: sha512-/hPxh61E+ll0Ujp24Ilm64cykicul1ypfwjVttduAiEdtnJFvLePSrIPk+HMImtNv5270wOGCb1Tns2rybMkoQ==}
139 | engines: {node: '>=18'}
140 |
141 | braces@3.0.3:
142 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
143 | engines: {node: '>=8'}
144 |
145 | bytes@3.1.2:
146 | resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
147 | engines: {node: '>= 0.8'}
148 |
149 | call-bind-apply-helpers@1.0.2:
150 | resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
151 | engines: {node: '>= 0.4'}
152 |
153 | call-bound@1.0.4:
154 | resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==}
155 | engines: {node: '>= 0.4'}
156 |
157 | chardet@0.7.0:
158 | resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
159 |
160 | ci-info@3.9.0:
161 | resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
162 | engines: {node: '>=8'}
163 |
164 | content-disposition@1.0.0:
165 | resolution: {integrity: sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==}
166 | engines: {node: '>= 0.6'}
167 |
168 | content-type@1.0.5:
169 | resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==}
170 | engines: {node: '>= 0.6'}
171 |
172 | cookie-signature@1.2.2:
173 | resolution: {integrity: sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==}
174 | engines: {node: '>=6.6.0'}
175 |
176 | cookie@0.7.1:
177 | resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==}
178 | engines: {node: '>= 0.6'}
179 |
180 | cors@2.8.5:
181 | resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==}
182 | engines: {node: '>= 0.10'}
183 |
184 | cross-spawn@7.0.6:
185 | resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
186 | engines: {node: '>= 8'}
187 |
188 | debug@4.3.6:
189 | resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==}
190 | engines: {node: '>=6.0'}
191 | peerDependencies:
192 | supports-color: '*'
193 | peerDependenciesMeta:
194 | supports-color:
195 | optional: true
196 |
197 | debug@4.4.0:
198 | resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==}
199 | engines: {node: '>=6.0'}
200 | peerDependencies:
201 | supports-color: '*'
202 | peerDependenciesMeta:
203 | supports-color:
204 | optional: true
205 |
206 | depd@2.0.0:
207 | resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
208 | engines: {node: '>= 0.8'}
209 |
210 | destroy@1.2.0:
211 | resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
212 | engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
213 |
214 | detect-indent@6.1.0:
215 | resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==}
216 | engines: {node: '>=8'}
217 |
218 | dir-glob@3.0.1:
219 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
220 | engines: {node: '>=8'}
221 |
222 | dunder-proto@1.0.1:
223 | resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
224 | engines: {node: '>= 0.4'}
225 |
226 | ee-first@1.1.1:
227 | resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
228 |
229 | encodeurl@2.0.0:
230 | resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==}
231 | engines: {node: '>= 0.8'}
232 |
233 | enquirer@2.4.1:
234 | resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==}
235 | engines: {node: '>=8.6'}
236 |
237 | es-define-property@1.0.1:
238 | resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==}
239 | engines: {node: '>= 0.4'}
240 |
241 | es-errors@1.3.0:
242 | resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
243 | engines: {node: '>= 0.4'}
244 |
245 | es-object-atoms@1.1.1:
246 | resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==}
247 | engines: {node: '>= 0.4'}
248 |
249 | escape-html@1.0.3:
250 | resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
251 |
252 | esprima@4.0.1:
253 | resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
254 | engines: {node: '>=4'}
255 | hasBin: true
256 |
257 | etag@1.8.1:
258 | resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
259 | engines: {node: '>= 0.6'}
260 |
261 | eventsource-parser@3.0.0:
262 | resolution: {integrity: sha512-T1C0XCUimhxVQzW4zFipdx0SficT651NnkR0ZSH3yQwh+mFMdLfgjABVi4YtMTtaL4s168593DaoaRLMqryavA==}
263 | engines: {node: '>=18.0.0'}
264 |
265 | eventsource@3.0.2:
266 | resolution: {integrity: sha512-YolzkJNxsTL3tCJMWFxpxtG2sCjbZ4LQUBUrkdaJK0ub0p6lmJt+2+1SwhKjLc652lpH9L/79Ptez972H9tphw==}
267 | engines: {node: '>=18.0.0'}
268 |
269 | express-rate-limit@7.5.0:
270 | resolution: {integrity: sha512-eB5zbQh5h+VenMPM3fh+nw1YExi5nMr6HUCR62ELSP11huvxm/Uir1H1QEyTkk5QX6A58pX6NmaTMceKZ0Eodg==}
271 | engines: {node: '>= 16'}
272 | peerDependencies:
273 | express: ^4.11 || 5 || ^5.0.0-beta.1
274 |
275 | express@5.0.1:
276 | resolution: {integrity: sha512-ORF7g6qGnD+YtUG9yx4DFoqCShNMmUKiXuT5oWMHiOvt/4WFbHC6yCwQMTSBMno7AqntNCAzzcnnjowRkTL9eQ==}
277 | engines: {node: '>= 18'}
278 |
279 | extendable-error@0.1.7:
280 | resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==}
281 |
282 | external-editor@3.1.0:
283 | resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==}
284 | engines: {node: '>=4'}
285 |
286 | fast-glob@3.3.3:
287 | resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==}
288 | engines: {node: '>=8.6.0'}
289 |
290 | fastq@1.19.0:
291 | resolution: {integrity: sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==}
292 |
293 | fill-range@7.1.1:
294 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
295 | engines: {node: '>=8'}
296 |
297 | finalhandler@2.1.0:
298 | resolution: {integrity: sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==}
299 | engines: {node: '>= 0.8'}
300 |
301 | find-up@4.1.0:
302 | resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
303 | engines: {node: '>=8'}
304 |
305 | forwarded@0.2.0:
306 | resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
307 | engines: {node: '>= 0.6'}
308 |
309 | fresh@0.5.2:
310 | resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
311 | engines: {node: '>= 0.6'}
312 |
313 | fresh@2.0.0:
314 | resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==}
315 | engines: {node: '>= 0.8'}
316 |
317 | fs-extra@7.0.1:
318 | resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==}
319 | engines: {node: '>=6 <7 || >=8'}
320 |
321 | fs-extra@8.1.0:
322 | resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==}
323 | engines: {node: '>=6 <7 || >=8'}
324 |
325 | function-bind@1.1.2:
326 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
327 |
328 | get-intrinsic@1.3.0:
329 | resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==}
330 | engines: {node: '>= 0.4'}
331 |
332 | get-proto@1.0.1:
333 | resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==}
334 | engines: {node: '>= 0.4'}
335 |
336 | glob-parent@5.1.2:
337 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
338 | engines: {node: '>= 6'}
339 |
340 | globby@11.1.0:
341 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
342 | engines: {node: '>=10'}
343 |
344 | gopd@1.2.0:
345 | resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
346 | engines: {node: '>= 0.4'}
347 |
348 | graceful-fs@4.2.11:
349 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
350 |
351 | has-symbols@1.1.0:
352 | resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==}
353 | engines: {node: '>= 0.4'}
354 |
355 | hasown@2.0.2:
356 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
357 | engines: {node: '>= 0.4'}
358 |
359 | http-errors@2.0.0:
360 | resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
361 | engines: {node: '>= 0.8'}
362 |
363 | human-id@4.1.1:
364 | resolution: {integrity: sha512-3gKm/gCSUipeLsRYZbbdA1BD83lBoWUkZ7G9VFrhWPAU76KwYo5KR8V28bpoPm/ygy0x5/GCbpRQdY7VLYCoIg==}
365 | hasBin: true
366 |
367 | iconv-lite@0.4.24:
368 | resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
369 | engines: {node: '>=0.10.0'}
370 |
371 | iconv-lite@0.5.2:
372 | resolution: {integrity: sha512-kERHXvpSaB4aU3eANwidg79K8FlrN77m8G9V+0vOR3HYaRifrlwMEpT7ZBJqLSEIHnEgJTHcWK82wwLwwKwtag==}
373 | engines: {node: '>=0.10.0'}
374 |
375 | iconv-lite@0.6.3:
376 | resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
377 | engines: {node: '>=0.10.0'}
378 |
379 | ignore@5.3.2:
380 | resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
381 | engines: {node: '>= 4'}
382 |
383 | inherits@2.0.4:
384 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
385 |
386 | ipaddr.js@1.9.1:
387 | resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==}
388 | engines: {node: '>= 0.10'}
389 |
390 | is-extglob@2.1.1:
391 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
392 | engines: {node: '>=0.10.0'}
393 |
394 | is-glob@4.0.3:
395 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
396 | engines: {node: '>=0.10.0'}
397 |
398 | is-number@7.0.0:
399 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
400 | engines: {node: '>=0.12.0'}
401 |
402 | is-promise@4.0.0:
403 | resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==}
404 |
405 | is-subdir@1.2.0:
406 | resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==}
407 | engines: {node: '>=4'}
408 |
409 | is-windows@1.0.2:
410 | resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
411 | engines: {node: '>=0.10.0'}
412 |
413 | isexe@2.0.0:
414 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
415 |
416 | js-yaml@3.14.1:
417 | resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
418 | hasBin: true
419 |
420 | jsonfile@4.0.0:
421 | resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==}
422 |
423 | locate-path@5.0.0:
424 | resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
425 | engines: {node: '>=8'}
426 |
427 | lodash.startcase@4.4.0:
428 | resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==}
429 |
430 | math-intrinsics@1.1.0:
431 | resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
432 | engines: {node: '>= 0.4'}
433 |
434 | media-typer@1.1.0:
435 | resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==}
436 | engines: {node: '>= 0.8'}
437 |
438 | merge-descriptors@2.0.0:
439 | resolution: {integrity: sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==}
440 | engines: {node: '>=18'}
441 |
442 | merge2@1.4.1:
443 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
444 | engines: {node: '>= 8'}
445 |
446 | methods@1.1.2:
447 | resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==}
448 | engines: {node: '>= 0.6'}
449 |
450 | micromatch@4.0.8:
451 | resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
452 | engines: {node: '>=8.6'}
453 |
454 | mime-db@1.52.0:
455 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
456 | engines: {node: '>= 0.6'}
457 |
458 | mime-db@1.53.0:
459 | resolution: {integrity: sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==}
460 | engines: {node: '>= 0.6'}
461 |
462 | mime-types@2.1.35:
463 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
464 | engines: {node: '>= 0.6'}
465 |
466 | mime-types@3.0.0:
467 | resolution: {integrity: sha512-XqoSHeCGjVClAmoGFG3lVFqQFRIrTVw2OH3axRqAcfaw+gHWIfnASS92AV+Rl/mk0MupgZTRHQOjxY6YVnzK5w==}
468 | engines: {node: '>= 0.6'}
469 |
470 | mri@1.2.0:
471 | resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
472 | engines: {node: '>=4'}
473 |
474 | ms@2.1.2:
475 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
476 |
477 | ms@2.1.3:
478 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
479 |
480 | negotiator@1.0.0:
481 | resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==}
482 | engines: {node: '>= 0.6'}
483 |
484 | object-assign@4.1.1:
485 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
486 | engines: {node: '>=0.10.0'}
487 |
488 | object-inspect@1.13.4:
489 | resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==}
490 | engines: {node: '>= 0.4'}
491 |
492 | on-finished@2.4.1:
493 | resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==}
494 | engines: {node: '>= 0.8'}
495 |
496 | once@1.4.0:
497 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
498 |
499 | os-tmpdir@1.0.2:
500 | resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==}
501 | engines: {node: '>=0.10.0'}
502 |
503 | outdent@0.5.0:
504 | resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==}
505 |
506 | p-filter@2.1.0:
507 | resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==}
508 | engines: {node: '>=8'}
509 |
510 | p-limit@2.3.0:
511 | resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
512 | engines: {node: '>=6'}
513 |
514 | p-locate@4.1.0:
515 | resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
516 | engines: {node: '>=8'}
517 |
518 | p-map@2.1.0:
519 | resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==}
520 | engines: {node: '>=6'}
521 |
522 | p-try@2.2.0:
523 | resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
524 | engines: {node: '>=6'}
525 |
526 | package-manager-detector@0.2.9:
527 | resolution: {integrity: sha512-+vYvA/Y31l8Zk8dwxHhL3JfTuHPm6tlxM2A3GeQyl7ovYnSp1+mzAxClxaOr0qO1TtPxbQxetI7v5XqKLJZk7Q==}
528 |
529 | parseurl@1.3.3:
530 | resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
531 | engines: {node: '>= 0.8'}
532 |
533 | path-exists@4.0.0:
534 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
535 | engines: {node: '>=8'}
536 |
537 | path-key@3.1.1:
538 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
539 | engines: {node: '>=8'}
540 |
541 | path-to-regexp@8.2.0:
542 | resolution: {integrity: sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==}
543 | engines: {node: '>=16'}
544 |
545 | path-type@4.0.0:
546 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
547 | engines: {node: '>=8'}
548 |
549 | picocolors@1.1.1:
550 | resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
551 |
552 | picomatch@2.3.1:
553 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
554 | engines: {node: '>=8.6'}
555 |
556 | pify@4.0.1:
557 | resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
558 | engines: {node: '>=6'}
559 |
560 | pkce-challenge@4.1.0:
561 | resolution: {integrity: sha512-ZBmhE1C9LcPoH9XZSdwiPtbPHZROwAnMy+kIFQVrnMCxY4Cudlz3gBOpzilgc0jOgRaiT3sIWfpMomW2ar2orQ==}
562 | engines: {node: '>=16.20.0'}
563 |
564 | prettier@2.8.8:
565 | resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==}
566 | engines: {node: '>=10.13.0'}
567 | hasBin: true
568 |
569 | proxy-addr@2.0.7:
570 | resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
571 | engines: {node: '>= 0.10'}
572 |
573 | qs@6.13.0:
574 | resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==}
575 | engines: {node: '>=0.6'}
576 |
577 | qs@6.14.0:
578 | resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==}
579 | engines: {node: '>=0.6'}
580 |
581 | queue-microtask@1.2.3:
582 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
583 |
584 | range-parser@1.2.1:
585 | resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
586 | engines: {node: '>= 0.6'}
587 |
588 | raw-body@3.0.0:
589 | resolution: {integrity: sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==}
590 | engines: {node: '>= 0.8'}
591 |
592 | read-yaml-file@1.1.0:
593 | resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==}
594 | engines: {node: '>=6'}
595 |
596 | regenerator-runtime@0.14.1:
597 | resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
598 |
599 | resolve-from@5.0.0:
600 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
601 | engines: {node: '>=8'}
602 |
603 | reusify@1.0.4:
604 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
605 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
606 |
607 | router@2.1.0:
608 | resolution: {integrity: sha512-/m/NSLxeYEgWNtyC+WtNHCF7jbGxOibVWKnn+1Psff4dJGOfoXP+MuC/f2CwSmyiHdOIzYnYFp4W6GxWfekaLA==}
609 | engines: {node: '>= 18'}
610 |
611 | run-parallel@1.2.0:
612 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
613 |
614 | safe-buffer@5.2.1:
615 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
616 |
617 | safer-buffer@2.1.2:
618 | resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
619 |
620 | semver@7.7.1:
621 | resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==}
622 | engines: {node: '>=10'}
623 | hasBin: true
624 |
625 | send@1.1.0:
626 | resolution: {integrity: sha512-v67WcEouB5GxbTWL/4NeToqcZiAWEq90N888fczVArY8A79J0L4FD7vj5hm3eUMua5EpoQ59wa/oovY6TLvRUA==}
627 | engines: {node: '>= 18'}
628 |
629 | serve-static@2.1.0:
630 | resolution: {integrity: sha512-A3We5UfEjG8Z7VkDv6uItWw6HY2bBSBJT1KtVESn6EOoOr2jAxNhxWCLY3jDE2WcuHXByWju74ck3ZgLwL8xmA==}
631 | engines: {node: '>= 18'}
632 |
633 | setprototypeof@1.2.0:
634 | resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
635 |
636 | shebang-command@2.0.0:
637 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
638 | engines: {node: '>=8'}
639 |
640 | shebang-regex@3.0.0:
641 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
642 | engines: {node: '>=8'}
643 |
644 | side-channel-list@1.0.0:
645 | resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==}
646 | engines: {node: '>= 0.4'}
647 |
648 | side-channel-map@1.0.1:
649 | resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==}
650 | engines: {node: '>= 0.4'}
651 |
652 | side-channel-weakmap@1.0.2:
653 | resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==}
654 | engines: {node: '>= 0.4'}
655 |
656 | side-channel@1.1.0:
657 | resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==}
658 | engines: {node: '>= 0.4'}
659 |
660 | signal-exit@4.1.0:
661 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
662 | engines: {node: '>=14'}
663 |
664 | slash@3.0.0:
665 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
666 | engines: {node: '>=8'}
667 |
668 | spawndamnit@3.0.1:
669 | resolution: {integrity: sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg==}
670 |
671 | sprintf-js@1.0.3:
672 | resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
673 |
674 | statuses@2.0.1:
675 | resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
676 | engines: {node: '>= 0.8'}
677 |
678 | strip-ansi@6.0.1:
679 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
680 | engines: {node: '>=8'}
681 |
682 | strip-bom@3.0.0:
683 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
684 | engines: {node: '>=4'}
685 |
686 | term-size@2.2.1:
687 | resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==}
688 | engines: {node: '>=8'}
689 |
690 | tmp@0.0.33:
691 | resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==}
692 | engines: {node: '>=0.6.0'}
693 |
694 | to-regex-range@5.0.1:
695 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
696 | engines: {node: '>=8.0'}
697 |
698 | toidentifier@1.0.1:
699 | resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
700 | engines: {node: '>=0.6'}
701 |
702 | type-is@2.0.0:
703 | resolution: {integrity: sha512-gd0sGezQYCbWSbkZr75mln4YBidWUN60+devscpLF5mtRDUpiaTvKpBNrdaCvel1NdR2k6vclXybU5fBd2i+nw==}
704 | engines: {node: '>= 0.6'}
705 |
706 | typescript@5.8.3:
707 | resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==}
708 | engines: {node: '>=14.17'}
709 | hasBin: true
710 |
711 | undici-types@6.21.0:
712 | resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
713 |
714 | universalify@0.1.2:
715 | resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==}
716 | engines: {node: '>= 4.0.0'}
717 |
718 | unpipe@1.0.0:
719 | resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
720 | engines: {node: '>= 0.8'}
721 |
722 | utils-merge@1.0.1:
723 | resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
724 | engines: {node: '>= 0.4.0'}
725 |
726 | vary@1.1.2:
727 | resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
728 | engines: {node: '>= 0.8'}
729 |
730 | which@2.0.2:
731 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
732 | engines: {node: '>= 8'}
733 | hasBin: true
734 |
735 | wrappy@1.0.2:
736 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
737 |
738 | zod-to-json-schema@3.24.1:
739 | resolution: {integrity: sha512-3h08nf3Vw3Wl3PK+q3ow/lIil81IT2Oa7YpQyUUDsEWbXveMesdfK1xBd2RhCkynwZndAxixji/7SYJJowr62w==}
740 | peerDependencies:
741 | zod: ^3.24.1
742 |
743 | zod@3.24.1:
744 | resolution: {integrity: sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==}
745 |
746 | snapshots:
747 |
748 | '@babel/runtime@7.26.9':
749 | dependencies:
750 | regenerator-runtime: 0.14.1
751 |
752 | '@changesets/apply-release-plan@7.0.10':
753 | dependencies:
754 | '@changesets/config': 3.1.1
755 | '@changesets/get-version-range-type': 0.4.0
756 | '@changesets/git': 3.0.2
757 | '@changesets/should-skip-package': 0.1.2
758 | '@changesets/types': 6.1.0
759 | '@manypkg/get-packages': 1.1.3
760 | detect-indent: 6.1.0
761 | fs-extra: 7.0.1
762 | lodash.startcase: 4.4.0
763 | outdent: 0.5.0
764 | prettier: 2.8.8
765 | resolve-from: 5.0.0
766 | semver: 7.7.1
767 |
768 | '@changesets/assemble-release-plan@6.0.6':
769 | dependencies:
770 | '@changesets/errors': 0.2.0
771 | '@changesets/get-dependents-graph': 2.1.3
772 | '@changesets/should-skip-package': 0.1.2
773 | '@changesets/types': 6.1.0
774 | '@manypkg/get-packages': 1.1.3
775 | semver: 7.7.1
776 |
777 | '@changesets/changelog-git@0.2.1':
778 | dependencies:
779 | '@changesets/types': 6.1.0
780 |
781 | '@changesets/cli@2.28.1':
782 | dependencies:
783 | '@changesets/apply-release-plan': 7.0.10
784 | '@changesets/assemble-release-plan': 6.0.6
785 | '@changesets/changelog-git': 0.2.1
786 | '@changesets/config': 3.1.1
787 | '@changesets/errors': 0.2.0
788 | '@changesets/get-dependents-graph': 2.1.3
789 | '@changesets/get-release-plan': 4.0.8
790 | '@changesets/git': 3.0.2
791 | '@changesets/logger': 0.1.1
792 | '@changesets/pre': 2.0.2
793 | '@changesets/read': 0.6.3
794 | '@changesets/should-skip-package': 0.1.2
795 | '@changesets/types': 6.1.0
796 | '@changesets/write': 0.4.0
797 | '@manypkg/get-packages': 1.1.3
798 | ansi-colors: 4.1.3
799 | ci-info: 3.9.0
800 | enquirer: 2.4.1
801 | external-editor: 3.1.0
802 | fs-extra: 7.0.1
803 | mri: 1.2.0
804 | p-limit: 2.3.0
805 | package-manager-detector: 0.2.9
806 | picocolors: 1.1.1
807 | resolve-from: 5.0.0
808 | semver: 7.7.1
809 | spawndamnit: 3.0.1
810 | term-size: 2.2.1
811 |
812 | '@changesets/config@3.1.1':
813 | dependencies:
814 | '@changesets/errors': 0.2.0
815 | '@changesets/get-dependents-graph': 2.1.3
816 | '@changesets/logger': 0.1.1
817 | '@changesets/types': 6.1.0
818 | '@manypkg/get-packages': 1.1.3
819 | fs-extra: 7.0.1
820 | micromatch: 4.0.8
821 |
822 | '@changesets/errors@0.2.0':
823 | dependencies:
824 | extendable-error: 0.1.7
825 |
826 | '@changesets/get-dependents-graph@2.1.3':
827 | dependencies:
828 | '@changesets/types': 6.1.0
829 | '@manypkg/get-packages': 1.1.3
830 | picocolors: 1.1.1
831 | semver: 7.7.1
832 |
833 | '@changesets/get-release-plan@4.0.8':
834 | dependencies:
835 | '@changesets/assemble-release-plan': 6.0.6
836 | '@changesets/config': 3.1.1
837 | '@changesets/pre': 2.0.2
838 | '@changesets/read': 0.6.3
839 | '@changesets/types': 6.1.0
840 | '@manypkg/get-packages': 1.1.3
841 |
842 | '@changesets/get-version-range-type@0.4.0': {}
843 |
844 | '@changesets/git@3.0.2':
845 | dependencies:
846 | '@changesets/errors': 0.2.0
847 | '@manypkg/get-packages': 1.1.3
848 | is-subdir: 1.2.0
849 | micromatch: 4.0.8
850 | spawndamnit: 3.0.1
851 |
852 | '@changesets/logger@0.1.1':
853 | dependencies:
854 | picocolors: 1.1.1
855 |
856 | '@changesets/parse@0.4.1':
857 | dependencies:
858 | '@changesets/types': 6.1.0
859 | js-yaml: 3.14.1
860 |
861 | '@changesets/pre@2.0.2':
862 | dependencies:
863 | '@changesets/errors': 0.2.0
864 | '@changesets/types': 6.1.0
865 | '@manypkg/get-packages': 1.1.3
866 | fs-extra: 7.0.1
867 |
868 | '@changesets/read@0.6.3':
869 | dependencies:
870 | '@changesets/git': 3.0.2
871 | '@changesets/logger': 0.1.1
872 | '@changesets/parse': 0.4.1
873 | '@changesets/types': 6.1.0
874 | fs-extra: 7.0.1
875 | p-filter: 2.1.0
876 | picocolors: 1.1.1
877 |
878 | '@changesets/should-skip-package@0.1.2':
879 | dependencies:
880 | '@changesets/types': 6.1.0
881 | '@manypkg/get-packages': 1.1.3
882 |
883 | '@changesets/types@4.1.0': {}
884 |
885 | '@changesets/types@6.1.0': {}
886 |
887 | '@changesets/write@0.4.0':
888 | dependencies:
889 | '@changesets/types': 6.1.0
890 | fs-extra: 7.0.1
891 | human-id: 4.1.1
892 | prettier: 2.8.8
893 |
894 | '@manypkg/find-root@1.1.0':
895 | dependencies:
896 | '@babel/runtime': 7.26.9
897 | '@types/node': 12.20.55
898 | find-up: 4.1.0
899 | fs-extra: 8.1.0
900 |
901 | '@manypkg/get-packages@1.1.3':
902 | dependencies:
903 | '@babel/runtime': 7.26.9
904 | '@changesets/types': 4.1.0
905 | '@manypkg/find-root': 1.1.0
906 | fs-extra: 8.1.0
907 | globby: 11.1.0
908 | read-yaml-file: 1.1.0
909 |
910 | '@modelcontextprotocol/sdk@1.8.0':
911 | dependencies:
912 | content-type: 1.0.5
913 | cors: 2.8.5
914 | cross-spawn: 7.0.6
915 | eventsource: 3.0.2
916 | express: 5.0.1
917 | express-rate-limit: 7.5.0(express@5.0.1)
918 | pkce-challenge: 4.1.0
919 | raw-body: 3.0.0
920 | zod: 3.24.1
921 | zod-to-json-schema: 3.24.1(zod@3.24.1)
922 | transitivePeerDependencies:
923 | - supports-color
924 |
925 | '@nodelib/fs.scandir@2.1.5':
926 | dependencies:
927 | '@nodelib/fs.stat': 2.0.5
928 | run-parallel: 1.2.0
929 |
930 | '@nodelib/fs.stat@2.0.5': {}
931 |
932 | '@nodelib/fs.walk@1.2.8':
933 | dependencies:
934 | '@nodelib/fs.scandir': 2.1.5
935 | fastq: 1.19.0
936 |
937 | '@types/node@12.20.55': {}
938 |
939 | '@types/node@22.14.0':
940 | dependencies:
941 | undici-types: 6.21.0
942 |
943 | accepts@2.0.0:
944 | dependencies:
945 | mime-types: 3.0.0
946 | negotiator: 1.0.0
947 |
948 | ansi-colors@4.1.3: {}
949 |
950 | ansi-regex@5.0.1: {}
951 |
952 | argparse@1.0.10:
953 | dependencies:
954 | sprintf-js: 1.0.3
955 |
956 | array-union@2.1.0: {}
957 |
958 | better-path-resolve@1.0.0:
959 | dependencies:
960 | is-windows: 1.0.2
961 |
962 | body-parser@2.1.0:
963 | dependencies:
964 | bytes: 3.1.2
965 | content-type: 1.0.5
966 | debug: 4.4.0
967 | http-errors: 2.0.0
968 | iconv-lite: 0.5.2
969 | on-finished: 2.4.1
970 | qs: 6.14.0
971 | raw-body: 3.0.0
972 | type-is: 2.0.0
973 | transitivePeerDependencies:
974 | - supports-color
975 |
976 | braces@3.0.3:
977 | dependencies:
978 | fill-range: 7.1.1
979 |
980 | bytes@3.1.2: {}
981 |
982 | call-bind-apply-helpers@1.0.2:
983 | dependencies:
984 | es-errors: 1.3.0
985 | function-bind: 1.1.2
986 |
987 | call-bound@1.0.4:
988 | dependencies:
989 | call-bind-apply-helpers: 1.0.2
990 | get-intrinsic: 1.3.0
991 |
992 | chardet@0.7.0: {}
993 |
994 | ci-info@3.9.0: {}
995 |
996 | content-disposition@1.0.0:
997 | dependencies:
998 | safe-buffer: 5.2.1
999 |
1000 | content-type@1.0.5: {}
1001 |
1002 | cookie-signature@1.2.2: {}
1003 |
1004 | cookie@0.7.1: {}
1005 |
1006 | cors@2.8.5:
1007 | dependencies:
1008 | object-assign: 4.1.1
1009 | vary: 1.1.2
1010 |
1011 | cross-spawn@7.0.6:
1012 | dependencies:
1013 | path-key: 3.1.1
1014 | shebang-command: 2.0.0
1015 | which: 2.0.2
1016 |
1017 | debug@4.3.6:
1018 | dependencies:
1019 | ms: 2.1.2
1020 |
1021 | debug@4.4.0:
1022 | dependencies:
1023 | ms: 2.1.3
1024 |
1025 | depd@2.0.0: {}
1026 |
1027 | destroy@1.2.0: {}
1028 |
1029 | detect-indent@6.1.0: {}
1030 |
1031 | dir-glob@3.0.1:
1032 | dependencies:
1033 | path-type: 4.0.0
1034 |
1035 | dunder-proto@1.0.1:
1036 | dependencies:
1037 | call-bind-apply-helpers: 1.0.2
1038 | es-errors: 1.3.0
1039 | gopd: 1.2.0
1040 |
1041 | ee-first@1.1.1: {}
1042 |
1043 | encodeurl@2.0.0: {}
1044 |
1045 | enquirer@2.4.1:
1046 | dependencies:
1047 | ansi-colors: 4.1.3
1048 | strip-ansi: 6.0.1
1049 |
1050 | es-define-property@1.0.1: {}
1051 |
1052 | es-errors@1.3.0: {}
1053 |
1054 | es-object-atoms@1.1.1:
1055 | dependencies:
1056 | es-errors: 1.3.0
1057 |
1058 | escape-html@1.0.3: {}
1059 |
1060 | esprima@4.0.1: {}
1061 |
1062 | etag@1.8.1: {}
1063 |
1064 | eventsource-parser@3.0.0: {}
1065 |
1066 | eventsource@3.0.2:
1067 | dependencies:
1068 | eventsource-parser: 3.0.0
1069 |
1070 | express-rate-limit@7.5.0(express@5.0.1):
1071 | dependencies:
1072 | express: 5.0.1
1073 |
1074 | express@5.0.1:
1075 | dependencies:
1076 | accepts: 2.0.0
1077 | body-parser: 2.1.0
1078 | content-disposition: 1.0.0
1079 | content-type: 1.0.5
1080 | cookie: 0.7.1
1081 | cookie-signature: 1.2.2
1082 | debug: 4.3.6
1083 | depd: 2.0.0
1084 | encodeurl: 2.0.0
1085 | escape-html: 1.0.3
1086 | etag: 1.8.1
1087 | finalhandler: 2.1.0
1088 | fresh: 2.0.0
1089 | http-errors: 2.0.0
1090 | merge-descriptors: 2.0.0
1091 | methods: 1.1.2
1092 | mime-types: 3.0.0
1093 | on-finished: 2.4.1
1094 | once: 1.4.0
1095 | parseurl: 1.3.3
1096 | proxy-addr: 2.0.7
1097 | qs: 6.13.0
1098 | range-parser: 1.2.1
1099 | router: 2.1.0
1100 | safe-buffer: 5.2.1
1101 | send: 1.1.0
1102 | serve-static: 2.1.0
1103 | setprototypeof: 1.2.0
1104 | statuses: 2.0.1
1105 | type-is: 2.0.0
1106 | utils-merge: 1.0.1
1107 | vary: 1.1.2
1108 | transitivePeerDependencies:
1109 | - supports-color
1110 |
1111 | extendable-error@0.1.7: {}
1112 |
1113 | external-editor@3.1.0:
1114 | dependencies:
1115 | chardet: 0.7.0
1116 | iconv-lite: 0.4.24
1117 | tmp: 0.0.33
1118 |
1119 | fast-glob@3.3.3:
1120 | dependencies:
1121 | '@nodelib/fs.stat': 2.0.5
1122 | '@nodelib/fs.walk': 1.2.8
1123 | glob-parent: 5.1.2
1124 | merge2: 1.4.1
1125 | micromatch: 4.0.8
1126 |
1127 | fastq@1.19.0:
1128 | dependencies:
1129 | reusify: 1.0.4
1130 |
1131 | fill-range@7.1.1:
1132 | dependencies:
1133 | to-regex-range: 5.0.1
1134 |
1135 | finalhandler@2.1.0:
1136 | dependencies:
1137 | debug: 4.4.0
1138 | encodeurl: 2.0.0
1139 | escape-html: 1.0.3
1140 | on-finished: 2.4.1
1141 | parseurl: 1.3.3
1142 | statuses: 2.0.1
1143 | transitivePeerDependencies:
1144 | - supports-color
1145 |
1146 | find-up@4.1.0:
1147 | dependencies:
1148 | locate-path: 5.0.0
1149 | path-exists: 4.0.0
1150 |
1151 | forwarded@0.2.0: {}
1152 |
1153 | fresh@0.5.2: {}
1154 |
1155 | fresh@2.0.0: {}
1156 |
1157 | fs-extra@7.0.1:
1158 | dependencies:
1159 | graceful-fs: 4.2.11
1160 | jsonfile: 4.0.0
1161 | universalify: 0.1.2
1162 |
1163 | fs-extra@8.1.0:
1164 | dependencies:
1165 | graceful-fs: 4.2.11
1166 | jsonfile: 4.0.0
1167 | universalify: 0.1.2
1168 |
1169 | function-bind@1.1.2: {}
1170 |
1171 | get-intrinsic@1.3.0:
1172 | dependencies:
1173 | call-bind-apply-helpers: 1.0.2
1174 | es-define-property: 1.0.1
1175 | es-errors: 1.3.0
1176 | es-object-atoms: 1.1.1
1177 | function-bind: 1.1.2
1178 | get-proto: 1.0.1
1179 | gopd: 1.2.0
1180 | has-symbols: 1.1.0
1181 | hasown: 2.0.2
1182 | math-intrinsics: 1.1.0
1183 |
1184 | get-proto@1.0.1:
1185 | dependencies:
1186 | dunder-proto: 1.0.1
1187 | es-object-atoms: 1.1.1
1188 |
1189 | glob-parent@5.1.2:
1190 | dependencies:
1191 | is-glob: 4.0.3
1192 |
1193 | globby@11.1.0:
1194 | dependencies:
1195 | array-union: 2.1.0
1196 | dir-glob: 3.0.1
1197 | fast-glob: 3.3.3
1198 | ignore: 5.3.2
1199 | merge2: 1.4.1
1200 | slash: 3.0.0
1201 |
1202 | gopd@1.2.0: {}
1203 |
1204 | graceful-fs@4.2.11: {}
1205 |
1206 | has-symbols@1.1.0: {}
1207 |
1208 | hasown@2.0.2:
1209 | dependencies:
1210 | function-bind: 1.1.2
1211 |
1212 | http-errors@2.0.0:
1213 | dependencies:
1214 | depd: 2.0.0
1215 | inherits: 2.0.4
1216 | setprototypeof: 1.2.0
1217 | statuses: 2.0.1
1218 | toidentifier: 1.0.1
1219 |
1220 | human-id@4.1.1: {}
1221 |
1222 | iconv-lite@0.4.24:
1223 | dependencies:
1224 | safer-buffer: 2.1.2
1225 |
1226 | iconv-lite@0.5.2:
1227 | dependencies:
1228 | safer-buffer: 2.1.2
1229 |
1230 | iconv-lite@0.6.3:
1231 | dependencies:
1232 | safer-buffer: 2.1.2
1233 |
1234 | ignore@5.3.2: {}
1235 |
1236 | inherits@2.0.4: {}
1237 |
1238 | ipaddr.js@1.9.1: {}
1239 |
1240 | is-extglob@2.1.1: {}
1241 |
1242 | is-glob@4.0.3:
1243 | dependencies:
1244 | is-extglob: 2.1.1
1245 |
1246 | is-number@7.0.0: {}
1247 |
1248 | is-promise@4.0.0: {}
1249 |
1250 | is-subdir@1.2.0:
1251 | dependencies:
1252 | better-path-resolve: 1.0.0
1253 |
1254 | is-windows@1.0.2: {}
1255 |
1256 | isexe@2.0.0: {}
1257 |
1258 | js-yaml@3.14.1:
1259 | dependencies:
1260 | argparse: 1.0.10
1261 | esprima: 4.0.1
1262 |
1263 | jsonfile@4.0.0:
1264 | optionalDependencies:
1265 | graceful-fs: 4.2.11
1266 |
1267 | locate-path@5.0.0:
1268 | dependencies:
1269 | p-locate: 4.1.0
1270 |
1271 | lodash.startcase@4.4.0: {}
1272 |
1273 | math-intrinsics@1.1.0: {}
1274 |
1275 | media-typer@1.1.0: {}
1276 |
1277 | merge-descriptors@2.0.0: {}
1278 |
1279 | merge2@1.4.1: {}
1280 |
1281 | methods@1.1.2: {}
1282 |
1283 | micromatch@4.0.8:
1284 | dependencies:
1285 | braces: 3.0.3
1286 | picomatch: 2.3.1
1287 |
1288 | mime-db@1.52.0: {}
1289 |
1290 | mime-db@1.53.0: {}
1291 |
1292 | mime-types@2.1.35:
1293 | dependencies:
1294 | mime-db: 1.52.0
1295 |
1296 | mime-types@3.0.0:
1297 | dependencies:
1298 | mime-db: 1.53.0
1299 |
1300 | mri@1.2.0: {}
1301 |
1302 | ms@2.1.2: {}
1303 |
1304 | ms@2.1.3: {}
1305 |
1306 | negotiator@1.0.0: {}
1307 |
1308 | object-assign@4.1.1: {}
1309 |
1310 | object-inspect@1.13.4: {}
1311 |
1312 | on-finished@2.4.1:
1313 | dependencies:
1314 | ee-first: 1.1.1
1315 |
1316 | once@1.4.0:
1317 | dependencies:
1318 | wrappy: 1.0.2
1319 |
1320 | os-tmpdir@1.0.2: {}
1321 |
1322 | outdent@0.5.0: {}
1323 |
1324 | p-filter@2.1.0:
1325 | dependencies:
1326 | p-map: 2.1.0
1327 |
1328 | p-limit@2.3.0:
1329 | dependencies:
1330 | p-try: 2.2.0
1331 |
1332 | p-locate@4.1.0:
1333 | dependencies:
1334 | p-limit: 2.3.0
1335 |
1336 | p-map@2.1.0: {}
1337 |
1338 | p-try@2.2.0: {}
1339 |
1340 | package-manager-detector@0.2.9: {}
1341 |
1342 | parseurl@1.3.3: {}
1343 |
1344 | path-exists@4.0.0: {}
1345 |
1346 | path-key@3.1.1: {}
1347 |
1348 | path-to-regexp@8.2.0: {}
1349 |
1350 | path-type@4.0.0: {}
1351 |
1352 | picocolors@1.1.1: {}
1353 |
1354 | picomatch@2.3.1: {}
1355 |
1356 | pify@4.0.1: {}
1357 |
1358 | pkce-challenge@4.1.0: {}
1359 |
1360 | prettier@2.8.8: {}
1361 |
1362 | proxy-addr@2.0.7:
1363 | dependencies:
1364 | forwarded: 0.2.0
1365 | ipaddr.js: 1.9.1
1366 |
1367 | qs@6.13.0:
1368 | dependencies:
1369 | side-channel: 1.1.0
1370 |
1371 | qs@6.14.0:
1372 | dependencies:
1373 | side-channel: 1.1.0
1374 |
1375 | queue-microtask@1.2.3: {}
1376 |
1377 | range-parser@1.2.1: {}
1378 |
1379 | raw-body@3.0.0:
1380 | dependencies:
1381 | bytes: 3.1.2
1382 | http-errors: 2.0.0
1383 | iconv-lite: 0.6.3
1384 | unpipe: 1.0.0
1385 |
1386 | read-yaml-file@1.1.0:
1387 | dependencies:
1388 | graceful-fs: 4.2.11
1389 | js-yaml: 3.14.1
1390 | pify: 4.0.1
1391 | strip-bom: 3.0.0
1392 |
1393 | regenerator-runtime@0.14.1: {}
1394 |
1395 | resolve-from@5.0.0: {}
1396 |
1397 | reusify@1.0.4: {}
1398 |
1399 | router@2.1.0:
1400 | dependencies:
1401 | is-promise: 4.0.0
1402 | parseurl: 1.3.3
1403 | path-to-regexp: 8.2.0
1404 |
1405 | run-parallel@1.2.0:
1406 | dependencies:
1407 | queue-microtask: 1.2.3
1408 |
1409 | safe-buffer@5.2.1: {}
1410 |
1411 | safer-buffer@2.1.2: {}
1412 |
1413 | semver@7.7.1: {}
1414 |
1415 | send@1.1.0:
1416 | dependencies:
1417 | debug: 4.4.0
1418 | destroy: 1.2.0
1419 | encodeurl: 2.0.0
1420 | escape-html: 1.0.3
1421 | etag: 1.8.1
1422 | fresh: 0.5.2
1423 | http-errors: 2.0.0
1424 | mime-types: 2.1.35
1425 | ms: 2.1.3
1426 | on-finished: 2.4.1
1427 | range-parser: 1.2.1
1428 | statuses: 2.0.1
1429 | transitivePeerDependencies:
1430 | - supports-color
1431 |
1432 | serve-static@2.1.0:
1433 | dependencies:
1434 | encodeurl: 2.0.0
1435 | escape-html: 1.0.3
1436 | parseurl: 1.3.3
1437 | send: 1.1.0
1438 | transitivePeerDependencies:
1439 | - supports-color
1440 |
1441 | setprototypeof@1.2.0: {}
1442 |
1443 | shebang-command@2.0.0:
1444 | dependencies:
1445 | shebang-regex: 3.0.0
1446 |
1447 | shebang-regex@3.0.0: {}
1448 |
1449 | side-channel-list@1.0.0:
1450 | dependencies:
1451 | es-errors: 1.3.0
1452 | object-inspect: 1.13.4
1453 |
1454 | side-channel-map@1.0.1:
1455 | dependencies:
1456 | call-bound: 1.0.4
1457 | es-errors: 1.3.0
1458 | get-intrinsic: 1.3.0
1459 | object-inspect: 1.13.4
1460 |
1461 | side-channel-weakmap@1.0.2:
1462 | dependencies:
1463 | call-bound: 1.0.4
1464 | es-errors: 1.3.0
1465 | get-intrinsic: 1.3.0
1466 | object-inspect: 1.13.4
1467 | side-channel-map: 1.0.1
1468 |
1469 | side-channel@1.1.0:
1470 | dependencies:
1471 | es-errors: 1.3.0
1472 | object-inspect: 1.13.4
1473 | side-channel-list: 1.0.0
1474 | side-channel-map: 1.0.1
1475 | side-channel-weakmap: 1.0.2
1476 |
1477 | signal-exit@4.1.0: {}
1478 |
1479 | slash@3.0.0: {}
1480 |
1481 | spawndamnit@3.0.1:
1482 | dependencies:
1483 | cross-spawn: 7.0.6
1484 | signal-exit: 4.1.0
1485 |
1486 | sprintf-js@1.0.3: {}
1487 |
1488 | statuses@2.0.1: {}
1489 |
1490 | strip-ansi@6.0.1:
1491 | dependencies:
1492 | ansi-regex: 5.0.1
1493 |
1494 | strip-bom@3.0.0: {}
1495 |
1496 | term-size@2.2.1: {}
1497 |
1498 | tmp@0.0.33:
1499 | dependencies:
1500 | os-tmpdir: 1.0.2
1501 |
1502 | to-regex-range@5.0.1:
1503 | dependencies:
1504 | is-number: 7.0.0
1505 |
1506 | toidentifier@1.0.1: {}
1507 |
1508 | type-is@2.0.0:
1509 | dependencies:
1510 | content-type: 1.0.5
1511 | media-typer: 1.1.0
1512 | mime-types: 3.0.0
1513 |
1514 | typescript@5.8.3: {}
1515 |
1516 | undici-types@6.21.0: {}
1517 |
1518 | universalify@0.1.2: {}
1519 |
1520 | unpipe@1.0.0: {}
1521 |
1522 | utils-merge@1.0.1: {}
1523 |
1524 | vary@1.1.2: {}
1525 |
1526 | which@2.0.2:
1527 | dependencies:
1528 | isexe: 2.0.0
1529 |
1530 | wrappy@1.0.2: {}
1531 |
1532 | zod-to-json-schema@3.24.1(zod@3.24.1):
1533 | dependencies:
1534 | zod: 3.24.1
1535 |
1536 | zod@3.24.1: {}
1537 |
--------------------------------------------------------------------------------
/src/index.ts:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 |
3 | import { Server } from '@modelcontextprotocol/sdk/server/index.js';
4 | import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
5 | import {
6 | CallToolRequestSchema,
7 | ErrorCode,
8 | ListToolsRequestSchema,
9 | McpError,
10 | } from '@modelcontextprotocol/sdk/types.js';
11 | import { readFileSync } from 'fs';
12 | import { dirname, join } from 'path';
13 | import { fileURLToPath } from 'url';
14 |
15 | const __filename = fileURLToPath(import.meta.url);
16 | const __dirname = dirname(__filename);
17 | const pkg = JSON.parse(
18 | readFileSync(join(__dirname, '..', 'package.json'), 'utf8'),
19 | );
20 | const { name, version } = pkg;
21 |
22 | const JINAAI_API_KEY = process.env.JINAAI_API_KEY;
23 | if (!JINAAI_API_KEY) {
24 | throw new Error('JINAAI_API_KEY environment variable is required');
25 | }
26 |
27 | const is_valid_url = (url: string): boolean => {
28 | try {
29 | new URL(url);
30 | return true;
31 | } catch {
32 | return false;
33 | }
34 | };
35 |
36 | class JinaReaderServer {
37 | private server: Server;
38 | private base_url = 'https://r.jina.ai/';
39 |
40 | constructor() {
41 | this.server = new Server(
42 | {
43 | name,
44 | version,
45 | },
46 | {
47 | capabilities: {
48 | tools: {},
49 | },
50 | },
51 | );
52 |
53 | this.setup_handlers();
54 |
55 | this.server.onerror = (error) =>
56 | console.error('[MCP Error]', error);
57 | }
58 |
59 | private setup_handlers() {
60 | this.server.setRequestHandler(
61 | ListToolsRequestSchema,
62 | async () => ({
63 | tools: [
64 | {
65 | name: 'read_url',
66 | description:
67 | 'Convert any URL to LLM-friendly text using Jina.ai Reader',
68 | inputSchema: {
69 | type: 'object',
70 | properties: {
71 | url: {
72 | type: 'string',
73 | description: 'URL to process',
74 | },
75 | no_cache: {
76 | type: 'boolean',
77 | description: 'Bypass cache for fresh results',
78 | default: false,
79 | },
80 | format: {
81 | type: 'string',
82 | description: 'Response format (json or stream)',
83 | enum: ['json', 'stream'],
84 | default: 'json',
85 | },
86 | timeout: {
87 | type: 'number',
88 | description:
89 | 'Maximum time in seconds to wait for webpage load',
90 | },
91 | target_selector: {
92 | type: 'string',
93 | description:
94 | 'CSS selector to focus on specific elements',
95 | },
96 | wait_for_selector: {
97 | type: 'string',
98 | description:
99 | 'CSS selector to wait for specific elements',
100 | },
101 | remove_selector: {
102 | type: 'string',
103 | description:
104 | 'CSS selector to exclude specific elements',
105 | },
106 | with_links_summary: {
107 | type: 'boolean',
108 | description:
109 | 'Gather all links at the end of response',
110 | },
111 | with_images_summary: {
112 | type: 'boolean',
113 | description:
114 | 'Gather all images at the end of response',
115 | },
116 | with_generated_alt: {
117 | type: 'boolean',
118 | description:
119 | 'Add alt text to images lacking captions',
120 | },
121 | with_iframe: {
122 | type: 'boolean',
123 | description: 'Include iframe content in response',
124 | },
125 | },
126 | required: ['url'],
127 | },
128 | },
129 | ],
130 | }),
131 | );
132 |
133 | this.server.setRequestHandler(
134 | CallToolRequestSchema,
135 | async (request) => {
136 | if (request.params.name !== 'read_url') {
137 | throw new McpError(
138 | ErrorCode.MethodNotFound,
139 | `Unknown tool: ${request.params.name}`,
140 | );
141 | }
142 |
143 | const args = request.params.arguments as Record<
144 | string,
145 | unknown
146 | >;
147 |
148 | if (
149 | !args ||
150 | typeof args.url !== 'string' ||
151 | !is_valid_url(args.url)
152 | ) {
153 | throw new McpError(
154 | ErrorCode.InvalidParams,
155 | 'Invalid or missing URL parameter',
156 | );
157 | }
158 |
159 | try {
160 | const headers: Record = {
161 | Accept:
162 | typeof args.format === 'string' &&
163 | args.format === 'stream'
164 | ? 'text/event-stream'
165 | : 'application/json',
166 | 'Content-Type': 'application/json',
167 | Authorization: `Bearer ${JINAAI_API_KEY}`,
168 | };
169 |
170 | // Optional headers from documentation
171 | if (typeof args.no_cache === 'boolean' && args.no_cache) {
172 | headers['X-No-Cache'] = 'true';
173 | }
174 | if (typeof args.timeout === 'number') {
175 | headers['X-Timeout'] = args.timeout.toString();
176 | }
177 | if (typeof args.target_selector === 'string') {
178 | headers['X-Target-Selector'] = args.target_selector;
179 | }
180 | if (typeof args.wait_for_selector === 'string') {
181 | headers['X-Wait-For-Selector'] = args.wait_for_selector;
182 | }
183 | if (typeof args.remove_selector === 'string') {
184 | headers['X-Remove-Selector'] = args.remove_selector;
185 | }
186 | if (
187 | typeof args.with_links_summary === 'boolean' &&
188 | args.with_links_summary
189 | ) {
190 | headers['X-With-Links-Summary'] = 'true';
191 | }
192 | if (
193 | typeof args.with_images_summary === 'boolean' &&
194 | args.with_images_summary
195 | ) {
196 | headers['X-With-Images-Summary'] = 'true';
197 | }
198 | if (
199 | typeof args.with_generated_alt === 'boolean' &&
200 | args.with_generated_alt
201 | ) {
202 | headers['X-With-Generated-Alt'] = 'true';
203 | }
204 | if (
205 | typeof args.with_iframe === 'boolean' &&
206 | args.with_iframe
207 | ) {
208 | headers['X-With-Iframe'] = 'true';
209 | }
210 |
211 | const response = await fetch(this.base_url + args.url, {
212 | headers,
213 | });
214 |
215 | if (!response.ok) {
216 | throw new Error(`HTTP error! status: ${response.status}`);
217 | }
218 |
219 | const result = await response.text();
220 |
221 | return {
222 | content: [
223 | {
224 | type: 'text',
225 | text: result,
226 | },
227 | ],
228 | };
229 | } catch (error) {
230 | const message =
231 | error instanceof Error ? error.message : String(error);
232 | throw new McpError(
233 | ErrorCode.InternalError,
234 | `Failed to process URL: ${message}`,
235 | );
236 | }
237 | },
238 | );
239 | }
240 |
241 | async run() {
242 | const transport = new StdioServerTransport();
243 | await this.server.connect(transport);
244 | console.error('Jina Reader MCP server running on stdio');
245 | }
246 | }
247 |
248 | const server = new JinaReaderServer();
249 | server.run().catch(console.error);
250 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "ES2020",
4 | "module": "ES2020",
5 | "moduleResolution": "node",
6 | "esModuleInterop": true,
7 | "strict": true,
8 | "outDir": "dist",
9 | "rootDir": "src",
10 | "skipLibCheck": true,
11 | "forceConsistentCasingInFileNames": true,
12 | "resolveJsonModule": true
13 | },
14 | "include": ["src/**/*"],
15 | "exclude": ["node_modules", "dist"]
16 | }
17 |
--------------------------------------------------------------------------------