├── .buildkite
├── default-pipeline.yml
├── diff
├── pipeline.yml
└── pull-requests.json
├── .github
└── CODEOWNERS
├── .gitignore
├── .nvmrc
├── LICENSE
├── NOTICE.txt
├── README.md
├── catalog-info.yaml
├── docs
└── CONTRIBUTING.md
├── index.ts
├── package.json
├── renovate.json
├── scripts
├── check-spdx
└── generate-notice.js
├── tsconfig.json
└── yarn.lock
/.buildkite/default-pipeline.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # $yaml-language-server: $schema=https://raw.githubusercontent.com/buildkite/pipeline-schema/main/schema.json
3 | steps:
4 | - label: "Check License"
5 | command: "npm install && npm run license-checker && npm run license-header"
6 |
7 | - label: "Build"
8 | command: "npm install && npm run build"
9 |
--------------------------------------------------------------------------------
/.buildkite/diff:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | # Produces a list of changed files between two commits (works for merges and
3 | # regular commits).
4 | # Used in conjunction with the monorepo-diff-buildkite-plugin to determine
5 | # which pipelines to upload/trigger based on the files changed.
6 |
7 | [ $# -lt 1 ] && { echo "argument is missing."; exit 1; }
8 |
9 | COMMIT=$1
10 |
11 | HEAD_BRANCH=$(git remote show origin | awk '/HEAD branch/ {print $NF}')
12 | BRANCH_POINT_COMMIT=$(git merge-base "$HEAD_BRANCH" "$COMMIT")
13 |
14 | if [ "$BUILDKITE_BRANCH" == "$HEAD_BRANCH" ]; then
15 | echo "diff between $COMMIT and HEAD~1"
16 | git diff --raw HEAD~1 | awk '{print $6; if($7) {print $7}}'
17 | else
18 | echo "diff between $COMMIT and $BRANCH_POINT_COMMIT"
19 | git diff --raw "$COMMIT".."$BRANCH_POINT_COMMIT" | awk '{print $6; if($7) {print $7}}'
20 | fi
21 |
--------------------------------------------------------------------------------
/.buildkite/pipeline.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # $yaml-language-server: $schema=https://raw.githubusercontent.com/buildkite/pipeline-schema/main/schema.json
3 | steps:
4 | - label: "Triggering pipelines"
5 | plugins:
6 | monorepo-diff#v1.4.0:
7 | diff: ".buildkite/diff ${BUILDKITE_COMMIT}"
8 | wait: true
9 | watch:
10 | # if our Renovate configuration is amended, then make sure we have well-formed config
11 | # for more info, see https://docs.elastic.dev/plat-prod-team/service-catalogue/renovate/testing-renovate-changes
12 | - path: "renovate.json"
13 | config:
14 | label: "Verify Renovate configuration"
15 | command: "renovate-config-validator"
16 | agents:
17 | image: "docker.elastic.co/ci-agent-images/pipelib:0.13.0@sha256:190464950de81cb3390bd5e07bb1cc171dd4a765c1ce5de58ebca476f9a6839f"
18 | # if our catalog-info.yaml is changed, make sure it's well-formed according to our internal standards as well as Backstage's validation
19 | - path: "catalog-info.yaml"
20 | config:
21 | command: "/agent/check-catalog-info.sh"
22 | agents:
23 | image: "docker.elastic.co/ci-agent-images/pipelib:0.13.0@sha256:190464950de81cb3390bd5e07bb1cc171dd4a765c1ce5de58ebca476f9a6839f"
24 | - default:
25 | config:
26 | label: ":pipeline: Upload default Pipeline"
27 | command: "buildkite-agent pipeline upload .buildkite/default-pipeline.yml"
28 |
--------------------------------------------------------------------------------
/.buildkite/pull-requests.json:
--------------------------------------------------------------------------------
1 | {
2 | "jobs": [
3 | {
4 | "enabled": true,
5 | "pipelineSlug": "mcp-server-elasticsearch",
6 | "allow_org_users": true,
7 | "allowed_repo_permissions": [
8 | "admin",
9 | "write"
10 | ],
11 | "allowed_list": [],
12 | "set_commit_status": true,
13 | "commit_status_context": "buildkite/mcp-server-elasticsearch",
14 | "build_on_commit": false,
15 | "build_on_comment": true,
16 | "trigger_comment_regex": "^(?:(?:buildkite\\W+)?(?:build|test)\\W+(?:this|it))",
17 | "always_trigger_comment_regex": "^(?:(?:buildkite\\W+)?(?:build|test)\\W+(?:this|it))",
18 | "skip_ci_labels": [
19 | "skip-ci"
20 | ],
21 | "skip_target_branches": [],
22 | "always_require_ci_on_changed": []
23 | }
24 | ]
25 | }
26 |
--------------------------------------------------------------------------------
/.github/CODEOWNERS:
--------------------------------------------------------------------------------
1 | # These owners will be the default owners for everything in
2 | # the repo.
3 | * @elastic/devtools-team
4 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | dist
2 | node_modules
3 |
--------------------------------------------------------------------------------
/.nvmrc:
--------------------------------------------------------------------------------
1 | 22.16.0
2 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Apache License
2 | Version 2.0, January 2004
3 | http://www.apache.org/licenses/
4 |
5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6 |
7 | 1. Definitions.
8 |
9 | "License" shall mean the terms and conditions for use, reproduction,
10 | and distribution as defined by Sections 1 through 9 of this document.
11 |
12 | "Licensor" shall mean the copyright owner or entity authorized by
13 | the copyright owner that is granting the License.
14 |
15 | "Legal Entity" shall mean the union of the acting entity and all
16 | other entities that control, are controlled by, or are under common
17 | control with that entity. For the purposes of this definition,
18 | "control" means (i) the power, direct or indirect, to cause the
19 | direction or management of such entity, whether by contract or
20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
21 | outstanding shares, or (iii) beneficial ownership of such entity.
22 |
23 | "You" (or "Your") shall mean an individual or Legal Entity
24 | exercising permissions granted by this License.
25 |
26 | "Source" form shall mean the preferred form for making modifications,
27 | including but not limited to software source code, documentation
28 | source, and configuration files.
29 |
30 | "Object" form shall mean any form resulting from mechanical
31 | transformation or translation of a Source form, including but
32 | not limited to compiled object code, generated documentation,
33 | and conversions to other media types.
34 |
35 | "Work" shall mean the work of authorship, whether in Source or
36 | Object form, made available under the License, as indicated by a
37 | copyright notice that is included in or attached to the work
38 | (an example is provided in the Appendix below).
39 |
40 | "Derivative Works" shall mean any work, whether in Source or Object
41 | form, that is based on (or derived from) the Work and for which the
42 | editorial revisions, annotations, elaborations, or other modifications
43 | represent, as a whole, an original work of authorship. For the purposes
44 | of this License, Derivative Works shall not include works that remain
45 | separable from, or merely link (or bind by name) to the interfaces of,
46 | the Work and Derivative Works thereof.
47 |
48 | "Contribution" shall mean any work of authorship, including
49 | the original version of the Work and any modifications or additions
50 | to that Work or Derivative Works thereof, that is intentionally
51 | submitted to Licensor for inclusion in the Work by the copyright owner
52 | or by an individual or Legal Entity authorized to submit on behalf of
53 | the copyright owner. For the purposes of this definition, "submitted"
54 | means any form of electronic, verbal, or written communication sent
55 | to the Licensor or its representatives, including but not limited to
56 | communication on electronic mailing lists, source code control systems,
57 | and issue tracking systems that are managed by, or on behalf of, the
58 | Licensor for the purpose of discussing and improving the Work, but
59 | excluding communication that is conspicuously marked or otherwise
60 | designated in writing by the copyright owner as "Not a Contribution."
61 |
62 | "Contributor" shall mean Licensor and any individual or Legal Entity
63 | on behalf of whom a Contribution has been received by Licensor and
64 | subsequently incorporated within the Work.
65 |
66 | 2. Grant of Copyright License. Subject to the terms and conditions of
67 | this License, each Contributor hereby grants to You a perpetual,
68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69 | copyright license to reproduce, prepare Derivative Works of,
70 | publicly display, publicly perform, sublicense, and distribute the
71 | Work and such Derivative Works in Source or Object form.
72 |
73 | 3. Grant of Patent License. Subject to the terms and conditions of
74 | this License, each Contributor hereby grants to You a perpetual,
75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76 | (except as stated in this section) patent license to make, have made,
77 | use, offer to sell, sell, import, and otherwise transfer the Work,
78 | where such license applies only to those patent claims licensable
79 | by such Contributor that are necessarily infringed by their
80 | Contribution(s) alone or by combination of their Contribution(s)
81 | with the Work to which such Contribution(s) was submitted. If You
82 | institute patent litigation against any entity (including a
83 | cross-claim or counterclaim in a lawsuit) alleging that the Work
84 | or a Contribution incorporated within the Work constitutes direct
85 | or contributory patent infringement, then any patent licenses
86 | granted to You under this License for that Work shall terminate
87 | as of the date such litigation is filed.
88 |
89 | 4. Redistribution. You may reproduce and distribute copies of the
90 | Work or Derivative Works thereof in any medium, with or without
91 | modifications, and in Source or Object form, provided that You
92 | meet the following conditions:
93 |
94 | (a) You must give any other recipients of the Work or
95 | Derivative Works a copy of this License; and
96 |
97 | (b) You must cause any modified files to carry prominent notices
98 | stating that You changed the files; and
99 |
100 | (c) You must retain, in the Source form of any Derivative Works
101 | that You distribute, all copyright, patent, trademark, and
102 | attribution notices from the Source form of the Work,
103 | excluding those notices that do not pertain to any part of
104 | the Derivative Works; and
105 |
106 | (d) If the Work includes a "NOTICE" text file as part of its
107 | distribution, then any Derivative Works that You distribute must
108 | include a readable copy of the attribution notices contained
109 | within such NOTICE file, excluding those notices that do not
110 | pertain to any part of the Derivative Works, in at least one
111 | of the following places: within a NOTICE text file distributed
112 | as part of the Derivative Works; within the Source form or
113 | documentation, if provided along with the Derivative Works; or,
114 | within a display generated by the Derivative Works, if and
115 | wherever such third-party notices normally appear. The contents
116 | of the NOTICE file are for informational purposes only and
117 | do not modify the License. You may add Your own attribution
118 | notices within Derivative Works that You distribute, alongside
119 | or as an addendum to the NOTICE text from the Work, provided
120 | that such additional attribution notices cannot be construed
121 | as modifying the License.
122 |
123 | You may add Your own copyright statement to Your modifications and
124 | may provide additional or different license terms and conditions
125 | for use, reproduction, or distribution of Your modifications, or
126 | for any such Derivative Works as a whole, provided Your use,
127 | reproduction, and distribution of the Work otherwise complies with
128 | the conditions stated in this License.
129 |
130 | 5. Submission of Contributions. Unless You explicitly state otherwise,
131 | any Contribution intentionally submitted for inclusion in the Work
132 | by You to the Licensor shall be under the terms and conditions of
133 | this License, without any additional terms or conditions.
134 | Notwithstanding the above, nothing herein shall supersede or modify
135 | the terms of any separate license agreement you may have executed
136 | with Licensor regarding such Contributions.
137 |
138 | 6. Trademarks. This License does not grant permission to use the trade
139 | names, trademarks, service marks, or product names of the Licensor,
140 | except as required for reasonable and customary use in describing the
141 | origin of the Work and reproducing the content of the NOTICE file.
142 |
143 | 7. Disclaimer of Warranty. Unless required by applicable law or
144 | agreed to in writing, Licensor provides the Work (and each
145 | Contributor provides its Contributions) on an "AS IS" BASIS,
146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147 | implied, including, without limitation, any warranties or conditions
148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149 | PARTICULAR PURPOSE. You are solely responsible for determining the
150 | appropriateness of using or redistributing the Work and assume any
151 | risks associated with Your exercise of permissions under this License.
152 |
153 | 8. Limitation of Liability. In no event and under no legal theory,
154 | whether in tort (including negligence), contract, or otherwise,
155 | unless required by applicable law (such as deliberate and grossly
156 | negligent acts) or agreed to in writing, shall any Contributor be
157 | liable to You for damages, including any direct, indirect, special,
158 | incidental, or consequential damages of any character arising as a
159 | result of this License or out of the use or inability to use the
160 | Work (including but not limited to damages for loss of goodwill,
161 | work stoppage, computer failure or malfunction, or any and all
162 | other commercial damages or losses), even if such Contributor
163 | has been advised of the possibility of such damages.
164 |
165 | 9. Accepting Warranty or Additional Liability. While redistributing
166 | the Work or Derivative Works thereof, You may choose to offer,
167 | and charge a fee for, acceptance of support, warranty, indemnity,
168 | or other liability obligations and/or rights consistent with this
169 | License. However, in accepting such obligations, You may act only
170 | on Your own behalf and on Your sole responsibility, not on behalf
171 | of any other Contributor, and only if You agree to indemnify,
172 | defend, and hold each Contributor harmless for any liability
173 | incurred by, or claims asserted against, such Contributor by reason
174 | of your accepting any such warranty or additional liability.
175 |
176 | END OF TERMS AND CONDITIONS
177 |
178 | APPENDIX: How to apply the Apache License to your work.
179 |
180 | To apply the Apache License to your work, attach the following
181 | boilerplate notice, with the fields enclosed by brackets "[]"
182 | replaced with your own identifying information. (Don't include
183 | the brackets!) The text should be enclosed in the appropriate
184 | comment syntax for the file format. We also recommend that a
185 | file or class name and description of purpose be included on the
186 | same "printed page" as the copyright notice for easier
187 | identification within third-party archives.
188 |
189 | Copyright [yyyy] [name of copyright owner]
190 |
191 | Licensed under the Apache License, Version 2.0 (the "License");
192 | you may not use this file except in compliance with the License.
193 | You may obtain a copy of the License at
194 |
195 | http://www.apache.org/licenses/LICENSE-2.0
196 |
197 | Unless required by applicable law or agreed to in writing, software
198 | distributed under the License is distributed on an "AS IS" BASIS,
199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200 | See the License for the specific language governing permissions and
201 | limitations under the License.
202 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Elasticsearch MCP Server
2 |
3 | This repository contains experimental features intended for research and evaluation and are not production-ready.
4 |
5 | Connect to your Elasticsearch data directly from any MCP Client (like Claude Desktop) using the Model Context Protocol (MCP).
6 |
7 | This server connects agents to your Elasticsearch data using the Model Context Protocol. It allows you to interact with your Elasticsearch indices through natural language conversations.
8 |
9 |
10 |
11 |
12 |
13 | ## Available Tools
14 |
15 | * `list_indices`: List all available Elasticsearch indices
16 | * `get_mappings`: Get field mappings for a specific Elasticsearch index
17 | * `search`: Perform an Elasticsearch search with the provided query DSL
18 | * `get_shards`: Get shard information for all or specific indices
19 |
20 | ## Prerequisites
21 |
22 | * An Elasticsearch instance
23 | * Elasticsearch authentication credentials (API key or username/password)
24 | * MCP Client (e.g. Claude Desktop)
25 |
26 | ## Demo
27 |
28 | https://github.com/user-attachments/assets/5dd292e1-a728-4ca7-8f01-1380d1bebe0c
29 |
30 | ## Installation & Setup
31 |
32 | ### Using the Published NPM Package
33 |
34 | > [!TIP]
35 | > The easiest way to use Elasticsearch MCP Server is through the published npm package.
36 |
37 | 1. **Configure MCP Client**
38 | - Open your MCP Client. See the [list of MCP Clients](https://modelcontextprotocol.io/clients), here we are configuring Claude Desktop.
39 | - Go to **Settings > Developer > MCP Servers**
40 | - Click `Edit Config` and add a new MCP Server with the following configuration:
41 |
42 | ```json
43 | {
44 | "mcpServers": {
45 | "elasticsearch-mcp-server": {
46 | "command": "npx",
47 | "args": [
48 | "-y",
49 | "@elastic/mcp-server-elasticsearch"
50 | ],
51 | "env": {
52 | "ES_URL": "your-elasticsearch-url",
53 | "ES_API_KEY": "your-api-key"
54 | }
55 | }
56 | }
57 | }
58 | ```
59 |
60 | 2. **Start a Conversation**
61 | - Open a new conversation in your MCP Client
62 | - The MCP server should connect automatically
63 | - You can now ask questions about your Elasticsearch data
64 |
65 | ### Configuration Options
66 |
67 | The Elasticsearch MCP Server supports configuration options to connect to your Elasticsearch:
68 |
69 | > [!NOTE]
70 | > You must provide either an API key or both username and password for authentication.
71 |
72 |
73 | | Environment Variable | Description | Required |
74 | |---------------------|-------------|----------|
75 | | `ES_URL` | Your Elasticsearch instance URL | Yes |
76 | | `ES_API_KEY` | Elasticsearch API key for authentication | No |
77 | | `ES_USERNAME` | Elasticsearch username for basic authentication | No |
78 | | `ES_PASSWORD` | Elasticsearch password for basic authentication | No |
79 | | `ES_CA_CERT` | Path to custom CA certificate for Elasticsearch SSL/TLS | No |
80 | | `ES_PATH_PREFIX` | Path prefix for Elasticsearch instance exposed at a non-root path | No |
81 |
82 |
83 | ### Developing Locally
84 |
85 | > [!NOTE]
86 | > If you want to modify or extend the MCP Server, follow these local development steps.
87 |
88 | 1. **Use the correct Node.js version**
89 | ```bash
90 | nvm use
91 | ```
92 |
93 | 2. **Install Dependencies**
94 | ```bash
95 | npm install
96 | ```
97 |
98 | 3. **Build the Project**
99 | ```bash
100 | npm run build
101 | ```
102 |
103 | 4. **Run locally in Claude Desktop App**
104 | - Open **Claude Desktop App**
105 | - Go to **Settings > Developer > MCP Servers**
106 | - Click `Edit Config` and add a new MCP Server with the following configuration:
107 |
108 | ```json
109 | {
110 | "mcpServers": {
111 | "elasticsearch-mcp-server-local": {
112 | "command": "node",
113 | "args": [
114 | "/path/to/your/project/dist/index.js"
115 | ],
116 | "env": {
117 | "ES_URL": "your-elasticsearch-url",
118 | "ES_API_KEY": "your-api-key"
119 | }
120 | }
121 | }
122 | }
123 | ```
124 |
125 | 5. **Debugging with MCP Inspector**
126 | ```bash
127 | ES_URL=your-elasticsearch-url ES_API_KEY=your-api-key npm run inspector
128 | ```
129 |
130 | This will start the MCP Inspector, allowing you to debug and analyze requests. You should see:
131 |
132 | ```bash
133 | Starting MCP inspector...
134 | Proxy server listening on port 3000
135 |
136 | 🔍 MCP Inspector is up and running at http://localhost:5173 🚀
137 | ```
138 |
139 | ## Contributing
140 |
141 | We welcome contributions from the community! For details on how to contribute, please see [Contributing Guidelines](/docs/CONTRIBUTING.md).
142 |
143 | ## Example Questions
144 |
145 | > [!TIP]
146 | > Here are some natural language queries you can try with your MCP Client.
147 |
148 | * "What indices do I have in my Elasticsearch cluster?"
149 | * "Show me the field mappings for the 'products' index."
150 | * "Find all orders over $500 from last month."
151 | * "Which products received the most 5-star reviews?"
152 |
153 | ## How It Works
154 |
155 | 1. The MCP Client analyzes your request and determines which Elasticsearch operations are needed.
156 | 2. The MCP server carries out these operations (listing indices, fetching mappings, performing searches).
157 | 3. The MCP Client processes the results and presents them in a user-friendly format.
158 |
159 | ## Security Best Practices
160 |
161 | > [!WARNING]
162 | > Avoid using cluster-admin privileges. Create dedicated API keys with limited scope and apply fine-grained access control at the index level to prevent unauthorized data access.
163 |
164 | You can create a dedicated Elasticsearch API key with minimal permissions to control access to your data:
165 |
166 | ```
167 | POST /_security/api_key
168 | {
169 | "name": "es-mcp-server-access",
170 | "role_descriptors": {
171 | "mcp_server_role": {
172 | "cluster": [
173 | "monitor"
174 | ],
175 | "indices": [
176 | {
177 | "names": [
178 | "index-1",
179 | "index-2",
180 | "index-pattern-*"
181 | ],
182 | "privileges": [
183 | "read",
184 | "view_index_metadata"
185 | ]
186 | }
187 | ]
188 | }
189 | }
190 | }
191 | ```
192 |
193 | ## License
194 |
195 | This project is licensed under the Apache License 2.0.
196 |
197 | ## Troubleshooting
198 |
199 | * Ensure your MCP configuration is correct.
200 | * Verify that your Elasticsearch URL is accessible from your machine.
201 | * Check that your authentication credentials (API key or username/password) have the necessary permissions.
202 | * If using SSL/TLS with a custom CA, verify that the certificate path is correct and the file is readable.
203 | * Look at the terminal output for error messages.
204 |
205 | If you encounter issues, feel free to open an issue on the GitHub repository.
206 |
--------------------------------------------------------------------------------
/catalog-info.yaml:
--------------------------------------------------------------------------------
1 | # Declare your Buildkite pipelines below
2 | ---
3 | # yaml-language-server: $schema=https://gist.githubusercontent.com/elasticmachine/988b80dae436cafea07d9a4a460a011d/raw/rre.schema.json
4 | apiVersion: backstage.io/v1alpha1
5 | kind: Resource
6 | metadata:
7 | name: buildkite-pipeline-mcp-server-elasticsearch
8 | description: Buildkite Pipeline for mcp-server-elasticsearch
9 | links:
10 | - title: Pipeline
11 | url: https://buildkite.com/elastic/mcp-server-elasticsearch
12 |
13 | spec:
14 | type: buildkite-pipeline
15 | owner: group:devtools-team
16 | system: buildkite
17 | implementation:
18 | apiVersion: buildkite.elastic.dev/v1
19 | kind: Pipeline
20 | metadata:
21 | name: mcp-server-elasticsearch
22 | description: Run checks for the mcp-server-elasticsearch package
23 | spec:
24 | repository: elastic/mcp-server-elasticsearch
25 | pipeline_file: ".buildkite/pipeline.yml"
26 | teams:
27 | search-extract-and-transform:
28 | access_level: MANAGE_BUILD_AND_READ
29 | devtools-team:
30 | access_level: MANAGE_BUILD_AND_READ
31 | everyone:
32 | access_level: READ_ONLY
33 |
--------------------------------------------------------------------------------
/docs/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing
2 |
3 | [fork]: https://github.com/elastic/mcp-server-elasticsearch/fork
4 | [pr]: https://github.com/elastic/mcp-server-elasticsearch/compare
5 | [code-of-conduct]: https://www.elastic.co/community/codeofconduct
6 |
7 | Elasticsearch MCP Server client is open source and we love to receive contributions from our community — you!
8 |
9 | There are many ways to contribute, from writing tutorials or blog posts, improving the documentation, submitting bug reports and feature requests or writing code.
10 |
11 |
12 | Contributions are [released](https://help.github.com/articles/github-terms-of-service/#6-contributions-under-repository-license) under the [project's license](../LICENSE).
13 |
14 | Please note that this project follows the [Elastic's Open Source Community Code of Conduct][code-of-conduct].
15 |
16 | ## Setup
17 |
18 | 1. Install Node.js 18+ (using [nvm](https://github.com/nvm-sh/nvm) is recommended)
19 | ```bash
20 | nvm use
21 | ```
22 | 2. Install dependencies
23 | ```bash
24 | npm install
25 | ```
26 | 3. Build the project
27 | ```bash
28 | npm run build
29 | ```
30 |
31 | ## Start Elasticsearch
32 |
33 | You can use either:
34 |
35 | 1. **Elastic Cloud** - Use an existing Elasticsearch deployment and your API key
36 | 2. **Local Elasticsearch** - Run Elasticsearch locally using the [start-local](https://www.elastic.co/guide/en/elasticsearch/reference/current/run-elasticsearch-locally.html) script:
37 | ```bash
38 | curl -fsSL https://elastic.co/start-local | sh
39 | ```
40 |
41 | This starts Elasticsearch and Kibana with Docker:
42 | - Elasticsearch: http://localhost:9200
43 | - Kibana: http://localhost:5601
44 |
45 | > [!NOTE]
46 | > The `start-local` setup is for development only. It uses basic authentication and disables HTTPS.
47 |
48 | ## Development Workflow
49 |
50 | 1. [Fork][fork] and clone the repository
51 | 2. Create a new branch: `git checkout -b my-branch-name`
52 | 3. Make your changes
53 | 4. Test locally with the MCP Inspector:
54 | ```bash
55 | ES_URL=your-elasticsearch-url ES_API_KEY=your-api-key npm run inspector
56 | ```
57 | 5. [Test with MCP Client](../README.md#developing-locally)
58 | 6. Push to your fork and [submit a pull request][pr]
59 |
60 | ## Best Practices
61 |
62 | - Follow existing code style and patterns
63 | - Write [conventional commits](https://www.conventionalcommits.org/)
64 | - Include tests for your changes
65 | - Keep PRs focused on a single concern
66 | - Update documentation as needed
67 | - Use TypeScript with proper typing
68 | - Add JSDoc comments to new functions
69 |
70 | ## Getting Help
71 |
72 | - Open an issue in the repository
73 | - Ask questions on [discuss.elastic.co](https://discuss.elastic.co/)
74 |
75 | ## Resources
76 |
77 | - [How to Contribute to Open Source](https://opensource.guide/how-to-contribute/)
78 | - [Using Pull Requests](https://help.github.com/articles/about-pull-requests/)
79 | - [Elastic Code of Conduct][code-of-conduct]
80 |
--------------------------------------------------------------------------------
/index.ts:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 |
3 | /*
4 | * Copyright Elasticsearch B.V. and contributors
5 | * SPDX-License-Identifier: Apache-2.0
6 | */
7 |
8 | import { z } from "zod";
9 | import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
10 | import {
11 | Client,
12 | estypes,
13 | ClientOptions,
14 | Transport,
15 | TransportRequestOptions,
16 | TransportRequestParams
17 | } from "@elastic/elasticsearch";
18 | import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
19 | import fs from "fs";
20 |
21 | // Product metadata, used to generate the request User-Agent header and
22 | // passed to the McpServer constructor.
23 | const product = {
24 | name: "elasticsearch-mcp",
25 | version: "0.1.1",
26 | };
27 |
28 | // Prepend a path prefix to every request path
29 | class CustomTransport extends Transport {
30 | private readonly pathPrefix: string;
31 |
32 | constructor(opts: ConstructorParameters[0], pathPrefix: string) {
33 | super(opts);
34 | this.pathPrefix = pathPrefix;
35 | }
36 |
37 | async request(
38 | params: TransportRequestParams,
39 | options?: TransportRequestOptions
40 | ): Promise {
41 | const newParams = { ...params, path: this.pathPrefix + params.path };
42 | return super.request(newParams, options);
43 | }
44 | }
45 |
46 | // Configuration schema with auth options
47 | const ConfigSchema = z
48 | .object({
49 | url: z
50 | .string()
51 | .trim()
52 | .min(1, "Elasticsearch URL cannot be empty")
53 | .url("Invalid Elasticsearch URL format")
54 | .describe("Elasticsearch server URL"),
55 |
56 | apiKey: z
57 | .string()
58 | .optional()
59 | .describe("API key for Elasticsearch authentication"),
60 |
61 | username: z
62 | .string()
63 | .optional()
64 | .describe("Username for Elasticsearch authentication"),
65 |
66 | password: z
67 | .string()
68 | .optional()
69 | .describe("Password for Elasticsearch authentication"),
70 |
71 | caCert: z
72 | .string()
73 | .optional()
74 | .describe("Path to custom CA certificate for Elasticsearch"),
75 |
76 | pathPrefix: z
77 | .string()
78 | .optional()
79 | .describe("Path prefix for Elasticsearch"),
80 | })
81 | .refine(
82 | (data) => {
83 | // If username is provided, password must be provided
84 | if (data.username) {
85 | return !!data.password;
86 | }
87 |
88 | // If password is provided, username must be provided
89 | if (data.password) {
90 | return !!data.username;
91 | }
92 |
93 | // If apiKey is provided, it's valid
94 | if (data.apiKey) {
95 | return true;
96 | }
97 |
98 | // No auth is also valid (for local development)
99 | return true;
100 | },
101 | {
102 | message:
103 | "Either ES_API_KEY or both ES_USERNAME and ES_PASSWORD must be provided, or no auth for local development",
104 | path: ["username", "password"],
105 | }
106 | );
107 |
108 | type ElasticsearchConfig = z.infer;
109 |
110 | export async function createElasticsearchMcpServer(
111 | config: ElasticsearchConfig
112 | ) {
113 | const validatedConfig = ConfigSchema.parse(config);
114 | const { url, apiKey, username, password, caCert, pathPrefix } = validatedConfig;
115 |
116 | const clientOptions: ClientOptions = {
117 | node: url,
118 | headers: {
119 | "user-agent": `${product.name}/${product.version}`,
120 | },
121 | };
122 |
123 | if (pathPrefix) {
124 | const verifiedPathPrefix = pathPrefix;
125 | clientOptions.Transport = class extends CustomTransport {
126 | constructor(opts: ConstructorParameters[0]) {
127 | super(opts, verifiedPathPrefix);
128 | }
129 | };
130 | }
131 |
132 | // Set up authentication
133 | if (apiKey) {
134 | clientOptions.auth = { apiKey };
135 | } else if (username && password) {
136 | clientOptions.auth = { username, password };
137 | }
138 |
139 | // Set up SSL/TLS certificate if provided
140 | if (caCert) {
141 | try {
142 | const ca = fs.readFileSync(caCert);
143 | clientOptions.tls = { ca };
144 | } catch (error) {
145 | console.error(
146 | `Failed to read certificate file: ${
147 | error instanceof Error ? error.message : String(error)
148 | }`
149 | );
150 | }
151 | }
152 |
153 | const esClient = new Client(clientOptions);
154 |
155 | const server = new McpServer(product);
156 |
157 | // Tool 1: List indices
158 | server.tool(
159 | "list_indices",
160 | "List all available Elasticsearch indices",
161 | {
162 | indexPattern: z
163 | .string()
164 | .trim()
165 | .min(1, "Index pattern is required")
166 | .describe("Index pattern of Elasticsearch indices to list"),
167 | },
168 | async ( {indexPattern} ) => {
169 | try {
170 | const response = await esClient.cat.indices({
171 | index: indexPattern,
172 | format: "json"
173 | });
174 |
175 | const indicesInfo = response.map((index) => ({
176 | index: index.index,
177 | health: index.health,
178 | status: index.status,
179 | docsCount: index.docsCount,
180 | }));
181 |
182 | return {
183 | content: [
184 | {
185 | type: "text" as const,
186 | text: `Found ${indicesInfo.length} indices`,
187 | },
188 | {
189 | type: "text" as const,
190 | text: JSON.stringify(indicesInfo, null, 2),
191 | },
192 | ],
193 | };
194 | } catch (error) {
195 | console.error(
196 | `Failed to list indices: ${
197 | error instanceof Error ? error.message : String(error)
198 | }`
199 | );
200 | return {
201 | content: [
202 | {
203 | type: "text" as const,
204 | text: `Error: ${
205 | error instanceof Error ? error.message : String(error)
206 | }`,
207 | },
208 | ],
209 | };
210 | }
211 | }
212 | );
213 |
214 | // Tool 2: Get mappings for an index
215 | server.tool(
216 | "get_mappings",
217 | "Get field mappings for a specific Elasticsearch index",
218 | {
219 | index: z
220 | .string()
221 | .trim()
222 | .min(1, "Index name is required")
223 | .describe("Name of the Elasticsearch index to get mappings for"),
224 | },
225 | async ({ index }) => {
226 | try {
227 | const mappingResponse = await esClient.indices.getMapping({
228 | index,
229 | });
230 |
231 | return {
232 | content: [
233 | {
234 | type: "text" as const,
235 | text: `Mappings for index: ${index}`,
236 | },
237 | {
238 | type: "text" as const,
239 | text: `Mappings for index ${index}: ${JSON.stringify(
240 | mappingResponse[index]?.mappings || {},
241 | null,
242 | 2
243 | )}`,
244 | },
245 | ],
246 | };
247 | } catch (error) {
248 | console.error(
249 | `Failed to get mappings: ${
250 | error instanceof Error ? error.message : String(error)
251 | }`
252 | );
253 | return {
254 | content: [
255 | {
256 | type: "text" as const,
257 | text: `Error: ${
258 | error instanceof Error ? error.message : String(error)
259 | }`,
260 | },
261 | ],
262 | };
263 | }
264 | }
265 | );
266 |
267 | // Tool 3: Search an index with simplified parameters
268 | server.tool(
269 | "search",
270 | "Perform an Elasticsearch search with the provided query DSL. Highlights are always enabled.",
271 | {
272 | index: z
273 | .string()
274 | .trim()
275 | .min(1, "Index name is required")
276 | .describe("Name of the Elasticsearch index to search"),
277 |
278 | queryBody: z
279 | .record(z.any())
280 | .refine(
281 | (val) => {
282 | try {
283 | JSON.parse(JSON.stringify(val));
284 | return true;
285 | } catch (e) {
286 | return false;
287 | }
288 | },
289 | {
290 | message: "queryBody must be a valid Elasticsearch query DSL object",
291 | }
292 | )
293 | .describe(
294 | "Complete Elasticsearch query DSL object that can include query, size, from, sort, etc."
295 | ),
296 | },
297 | async ({ index, queryBody }) => {
298 | try {
299 | // Get mappings to identify text fields for highlighting
300 | const mappingResponse = await esClient.indices.getMapping({
301 | index,
302 | });
303 |
304 | const indexMappings = mappingResponse[index]?.mappings || {};
305 |
306 | const searchRequest: estypes.SearchRequest = {
307 | index,
308 | ...queryBody,
309 | };
310 |
311 | // Always do highlighting
312 | if (indexMappings.properties) {
313 | const textFields: Record = {};
314 |
315 | for (const [fieldName, fieldData] of Object.entries(
316 | indexMappings.properties
317 | )) {
318 | if (fieldData.type === "text" || "dense_vector" in fieldData) {
319 | textFields[fieldName] = {};
320 | }
321 | }
322 |
323 | searchRequest.highlight = {
324 | fields: textFields,
325 | pre_tags: [""],
326 | post_tags: [""],
327 | };
328 | }
329 |
330 | const result = await esClient.search(searchRequest);
331 |
332 | // Extract the 'from' parameter from queryBody, defaulting to 0 if not provided
333 | const from = queryBody.from || 0;
334 |
335 | const contentFragments = result.hits.hits.map((hit) => {
336 | const highlightedFields = hit.highlight || {};
337 | const sourceData = hit._source || {};
338 |
339 | let content = "";
340 |
341 | for (const [field, highlights] of Object.entries(highlightedFields)) {
342 | if (highlights && highlights.length > 0) {
343 | content += `${field} (highlighted): ${highlights.join(
344 | " ... "
345 | )}\n`;
346 | }
347 | }
348 |
349 | for (const [field, value] of Object.entries(sourceData)) {
350 | if (!(field in highlightedFields)) {
351 | content += `${field}: ${JSON.stringify(value)}\n`;
352 | }
353 | }
354 |
355 | return {
356 | type: "text" as const,
357 | text: content.trim(),
358 | };
359 | });
360 |
361 | const metadataFragment = {
362 | type: "text" as const,
363 | text: `Total results: ${
364 | typeof result.hits.total === "number"
365 | ? result.hits.total
366 | : result.hits.total?.value || 0
367 | }, showing ${result.hits.hits.length} from position ${from}`,
368 | };
369 |
370 | return {
371 | content: [metadataFragment, ...contentFragments],
372 | };
373 | } catch (error) {
374 | console.error(
375 | `Search failed: ${
376 | error instanceof Error ? error.message : String(error)
377 | }`
378 | );
379 | return {
380 | content: [
381 | {
382 | type: "text" as const,
383 | text: `Error: ${
384 | error instanceof Error ? error.message : String(error)
385 | }`,
386 | },
387 | ],
388 | };
389 | }
390 | }
391 | );
392 |
393 | // Tool 4: Get shard information
394 | server.tool(
395 | "get_shards",
396 | "Get shard information for all or specific indices",
397 | {
398 | index: z
399 | .string()
400 | .optional()
401 | .describe("Optional index name to get shard information for"),
402 | },
403 | async ({ index }) => {
404 | try {
405 | const response = await esClient.cat.shards({
406 | index,
407 | format: "json",
408 | });
409 |
410 | const shardsInfo = response.map((shard) => ({
411 | index: shard.index,
412 | shard: shard.shard,
413 | prirep: shard.prirep,
414 | state: shard.state,
415 | docs: shard.docs,
416 | store: shard.store,
417 | ip: shard.ip,
418 | node: shard.node,
419 | }));
420 |
421 | const metadataFragment = {
422 | type: "text" as const,
423 | text: `Found ${shardsInfo.length} shards${
424 | index ? ` for index ${index}` : ""
425 | }`,
426 | };
427 |
428 | return {
429 | content: [
430 | metadataFragment,
431 | {
432 | type: "text" as const,
433 | text: JSON.stringify(shardsInfo, null, 2),
434 | },
435 | ],
436 | };
437 | } catch (error) {
438 | console.error(
439 | `Failed to get shard information: ${
440 | error instanceof Error ? error.message : String(error)
441 | }`
442 | );
443 | return {
444 | content: [
445 | {
446 | type: "text" as const,
447 | text: `Error: ${
448 | error instanceof Error ? error.message : String(error)
449 | }`,
450 | },
451 | ],
452 | };
453 | }
454 | }
455 | );
456 |
457 | return server;
458 | }
459 |
460 | const config: ElasticsearchConfig = {
461 | url: process.env.ES_URL || "",
462 | apiKey: process.env.ES_API_KEY || "",
463 | username: process.env.ES_USERNAME || "",
464 | password: process.env.ES_PASSWORD || "",
465 | caCert: process.env.ES_CA_CERT || "",
466 | pathPrefix: process.env.ES_PATH_PREFIX || "",
467 | };
468 |
469 | async function main() {
470 | const transport = new StdioServerTransport();
471 | const server = await createElasticsearchMcpServer(config);
472 |
473 | await server.connect(transport);
474 |
475 | process.on("SIGINT", async () => {
476 | await server.close();
477 | process.exit(0);
478 | });
479 | }
480 |
481 | main().catch((error) => {
482 | console.error(
483 | "Server error:",
484 | error instanceof Error ? error.message : String(error)
485 | );
486 | process.exit(1);
487 | });
488 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@elastic/mcp-server-elasticsearch",
3 | "description": "Elasticsearch MCP Server",
4 | "version": "0.1.1",
5 | "license": "Apache-2.0",
6 | "author": "Elastic",
7 | "type": "module",
8 | "main": "dist/index.js",
9 | "module": "dist/index.js",
10 | "bin": {
11 | "mcp-server-elasticsearch": "./dist/index.js"
12 | },
13 | "repository": "https://github.com/elastic/mcp-server-elasticsearch",
14 | "bugs": "https://github.com/elastic/mcp-server-elasticsearch/issues",
15 | "homepage": "https://github.com/elastic/mcp-server-elasticsearch",
16 | "keywords": [
17 | "elasticsearch",
18 | "search",
19 | "mcp",
20 | "mcp-server"
21 | ],
22 | "files": [
23 | "dist",
24 | "NOTICE.txt",
25 | "LICENSE",
26 | "README.md"
27 | ],
28 | "scripts": {
29 | "build": "tsc && shx chmod +x dist/*.js",
30 | "prepare": "npm run build",
31 | "watch": "tsc --watch",
32 | "start": "node dist/index.js",
33 | "inspector": "npx @modelcontextprotocol/inspector node dist/index.js",
34 | "test": "npm run build",
35 | "license-checker": "license-checker --production --onlyAllow='MIT;Apache-2.0;Apache1.1;ISC;BSD-3-Clause;BSD-2-Clause;0BSD'",
36 | "license-header": "./scripts/check-spdx",
37 | "generate-notice": "node ./scripts/generate-notice.js"
38 | },
39 | "dependencies": {
40 | "@elastic/elasticsearch": "^9.0.0",
41 | "@modelcontextprotocol/sdk": "1.12.1"
42 | },
43 | "engines": {
44 | "node": ">=18"
45 | },
46 | "devDependencies": {
47 | "@types/node": "22.15.29",
48 | "license-checker": "25.0.1",
49 | "shx": "0.4.0",
50 | "typescript": "5.8.3"
51 | },
52 | "publishConfig": {
53 | "access": "public"
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/renovate.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://docs.renovatebot.com/renovate-schema.json",
3 | "extends": [
4 | "local>elastic/renovate-config"
5 | ],
6 | "schedule": [
7 | "after 1am on monday"
8 | ]
9 | }
10 |
--------------------------------------------------------------------------------
/scripts/check-spdx:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | # Copyright Elasticsearch B.V. and contributors
4 | # SPDX-License-Identifier: Apache-2.0
5 |
6 | the_exit=0
7 |
8 | check_file() {
9 | if grep -q "Copyright Elasticsearch B.V. and contributors" "$1" && \
10 | grep -q "SPDX-License-Identifier: Apache-2.0" "$1"; then
11 | echo "Correct: $1"
12 | else
13 | echo "Incorrect: $1"
14 | the_exit=1
15 | fi
16 | }
17 |
18 | echo "SPDX license header check"
19 | for file in $(git ls-files | grep -E '\.(ts|js|mjs)$'); do
20 | check_file "$file"
21 | done
22 |
23 | exit "$the_exit"
24 |
--------------------------------------------------------------------------------
/scripts/generate-notice.js:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 |
3 | /*
4 | * Copyright Elasticsearch B.V. and contributors
5 | * SPDX-License-Identifier: Apache-2.0
6 | */
7 |
8 | import { exec } from "child_process";
9 | import fs from "fs/promises";
10 | import path from "path";
11 | import { fileURLToPath } from "url";
12 |
13 | const __dirname = path.dirname(fileURLToPath(import.meta.url));
14 |
15 | // Execute license-checker command
16 | const generateNotice = () => {
17 | return new Promise((resolve, reject) => {
18 | exec("npx license-checker --json --production", (error, stdout) => {
19 | if (error) {
20 | return reject(error);
21 | }
22 | resolve(JSON.parse(stdout));
23 | });
24 | });
25 | };
26 |
27 | async function createNoticeFile() {
28 | // Custom header for notice file
29 | let noticeContent = `Elasticsearch MCP Server
30 | Copyright 2025 Elasticsearch B.V.
31 |
32 | The Elasticsearch MCP Server contains the following third-party dependencies:
33 |
34 | `;
35 |
36 | try {
37 | const licenses = await generateNotice();
38 |
39 | for (const [pkgNameVer, info] of Object.entries(licenses)) {
40 | const pkgName =
41 | pkgNameVer.split("@")[0] === ""
42 | ? "@" + pkgNameVer.split("@")[1]
43 | : pkgNameVer.split("@")[0];
44 |
45 | // Extract version from the pkgNameVer string
46 | let version;
47 | if (pkgNameVer.split("@")[0] === "") {
48 | // Handle scoped packages (@organization/package-name@1.0.0)
49 | const parts = pkgNameVer.split("@");
50 | if (parts.length >= 3) {
51 | version = parts[2];
52 | }
53 | } else {
54 | // Handle regular packages (package-name@1.0.0)
55 | const parts = pkgNameVer.split("@");
56 | if (parts.length >= 2) {
57 | version = parts[1];
58 | }
59 | }
60 |
61 | // Use extracted version if available, otherwise fall back to info.version
62 | const displayVersion = version || info.version || "";
63 |
64 | noticeContent += `\n-------------------------------------------------------------------\n`;
65 | noticeContent += `Package: ${pkgName}\n`;
66 | noticeContent += `Version: ${displayVersion}\n`;
67 | noticeContent += `License: ${info.licenses || "Unknown"}\n`;
68 |
69 | if (info.publisher) {
70 | noticeContent += `Author: ${info.publisher}\n`;
71 | }
72 |
73 | noticeContent += `\n`;
74 |
75 | // Include license text if available
76 | if (info.licenseFile && typeof info.licenseFile === "string") {
77 | try {
78 | const licenseText = await fs.readFile(info.licenseFile, "utf-8");
79 | noticeContent += `${licenseText.trim()}\n`;
80 | } catch (err) {
81 | noticeContent += `License text not available.\n`;
82 | }
83 | } else {
84 | noticeContent += `License text not available.\n`;
85 | }
86 | }
87 |
88 | // Write the NOTICE.txt file in the repo root
89 | await fs.writeFile(
90 | path.join(__dirname, "..", "NOTICE.txt"),
91 | noticeContent,
92 | "utf-8"
93 | );
94 | console.log("NOTICE.txt file has been generated successfully.");
95 | } catch (error) {
96 | console.error("Error generating NOTICE.txt:", error);
97 | }
98 | }
99 |
100 | createNoticeFile();
101 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "ES2022",
4 | "module": "Node16",
5 | "moduleResolution": "Node16",
6 | "esModuleInterop": true,
7 | "outDir": "./dist",
8 | "rootDir": "./",
9 | "strict": true,
10 | "declaration": true,
11 | "skipLibCheck": true,
12 | "forceConsistentCasingInFileNames": true
13 | },
14 | "include": [
15 | "*.ts"
16 | ],
17 | "exclude": [
18 | "node_modules",
19 | "dist"
20 | ]
21 | }
22 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@elastic/elasticsearch@^9.0.0":
6 | version "9.0.2"
7 | resolved "https://registry.yarnpkg.com/@elastic/elasticsearch/-/elasticsearch-9.0.2.tgz#66fb8465fdeabb0c1174d3c48c0a2d5ad5d177c4"
8 | integrity sha512-uKA0PuPSND3OhHH9UFqnKZfxifAg/8mQW4VnrQ+sUtusTbPhGuErs5NeWCPyd/RLgruBWBmLSv1zzEv5GS+UnA==
9 | dependencies:
10 | "@elastic/transport" "^9.0.1"
11 | apache-arrow "18.x - 19.x"
12 | tslib "^2.4.0"
13 |
14 | "@elastic/transport@^9.0.1":
15 | version "9.0.1"
16 | resolved "https://registry.npmjs.org/@elastic/transport/-/transport-9.0.1.tgz"
17 | integrity sha512-6jVZQzAe2iTRsZA6I/wkO2BjzJFD9BHTASo2YgGfbcoV95ey/8D/ABRhpgfg35LIDrmialIGJBizunSwxsRDLg==
18 | dependencies:
19 | "@opentelemetry/api" "1.x"
20 | debug "^4.4.0"
21 | hpagent "^1.2.0"
22 | ms "^2.1.3"
23 | secure-json-parse "^3.0.2"
24 | tslib "^2.8.1"
25 | undici "^7.2.3"
26 |
27 | "@modelcontextprotocol/sdk@1.12.1":
28 | version "1.12.1"
29 | resolved "https://registry.yarnpkg.com/@modelcontextprotocol/sdk/-/sdk-1.12.1.tgz#f77503f0263b33cb1e5b81a6ff0c322393cabd37"
30 | integrity sha512-KG1CZhZfWg+u8pxeM/mByJDScJSrjjxLc8fwQqbsS8xCjBmQfMNEBTotYdNanKekepnfRI85GtgQlctLFpcYPw==
31 | dependencies:
32 | ajv "^6.12.6"
33 | content-type "^1.0.5"
34 | cors "^2.8.5"
35 | cross-spawn "^7.0.5"
36 | eventsource "^3.0.2"
37 | express "^5.0.1"
38 | express-rate-limit "^7.5.0"
39 | pkce-challenge "^5.0.0"
40 | raw-body "^3.0.0"
41 | zod "^3.23.8"
42 | zod-to-json-schema "^3.24.1"
43 |
44 | "@nodelib/fs.scandir@2.1.5":
45 | version "2.1.5"
46 | resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz"
47 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
48 | dependencies:
49 | "@nodelib/fs.stat" "2.0.5"
50 | run-parallel "^1.1.9"
51 |
52 | "@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5":
53 | version "2.0.5"
54 | resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz"
55 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
56 |
57 | "@nodelib/fs.walk@^1.2.3":
58 | version "1.2.8"
59 | resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz"
60 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
61 | dependencies:
62 | "@nodelib/fs.scandir" "2.1.5"
63 | fastq "^1.6.0"
64 |
65 | "@opentelemetry/api@1.x":
66 | version "1.9.0"
67 | resolved "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz"
68 | integrity sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==
69 |
70 | "@swc/helpers@^0.5.11":
71 | version "0.5.17"
72 | resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.17.tgz#5a7be95ac0f0bf186e7e6e890e7a6f6cda6ce971"
73 | integrity sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==
74 | dependencies:
75 | tslib "^2.8.0"
76 |
77 | "@types/command-line-args@^5.2.3":
78 | version "5.2.3"
79 | resolved "https://registry.npmjs.org/@types/command-line-args/-/command-line-args-5.2.3.tgz"
80 | integrity sha512-uv0aG6R0Y8WHZLTamZwtfsDLVRnOa+n+n5rEvFWL5Na5gZ8V2Teab/duDPFzIIIhs9qizDpcavCusCLJZu62Kw==
81 |
82 | "@types/command-line-usage@^5.0.4":
83 | version "5.0.4"
84 | resolved "https://registry.npmjs.org/@types/command-line-usage/-/command-line-usage-5.0.4.tgz"
85 | integrity sha512-BwR5KP3Es/CSht0xqBcUXS3qCAUVXwpRKsV2+arxeb65atasuXG9LykC9Ab10Cw3s2raH92ZqOeILaQbsB2ACg==
86 |
87 | "@types/node@22.15.29":
88 | version "22.15.29"
89 | resolved "https://registry.yarnpkg.com/@types/node/-/node-22.15.29.tgz#c75999124a8224a3f79dd8b6ccfb37d74098f678"
90 | integrity sha512-LNdjOkUDlU1RZb8e1kOIUpN1qQUlzGkEtbVNo53vbrwDg5om6oduhm4SiUaPW5ASTXhAiP0jInWG8Qx9fVlOeQ==
91 | dependencies:
92 | undici-types "~6.21.0"
93 |
94 | "@types/node@^20.13.0":
95 | version "20.17.57"
96 | resolved "https://registry.yarnpkg.com/@types/node/-/node-20.17.57.tgz#f807455e3303ba8ba08fcb1db90619356abfaa99"
97 | integrity sha512-f3T4y6VU4fVQDKVqJV4Uppy8c1p/sVvS3peyqxyWnzkqXFJLRU7Y1Bl7rMS1Qe9z0v4M6McY0Fp9yBsgHJUsWQ==
98 | dependencies:
99 | undici-types "~6.19.2"
100 |
101 | "@types/node@22.14.1":
102 | version "22.14.1"
103 | resolved "https://registry.npmjs.org/@types/node/-/node-22.14.1.tgz"
104 | integrity sha512-u0HuPQwe/dHrItgHHpmw3N2fYCR6x4ivMNbPHRkBVP4CvN+kiRrKHWk3i8tXiO/joPwXLMYvF9TTF0eqgHIuOw==
105 | dependencies:
106 | undici-types "~6.21.0"
107 |
108 | abbrev@1:
109 | version "1.1.1"
110 | resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz"
111 | integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
112 |
113 | accepts@^2.0.0:
114 | version "2.0.0"
115 | resolved "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz"
116 | integrity sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==
117 | dependencies:
118 | mime-types "^3.0.0"
119 | negotiator "^1.0.0"
120 |
121 | ajv@^6.12.6:
122 | version "6.12.6"
123 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
124 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
125 | dependencies:
126 | fast-deep-equal "^3.1.1"
127 | fast-json-stable-stringify "^2.0.0"
128 | json-schema-traverse "^0.4.1"
129 | uri-js "^4.2.2"
130 |
131 | ansi-styles@^3.2.1:
132 | version "3.2.1"
133 | resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz"
134 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
135 | dependencies:
136 | color-convert "^1.9.0"
137 |
138 | ansi-styles@^4.1.0:
139 | version "4.3.0"
140 | resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz"
141 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
142 | dependencies:
143 | color-convert "^2.0.1"
144 |
145 | "apache-arrow@18.x - 19.x":
146 | version "19.0.1"
147 | resolved "https://registry.npmjs.org/apache-arrow/-/apache-arrow-19.0.1.tgz"
148 | integrity sha512-APmMLzS4qbTivLrPdQXexGM4JRr+0g62QDaobzEvip/FdQIrv2qLy0mD5Qdmw4buydtVJgbFeKR8f59I6PPGDg==
149 | dependencies:
150 | "@swc/helpers" "^0.5.11"
151 | "@types/command-line-args" "^5.2.3"
152 | "@types/command-line-usage" "^5.0.4"
153 | "@types/node" "^20.13.0"
154 | command-line-args "^6.0.1"
155 | command-line-usage "^7.0.1"
156 | flatbuffers "^24.3.25"
157 | json-bignum "^0.0.3"
158 | tslib "^2.6.2"
159 |
160 | array-back@^6.2.2:
161 | version "6.2.2"
162 | resolved "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz"
163 | integrity sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==
164 |
165 | array-find-index@^1.0.2:
166 | version "1.0.2"
167 | resolved "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz"
168 | integrity sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==
169 |
170 | asap@^2.0.0:
171 | version "2.0.6"
172 | resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz"
173 | integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==
174 |
175 | balanced-match@^1.0.0:
176 | version "1.0.2"
177 | resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"
178 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
179 |
180 | body-parser@^2.0.1:
181 | version "2.1.0"
182 | resolved "https://registry.npmjs.org/body-parser/-/body-parser-2.1.0.tgz"
183 | integrity sha512-/hPxh61E+ll0Ujp24Ilm64cykicul1ypfwjVttduAiEdtnJFvLePSrIPk+HMImtNv5270wOGCb1Tns2rybMkoQ==
184 | dependencies:
185 | bytes "^3.1.2"
186 | content-type "^1.0.5"
187 | debug "^4.4.0"
188 | http-errors "^2.0.0"
189 | iconv-lite "^0.5.2"
190 | on-finished "^2.4.1"
191 | qs "^6.14.0"
192 | raw-body "^3.0.0"
193 | type-is "^2.0.0"
194 |
195 | brace-expansion@^1.1.7:
196 | version "1.1.11"
197 | resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"
198 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
199 | dependencies:
200 | balanced-match "^1.0.0"
201 | concat-map "0.0.1"
202 |
203 | braces@^3.0.3:
204 | version "3.0.3"
205 | resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz"
206 | integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
207 | dependencies:
208 | fill-range "^7.1.1"
209 |
210 | bytes@^3.1.2, bytes@3.1.2:
211 | version "3.1.2"
212 | resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz"
213 | integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==
214 |
215 | call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2:
216 | version "1.0.2"
217 | resolved "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz"
218 | integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==
219 | dependencies:
220 | es-errors "^1.3.0"
221 | function-bind "^1.1.2"
222 |
223 | call-bound@^1.0.2:
224 | version "1.0.4"
225 | resolved "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz"
226 | integrity sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==
227 | dependencies:
228 | call-bind-apply-helpers "^1.0.2"
229 | get-intrinsic "^1.3.0"
230 |
231 | chalk-template@^0.4.0:
232 | version "0.4.0"
233 | resolved "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz"
234 | integrity sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==
235 | dependencies:
236 | chalk "^4.1.2"
237 |
238 | chalk@^2.4.1:
239 | version "2.4.2"
240 | resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz"
241 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
242 | dependencies:
243 | ansi-styles "^3.2.1"
244 | escape-string-regexp "^1.0.5"
245 | supports-color "^5.3.0"
246 |
247 | chalk@^4.1.2:
248 | version "4.1.2"
249 | resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz"
250 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
251 | dependencies:
252 | ansi-styles "^4.1.0"
253 | supports-color "^7.1.0"
254 |
255 | color-convert@^1.9.0:
256 | version "1.9.3"
257 | resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"
258 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
259 | dependencies:
260 | color-name "1.1.3"
261 |
262 | color-convert@^2.0.1:
263 | version "2.0.1"
264 | resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz"
265 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
266 | dependencies:
267 | color-name "~1.1.4"
268 |
269 | color-name@~1.1.4:
270 | version "1.1.4"
271 | resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
272 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
273 |
274 | color-name@1.1.3:
275 | version "1.1.3"
276 | resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
277 | integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
278 |
279 | command-line-args@^6.0.1:
280 | version "6.0.1"
281 | resolved "https://registry.npmjs.org/command-line-args/-/command-line-args-6.0.1.tgz"
282 | integrity sha512-Jr3eByUjqyK0qd8W0SGFW1nZwqCaNCtbXjRo2cRJC1OYxWl3MZ5t1US3jq+cO4sPavqgw4l9BMGX0CBe+trepg==
283 | dependencies:
284 | array-back "^6.2.2"
285 | find-replace "^5.0.2"
286 | lodash.camelcase "^4.3.0"
287 | typical "^7.2.0"
288 |
289 | command-line-usage@^7.0.1:
290 | version "7.0.3"
291 | resolved "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.3.tgz"
292 | integrity sha512-PqMLy5+YGwhMh1wS04mVG44oqDsgyLRSKJBdOo1bnYhMKBW65gZF1dRp2OZRhiTjgUHljy99qkO7bsctLaw35Q==
293 | dependencies:
294 | array-back "^6.2.2"
295 | chalk-template "^0.4.0"
296 | table-layout "^4.1.0"
297 | typical "^7.1.1"
298 |
299 | concat-map@0.0.1:
300 | version "0.0.1"
301 | resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
302 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
303 |
304 | content-disposition@^1.0.0:
305 | version "1.0.0"
306 | resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.0.tgz"
307 | integrity sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==
308 | dependencies:
309 | safe-buffer "5.2.1"
310 |
311 | content-type@^1.0.5, content-type@~1.0.4:
312 | version "1.0.5"
313 | resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz"
314 | integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==
315 |
316 | cookie-signature@^1.2.1:
317 | version "1.2.2"
318 | resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz"
319 | integrity sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==
320 |
321 | cookie@0.7.1:
322 | version "0.7.1"
323 | resolved "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz"
324 | integrity sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==
325 |
326 | cors@^2.8.5:
327 | version "2.8.5"
328 | resolved "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz"
329 | integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==
330 | dependencies:
331 | object-assign "^4"
332 | vary "^1"
333 |
334 | cross-spawn@^6.0.0:
335 | version "6.0.6"
336 | resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz"
337 | integrity sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==
338 | dependencies:
339 | nice-try "^1.0.4"
340 | path-key "^2.0.1"
341 | semver "^5.5.0"
342 | shebang-command "^1.2.0"
343 | which "^1.2.9"
344 |
345 | cross-spawn@^7.0.5:
346 | version "7.0.6"
347 | resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz"
348 | integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==
349 | dependencies:
350 | path-key "^3.1.0"
351 | shebang-command "^2.0.0"
352 | which "^2.0.1"
353 |
354 | debug@^3.1.0:
355 | version "3.2.7"
356 | resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz"
357 | integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
358 | dependencies:
359 | ms "^2.1.1"
360 |
361 | debug@^4.3.5:
362 | version "4.4.0"
363 | resolved "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz"
364 | integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==
365 | dependencies:
366 | ms "^2.1.3"
367 |
368 | debug@^4.4.0:
369 | version "4.4.1"
370 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.1.tgz#e5a8bc6cbc4c6cd3e64308b0693a3d4fa550189b"
371 | integrity sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==
372 | dependencies:
373 | ms "^2.1.3"
374 |
375 | debuglog@^1.0.1:
376 | version "1.0.1"
377 | resolved "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz"
378 | integrity sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==
379 |
380 | depd@2.0.0:
381 | version "2.0.0"
382 | resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz"
383 | integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
384 |
385 | destroy@^1.2.0:
386 | version "1.2.0"
387 | resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz"
388 | integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==
389 |
390 | dezalgo@^1.0.0:
391 | version "1.0.4"
392 | resolved "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz"
393 | integrity sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==
394 | dependencies:
395 | asap "^2.0.0"
396 | wrappy "1"
397 |
398 | dunder-proto@^1.0.1:
399 | version "1.0.1"
400 | resolved "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz"
401 | integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==
402 | dependencies:
403 | call-bind-apply-helpers "^1.0.1"
404 | es-errors "^1.3.0"
405 | gopd "^1.2.0"
406 |
407 | ee-first@1.1.1:
408 | version "1.1.1"
409 | resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"
410 | integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==
411 |
412 | encodeurl@^2.0.0, encodeurl@~2.0.0:
413 | version "2.0.0"
414 | resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz"
415 | integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==
416 |
417 | end-of-stream@^1.1.0:
418 | version "1.4.4"
419 | resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz"
420 | integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
421 | dependencies:
422 | once "^1.4.0"
423 |
424 | es-define-property@^1.0.1:
425 | version "1.0.1"
426 | resolved "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz"
427 | integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==
428 |
429 | es-errors@^1.3.0:
430 | version "1.3.0"
431 | resolved "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz"
432 | integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
433 |
434 | es-object-atoms@^1.0.0, es-object-atoms@^1.1.1:
435 | version "1.1.1"
436 | resolved "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz"
437 | integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==
438 | dependencies:
439 | es-errors "^1.3.0"
440 |
441 | escape-html@^1.0.3, escape-html@~1.0.3:
442 | version "1.0.3"
443 | resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz"
444 | integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==
445 |
446 | escape-string-regexp@^1.0.5:
447 | version "1.0.5"
448 | resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"
449 | integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
450 |
451 | etag@^1.8.1, etag@~1.8.1:
452 | version "1.8.1"
453 | resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz"
454 | integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==
455 |
456 | eventsource-parser@^3.0.0:
457 | version "3.0.0"
458 | resolved "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.0.0.tgz"
459 | integrity sha512-T1C0XCUimhxVQzW4zFipdx0SficT651NnkR0ZSH3yQwh+mFMdLfgjABVi4YtMTtaL4s168593DaoaRLMqryavA==
460 |
461 | eventsource@^3.0.2:
462 | version "3.0.5"
463 | resolved "https://registry.npmjs.org/eventsource/-/eventsource-3.0.5.tgz"
464 | integrity sha512-LT/5J605bx5SNyE+ITBDiM3FxffBiq9un7Vx0EwMDM3vg8sWKx/tO2zC+LMqZ+smAM0F2hblaDZUVZF0te2pSw==
465 | dependencies:
466 | eventsource-parser "^3.0.0"
467 |
468 | execa@^1.0.0:
469 | version "1.0.0"
470 | resolved "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz"
471 | integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==
472 | dependencies:
473 | cross-spawn "^6.0.0"
474 | get-stream "^4.0.0"
475 | is-stream "^1.1.0"
476 | npm-run-path "^2.0.0"
477 | p-finally "^1.0.0"
478 | signal-exit "^3.0.0"
479 | strip-eof "^1.0.0"
480 |
481 | express-rate-limit@^7.5.0:
482 | version "7.5.0"
483 | resolved "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-7.5.0.tgz"
484 | integrity sha512-eB5zbQh5h+VenMPM3fh+nw1YExi5nMr6HUCR62ELSP11huvxm/Uir1H1QEyTkk5QX6A58pX6NmaTMceKZ0Eodg==
485 |
486 | "express@^4.11 || 5 || ^5.0.0-beta.1", express@^5.0.1:
487 | version "5.0.1"
488 | resolved "https://registry.npmjs.org/express/-/express-5.0.1.tgz"
489 | integrity sha512-ORF7g6qGnD+YtUG9yx4DFoqCShNMmUKiXuT5oWMHiOvt/4WFbHC6yCwQMTSBMno7AqntNCAzzcnnjowRkTL9eQ==
490 | dependencies:
491 | accepts "^2.0.0"
492 | body-parser "^2.0.1"
493 | content-disposition "^1.0.0"
494 | content-type "~1.0.4"
495 | cookie "0.7.1"
496 | cookie-signature "^1.2.1"
497 | debug "4.3.6"
498 | depd "2.0.0"
499 | encodeurl "~2.0.0"
500 | escape-html "~1.0.3"
501 | etag "~1.8.1"
502 | finalhandler "^2.0.0"
503 | fresh "2.0.0"
504 | http-errors "2.0.0"
505 | merge-descriptors "^2.0.0"
506 | methods "~1.1.2"
507 | mime-types "^3.0.0"
508 | on-finished "2.4.1"
509 | once "1.4.0"
510 | parseurl "~1.3.3"
511 | proxy-addr "~2.0.7"
512 | qs "6.13.0"
513 | range-parser "~1.2.1"
514 | router "^2.0.0"
515 | safe-buffer "5.2.1"
516 | send "^1.1.0"
517 | serve-static "^2.1.0"
518 | setprototypeof "1.2.0"
519 | statuses "2.0.1"
520 | type-is "^2.0.0"
521 | utils-merge "1.0.1"
522 | vary "~1.1.2"
523 |
524 | fast-deep-equal@^3.1.1:
525 | version "3.1.3"
526 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
527 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
528 |
529 | fast-glob@^3.3.2:
530 | version "3.3.3"
531 | resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz"
532 | integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==
533 | dependencies:
534 | "@nodelib/fs.stat" "^2.0.2"
535 | "@nodelib/fs.walk" "^1.2.3"
536 | glob-parent "^5.1.2"
537 | merge2 "^1.3.0"
538 | micromatch "^4.0.8"
539 |
540 | fast-json-stable-stringify@^2.0.0:
541 | version "2.1.0"
542 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
543 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
544 |
545 | fastq@^1.6.0:
546 | version "1.19.1"
547 | resolved "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz"
548 | integrity sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==
549 | dependencies:
550 | reusify "^1.0.4"
551 |
552 | fill-range@^7.1.1:
553 | version "7.1.1"
554 | resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz"
555 | integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==
556 | dependencies:
557 | to-regex-range "^5.0.1"
558 |
559 | finalhandler@^2.0.0:
560 | version "2.1.0"
561 | resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.0.tgz"
562 | integrity sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==
563 | dependencies:
564 | debug "^4.4.0"
565 | encodeurl "^2.0.0"
566 | escape-html "^1.0.3"
567 | on-finished "^2.4.1"
568 | parseurl "^1.3.3"
569 | statuses "^2.0.1"
570 |
571 | find-replace@^5.0.2:
572 | version "5.0.2"
573 | resolved "https://registry.npmjs.org/find-replace/-/find-replace-5.0.2.tgz"
574 | integrity sha512-Y45BAiE3mz2QsrN2fb5QEtO4qb44NcS7en/0y9PEVsg351HsLeVclP8QPMH79Le9sH3rs5RSwJu99W0WPZO43Q==
575 |
576 | flatbuffers@^24.3.25:
577 | version "24.12.23"
578 | resolved "https://registry.npmjs.org/flatbuffers/-/flatbuffers-24.12.23.tgz"
579 | integrity sha512-dLVCAISd5mhls514keQzmEG6QHmUUsNuWsb4tFafIUwvvgDjXhtfAYSKOzt5SWOy+qByV5pbsDZ+Vb7HUOBEdA==
580 |
581 | forwarded@0.2.0:
582 | version "0.2.0"
583 | resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz"
584 | integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==
585 |
586 | fresh@^0.5.2:
587 | version "0.5.2"
588 | resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz"
589 | integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==
590 |
591 | fresh@2.0.0:
592 | version "2.0.0"
593 | resolved "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz"
594 | integrity sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==
595 |
596 | fs.realpath@^1.0.0:
597 | version "1.0.0"
598 | resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
599 | integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
600 |
601 | function-bind@^1.1.2:
602 | version "1.1.2"
603 | resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz"
604 | integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
605 |
606 | get-intrinsic@^1.2.5, get-intrinsic@^1.3.0:
607 | version "1.3.0"
608 | resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz"
609 | integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==
610 | dependencies:
611 | call-bind-apply-helpers "^1.0.2"
612 | es-define-property "^1.0.1"
613 | es-errors "^1.3.0"
614 | es-object-atoms "^1.1.1"
615 | function-bind "^1.1.2"
616 | get-proto "^1.0.1"
617 | gopd "^1.2.0"
618 | has-symbols "^1.1.0"
619 | hasown "^2.0.2"
620 | math-intrinsics "^1.1.0"
621 |
622 | get-proto@^1.0.1:
623 | version "1.0.1"
624 | resolved "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz"
625 | integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==
626 | dependencies:
627 | dunder-proto "^1.0.1"
628 | es-object-atoms "^1.0.0"
629 |
630 | get-stream@^4.0.0:
631 | version "4.1.0"
632 | resolved "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz"
633 | integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==
634 | dependencies:
635 | pump "^3.0.0"
636 |
637 | glob-parent@^5.1.2:
638 | version "5.1.2"
639 | resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
640 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
641 | dependencies:
642 | is-glob "^4.0.1"
643 |
644 | glob@^7.1.1:
645 | version "7.2.3"
646 | resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz"
647 | integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
648 | dependencies:
649 | fs.realpath "^1.0.0"
650 | inflight "^1.0.4"
651 | inherits "2"
652 | minimatch "^3.1.1"
653 | once "^1.3.0"
654 | path-is-absolute "^1.0.0"
655 |
656 | gopd@^1.2.0:
657 | version "1.2.0"
658 | resolved "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz"
659 | integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==
660 |
661 | graceful-fs@^4.1.2:
662 | version "4.2.11"
663 | resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz"
664 | integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
665 |
666 | has-flag@^3.0.0:
667 | version "3.0.0"
668 | resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz"
669 | integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==
670 |
671 | has-flag@^4.0.0:
672 | version "4.0.0"
673 | resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz"
674 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
675 |
676 | has-symbols@^1.1.0:
677 | version "1.1.0"
678 | resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz"
679 | integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==
680 |
681 | hasown@^2.0.2:
682 | version "2.0.2"
683 | resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz"
684 | integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==
685 | dependencies:
686 | function-bind "^1.1.2"
687 |
688 | hosted-git-info@^2.1.4:
689 | version "2.8.9"
690 | resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz"
691 | integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==
692 |
693 | hpagent@^1.2.0:
694 | version "1.2.0"
695 | resolved "https://registry.npmjs.org/hpagent/-/hpagent-1.2.0.tgz"
696 | integrity sha512-A91dYTeIB6NoXG+PxTQpCCDDnfHsW9kc06Lvpu1TEe9gnd6ZFeiBoRO9JvzEv6xK7EX97/dUE8g/vBMTqTS3CA==
697 |
698 | http-errors@^2.0.0, http-errors@2.0.0:
699 | version "2.0.0"
700 | resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz"
701 | integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==
702 | dependencies:
703 | depd "2.0.0"
704 | inherits "2.0.4"
705 | setprototypeof "1.2.0"
706 | statuses "2.0.1"
707 | toidentifier "1.0.1"
708 |
709 | iconv-lite@^0.5.2:
710 | version "0.5.2"
711 | resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.2.tgz"
712 | integrity sha512-kERHXvpSaB4aU3eANwidg79K8FlrN77m8G9V+0vOR3HYaRifrlwMEpT7ZBJqLSEIHnEgJTHcWK82wwLwwKwtag==
713 | dependencies:
714 | safer-buffer ">= 2.1.2 < 3"
715 |
716 | iconv-lite@0.6.3:
717 | version "0.6.3"
718 | resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz"
719 | integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
720 | dependencies:
721 | safer-buffer ">= 2.1.2 < 3.0.0"
722 |
723 | inflight@^1.0.4:
724 | version "1.0.6"
725 | resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"
726 | integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
727 | dependencies:
728 | once "^1.3.0"
729 | wrappy "1"
730 |
731 | inherits@2, inherits@2.0.4:
732 | version "2.0.4"
733 | resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
734 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
735 |
736 | interpret@^1.0.0:
737 | version "1.4.0"
738 | resolved "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz"
739 | integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==
740 |
741 | ipaddr.js@1.9.1:
742 | version "1.9.1"
743 | resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz"
744 | integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
745 |
746 | is-core-module@^2.16.0:
747 | version "2.16.1"
748 | resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz"
749 | integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==
750 | dependencies:
751 | hasown "^2.0.2"
752 |
753 | is-extglob@^2.1.1:
754 | version "2.1.1"
755 | resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"
756 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
757 |
758 | is-glob@^4.0.1:
759 | version "4.0.3"
760 | resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz"
761 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
762 | dependencies:
763 | is-extglob "^2.1.1"
764 |
765 | is-number@^7.0.0:
766 | version "7.0.0"
767 | resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"
768 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
769 |
770 | is-promise@^4.0.0:
771 | version "4.0.0"
772 | resolved "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz"
773 | integrity sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==
774 |
775 | is-stream@^1.1.0:
776 | version "1.1.0"
777 | resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz"
778 | integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==
779 |
780 | isexe@^2.0.0:
781 | version "2.0.0"
782 | resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"
783 | integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
784 |
785 | json-bignum@^0.0.3:
786 | version "0.0.3"
787 | resolved "https://registry.npmjs.org/json-bignum/-/json-bignum-0.0.3.tgz"
788 | integrity sha512-2WHyXj3OfHSgNyuzDbSxI1w2jgw5gkWSWhS7Qg4bWXx1nLk3jnbwfUeS0PSba3IzpTUWdHxBieELUzXRjQB2zg==
789 |
790 | json-parse-even-better-errors@^2.3.0:
791 | version "2.3.1"
792 | resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz"
793 | integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
794 |
795 | json-schema-traverse@^0.4.1:
796 | version "0.4.1"
797 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
798 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
799 |
800 | license-checker@25.0.1:
801 | version "25.0.1"
802 | resolved "https://registry.npmjs.org/license-checker/-/license-checker-25.0.1.tgz"
803 | integrity sha512-mET5AIwl7MR2IAKYYoVBBpV0OnkKQ1xGj2IMMeEFIs42QAkEVjRtFZGWmQ28WeU7MP779iAgOaOy93Mn44mn6g==
804 | dependencies:
805 | chalk "^2.4.1"
806 | debug "^3.1.0"
807 | mkdirp "^0.5.1"
808 | nopt "^4.0.1"
809 | read-installed "~4.0.3"
810 | semver "^5.5.0"
811 | spdx-correct "^3.0.0"
812 | spdx-expression-parse "^3.0.0"
813 | spdx-satisfies "^4.0.0"
814 | treeify "^1.1.0"
815 |
816 | lodash.camelcase@^4.3.0:
817 | version "4.3.0"
818 | resolved "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz"
819 | integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==
820 |
821 | math-intrinsics@^1.1.0:
822 | version "1.1.0"
823 | resolved "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz"
824 | integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==
825 |
826 | media-typer@^1.1.0:
827 | version "1.1.0"
828 | resolved "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz"
829 | integrity sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==
830 |
831 | merge-descriptors@^2.0.0:
832 | version "2.0.0"
833 | resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz"
834 | integrity sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==
835 |
836 | merge2@^1.3.0:
837 | version "1.4.1"
838 | resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz"
839 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
840 |
841 | methods@~1.1.2:
842 | version "1.1.2"
843 | resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz"
844 | integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==
845 |
846 | micromatch@^4.0.8:
847 | version "4.0.8"
848 | resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz"
849 | integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==
850 | dependencies:
851 | braces "^3.0.3"
852 | picomatch "^2.3.1"
853 |
854 | mime-db@^1.53.0:
855 | version "1.54.0"
856 | resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz"
857 | integrity sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==
858 |
859 | mime-db@1.52.0:
860 | version "1.52.0"
861 | resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz"
862 | integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
863 |
864 | mime-types@^2.1.35:
865 | version "2.1.35"
866 | resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz"
867 | integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
868 | dependencies:
869 | mime-db "1.52.0"
870 |
871 | mime-types@^3.0.0:
872 | version "3.0.0"
873 | resolved "https://registry.npmjs.org/mime-types/-/mime-types-3.0.0.tgz"
874 | integrity sha512-XqoSHeCGjVClAmoGFG3lVFqQFRIrTVw2OH3axRqAcfaw+gHWIfnASS92AV+Rl/mk0MupgZTRHQOjxY6YVnzK5w==
875 | dependencies:
876 | mime-db "^1.53.0"
877 |
878 | minimatch@^3.1.1:
879 | version "3.1.2"
880 | resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz"
881 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
882 | dependencies:
883 | brace-expansion "^1.1.7"
884 |
885 | minimist@^1.2.6, minimist@^1.2.8:
886 | version "1.2.8"
887 | resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz"
888 | integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
889 |
890 | mkdirp@^0.5.1:
891 | version "0.5.6"
892 | resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz"
893 | integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==
894 | dependencies:
895 | minimist "^1.2.6"
896 |
897 | ms@^2.1.1, ms@^2.1.3:
898 | version "2.1.3"
899 | resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
900 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
901 |
902 | ms@2.1.2:
903 | version "2.1.2"
904 | resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
905 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
906 |
907 | negotiator@^1.0.0:
908 | version "1.0.0"
909 | resolved "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz"
910 | integrity sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==
911 |
912 | nice-try@^1.0.4:
913 | version "1.0.5"
914 | resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz"
915 | integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
916 |
917 | nopt@^4.0.1:
918 | version "4.0.3"
919 | resolved "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz"
920 | integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==
921 | dependencies:
922 | abbrev "1"
923 | osenv "^0.1.4"
924 |
925 | normalize-package-data@^2.0.0:
926 | version "2.5.0"
927 | resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz"
928 | integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==
929 | dependencies:
930 | hosted-git-info "^2.1.4"
931 | resolve "^1.10.0"
932 | semver "2 || 3 || 4 || 5"
933 | validate-npm-package-license "^3.0.1"
934 |
935 | npm-normalize-package-bin@^1.0.0:
936 | version "1.0.1"
937 | resolved "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz"
938 | integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==
939 |
940 | npm-run-path@^2.0.0:
941 | version "2.0.2"
942 | resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz"
943 | integrity sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==
944 | dependencies:
945 | path-key "^2.0.0"
946 |
947 | object-assign@^4:
948 | version "4.1.1"
949 | resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
950 | integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
951 |
952 | object-inspect@^1.13.3:
953 | version "1.13.4"
954 | resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz"
955 | integrity sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==
956 |
957 | on-finished@^2.4.1, on-finished@2.4.1:
958 | version "2.4.1"
959 | resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz"
960 | integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==
961 | dependencies:
962 | ee-first "1.1.1"
963 |
964 | once@^1.3.0, once@^1.3.1, once@^1.4.0, once@1.4.0:
965 | version "1.4.0"
966 | resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz"
967 | integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
968 | dependencies:
969 | wrappy "1"
970 |
971 | os-homedir@^1.0.0:
972 | version "1.0.2"
973 | resolved "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz"
974 | integrity sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==
975 |
976 | os-tmpdir@^1.0.0:
977 | version "1.0.2"
978 | resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz"
979 | integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==
980 |
981 | osenv@^0.1.4:
982 | version "0.1.5"
983 | resolved "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz"
984 | integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==
985 | dependencies:
986 | os-homedir "^1.0.0"
987 | os-tmpdir "^1.0.0"
988 |
989 | p-finally@^1.0.0:
990 | version "1.0.0"
991 | resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz"
992 | integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==
993 |
994 | parseurl@^1.3.3, parseurl@~1.3.3:
995 | version "1.3.3"
996 | resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz"
997 | integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
998 |
999 | path-is-absolute@^1.0.0:
1000 | version "1.0.1"
1001 | resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
1002 | integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
1003 |
1004 | path-key@^2.0.0:
1005 | version "2.0.1"
1006 | resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz"
1007 | integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==
1008 |
1009 | path-key@^2.0.1:
1010 | version "2.0.1"
1011 | resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz"
1012 | integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==
1013 |
1014 | path-key@^3.1.0:
1015 | version "3.1.1"
1016 | resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz"
1017 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
1018 |
1019 | path-parse@^1.0.7:
1020 | version "1.0.7"
1021 | resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz"
1022 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
1023 |
1024 | path-to-regexp@^8.0.0:
1025 | version "8.2.0"
1026 | resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.2.0.tgz"
1027 | integrity sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==
1028 |
1029 | picomatch@^2.3.1:
1030 | version "2.3.1"
1031 | resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz"
1032 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
1033 |
1034 | pkce-challenge@^5.0.0:
1035 | version "5.0.0"
1036 | resolved "https://registry.npmjs.org/pkce-challenge/-/pkce-challenge-5.0.0.tgz"
1037 | integrity sha512-ueGLflrrnvwB3xuo/uGob5pd5FN7l0MsLf0Z87o/UQmRtwjvfylfc9MurIxRAWywCYTgrvpXBcqjV4OfCYGCIQ==
1038 |
1039 | proxy-addr@~2.0.7:
1040 | version "2.0.7"
1041 | resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz"
1042 | integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==
1043 | dependencies:
1044 | forwarded "0.2.0"
1045 | ipaddr.js "1.9.1"
1046 |
1047 | pump@^3.0.0:
1048 | version "3.0.2"
1049 | resolved "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz"
1050 | integrity sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==
1051 | dependencies:
1052 | end-of-stream "^1.1.0"
1053 | once "^1.3.1"
1054 |
1055 | punycode@^2.1.0:
1056 | version "2.3.1"
1057 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5"
1058 | integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==
1059 |
1060 | qs@6.13.0:
1061 | version "6.13.0"
1062 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906"
1063 | integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==
1064 | dependencies:
1065 | side-channel "^1.0.6"
1066 |
1067 | qs@^6.14.0:
1068 | version "6.14.0"
1069 | resolved "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz"
1070 | integrity sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==
1071 | dependencies:
1072 | side-channel "^1.1.0"
1073 |
1074 | qs@6.13.0:
1075 | version "6.13.0"
1076 | resolved "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz"
1077 | integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==
1078 | dependencies:
1079 | side-channel "^1.0.6"
1080 |
1081 | queue-microtask@^1.2.2:
1082 | version "1.2.3"
1083 | resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz"
1084 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
1085 |
1086 | range-parser@^1.2.1, range-parser@~1.2.1:
1087 | version "1.2.1"
1088 | resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz"
1089 | integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
1090 |
1091 | raw-body@^3.0.0:
1092 | version "3.0.0"
1093 | resolved "https://registry.npmjs.org/raw-body/-/raw-body-3.0.0.tgz"
1094 | integrity sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==
1095 | dependencies:
1096 | bytes "3.1.2"
1097 | http-errors "2.0.0"
1098 | iconv-lite "0.6.3"
1099 | unpipe "1.0.0"
1100 |
1101 | read-installed@~4.0.3:
1102 | version "4.0.3"
1103 | resolved "https://registry.npmjs.org/read-installed/-/read-installed-4.0.3.tgz"
1104 | integrity sha512-O03wg/IYuV/VtnK2h/KXEt9VIbMUFbk3ERG0Iu4FhLZw0EP0T9znqrYDGn6ncbEsXUFaUjiVAWXHzxwt3lhRPQ==
1105 | dependencies:
1106 | debuglog "^1.0.1"
1107 | read-package-json "^2.0.0"
1108 | readdir-scoped-modules "^1.0.0"
1109 | semver "2 || 3 || 4 || 5"
1110 | slide "~1.1.3"
1111 | util-extend "^1.0.1"
1112 | optionalDependencies:
1113 | graceful-fs "^4.1.2"
1114 |
1115 | read-package-json@^2.0.0:
1116 | version "2.1.2"
1117 | resolved "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz"
1118 | integrity sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==
1119 | dependencies:
1120 | glob "^7.1.1"
1121 | json-parse-even-better-errors "^2.3.0"
1122 | normalize-package-data "^2.0.0"
1123 | npm-normalize-package-bin "^1.0.0"
1124 |
1125 | readdir-scoped-modules@^1.0.0:
1126 | version "1.1.0"
1127 | resolved "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz"
1128 | integrity sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==
1129 | dependencies:
1130 | debuglog "^1.0.1"
1131 | dezalgo "^1.0.0"
1132 | graceful-fs "^4.1.2"
1133 | once "^1.3.0"
1134 |
1135 | rechoir@^0.6.2:
1136 | version "0.6.2"
1137 | resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz"
1138 | integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==
1139 | dependencies:
1140 | resolve "^1.1.6"
1141 |
1142 | resolve@^1.1.6, resolve@^1.10.0:
1143 | version "1.22.10"
1144 | resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz"
1145 | integrity sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==
1146 | dependencies:
1147 | is-core-module "^2.16.0"
1148 | path-parse "^1.0.7"
1149 | supports-preserve-symlinks-flag "^1.0.0"
1150 |
1151 | reusify@^1.0.4:
1152 | version "1.1.0"
1153 | resolved "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz"
1154 | integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==
1155 |
1156 | router@^2.0.0:
1157 | version "2.1.0"
1158 | resolved "https://registry.npmjs.org/router/-/router-2.1.0.tgz"
1159 | integrity sha512-/m/NSLxeYEgWNtyC+WtNHCF7jbGxOibVWKnn+1Psff4dJGOfoXP+MuC/f2CwSmyiHdOIzYnYFp4W6GxWfekaLA==
1160 | dependencies:
1161 | is-promise "^4.0.0"
1162 | parseurl "^1.3.3"
1163 | path-to-regexp "^8.0.0"
1164 |
1165 | run-parallel@^1.1.9:
1166 | version "1.2.0"
1167 | resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz"
1168 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
1169 | dependencies:
1170 | queue-microtask "^1.2.2"
1171 |
1172 | safe-buffer@5.2.1:
1173 | version "5.2.1"
1174 | resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz"
1175 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
1176 |
1177 | "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0":
1178 | version "2.1.2"
1179 | resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"
1180 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
1181 |
1182 | secure-json-parse@^3.0.2:
1183 | version "3.0.2"
1184 | resolved "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-3.0.2.tgz"
1185 | integrity sha512-H6nS2o8bWfpFEV6U38sOSjS7bTbdgbCGU9wEM6W14P5H0QOsz94KCusifV44GpHDTu2nqZbuDNhTzu+mjDSw1w==
1186 |
1187 | semver@^5.5.0, "semver@2 || 3 || 4 || 5":
1188 | version "5.7.2"
1189 | resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz"
1190 | integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==
1191 |
1192 | send@^1.0.0, send@^1.1.0:
1193 | version "1.1.0"
1194 | resolved "https://registry.npmjs.org/send/-/send-1.1.0.tgz"
1195 | integrity sha512-v67WcEouB5GxbTWL/4NeToqcZiAWEq90N888fczVArY8A79J0L4FD7vj5hm3eUMua5EpoQ59wa/oovY6TLvRUA==
1196 | dependencies:
1197 | debug "^4.3.5"
1198 | destroy "^1.2.0"
1199 | encodeurl "^2.0.0"
1200 | escape-html "^1.0.3"
1201 | etag "^1.8.1"
1202 | fresh "^0.5.2"
1203 | http-errors "^2.0.0"
1204 | mime-types "^2.1.35"
1205 | ms "^2.1.3"
1206 | on-finished "^2.4.1"
1207 | range-parser "^1.2.1"
1208 | statuses "^2.0.1"
1209 |
1210 | serve-static@^2.1.0:
1211 | version "2.1.0"
1212 | resolved "https://registry.npmjs.org/serve-static/-/serve-static-2.1.0.tgz"
1213 | integrity sha512-A3We5UfEjG8Z7VkDv6uItWw6HY2bBSBJT1KtVESn6EOoOr2jAxNhxWCLY3jDE2WcuHXByWju74ck3ZgLwL8xmA==
1214 | dependencies:
1215 | encodeurl "^2.0.0"
1216 | escape-html "^1.0.3"
1217 | parseurl "^1.3.3"
1218 | send "^1.0.0"
1219 |
1220 | setprototypeof@1.2.0:
1221 | version "1.2.0"
1222 | resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz"
1223 | integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==
1224 |
1225 | shebang-command@^1.2.0:
1226 | version "1.2.0"
1227 | resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz"
1228 | integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==
1229 | dependencies:
1230 | shebang-regex "^1.0.0"
1231 |
1232 | shebang-command@^2.0.0:
1233 | version "2.0.0"
1234 | resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz"
1235 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
1236 | dependencies:
1237 | shebang-regex "^3.0.0"
1238 |
1239 | shebang-regex@^1.0.0:
1240 | version "1.0.0"
1241 | resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz"
1242 | integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==
1243 |
1244 | shebang-regex@^3.0.0:
1245 | version "3.0.0"
1246 | resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz"
1247 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
1248 |
1249 | shelljs@^0.9.2:
1250 | version "0.9.2"
1251 | resolved "https://registry.npmjs.org/shelljs/-/shelljs-0.9.2.tgz"
1252 | integrity sha512-S3I64fEiKgTZzKCC46zT/Ib9meqofLrQVbpSswtjFfAVDW+AZ54WTnAM/3/yENoxz/V1Cy6u3kiiEbQ4DNphvw==
1253 | dependencies:
1254 | execa "^1.0.0"
1255 | fast-glob "^3.3.2"
1256 | interpret "^1.0.0"
1257 | rechoir "^0.6.2"
1258 |
1259 | shx@0.4.0:
1260 | version "0.4.0"
1261 | resolved "https://registry.npmjs.org/shx/-/shx-0.4.0.tgz"
1262 | integrity sha512-Z0KixSIlGPpijKgcH6oCMCbltPImvaKy0sGH8AkLRXw1KyzpKtaCTizP2xen+hNDqVF4xxgvA0KXSb9o4Q6hnA==
1263 | dependencies:
1264 | minimist "^1.2.8"
1265 | shelljs "^0.9.2"
1266 |
1267 | side-channel-list@^1.0.0:
1268 | version "1.0.0"
1269 | resolved "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz"
1270 | integrity sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==
1271 | dependencies:
1272 | es-errors "^1.3.0"
1273 | object-inspect "^1.13.3"
1274 |
1275 | side-channel-map@^1.0.1:
1276 | version "1.0.1"
1277 | resolved "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz"
1278 | integrity sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==
1279 | dependencies:
1280 | call-bound "^1.0.2"
1281 | es-errors "^1.3.0"
1282 | get-intrinsic "^1.2.5"
1283 | object-inspect "^1.13.3"
1284 |
1285 | side-channel-weakmap@^1.0.2:
1286 | version "1.0.2"
1287 | resolved "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz"
1288 | integrity sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==
1289 | dependencies:
1290 | call-bound "^1.0.2"
1291 | es-errors "^1.3.0"
1292 | get-intrinsic "^1.2.5"
1293 | object-inspect "^1.13.3"
1294 | side-channel-map "^1.0.1"
1295 |
1296 | side-channel@^1.0.6, side-channel@^1.1.0:
1297 | version "1.1.0"
1298 | resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz"
1299 | integrity sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==
1300 | dependencies:
1301 | es-errors "^1.3.0"
1302 | object-inspect "^1.13.3"
1303 | side-channel-list "^1.0.0"
1304 | side-channel-map "^1.0.1"
1305 | side-channel-weakmap "^1.0.2"
1306 |
1307 | signal-exit@^3.0.0:
1308 | version "3.0.7"
1309 | resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz"
1310 | integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
1311 |
1312 | slide@~1.1.3:
1313 | version "1.1.6"
1314 | resolved "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz"
1315 | integrity sha512-NwrtjCg+lZoqhFU8fOwl4ay2ei8PaqCBOUV3/ektPY9trO1yQ1oXEfmHAhKArUVUr/hOHvy5f6AdP17dCM0zMw==
1316 |
1317 | spdx-compare@^1.0.0:
1318 | version "1.0.0"
1319 | resolved "https://registry.npmjs.org/spdx-compare/-/spdx-compare-1.0.0.tgz"
1320 | integrity sha512-C1mDZOX0hnu0ep9dfmuoi03+eOdDoz2yvK79RxbcrVEG1NO1Ph35yW102DHWKN4pk80nwCgeMmSY5L25VE4D9A==
1321 | dependencies:
1322 | array-find-index "^1.0.2"
1323 | spdx-expression-parse "^3.0.0"
1324 | spdx-ranges "^2.0.0"
1325 |
1326 | spdx-correct@^3.0.0:
1327 | version "3.2.0"
1328 | resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz"
1329 | integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==
1330 | dependencies:
1331 | spdx-expression-parse "^3.0.0"
1332 | spdx-license-ids "^3.0.0"
1333 |
1334 | spdx-exceptions@^2.1.0:
1335 | version "2.5.0"
1336 | resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz"
1337 | integrity sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==
1338 |
1339 | spdx-expression-parse@^3.0.0:
1340 | version "3.0.1"
1341 | resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz"
1342 | integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==
1343 | dependencies:
1344 | spdx-exceptions "^2.1.0"
1345 | spdx-license-ids "^3.0.0"
1346 |
1347 | spdx-license-ids@^3.0.0:
1348 | version "3.0.21"
1349 | resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.21.tgz"
1350 | integrity sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==
1351 |
1352 | spdx-ranges@^2.0.0:
1353 | version "2.1.1"
1354 | resolved "https://registry.npmjs.org/spdx-ranges/-/spdx-ranges-2.1.1.tgz"
1355 | integrity sha512-mcdpQFV7UDAgLpXEE/jOMqvK4LBoO0uTQg0uvXUewmEFhpiZx5yJSZITHB8w1ZahKdhfZqP5GPEOKLyEq5p8XA==
1356 |
1357 | spdx-satisfies@^4.0.0:
1358 | version "4.0.1"
1359 | resolved "https://registry.npmjs.org/spdx-satisfies/-/spdx-satisfies-4.0.1.tgz"
1360 | integrity sha512-WVzZ/cXAzoNmjCWiEluEA3BjHp5tiUmmhn9MK+X0tBbR9sOqtC6UQwmgCNrAIZvNlMuBUYAaHYfb2oqlF9SwKA==
1361 | dependencies:
1362 | spdx-compare "^1.0.0"
1363 | spdx-expression-parse "^3.0.0"
1364 | spdx-ranges "^2.0.0"
1365 |
1366 | statuses@^2.0.1, statuses@2.0.1:
1367 | version "2.0.1"
1368 | resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz"
1369 | integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==
1370 |
1371 | strip-eof@^1.0.0:
1372 | version "1.0.0"
1373 | resolved "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz"
1374 | integrity sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==
1375 |
1376 | supports-color@^5.3.0:
1377 | version "5.5.0"
1378 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz"
1379 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
1380 | dependencies:
1381 | has-flag "^3.0.0"
1382 |
1383 | supports-color@^7.1.0:
1384 | version "7.2.0"
1385 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz"
1386 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
1387 | dependencies:
1388 | has-flag "^4.0.0"
1389 |
1390 | supports-preserve-symlinks-flag@^1.0.0:
1391 | version "1.0.0"
1392 | resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz"
1393 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
1394 |
1395 | table-layout@^4.1.0:
1396 | version "4.1.1"
1397 | resolved "https://registry.npmjs.org/table-layout/-/table-layout-4.1.1.tgz"
1398 | integrity sha512-iK5/YhZxq5GO5z8wb0bY1317uDF3Zjpha0QFFLA8/trAoiLbQD0HUbMesEaxyzUgDxi2QlcbM8IvqOlEjgoXBA==
1399 | dependencies:
1400 | array-back "^6.2.2"
1401 | wordwrapjs "^5.1.0"
1402 |
1403 | to-regex-range@^5.0.1:
1404 | version "5.0.1"
1405 | resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz"
1406 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
1407 | dependencies:
1408 | is-number "^7.0.0"
1409 |
1410 | toidentifier@1.0.1:
1411 | version "1.0.1"
1412 | resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz"
1413 | integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==
1414 |
1415 | treeify@^1.1.0:
1416 | version "1.1.0"
1417 | resolved "https://registry.npmjs.org/treeify/-/treeify-1.1.0.tgz"
1418 | integrity sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==
1419 |
1420 | tslib@^2.4.0, tslib@^2.6.2, tslib@^2.8.0, tslib@^2.8.1:
1421 | version "2.8.1"
1422 | resolved "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz"
1423 | integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==
1424 |
1425 | type-is@^2.0.0:
1426 | version "2.0.0"
1427 | resolved "https://registry.npmjs.org/type-is/-/type-is-2.0.0.tgz"
1428 | integrity sha512-gd0sGezQYCbWSbkZr75mln4YBidWUN60+devscpLF5mtRDUpiaTvKpBNrdaCvel1NdR2k6vclXybU5fBd2i+nw==
1429 | dependencies:
1430 | content-type "^1.0.5"
1431 | media-typer "^1.1.0"
1432 | mime-types "^3.0.0"
1433 |
1434 | typescript@5.8.3:
1435 | version "5.8.3"
1436 | resolved "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz"
1437 | integrity sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==
1438 |
1439 | typical@^7.1.1, typical@^7.2.0:
1440 | version "7.3.0"
1441 | resolved "https://registry.npmjs.org/typical/-/typical-7.3.0.tgz"
1442 | integrity sha512-ya4mg/30vm+DOWfBg4YK3j2WD6TWtRkCbasOJr40CseYENzCUby/7rIvXA99JGsQHeNxLbnXdyLLxKSv3tauFw==
1443 |
1444 | undici-types@~6.19.2:
1445 | version "6.19.8"
1446 | resolved "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz"
1447 | integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==
1448 |
1449 | undici-types@~6.21.0:
1450 | version "6.21.0"
1451 | resolved "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz"
1452 | integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==
1453 |
1454 | undici@^7.2.3:
1455 | version "7.10.0"
1456 | resolved "https://registry.yarnpkg.com/undici/-/undici-7.10.0.tgz#8ae17a976acc6593b13c9ff3342840bea9b24670"
1457 | integrity sha512-u5otvFBOBZvmdjWLVW+5DAc9Nkq8f24g0O9oY7qw2JVIF1VocIFoyz9JFkuVOS2j41AufeO0xnlweJ2RLT8nGw==
1458 |
1459 | unpipe@1.0.0:
1460 | version "1.0.0"
1461 | resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"
1462 | integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==
1463 |
1464 | uri-js@^4.2.2:
1465 | version "4.4.1"
1466 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
1467 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
1468 | dependencies:
1469 | punycode "^2.1.0"
1470 |
1471 | util-extend@^1.0.1:
1472 | version "1.0.3"
1473 | resolved "https://registry.npmjs.org/util-extend/-/util-extend-1.0.3.tgz"
1474 | integrity sha512-mLs5zAK+ctllYBj+iAQvlDCwoxU/WDOUaJkcFudeiAX6OajC6BKXJUa9a+tbtkC11dz2Ufb7h0lyvIOVn4LADA==
1475 |
1476 | utils-merge@1.0.1:
1477 | version "1.0.1"
1478 | resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz"
1479 | integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==
1480 |
1481 | validate-npm-package-license@^3.0.1:
1482 | version "3.0.4"
1483 | resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz"
1484 | integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==
1485 | dependencies:
1486 | spdx-correct "^3.0.0"
1487 | spdx-expression-parse "^3.0.0"
1488 |
1489 | vary@^1, vary@~1.1.2:
1490 | version "1.1.2"
1491 | resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz"
1492 | integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==
1493 |
1494 | which@^1.2.9:
1495 | version "1.3.1"
1496 | resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz"
1497 | integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
1498 | dependencies:
1499 | isexe "^2.0.0"
1500 |
1501 | which@^2.0.1:
1502 | version "2.0.2"
1503 | resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz"
1504 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
1505 | dependencies:
1506 | isexe "^2.0.0"
1507 |
1508 | wordwrapjs@^5.1.0:
1509 | version "5.1.0"
1510 | resolved "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-5.1.0.tgz"
1511 | integrity sha512-JNjcULU2e4KJwUNv6CHgI46UvDGitb6dGryHajXTDiLgg1/RiGoPSDw4kZfYnwGtEXf2ZMeIewDQgFGzkCB2Sg==
1512 |
1513 | wrappy@1:
1514 | version "1.0.2"
1515 | resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
1516 | integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
1517 |
1518 | zod-to-json-schema@^3.24.1:
1519 | version "3.24.5"
1520 | resolved "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.24.5.tgz"
1521 | integrity sha512-/AuWwMP+YqiPbsJx5D6TfgRTc4kTLjsh5SOcd4bLsfUg2RcEXrFMJl1DGgdHy2aCfsIA/cr/1JM0xcB2GZji8g==
1522 |
1523 | zod@^3.23.8, zod@^3.24.1:
1524 | version "3.24.2"
1525 | resolved "https://registry.npmjs.org/zod/-/zod-3.24.2.tgz"
1526 | integrity sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==
1527 |
--------------------------------------------------------------------------------