n8n MCP community node

Directory structure:
└── nerding-io-n8n-nodes-mcp/
├── README.md
├── CODE_OF_CONDUCT.md
├── gulpfile.js
├── index.js
├── jest.config.js
├── LICENSE.md
├── package.json
├── pnpm-lock.yaml
├── tsconfig.json
├── .editorconfig
├── .eslintrc.js
├── .eslintrc.prepublish.js
├── .npmignore
├── .nvmrc
├── .prettierrc.js
├── tests/
│ └── McpClient.test.ts
├── assets/
├── credentials/
│ ├── McpClientApi.credentials.ts
│ └── McpClientSseApi.credentials.ts
├── nodes/
│ └── McpClient/
│ └── McpClient.node.ts
└── .github/
├── dependabot.yml
├── pull_request_template.md
└── workflows/
├── ci-cd.yml
└── pr-validation.yml

Files Content:

================================================

FILE: README.md

n8n-nodes-mcp-client

This is an n8n community node that lets you interact with Model Context Protocol (MCP) servers in your n8n workflows.

MCP is a protocol that enables AI models to interact with external tools and data sources in a standardized way. This node allows you to connect to MCP servers, access resources, execute tools, and use prompts.

n8n is a fair-code licensed workflow automation platform.

Installation
Credentials
Environment Variables
Operations
Using as a Tool
Compatibility
Resources

Getting Started

Official Quickstart Video:

MCP Client Node Quickstart

Community Videos

Shoutout to all the creators of the following n8n community videos that are great resources for learning how to use this node:

If you have a great video that you’d like to share, please let me know and I’ll add it to the list!

Interested a deeper dive into MCP?

Check out my YouTube Series MCP Explained for more information about the Model Context Protocol.

Installation

Follow the installation guide in the n8n community nodes documentation.

Also pay attention to Environment Variables for using tools in AI Agents. It’s mandatory to set the N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE environment variable to true if you want to use the MCP Client node as a tool in AI Agents.

Credentials

The MCP Client node supports two types of credentials to connect to an MCP server:

Command-line Based Transport (STDIO)

MCP Client STDIO Credentials
  • Command: The command to start the MCP server
  • Arguments: Optional arguments to pass to the server command
  • Environment Variables: Variables to pass to the server in NAME=VALUE format

Server-Sent Events (SSE) Transport

MCP Client SSE Credentials
  • SSE URL: The URL of the SSE endpoint (default: http://localhost:3001/sse)
  • Messages Post Endpoint: Optional custom endpoint for posting messages if different from the SSE URL
  • Additional Headers: Optional headers to send with requests (format: name:value, one per line)

Environment Variables

The MCP Client node supports passing environment variables to MCP servers using the command-line based transport in two ways:

1. Using the Credentials UI

You can add environment variables directly in the credentials configuration:

Environment Variables in Credentials

This method is useful for individual setups and testing. The values are stored securely as credentials in n8n.

2. Using Docker Environment Variables

For Docker deployments, you can pass environment variables directly to your MCP servers by prefixing them with MCP_:

version: '3'

services:
  n8n:
    image: n8nio/n8n
    environment:
      - MCP_BRAVE_API_KEY=your-api-key-here
      - MCP_OPENAI_API_KEY=your-openai-key-here
      - MCP_CUSTOM_SETTING=some-value
    # other configuration...

These environment variables will be automatically passed to your MCP servers when they are executed.

Example: Using Brave Search MCP Server

This example shows how to set up and use the Brave Search MCP server:

  1. Install the Brave Search MCP server:
   npm install -g @modelcontextprotocol/server-brave-search
  1. Configure MCP Client credentials:
  • Command: npx
  • Arguments: -y @modelcontextprotocol/server-brave-search
  • Environment Variables: BRAVE_API_KEY=your-api-key Add a variables (space comma or newline separated)
  1. Create a workflow that uses the MCP Client node:
  • Add an MCP Client node
  • Select the “List Tools” operation to see available search tools
  • Add another MCP Client node
  • Select the “Execute Tool” operation
  • Choose the “brave_search” tool
  • Set Parameters to: {"query": "latest AI news"}
Brave Search Example

The node will execute the search and return the results in the output.

Example: Multi-Server Setup with AI Agent

This example demonstrates how to set up multiple MCP servers in a production environment and use them with an AI agent:

  1. Configure your docker-compose.yml file:
version: '3'

services:
  n8n:
    image: n8nio/n8n
    environment:
      # MCP server environment variables
      - MCP_BRAVE_API_KEY=your-brave-api-key
      - MCP_OPENAI_API_KEY=your-openai-key
      - MCP_SERPER_API_KEY=your-serper-key
      - MCP_WEATHER_API_KEY=your-weather-api-key

      # Enable community nodes as tools
      - N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true
    ports:
      - "5678:5678"
    volumes:
      - ~/.n8n:/home/node/.n8n
  1. Create multiple MCP Client credentials in n8n: Brave Search Credentials:
  • Command: npx
  • Arguments: -y @modelcontextprotocol/server-brave-search OpenAI Tools Credentials:
  • Command: npx
  • Arguments: -y @modelcontextprotocol/server-openai Web Search Credentials:
  • Command: npx
  • Arguments: -y @modelcontextprotocol/server-serper Weather API Credentials:
  • Command: npx
  • Arguments: -y @modelcontextprotocol/server-weather
  1. Create an AI Agent workflow:
  • Add an AI Agent node
  • Enable MCP Client as a tool
  • Configure different MCP Client nodes with different credentials
  • Create a prompt that uses multiple data sources
Multi-Server Setup

Example AI Agent prompt:

I need you to help me plan a trip. First, search for popular destinations in {destination_country}.
Then, check the current weather in the top 3 cities.
Finally, find some recent news about travel restrictions for these places.

With this setup, the AI agent can use multiple MCP tools across different servers, all using environment variables configured in your Docker deployment.

Example: Using a Local MCP Server with SSE

This example shows how to connect to a locally running MCP server using Server-Sent Events (SSE):

  1. Start a local MCP server that supports SSE:
   npx @modelcontextprotocol/server-example-sse

Or run your own custom MCP server with SSE support on port 3001.

  1. Configure MCP Client credentials:
  • In the node settings, select Connection Type: Server-Sent Events (SSE)
  • Create new credentials of type MCP Client (SSE) API
  • Set SSE URL: http://localhost:3001/sse
  • Add any required headers if your server needs authentication
  1. Create a workflow that uses the MCP Client node:
  • Add an MCP Client node
  • Set the Connection Type to Server-Sent Events (SSE)
  • Select your SSE credentials
  • Select the “List Tools” operation to see available tools
  • Execute the workflow to see the results
SSE Example

This method is particularly useful when:

  • Your MCP server is running as a standalone service
  • You’re connecting to a remote MCP server
  • Your server requires special authentication headers
  • You need to separate the transport channel from the message channel

Operations

The MCP Client node supports the following operations:

MCP Client Operations
  • Execute Tool – Execute a specific tool with parameters
  • Get Prompt – Get a specific prompt template
  • List Prompts – Get a list of available prompts
  • List Resources – Get a list of available resources from the MCP server
  • List Tools – Get a list of available tools
  • Read Resource – Read a specific resource by URI

Example: List Tools Operation

List Tools Example

The List Tools operation returns all available tools from the MCP server, including their names, descriptions, and parameter schemas.

Example: Execute Tool Operation

Execute Tool Example

The Execute Tool operation allows you to execute a specific tool with parameters. Make sure to select the tool you want to execute from the dropdown menu.

Using as a Tool

This node can be used as a tool in n8n AI Agents. To enable community nodes as tools, you need to set the N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE environment variable to true.

Setting the Environment Variable

If you’re using a bash/zsh shell:

export N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true
n8n start

If you’re using Docker:
Add to your docker-compose.yml file:

environment:
  - N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true

If you’re using the desktop app:
Create a .env file in the n8n directory:

N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true

If you want to set it permanently on Mac/Linux:
Add to your ~/.zshrc or ~/.bash_profile:

export N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true

Example of an AI Agent workflow results:

AI Agent Example

After setting this environment variable and restarting n8n, your MCP Client node will be available as a tool in AI Agent nodes.

Compatibility

  • Requires n8n version 1.0.0 or later
  • Compatible with MCP Protocol version 1.0.0 or later
  • Supports both STDIO and SSE transports for connecting to MCP servers
  • SSE transport requires a server that implements the MCP Server-Sent Events specification

Resources

================================================

FILE: CODE_OF_CONDUCT.md

Contributor Covenant Code of Conduct

Our Pledge

In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.

Our Standards

Examples of behavior that contributes to creating a positive environment
include:

  • Using welcoming and inclusive language
  • Being respectful of differing viewpoints and experiences
  • Gracefully accepting constructive criticism
  • Focusing on what is best for the community
  • Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

  • The use of sexualized language or imagery and unwelcome sexual attention or
    advances
  • Trolling, insulting/derogatory comments, and personal or political attacks
  • Public or private harassment
  • Publishing others’ private information, such as a physical or electronic
    address, without explicit permission
  • Other conduct which could reasonably be considered inappropriate in a
    professional setting

Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.

Scope

This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.

Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at jan@n8n.io. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project’s leadership.

Attribution

This Code of Conduct is adapted from the Contributor Covenant, version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html

For answers to common questions about this code of conduct, see
https://www.contributor-covenant.org/faq

================================================

FILE: gulpfile.js

const path = require(‘path’);
const { task, src, dest } = require(‘gulp’);

task(‘build:icons’, copyIcons);

function copyIcons() {
const nodeSource = path.resolve(‘nodes’, ‘*‘, ‘.{png,svg}’);
const nodeDestination = path.resolve(‘dist’, ‘nodes’);

src(nodeSource).pipe(dest(nodeDestination));

const credSource = path.resolve('credentials', '**', '*.{png,svg}');
const credDestination = path.resolve('dist', 'credentials');

return src(credSource).pipe(dest(credDestination));

}

================================================

FILE: index.js

// This file ensures n8n can find and load your nodes and credentials
const { McpClient } = require(‘./dist/nodes/McpClient/McpClient.node.js’);

module.exports = {
nodeTypes: {
mcpClient: McpClient,
},
credentialTypes: {
mcpClientApi: require(‘./dist/credentials/McpClientApi.credentials.js’).McpClientApi,
mcpClientSseApi: require(‘./dist/credentials/McpClientSseApi.credentials.js’).McpClientSseApi,
},
};

================================================

FILE: jest.config.js

module.exports = {
preset: ‘ts-jest’,
testEnvironment: ‘node’,
testMatch: [‘/tests//*.test.ts’],
transform: {
‘^.+\.tsx?$’: [
‘ts-jest’,
{
tsconfig: ‘tsconfig.json’,
},
],
},
moduleFileExtensions: [‘ts’, ‘js’, ‘json’],
};

================================================

FILE: LICENSE.md

Copyright 2022 n8n

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the “Software”), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

================================================

FILE: package.json

{
“name”: “n8n-nodes-mcp”,
“version”: “0.1.17”,
“description”: “MCP nodes for n8n “,
“keywords”: [
“n8n-community-node-package”,
“mcp”,
“mcp-client”,
“mcp-client-node”,
“mcp-client-n8n”,
“mcp-client-n8n-node”,
“mcp-client-n8n-node-package”
],
“license”: “MIT”,
“homepage”: “”,
“author”: {
“name”: “Jd Fiscus”,
“email”: “jd@nerding.io”
},
“repository”: {
“type”: “git”,
“url”: “https://github.com/nerding-io/n8n-nodes-mcp.git”
},
“main”: “index.js”,
“scripts”: {
“build”: “tsc && gulp build:icons”,
“dev”: “tsc –watch”,
“format”: “prettier nodes credentials –write”,
“lint”: “eslint nodes credentials package.json”,
“lintfix”: “eslint nodes credentials package.json –fix”,
“prepublishOnly”: “npm run build && npm run lint -c .eslintrc.prepublish.js nodes credentials package.json”,
“test”: “jest”
},
“files”: [
“dist”
],
“n8n”: {
“n8nNodesApiVersion”: 1,
“credentials”: [
“dist/credentials/McpClientApi.credentials.js”,
“dist/credentials/McpClientSseApi.credentials.js”
],
“nodes”: [
“dist/nodes/McpClient/McpClient.node.js”
]
},
“devDependencies”: {
“@types/jest”: “^29.5.14”,
“@typescript-eslint/parser”: “~5.45”,
“eslint”: “^8.57.1”,
“eslint-plugin-n8n-nodes-base”: “^1.11.0”,
“gulp”: “^4.0.2”,
“jest”: “^29.7.0”,
“n8n-workflow”: ““, “prettier”: “^2.7.1”, “ts-jest”: “^29.2.6”, “typescript”: “~4.8.4” }, “dependencies”: { “@langchain/core”: “^0.3.43”, “@modelcontextprotocol/sdk”: “1.8.0”, “zod”: “^3.24.0”, “zod-to-json-schema”: “^3.24.0” }, “overrides”: { “pkce-challenge”: “^5.0.0” }, “peerDependencies”: { “n8n-workflow”: “
}
}

================================================

FILE: pnpm-lock.yaml

lockfileVersion: ‘9.0’

settings:
autoInstallPeers: true
excludeLinksFromLockfile: false

importers:

.:
dependencies:
‘@langchain/core’:
specifier: ^0.3.43
version: 0.3.43
‘@modelcontextprotocol/sdk’:
specifier: 1.8.0
version: 1.8.0
zod:
specifier: ^3.24.0
version: 3.24.2
zod-to-json-schema:
specifier: ^3.24.0
version: 3.24.5(zod@3.24.2)
devDependencies:
‘@types/jest’:
specifier: ^29.5.14
version: 29.5.14
‘@typescript-eslint/parser’:
specifier: ~5.45
version: 5.45.1(eslint@8.57.1)(typescript@4.8.4)
eslint:
specifier: ^8.57.1
version: 8.57.1
eslint-plugin-n8n-nodes-base:
specifier: ^1.11.0
version: 1.16.3(eslint@8.57.1)(typescript@4.8.4)
gulp:
specifier: ^4.0.2
version: 4.0.2
jest:
specifier: ^29.7.0
version: 29.7.0(@types/node@22.14.0)
n8n-workflow:
specifier: ‘*’
version: 1.82.0
prettier:
specifier: ^2.7.1
version: 2.8.8
ts-jest:
specifier: ^29.2.6
version: 29.3.1(@babel/core@7.26.10)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.10))(jest@29.7.0(@types/node@22.14.0))(typescript@4.8.4)
typescript:
specifier: ~4.8.4
version: 4.8.4

packages:

‘@ampproject/remapping@2.3.0’:
resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
engines: {node: ‘>=6.0.0’}

‘@babel/code-frame@7.26.2’:
resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==}
engines: {node: ‘>=6.9.0’}

‘@babel/compat-data@7.26.8’:
resolution: {integrity: sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==}
engines: {node: ‘>=6.9.0’}

‘@babel/core@7.26.10’:
resolution: {integrity: sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==}
engines: {node: ‘>=6.9.0’}

‘@babel/generator@7.27.0’:
resolution: {integrity: sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==}
engines: {node: ‘>=6.9.0’}

‘@babel/helper-compilation-targets@7.27.0’:
resolution: {integrity: sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA==}
engines: {node: ‘>=6.9.0’}

‘@babel/helper-module-imports@7.25.9’:
resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==}
engines: {node: ‘>=6.9.0’}

‘@babel/helper-module-transforms@7.26.0’:
resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==}
engines: {node: ‘>=6.9.0’}
peerDependencies:
‘@babel/core’: ^7.0.0

‘@babel/helper-plugin-utils@7.26.5’:
resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==}
engines: {node: ‘>=6.9.0’}

‘@babel/helper-string-parser@7.25.9’:
resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==}
engines: {node: ‘>=6.9.0’}

‘@babel/helper-validator-identifier@7.25.9’:
resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==}
engines: {node: ‘>=6.9.0’}

‘@babel/helper-validator-option@7.25.9’:
resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==}
engines: {node: ‘>=6.9.0’}

‘@babel/helpers@7.27.0’:
resolution: {integrity: sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==}
engines: {node: ‘>=6.9.0’}

‘@babel/parser@7.27.0’:
resolution: {integrity: sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==}
engines: {node: ‘>=6.0.0’}
hasBin: true

‘@babel/plugin-syntax-async-generators@7.8.4’:
resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
peerDependencies:
‘@babel/core’: ^7.0.0-0

‘@babel/plugin-syntax-bigint@7.8.3’:
resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==}
peerDependencies:
‘@babel/core’: ^7.0.0-0

‘@babel/plugin-syntax-class-properties@7.12.13’:
resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
peerDependencies:
‘@babel/core’: ^7.0.0-0

‘@babel/plugin-syntax-class-static-block@7.14.5’:
resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==}
engines: {node: ‘>=6.9.0’}
peerDependencies:
‘@babel/core’: ^7.0.0-0

‘@babel/plugin-syntax-import-attributes@7.26.0’:
resolution: {integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==}
engines: {node: ‘>=6.9.0’}
peerDependencies:
‘@babel/core’: ^7.0.0-0

‘@babel/plugin-syntax-import-meta@7.10.4’:
resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
peerDependencies:
‘@babel/core’: ^7.0.0-0

‘@babel/plugin-syntax-json-strings@7.8.3’:
resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
peerDependencies:
‘@babel/core’: ^7.0.0-0

‘@babel/plugin-syntax-jsx@7.25.9’:
resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==}
engines: {node: ‘>=6.9.0’}
peerDependencies:
‘@babel/core’: ^7.0.0-0

‘@babel/plugin-syntax-logical-assignment-operators@7.10.4’:
resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
peerDependencies:
‘@babel/core’: ^7.0.0-0

‘@babel/plugin-syntax-nullish-coalescing-operator@7.8.3’:
resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
peerDependencies:
‘@babel/core’: ^7.0.0-0

‘@babel/plugin-syntax-numeric-separator@7.10.4’:
resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
peerDependencies:
‘@babel/core’: ^7.0.0-0

‘@babel/plugin-syntax-object-rest-spread@7.8.3’:
resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
peerDependencies:
‘@babel/core’: ^7.0.0-0

‘@babel/plugin-syntax-optional-catch-binding@7.8.3’:
resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
peerDependencies:
‘@babel/core’: ^7.0.0-0

‘@babel/plugin-syntax-optional-chaining@7.8.3’:
resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
peerDependencies:
‘@babel/core’: ^7.0.0-0

‘@babel/plugin-syntax-private-property-in-object@7.14.5’:
resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==}
engines: {node: ‘>=6.9.0’}
peerDependencies:
‘@babel/core’: ^7.0.0-0

‘@babel/plugin-syntax-top-level-await@7.14.5’:
resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
engines: {node: ‘>=6.9.0’}
peerDependencies:
‘@babel/core’: ^7.0.0-0

‘@babel/plugin-syntax-typescript@7.25.9’:
resolution: {integrity: sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==}
engines: {node: ‘>=6.9.0’}
peerDependencies:
‘@babel/core’: ^7.0.0-0

‘@babel/template@7.27.0’:
resolution: {integrity: sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==}
engines: {node: ‘>=6.9.0’}

‘@babel/traverse@7.27.0’:
resolution: {integrity: sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==}
engines: {node: ‘>=6.9.0’}

‘@babel/types@7.27.0’:
resolution: {integrity: sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==}
engines: {node: ‘>=6.9.0’}

‘@bcoe/v8-coverage@0.2.3’:
resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}

‘@cfworker/json-schema@4.1.1’:
resolution: {integrity: sha512-gAmrUZSGtKc3AiBL71iNWxDsyUC5uMaKKGdvzYsBoTW/xi42JQHl7eKV2OYzCUqvc+D2RCcf7EXY2iCyFIk6og==}

‘@eslint-community/eslint-utils@4.5.1’:
resolution: {integrity: sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0

‘@eslint-community/regexpp@4.12.1’:
resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==}
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}

‘@eslint/eslintrc@2.1.4’:
resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}

‘@eslint/js@8.57.1’:
resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}

‘@humanwhocodes/config-array@0.13.0’:
resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==}
engines: {node: ‘>=10.10.0’}
deprecated: Use @eslint/config-array instead

‘@humanwhocodes/module-importer@1.0.1’:
resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
engines: {node: ‘>=12.22’}

‘@humanwhocodes/object-schema@2.0.3’:
resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==}
deprecated: Use @eslint/object-schema instead

‘@istanbuljs/load-nyc-config@1.1.0’:
resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==}
engines: {node: ‘>=8’}

‘@istanbuljs/schema@0.1.3’:
resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==}
engines: {node: ‘>=8’}

‘@jest/console@29.7.0’:
resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}

‘@jest/core@29.7.0’:
resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
peerDependencies:
node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
peerDependenciesMeta:
node-notifier:
optional: true

‘@jest/environment@29.7.0’:
resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}

‘@jest/expect-utils@29.7.0’:
resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}

‘@jest/expect@29.7.0’:
resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}

‘@jest/fake-timers@29.7.0’:
resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}

‘@jest/globals@29.7.0’:
resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}

‘@jest/reporters@29.7.0’:
resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
peerDependencies:
node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
peerDependenciesMeta:
node-notifier:
optional: true

‘@jest/schemas@29.6.3’:
resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}

‘@jest/source-map@29.6.3’:
resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}

‘@jest/test-result@29.7.0’:
resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}

‘@jest/test-sequencer@29.7.0’:
resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}

‘@jest/transform@29.7.0’:
resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}

‘@jest/types@29.6.3’:
resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}

‘@jridgewell/gen-mapping@0.3.8’:
resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==}
engines: {node: ‘>=6.0.0’}

‘@jridgewell/resolve-uri@3.1.2’:
resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
engines: {node: ‘>=6.0.0’}

‘@jridgewell/set-array@1.2.1’:
resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
engines: {node: ‘>=6.0.0’}

‘@jridgewell/sourcemap-codec@1.5.0’:
resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==}

‘@jridgewell/trace-mapping@0.3.25’:
resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}

‘@langchain/core@0.3.43’:
resolution: {integrity: sha512-DwiSUwmZqcuOn7j8SFdeOH1nvaUqG7q8qn3LhobdQYEg5PmjLgd2yLr2KzuT/YWMBfjkOR+Di5K6HEdFmouTxg==}
engines: {node: ‘>=18’}

‘@modelcontextprotocol/sdk@1.8.0’:
resolution: {integrity: sha512-e06W7SwrontJDHwCawNO5SGxG+nU9AAx+jpHHZqGl/WrDBdWOpvirC+s58VpJTB5QemI4jTRcjWT4Pt3Q1NPQQ==}
engines: {node: ‘>=18’}

‘@n8n/tournament@1.0.6’:
resolution: {integrity: sha512-UGSxYXXVuOX0yL6HTLBStKYwLIa0+JmRKiSZSCMcM2s2Wax984KWT6XIA1TR/27i7yYpDk1MY14KsTPnuEp27A==}
engines: {node: ‘>=20.15’, pnpm: ‘>=9.5’}

‘@n8n_io/riot-tmpl@4.0.0’:
resolution: {integrity: sha512-/xw8HQgYQlBCrt3IKpNSSB1CgpP7XArw1QTRjP+KEw+OHT8XGvHxXrW9VGdUu9RwDnzm/LFu+dNLeDmwJMeOwQ==}

‘@n8n_io/riot-tmpl@4.0.1’:
resolution: {integrity: sha512-/zdRbEfTFjsm1NqnpPQHgZTkTdbp5v3VUxGeMA9098sps8jRCTraQkc3AQstJgHUm7ylBXJcIVhnVeLUMWAfwQ==}

‘@nodelib/fs.scandir@2.1.5’:
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
engines: {node: ‘>= 8’}

‘@nodelib/fs.stat@2.0.5’:
resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
engines: {node: ‘>= 8’}

‘@nodelib/fs.walk@1.2.8’:
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
engines: {node: ‘>= 8’}

‘@sinclair/typebox@0.27.8’:
resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}

‘@sinonjs/commons@3.0.1’:
resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==}

‘@sinonjs/fake-timers@10.3.0’:
resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==}

‘@types/babel__core@7.20.5’:
resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}

‘@types/babel__generator@7.27.0’:
resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==}

‘@types/babel__template@7.4.4’:
resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}

‘@types/babel__traverse@7.20.7’:
resolution: {integrity: sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==}

‘@types/graceful-fs@4.1.9’:
resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==}

‘@types/istanbul-lib-coverage@2.0.6’:
resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==}

‘@types/istanbul-lib-report@3.0.3’:
resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==}

‘@types/istanbul-reports@3.0.4’:
resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==}

‘@types/jest@29.5.14’:
resolution: {integrity: sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==}

‘@types/json-schema@7.0.15’:
resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}

‘@types/node@22.14.0’:
resolution: {integrity: sha512-Kmpl+z84ILoG+3T/zQFyAJsU6EPTmOCj8/2+83fSN6djd6I4o7uOuGIH6vq3PrjY5BGitSbFuMN18j3iknubbA==}

‘@types/retry@0.12.0’:
resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==}

‘@types/semver@7.7.0’:
resolution: {integrity: sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA==}

‘@types/stack-utils@2.0.3’:
resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==}

‘@types/uuid@10.0.0’:
resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==}

‘@types/yargs-parser@21.0.3’:
resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==}

‘@types/yargs@17.0.33’:
resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==}

‘@typescript-eslint/parser@5.45.1’:
resolution: {integrity: sha512-JQ3Ep8bEOXu16q0ztsatp/iQfDCtvap7sp/DKo7DWltUquj5AfCOpX2zSzJ8YkAVnrQNqQ5R62PBz2UtrfmCkA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
typescript: ‘*’
peerDependenciesMeta:
typescript:
optional: true

‘@typescript-eslint/scope-manager@5.45.1’:
resolution: {integrity: sha512-D6fCileR6Iai7E35Eb4Kp+k0iW7F1wxXYrOhX/3dywsOJpJAQ20Fwgcf+P/TDtvQ7zcsWsrJaglaQWDhOMsspQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}

‘@typescript-eslint/scope-manager@6.21.0’:
resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==}
engines: {node: ^16.0.0 || >=18.0.0}

‘@typescript-eslint/types@5.45.1’:
resolution: {integrity: sha512-HEW3U0E5dLjUT+nk7b4lLbOherS1U4ap+b9pfu2oGsW3oPu7genRaY9dDv3nMczC1rbnRY2W/D7SN05wYoGImg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}

‘@typescript-eslint/types@6.21.0’:
resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==}
engines: {node: ^16.0.0 || >=18.0.0}

‘@typescript-eslint/typescript-estree@5.45.1’:
resolution: {integrity: sha512-76NZpmpCzWVrrb0XmYEpbwOz/FENBi+5W7ipVXAsG3OoFrQKJMiaqsBMbvGRyLtPotGqUfcY7Ur8j0dksDJDng==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
typescript: ‘*’
peerDependenciesMeta:
typescript:
optional: true

‘@typescript-eslint/typescript-estree@6.21.0’:
resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
typescript: ‘*’
peerDependenciesMeta:
typescript:
optional: true

‘@typescript-eslint/utils@6.21.0’:
resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
eslint: ^7.0.0 || ^8.0.0

‘@typescript-eslint/visitor-keys@5.45.1’:
resolution: {integrity: sha512-cy9ln+6rmthYWjH9fmx+5FU/JDpjQb586++x2FZlveq7GdGuLLW9a2Jcst2TGekH82bXpfmRNSwP9tyEs6RjvQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}

‘@typescript-eslint/visitor-keys@6.21.0’:
resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==}
engines: {node: ^16.0.0 || >=18.0.0}

‘@ungap/structured-clone@1.3.0’:
resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==}

accepts@2.0.0:
resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==}
engines: {node: ‘>= 0.6’}

acorn-jsx@5.3.2:
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
peerDependencies:
acorn: ^6.0.0 || ^7.0.0 || ^8.0.0

acorn@8.14.1:
resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==}
engines: {node: ‘>=0.4.0’}
hasBin: true

ajv@6.12.6:
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}

ansi-colors@1.1.0:
resolution: {integrity: sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==}
engines: {node: ‘>=0.10.0’}

ansi-escapes@4.3.2:
resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
engines: {node: ‘>=8’}

ansi-gray@0.1.1:
resolution: {integrity: sha512-HrgGIZUl8h2EHuZaU9hTR/cU5nhKxpVE1V6kdGsQ8e4zirElJ5fvtfc8N7Q1oq1aatO275i8pUFUCpNWCAnVWw==}
engines: {node: ‘>=0.10.0’}

ansi-regex@2.1.1:
resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==}
engines: {node: ‘>=0.10.0’}

ansi-regex@5.0.1:
resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
engines: {node: ‘>=8’}

ansi-styles@4.3.0:
resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
engines: {node: ‘>=8’}

ansi-styles@5.2.0:
resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
engines: {node: ‘>=10’}

ansi-wrap@0.1.0:
resolution: {integrity: sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw==}
engines: {node: ‘>=0.10.0’}

anymatch@2.0.0:
resolution: {integrity: sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==}

anymatch@3.1.3:
resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
engines: {node: ‘>= 8’}

append-buffer@1.0.2:
resolution: {integrity: sha512-WLbYiXzD3y/ATLZFufV/rZvWdZOs+Z/+5v1rBZ463Jn398pa6kcde27cvozYnBoxXblGZTFfoPpsaEw0orU5BA==}
engines: {node: ‘>=0.10.0’}

archy@1.0.0:
resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==}

argparse@1.0.10:
resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}

argparse@2.0.1:
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}

arr-diff@4.0.0:
resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==}
engines: {node: ‘>=0.10.0’}

arr-filter@1.1.2:
resolution: {integrity: sha512-A2BETWCqhsecSvCkWAeVBFLH6sXEUGASuzkpjL3GR1SlL/PWL6M3J8EAAld2Uubmh39tvkJTqC9LeLHCUKmFXA==}
engines: {node: ‘>=0.10.0’}

arr-flatten@1.1.0:
resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==}
engines: {node: ‘>=0.10.0’}

arr-map@2.0.2:
resolution: {integrity: sha512-tVqVTHt+Q5Xb09qRkbu+DidW1yYzz5izWS2Xm2yFm7qJnmUfz4HPzNxbHkdRJbz2lrqI7S+z17xNYdFcBBO8Hw==}
engines: {node: ‘>=0.10.0’}

arr-union@3.1.0:
resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==}
engines: {node: ‘>=0.10.0’}

array-each@1.0.1:
resolution: {integrity: sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==}
engines: {node: ‘>=0.10.0’}

array-initial@1.1.0:
resolution: {integrity: sha512-BC4Yl89vneCYfpLrs5JU2aAu9/a+xWbeKhvISg9PT7eWFB9UlRvI+rKEtk6mgxWr3dSkk9gQ8hCrdqt06NXPdw==}
engines: {node: ‘>=0.10.0’}

array-last@1.3.0:
resolution: {integrity: sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==}
engines: {node: ‘>=0.10.0’}

array-slice@1.1.0:
resolution: {integrity: sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==}
engines: {node: ‘>=0.10.0’}

array-sort@1.0.0:
resolution: {integrity: sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==}
engines: {node: ‘>=0.10.0’}

array-union@2.1.0:
resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
engines: {node: ‘>=8’}

array-unique@0.3.2:
resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==}
engines: {node: ‘>=0.10.0’}

assert@2.1.0:
resolution: {integrity: sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==}

assign-symbols@1.0.0:
resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==}
engines: {node: ‘>=0.10.0’}

ast-types@0.15.2:
resolution: {integrity: sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg==}
engines: {node: ‘>=4’}

ast-types@0.16.1:
resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==}
engines: {node: ‘>=4’}

async-done@1.3.2:
resolution: {integrity: sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==}
engines: {node: ‘>= 0.10’}

async-each@1.0.6:
resolution: {integrity: sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==}

async-settle@1.0.0:
resolution: {integrity: sha512-VPXfB4Vk49z1LHHodrEQ6Xf7W4gg1w0dAPROHngx7qgDjqmIQ+fXmwgGXTW/ITLai0YLSvWepJOP9EVpMnEAcw==}
engines: {node: ‘>= 0.10’}

async@3.2.6:
resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==}

asynckit@0.4.0:
resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}

atob@2.1.2:
resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==}
engines: {node: ‘>= 4.5.0’}
hasBin: true

available-typed-arrays@1.0.7:
resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
engines: {node: ‘>= 0.4’}

axios@1.8.2:
resolution: {integrity: sha512-ls4GYBm5aig9vWx8AWDSGLpnpDQRtWAfrjU+EuytuODrFBkqesN2RkOQCBzrA1RQNHw1SmRMSDDDSwzNAYQ6Rg==}

babel-jest@29.7.0:
resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
peerDependencies:
‘@babel/core’: ^7.8.0

babel-plugin-istanbul@6.1.1:
resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==}
engines: {node: ‘>=8’}

babel-plugin-jest-hoist@29.6.3:
resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}

babel-preset-current-node-syntax@1.1.0:
resolution: {integrity: sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==}
peerDependencies:
‘@babel/core’: ^7.0.0

babel-preset-jest@29.6.3:
resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
peerDependencies:
‘@babel/core’: ^7.0.0

bach@1.2.0:
resolution: {integrity: sha512-bZOOfCb3gXBXbTFXq3OZtGR88LwGeJvzu6szttaIzymOTS4ZttBNOWSv7aLZja2EMycKtRYV0Oa8SNKH/zkxvg==}
engines: {node: ‘>= 0.10’}

balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}

base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}

base@0.11.2:
resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==}
engines: {node: ‘>=0.10.0’}

binary-extensions@1.13.1:
resolution: {integrity: sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==}
engines: {node: ‘>=0.10.0’}

bindings@1.5.0:
resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}

body-parser@2.2.0:
resolution: {integrity: sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg==}
engines: {node: ‘>=18’}

brace-expansion@1.1.11:
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}

brace-expansion@2.0.1:
resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}

braces@2.3.2:
resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==}
engines: {node: ‘>=0.10.0’}

braces@3.0.3:
resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
engines: {node: ‘>=8’}

browserslist@4.24.4:
resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==}
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true

bs-logger@0.2.6:
resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==}
engines: {node: ‘>= 6’}

bser@2.1.1:
resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==}

buffer-equal@1.0.1:
resolution: {integrity: sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==}
engines: {node: ‘>=0.4’}

buffer-from@1.1.2:
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}

bytes@3.1.2:
resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
engines: {node: ‘>= 0.8’}

cache-base@1.0.1:
resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==}
engines: {node: ‘>=0.10.0’}

call-bind-apply-helpers@1.0.2:
resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
engines: {node: ‘>= 0.4’}

call-bind@1.0.8:
resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==}
engines: {node: ‘>= 0.4’}

call-bound@1.0.4:
resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==}
engines: {node: ‘>= 0.4’}

callsites@3.1.0:
resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
engines: {node: ‘>=6’}

camel-case@4.1.2:
resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==}

camelcase@3.0.0:
resolution: {integrity: sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==}
engines: {node: ‘>=0.10.0’}

camelcase@5.3.1:
resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
engines: {node: ‘>=6’}

camelcase@6.3.0:
resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
engines: {node: ‘>=10’}

caniuse-lite@1.0.30001710:
resolution: {integrity: sha512-B5C0I0UmaGqHgo5FuqJ7hBd4L57A4dDD+Xi+XX1nXOoxGeDdY4Ko38qJYOyqznBVJEqON5p8P1x5zRR3+rsnxA==}

chalk@4.1.2:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
engines: {node: ‘>=10’}

char-regex@1.0.2:
resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==}
engines: {node: ‘>=10’}

charenc@0.0.2:
resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==}

chokidar@2.1.8:
resolution: {integrity: sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==}

ci-info@3.9.0:
resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
engines: {node: ‘>=8’}

cjs-module-lexer@1.4.3:
resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==}

class-utils@0.3.6:
resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==}
engines: {node: ‘>=0.10.0’}

cliui@3.2.0:
resolution: {integrity: sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==}

cliui@8.0.1:
resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
engines: {node: ‘>=12’}

clone-buffer@1.0.0:
resolution: {integrity: sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==}
engines: {node: ‘>= 0.10’}

clone-stats@1.0.0:
resolution: {integrity: sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==}

clone@2.1.2:
resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==}
engines: {node: ‘>=0.8’}

cloneable-readable@1.1.3:
resolution: {integrity: sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==}

co@4.6.0:
resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==}
engines: {iojs: ‘>= 1.0.0’, node: ‘>= 0.12.0’}

code-point-at@1.1.0:
resolution: {integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==}
engines: {node: ‘>=0.10.0’}

collect-v8-coverage@1.0.2:
resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==}

collection-map@1.0.0:
resolution: {integrity: sha512-5D2XXSpkOnleOI21TG7p3T0bGAsZ/XknZpKBmGYyluO8pw4zA3K8ZlrBIbC4FXg3m6z/RNFiUFfT2sQK01+UHA==}
engines: {node: ‘>=0.10.0’}

collection-visit@1.0.0:
resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==}
engines: {node: ‘>=0.10.0’}

color-convert@2.0.1:
resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
engines: {node: ‘>=7.0.0’}

color-name@1.1.4:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}

color-support@1.1.3:
resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==}
hasBin: true

combined-stream@1.0.8:
resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
engines: {node: ‘>= 0.8’}

component-emitter@1.3.1:
resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==}

concat-map@0.0.1:
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}

concat-stream@1.6.2:
resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==}
engines: {‘0’: node >= 0.8}

console-table-printer@2.12.1:
resolution: {integrity: sha512-wKGOQRRvdnd89pCeH96e2Fn4wkbenSP6LMHfjfyNLMbGuHEFbMqQNuxXqd0oXG9caIOQ1FTvc5Uijp9/4jujnQ==}

content-disposition@1.0.0:
resolution: {integrity: sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==}
engines: {node: ‘>= 0.6’}

content-type@1.0.5:
resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==}
engines: {node: ‘>= 0.6’}

convert-source-map@1.9.0:
resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==}

convert-source-map@2.0.0:
resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}

cookie-signature@1.2.2:
resolution: {integrity: sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==}
engines: {node: ‘>=6.6.0’}

cookie@0.7.2:
resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==}
engines: {node: ‘>= 0.6’}

copy-descriptor@0.1.1:
resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==}
engines: {node: ‘>=0.10.0’}

copy-props@2.0.5:
resolution: {integrity: sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw==}

core-util-is@1.0.3:
resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}

cors@2.8.5:
resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==}
engines: {node: ‘>= 0.10’}

create-jest@29.7.0:
resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
hasBin: true

cross-spawn@7.0.6:
resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
engines: {node: ‘>= 8’}

crypt@0.0.2:
resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==}

d@1.0.2:
resolution: {integrity: sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==}
engines: {node: ‘>=0.12’}

debug@2.6.9:
resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
peerDependencies:
supports-color: ‘*’
peerDependenciesMeta:
supports-color:
optional: true

debug@4.4.0:
resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==}
engines: {node: ‘>=6.0’}
peerDependencies:
supports-color: ‘*’
peerDependenciesMeta:
supports-color:
optional: true

decamelize@1.2.0:
resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
engines: {node: ‘>=0.10.0’}

decode-uri-component@0.2.2:
resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==}
engines: {node: ‘>=0.10’}

dedent@1.5.3:
resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==}
peerDependencies:
babel-plugin-macros: ^3.1.0
peerDependenciesMeta:
babel-plugin-macros:
optional: true

deep-equal@2.2.0:
resolution: {integrity: sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==}

deep-is@0.1.4:
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}

deepmerge@4.3.1:
resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
engines: {node: ‘>=0.10.0’}

default-compare@1.0.0:
resolution: {integrity: sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==}
engines: {node: ‘>=0.10.0’}

default-resolution@2.0.0:
resolution: {integrity: sha512-2xaP6GiwVwOEbXCGoJ4ufgC76m8cj805jrghScewJC2ZDsb9U0b4BIrba+xt/Uytyd0HvQ6+WymSRTfnYj59GQ==}
engines: {node: ‘>= 0.10’}

define-data-property@1.1.4:
resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
engines: {node: ‘>= 0.4’}

define-properties@1.2.1:
resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
engines: {node: ‘>= 0.4’}

define-property@0.2.5:
resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==}
engines: {node: ‘>=0.10.0’}

define-property@1.0.0:
resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==}
engines: {node: ‘>=0.10.0’}

define-property@2.0.2:
resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==}
engines: {node: ‘>=0.10.0’}

delayed-stream@1.0.0:
resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
engines: {node: ‘>=0.4.0’}

depd@2.0.0:
resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
engines: {node: ‘>= 0.8’}

detect-file@1.0.0:
resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==}
engines: {node: ‘>=0.10.0’}

detect-newline@3.1.0:
resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==}
engines: {node: ‘>=8’}

diff-sequences@29.6.3:
resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}

dir-glob@3.0.1:
resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
engines: {node: ‘>=8’}

doctrine@3.0.0:
resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
engines: {node: ‘>=6.0.0’}

dunder-proto@1.0.1:
resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
engines: {node: ‘>= 0.4’}

duplexify@3.7.1:
resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==}

each-props@1.3.2:
resolution: {integrity: sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==}

ee-first@1.1.1:
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}

ejs@3.1.10:
resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==}
engines: {node: ‘>=0.10.0’}
hasBin: true

electron-to-chromium@1.5.132:
resolution: {integrity: sha512-QgX9EBvWGmvSRa74zqfnG7+Eno0Ak0vftBll0Pt2/z5b3bEGYL6OUXLgKPtvx73dn3dvwrlyVkjPKRRlhLYTEg==}

emittery@0.13.1:
resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==}
engines: {node: ‘>=12’}

emoji-regex@8.0.0:
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}

encodeurl@2.0.0:
resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==}
engines: {node: ‘>= 0.8’}

end-of-stream@1.4.4:
resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}

error-ex@1.3.2:
resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}

es-define-property@1.0.1:
resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==}
engines: {node: ‘>= 0.4’}

es-errors@1.3.0:
resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
engines: {node: ‘>= 0.4’}

es-get-iterator@1.1.3:
resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==}

es-object-atoms@1.1.1:
resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==}
engines: {node: ‘>= 0.4’}

es5-ext@0.10.64:
resolution: {integrity: sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==}
engines: {node: ‘>=0.10’}

es6-iterator@2.0.3:
resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==}

es6-symbol@3.1.4:
resolution: {integrity: sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==}
engines: {node: ‘>=0.12’}

es6-weak-map@2.0.3:
resolution: {integrity: sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==}

escalade@3.2.0:
resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
engines: {node: ‘>=6’}

escape-html@1.0.3:
resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}

escape-string-regexp@2.0.0:
resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==}
engines: {node: ‘>=8’}

escape-string-regexp@4.0.0:
resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
engines: {node: ‘>=10’}

eslint-config-riot@1.0.0:
resolution: {integrity: sha512-NB/L/1Y30qyJcG5xZxCJKW/+bqyj+llbcCwo9DEz8bESIP0SLTOQ8T1DWCCFc+wJ61AMEstj4511PSScqMMfCw==}

eslint-plugin-local@1.0.0:
resolution: {integrity: sha512-bcwcQnKL/Iw5Vi/F2lG1he5oKD2OGjhsLmrcctkWrWq5TujgiaYb0cj3pZgr3XI54inNVnneOFdAx1daLoYLJQ==}

eslint-plugin-n8n-nodes-base@1.16.3:
resolution: {integrity: sha512-edLX42Vg4B+y0kzkitTVDmHZQrG5/wUZO874N5Z9leBuxt5TG1pqMY4zdr35RlpM4p4REr/T9x+6DpsQSL63WA==}
engines: {node: ‘>=20.15’, pnpm: ‘>=9.6’}

eslint-scope@7.2.2:
resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}

eslint-visitor-keys@3.4.3:
resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}

eslint@8.57.1:
resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options.
hasBin: true

esniff@2.0.1:
resolution: {integrity: sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==}
engines: {node: ‘>=0.10’}

espree@9.6.1:
resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}

esprima-next@5.8.4:
resolution: {integrity: sha512-8nYVZ4ioIH4Msjb/XmhnBdz5WRRBaYqevKa1cv9nGJdCehMbzZCPNEEnqfLCZVetUVrUPEcb5IYyu1GG4hFqgg==}
engines: {node: ‘>=12’}
hasBin: true

esprima@4.0.1:
resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
engines: {node: ‘>=4’}
hasBin: true

esquery@1.6.0:
resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==}
engines: {node: ‘>=0.10’}

esrecurse@4.3.0:
resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
engines: {node: ‘>=4.0’}

estraverse@5.3.0:
resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
engines: {node: ‘>=4.0’}

esutils@2.0.3:
resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
engines: {node: ‘>=0.10.0’}

etag@1.8.1:
resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
engines: {node: ‘>= 0.6’}

event-emitter@0.3.5:
resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==}

eventemitter3@4.0.7:
resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}

eventsource-parser@3.0.1:
resolution: {integrity: sha512-VARTJ9CYeuQYb0pZEPbzi740OWFgpHe7AYJ2WFZVnUDUQp5Dk2yJUgF36YsZ81cOyxT0QxmXD2EQpapAouzWVA==}
engines: {node: ‘>=18.0.0’}

eventsource@3.0.6:
resolution: {integrity: sha512-l19WpE2m9hSuyP06+FbuUUf1G+R0SFLrtQfbRb9PRr+oimOfxQhgGCbVaXg5IvZyyTThJsxh6L/srkMiCeBPDA==}
engines: {node: ‘>=18.0.0’}

execa@5.1.1:
resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
engines: {node: ‘>=10’}

exit@0.1.2:
resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==}
engines: {node: ‘>= 0.8.0’}

expand-brackets@2.1.4:
resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==}
engines: {node: ‘>=0.10.0’}

expand-tilde@2.0.2:
resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==}
engines: {node: ‘>=0.10.0’}

expect@29.7.0:
resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}

express-rate-limit@7.5.0:
resolution: {integrity: sha512-eB5zbQh5h+VenMPM3fh+nw1YExi5nMr6HUCR62ELSP11huvxm/Uir1H1QEyTkk5QX6A58pX6NmaTMceKZ0Eodg==}
engines: {node: ‘>= 16’}
peerDependencies:
express: ^4.11 || 5 || ^5.0.0-beta.1

express@5.1.0:
resolution: {integrity: sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==}
engines: {node: ‘>= 18’}

ext@1.7.0:
resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==}

extend-shallow@2.0.1:
resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==}
engines: {node: ‘>=0.10.0’}

extend-shallow@3.0.2:
resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==}
engines: {node: ‘>=0.10.0’}

extend@3.0.2:
resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}

extglob@2.0.4:
resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==}
engines: {node: ‘>=0.10.0’}

fancy-log@1.3.3:
resolution: {integrity: sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==}
engines: {node: ‘>= 0.10’}

fast-deep-equal@3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}

fast-glob@3.3.3:
resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==}
engines: {node: ‘>=8.6.0’}

fast-json-stable-stringify@2.1.0:
resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}

fast-levenshtein@1.1.4:
resolution: {integrity: sha512-Ia0sQNrMPXXkqVFt6w6M1n1oKo3NfKs+mvaV811Jwir7vAk9a6PVV9VPYf6X3BU97QiLEmuW3uXH9u87zDFfdw==}

fast-levenshtein@2.0.6:
resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}

fastq@1.19.1:
resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==}

fb-watchman@2.0.2:
resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==}

file-entry-cache@6.0.1:
resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
engines: {node: ^10.12.0 || >=12.0.0}

file-uri-to-path@1.0.0:
resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}

filelist@1.0.4:
resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==}

fill-range@4.0.0:
resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==}
engines: {node: ‘>=0.10.0’}

fill-range@7.1.1:
resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
engines: {node: ‘>=8’}

finalhandler@2.1.0:
resolution: {integrity: sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==}
engines: {node: ‘>= 0.8’}

find-up@1.1.2:
resolution: {integrity: sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==}
engines: {node: ‘>=0.10.0’}

find-up@4.1.0:
resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
engines: {node: ‘>=8’}

find-up@5.0.0:
resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
engines: {node: ‘>=10’}

findup-sync@2.0.0:
resolution: {integrity: sha512-vs+3unmJT45eczmcAZ6zMJtxN3l/QXeccaXQx5cu/MeJMhewVfoWZqibRkOxPnmoR59+Zy5hjabfQc6JLSah4g==}
engines: {node: ‘>= 0.10’}

findup-sync@3.0.0:
resolution: {integrity: sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==}
engines: {node: ‘>= 0.10’}

fined@1.2.0:
resolution: {integrity: sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==}
engines: {node: ‘>= 0.10’}

flagged-respawn@1.0.1:
resolution: {integrity: sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==}
engines: {node: ‘>= 0.10’}

flat-cache@3.2.0:
resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
engines: {node: ^10.12.0 || >=12.0.0}

flatted@3.3.3:
resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==}

flush-write-stream@1.1.1:
resolution: {integrity: sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==}

follow-redirects@1.15.9:
resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==}
engines: {node: ‘>=4.0’}
peerDependencies:
debug: ‘*’
peerDependenciesMeta:
debug:
optional: true

for-each@0.3.5:
resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==}
engines: {node: ‘>= 0.4’}

for-in@1.0.2:
resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==}
engines: {node: ‘>=0.10.0’}

for-own@1.0.0:
resolution: {integrity: sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==}
engines: {node: ‘>=0.10.0’}

form-data@4.0.0:
resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
engines: {node: ‘>= 6’}

forwarded@0.2.0:
resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
engines: {node: ‘>= 0.6’}

fragment-cache@0.2.1:
resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==}
engines: {node: ‘>=0.10.0’}

fresh@2.0.0:
resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==}
engines: {node: ‘>= 0.8’}

fs-mkdirp-stream@1.0.0:
resolution: {integrity: sha512-+vSd9frUnapVC2RZYfL3FCB2p3g4TBhaUmrsWlSudsGdnxIuUvBB2QM1VZeBtc49QFwrp+wQLrDs3+xxDgI5gQ==}
engines: {node: ‘>= 0.10’}

fs.realpath@1.0.0:
resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}

fsevents@1.2.13:
resolution: {integrity: sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==}
engines: {node: ‘>= 4.0’}
os: [darwin]
deprecated: Upgrade to fsevents v2 to mitigate potential security issues

fsevents@2.3.3:
resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
os: [darwin]

function-bind@1.1.2:
resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}

functions-have-names@1.2.3:
resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}

gensync@1.0.0-beta.2:
resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
engines: {node: ‘>=6.9.0’}

get-caller-file@1.0.3:
resolution: {integrity: sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==}

get-caller-file@2.0.5:
resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
engines: {node: 6.* || 8.* || >= 10.*}

get-intrinsic@1.3.0:
resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==}
engines: {node: ‘>= 0.4’}

get-package-type@0.1.0:
resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==}
engines: {node: ‘>=8.0.0’}

get-proto@1.0.1:
resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==}
engines: {node: ‘>= 0.4’}

get-stream@6.0.1:
resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
engines: {node: ‘>=10’}

get-value@2.0.6:
resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==}
engines: {node: ‘>=0.10.0’}

glob-parent@3.1.0:
resolution: {integrity: sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==}

glob-parent@5.1.2:
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
engines: {node: ‘>= 6’}

glob-parent@6.0.2:
resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
engines: {node: ‘>=10.13.0’}

glob-stream@6.1.0:
resolution: {integrity: sha512-uMbLGAP3S2aDOHUDfdoYcdIePUCfysbAd0IAoWVZbeGU/oNQ8asHVSshLDJUPWxfzj8zsCG7/XeHPHTtow0nsw==}
engines: {node: ‘>= 0.10’}

glob-watcher@5.0.5:
resolution: {integrity: sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==}
engines: {node: ‘>= 0.10’}

glob@7.2.3:
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
deprecated: Glob versions prior to v9 are no longer supported

global-modules@1.0.0:
resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==}
engines: {node: ‘>=0.10.0’}

global-prefix@1.0.2:
resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==}
engines: {node: ‘>=0.10.0’}

globals@11.12.0:
resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
engines: {node: ‘>=4’}

globals@13.24.0:
resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
engines: {node: ‘>=8’}

globby@11.1.0:
resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
engines: {node: ‘>=10’}

glogg@1.0.2:
resolution: {integrity: sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==}
engines: {node: ‘>= 0.10’}

gopd@1.2.0:
resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
engines: {node: ‘>= 0.4’}

graceful-fs@4.2.11:
resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}

graphemer@1.4.0:
resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}

gulp-cli@2.3.0:
resolution: {integrity: sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==}
engines: {node: ‘>= 0.10’}
hasBin: true

gulp@4.0.2:
resolution: {integrity: sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==}
engines: {node: ‘>= 0.10’}
hasBin: true

gulplog@1.0.0:
resolution: {integrity: sha512-hm6N8nrm3Y08jXie48jsC55eCZz9mnb4OirAStEk2deqeyhXU3C1otDVh+ccttMuc1sBi6RX6ZJ720hs9RCvgw==}
engines: {node: ‘>= 0.10’}

has-bigints@1.1.0:
resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==}
engines: {node: ‘>= 0.4’}

has-flag@4.0.0:
resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
engines: {node: ‘>=8’}

has-property-descriptors@1.0.2:
resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}

has-symbols@1.1.0:
resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==}
engines: {node: ‘>= 0.4’}

has-tostringtag@1.0.2:
resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
engines: {node: ‘>= 0.4’}

has-value@0.3.1:
resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==}
engines: {node: ‘>=0.10.0’}

has-value@1.0.0:
resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==}
engines: {node: ‘>=0.10.0’}

has-values@0.1.4:
resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==}
engines: {node: ‘>=0.10.0’}

has-values@1.0.0:
resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==}
engines: {node: ‘>=0.10.0’}

hasown@2.0.2:
resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
engines: {node: ‘>= 0.4’}

homedir-polyfill@1.0.3:
resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==}
engines: {node: ‘>=0.10.0’}

hosted-git-info@2.8.9:
resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}

html-escaper@2.0.2:
resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}

http-errors@2.0.0:
resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
engines: {node: ‘>= 0.8’}

human-signals@2.1.0:
resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
engines: {node: ‘>=10.17.0’}

iconv-lite@0.6.3:
resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
engines: {node: ‘>=0.10.0’}

ignore@5.3.2:
resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
engines: {node: ‘>= 4’}

import-fresh@3.3.1:
resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
engines: {node: ‘>=6’}

import-local@3.2.0:
resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==}
engines: {node: ‘>=8’}
hasBin: true

imurmurhash@0.1.4:
resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
engines: {node: ‘>=0.8.19’}

indefinite@2.5.1:
resolution: {integrity: sha512-Ul0hCdnSjuFDEloYWeozTaEfljbz+0q+u4HsHns2dOk2DlhGlbRMGFtNcIL+Ve7sZYeIOTOAKA0usAXBGHpNDg==}
engines: {node: ‘>=6.0.0’}

inflight@1.0.6:
resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.

inherits@2.0.4:
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}

ini@1.3.8:
resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}

internal-slot@1.1.0:
resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==}
engines: {node: ‘>= 0.4’}

interpret@1.4.0:
resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==}
engines: {node: ‘>= 0.10’}

invert-kv@1.0.0:
resolution: {integrity: sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==}
engines: {node: ‘>=0.10.0’}

ipaddr.js@1.9.1:
resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==}
engines: {node: ‘>= 0.10’}

is-absolute@1.0.0:
resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==}
engines: {node: ‘>=0.10.0’}

is-accessor-descriptor@1.0.1:
resolution: {integrity: sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==}
engines: {node: ‘>= 0.10’}

is-arguments@1.2.0:
resolution: {integrity: sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==}
engines: {node: ‘>= 0.4’}

is-array-buffer@3.0.5:
resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==}
engines: {node: ‘>= 0.4’}

is-arrayish@0.2.1:
resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}

is-bigint@1.1.0:
resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==}
engines: {node: ‘>= 0.4’}

is-binary-path@1.0.1:
resolution: {integrity: sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==}
engines: {node: ‘>=0.10.0’}

is-boolean-object@1.2.2:
resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==}
engines: {node: ‘>= 0.4’}

is-buffer@1.1.6:
resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==}

is-callable@1.2.7:
resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
engines: {node: ‘>= 0.4’}

is-core-module@2.16.1:
resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==}
engines: {node: ‘>= 0.4’}

is-data-descriptor@1.0.1:
resolution: {integrity: sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==}
engines: {node: ‘>= 0.4’}

is-date-object@1.1.0:
resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==}
engines: {node: ‘>= 0.4’}

is-descriptor@0.1.7:
resolution: {integrity: sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==}
engines: {node: ‘>= 0.4’}

is-descriptor@1.0.3:
resolution: {integrity: sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==}
engines: {node: ‘>= 0.4’}

is-extendable@0.1.1:
resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==}
engines: {node: ‘>=0.10.0’}

is-extendable@1.0.1:
resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==}
engines: {node: ‘>=0.10.0’}

is-extglob@2.1.1:
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
engines: {node: ‘>=0.10.0’}

is-fullwidth-code-point@1.0.0:
resolution: {integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==}
engines: {node: ‘>=0.10.0’}

is-fullwidth-code-point@3.0.0:
resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
engines: {node: ‘>=8’}

is-generator-fn@2.1.0:
resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==}
engines: {node: ‘>=6’}

is-generator-function@1.1.0:
resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==}
engines: {node: ‘>= 0.4’}

is-glob@3.1.0:
resolution: {integrity: sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==}
engines: {node: ‘>=0.10.0’}

is-glob@4.0.3:
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
engines: {node: ‘>=0.10.0’}

is-map@2.0.3:
resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==}
engines: {node: ‘>= 0.4’}

is-nan@1.3.2:
resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==}
engines: {node: ‘>= 0.4’}

is-negated-glob@1.0.0:
resolution: {integrity: sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==}
engines: {node: ‘>=0.10.0’}

is-number-object@1.1.1:
resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==}
engines: {node: ‘>= 0.4’}

is-number@3.0.0:
resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==}
engines: {node: ‘>=0.10.0’}

is-number@4.0.0:
resolution: {integrity: sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==}
engines: {node: ‘>=0.10.0’}

is-number@7.0.0:
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
engines: {node: ‘>=0.12.0’}

is-path-inside@3.0.3:
resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
engines: {node: ‘>=8’}

is-plain-object@2.0.4:
resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==}
engines: {node: ‘>=0.10.0’}

is-plain-object@5.0.0:
resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==}
engines: {node: ‘>=0.10.0’}

is-promise@4.0.0:
resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==}

is-regex@1.2.1:
resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==}
engines: {node: ‘>= 0.4’}

is-relative@1.0.0:
resolution: {integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==}
engines: {node: ‘>=0.10.0’}

is-set@2.0.3:
resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==}
engines: {node: ‘>= 0.4’}

is-shared-array-buffer@1.0.4:
resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==}
engines: {node: ‘>= 0.4’}

is-stream@2.0.1:
resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
engines: {node: ‘>=8’}

is-string@1.1.1:
resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==}
engines: {node: ‘>= 0.4’}

is-symbol@1.1.1:
resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==}
engines: {node: ‘>= 0.4’}

is-typed-array@1.1.15:
resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==}
engines: {node: ‘>= 0.4’}

is-unc-path@1.0.0:
resolution: {integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==}
engines: {node: ‘>=0.10.0’}

is-utf8@0.2.1:
resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==}

is-valid-glob@1.0.0:
resolution: {integrity: sha512-AhiROmoEFDSsjx8hW+5sGwgKVIORcXnrlAx/R0ZSeaPw70Vw0CqkGBBhHGL58Uox2eXnU1AnvXJl1XlyedO5bA==}
engines: {node: ‘>=0.10.0’}

is-weakmap@2.0.2:
resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==}
engines: {node: ‘>= 0.4’}

is-weakset@2.0.4:
resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==}
engines: {node: ‘>= 0.4’}

is-windows@1.0.2:
resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
engines: {node: ‘>=0.10.0’}

isarray@1.0.0:
resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}

isarray@2.0.5:
resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}

isexe@2.0.0:
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}

isobject@2.1.0:
resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==}
engines: {node: ‘>=0.10.0’}

isobject@3.0.1:
resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==}
engines: {node: ‘>=0.10.0’}

istanbul-lib-coverage@3.2.2:
resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==}
engines: {node: ‘>=8’}

istanbul-lib-instrument@5.2.1:
resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==}
engines: {node: ‘>=8’}

istanbul-lib-instrument@6.0.3:
resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==}
engines: {node: ‘>=10’}

istanbul-lib-report@3.0.1:
resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==}
engines: {node: ‘>=10’}

istanbul-lib-source-maps@4.0.1:
resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==}
engines: {node: ‘>=10’}

istanbul-reports@3.1.7:
resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==}
engines: {node: ‘>=8’}

jake@10.9.2:
resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==}
engines: {node: ‘>=10’}
hasBin: true

jest-changed-files@29.7.0:
resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}

jest-circus@29.7.0:
resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}

jest-cli@29.7.0:
resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
hasBin: true
peerDependencies:
node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
peerDependenciesMeta:
node-notifier:
optional: true

jest-config@29.7.0:
resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
peerDependencies:
‘@types/node’: ‘*’
ts-node: ‘>=9.0.0’
peerDependenciesMeta:
‘@types/node’:
optional: true
ts-node:
optional: true

jest-diff@29.7.0:
resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}

jest-docblock@29.7.0:
resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}

jest-each@29.7.0:
resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}

jest-environment-node@29.7.0:
resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}

jest-get-type@29.6.3:
resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}

jest-haste-map@29.7.0:
resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}

jest-leak-detector@29.7.0:
resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}

jest-matcher-utils@29.7.0:
resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}

jest-message-util@29.7.0:
resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}

jest-mock@29.7.0:
resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}

jest-pnp-resolver@1.2.3:
resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==}
engines: {node: ‘>=6’}
peerDependencies:
jest-resolve: ‘*’
peerDependenciesMeta:
jest-resolve:
optional: true

jest-regex-util@29.6.3:
resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}

jest-resolve-dependencies@29.7.0:
resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}

jest-resolve@29.7.0:
resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}

jest-runner@29.7.0:
resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}

jest-runtime@29.7.0:
resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}

jest-snapshot@29.7.0:
resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}

jest-util@29.7.0:
resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}

jest-validate@29.7.0:
resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}

jest-watcher@29.7.0:
resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}

jest-worker@29.7.0:
resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}

jest@29.7.0:
resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
hasBin: true
peerDependencies:
node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
peerDependenciesMeta:
node-notifier:
optional: true

jmespath@0.16.0:
resolution: {integrity: sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==}
engines: {node: ‘>= 0.6.0’}

js-base64@3.7.2:
resolution: {integrity: sha512-NnRs6dsyqUXejqk/yv2aiXlAvOs56sLkX6nUdeaNezI5LFFLlsZjOThmwnrcwh5ZZRwZlCMnVAY3CvhIhoVEKQ==}

js-tiktoken@1.0.19:
resolution: {integrity: sha512-XC63YQeEcS47Y53gg950xiZ4IWmkfMe4p2V9OSaBt26q+p47WHn18izuXzSclCI73B7yGqtfRsT6jcZQI0y08g==}

js-tokens@4.0.0:
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}

js-yaml@3.14.1:
resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
hasBin: true

js-yaml@4.1.0:
resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
hasBin: true

jsesc@3.1.0:
resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==}
engines: {node: ‘>=6’}
hasBin: true

json-buffer@3.0.1:
resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}

json-parse-even-better-errors@2.3.1:
resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}

json-schema-traverse@0.4.1:
resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}

json-stable-stringify-without-jsonify@1.0.1:
resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}

json5@2.2.3:
resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
engines: {node: ‘>=6’}
hasBin: true

jssha@3.3.1:
resolution: {integrity: sha512-VCMZj12FCFMQYcFLPRm/0lOBbLi8uM2BhXPTqw3U4YAfs4AZfiApOoBLoN8cQE60Z50m1MYMTQVCfgF/KaCVhQ==}

just-debounce@1.1.0:
resolution: {integrity: sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==}

keyv@4.5.4:
resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}

kind-of@3.2.2:
resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==}
engines: {node: ‘>=0.10.0’}

kind-of@4.0.0:
resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==}
engines: {node: ‘>=0.10.0’}

kind-of@5.1.0:
resolution: {integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==}
engines: {node: ‘>=0.10.0’}

kind-of@6.0.3:
resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
engines: {node: ‘>=0.10.0’}

kleur@3.0.3:
resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
engines: {node: ‘>=6’}

langsmith@0.3.15:
resolution: {integrity: sha512-cv3ebg0Hh0gRbl72cv/uzaZ+KOdfa2mGF1s74vmB2vlNVO/Ap/O9RYaHV+tpR8nwhGZ50R3ILnTOwSwGP+XQxw==}
peerDependencies:
openai: ‘*’
peerDependenciesMeta:
openai:
optional: true

last-run@1.1.1:
resolution: {integrity: sha512-U/VxvpX4N/rFvPzr3qG5EtLKEnNI0emvIQB3/ecEwv+8GHaUKbIB8vxv1Oai5FAF0d0r7LXHhLLe5K/yChm5GQ==}
engines: {node: ‘>= 0.10’}

lazystream@1.0.1:
resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==}
engines: {node: ‘>= 0.6.3’}

lcid@1.0.0:
resolution: {integrity: sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==}
engines: {node: ‘>=0.10.0’}

lead@1.0.0:
resolution: {integrity: sha512-IpSVCk9AYvLHo5ctcIXxOBpMWUe+4TKN3VPWAKUbJikkmsGp0VrSM8IttVc32D6J4WUsiPE6aEFRNmIoF/gdow==}
engines: {node: ‘>= 0.10’}

leven@3.1.0:
resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
engines: {node: ‘>=6’}

levn@0.4.1:
resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
engines: {node: ‘>= 0.8.0’}

liftoff@3.1.0:
resolution: {integrity: sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==}
engines: {node: ‘>= 0.8’}

lines-and-columns@1.2.4:
resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}

load-json-file@1.1.0:
resolution: {integrity: sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==}
engines: {node: ‘>=0.10.0’}

locate-path@5.0.0:
resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
engines: {node: ‘>=8’}

locate-path@6.0.0:
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
engines: {node: ‘>=10’}

lodash.memoize@4.1.2:
resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}

lodash.merge@4.6.2:
resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}

lodash@4.17.21:
resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}

lower-case@2.0.2:
resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}

lru-cache@5.1.1:
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}

luxon@3.4.4:
resolution: {integrity: sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA==}
engines: {node: ‘>=12’}

make-dir@4.0.0:
resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
engines: {node: ‘>=10’}

make-error@1.3.6:
resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}

make-iterator@1.0.1:
resolution: {integrity: sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==}
engines: {node: ‘>=0.10.0’}

makeerror@1.0.12:
resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==}

map-cache@0.2.2:
resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==}
engines: {node: ‘>=0.10.0’}

map-visit@1.0.0:
resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==}
engines: {node: ‘>=0.10.0’}

matchdep@2.0.0:
resolution: {integrity: sha512-LFgVbaHIHMqCRuCZyfCtUOq9/Lnzhi7Z0KFUE2fhD54+JN2jLh3hC02RLkqauJ3U4soU6H1J3tfj/Byk7GoEjA==}
engines: {node: ‘>= 0.10.0’}

math-intrinsics@1.1.0:
resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
engines: {node: ‘>= 0.4’}

md5@2.3.0:
resolution: {integrity: sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==}

media-typer@1.1.0:
resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==}
engines: {node: ‘>= 0.8’}

merge-descriptors@2.0.0:
resolution: {integrity: sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==}
engines: {node: ‘>=18’}

merge-stream@2.0.0:
resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}

merge2@1.4.1:
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
engines: {node: ‘>= 8’}

micromatch@3.1.10:
resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==}
engines: {node: ‘>=0.10.0’}

micromatch@4.0.8:
resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
engines: {node: ‘>=8.6’}

mime-db@1.52.0:
resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
engines: {node: ‘>= 0.6’}

mime-db@1.54.0:
resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==}
engines: {node: ‘>= 0.6’}

mime-types@2.1.35:
resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
engines: {node: ‘>= 0.6’}

mime-types@3.0.1:
resolution: {integrity: sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==}
engines: {node: ‘>= 0.6’}

mimic-fn@2.1.0:
resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
engines: {node: ‘>=6’}

minimatch@3.1.2:
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}

minimatch@5.1.6:
resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
engines: {node: ‘>=10’}

minimatch@9.0.3:
resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==}
engines: {node: ‘>=16 || 14 >=14.17’}

mixin-deep@1.3.2:
resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==}
engines: {node: ‘>=0.10.0’}

ms@2.0.0:
resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}

ms@2.1.3:
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}

mustache@4.2.0:
resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==}
hasBin: true

mute-stdout@1.0.1:
resolution: {integrity: sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==}
engines: {node: ‘>= 0.10’}

n8n-workflow@1.82.0:
resolution: {integrity: sha512-KScpufwmC7NtYhUbjQxfKUKrRq11qQH/yJScM3MsFCj2GCqNFQdlmZAmrWj30DeRlwgEdRzNW1LnGIKMGFEVqA==}

nan@2.22.2:
resolution: {integrity: sha512-DANghxFkS1plDdRsX0X9pm0Z6SJNN6gBdtXfanwoZ8hooC5gosGFSBGRYHUVPz1asKA/kMRqDRdHrluZ61SpBQ==}

nanomatch@1.2.13:
resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==}
engines: {node: ‘>=0.10.0’}

natural-compare@1.4.0:
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}

negotiator@1.0.0:
resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==}
engines: {node: ‘>= 0.6’}

next-tick@1.1.0:
resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==}

no-case@3.0.4:
resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}

node-int64@0.4.0:
resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}

node-releases@2.0.19:
resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==}

normalize-package-data@2.5.0:
resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}

normalize-path@2.1.1:
resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==}
engines: {node: ‘>=0.10.0’}

normalize-path@3.0.0:
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
engines: {node: ‘>=0.10.0’}

now-and-later@2.0.1:
resolution: {integrity: sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==}
engines: {node: ‘>= 0.10’}

npm-run-path@4.0.1:
resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
engines: {node: ‘>=8’}

number-is-nan@1.0.1:
resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==}
engines: {node: ‘>=0.10.0’}

object-assign@4.1.1:
resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
engines: {node: ‘>=0.10.0’}

object-copy@0.1.0:
resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==}
engines: {node: ‘>=0.10.0’}

object-inspect@1.13.4:
resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==}
engines: {node: ‘>= 0.4’}

object-is@1.1.6:
resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==}
engines: {node: ‘>= 0.4’}

object-keys@1.1.1:
resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
engines: {node: ‘>= 0.4’}

object-visit@1.0.1:
resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==}
engines: {node: ‘>=0.10.0’}

object.assign@4.1.7:
resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==}
engines: {node: ‘>= 0.4’}

object.defaults@1.1.0:
resolution: {integrity: sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==}
engines: {node: ‘>=0.10.0’}

object.map@1.0.1:
resolution: {integrity: sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==}
engines: {node: ‘>=0.10.0’}

object.pick@1.3.0:
resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==}
engines: {node: ‘>=0.10.0’}

object.reduce@1.0.1:
resolution: {integrity: sha512-naLhxxpUESbNkRqc35oQ2scZSJueHGQNUfMW/0U37IgN6tE2dgDWg3whf+NEliy3F/QysrO48XKUz/nGPe+AQw==}
engines: {node: ‘>=0.10.0’}

on-finished@2.4.1:
resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==}
engines: {node: ‘>= 0.8’}

once@1.4.0:
resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}

onetime@5.1.2:
resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
engines: {node: ‘>=6’}

optionator@0.9.4:
resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
engines: {node: ‘>= 0.8.0’}

ordered-read-streams@1.0.1:
resolution: {integrity: sha512-Z87aSjx3r5c0ZB7bcJqIgIRX5bxR7A4aSzvIbaxd0oTkWBCOoKfuGHiKj60CHVUgg1Phm5yMZzBdt8XqRs73Mw==}

os-locale@1.4.0:
resolution: {integrity: sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==}
engines: {node: ‘>=0.10.0’}

p-finally@1.0.0:
resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==}
engines: {node: ‘>=4’}

p-limit@2.3.0:
resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
engines: {node: ‘>=6’}

p-limit@3.1.0:
resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
engines: {node: ‘>=10’}

p-locate@4.1.0:
resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
engines: {node: ‘>=8’}

p-locate@5.0.0:
resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
engines: {node: ‘>=10’}

p-queue@6.6.2:
resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==}
engines: {node: ‘>=8’}

p-retry@4.6.2:
resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==}
engines: {node: ‘>=8’}

p-timeout@3.2.0:
resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==}
engines: {node: ‘>=8’}

p-try@2.2.0:
resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
engines: {node: ‘>=6’}

parent-module@1.0.1:
resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
engines: {node: ‘>=6’}

parse-filepath@1.0.2:
resolution: {integrity: sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==}
engines: {node: ‘>=0.8’}

parse-json@2.2.0:
resolution: {integrity: sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==}
engines: {node: ‘>=0.10.0’}

parse-json@5.2.0:
resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
engines: {node: ‘>=8’}

parse-node-version@1.0.1:
resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==}
engines: {node: ‘>= 0.10’}

parse-passwd@1.0.0:
resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==}
engines: {node: ‘>=0.10.0’}

parseurl@1.3.3:
resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
engines: {node: ‘>= 0.8’}

pascal-case@3.1.2:
resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==}

pascalcase@0.1.1:
resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==}
engines: {node: ‘>=0.10.0’}

path-dirname@1.0.2:
resolution: {integrity: sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==}

path-exists@2.1.0:
resolution: {integrity: sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==}
engines: {node: ‘>=0.10.0’}

path-exists@4.0.0:
resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
engines: {node: ‘>=8’}

path-is-absolute@1.0.1:
resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
engines: {node: ‘>=0.10.0’}

path-key@3.1.1:
resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
engines: {node: ‘>=8’}

path-parse@1.0.7:
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}

path-root-regex@0.1.2:
resolution: {integrity: sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==}
engines: {node: ‘>=0.10.0’}

path-root@0.1.1:
resolution: {integrity: sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==}
engines: {node: ‘>=0.10.0’}

path-to-regexp@8.2.0:
resolution: {integrity: sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==}
engines: {node: ‘>=16’}

path-type@1.1.0:
resolution: {integrity: sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==}
engines: {node: ‘>=0.10.0’}

path-type@4.0.0:
resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
engines: {node: ‘>=8’}

picocolors@1.1.1:
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}

picomatch@2.3.1:
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
engines: {node: ‘>=8.6’}

pify@2.3.0:
resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
engines: {node: ‘>=0.10.0’}

pinkie-promise@2.0.1:
resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==}
engines: {node: ‘>=0.10.0’}

pinkie@2.0.4:
resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==}
engines: {node: ‘>=0.10.0’}

pirates@4.0.7:
resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==}
engines: {node: ‘>= 6’}

pkce-challenge@4.1.0:
resolution: {integrity: sha512-ZBmhE1C9LcPoH9XZSdwiPtbPHZROwAnMy+kIFQVrnMCxY4Cudlz3gBOpzilgc0jOgRaiT3sIWfpMomW2ar2orQ==}
engines: {node: ‘>=16.20.0’}

pkg-dir@4.2.0:
resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
engines: {node: ‘>=8’}

pluralize@8.0.0:
resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
engines: {node: ‘>=4’}

posix-character-classes@0.1.1:
resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==}
engines: {node: ‘>=0.10.0’}

possible-typed-array-names@1.1.0:
resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==}
engines: {node: ‘>= 0.4’}

prelude-ls@1.2.1:
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
engines: {node: ‘>= 0.8.0’}

prettier@2.8.8:
resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==}
engines: {node: ‘>=10.13.0’}
hasBin: true

pretty-format@29.7.0:
resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}

pretty-hrtime@1.0.3:
resolution: {integrity: sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==}
engines: {node: ‘>= 0.8’}

process-nextick-args@2.0.1:
resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}

prompts@2.4.2:
resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
engines: {node: ‘>= 6’}

proxy-addr@2.0.7:
resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
engines: {node: ‘>= 0.10’}

proxy-from-env@1.1.0:
resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}

pump@2.0.1:
resolution: {integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==}

pumpify@1.5.1:
resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==}

punycode@2.3.1:
resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
engines: {node: ‘>=6’}

pure-rand@6.1.0:
resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==}

qs@6.14.0:
resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==}
engines: {node: ‘>=0.6’}

queue-microtask@1.2.3:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}

range-parser@1.2.1:
resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
engines: {node: ‘>= 0.6’}

raw-body@3.0.0:
resolution: {integrity: sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==}
engines: {node: ‘>= 0.8’}

react-is@18.3.1:
resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==}

read-pkg-up@1.0.1:
resolution: {integrity: sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==}
engines: {node: ‘>=0.10.0’}

read-pkg@1.1.0:
resolution: {integrity: sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==}
engines: {node: ‘>=0.10.0’}

readable-stream@2.3.8:
resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==}

readdirp@2.2.1:
resolution: {integrity: sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==}
engines: {node: ‘>=0.10’}

recast@0.21.5:
resolution: {integrity: sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg==}
engines: {node: ‘>= 4’}

recast@0.22.0:
resolution: {integrity: sha512-5AAx+mujtXijsEavc5lWXBPQqrM4+Dl5qNH96N2aNeuJFUzpiiToKPsxQD/zAIJHspz7zz0maX0PCtCTFVlixQ==}
engines: {node: ‘>= 4’}

rechoir@0.6.2:
resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==}
engines: {node: ‘>= 0.10’}

regex-not@1.0.2:
resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==}
engines: {node: ‘>=0.10.0’}

regexp.prototype.flags@1.5.4:
resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==}
engines: {node: ‘>= 0.4’}

remove-bom-buffer@3.0.0:
resolution: {integrity: sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==}
engines: {node: ‘>=0.10.0’}

remove-bom-stream@1.2.0:
resolution: {integrity: sha512-wigO8/O08XHb8YPzpDDT+QmRANfW6vLqxfaXm1YXhnFf3AkSLyjfG3GEFg4McZkmgL7KvCj5u2KczkvSP6NfHA==}
engines: {node: ‘>= 0.10’}

remove-trailing-separator@1.1.0:
resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==}

repeat-element@1.1.4:
resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==}
engines: {node: ‘>=0.10.0’}

repeat-string@1.6.1:
resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==}
engines: {node: ‘>=0.10’}

replace-ext@1.0.1:
resolution: {integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==}
engines: {node: ‘>= 0.10’}

replace-homedir@1.0.0:
resolution: {integrity: sha512-CHPV/GAglbIB1tnQgaiysb8H2yCy8WQ7lcEwQ/eT+kLj0QHV8LnJW0zpqpE7RSkrMSRoa+EBoag86clf7WAgSg==}
engines: {node: ‘>= 0.10’}

require-directory@2.1.1:
resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
engines: {node: ‘>=0.10.0’}

require-main-filename@1.0.1:
resolution: {integrity: sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==}

resolve-cwd@3.0.0:
resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==}
engines: {node: ‘>=8’}

resolve-dir@1.0.1:
resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==}
engines: {node: ‘>=0.10.0’}

resolve-from@4.0.0:
resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
engines: {node: ‘>=4’}

resolve-from@5.0.0:
resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
engines: {node: ‘>=8’}

resolve-options@1.1.0:
resolution: {integrity: sha512-NYDgziiroVeDC29xq7bp/CacZERYsA9bXYd1ZmcJlF3BcrZv5pTb4NG7SjdyKDnXZ84aC4vo2u6sNKIA1LCu/A==}
engines: {node: ‘>= 0.10’}

resolve-url@0.2.1:
resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==}
deprecated: https://github.com/lydell/resolve-url#deprecated

resolve.exports@2.0.3:
resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==}
engines: {node: ‘>=10’}

resolve@1.22.10:
resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==}
engines: {node: ‘>= 0.4’}
hasBin: true

ret@0.1.15:
resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==}
engines: {node: ‘>=0.12’}

retry@0.13.1:
resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==}
engines: {node: ‘>= 4’}

reusify@1.1.0:
resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==}
engines: {iojs: ‘>=1.0.0’, node: ‘>=0.10.0’}

rimraf@3.0.2:
resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
deprecated: Rimraf versions prior to v4 are no longer supported
hasBin: true

router@2.2.0:
resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==}
engines: {node: ‘>= 18’}

run-parallel@1.2.0:
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}

safe-buffer@5.1.2:
resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}

safe-buffer@5.2.1:
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}

safe-regex-test@1.1.0:
resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==}
engines: {node: ‘>= 0.4’}

safe-regex@1.1.0:
resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==}

safer-buffer@2.1.2:
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}

sax@1.4.1:
resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==}

semver-greatest-satisfied-range@1.1.0:
resolution: {integrity: sha512-Ny/iyOzSSa8M5ML46IAx3iXc6tfOsYU2R4AXi2UpHk60Zrgyq6eqPj/xiOfS0rRl/iiQ/rdJkVjw/5cdUyCntQ==}
engines: {node: ‘>= 0.10’}

semver@5.7.2:
resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
hasBin: true

semver@6.3.1:
resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
hasBin: true

semver@7.7.1:
resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==}
engines: {node: ‘>=10’}
hasBin: true

send@1.2.0:
resolution: {integrity: sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==}
engines: {node: ‘>= 18’}

sentence-case@3.0.4:
resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==}

serve-static@2.2.0:
resolution: {integrity: sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==}
engines: {node: ‘>= 18’}

set-blocking@2.0.0:
resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}

set-function-length@1.2.2:
resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
engines: {node: ‘>= 0.4’}

set-function-name@2.0.2:
resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==}
engines: {node: ‘>= 0.4’}

set-value@2.0.1:
resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==}
engines: {node: ‘>=0.10.0’}

setprototypeof@1.2.0:
resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}

shebang-command@2.0.0:
resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
engines: {node: ‘>=8’}

shebang-regex@3.0.0:
resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
engines: {node: ‘>=8’}

side-channel-list@1.0.0:
resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==}
engines: {node: ‘>= 0.4’}

side-channel-map@1.0.1:
resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==}
engines: {node: ‘>= 0.4’}

side-channel-weakmap@1.0.2:
resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==}
engines: {node: ‘>= 0.4’}

side-channel@1.1.0:
resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==}
engines: {node: ‘>= 0.4’}

signal-exit@3.0.7:
resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}

simple-wcswidth@1.0.1:
resolution: {integrity: sha512-xMO/8eNREtaROt7tJvWJqHBDTMFN4eiQ5I4JRMuilwfnFcV5W9u7RUkueNkdw0jPqGMX36iCywelS5yilTuOxg==}

sisteransi@1.0.5:
resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}

slash@3.0.0:
resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
engines: {node: ‘>=8’}

snapdragon-node@2.1.1:
resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==}
engines: {node: ‘>=0.10.0’}

snapdragon-util@3.0.1:
resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==}
engines: {node: ‘>=0.10.0’}

snapdragon@0.8.2:
resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==}
engines: {node: ‘>=0.10.0’}

source-map-resolve@0.5.3:
resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==}
deprecated: See https://github.com/lydell/source-map-resolve#deprecated

source-map-support@0.5.13:
resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==}

source-map-url@0.4.1:
resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==}
deprecated: See https://github.com/lydell/source-map-url#deprecated

source-map@0.5.7:
resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==}
engines: {node: ‘>=0.10.0’}

source-map@0.6.1:
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
engines: {node: ‘>=0.10.0’}

sparkles@1.0.1:
resolution: {integrity: sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==}
engines: {node: ‘>= 0.10’}

spdx-correct@3.2.0:
resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}

spdx-exceptions@2.5.0:
resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==}

spdx-expression-parse@3.0.1:
resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}

spdx-license-ids@3.0.21:
resolution: {integrity: sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==}

split-string@3.1.0:
resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==}
engines: {node: ‘>=0.10.0’}

sprintf-js@1.0.3:
resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}

stack-trace@0.0.10:
resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==}

stack-utils@2.0.6:
resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==}
engines: {node: ‘>=10’}

static-extend@0.1.2:
resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==}
engines: {node: ‘>=0.10.0’}

statuses@2.0.1:
resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
engines: {node: ‘>= 0.8’}

stop-iteration-iterator@1.1.0:
resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==}
engines: {node: ‘>= 0.4’}

stream-exhaust@1.0.2:
resolution: {integrity: sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==}

stream-shift@1.0.3:
resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==}

string-length@4.0.2:
resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==}
engines: {node: ‘>=10’}

string-width@1.0.2:
resolution: {integrity: sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==}
engines: {node: ‘>=0.10.0’}

string-width@4.2.3:
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
engines: {node: ‘>=8’}

string_decoder@1.1.1:
resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}

strip-ansi@3.0.1:
resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==}
engines: {node: ‘>=0.10.0’}

strip-ansi@6.0.1:
resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
engines: {node: ‘>=8’}

strip-bom@2.0.0:
resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==}
engines: {node: ‘>=0.10.0’}

strip-bom@4.0.0:
resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==}
engines: {node: ‘>=8’}

strip-final-newline@2.0.0:
resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
engines: {node: ‘>=6’}

strip-json-comments@3.1.1:
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
engines: {node: ‘>=8’}

supports-color@7.2.0:
resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
engines: {node: ‘>=8’}

supports-color@8.1.1:
resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
engines: {node: ‘>=10’}

supports-preserve-symlinks-flag@1.0.0:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: ‘>= 0.4’}

sver-compat@1.5.0:
resolution: {integrity: sha512-aFTHfmjwizMNlNE6dsGmoAM4lHjL0CyiobWaFiXWSlD7cIxshW422Nb8KbXCmR6z+0ZEPY+daXJrDyh/vuwTyg==}

test-exclude@6.0.0:
resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==}
engines: {node: ‘>=8’}

text-table@0.2.0:
resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}

through2-filter@3.0.0:
resolution: {integrity: sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==}

through2@2.0.5:
resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==}

time-stamp@1.1.0:
resolution: {integrity: sha512-gLCeArryy2yNTRzTGKbZbloctj64jkZ57hj5zdraXue6aFgd6PmvVtEyiUU+hvU0v7q08oVv8r8ev0tRo6bvgw==}
engines: {node: ‘>=0.10.0’}

title-case@3.0.3:
resolution: {integrity: sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==}

tmpl@1.0.5:
resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==}

to-absolute-glob@2.0.2:
resolution: {integrity: sha512-rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA==}
engines: {node: ‘>=0.10.0’}

to-object-path@0.3.0:
resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==}
engines: {node: ‘>=0.10.0’}

to-regex-range@2.1.1:
resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==}
engines: {node: ‘>=0.10.0’}

to-regex-range@5.0.1:
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
engines: {node: ‘>=8.0’}

to-regex@3.0.2:
resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==}
engines: {node: ‘>=0.10.0’}

to-through@2.0.0:
resolution: {integrity: sha512-+QIz37Ly7acM4EMdw2PRN389OneM5+d844tirkGp4dPKzI5OE72V9OsbFp+CIYJDahZ41ZV05hNtcPAQUAm9/Q==}
engines: {node: ‘>= 0.10’}

toidentifier@1.0.1:
resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
engines: {node: ‘>=0.6’}

transliteration@2.3.5:
resolution: {integrity: sha512-HAGI4Lq4Q9dZ3Utu2phaWgtm3vB6PkLUFqWAScg/UW+1eZ/Tg6Exo4oC0/3VUol/w4BlefLhUUSVBr/9/ZGQOw==}
engines: {node: ‘>=6.0.0’}
hasBin: true

ts-api-utils@1.4.3:
resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==}
engines: {node: ‘>=16’}
peerDependencies:
typescript: ‘>=4.2.0’

ts-jest@29.3.1:
resolution: {integrity: sha512-FT2PIRtZABwl6+ZCry8IY7JZ3xMuppsEV9qFVHOVe8jDzggwUZ9TsM4chyJxL9yi6LvkqcZYU3LmapEE454zBQ==}
engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0}
hasBin: true
peerDependencies:
‘@babel/core’: ‘>=7.0.0-beta.0 <8’ ‘@jest/transform’: ^29.0.0 ‘@jest/types’: ^29.0.0 babel-jest: ^29.0.0 esbuild: ‘*’ jest: ^29.0.0 typescript: ‘>=4.3 <6’
peerDependenciesMeta:
‘@babel/core’:
optional: true
‘@jest/transform’:
optional: true
‘@jest/types’:
optional: true
babel-jest:
optional: true
esbuild:
optional: true

tslib@1.14.1:
resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}

tslib@2.8.1:
resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}

tsutils@3.21.0:
resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
engines: {node: ‘>= 6’}
peerDependencies:
typescript: ‘>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta’

type-check@0.4.0:
resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
engines: {node: ‘>= 0.8.0’}

type-detect@4.0.8:
resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
engines: {node: ‘>=4’}

type-fest@0.20.2:
resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
engines: {node: ‘>=10’}

type-fest@0.21.3:
resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
engines: {node: ‘>=10’}

type-fest@4.39.1:
resolution: {integrity: sha512-uW9qzd66uyHYxwyVBYiwS4Oi0qZyUqwjU+Oevr6ZogYiXt99EOYtwvzMSLw1c3lYo2HzJsep/NB23iEVEgjG/w==}
engines: {node: ‘>=16’}

type-is@2.0.1:
resolution: {integrity: sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==}
engines: {node: ‘>= 0.6’}

type@2.7.3:
resolution: {integrity: sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6×8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==}

typedarray@0.0.6:
resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==}

typescript@4.8.4:
resolution: {integrity: sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==}
engines: {node: ‘>=4.2.0’}
hasBin: true

unc-path-regex@0.1.2:
resolution: {integrity: sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==}
engines: {node: ‘>=0.10.0’}

undertaker-registry@1.0.1:
resolution: {integrity: sha512-UR1khWeAjugW3548EfQmL9Z7pGMlBgXteQpr1IZeZBtnkCJQJIJ1Scj0mb9wQaPvUZ9Q17XqW6TIaPchJkyfqw==}
engines: {node: ‘>= 0.10’}

undertaker@1.3.0:
resolution: {integrity: sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==}
engines: {node: ‘>= 0.10’}

undici-types@6.21.0:
resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}

union-value@1.0.1:
resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==}
engines: {node: ‘>=0.10.0’}

unique-stream@2.3.1:
resolution: {integrity: sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==}

unpipe@1.0.0:
resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
engines: {node: ‘>= 0.8’}

unset-value@1.0.0:
resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==}
engines: {node: ‘>=0.10.0’}

upath@1.2.0:
resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==}
engines: {node: ‘>=4’}

update-browserslist-db@1.1.3:
resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==}
hasBin: true
peerDependencies:
browserslist: ‘>= 4.21.0’

upper-case-first@2.0.2:
resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==}

uri-js@4.4.1:
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}

urix@0.1.0:
resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==}
deprecated: Please see https://github.com/lydell/urix#deprecated

use@3.1.1:
resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==}
engines: {node: ‘>=0.10.0’}

util-deprecate@1.0.2:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}

util@0.12.5:
resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==}

uuid@10.0.0:
resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==}
hasBin: true

v8-to-istanbul@9.3.0:
resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==}
engines: {node: ‘>=10.12.0’}

v8flags@3.2.0:
resolution: {integrity: sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==}
engines: {node: ‘>= 0.10’}

validate-npm-package-license@3.0.4:
resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}

value-or-function@3.0.0:
resolution: {integrity: sha512-jdBB2FrWvQC/pnPtIqcLsMaQgjhdb6B7tk1MMyTKapox+tQZbdRP4uLxu/JY0t7fbfDCUMnuelzEYv5GsxHhdg==}
engines: {node: ‘>= 0.10’}

vary@1.1.2:
resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
engines: {node: ‘>= 0.8’}

vinyl-fs@3.0.3:
resolution: {integrity: sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==}
engines: {node: ‘>= 0.10’}

vinyl-sourcemap@1.1.0:
resolution: {integrity: sha512-NiibMgt6VJGJmyw7vtzhctDcfKch4e4n9TBeoWlirb7FMg9/1Ov9k+A5ZRAtywBpRPiyECvQRQllYM8dECegVA==}
engines: {node: ‘>= 0.10’}

vinyl@2.2.1:
resolution: {integrity: sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==}
engines: {node: ‘>= 0.10’}

walker@1.0.8:
resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==}

which-boxed-primitive@1.1.1:
resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==}
engines: {node: ‘>= 0.4’}

which-collection@1.0.2:
resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==}
engines: {node: ‘>= 0.4’}

which-module@1.0.0:
resolution: {integrity: sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==}

which-typed-array@1.1.19:
resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==}
engines: {node: ‘>= 0.4’}

which@1.3.1:
resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}
hasBin: true

which@2.0.2:
resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
engines: {node: ‘>= 8’}
hasBin: true

word-wrap@1.2.5:
resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
engines: {node: ‘>=0.10.0’}

wrap-ansi@2.1.0:
resolution: {integrity: sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==}
engines: {node: ‘>=0.10.0’}

wrap-ansi@7.0.0:
resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
engines: {node: ‘>=10’}

wrappy@1.0.2:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}

write-file-atomic@4.0.2:
resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==}
engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}

xml2js@0.6.2:
resolution: {integrity: sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==}
engines: {node: ‘>=4.0.0’}

xmlbuilder@11.0.1:
resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==}
engines: {node: ‘>=4.0’}

xtend@4.0.2:
resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
engines: {node: ‘>=0.4’}

y18n@3.2.2:
resolution: {integrity: sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==}

y18n@5.0.8:
resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
engines: {node: ‘>=10’}

yallist@3.1.1:
resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}

yargs-parser@21.1.1:
resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
engines: {node: ‘>=12’}

yargs-parser@5.0.1:
resolution: {integrity: sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==}

yargs@17.7.2:
resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
engines: {node: ‘>=12’}

yargs@7.1.2:
resolution: {integrity: sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==}

yocto-queue@0.1.0:
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
engines: {node: ‘>=10’}

zod-to-json-schema@3.24.5:
resolution: {integrity: sha512-/AuWwMP+YqiPbsJx5D6TfgRTc4kTLjsh5SOcd4bLsfUg2RcEXrFMJl1DGgdHy2aCfsIA/cr/1JM0xcB2GZji8g==}
peerDependencies:
zod: ^3.24.1

zod@3.24.1:
resolution: {integrity: sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==}

zod@3.24.2:
resolution: {integrity: sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==}

snapshots:

‘@ampproject/remapping@2.3.0’:
dependencies:
‘@jridgewell/gen-mapping’: 0.3.8
‘@jridgewell/trace-mapping’: 0.3.25

‘@babel/code-frame@7.26.2’:
dependencies:
‘@babel/helper-validator-identifier’: 7.25.9
js-tokens: 4.0.0
picocolors: 1.1.1

‘@babel/compat-data@7.26.8’: {}

‘@babel/core@7.26.10’:
dependencies:
‘@ampproject/remapping’: 2.3.0
‘@babel/code-frame’: 7.26.2
‘@babel/generator’: 7.27.0
‘@babel/helper-compilation-targets’: 7.27.0
‘@babel/helper-module-transforms’: 7.26.0(@babel/core@7.26.10)
‘@babel/helpers’: 7.27.0
‘@babel/parser’: 7.27.0
‘@babel/template’: 7.27.0
‘@babel/traverse’: 7.27.0
‘@babel/types’: 7.27.0
convert-source-map: 2.0.0
debug: 4.4.0
gensync: 1.0.0-beta.2
json5: 2.2.3
semver: 6.3.1
transitivePeerDependencies:
– supports-color

‘@babel/generator@7.27.0’:
dependencies:
‘@babel/parser’: 7.27.0
‘@babel/types’: 7.27.0
‘@jridgewell/gen-mapping’: 0.3.8
‘@jridgewell/trace-mapping’: 0.3.25
jsesc: 3.1.0

‘@babel/helper-compilation-targets@7.27.0’:
dependencies:
‘@babel/compat-data’: 7.26.8
‘@babel/helper-validator-option’: 7.25.9
browserslist: 4.24.4
lru-cache: 5.1.1
semver: 6.3.1

‘@babel/helper-module-imports@7.25.9’:
dependencies:
‘@babel/traverse’: 7.27.0
‘@babel/types’: 7.27.0
transitivePeerDependencies:
– supports-color

‘@babel/helper-module-transforms@7.26.0(@babel/core@7.26.10)’:
dependencies:
‘@babel/core’: 7.26.10
‘@babel/helper-module-imports’: 7.25.9
‘@babel/helper-validator-identifier’: 7.25.9
‘@babel/traverse’: 7.27.0
transitivePeerDependencies:
– supports-color

‘@babel/helper-plugin-utils@7.26.5’: {}

‘@babel/helper-string-parser@7.25.9’: {}

‘@babel/helper-validator-identifier@7.25.9’: {}

‘@babel/helper-validator-option@7.25.9’: {}

‘@babel/helpers@7.27.0’:
dependencies:
‘@babel/template’: 7.27.0
‘@babel/types’: 7.27.0

‘@babel/parser@7.27.0’:
dependencies:
‘@babel/types’: 7.27.0

‘@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.26.10)’:
dependencies:
‘@babel/core’: 7.26.10
‘@babel/helper-plugin-utils’: 7.26.5

‘@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.26.10)’:
dependencies:
‘@babel/core’: 7.26.10
‘@babel/helper-plugin-utils’: 7.26.5

‘@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.26.10)’:
dependencies:
‘@babel/core’: 7.26.10
‘@babel/helper-plugin-utils’: 7.26.5

‘@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.26.10)’:
dependencies:
‘@babel/core’: 7.26.10
‘@babel/helper-plugin-utils’: 7.26.5

‘@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.10)’:
dependencies:
‘@babel/core’: 7.26.10
‘@babel/helper-plugin-utils’: 7.26.5

‘@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.26.10)’:
dependencies:
‘@babel/core’: 7.26.10
‘@babel/helper-plugin-utils’: 7.26.5

‘@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.26.10)’:
dependencies:
‘@babel/core’: 7.26.10
‘@babel/helper-plugin-utils’: 7.26.5

‘@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.10)’:
dependencies:
‘@babel/core’: 7.26.10
‘@babel/helper-plugin-utils’: 7.26.5

‘@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.26.10)’:
dependencies:
‘@babel/core’: 7.26.10
‘@babel/helper-plugin-utils’: 7.26.5

‘@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.26.10)’:
dependencies:
‘@babel/core’: 7.26.10
‘@babel/helper-plugin-utils’: 7.26.5

‘@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.26.10)’:
dependencies:
‘@babel/core’: 7.26.10
‘@babel/helper-plugin-utils’: 7.26.5

‘@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.26.10)’:
dependencies:
‘@babel/core’: 7.26.10
‘@babel/helper-plugin-utils’: 7.26.5

‘@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.26.10)’:
dependencies:
‘@babel/core’: 7.26.10
‘@babel/helper-plugin-utils’: 7.26.5

‘@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.26.10)’:
dependencies:
‘@babel/core’: 7.26.10
‘@babel/helper-plugin-utils’: 7.26.5

‘@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.26.10)’:
dependencies:
‘@babel/core’: 7.26.10
‘@babel/helper-plugin-utils’: 7.26.5

‘@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.26.10)’:
dependencies:
‘@babel/core’: 7.26.10
‘@babel/helper-plugin-utils’: 7.26.5

‘@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.10)’:
dependencies:
‘@babel/core’: 7.26.10
‘@babel/helper-plugin-utils’: 7.26.5

‘@babel/template@7.27.0’:
dependencies:
‘@babel/code-frame’: 7.26.2
‘@babel/parser’: 7.27.0
‘@babel/types’: 7.27.0

‘@babel/traverse@7.27.0’:
dependencies:
‘@babel/code-frame’: 7.26.2
‘@babel/generator’: 7.27.0
‘@babel/parser’: 7.27.0
‘@babel/template’: 7.27.0
‘@babel/types’: 7.27.0
debug: 4.4.0
globals: 11.12.0
transitivePeerDependencies:
– supports-color

‘@babel/types@7.27.0’:
dependencies:
‘@babel/helper-string-parser’: 7.25.9
‘@babel/helper-validator-identifier’: 7.25.9

‘@bcoe/v8-coverage@0.2.3’: {}

‘@cfworker/json-schema@4.1.1’: {}

‘@eslint-community/eslint-utils@4.5.1(eslint@8.57.1)’:
dependencies:
eslint: 8.57.1
eslint-visitor-keys: 3.4.3

‘@eslint-community/regexpp@4.12.1’: {}

‘@eslint/eslintrc@2.1.4’:
dependencies:
ajv: 6.12.6
debug: 4.4.0
espree: 9.6.1
globals: 13.24.0
ignore: 5.3.2
import-fresh: 3.3.1
js-yaml: 4.1.0
minimatch: 3.1.2
strip-json-comments: 3.1.1
transitivePeerDependencies:
– supports-color

‘@eslint/js@8.57.1’: {}

‘@humanwhocodes/config-array@0.13.0’:
dependencies:
‘@humanwhocodes/object-schema’: 2.0.3
debug: 4.4.0
minimatch: 3.1.2
transitivePeerDependencies:
– supports-color

‘@humanwhocodes/module-importer@1.0.1’: {}

‘@humanwhocodes/object-schema@2.0.3’: {}

‘@istanbuljs/load-nyc-config@1.1.0’:
dependencies:
camelcase: 5.3.1
find-up: 4.1.0
get-package-type: 0.1.0
js-yaml: 3.14.1
resolve-from: 5.0.0

‘@istanbuljs/schema@0.1.3’: {}

‘@jest/console@29.7.0’:
dependencies:
‘@jest/types’: 29.6.3
‘@types/node’: 22.14.0
chalk: 4.1.2
jest-message-util: 29.7.0
jest-util: 29.7.0
slash: 3.0.0

‘@jest/core@29.7.0’:
dependencies:
‘@jest/console’: 29.7.0
‘@jest/reporters’: 29.7.0
‘@jest/test-result’: 29.7.0
‘@jest/transform’: 29.7.0
‘@jest/types’: 29.6.3
‘@types/node’: 22.14.0
ansi-escapes: 4.3.2
chalk: 4.1.2
ci-info: 3.9.0
exit: 0.1.2
graceful-fs: 4.2.11
jest-changed-files: 29.7.0
jest-config: 29.7.0(@types/node@22.14.0)
jest-haste-map: 29.7.0
jest-message-util: 29.7.0
jest-regex-util: 29.6.3
jest-resolve: 29.7.0
jest-resolve-dependencies: 29.7.0
jest-runner: 29.7.0
jest-runtime: 29.7.0
jest-snapshot: 29.7.0
jest-util: 29.7.0
jest-validate: 29.7.0
jest-watcher: 29.7.0
micromatch: 4.0.8
pretty-format: 29.7.0
slash: 3.0.0
strip-ansi: 6.0.1
transitivePeerDependencies:
– babel-plugin-macros
– supports-color
– ts-node

‘@jest/environment@29.7.0’:
dependencies:
‘@jest/fake-timers’: 29.7.0
‘@jest/types’: 29.6.3
‘@types/node’: 22.14.0
jest-mock: 29.7.0

‘@jest/expect-utils@29.7.0’:
dependencies:
jest-get-type: 29.6.3

‘@jest/expect@29.7.0’:
dependencies:
expect: 29.7.0
jest-snapshot: 29.7.0
transitivePeerDependencies:
– supports-color

‘@jest/fake-timers@29.7.0’:
dependencies:
‘@jest/types’: 29.6.3
‘@sinonjs/fake-timers’: 10.3.0
‘@types/node’: 22.14.0
jest-message-util: 29.7.0
jest-mock: 29.7.0
jest-util: 29.7.0

‘@jest/globals@29.7.0’:
dependencies:
‘@jest/environment’: 29.7.0
‘@jest/expect’: 29.7.0
‘@jest/types’: 29.6.3
jest-mock: 29.7.0
transitivePeerDependencies:
– supports-color

‘@jest/reporters@29.7.0’:
dependencies:
‘@bcoe/v8-coverage’: 0.2.3
‘@jest/console’: 29.7.0
‘@jest/test-result’: 29.7.0
‘@jest/transform’: 29.7.0
‘@jest/types’: 29.6.3
‘@jridgewell/trace-mapping’: 0.3.25
‘@types/node’: 22.14.0
chalk: 4.1.2
collect-v8-coverage: 1.0.2
exit: 0.1.2
glob: 7.2.3
graceful-fs: 4.2.11
istanbul-lib-coverage: 3.2.2
istanbul-lib-instrument: 6.0.3
istanbul-lib-report: 3.0.1
istanbul-lib-source-maps: 4.0.1
istanbul-reports: 3.1.7
jest-message-util: 29.7.0
jest-util: 29.7.0
jest-worker: 29.7.0
slash: 3.0.0
string-length: 4.0.2
strip-ansi: 6.0.1
v8-to-istanbul: 9.3.0
transitivePeerDependencies:
– supports-color

‘@jest/schemas@29.6.3’:
dependencies:
‘@sinclair/typebox’: 0.27.8

‘@jest/source-map@29.6.3’:
dependencies:
‘@jridgewell/trace-mapping’: 0.3.25
callsites: 3.1.0
graceful-fs: 4.2.11

‘@jest/test-result@29.7.0’:
dependencies:
‘@jest/console’: 29.7.0
‘@jest/types’: 29.6.3
‘@types/istanbul-lib-coverage’: 2.0.6
collect-v8-coverage: 1.0.2

‘@jest/test-sequencer@29.7.0’:
dependencies:
‘@jest/test-result’: 29.7.0
graceful-fs: 4.2.11
jest-haste-map: 29.7.0
slash: 3.0.0

‘@jest/transform@29.7.0’:
dependencies:
‘@babel/core’: 7.26.10
‘@jest/types’: 29.6.3
‘@jridgewell/trace-mapping’: 0.3.25
babel-plugin-istanbul: 6.1.1
chalk: 4.1.2
convert-source-map: 2.0.0
fast-json-stable-stringify: 2.1.0
graceful-fs: 4.2.11
jest-haste-map: 29.7.0
jest-regex-util: 29.6.3
jest-util: 29.7.0
micromatch: 4.0.8
pirates: 4.0.7
slash: 3.0.0
write-file-atomic: 4.0.2
transitivePeerDependencies:
– supports-color

‘@jest/types@29.6.3’:
dependencies:
‘@jest/schemas’: 29.6.3
‘@types/istanbul-lib-coverage’: 2.0.6
‘@types/istanbul-reports’: 3.0.4
‘@types/node’: 22.14.0
‘@types/yargs’: 17.0.33
chalk: 4.1.2

‘@jridgewell/gen-mapping@0.3.8’:
dependencies:
‘@jridgewell/set-array’: 1.2.1
‘@jridgewell/sourcemap-codec’: 1.5.0
‘@jridgewell/trace-mapping’: 0.3.25

‘@jridgewell/resolve-uri@3.1.2’: {}

‘@jridgewell/set-array@1.2.1’: {}

‘@jridgewell/sourcemap-codec@1.5.0’: {}

‘@jridgewell/trace-mapping@0.3.25’:
dependencies:
‘@jridgewell/resolve-uri’: 3.1.2
‘@jridgewell/sourcemap-codec’: 1.5.0

‘@langchain/core@0.3.43’:
dependencies:
‘@cfworker/json-schema’: 4.1.1
ansi-styles: 5.2.0
camelcase: 6.3.0
decamelize: 1.2.0
js-tiktoken: 1.0.19
langsmith: 0.3.15
mustache: 4.2.0
p-queue: 6.6.2
p-retry: 4.6.2
uuid: 10.0.0
zod: 3.24.2
zod-to-json-schema: 3.24.5(zod@3.24.2)
transitivePeerDependencies:
– openai

‘@modelcontextprotocol/sdk@1.8.0’:
dependencies:
content-type: 1.0.5
cors: 2.8.5
cross-spawn: 7.0.6
eventsource: 3.0.6
express: 5.1.0
express-rate-limit: 7.5.0(express@5.1.0)
pkce-challenge: 4.1.0
raw-body: 3.0.0
zod: 3.24.2
zod-to-json-schema: 3.24.5(zod@3.24.2)
transitivePeerDependencies:
– supports-color

‘@n8n/tournament@1.0.6’:
dependencies:
‘@n8n_io/riot-tmpl’: 4.0.1
ast-types: 0.16.1
esprima-next: 5.8.4
recast: 0.22.0

‘@n8n_io/riot-tmpl@4.0.0’:
dependencies:
eslint-config-riot: 1.0.0

‘@n8n_io/riot-tmpl@4.0.1’:
dependencies:
eslint-config-riot: 1.0.0

‘@nodelib/fs.scandir@2.1.5’:
dependencies:
‘@nodelib/fs.stat’: 2.0.5
run-parallel: 1.2.0

‘@nodelib/fs.stat@2.0.5’: {}

‘@nodelib/fs.walk@1.2.8’:
dependencies:
‘@nodelib/fs.scandir’: 2.1.5
fastq: 1.19.1

‘@sinclair/typebox@0.27.8’: {}

‘@sinonjs/commons@3.0.1’:
dependencies:
type-detect: 4.0.8

‘@sinonjs/fake-timers@10.3.0’:
dependencies:
‘@sinonjs/commons’: 3.0.1

‘@types/babel__core@7.20.5’:
dependencies:
‘@babel/parser’: 7.27.0
‘@babel/types’: 7.27.0
‘@types/babel__generator’: 7.27.0
‘@types/babel__template’: 7.4.4
‘@types/babel__traverse’: 7.20.7

‘@types/babel__generator@7.27.0’:
dependencies:
‘@babel/types’: 7.27.0

‘@types/babel__template@7.4.4’:
dependencies:
‘@babel/parser’: 7.27.0
‘@babel/types’: 7.27.0

‘@types/babel__traverse@7.20.7’:
dependencies:
‘@babel/types’: 7.27.0

‘@types/graceful-fs@4.1.9’:
dependencies:
‘@types/node’: 22.14.0

‘@types/istanbul-lib-coverage@2.0.6’: {}

‘@types/istanbul-lib-report@3.0.3’:
dependencies:
‘@types/istanbul-lib-coverage’: 2.0.6

‘@types/istanbul-reports@3.0.4’:
dependencies:
‘@types/istanbul-lib-report’: 3.0.3

‘@types/jest@29.5.14’:
dependencies:
expect: 29.7.0
pretty-format: 29.7.0

‘@types/json-schema@7.0.15’: {}

‘@types/node@22.14.0’:
dependencies:
undici-types: 6.21.0

‘@types/retry@0.12.0’: {}

‘@types/semver@7.7.0’: {}

‘@types/stack-utils@2.0.3’: {}

‘@types/uuid@10.0.0’: {}

‘@types/yargs-parser@21.0.3’: {}

‘@types/yargs@17.0.33’:
dependencies:
‘@types/yargs-parser’: 21.0.3

‘@typescript-eslint/parser@5.45.1(eslint@8.57.1)(typescript@4.8.4)’:
dependencies:
‘@typescript-eslint/scope-manager’: 5.45.1
‘@typescript-eslint/types’: 5.45.1
‘@typescript-eslint/typescript-estree’: 5.45.1(typescript@4.8.4)
debug: 4.4.0
eslint: 8.57.1
optionalDependencies:
typescript: 4.8.4
transitivePeerDependencies:
– supports-color

‘@typescript-eslint/scope-manager@5.45.1’:
dependencies:
‘@typescript-eslint/types’: 5.45.1
‘@typescript-eslint/visitor-keys’: 5.45.1

‘@typescript-eslint/scope-manager@6.21.0’:
dependencies:
‘@typescript-eslint/types’: 6.21.0
‘@typescript-eslint/visitor-keys’: 6.21.0

‘@typescript-eslint/types@5.45.1’: {}

‘@typescript-eslint/types@6.21.0’: {}

‘@typescript-eslint/typescript-estree@5.45.1(typescript@4.8.4)’:
dependencies:
‘@typescript-eslint/types’: 5.45.1
‘@typescript-eslint/visitor-keys’: 5.45.1
debug: 4.4.0
globby: 11.1.0
is-glob: 4.0.3
semver: 7.7.1
tsutils: 3.21.0(typescript@4.8.4)
optionalDependencies:
typescript: 4.8.4
transitivePeerDependencies:
– supports-color

‘@typescript-eslint/typescript-estree@6.21.0(typescript@4.8.4)’:
dependencies:
‘@typescript-eslint/types’: 6.21.0
‘@typescript-eslint/visitor-keys’: 6.21.0
debug: 4.4.0
globby: 11.1.0
is-glob: 4.0.3
minimatch: 9.0.3
semver: 7.7.1
ts-api-utils: 1.4.3(typescript@4.8.4)
optionalDependencies:
typescript: 4.8.4
transitivePeerDependencies:
– supports-color

‘@typescript-eslint/utils@6.21.0(eslint@8.57.1)(typescript@4.8.4)’:
dependencies:
‘@eslint-community/eslint-utils’: 4.5.1(eslint@8.57.1)
‘@types/json-schema’: 7.0.15
‘@types/semver’: 7.7.0
‘@typescript-eslint/scope-manager’: 6.21.0
‘@typescript-eslint/types’: 6.21.0
‘@typescript-eslint/typescript-estree’: 6.21.0(typescript@4.8.4)
eslint: 8.57.1
semver: 7.7.1
transitivePeerDependencies:
– supports-color
– typescript

‘@typescript-eslint/visitor-keys@5.45.1’:
dependencies:
‘@typescript-eslint/types’: 5.45.1
eslint-visitor-keys: 3.4.3

‘@typescript-eslint/visitor-keys@6.21.0’:
dependencies:
‘@typescript-eslint/types’: 6.21.0
eslint-visitor-keys: 3.4.3

‘@ungap/structured-clone@1.3.0’: {}

accepts@2.0.0:
dependencies:
mime-types: 3.0.1
negotiator: 1.0.0

acorn-jsx@5.3.2(acorn@8.14.1):
dependencies:
acorn: 8.14.1

acorn@8.14.1: {}

ajv@6.12.6:
dependencies:
fast-deep-equal: 3.1.3
fast-json-stable-stringify: 2.1.0
json-schema-traverse: 0.4.1
uri-js: 4.4.1

ansi-colors@1.1.0:
dependencies:
ansi-wrap: 0.1.0

ansi-escapes@4.3.2:
dependencies:
type-fest: 0.21.3

ansi-gray@0.1.1:
dependencies:
ansi-wrap: 0.1.0

ansi-regex@2.1.1: {}

ansi-regex@5.0.1: {}

ansi-styles@4.3.0:
dependencies:
color-convert: 2.0.1

ansi-styles@5.2.0: {}

ansi-wrap@0.1.0: {}

anymatch@2.0.0:
dependencies:
micromatch: 3.1.10
normalize-path: 2.1.1
transitivePeerDependencies:
– supports-color

anymatch@3.1.3:
dependencies:
normalize-path: 3.0.0
picomatch: 2.3.1

append-buffer@1.0.2:
dependencies:
buffer-equal: 1.0.1

archy@1.0.0: {}

argparse@1.0.10:
dependencies:
sprintf-js: 1.0.3

argparse@2.0.1: {}

arr-diff@4.0.0: {}

arr-filter@1.1.2:
dependencies:
make-iterator: 1.0.1

arr-flatten@1.1.0: {}

arr-map@2.0.2:
dependencies:
make-iterator: 1.0.1

arr-union@3.1.0: {}

array-each@1.0.1: {}

array-initial@1.1.0:
dependencies:
array-slice: 1.1.0
is-number: 4.0.0

array-last@1.3.0:
dependencies:
is-number: 4.0.0

array-slice@1.1.0: {}

array-sort@1.0.0:
dependencies:
default-compare: 1.0.0
get-value: 2.0.6
kind-of: 5.1.0

array-union@2.1.0: {}

array-unique@0.3.2: {}

assert@2.1.0:
dependencies:
call-bind: 1.0.8
is-nan: 1.3.2
object-is: 1.1.6
object.assign: 4.1.7
util: 0.12.5

assign-symbols@1.0.0: {}

ast-types@0.15.2:
dependencies:
tslib: 2.8.1

ast-types@0.16.1:
dependencies:
tslib: 2.8.1

async-done@1.3.2:
dependencies:
end-of-stream: 1.4.4
once: 1.4.0
process-nextick-args: 2.0.1
stream-exhaust: 1.0.2

async-each@1.0.6: {}

async-settle@1.0.0:
dependencies:
async-done: 1.3.2

async@3.2.6: {}

asynckit@0.4.0: {}

atob@2.1.2: {}

available-typed-arrays@1.0.7:
dependencies:
possible-typed-array-names: 1.1.0

axios@1.8.2:
dependencies:
follow-redirects: 1.15.9
form-data: 4.0.0
proxy-from-env: 1.1.0
transitivePeerDependencies:
– debug

babel-jest@29.7.0(@babel/core@7.26.10):
dependencies:
‘@babel/core’: 7.26.10
‘@jest/transform’: 29.7.0
‘@types/babel__core’: 7.20.5
babel-plugin-istanbul: 6.1.1
babel-preset-jest: 29.6.3(@babel/core@7.26.10)
chalk: 4.1.2
graceful-fs: 4.2.11
slash: 3.0.0
transitivePeerDependencies:
– supports-color

babel-plugin-istanbul@6.1.1:
dependencies:
‘@babel/helper-plugin-utils’: 7.26.5
‘@istanbuljs/load-nyc-config’: 1.1.0
‘@istanbuljs/schema’: 0.1.3
istanbul-lib-instrument: 5.2.1
test-exclude: 6.0.0
transitivePeerDependencies:
– supports-color

babel-plugin-jest-hoist@29.6.3:
dependencies:
‘@babel/template’: 7.27.0
‘@babel/types’: 7.27.0
‘@types/babel__core’: 7.20.5
‘@types/babel__traverse’: 7.20.7

babel-preset-current-node-syntax@1.1.0(@babel/core@7.26.10):
dependencies:
‘@babel/core’: 7.26.10
‘@babel/plugin-syntax-async-generators’: 7.8.4(@babel/core@7.26.10)
‘@babel/plugin-syntax-bigint’: 7.8.3(@babel/core@7.26.10)
‘@babel/plugin-syntax-class-properties’: 7.12.13(@babel/core@7.26.10)
‘@babel/plugin-syntax-class-static-block’: 7.14.5(@babel/core@7.26.10)
‘@babel/plugin-syntax-import-attributes’: 7.26.0(@babel/core@7.26.10)
‘@babel/plugin-syntax-import-meta’: 7.10.4(@babel/core@7.26.10)
‘@babel/plugin-syntax-json-strings’: 7.8.3(@babel/core@7.26.10)
‘@babel/plugin-syntax-logical-assignment-operators’: 7.10.4(@babel/core@7.26.10)
‘@babel/plugin-syntax-nullish-coalescing-operator’: 7.8.3(@babel/core@7.26.10)
‘@babel/plugin-syntax-numeric-separator’: 7.10.4(@babel/core@7.26.10)
‘@babel/plugin-syntax-object-rest-spread’: 7.8.3(@babel/core@7.26.10)
‘@babel/plugin-syntax-optional-catch-binding’: 7.8.3(@babel/core@7.26.10)
‘@babel/plugin-syntax-optional-chaining’: 7.8.3(@babel/core@7.26.10)
‘@babel/plugin-syntax-private-property-in-object’: 7.14.5(@babel/core@7.26.10)
‘@babel/plugin-syntax-top-level-await’: 7.14.5(@babel/core@7.26.10)

babel-preset-jest@29.6.3(@babel/core@7.26.10):
dependencies:
‘@babel/core’: 7.26.10
babel-plugin-jest-hoist: 29.6.3
babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.10)

bach@1.2.0:
dependencies:
arr-filter: 1.1.2
arr-flatten: 1.1.0
arr-map: 2.0.2
array-each: 1.0.1
array-initial: 1.1.0
array-last: 1.3.0
async-done: 1.3.2
async-settle: 1.0.0
now-and-later: 2.0.1

balanced-match@1.0.2: {}

base64-js@1.5.1: {}

base@0.11.2:
dependencies:
cache-base: 1.0.1
class-utils: 0.3.6
component-emitter: 1.3.1
define-property: 1.0.0
isobject: 3.0.1
mixin-deep: 1.3.2
pascalcase: 0.1.1

binary-extensions@1.13.1: {}

bindings@1.5.0:
dependencies:
file-uri-to-path: 1.0.0
optional: true

body-parser@2.2.0:
dependencies:
bytes: 3.1.2
content-type: 1.0.5
debug: 4.4.0
http-errors: 2.0.0
iconv-lite: 0.6.3
on-finished: 2.4.1
qs: 6.14.0
raw-body: 3.0.0
type-is: 2.0.1
transitivePeerDependencies:
– supports-color

brace-expansion@1.1.11:
dependencies:
balanced-match: 1.0.2
concat-map: 0.0.1

brace-expansion@2.0.1:
dependencies:
balanced-match: 1.0.2

braces@2.3.2:
dependencies:
arr-flatten: 1.1.0
array-unique: 0.3.2
extend-shallow: 2.0.1
fill-range: 4.0.0
isobject: 3.0.1
repeat-element: 1.1.4
snapdragon: 0.8.2
snapdragon-node: 2.1.1
split-string: 3.1.0
to-regex: 3.0.2
transitivePeerDependencies:
– supports-color

braces@3.0.3:
dependencies:
fill-range: 7.1.1

browserslist@4.24.4:
dependencies:
caniuse-lite: 1.0.30001710
electron-to-chromium: 1.5.132
node-releases: 2.0.19
update-browserslist-db: 1.1.3(browserslist@4.24.4)

bs-logger@0.2.6:
dependencies:
fast-json-stable-stringify: 2.1.0

bser@2.1.1:
dependencies:
node-int64: 0.4.0

buffer-equal@1.0.1: {}

buffer-from@1.1.2: {}

bytes@3.1.2: {}

cache-base@1.0.1:
dependencies:
collection-visit: 1.0.0
component-emitter: 1.3.1
get-value: 2.0.6
has-value: 1.0.0
isobject: 3.0.1
set-value: 2.0.1
to-object-path: 0.3.0
union-value: 1.0.1
unset-value: 1.0.0

call-bind-apply-helpers@1.0.2:
dependencies:
es-errors: 1.3.0
function-bind: 1.1.2

call-bind@1.0.8:
dependencies:
call-bind-apply-helpers: 1.0.2
es-define-property: 1.0.1
get-intrinsic: 1.3.0
set-function-length: 1.2.2

call-bound@1.0.4:
dependencies:
call-bind-apply-helpers: 1.0.2
get-intrinsic: 1.3.0

callsites@3.1.0: {}

camel-case@4.1.2:
dependencies:
pascal-case: 3.1.2
tslib: 2.8.1

camelcase@3.0.0: {}

camelcase@5.3.1: {}

camelcase@6.3.0: {}

caniuse-lite@1.0.30001710: {}

chalk@4.1.2:
dependencies:
ansi-styles: 4.3.0
supports-color: 7.2.0

char-regex@1.0.2: {}

charenc@0.0.2: {}

chokidar@2.1.8:
dependencies:
anymatch: 2.0.0
async-each: 1.0.6
braces: 2.3.2
glob-parent: 3.1.0
inherits: 2.0.4
is-binary-path: 1.0.1
is-glob: 4.0.3
normalize-path: 3.0.0
path-is-absolute: 1.0.1
readdirp: 2.2.1
upath: 1.2.0
optionalDependencies:
fsevents: 1.2.13
transitivePeerDependencies:
– supports-color

ci-info@3.9.0: {}

cjs-module-lexer@1.4.3: {}

class-utils@0.3.6:
dependencies:
arr-union: 3.1.0
define-property: 0.2.5
isobject: 3.0.1
static-extend: 0.1.2

cliui@3.2.0:
dependencies:
string-width: 1.0.2
strip-ansi: 3.0.1
wrap-ansi: 2.1.0

cliui@8.0.1:
dependencies:
string-width: 4.2.3
strip-ansi: 6.0.1
wrap-ansi: 7.0.0

clone-buffer@1.0.0: {}

clone-stats@1.0.0: {}

clone@2.1.2: {}

cloneable-readable@1.1.3:
dependencies:
inherits: 2.0.4
process-nextick-args: 2.0.1
readable-stream: 2.3.8

co@4.6.0: {}

code-point-at@1.1.0: {}

collect-v8-coverage@1.0.2: {}

collection-map@1.0.0:
dependencies:
arr-map: 2.0.2
for-own: 1.0.0
make-iterator: 1.0.1

collection-visit@1.0.0:
dependencies:
map-visit: 1.0.0
object-visit: 1.0.1

color-convert@2.0.1:
dependencies:
color-name: 1.1.4

color-name@1.1.4: {}

color-support@1.1.3: {}

combined-stream@1.0.8:
dependencies:
delayed-stream: 1.0.0

component-emitter@1.3.1: {}

concat-map@0.0.1: {}

concat-stream@1.6.2:
dependencies:
buffer-from: 1.1.2
inherits: 2.0.4
readable-stream: 2.3.8
typedarray: 0.0.6

console-table-printer@2.12.1:
dependencies:
simple-wcswidth: 1.0.1

content-disposition@1.0.0:
dependencies:
safe-buffer: 5.2.1

content-type@1.0.5: {}

convert-source-map@1.9.0: {}

convert-source-map@2.0.0: {}

cookie-signature@1.2.2: {}

cookie@0.7.2: {}

copy-descriptor@0.1.1: {}

copy-props@2.0.5:
dependencies:
each-props: 1.3.2
is-plain-object: 5.0.0

core-util-is@1.0.3: {}

cors@2.8.5:
dependencies:
object-assign: 4.1.1
vary: 1.1.2

create-jest@29.7.0(@types/node@22.14.0):
dependencies:
‘@jest/types’: 29.6.3
chalk: 4.1.2
exit: 0.1.2
graceful-fs: 4.2.11
jest-config: 29.7.0(@types/node@22.14.0)
jest-util: 29.7.0
prompts: 2.4.2
transitivePeerDependencies:
– ‘@types/node’
– babel-plugin-macros
– supports-color
– ts-node

cross-spawn@7.0.6:
dependencies:
path-key: 3.1.1
shebang-command: 2.0.0
which: 2.0.2

crypt@0.0.2: {}

d@1.0.2:
dependencies:
es5-ext: 0.10.64
type: 2.7.3

debug@2.6.9:
dependencies:
ms: 2.0.0

debug@4.4.0:
dependencies:
ms: 2.1.3

decamelize@1.2.0: {}

decode-uri-component@0.2.2: {}

dedent@1.5.3: {}

deep-equal@2.2.0:
dependencies:
call-bind: 1.0.8
es-get-iterator: 1.1.3
get-intrinsic: 1.3.0
is-arguments: 1.2.0
is-array-buffer: 3.0.5
is-date-object: 1.1.0
is-regex: 1.2.1
is-shared-array-buffer: 1.0.4
isarray: 2.0.5
object-is: 1.1.6
object-keys: 1.1.1
object.assign: 4.1.7
regexp.prototype.flags: 1.5.4
side-channel: 1.1.0
which-boxed-primitive: 1.1.1
which-collection: 1.0.2
which-typed-array: 1.1.19

deep-is@0.1.4: {}

deepmerge@4.3.1: {}

default-compare@1.0.0:
dependencies:
kind-of: 5.1.0

default-resolution@2.0.0: {}

define-data-property@1.1.4:
dependencies:
es-define-property: 1.0.1
es-errors: 1.3.0
gopd: 1.2.0

define-properties@1.2.1:
dependencies:
define-data-property: 1.1.4
has-property-descriptors: 1.0.2
object-keys: 1.1.1

define-property@0.2.5:
dependencies:
is-descriptor: 0.1.7

define-property@1.0.0:
dependencies:
is-descriptor: 1.0.3

define-property@2.0.2:
dependencies:
is-descriptor: 1.0.3
isobject: 3.0.1

delayed-stream@1.0.0: {}

depd@2.0.0: {}

detect-file@1.0.0: {}

detect-newline@3.1.0: {}

diff-sequences@29.6.3: {}

dir-glob@3.0.1:
dependencies:
path-type: 4.0.0

doctrine@3.0.0:
dependencies:
esutils: 2.0.3

dunder-proto@1.0.1:
dependencies:
call-bind-apply-helpers: 1.0.2
es-errors: 1.3.0
gopd: 1.2.0

duplexify@3.7.1:
dependencies:
end-of-stream: 1.4.4
inherits: 2.0.4
readable-stream: 2.3.8
stream-shift: 1.0.3

each-props@1.3.2:
dependencies:
is-plain-object: 2.0.4
object.defaults: 1.1.0

ee-first@1.1.1: {}

ejs@3.1.10:
dependencies:
jake: 10.9.2

electron-to-chromium@1.5.132: {}

emittery@0.13.1: {}

emoji-regex@8.0.0: {}

encodeurl@2.0.0: {}

end-of-stream@1.4.4:
dependencies:
once: 1.4.0

error-ex@1.3.2:
dependencies:
is-arrayish: 0.2.1

es-define-property@1.0.1: {}

es-errors@1.3.0: {}

es-get-iterator@1.1.3:
dependencies:
call-bind: 1.0.8
get-intrinsic: 1.3.0
has-symbols: 1.1.0
is-arguments: 1.2.0
is-map: 2.0.3
is-set: 2.0.3
is-string: 1.1.1
isarray: 2.0.5
stop-iteration-iterator: 1.1.0

es-object-atoms@1.1.1:
dependencies:
es-errors: 1.3.0

es5-ext@0.10.64:
dependencies:
es6-iterator: 2.0.3
es6-symbol: 3.1.4
esniff: 2.0.1
next-tick: 1.1.0

es6-iterator@2.0.3:
dependencies:
d: 1.0.2
es5-ext: 0.10.64
es6-symbol: 3.1.4

es6-symbol@3.1.4:
dependencies:
d: 1.0.2
ext: 1.7.0

es6-weak-map@2.0.3:
dependencies:
d: 1.0.2
es5-ext: 0.10.64
es6-iterator: 2.0.3
es6-symbol: 3.1.4

escalade@3.2.0: {}

escape-html@1.0.3: {}

escape-string-regexp@2.0.0: {}

escape-string-regexp@4.0.0: {}

eslint-config-riot@1.0.0: {}

eslint-plugin-local@1.0.0: {}

eslint-plugin-n8n-nodes-base@1.16.3(eslint@8.57.1)(typescript@4.8.4):
dependencies:
‘@typescript-eslint/utils’: 6.21.0(eslint@8.57.1)(typescript@4.8.4)
camel-case: 4.1.2
eslint-plugin-local: 1.0.0
indefinite: 2.5.1
pascal-case: 3.1.2
pluralize: 8.0.0
sentence-case: 3.0.4
title-case: 3.0.3
transitivePeerDependencies:
– eslint
– supports-color
– typescript

eslint-scope@7.2.2:
dependencies:
esrecurse: 4.3.0
estraverse: 5.3.0

eslint-visitor-keys@3.4.3: {}

eslint@8.57.1:
dependencies:
‘@eslint-community/eslint-utils’: 4.5.1(eslint@8.57.1)
‘@eslint-community/regexpp’: 4.12.1
‘@eslint/eslintrc’: 2.1.4
‘@eslint/js’: 8.57.1
‘@humanwhocodes/config-array’: 0.13.0
‘@humanwhocodes/module-importer’: 1.0.1
‘@nodelib/fs.walk’: 1.2.8
‘@ungap/structured-clone’: 1.3.0
ajv: 6.12.6
chalk: 4.1.2
cross-spawn: 7.0.6
debug: 4.4.0
doctrine: 3.0.0
escape-string-regexp: 4.0.0
eslint-scope: 7.2.2
eslint-visitor-keys: 3.4.3
espree: 9.6.1
esquery: 1.6.0
esutils: 2.0.3
fast-deep-equal: 3.1.3
file-entry-cache: 6.0.1
find-up: 5.0.0
glob-parent: 6.0.2
globals: 13.24.0
graphemer: 1.4.0
ignore: 5.3.2
imurmurhash: 0.1.4
is-glob: 4.0.3
is-path-inside: 3.0.3
js-yaml: 4.1.0
json-stable-stringify-without-jsonify: 1.0.1
levn: 0.4.1
lodash.merge: 4.6.2
minimatch: 3.1.2
natural-compare: 1.4.0
optionator: 0.9.4
strip-ansi: 6.0.1
text-table: 0.2.0
transitivePeerDependencies:
– supports-color

esniff@2.0.1:
dependencies:
d: 1.0.2
es5-ext: 0.10.64
event-emitter: 0.3.5
type: 2.7.3

espree@9.6.1:
dependencies:
acorn: 8.14.1
acorn-jsx: 5.3.2(acorn@8.14.1)
eslint-visitor-keys: 3.4.3

esprima-next@5.8.4: {}

esprima@4.0.1: {}

esquery@1.6.0:
dependencies:
estraverse: 5.3.0

esrecurse@4.3.0:
dependencies:
estraverse: 5.3.0

estraverse@5.3.0: {}

esutils@2.0.3: {}

etag@1.8.1: {}

event-emitter@0.3.5:
dependencies:
d: 1.0.2
es5-ext: 0.10.64

eventemitter3@4.0.7: {}

eventsource-parser@3.0.1: {}

eventsource@3.0.6:
dependencies:
eventsource-parser: 3.0.1

execa@5.1.1:
dependencies:
cross-spawn: 7.0.6
get-stream: 6.0.1
human-signals: 2.1.0
is-stream: 2.0.1
merge-stream: 2.0.0
npm-run-path: 4.0.1
onetime: 5.1.2
signal-exit: 3.0.7
strip-final-newline: 2.0.0

exit@0.1.2: {}

expand-brackets@2.1.4:
dependencies:
debug: 2.6.9
define-property: 0.2.5
extend-shallow: 2.0.1
posix-character-classes: 0.1.1
regex-not: 1.0.2
snapdragon: 0.8.2
to-regex: 3.0.2
transitivePeerDependencies:
– supports-color

expand-tilde@2.0.2:
dependencies:
homedir-polyfill: 1.0.3

expect@29.7.0:
dependencies:
‘@jest/expect-utils’: 29.7.0
jest-get-type: 29.6.3
jest-matcher-utils: 29.7.0
jest-message-util: 29.7.0
jest-util: 29.7.0

express-rate-limit@7.5.0(express@5.1.0):
dependencies:
express: 5.1.0

express@5.1.0:
dependencies:
accepts: 2.0.0
body-parser: 2.2.0
content-disposition: 1.0.0
content-type: 1.0.5
cookie: 0.7.2
cookie-signature: 1.2.2
debug: 4.4.0
encodeurl: 2.0.0
escape-html: 1.0.3
etag: 1.8.1
finalhandler: 2.1.0
fresh: 2.0.0
http-errors: 2.0.0
merge-descriptors: 2.0.0
mime-types: 3.0.1
on-finished: 2.4.1
once: 1.4.0
parseurl: 1.3.3
proxy-addr: 2.0.7
qs: 6.14.0
range-parser: 1.2.1
router: 2.2.0
send: 1.2.0
serve-static: 2.2.0
statuses: 2.0.1
type-is: 2.0.1
vary: 1.1.2
transitivePeerDependencies:
– supports-color

ext@1.7.0:
dependencies:
type: 2.7.3

extend-shallow@2.0.1:
dependencies:
is-extendable: 0.1.1

extend-shallow@3.0.2:
dependencies:
assign-symbols: 1.0.0
is-extendable: 1.0.1

extend@3.0.2: {}

extglob@2.0.4:
dependencies:
array-unique: 0.3.2
define-property: 1.0.0
expand-brackets: 2.1.4
extend-shallow: 2.0.1
fragment-cache: 0.2.1
regex-not: 1.0.2
snapdragon: 0.8.2
to-regex: 3.0.2
transitivePeerDependencies:
– supports-color

fancy-log@1.3.3:
dependencies:
ansi-gray: 0.1.1
color-support: 1.1.3
parse-node-version: 1.0.1
time-stamp: 1.1.0

fast-deep-equal@3.1.3: {}

fast-glob@3.3.3:
dependencies:
‘@nodelib/fs.stat’: 2.0.5
‘@nodelib/fs.walk’: 1.2.8
glob-parent: 5.1.2
merge2: 1.4.1
micromatch: 4.0.8

fast-json-stable-stringify@2.1.0: {}

fast-levenshtein@1.1.4: {}

fast-levenshtein@2.0.6: {}

fastq@1.19.1:
dependencies:
reusify: 1.1.0

fb-watchman@2.0.2:
dependencies:
bser: 2.1.1

file-entry-cache@6.0.1:
dependencies:
flat-cache: 3.2.0

file-uri-to-path@1.0.0:
optional: true

filelist@1.0.4:
dependencies:
minimatch: 5.1.6

fill-range@4.0.0:
dependencies:
extend-shallow: 2.0.1
is-number: 3.0.0
repeat-string: 1.6.1
to-regex-range: 2.1.1

fill-range@7.1.1:
dependencies:
to-regex-range: 5.0.1

finalhandler@2.1.0:
dependencies:
debug: 4.4.0
encodeurl: 2.0.0
escape-html: 1.0.3
on-finished: 2.4.1
parseurl: 1.3.3
statuses: 2.0.1
transitivePeerDependencies:
– supports-color

find-up@1.1.2:
dependencies:
path-exists: 2.1.0
pinkie-promise: 2.0.1

find-up@4.1.0:
dependencies:
locate-path: 5.0.0
path-exists: 4.0.0

find-up@5.0.0:
dependencies:
locate-path: 6.0.0
path-exists: 4.0.0

findup-sync@2.0.0:
dependencies:
detect-file: 1.0.0
is-glob: 3.1.0
micromatch: 3.1.10
resolve-dir: 1.0.1
transitivePeerDependencies:
– supports-color

findup-sync@3.0.0:
dependencies:
detect-file: 1.0.0
is-glob: 4.0.3
micromatch: 3.1.10
resolve-dir: 1.0.1
transitivePeerDependencies:
– supports-color

fined@1.2.0:
dependencies:
expand-tilde: 2.0.2
is-plain-object: 2.0.4
object.defaults: 1.1.0
object.pick: 1.3.0
parse-filepath: 1.0.2

flagged-respawn@1.0.1: {}

flat-cache@3.2.0:
dependencies:
flatted: 3.3.3
keyv: 4.5.4
rimraf: 3.0.2

flatted@3.3.3: {}

flush-write-stream@1.1.1:
dependencies:
inherits: 2.0.4
readable-stream: 2.3.8

follow-redirects@1.15.9: {}

for-each@0.3.5:
dependencies:
is-callable: 1.2.7

for-in@1.0.2: {}

for-own@1.0.0:
dependencies:
for-in: 1.0.2

form-data@4.0.0:
dependencies:
asynckit: 0.4.0
combined-stream: 1.0.8
mime-types: 2.1.35

forwarded@0.2.0: {}

fragment-cache@0.2.1:
dependencies:
map-cache: 0.2.2

fresh@2.0.0: {}

fs-mkdirp-stream@1.0.0:
dependencies:
graceful-fs: 4.2.11
through2: 2.0.5

fs.realpath@1.0.0: {}

fsevents@1.2.13:
dependencies:
bindings: 1.5.0
nan: 2.22.2
optional: true

fsevents@2.3.3:
optional: true

function-bind@1.1.2: {}

functions-have-names@1.2.3: {}

gensync@1.0.0-beta.2: {}

get-caller-file@1.0.3: {}

get-caller-file@2.0.5: {}

get-intrinsic@1.3.0:
dependencies:
call-bind-apply-helpers: 1.0.2
es-define-property: 1.0.1
es-errors: 1.3.0
es-object-atoms: 1.1.1
function-bind: 1.1.2
get-proto: 1.0.1
gopd: 1.2.0
has-symbols: 1.1.0
hasown: 2.0.2
math-intrinsics: 1.1.0

get-package-type@0.1.0: {}

get-proto@1.0.1:
dependencies:
dunder-proto: 1.0.1
es-object-atoms: 1.1.1

get-stream@6.0.1: {}

get-value@2.0.6: {}

glob-parent@3.1.0:
dependencies:
is-glob: 3.1.0
path-dirname: 1.0.2

glob-parent@5.1.2:
dependencies:
is-glob: 4.0.3

glob-parent@6.0.2:
dependencies:
is-glob: 4.0.3

glob-stream@6.1.0:
dependencies:
extend: 3.0.2
glob: 7.2.3
glob-parent: 3.1.0
is-negated-glob: 1.0.0
ordered-read-streams: 1.0.1
pumpify: 1.5.1
readable-stream: 2.3.8
remove-trailing-separator: 1.1.0
to-absolute-glob: 2.0.2
unique-stream: 2.3.1

glob-watcher@5.0.5:
dependencies:
anymatch: 2.0.0
async-done: 1.3.2
chokidar: 2.1.8
is-negated-glob: 1.0.0
just-debounce: 1.1.0
normalize-path: 3.0.0
object.defaults: 1.1.0
transitivePeerDependencies:
– supports-color

glob@7.2.3:
dependencies:
fs.realpath: 1.0.0
inflight: 1.0.6
inherits: 2.0.4
minimatch: 3.1.2
once: 1.4.0
path-is-absolute: 1.0.1

global-modules@1.0.0:
dependencies:
global-prefix: 1.0.2
is-windows: 1.0.2
resolve-dir: 1.0.1

global-prefix@1.0.2:
dependencies:
expand-tilde: 2.0.2
homedir-polyfill: 1.0.3
ini: 1.3.8
is-windows: 1.0.2
which: 1.3.1

globals@11.12.0: {}

globals@13.24.0:
dependencies:
type-fest: 0.20.2

globby@11.1.0:
dependencies:
array-union: 2.1.0
dir-glob: 3.0.1
fast-glob: 3.3.3
ignore: 5.3.2
merge2: 1.4.1
slash: 3.0.0

glogg@1.0.2:
dependencies:
sparkles: 1.0.1

gopd@1.2.0: {}

graceful-fs@4.2.11: {}

graphemer@1.4.0: {}

gulp-cli@2.3.0:
dependencies:
ansi-colors: 1.1.0
archy: 1.0.0
array-sort: 1.0.0
color-support: 1.1.3
concat-stream: 1.6.2
copy-props: 2.0.5
fancy-log: 1.3.3
gulplog: 1.0.0
interpret: 1.4.0
isobject: 3.0.1
liftoff: 3.1.0
matchdep: 2.0.0
mute-stdout: 1.0.1
pretty-hrtime: 1.0.3
replace-homedir: 1.0.0
semver-greatest-satisfied-range: 1.1.0
v8flags: 3.2.0
yargs: 7.1.2
transitivePeerDependencies:
– supports-color

gulp@4.0.2:
dependencies:
glob-watcher: 5.0.5
gulp-cli: 2.3.0
undertaker: 1.3.0
vinyl-fs: 3.0.3
transitivePeerDependencies:
– supports-color

gulplog@1.0.0:
dependencies:
glogg: 1.0.2

has-bigints@1.1.0: {}

has-flag@4.0.0: {}

has-property-descriptors@1.0.2:
dependencies:
es-define-property: 1.0.1

has-symbols@1.1.0: {}

has-tostringtag@1.0.2:
dependencies:
has-symbols: 1.1.0

has-value@0.3.1:
dependencies:
get-value: 2.0.6
has-values: 0.1.4
isobject: 2.1.0

has-value@1.0.0:
dependencies:
get-value: 2.0.6
has-values: 1.0.0
isobject: 3.0.1

has-values@0.1.4: {}

has-values@1.0.0:
dependencies:
is-number: 3.0.0
kind-of: 4.0.0

hasown@2.0.2:
dependencies:
function-bind: 1.1.2

homedir-polyfill@1.0.3:
dependencies:
parse-passwd: 1.0.0

hosted-git-info@2.8.9: {}

html-escaper@2.0.2: {}

http-errors@2.0.0:
dependencies:
depd: 2.0.0
inherits: 2.0.4
setprototypeof: 1.2.0
statuses: 2.0.1
toidentifier: 1.0.1

human-signals@2.1.0: {}

iconv-lite@0.6.3:
dependencies:
safer-buffer: 2.1.2

ignore@5.3.2: {}

import-fresh@3.3.1:
dependencies:
parent-module: 1.0.1
resolve-from: 4.0.0

import-local@3.2.0:
dependencies:
pkg-dir: 4.2.0
resolve-cwd: 3.0.0

imurmurhash@0.1.4: {}

indefinite@2.5.1: {}

inflight@1.0.6:
dependencies:
once: 1.4.0
wrappy: 1.0.2

inherits@2.0.4: {}

ini@1.3.8: {}

internal-slot@1.1.0:
dependencies:
es-errors: 1.3.0
hasown: 2.0.2
side-channel: 1.1.0

interpret@1.4.0: {}

invert-kv@1.0.0: {}

ipaddr.js@1.9.1: {}

is-absolute@1.0.0:
dependencies:
is-relative: 1.0.0
is-windows: 1.0.2

is-accessor-descriptor@1.0.1:
dependencies:
hasown: 2.0.2

is-arguments@1.2.0:
dependencies:
call-bound: 1.0.4
has-tostringtag: 1.0.2

is-array-buffer@3.0.5:
dependencies:
call-bind: 1.0.8
call-bound: 1.0.4
get-intrinsic: 1.3.0

is-arrayish@0.2.1: {}

is-bigint@1.1.0:
dependencies:
has-bigints: 1.1.0

is-binary-path@1.0.1:
dependencies:
binary-extensions: 1.13.1

is-boolean-object@1.2.2:
dependencies:
call-bound: 1.0.4
has-tostringtag: 1.0.2

is-buffer@1.1.6: {}

is-callable@1.2.7: {}

is-core-module@2.16.1:
dependencies:
hasown: 2.0.2

is-data-descriptor@1.0.1:
dependencies:
hasown: 2.0.2

is-date-object@1.1.0:
dependencies:
call-bound: 1.0.4
has-tostringtag: 1.0.2

is-descriptor@0.1.7:
dependencies:
is-accessor-descriptor: 1.0.1
is-data-descriptor: 1.0.1

is-descriptor@1.0.3:
dependencies:
is-accessor-descriptor: 1.0.1
is-data-descriptor: 1.0.1

is-extendable@0.1.1: {}

is-extendable@1.0.1:
dependencies:
is-plain-object: 2.0.4

is-extglob@2.1.1: {}

is-fullwidth-code-point@1.0.0:
dependencies:
number-is-nan: 1.0.1

is-fullwidth-code-point@3.0.0: {}

is-generator-fn@2.1.0: {}

is-generator-function@1.1.0:
dependencies:
call-bound: 1.0.4
get-proto: 1.0.1
has-tostringtag: 1.0.2
safe-regex-test: 1.1.0

is-glob@3.1.0:
dependencies:
is-extglob: 2.1.1

is-glob@4.0.3:
dependencies:
is-extglob: 2.1.1

is-map@2.0.3: {}

is-nan@1.3.2:
dependencies:
call-bind: 1.0.8
define-properties: 1.2.1

is-negated-glob@1.0.0: {}

is-number-object@1.1.1:
dependencies:
call-bound: 1.0.4
has-tostringtag: 1.0.2

is-number@3.0.0:
dependencies:
kind-of: 3.2.2

is-number@4.0.0: {}

is-number@7.0.0: {}

is-path-inside@3.0.3: {}

is-plain-object@2.0.4:
dependencies:
isobject: 3.0.1

is-plain-object@5.0.0: {}

is-promise@4.0.0: {}

is-regex@1.2.1:
dependencies:
call-bound: 1.0.4
gopd: 1.2.0
has-tostringtag: 1.0.2
hasown: 2.0.2

is-relative@1.0.0:
dependencies:
is-unc-path: 1.0.0

is-set@2.0.3: {}

is-shared-array-buffer@1.0.4:
dependencies:
call-bound: 1.0.4

is-stream@2.0.1: {}

is-string@1.1.1:
dependencies:
call-bound: 1.0.4
has-tostringtag: 1.0.2

is-symbol@1.1.1:
dependencies:
call-bound: 1.0.4
has-symbols: 1.1.0
safe-regex-test: 1.1.0

is-typed-array@1.1.15:
dependencies:
which-typed-array: 1.1.19

is-unc-path@1.0.0:
dependencies:
unc-path-regex: 0.1.2

is-utf8@0.2.1: {}

is-valid-glob@1.0.0: {}

is-weakmap@2.0.2: {}

is-weakset@2.0.4:
dependencies:
call-bound: 1.0.4
get-intrinsic: 1.3.0

is-windows@1.0.2: {}

isarray@1.0.0: {}

isarray@2.0.5: {}

isexe@2.0.0: {}

isobject@2.1.0:
dependencies:
isarray: 1.0.0

isobject@3.0.1: {}

istanbul-lib-coverage@3.2.2: {}

istanbul-lib-instrument@5.2.1:
dependencies:
‘@babel/core’: 7.26.10
‘@babel/parser’: 7.27.0
‘@istanbuljs/schema’: 0.1.3
istanbul-lib-coverage: 3.2.2
semver: 6.3.1
transitivePeerDependencies:
– supports-color

istanbul-lib-instrument@6.0.3:
dependencies:
‘@babel/core’: 7.26.10
‘@babel/parser’: 7.27.0
‘@istanbuljs/schema’: 0.1.3
istanbul-lib-coverage: 3.2.2
semver: 7.7.1
transitivePeerDependencies:
– supports-color

istanbul-lib-report@3.0.1:
dependencies:
istanbul-lib-coverage: 3.2.2
make-dir: 4.0.0
supports-color: 7.2.0

istanbul-lib-source-maps@4.0.1:
dependencies:
debug: 4.4.0
istanbul-lib-coverage: 3.2.2
source-map: 0.6.1
transitivePeerDependencies:
– supports-color

istanbul-reports@3.1.7:
dependencies:
html-escaper: 2.0.2
istanbul-lib-report: 3.0.1

jake@10.9.2:
dependencies:
async: 3.2.6
chalk: 4.1.2
filelist: 1.0.4
minimatch: 3.1.2

jest-changed-files@29.7.0:
dependencies:
execa: 5.1.1
jest-util: 29.7.0
p-limit: 3.1.0

jest-circus@29.7.0:
dependencies:
‘@jest/environment’: 29.7.0
‘@jest/expect’: 29.7.0
‘@jest/test-result’: 29.7.0
‘@jest/types’: 29.6.3
‘@types/node’: 22.14.0
chalk: 4.1.2
co: 4.6.0
dedent: 1.5.3
is-generator-fn: 2.1.0
jest-each: 29.7.0
jest-matcher-utils: 29.7.0
jest-message-util: 29.7.0
jest-runtime: 29.7.0
jest-snapshot: 29.7.0
jest-util: 29.7.0
p-limit: 3.1.0
pretty-format: 29.7.0
pure-rand: 6.1.0
slash: 3.0.0
stack-utils: 2.0.6
transitivePeerDependencies:
– babel-plugin-macros
– supports-color

jest-cli@29.7.0(@types/node@22.14.0):
dependencies:
‘@jest/core’: 29.7.0
‘@jest/test-result’: 29.7.0
‘@jest/types’: 29.6.3
chalk: 4.1.2
create-jest: 29.7.0(@types/node@22.14.0)
exit: 0.1.2
import-local: 3.2.0
jest-config: 29.7.0(@types/node@22.14.0)
jest-util: 29.7.0
jest-validate: 29.7.0
yargs: 17.7.2
transitivePeerDependencies:
– ‘@types/node’
– babel-plugin-macros
– supports-color
– ts-node

jest-config@29.7.0(@types/node@22.14.0):
dependencies:
‘@babel/core’: 7.26.10
‘@jest/test-sequencer’: 29.7.0
‘@jest/types’: 29.6.3
babel-jest: 29.7.0(@babel/core@7.26.10)
chalk: 4.1.2
ci-info: 3.9.0
deepmerge: 4.3.1
glob: 7.2.3
graceful-fs: 4.2.11
jest-circus: 29.7.0
jest-environment-node: 29.7.0
jest-get-type: 29.6.3
jest-regex-util: 29.6.3
jest-resolve: 29.7.0
jest-runner: 29.7.0
jest-util: 29.7.0
jest-validate: 29.7.0
micromatch: 4.0.8
parse-json: 5.2.0
pretty-format: 29.7.0
slash: 3.0.0
strip-json-comments: 3.1.1
optionalDependencies:
‘@types/node’: 22.14.0
transitivePeerDependencies:
– babel-plugin-macros
– supports-color

jest-diff@29.7.0:
dependencies:
chalk: 4.1.2
diff-sequences: 29.6.3
jest-get-type: 29.6.3
pretty-format: 29.7.0

jest-docblock@29.7.0:
dependencies:
detect-newline: 3.1.0

jest-each@29.7.0:
dependencies:
‘@jest/types’: 29.6.3
chalk: 4.1.2
jest-get-type: 29.6.3
jest-util: 29.7.0
pretty-format: 29.7.0

jest-environment-node@29.7.0:
dependencies:
‘@jest/environment’: 29.7.0
‘@jest/fake-timers’: 29.7.0
‘@jest/types’: 29.6.3
‘@types/node’: 22.14.0
jest-mock: 29.7.0
jest-util: 29.7.0

jest-get-type@29.6.3: {}

jest-haste-map@29.7.0:
dependencies:
‘@jest/types’: 29.6.3
‘@types/graceful-fs’: 4.1.9
‘@types/node’: 22.14.0
anymatch: 3.1.3
fb-watchman: 2.0.2
graceful-fs: 4.2.11
jest-regex-util: 29.6.3
jest-util: 29.7.0
jest-worker: 29.7.0
micromatch: 4.0.8
walker: 1.0.8
optionalDependencies:
fsevents: 2.3.3

jest-leak-detector@29.7.0:
dependencies:
jest-get-type: 29.6.3
pretty-format: 29.7.0

jest-matcher-utils@29.7.0:
dependencies:
chalk: 4.1.2
jest-diff: 29.7.0
jest-get-type: 29.6.3
pretty-format: 29.7.0

jest-message-util@29.7.0:
dependencies:
‘@babel/code-frame’: 7.26.2
‘@jest/types’: 29.6.3
‘@types/stack-utils’: 2.0.3
chalk: 4.1.2
graceful-fs: 4.2.11
micromatch: 4.0.8
pretty-format: 29.7.0
slash: 3.0.0
stack-utils: 2.0.6

jest-mock@29.7.0:
dependencies:
‘@jest/types’: 29.6.3
‘@types/node’: 22.14.0
jest-util: 29.7.0

jest-pnp-resolver@1.2.3(jest-resolve@29.7.0):
optionalDependencies:
jest-resolve: 29.7.0

jest-regex-util@29.6.3: {}

jest-resolve-dependencies@29.7.0:
dependencies:
jest-regex-util: 29.6.3
jest-snapshot: 29.7.0
transitivePeerDependencies:
– supports-color

jest-resolve@29.7.0:
dependencies:
chalk: 4.1.2
graceful-fs: 4.2.11
jest-haste-map: 29.7.0
jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0)
jest-util: 29.7.0
jest-validate: 29.7.0
resolve: 1.22.10
resolve.exports: 2.0.3
slash: 3.0.0

jest-runner@29.7.0:
dependencies:
‘@jest/console’: 29.7.0
‘@jest/environment’: 29.7.0
‘@jest/test-result’: 29.7.0
‘@jest/transform’: 29.7.0
‘@jest/types’: 29.6.3
‘@types/node’: 22.14.0
chalk: 4.1.2
emittery: 0.13.1
graceful-fs: 4.2.11
jest-docblock: 29.7.0
jest-environment-node: 29.7.0
jest-haste-map: 29.7.0
jest-leak-detector: 29.7.0
jest-message-util: 29.7.0
jest-resolve: 29.7.0
jest-runtime: 29.7.0
jest-util: 29.7.0
jest-watcher: 29.7.0
jest-worker: 29.7.0
p-limit: 3.1.0
source-map-support: 0.5.13
transitivePeerDependencies:
– supports-color

jest-runtime@29.7.0:
dependencies:
‘@jest/environment’: 29.7.0
‘@jest/fake-timers’: 29.7.0
‘@jest/globals’: 29.7.0
‘@jest/source-map’: 29.6.3
‘@jest/test-result’: 29.7.0
‘@jest/transform’: 29.7.0
‘@jest/types’: 29.6.3
‘@types/node’: 22.14.0
chalk: 4.1.2
cjs-module-lexer: 1.4.3
collect-v8-coverage: 1.0.2
glob: 7.2.3
graceful-fs: 4.2.11
jest-haste-map: 29.7.0
jest-message-util: 29.7.0
jest-mock: 29.7.0
jest-regex-util: 29.6.3
jest-resolve: 29.7.0
jest-snapshot: 29.7.0
jest-util: 29.7.0
slash: 3.0.0
strip-bom: 4.0.0
transitivePeerDependencies:
– supports-color

jest-snapshot@29.7.0:
dependencies:
‘@babel/core’: 7.26.10
‘@babel/generator’: 7.27.0
‘@babel/plugin-syntax-jsx’: 7.25.9(@babel/core@7.26.10)
‘@babel/plugin-syntax-typescript’: 7.25.9(@babel/core@7.26.10)
‘@babel/types’: 7.27.0
‘@jest/expect-utils’: 29.7.0
‘@jest/transform’: 29.7.0
‘@jest/types’: 29.6.3
babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.10)
chalk: 4.1.2
expect: 29.7.0
graceful-fs: 4.2.11
jest-diff: 29.7.0
jest-get-type: 29.6.3
jest-matcher-utils: 29.7.0
jest-message-util: 29.7.0
jest-util: 29.7.0
natural-compare: 1.4.0
pretty-format: 29.7.0
semver: 7.7.1
transitivePeerDependencies:
– supports-color

jest-util@29.7.0:
dependencies:
‘@jest/types’: 29.6.3
‘@types/node’: 22.14.0
chalk: 4.1.2
ci-info: 3.9.0
graceful-fs: 4.2.11
picomatch: 2.3.1

jest-validate@29.7.0:
dependencies:
‘@jest/types’: 29.6.3
camelcase: 6.3.0
chalk: 4.1.2
jest-get-type: 29.6.3
leven: 3.1.0
pretty-format: 29.7.0

jest-watcher@29.7.0:
dependencies:
‘@jest/test-result’: 29.7.0
‘@jest/types’: 29.6.3
‘@types/node’: 22.14.0
ansi-escapes: 4.3.2
chalk: 4.1.2
emittery: 0.13.1
jest-util: 29.7.0
string-length: 4.0.2

jest-worker@29.7.0:
dependencies:
‘@types/node’: 22.14.0
jest-util: 29.7.0
merge-stream: 2.0.0
supports-color: 8.1.1

jest@29.7.0(@types/node@22.14.0):
dependencies:
‘@jest/core’: 29.7.0
‘@jest/types’: 29.6.3
import-local: 3.2.0
jest-cli: 29.7.0(@types/node@22.14.0)
transitivePeerDependencies:
– ‘@types/node’
– babel-plugin-macros
– supports-color
– ts-node

jmespath@0.16.0: {}

js-base64@3.7.2: {}

js-tiktoken@1.0.19:
dependencies:
base64-js: 1.5.1

js-tokens@4.0.0: {}

js-yaml@3.14.1:
dependencies:
argparse: 1.0.10
esprima: 4.0.1

js-yaml@4.1.0:
dependencies:
argparse: 2.0.1

jsesc@3.1.0: {}

json-buffer@3.0.1: {}

json-parse-even-better-errors@2.3.1: {}

json-schema-traverse@0.4.1: {}

json-stable-stringify-without-jsonify@1.0.1: {}

json5@2.2.3: {}

jssha@3.3.1: {}

just-debounce@1.1.0: {}

keyv@4.5.4:
dependencies:
json-buffer: 3.0.1

kind-of@3.2.2:
dependencies:
is-buffer: 1.1.6

kind-of@4.0.0:
dependencies:
is-buffer: 1.1.6

kind-of@5.1.0: {}

kind-of@6.0.3: {}

kleur@3.0.3: {}

langsmith@0.3.15:
dependencies:
‘@types/uuid’: 10.0.0
chalk: 4.1.2
console-table-printer: 2.12.1
p-queue: 6.6.2
p-retry: 4.6.2
semver: 7.7.1
uuid: 10.0.0

last-run@1.1.1:
dependencies:
default-resolution: 2.0.0
es6-weak-map: 2.0.3

lazystream@1.0.1:
dependencies:
readable-stream: 2.3.8

lcid@1.0.0:
dependencies:
invert-kv: 1.0.0

lead@1.0.0:
dependencies:
flush-write-stream: 1.1.1

leven@3.1.0: {}

levn@0.4.1:
dependencies:
prelude-ls: 1.2.1
type-check: 0.4.0

liftoff@3.1.0:
dependencies:
extend: 3.0.2
findup-sync: 3.0.0
fined: 1.2.0
flagged-respawn: 1.0.1
is-plain-object: 2.0.4
object.map: 1.0.1
rechoir: 0.6.2
resolve: 1.22.10
transitivePeerDependencies:
– supports-color

lines-and-columns@1.2.4: {}

load-json-file@1.1.0:
dependencies:
graceful-fs: 4.2.11
parse-json: 2.2.0
pify: 2.3.0
pinkie-promise: 2.0.1
strip-bom: 2.0.0

locate-path@5.0.0:
dependencies:
p-locate: 4.1.0

locate-path@6.0.0:
dependencies:
p-locate: 5.0.0

lodash.memoize@4.1.2: {}

lodash.merge@4.6.2: {}

lodash@4.17.21: {}

lower-case@2.0.2:
dependencies:
tslib: 2.8.1

lru-cache@5.1.1:
dependencies:
yallist: 3.1.1

luxon@3.4.4: {}

make-dir@4.0.0:
dependencies:
semver: 7.7.1

make-error@1.3.6: {}

make-iterator@1.0.1:
dependencies:
kind-of: 6.0.3

makeerror@1.0.12:
dependencies:
tmpl: 1.0.5

map-cache@0.2.2: {}

map-visit@1.0.0:
dependencies:
object-visit: 1.0.1

matchdep@2.0.0:
dependencies:
findup-sync: 2.0.0
micromatch: 3.1.10
resolve: 1.22.10
stack-trace: 0.0.10
transitivePeerDependencies:
– supports-color

math-intrinsics@1.1.0: {}

md5@2.3.0:
dependencies:
charenc: 0.0.2
crypt: 0.0.2
is-buffer: 1.1.6

media-typer@1.1.0: {}

merge-descriptors@2.0.0: {}

merge-stream@2.0.0: {}

merge2@1.4.1: {}

micromatch@3.1.10:
dependencies:
arr-diff: 4.0.0
array-unique: 0.3.2
braces: 2.3.2
define-property: 2.0.2
extend-shallow: 3.0.2
extglob: 2.0.4
fragment-cache: 0.2.1
kind-of: 6.0.3
nanomatch: 1.2.13
object.pick: 1.3.0
regex-not: 1.0.2
snapdragon: 0.8.2
to-regex: 3.0.2
transitivePeerDependencies:
– supports-color

micromatch@4.0.8:
dependencies:
braces: 3.0.3
picomatch: 2.3.1

mime-db@1.52.0: {}

mime-db@1.54.0: {}

mime-types@2.1.35:
dependencies:
mime-db: 1.52.0

mime-types@3.0.1:
dependencies:
mime-db: 1.54.0

mimic-fn@2.1.0: {}

minimatch@3.1.2:
dependencies:
brace-expansion: 1.1.11

minimatch@5.1.6:
dependencies:
brace-expansion: 2.0.1

minimatch@9.0.3:
dependencies:
brace-expansion: 2.0.1

mixin-deep@1.3.2:
dependencies:
for-in: 1.0.2
is-extendable: 1.0.1

ms@2.0.0: {}

ms@2.1.3: {}

mustache@4.2.0: {}

mute-stdout@1.0.1: {}

n8n-workflow@1.82.0:
dependencies:
‘@n8n/tournament’: 1.0.6
‘@n8n_io/riot-tmpl’: 4.0.0
ast-types: 0.15.2
axios: 1.8.2
callsites: 3.1.0
deep-equal: 2.2.0
esprima-next: 5.8.4
form-data: 4.0.0
jmespath: 0.16.0
js-base64: 3.7.2
jssha: 3.3.1
lodash: 4.17.21
luxon: 3.4.4
md5: 2.3.0
recast: 0.21.5
title-case: 3.0.3
transliteration: 2.3.5
xml2js: 0.6.2
zod: 3.24.1
transitivePeerDependencies:
– debug

nan@2.22.2:
optional: true

nanomatch@1.2.13:
dependencies:
arr-diff: 4.0.0
array-unique: 0.3.2
define-property: 2.0.2
extend-shallow: 3.0.2
fragment-cache: 0.2.1
is-windows: 1.0.2
kind-of: 6.0.3
object.pick: 1.3.0
regex-not: 1.0.2
snapdragon: 0.8.2
to-regex: 3.0.2
transitivePeerDependencies:
– supports-color

natural-compare@1.4.0: {}

negotiator@1.0.0: {}

next-tick@1.1.0: {}

no-case@3.0.4:
dependencies:
lower-case: 2.0.2
tslib: 2.8.1

node-int64@0.4.0: {}

node-releases@2.0.19: {}

normalize-package-data@2.5.0:
dependencies:
hosted-git-info: 2.8.9
resolve: 1.22.10
semver: 5.7.2
validate-npm-package-license: 3.0.4

normalize-path@2.1.1:
dependencies:
remove-trailing-separator: 1.1.0

normalize-path@3.0.0: {}

now-and-later@2.0.1:
dependencies:
once: 1.4.0

npm-run-path@4.0.1:
dependencies:
path-key: 3.1.1

number-is-nan@1.0.1: {}

object-assign@4.1.1: {}

object-copy@0.1.0:
dependencies:
copy-descriptor: 0.1.1
define-property: 0.2.5
kind-of: 3.2.2

object-inspect@1.13.4: {}

object-is@1.1.6:
dependencies:
call-bind: 1.0.8
define-properties: 1.2.1

object-keys@1.1.1: {}

object-visit@1.0.1:
dependencies:
isobject: 3.0.1

object.assign@4.1.7:
dependencies:
call-bind: 1.0.8
call-bound: 1.0.4
define-properties: 1.2.1
es-object-atoms: 1.1.1
has-symbols: 1.1.0
object-keys: 1.1.1

object.defaults@1.1.0:
dependencies:
array-each: 1.0.1
array-slice: 1.1.0
for-own: 1.0.0
isobject: 3.0.1

object.map@1.0.1:
dependencies:
for-own: 1.0.0
make-iterator: 1.0.1

object.pick@1.3.0:
dependencies:
isobject: 3.0.1

object.reduce@1.0.1:
dependencies:
for-own: 1.0.0
make-iterator: 1.0.1

on-finished@2.4.1:
dependencies:
ee-first: 1.1.1

once@1.4.0:
dependencies:
wrappy: 1.0.2

onetime@5.1.2:
dependencies:
mimic-fn: 2.1.0

optionator@0.9.4:
dependencies:
deep-is: 0.1.4
fast-levenshtein: 2.0.6
levn: 0.4.1
prelude-ls: 1.2.1
type-check: 0.4.0
word-wrap: 1.2.5

ordered-read-streams@1.0.1:
dependencies:
readable-stream: 2.3.8

os-locale@1.4.0:
dependencies:
lcid: 1.0.0

p-finally@1.0.0: {}

p-limit@2.3.0:
dependencies:
p-try: 2.2.0

p-limit@3.1.0:
dependencies:
yocto-queue: 0.1.0

p-locate@4.1.0:
dependencies:
p-limit: 2.3.0

p-locate@5.0.0:
dependencies:
p-limit: 3.1.0

p-queue@6.6.2:
dependencies:
eventemitter3: 4.0.7
p-timeout: 3.2.0

p-retry@4.6.2:
dependencies:
‘@types/retry’: 0.12.0
retry: 0.13.1

p-timeout@3.2.0:
dependencies:
p-finally: 1.0.0

p-try@2.2.0: {}

parent-module@1.0.1:
dependencies:
callsites: 3.1.0

parse-filepath@1.0.2:
dependencies:
is-absolute: 1.0.0
map-cache: 0.2.2
path-root: 0.1.1

parse-json@2.2.0:
dependencies:
error-ex: 1.3.2

parse-json@5.2.0:
dependencies:
‘@babel/code-frame’: 7.26.2
error-ex: 1.3.2
json-parse-even-better-errors: 2.3.1
lines-and-columns: 1.2.4

parse-node-version@1.0.1: {}

parse-passwd@1.0.0: {}

parseurl@1.3.3: {}

pascal-case@3.1.2:
dependencies:
no-case: 3.0.4
tslib: 2.8.1

pascalcase@0.1.1: {}

path-dirname@1.0.2: {}

path-exists@2.1.0:
dependencies:
pinkie-promise: 2.0.1

path-exists@4.0.0: {}

path-is-absolute@1.0.1: {}

path-key@3.1.1: {}

path-parse@1.0.7: {}

path-root-regex@0.1.2: {}

path-root@0.1.1:
dependencies:
path-root-regex: 0.1.2

path-to-regexp@8.2.0: {}

path-type@1.1.0:
dependencies:
graceful-fs: 4.2.11
pify: 2.3.0
pinkie-promise: 2.0.1

path-type@4.0.0: {}

picocolors@1.1.1: {}

picomatch@2.3.1: {}

pify@2.3.0: {}

pinkie-promise@2.0.1:
dependencies:
pinkie: 2.0.4

pinkie@2.0.4: {}

pirates@4.0.7: {}

pkce-challenge@4.1.0: {}

pkg-dir@4.2.0:
dependencies:
find-up: 4.1.0

pluralize@8.0.0: {}

posix-character-classes@0.1.1: {}

possible-typed-array-names@1.1.0: {}

prelude-ls@1.2.1: {}

prettier@2.8.8: {}

pretty-format@29.7.0:
dependencies:
‘@jest/schemas’: 29.6.3
ansi-styles: 5.2.0
react-is: 18.3.1

pretty-hrtime@1.0.3: {}

process-nextick-args@2.0.1: {}

prompts@2.4.2:
dependencies:
kleur: 3.0.3
sisteransi: 1.0.5

proxy-addr@2.0.7:
dependencies:
forwarded: 0.2.0
ipaddr.js: 1.9.1

proxy-from-env@1.1.0: {}

pump@2.0.1:
dependencies:
end-of-stream: 1.4.4
once: 1.4.0

pumpify@1.5.1:
dependencies:
duplexify: 3.7.1
inherits: 2.0.4
pump: 2.0.1

punycode@2.3.1: {}

pure-rand@6.1.0: {}

qs@6.14.0:
dependencies:
side-channel: 1.1.0

queue-microtask@1.2.3: {}

range-parser@1.2.1: {}

raw-body@3.0.0:
dependencies:
bytes: 3.1.2
http-errors: 2.0.0
iconv-lite: 0.6.3
unpipe: 1.0.0

react-is@18.3.1: {}

read-pkg-up@1.0.1:
dependencies:
find-up: 1.1.2
read-pkg: 1.1.0

read-pkg@1.1.0:
dependencies:
load-json-file: 1.1.0
normalize-package-data: 2.5.0
path-type: 1.1.0

readable-stream@2.3.8:
dependencies:
core-util-is: 1.0.3
inherits: 2.0.4
isarray: 1.0.0
process-nextick-args: 2.0.1
safe-buffer: 5.1.2
string_decoder: 1.1.1
util-deprecate: 1.0.2

readdirp@2.2.1:
dependencies:
graceful-fs: 4.2.11
micromatch: 3.1.10
readable-stream: 2.3.8
transitivePeerDependencies:
– supports-color

recast@0.21.5:
dependencies:
ast-types: 0.15.2
esprima: 4.0.1
source-map: 0.6.1
tslib: 2.8.1

recast@0.22.0:
dependencies:
assert: 2.1.0
ast-types: 0.15.2
esprima: 4.0.1
source-map: 0.6.1
tslib: 2.8.1

rechoir@0.6.2:
dependencies:
resolve: 1.22.10

regex-not@1.0.2:
dependencies:
extend-shallow: 3.0.2
safe-regex: 1.1.0

regexp.prototype.flags@1.5.4:
dependencies:
call-bind: 1.0.8
define-properties: 1.2.1
es-errors: 1.3.0
get-proto: 1.0.1
gopd: 1.2.0
set-function-name: 2.0.2

remove-bom-buffer@3.0.0:
dependencies:
is-buffer: 1.1.6
is-utf8: 0.2.1

remove-bom-stream@1.2.0:
dependencies:
remove-bom-buffer: 3.0.0
safe-buffer: 5.2.1
through2: 2.0.5

remove-trailing-separator@1.1.0: {}

repeat-element@1.1.4: {}

repeat-string@1.6.1: {}

replace-ext@1.0.1: {}

replace-homedir@1.0.0:
dependencies:
homedir-polyfill: 1.0.3
is-absolute: 1.0.0
remove-trailing-separator: 1.1.0

require-directory@2.1.1: {}

require-main-filename@1.0.1: {}

resolve-cwd@3.0.0:
dependencies:
resolve-from: 5.0.0

resolve-dir@1.0.1:
dependencies:
expand-tilde: 2.0.2
global-modules: 1.0.0

resolve-from@4.0.0: {}

resolve-from@5.0.0: {}

resolve-options@1.1.0:
dependencies:
value-or-function: 3.0.0

resolve-url@0.2.1: {}

resolve.exports@2.0.3: {}

resolve@1.22.10:
dependencies:
is-core-module: 2.16.1
path-parse: 1.0.7
supports-preserve-symlinks-flag: 1.0.0

ret@0.1.15: {}

retry@0.13.1: {}

reusify@1.1.0: {}

rimraf@3.0.2:
dependencies:
glob: 7.2.3

router@2.2.0:
dependencies:
debug: 4.4.0
depd: 2.0.0
is-promise: 4.0.0
parseurl: 1.3.3
path-to-regexp: 8.2.0
transitivePeerDependencies:
– supports-color

run-parallel@1.2.0:
dependencies:
queue-microtask: 1.2.3

safe-buffer@5.1.2: {}

safe-buffer@5.2.1: {}

safe-regex-test@1.1.0:
dependencies:
call-bound: 1.0.4
es-errors: 1.3.0
is-regex: 1.2.1

safe-regex@1.1.0:
dependencies:
ret: 0.1.15

safer-buffer@2.1.2: {}

sax@1.4.1: {}

semver-greatest-satisfied-range@1.1.0:
dependencies:
sver-compat: 1.5.0

semver@5.7.2: {}

semver@6.3.1: {}

semver@7.7.1: {}

send@1.2.0:
dependencies:
debug: 4.4.0
encodeurl: 2.0.0
escape-html: 1.0.3
etag: 1.8.1
fresh: 2.0.0
http-errors: 2.0.0
mime-types: 3.0.1
ms: 2.1.3
on-finished: 2.4.1
range-parser: 1.2.1
statuses: 2.0.1
transitivePeerDependencies:
– supports-color

sentence-case@3.0.4:
dependencies:
no-case: 3.0.4
tslib: 2.8.1
upper-case-first: 2.0.2

serve-static@2.2.0:
dependencies:
encodeurl: 2.0.0
escape-html: 1.0.3
parseurl: 1.3.3
send: 1.2.0
transitivePeerDependencies:
– supports-color

set-blocking@2.0.0: {}

set-function-length@1.2.2:
dependencies:
define-data-property: 1.1.4
es-errors: 1.3.0
function-bind: 1.1.2
get-intrinsic: 1.3.0
gopd: 1.2.0
has-property-descriptors: 1.0.2

set-function-name@2.0.2:
dependencies:
define-data-property: 1.1.4
es-errors: 1.3.0
functions-have-names: 1.2.3
has-property-descriptors: 1.0.2

set-value@2.0.1:
dependencies:
extend-shallow: 2.0.1
is-extendable: 0.1.1
is-plain-object: 2.0.4
split-string: 3.1.0

setprototypeof@1.2.0: {}

shebang-command@2.0.0:
dependencies:
shebang-regex: 3.0.0

shebang-regex@3.0.0: {}

side-channel-list@1.0.0:
dependencies:
es-errors: 1.3.0
object-inspect: 1.13.4

side-channel-map@1.0.1:
dependencies:
call-bound: 1.0.4
es-errors: 1.3.0
get-intrinsic: 1.3.0
object-inspect: 1.13.4

side-channel-weakmap@1.0.2:
dependencies:
call-bound: 1.0.4
es-errors: 1.3.0
get-intrinsic: 1.3.0
object-inspect: 1.13.4
side-channel-map: 1.0.1

side-channel@1.1.0:
dependencies:
es-errors: 1.3.0
object-inspect: 1.13.4
side-channel-list: 1.0.0
side-channel-map: 1.0.1
side-channel-weakmap: 1.0.2

signal-exit@3.0.7: {}

simple-wcswidth@1.0.1: {}

sisteransi@1.0.5: {}

slash@3.0.0: {}

snapdragon-node@2.1.1:
dependencies:
define-property: 1.0.0
isobject: 3.0.1
snapdragon-util: 3.0.1

snapdragon-util@3.0.1:
dependencies:
kind-of: 3.2.2

snapdragon@0.8.2:
dependencies:
base: 0.11.2
debug: 2.6.9
define-property: 0.2.5
extend-shallow: 2.0.1
map-cache: 0.2.2
source-map: 0.5.7
source-map-resolve: 0.5.3
use: 3.1.1
transitivePeerDependencies:
– supports-color

source-map-resolve@0.5.3:
dependencies:
atob: 2.1.2
decode-uri-component: 0.2.2
resolve-url: 0.2.1
source-map-url: 0.4.1
urix: 0.1.0

source-map-support@0.5.13:
dependencies:
buffer-from: 1.1.2
source-map: 0.6.1

source-map-url@0.4.1: {}

source-map@0.5.7: {}

source-map@0.6.1: {}

sparkles@1.0.1: {}

spdx-correct@3.2.0:
dependencies:
spdx-expression-parse: 3.0.1
spdx-license-ids: 3.0.21

spdx-exceptions@2.5.0: {}

spdx-expression-parse@3.0.1:
dependencies:
spdx-exceptions: 2.5.0
spdx-license-ids: 3.0.21

spdx-license-ids@3.0.21: {}

split-string@3.1.0:
dependencies:
extend-shallow: 3.0.2

sprintf-js@1.0.3: {}

stack-trace@0.0.10: {}

stack-utils@2.0.6:
dependencies:
escape-string-regexp: 2.0.0

static-extend@0.1.2:
dependencies:
define-property: 0.2.5
object-copy: 0.1.0

statuses@2.0.1: {}

stop-iteration-iterator@1.1.0:
dependencies:
es-errors: 1.3.0
internal-slot: 1.1.0

stream-exhaust@1.0.2: {}

stream-shift@1.0.3: {}

string-length@4.0.2:
dependencies:
char-regex: 1.0.2
strip-ansi: 6.0.1

string-width@1.0.2:
dependencies:
code-point-at: 1.1.0
is-fullwidth-code-point: 1.0.0
strip-ansi: 3.0.1

string-width@4.2.3:
dependencies:
emoji-regex: 8.0.0
is-fullwidth-code-point: 3.0.0
strip-ansi: 6.0.1

string_decoder@1.1.1:
dependencies:
safe-buffer: 5.1.2

strip-ansi@3.0.1:
dependencies:
ansi-regex: 2.1.1

strip-ansi@6.0.1:
dependencies:
ansi-regex: 5.0.1

strip-bom@2.0.0:
dependencies:
is-utf8: 0.2.1

strip-bom@4.0.0: {}

strip-final-newline@2.0.0: {}

strip-json-comments@3.1.1: {}

supports-color@7.2.0:
dependencies:
has-flag: 4.0.0

supports-color@8.1.1:
dependencies:
has-flag: 4.0.0

supports-preserve-symlinks-flag@1.0.0: {}

sver-compat@1.5.0:
dependencies:
es6-iterator: 2.0.3
es6-symbol: 3.1.4

test-exclude@6.0.0:
dependencies:
‘@istanbuljs/schema’: 0.1.3
glob: 7.2.3
minimatch: 3.1.2

text-table@0.2.0: {}

through2-filter@3.0.0:
dependencies:
through2: 2.0.5
xtend: 4.0.2

through2@2.0.5:
dependencies:
readable-stream: 2.3.8
xtend: 4.0.2

time-stamp@1.1.0: {}

title-case@3.0.3:
dependencies:
tslib: 2.8.1

tmpl@1.0.5: {}

to-absolute-glob@2.0.2:
dependencies:
is-absolute: 1.0.0
is-negated-glob: 1.0.0

to-object-path@0.3.0:
dependencies:
kind-of: 3.2.2

to-regex-range@2.1.1:
dependencies:
is-number: 3.0.0
repeat-string: 1.6.1

to-regex-range@5.0.1:
dependencies:
is-number: 7.0.0

to-regex@3.0.2:
dependencies:
define-property: 2.0.2
extend-shallow: 3.0.2
regex-not: 1.0.2
safe-regex: 1.1.0

to-through@2.0.0:
dependencies:
through2: 2.0.5

toidentifier@1.0.1: {}

transliteration@2.3.5:
dependencies:
yargs: 17.7.2

ts-api-utils@1.4.3(typescript@4.8.4):
dependencies:
typescript: 4.8.4

ts-jest@29.3.1(@babel/core@7.26.10)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.10))(jest@29.7.0(@types/node@22.14.0))(typescript@4.8.4):
dependencies:
bs-logger: 0.2.6
ejs: 3.1.10
fast-json-stable-stringify: 2.1.0
jest: 29.7.0(@types/node@22.14.0)
jest-util: 29.7.0
json5: 2.2.3
lodash.memoize: 4.1.2
make-error: 1.3.6
semver: 7.7.1
type-fest: 4.39.1
typescript: 4.8.4
yargs-parser: 21.1.1
optionalDependencies:
‘@babel/core’: 7.26.10
‘@jest/transform’: 29.7.0
‘@jest/types’: 29.6.3
babel-jest: 29.7.0(@babel/core@7.26.10)

tslib@1.14.1: {}

tslib@2.8.1: {}

tsutils@3.21.0(typescript@4.8.4):
dependencies:
tslib: 1.14.1
typescript: 4.8.4

type-check@0.4.0:
dependencies:
prelude-ls: 1.2.1

type-detect@4.0.8: {}

type-fest@0.20.2: {}

type-fest@0.21.3: {}

type-fest@4.39.1: {}

type-is@2.0.1:
dependencies:
content-type: 1.0.5
media-typer: 1.1.0
mime-types: 3.0.1

type@2.7.3: {}

typedarray@0.0.6: {}

typescript@4.8.4: {}

unc-path-regex@0.1.2: {}

undertaker-registry@1.0.1: {}

undertaker@1.3.0:
dependencies:
arr-flatten: 1.1.0
arr-map: 2.0.2
bach: 1.2.0
collection-map: 1.0.0
es6-weak-map: 2.0.3
fast-levenshtein: 1.1.4
last-run: 1.1.1
object.defaults: 1.1.0
object.reduce: 1.0.1
undertaker-registry: 1.0.1

undici-types@6.21.0: {}

union-value@1.0.1:
dependencies:
arr-union: 3.1.0
get-value: 2.0.6
is-extendable: 0.1.1
set-value: 2.0.1

unique-stream@2.3.1:
dependencies:
json-stable-stringify-without-jsonify: 1.0.1
through2-filter: 3.0.0

unpipe@1.0.0: {}

unset-value@1.0.0:
dependencies:
has-value: 0.3.1
isobject: 3.0.1

upath@1.2.0: {}

update-browserslist-db@1.1.3(browserslist@4.24.4):
dependencies:
browserslist: 4.24.4
escalade: 3.2.0
picocolors: 1.1.1

upper-case-first@2.0.2:
dependencies:
tslib: 2.8.1

uri-js@4.4.1:
dependencies:
punycode: 2.3.1

urix@0.1.0: {}

use@3.1.1: {}

util-deprecate@1.0.2: {}

util@0.12.5:
dependencies:
inherits: 2.0.4
is-arguments: 1.2.0
is-generator-function: 1.1.0
is-typed-array: 1.1.15
which-typed-array: 1.1.19

uuid@10.0.0: {}

v8-to-istanbul@9.3.0:
dependencies:
‘@jridgewell/trace-mapping’: 0.3.25
‘@types/istanbul-lib-coverage’: 2.0.6
convert-source-map: 2.0.0

v8flags@3.2.0:
dependencies:
homedir-polyfill: 1.0.3

validate-npm-package-license@3.0.4:
dependencies:
spdx-correct: 3.2.0
spdx-expression-parse: 3.0.1

value-or-function@3.0.0: {}

vary@1.1.2: {}

vinyl-fs@3.0.3:
dependencies:
fs-mkdirp-stream: 1.0.0
glob-stream: 6.1.0
graceful-fs: 4.2.11
is-valid-glob: 1.0.0
lazystream: 1.0.1
lead: 1.0.0
object.assign: 4.1.7
pumpify: 1.5.1
readable-stream: 2.3.8
remove-bom-buffer: 3.0.0
remove-bom-stream: 1.2.0
resolve-options: 1.1.0
through2: 2.0.5
to-through: 2.0.0
value-or-function: 3.0.0
vinyl: 2.2.1
vinyl-sourcemap: 1.1.0

vinyl-sourcemap@1.1.0:
dependencies:
append-buffer: 1.0.2
convert-source-map: 1.9.0
graceful-fs: 4.2.11
normalize-path: 2.1.1
now-and-later: 2.0.1
remove-bom-buffer: 3.0.0
vinyl: 2.2.1

vinyl@2.2.1:
dependencies:
clone: 2.1.2
clone-buffer: 1.0.0
clone-stats: 1.0.0
cloneable-readable: 1.1.3
remove-trailing-separator: 1.1.0
replace-ext: 1.0.1

walker@1.0.8:
dependencies:
makeerror: 1.0.12

which-boxed-primitive@1.1.1:
dependencies:
is-bigint: 1.1.0
is-boolean-object: 1.2.2
is-number-object: 1.1.1
is-string: 1.1.1
is-symbol: 1.1.1

which-collection@1.0.2:
dependencies:
is-map: 2.0.3
is-set: 2.0.3
is-weakmap: 2.0.2
is-weakset: 2.0.4

which-module@1.0.0: {}

which-typed-array@1.1.19:
dependencies:
available-typed-arrays: 1.0.7
call-bind: 1.0.8
call-bound: 1.0.4
for-each: 0.3.5
get-proto: 1.0.1
gopd: 1.2.0
has-tostringtag: 1.0.2

which@1.3.1:
dependencies:
isexe: 2.0.0

which@2.0.2:
dependencies:
isexe: 2.0.0

word-wrap@1.2.5: {}

wrap-ansi@2.1.0:
dependencies:
string-width: 1.0.2
strip-ansi: 3.0.1

wrap-ansi@7.0.0:
dependencies:
ansi-styles: 4.3.0
string-width: 4.2.3
strip-ansi: 6.0.1

wrappy@1.0.2: {}

write-file-atomic@4.0.2:
dependencies:
imurmurhash: 0.1.4
signal-exit: 3.0.7

xml2js@0.6.2:
dependencies:
sax: 1.4.1
xmlbuilder: 11.0.1

xmlbuilder@11.0.1: {}

xtend@4.0.2: {}

y18n@3.2.2: {}

y18n@5.0.8: {}

yallist@3.1.1: {}

yargs-parser@21.1.1: {}

yargs-parser@5.0.1:
dependencies:
camelcase: 3.0.0
object.assign: 4.1.7

yargs@17.7.2:
dependencies:
cliui: 8.0.1
escalade: 3.2.0
get-caller-file: 2.0.5
require-directory: 2.1.1
string-width: 4.2.3
y18n: 5.0.8
yargs-parser: 21.1.1

yargs@7.1.2:
dependencies:
camelcase: 3.0.0
cliui: 3.2.0
decamelize: 1.2.0
get-caller-file: 1.0.3
os-locale: 1.4.0
read-pkg-up: 1.0.1
require-directory: 2.1.1
require-main-filename: 1.0.1
set-blocking: 2.0.0
string-width: 1.0.2
which-module: 1.0.0
y18n: 3.2.2
yargs-parser: 5.0.1

yocto-queue@0.1.0: {}

zod-to-json-schema@3.24.5(zod@3.24.2):
dependencies:
zod: 3.24.2

zod@3.24.1: {}

zod@3.24.2: {}

================================================

FILE: tsconfig.json

{
“compilerOptions”: {
“strict”: true,
“module”: “commonjs”,
“moduleResolution”: “node”,
“target”: “es2019”,
“lib”: [“es2019”, “es2020”, “es2022.error”],
“removeComments”: true,
“useUnknownInCatchVariables”: false,
“forceConsistentCasingInFileNames”: true,
“noImplicitAny”: true,
“noImplicitReturns”: true,
“noUnusedLocals”: true,
“strictNullChecks”: true,
“preserveConstEnums”: true,
“esModuleInterop”: true,
“resolveJsonModule”: true,
“incremental”: true,
“declaration”: true,
“sourceMap”: true,
“skipLibCheck”: true,
“outDir”: “./dist/”,
“types”: [“node”, “jest”]
},
“include”: [
“credentials//“, “nodes//“,
“nodes//.json”, “package.json”, “tests//
],
}

================================================

FILE: .editorconfig

root = true

[*]
charset = utf-8
indent_style = tab
indent_size = 2
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true

[package.json]
indent_style = space
indent_size = 2

[*.md]
trim_trailing_whitespace = false

[*.yml]
indent_style = space
indent_size = 2

================================================

FILE: .eslintrc.js

/**

  • @type {import(‘@types/eslint’).ESLint.ConfigData}
    */
    module.exports = {
    root: true, env: {
    browser: true,
    es6: true,
    node: true,
    }, parser: ‘@typescript-eslint/parser’, parserOptions: {
    project: [‘./tsconfig.json’],
    sourceType: ‘module’,
    extraFileExtensions: [‘.json’],
    }, ignorePatterns: [‘.eslintrc.js’, ‘/.js’, ‘/node_modules/‘, ‘/dist/*’], overrides: [
    {
    files: [‘package.json’],
    plugins: [‘eslint-plugin-n8n-nodes-base’],
    extends: [‘plugin:n8n-nodes-base/community’],
    rules: {
    ‘n8n-nodes-base/community-package-json-name-still-default’: ‘off’,
    },
    },
    {
    files: [‘./credentials//.ts’], plugins: [‘eslint-plugin-n8n-nodes-base’], extends: [‘plugin:n8n-nodes-base/credentials’], rules: { ‘n8n-nodes-base/cred-class-field-documentation-url-missing’: ‘off’, ‘n8n-nodes-base/cred-class-field-documentation-url-miscased’: ‘off’, }, }, { files: [‘./nodes//.ts’],
    plugins: [‘eslint-plugin-n8n-nodes-base’],
    extends: [‘plugin:n8n-nodes-base/nodes’],
    rules: {
    ‘n8n-nodes-base/node-execute-block-missing-continue-on-fail’: ‘off’,
    ‘n8n-nodes-base/node-resource-description-filename-against-convention’: ‘off’,
    ‘n8n-nodes-base/node-param-fixed-collection-type-unsorted-items’: ‘off’,
    ‘n8n-nodes-base/node-class-description-inputs-wrong-regular-node’: ‘off’,
    ‘n8n-nodes-base/node-class-description-outputs-wrong’: ‘off’,
    },
    },
    ],
    };

================================================

FILE: .eslintrc.prepublish.js

/**

  • @type {import(‘@types/eslint’).ESLint.ConfigData}
    */
    module.exports = {
    extends: “./.eslintrc.js”, overrides: [
    {
    files: [‘package.json’],
    plugins: [‘eslint-plugin-n8n-nodes-base’],
    rules: {
    ‘n8n-nodes-base/community-package-json-name-still-default’: ‘error’,
    },
    },
    ],
    };

================================================

FILE: .npmignore

Git, GitHub and CI/CD

.git
.github
.gitignore

Source and dev files

src
tests
.eslintrc
.prettierrc
tsconfig.json
jest.config.js

Documentation

docs
*.md
!README.md
!LICENSE.md

Misc

.DS_Store
.vscode
coverage
node_modules

Assets not needed in package

assets
screenshots

================================================

FILE: .nvmrc

v20.11.0

================================================

FILE: .prettierrc.js

module.exports = {
/**
* https://prettier.io/docs/en/options.html#semicolons
*/
semi: true,

/**
 * https://prettier.io/docs/en/options.html#trailing-commas
 */
trailingComma: 'all',

/**
 * https://prettier.io/docs/en/options.html#bracket-spacing
 */
bracketSpacing: true,

/**
 * https://prettier.io/docs/en/options.html#tabs
 */
useTabs: true,

/**
 * https://prettier.io/docs/en/options.html#tab-width
 */
tabWidth: 2,

/**
 * https://prettier.io/docs/en/options.html#arrow-function-parentheses
 */
arrowParens: 'always',

/**
 * https://prettier.io/docs/en/options.html#quotes
 */
singleQuote: true,

/**
 * https://prettier.io/docs/en/options.html#quote-props
 */
quoteProps: 'as-needed',

/**
 * https://prettier.io/docs/en/options.html#end-of-line
 */
endOfLine: 'lf',

/**
 * https://prettier.io/docs/en/options.html#print-width
 */
printWidth: 100,

};

================================================

FILE: tests/McpClient.test.ts

import { McpClient } from ‘../nodes/McpClient/McpClient.node’;

describe(‘McpClient Node’, () => {
let mcpClient: McpClient;

beforeEach(() => {
    mcpClient = new McpClient();
});

it('should have the correct node type', () => {
    expect(mcpClient.description.name).toBe('mcpClient');
});

it('should have properties defined', () => {
    expect(mcpClient.description.properties).toBeDefined();
});

});

================================================

FILE: credentials/McpClientApi.credentials.ts

import { ICredentialType, INodeProperties } from ‘n8n-workflow’;

export class McpClientApi implements ICredentialType {
name = ‘mcpClientApi’;
displayName = ‘MCP Client (STDIO) API’;

// Cast the icon to the correct type for n8n
icon = 'file:mcpClient.svg' as const;

properties: INodeProperties[] = [
    {
        displayName: 'Command',
        name: 'command',
        type: 'string',
        default: '',
        required: true,
        description: 'Command to execute (e.g., npx @modelcontextprotocol/client, python script.py)',
    },
    {
        displayName: 'Arguments',
        name: 'args',
        type: 'string',
        default: '',
        description:
            'Command line arguments (space-separated). Do not include API keys or sensitive information here - use Environments instead.',
    },
    {
        displayName: 'Environments',
        name: 'environments',
        type: 'string',
        default: '',
        typeOptions: {
            password: true,
        },
        description:
            'Environment variables in NAME=VALUE format, separated by commas (e.g., BRAVE_API_KEY=xyz,OPENAI_API_KEY=abc)',
    },
];

}

================================================

FILE: credentials/McpClientSseApi.credentials.ts

import { ICredentialType, INodeProperties } from ‘n8n-workflow’;

export class McpClientSseApi implements ICredentialType {
name = ‘mcpClientSseApi’;
displayName = ‘MCP Client (SSE) API’;

// Cast the icon to the correct type for n8n
icon = 'file:mcpClient.svg' as const;

properties: INodeProperties[] = [
    {
        displayName: 'SSE URL',
        name: 'sseUrl',
        type: 'string',
        default: 'http://localhost:3001/sse',
        required: true,
        description: 'URL of the SSE endpoint for the MCP server',
    },
    {
        displayName: 'Messages Post Endpoint',
        name: 'messagesPostEndpoint',
        type: 'string',
        default: '',
        description: 'Optional custom endpoint for posting messages (if different from SSE URL)',
    },
    {
        displayName: 'Additional Headers',
        name: 'headers',
        type: 'string',
        default: '',
        description: 'Additional headers to send in the request (format: name:value, one per line)',
    },
];

}

================================================

FILE: nodes/McpClient/McpClient.node.ts

import {
IExecuteFunctions,
INodeExecutionData,
INodeType,
INodeTypeDescription,
NodeConnectionType,
NodeOperationError,
} from ‘n8n-workflow’;
import { DynamicStructuredTool } from ‘@langchain/core/tools’;
import { z } from ‘zod’;
import { zodToJsonSchema } from ‘zod-to-json-schema’;
import { Client } from ‘@modelcontextprotocol/sdk/client/index.js’;
import { StdioClientTransport } from ‘@modelcontextprotocol/sdk/client/stdio.js’;
import { Transport } from ‘@modelcontextprotocol/sdk/shared/transport.js’;
import { CallToolResultSchema } from ‘@modelcontextprotocol/sdk/types.js’;

// Add Node.js process type declaration
declare const process: {
env: Record;
};

export class McpClient implements INodeType {
description: INodeTypeDescription = {
displayName: ‘MCP Client’,
name: ‘mcpClient’,
icon: ‘file:mcpClient.svg’,
group: [‘transform’],
version: 1,
subtitle: ‘={{$parameter[“operation”]}}’,
description: ‘Use MCP client’,
defaults: {
name: ‘MCP Client’,
},
// @ts-ignore – node-class-description-outputs-wrong
inputs: [{ type: NodeConnectionType.Main }],
// @ts-ignore – node-class-description-outputs-wrong
outputs: [{ type: NodeConnectionType.Main }],
usableAsTool: true,
credentials: [
{
name: ‘mcpClientApi’,
required: false,
displayOptions: {
show: {
connectionType: [‘cmd’],
},
},
},
{
name: ‘mcpClientSseApi’,
required: false,
displayOptions: {
show: {
connectionType: [‘sse’],
},
},
},
],
properties: [
{
displayName: ‘Connection Type’,
name: ‘connectionType’,
type: ‘options’,
options: [
{
name: ‘Command Line (STDIO)’,
value: ‘cmd’,
},
{
name: ‘Server-Sent Events (SSE)’,
value: ‘sse’,
},
],
default: ‘cmd’,
description: ‘Choose the transport type to connect to MCP server’,
},
{
displayName: ‘Operation’,
name: ‘operation’,
type: ‘options’,
noDataExpression: true,
options: [
{
name: ‘Execute Tool’,
value: ‘executeTool’,
description: ‘Execute a specific tool’,
action: ‘Execute a tool’,
},
{
name: ‘Get Prompt’,
value: ‘getPrompt’,
description: ‘Get a specific prompt template’,
action: ‘Get a prompt template’,
},
{
name: ‘List Prompts’,
value: ‘listPrompts’,
description: ‘Get available prompts’,
action: ‘List available prompts’,
},
{
name: ‘List Resource Templates’,
value: ‘listResourceTemplates’,
description: ‘Get a list of available resource templates’,
action: ‘List available resource templates’,
},
{
name: ‘List Resources’,
value: ‘listResources’,
description: ‘Get a list of available resources’,
action: ‘List available resources’,
},
{
name: ‘List Tools’,
value: ‘listTools’,
description: ‘Get available tools’,
action: ‘List available tools’,
},
{
name: ‘Read Resource’,
value: ‘readResource’,
description: ‘Read a specific resource by URI’,
action: ‘Read a resource’,
},
],
default: ‘listTools’,
required: true,
},
{
displayName: ‘Resource URI’,
name: ‘resourceUri’,
type: ‘string’,
required: true,
displayOptions: {
show: {
operation: [‘readResource’],
},
},
default: ”,
description: ‘URI of the resource to read’,
},
{
displayName: ‘Tool Name’,
name: ‘toolName’,
type: ‘string’,
required: true,
displayOptions: {
show: {
operation: [‘executeTool’],
},
},
default: ”,
description: ‘Name of the tool to execute’,
},
{
displayName: ‘Tool Parameters’,
name: ‘toolParameters’,
type: ‘json’,
required: true,
displayOptions: {
show: {
operation: [‘executeTool’],
},
},
default: ‘{}’,
description: ‘Parameters to pass to the tool in JSON format’,
},
{
displayName: ‘Prompt Name’,
name: ‘promptName’,
type: ‘string’,
required: true,
displayOptions: {
show: {
operation: [‘getPrompt’],
},
},
default: ”,
description: ‘Name of the prompt template to get’,
},
],
};

async execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]> {
    const returnData: INodeExecutionData[] = [];
    const operation = this.getNodeParameter('operation', 0) as string;

    // For backward compatibility - if connectionType isn't set, default to 'cmd'
    let connectionType = 'cmd';
    try {
        connectionType = this.getNodeParameter('connectionType', 0) as string;
    } catch (error) {
        // If connectionType parameter doesn't exist, keep default 'cmd'
        this.logger.debug('ConnectionType parameter not found, using default "cmd" transport');
    }

    try {
        let transport: Transport;

        if (connectionType === 'sse') {
            // Use SSE transport
            const sseCredentials = await this.getCredentials('mcpClientSseApi');

            // Dynamically import the SSE client to avoid TypeScript errors
            const { SSEClientTransport } = await import('@modelcontextprotocol/sdk/client/sse.js');

            const sseUrl = sseCredentials.sseUrl as string;
            const messagesPostEndpoint = (sseCredentials.messagesPostEndpoint as string) || '';

            // Parse headers
            const headers: Record<string, string> = {};
            if (sseCredentials.headers) {
                const headerLines = (sseCredentials.headers as string).split('\n');
                for (const line of headerLines) {
                    const [name, value] = line.split(':', 2);
                    if (name && value) {
                        headers[name.trim()] = value.trim();
                    }
                }
            }

            // Create SSE transport with dynamic import to avoid TypeScript errors
            transport = new SSEClientTransport(
                // @ts-ignore
                new URL(sseUrl),
                {
                    // @ts-ignore
                    eventSourceInit: { headers },
                    // @ts-ignore
                    requestInit: {
                        headers,
                        ...(messagesPostEndpoint
                            ? {
                                    // @ts-ignore
                                    endpoint: new URL(messagesPostEndpoint),
                              }
                            : {}),
                    },
                },
            );

            this.logger.debug(`Created SSE transport for MCP client URL: ${sseUrl}`);
            if (messagesPostEndpoint) {
                this.logger.debug(`Using custom POST endpoint: ${messagesPostEndpoint}`);
            }
        } else {
            // Use stdio transport (default)
            const cmdCredentials = await this.getCredentials('mcpClientApi');

            // Build environment variables object for MCP servers
            const env: Record<string, string> = {
                // Preserve the PATH environment variable to ensure commands can be found
                PATH: process.env.PATH || '',
            };

            this.logger.debug(`Original PATH: ${process.env.PATH}`);

            // Parse comma-separated environment variables from credentials
            if (cmdCredentials.environments) {
                const envPairs = (cmdCredentials.environments as string).split(/[,\n\s]+/);
                for (const pair of envPairs) {
                    const trimmedPair = pair.trim();
                    if (trimmedPair) {
                        const equalsIndex = trimmedPair.indexOf('=');
                        if (equalsIndex > 0) {
                            const name = trimmedPair.substring(0, equalsIndex).trim();
                            const value = trimmedPair.substring(equalsIndex + 1).trim();
                            if (name && value !== undefined) {
                                env[name] = value;
                            }
                        }
                    }
                }
            }

            // Process environment variables from Node.js
            // This allows Docker environment variables to override credentials
            for (const key in process.env) {
                // Only pass through MCP-related environment variables
                if (key.startsWith('MCP_') && process.env[key]) {
                    // Strip off the MCP_ prefix when passing to the MCP server
                    const envName = key.substring(4); // Remove 'MCP_'
                    env[envName] = process.env[key] as string;
                }
            }

            transport = new StdioClientTransport({
                command: cmdCredentials.command as string,
                args: (cmdCredentials.args as string)?.split(' ') || [],
                env: env, // Always pass the env with PATH preserved
            });

            // Use n8n's logger instead of console.log
            this.logger.debug(
                `Transport created for MCP client command: ${cmdCredentials.command}, PATH: ${env.PATH}`,
            );
        }

        // Add error handling to transport
        transport.onerror = (error) => {
            throw new NodeOperationError(this.getNode(), `Transport error: ${error}`);
        };

        const client = new Client(
            {
                name: `${McpClient.name}-client`,
                version: '1.0.0',
            },
            {
                capabilities: {
                    prompts: {},
                    resources: {},

                    tools: {},
                },
            },
        );

        try {
            await client.connect(transport);
            this.logger.debug('Client connected to MCP server');
        } catch (connectionError) {
            this.logger.error(`MCP client connection error: ${(connectionError as Error).message}`);
            throw new NodeOperationError(
                this.getNode(),
                `Failed to connect to MCP server: ${(connectionError as Error).message}`,
            );
        }

        switch (operation) {
            case 'listResources': {
                const resources = await client.listResources();
                returnData.push({
                    json: { resources },
                });
                break;
            }

            case 'listResourceTemplates': {
                const resourceTemplates = await client.listResourceTemplates();
                returnData.push({
                    json: { resourceTemplates },
                });
                break;
            }

            case 'readResource': {
                const uri = this.getNodeParameter('resourceUri', 0) as string;
                const resource = await client.readResource({
                    uri,
                });
                returnData.push({
                    json: { resource },
                });
                break;
            }

            case 'listTools': {
                const rawTools = await client.listTools();
                const tools = Array.isArray(rawTools)
                    ? rawTools
                    : Array.isArray(rawTools?.tools)
                    ? rawTools.tools
                    : Object.values(rawTools?.tools || {});

                if (!tools.length) {
                    throw new NodeOperationError(this.getNode(), 'No tools found from MCP client');
                }

                const aiTools = tools.map((tool: any) => {
                    const paramSchema = tool.inputSchema?.properties
                        ? z.object(
                                Object.entries(tool.inputSchema.properties).reduce(
                                    (acc: any, [key, prop]: [string, any]) => {
                                        let zodType: z.ZodType;

                                        switch (prop.type) {
                                            case 'string':
                                                zodType = z.string();
                                                break;
                                            case 'number':
                                                zodType = z.number();
                                                break;
                                            case 'integer':
                                                zodType = z.number().int();
                                                break;
                                            case 'boolean':
                                                zodType = z.boolean();
                                                break;
                                            case 'array':
                                                if (prop.items?.type === 'string') {
                                                    zodType = z.array(z.string());
                                                } else if (prop.items?.type === 'number') {
                                                    zodType = z.array(z.number());
                                                } else if (prop.items?.type === 'boolean') {
                                                    zodType = z.array(z.boolean());
                                                } else {
                                                    zodType = z.array(z.any());
                                                }
                                                break;
                                            case 'object':
                                                zodType = z.record(z.string(), z.any());
                                                break;
                                            default:
                                                zodType = z.any();
                                        }

                                        if (prop.description) {
                                            zodType = zodType.describe(prop.description);
                                        }

                                        if (!tool.inputSchema?.required?.includes(key)) {
                                            zodType = zodType.optional();
                                        }

                                        return {
                                            ...acc,
                                            [key]: zodType,
                                        };
                                    },
                                    {},
                                ),
                          )
                        : z.object({});

                    return new DynamicStructuredTool({
                        name: tool.name,
                        description: tool.description || `Execute the ${tool.name} tool`,
                        schema: paramSchema,
                        func: async (params) => {
                            try {
                                const result = await client.callTool({
                                    name: tool.name,
                                    arguments: params,
                                }, CallToolResultSchema, {
                                    // TODO: Support these options using the N8N's Node Config UI
                                    resetTimeoutOnProgress: true,
                                });

                                return typeof result === 'object' ? JSON.stringify(result) : String(result);
                            } catch (error) {
                                throw new NodeOperationError(
                                    this.getNode(),
                                    `Failed to execute ${tool.name}: ${(error as Error).message}`,
                                );
                            }
                        },
                    });
                });

                returnData.push({
                    json: {
                        tools: aiTools.map((t: DynamicStructuredTool) => ({
                            name: t.name,
                            description: t.description,
                            schema: zodToJsonSchema(t.schema || {}),
                        })),
                    },
                });
                break;
            }

            case 'executeTool': {
                const toolName = this.getNodeParameter('toolName', 0) as string;
                let toolParams;

                try {
                    const rawParams = this.getNodeParameter('toolParameters', 0);
                    this.logger.debug(`Raw tool parameters: ${JSON.stringify(rawParams)}`);

                    // Handle different parameter types
                    if (rawParams === undefined || rawParams === null) {
                        // Handle null/undefined case
                        toolParams = {};
                    } else if (typeof rawParams === 'string') {
                        // Handle string input (typical direct node usage)
                        if (!rawParams || rawParams.trim() === '') {
                            toolParams = {};
                        } else {
                            toolParams = JSON.parse(rawParams);
                        }
                    } else if (typeof rawParams === 'object') {
                        // Handle object input (when used as a tool in AI Agent)
                        toolParams = rawParams;
                    } else {
                        // Try to convert other types to object
                        try {
                            toolParams = JSON.parse(JSON.stringify(rawParams));
                        } catch (parseError) {
                            throw new NodeOperationError(
                                this.getNode(),
                                `Invalid parameter type: ${typeof rawParams}`,
                            );
                        }
                    }

                    // Ensure toolParams is an object
                    if (
                        typeof toolParams !== 'object' ||
                        toolParams === null ||
                        Array.isArray(toolParams)
                    ) {
                        throw new NodeOperationError(this.getNode(), 'Tool parameters must be a JSON object');
                    }
                } catch (error) {
                    throw new NodeOperationError(
                        this.getNode(),
                        `Failed to parse tool parameters: ${
                            (error as Error).message
                        }. Make sure the parameters are valid JSON.`,
                    );
                }

                // Validate tool exists before executing
                try {
                    const availableTools = await client.listTools();
                    const toolsList = Array.isArray(availableTools)
                        ? availableTools
                        : Array.isArray(availableTools?.tools)
                        ? availableTools.tools
                        : Object.values(availableTools?.tools || {});

                    const toolExists = toolsList.some((tool: any) => tool.name === toolName);

                    if (!toolExists) {
                        const availableToolNames = toolsList.map((t: any) => t.name).join(', ');
                        throw new NodeOperationError(
                            this.getNode(),
                            `Tool '${toolName}' does not exist. Available tools: ${availableToolNames}`,
                        );
                    }

                    this.logger.debug(
                        `Executing tool: ${toolName} with params: ${JSON.stringify(toolParams)}`,
                    );

                    const result = await client.callTool({
                        name: toolName,
                        arguments: toolParams,
                    }, CallToolResultSchema, {
                        // TODO: Support these options using the N8N's Node Config UI
                        resetTimeoutOnProgress: true,
                    });

                    this.logger.debug(`Tool executed successfully: ${JSON.stringify(result)}`);

                    returnData.push({
                        json: { result },
                    });
                } catch (error) {
                    throw new NodeOperationError(
                        this.getNode(),
                        `Failed to execute tool '${toolName}': ${(error as Error).message}`,
                    );
                }
                break;
            }

            case 'listPrompts': {
                const prompts = await client.listPrompts();
                returnData.push({
                    json: { prompts },
                });
                break;
            }

            case 'getPrompt': {
                const promptName = this.getNodeParameter('promptName', 0) as string;
                const prompt = await client.getPrompt({
                    name: promptName,
                });
                returnData.push({
                    json: { prompt },
                });
                break;
            }

            default:
                throw new NodeOperationError(this.getNode(), `Operation ${operation} not supported`);
        }

        return [returnData];
    } catch (error) {
        throw new NodeOperationError(
            this.getNode(),
            `Failed to execute operation: ${(error as Error).message}`,
        );
    }
}

}

================================================

FILE: .github/dependabot.yml

version: 2
updates:

  • package-ecosystem: “npm”
    directory: “/”
    schedule:
    interval: “weekly”
    open-pull-requests-limit: 10
    versioning-strategy: increase
  • package-ecosystem: “github-actions”
    directory: “/”
    schedule:
    interval: “weekly”
    open-pull-requests-limit: 5

================================================

FILE: .github/pull_request_template.md

Description

Related Issue

Closes #

Type of Change

  • [ ] Bug fix (non-breaking change that fixes an issue)
  • [ ] New feature (non-breaking change that adds functionality)
  • [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • [ ] Documentation update
  • [ ] Other (please describe):

How Has This Been Tested?

Checklist

  • [ ] My code follows the code style of this project
  • [ ] I have updated the documentation accordingly
  • [ ] I have added tests to cover my changes
  • [ ] All new and existing tests passed

Release Notes

Screenshots (if applicable)

================================================

FILE: .github/workflows/ci-cd.yml

name: CI/CD Pipeline

on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:
inputs:
release_type:
description: ‘Release type (patch, minor, major)’
required: true
default: ‘patch’
type: choice
options:
– patch
– minor
– major

jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
– uses: actions/checkout@v4

  - name: Setup Node.js
    uses: actions/setup-node@v4
    with:
      node-version: '18'
      cache: 'npm'

  - name: Install dependencies
    run: npm ci

  - name: Lint
    run: npm run lint --if-present || echo "Linting failed but continuing"

  - name: Build
    run: npm run build --if-present || echo "Build script not found or build failed but continuing"

  - name: Test
    run: npm run test --if-present || echo "No tests found or tests failed but continuing"

  - name: Upload build artifacts
    uses: actions/upload-artifact@v4
    with:
      name: dist
      path: dist/

release:
needs: build-and-test
if: github.event_name == ‘workflow_dispatch’ || (github.event_name == ‘push’ && github.ref == ‘refs/heads/main’)
runs-on: ubuntu-latest
permissions:
contents: write
packages: write
steps:
– uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ secrets.CICD_TOKEN }}

  - name: Setup Node.js
    uses: actions/setup-node@v4
    with:
      node-version: '18'
      registry-url: 'https://registry.npmjs.org'

  - name: Install dependencies
    run: npm ci

  - name: Download build artifacts
    uses: actions/download-artifact@v4
    with:
      name: dist
      path: dist/

  - name: Configure Git
    run: |
      git config user.name "GitHub Actions"
      git config user.email "actions@github.com"

  - name: Bump version
    id: bump_version
    if: github.event_name == 'workflow_dispatch'
    run: |
      RELEASE_TYPE="${{ github.event.inputs.release_type }}"
      npm version $RELEASE_TYPE -m "Bump version to %s [skip ci]"
      echo "new_version=$(npm pkg get version | tr -d '"')" >> $GITHUB_OUTPUT

  - name: Auto bump patch version
    id: auto_bump
    if: github.event_name == 'push' && github.ref == 'refs/heads/main'
    run: |
      npm version patch -m "Bump version to %s [skip ci]"
      echo "new_version=$(npm pkg get version | tr -d '"')" >> $GITHUB_OUTPUT

  - name: Push changes
    run: |
      VERSION=$(npm pkg get version | tr -d '"')
      git push
      git push origin v$VERSION

  - name: Create GitHub Release
    uses: softprops/action-gh-release@v1
    with:
      tag_name: v${{ steps.bump_version.outputs.new_version || steps.auto_bump.outputs.new_version }}
      name: Release v${{ steps.bump_version.outputs.new_version || steps.auto_bump.outputs.new_version }}
      draft: false
      generate_release_notes: true

  - name: Publish to npm
    run: npm publish --access public
    env:
      NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

================================================

FILE: .github/workflows/pr-validation.yml

name: PR Validation

on:
pull_request:
branches: [main]
types: [opened, synchronize, reopened]

jobs:
validate:
runs-on: ubuntu-latest
steps:
– uses: actions/checkout@v3

  - uses: actions/setup-node@v3
    with:
      node-version: '18'
      cache: 'npm'

  - name: Install dependencies
    run: npm ci

  - name: Lint
    run: npm run lint

  - name: Build
    run: npm run build

  - name: Test
    run: npm test

Leave a Reply

Your email address will not be published. Required fields are marked *